workflow

Development workflow rules based on BDD, or behavior-driven development, where expected behavior is written as readable scenarios. They use Gherkin feature files, automated checks, unit tests, and required final verification.

In plain words
What is it for?
Use them when adding features or fixing bugs: write the correct-behavior scenario, implement it, cover boundaries with unit tests, update related schemas, and complete the required checks.
Why use it?
They make new behavior and bug fixes reproducible before implementation and keep edge cases in focused unit tests. They also require related API and configuration changes to stay synchronized.

Cursor rule for Cursor

Install

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.

agentmods
npx agentmods add rules/coddy-project/coddy-agent/workflow
Clone the repo
git clone --depth 1 https://github.com/coddy-project/coddy-agent

Made for: Cursor.

Per session 1,476 This file is loaded in full into every session.
When invoked 1,476 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.01476 $0.01476
Opus 5 $0.00738 $0.00738
Sonnet 5 $0.00295 $0.00295
Haiku 4.5 $0.00148 $0.00148

Measured yesterday against content hash 3f1651237d85, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

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 yesterday.

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.

.cursor/rules/workflow.mdc · 65 lines

How it starts

The opening of the file, as written. The whole thing — 65 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 .feature spec in features/ 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 .feature files 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 .feature specs stay in features/.

New behavior (TDD / BDD)

When adding or changing behavior (including words like feature, add, implement, фича, добавить):

  1. Add or extend the happy-path .feature spec in features/ (and/or a failing unit test) that asserts the observable outcome (red). Edge cases go in unit tests, not the spec.
  2. Run the narrowest test scope that proves the failure is real.
  3. Implement the smallest change that makes the test pass (green).
  4. Run make test (default, http, scheduler, ui-build then http,ui, combined scheduler tags). Everything must pass.
  5. 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 .cursor/rules/ui-verification.mdc (npx vite in external/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.
  6. 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 matches external/httpserver/server.go handlers and tests. Align docs/http-api.md (and README.md HTTP bullets) when user-facing descriptions change.
  7. Config schema sync - If you changed the YAML config surface (internal/config structs: added, renamed, retyped, or removed a yaml-tagged field, enum value, or default), update docs/config.schema.json and the tables in docs/config-reference.md to match. TestDocsConfigSchemaMatchesStructs (internal/config/docs_schema_test.go) catches key/type drift, but descriptions, defaults, enums-in-prose, and the reference tables are not auto-checked - keep them accurate by hand. Mirror user-facing fields in config.example.yaml and UISchemaMap() (internal/config/ui_schema.go) as well. The same change must also update the bundled self-configuration skill internal/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.
  8. Update documentation and specs if needed.
  9. Run make lint (golangci-lint). Fix reported issues.

Read the full file on GitHub · 65 lines

Changes

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.

  1. yesterday First seen · 65 lines · 1,476 tokens per session scan A 3f1651237d85

Subscribe to this mod's changes

workflow is a cursor rule published in the GitHub repository coddy-project/coddy-agent (127 stars, last pushed 3d ago), licensed MIT. It adds 1,476 tokens to every session, about $0.0074 per session on Opus 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.