Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/golid-ai/golid/ci-workflowgit clone --depth 1 https://github.com/golid-ai/golidWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/golid-ai/golid/ci-workflow)<a href="https://agentmods.dev/rules/golid-ai/golid/ci-workflow"><img src="https://agentmods.dev/badge/rules/golid-ai/golid/ci-workflow.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.02091 |
| Opus 5 | $0.00000 | $0.01045 |
| Sonnet 5 | $0.00000 | $0.00418 |
| Haiku 4.5 | $0.00000 | $0.00209 |
Grade A, and why
ci-workflow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 124 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CI Workflow Patterns
Thesis: CI catches what developers forget: type errors, test regressions, stale generated types, and vulnerable dependencies. Jobs must not have cross-job dependencies.
Job structure
| Job | Gate | Depends on |
|---|---|---|
changes |
always | — |
spec-drift |
always | — |
backend-unit |
run_backend |
changes |
backend-integration |
run_backend |
changes, backend-unit |
backend-coverage |
run_backend + unit + integration OK |
changes, backend-unit, backend-integration |
frontend |
run_frontend |
changes |
scaffold-verify |
run_backend || run_frontend |
changes |
e2e |
run_e2e + integration + frontend OK |
changes, backend-integration, frontend |
changes uses dorny/paths-filter@v4 to compute run_backend, run_frontend, run_e2e. Docs-only PRs (docs/**, **/*.md except CHANGELOG.md) run changes + spec-drift only — backend, frontend, scaffold, and E2E are skipped. CHANGELOG-only commits run backend + frontend (Codecov refresh) without E2E. codecov.yml sets flag_management.default_rules.carryforward: true so docs-only pushes keep the last report on HEAD.
Workflow needs pull-requests: read for paths-filter on PRs.
Backend unit job checklist
- No PostgreSQL — unit tests only
go build+go vetbefore tests- golangci-lint: pin to a version compatible with the Go version in
go.mod - Unit tests split: pure packages without
-race(apperror, config, pagination, retry, validate), then handler/middleware/observability/queue/service/testutil/wire with-race - Both unit runs use shared
COVERPKGenv and merge intocoverage-unit.out - govulncheck: always run, fails CI on vulnerabilities
- Upload
coverage-unit.outas artifact (not Codecov yet)
Backend integration job checklist
- PostgreSQL service container with health check (
golid_testdatabase) - Matrix shard:
handler|service— each shard runs on a separate runner go test -tags integration ./internal/${{ matrix.shard }}/... -race -count=1- Handler shard exits 0 with no packages when no handler integration tests exist — do not add skip hacks
- Set
TEST_DATABASE_URLonly —testutil.SetupTestDB()panics if unset (noDATABASE_URLfallback) TEST_MIGRATIONS_PATH: ${{ github.workspace }}/backend/migrations— per-package schemas via testutil, no global migrate step- Upload per-shard
coverage-integration-{shard}.outas artifacts
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 124 lines · 0 tokens per session scan A 5457fdf51f46
ci-workflow is a cursor rule published in the GitHub repository golid-ai/golid (40 stars, last pushed 2mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,091 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other cursor rules, from other repositories
state-management
Use the following stack. Do not introduce or recommend Redux or React Context for shared/global state.
40-deploy
For PM2 processes, GitHub Actions, health checks, and production operations.
beanstalk-deploy
Robust deployment patterns for Elastic Beanstalk with GitHub Actions, Pulumi, and edge case handling.
test-headless-github-actions
Run Maven tests with GITHUBACTIONS=true so @WebTest Chrome is headless.
infra-devops
Infrastructure, Cloud, Terraform, Docker & CI/CD Agent.
testing-ci-rule
testing-ci-rule from DaunteEth/woofi-pro-mcp.