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.
git clone --depth 1 https://github.com/coddy-project/coddy-agentWrote 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/coddy-project/coddy-agent/workflow)<a href="https://agentmods.dev/rules/coddy-project/coddy-agent/workflow"><img src="https://agentmods.dev/badge/rules/coddy-project/coddy-agent/workflow/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/rules/coddy-project/coddy-agent/workflow"><img src="https://agentmods.dev/badge/rules/coddy-project/coddy-agent/workflow.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.06502 | $0.06502 |
| Opus 5.5 | $0.02601 | $0.02601 |
| Sonnet 5.5 | $0.01300 | $0.01300 |
| Haiku 4.5 | $0.00650 | $0.00650 |
Grade A, and why
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 today.
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 — 265 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Workflow (features, bugs, finish)
Specifications live in features/ (BDD)
Executable specifications for feature behavior and the happy path of a bug fix are
Gherkin .feature files in the repository-root features/ directory, run by a godog harness
(step definitions in the package that owns the behavior, e.g. external/httpserver/bdd_*_test.go,
pointing Options.Paths at ../../features/<name>.feature).
- New feature → add or extend the feature's
.featurespec infeatures/describing the scenario as it works when correct (the happy path), so the behavior is reproducible. - Bug fix → add a scenario (or feature) in
features/that reproduces the problem as a happy-path expectation, then make it pass. - Boundary / edge / error cases → do not put these in
features/; cover them with ordinary unit tests next to the code. Keep.featurefiles focused on the correct-behavior story. - Keep specs deterministic and LLM-free where possible (use a stub runner, as the existing
harnesses do). Step definitions may live near the code; the
.featurespecs stay infeatures/.
New behavior (TDD / BDD)
When adding or changing behavior (including words like feature, add, implement, фича, добавить):
- Add or extend the happy-path
.featurespec infeatures/(and/or a failing unit test) that asserts the observable outcome (red). Edge cases go in unit tests, not the spec. - Run the narrowest test scope that proves the failure is real.
- Implement the smallest change that makes the test pass (green).
- Run
make test- the express run:test-agent-rules,ui-build,ui-test, then onego testover the whole tree with every optional module compiled in (http,ui,scheduler,memory,cli,gateway,swarm,metrics). Everything must pass. Do not walk the tag combinations locally: that matrix (make test-matrix) runs on GitHub Actions for every pull request, one job per combination. When the change moved a build-tag boundary (a_stub.go, anAvailableconst, a//go:buildline), run that one combination by hand -go test -tags=<set> ./...- and leave the rest to CI. - UI screenshots in the PR - if the change touches the SPA (
external/ui/**:.tsx,styles.css, rendered markup), attach screenshots of every changed surface to the PR description. Per edit, not one image per PR.- Screenshot the running build you already verified per the UI verification rule (
npx viteinexternal/ui, browser tools). Never a mockup, a hand-drawn approximation, or a re-used older image. - One image per affected view and state - a new dialog needs open and the surface it returns to; a changed row needs the row in each state the edit reaches.
- Post before/after pairs for surfaces that already existed, so the visual diff is readable without checking out the branch.
- Add narrow (390px) and wide (1280px) when layout differs between them, and light plus dark when the change adds or edits colors (the repo ships 7 themes; cover any whose tokens the change touches).
- If a surface genuinely cannot be captured (no browser available, backend-gated screen), say so explicitly in the PR and state what was verified instead - do not silently omit it.
- Screenshot the running build you already verified per the UI verification rule (
- HTTP OpenAPI narrative - If you changed the optional OpenAI-compatible HTTP API (routes, methods, headers, request or response bodies, status codes, or anything reflected in the served spec), update
external/httpserver/openapi.go(openAPISpec) so it matchesexternal/httpserver/server.gohandlers and tests. Aligndocs/reference/http-api.md(andREADME.mdHTTP bullets) when user-facing descriptions change. - Config schema sync - If you changed the YAML config surface (
internal/configstructs: added, renamed, retyped, or removed a yaml-tagged field, enum value, or default), updateinternal/config/config.schema.json(embedded into the binary: it is whatcoddy -tvalidates against and what the site publishes) and runmake docs: the field tables ofdocs/reference/config.mdare generated from the schema'sdescriptionstrings and the loader's defaults, so a key without a description ships an empty row.TestDocsConfigSchemaMatchesStructs(internal/config/docs_schema_test.go) catches key/type drift; the prose in the Notes section of that page and the guidedocs/getting-started/configuration.mdare kept by hand. Mirror user-facing fields inconfig.example.yamlandUISchemaMap()(internal/config/ui_schema.go) as well. The same change must also update the bundled self-configuration skillinternal/skills/bundled/configure-coddy/SKILL.md(its "Configuration areas" catalog and command examples are the agent-facing view of the schema) - schema edits that skip the skill ship an agent that configures against a stale surface.
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.
- today Changed · +2 tokens per session bd057536e000
- 2d ago Changed · +6 lines · +129 tokens per session c5b1ddc91f36
- 3d ago Changed · +2 lines · +147 tokens per session 701e8b32b07d
- 7d ago Changed · +11 lines · +316 tokens per session 29600b198bd7
- 11d ago Changed · +13 lines · +329 tokens per session 6417af5d4347
- 13d ago Changed · +30 lines · +424 tokens per session f45b8a51c8af
- 19d ago Changed · +37 lines · +678 tokens per session de0d6e8b9108
- 1mo ago Changed · +37 tokens per session a2fe03fad75f
- 1mo ago Changed · +50 lines · +1,396 tokens per session 605298dd3793
- 1mo ago First seen · 116 lines · 3,044 tokens per session scan A f238078b1753
workflow is a cursor rule published in the GitHub repository coddy-project/coddy-agent (175 stars, last pushed today), licensed MIT. It adds 6,502 tokens to every session, about $0.0260 per session on Opus 5.5. 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
20-tests
Testing rules — applies when editing tests or code under test.
sciclaw-papercuts
Papercuts from Sol/ImageMagick/release cycles — release, brew, CI, and workspace hygiene for sciClaw agents.
ponytail
Ponytail, lazy senior dev mode. Always pick the simplest solution that works.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
prefer-assertions-over-defensive-checks
Prefer assertions over defensive checks when data is guaranteed to be valid.