spec-writing
Skill1 starsChanged 28 days agoMITView on GitHub
Conductor-only. How to write entity Behavior cases that produce good tests — When/Then shape, granularity, state transitions, and test mapping. Use when adding an entity page, refining behavior during /project:interview, or splitting a vague case.
17 other projects use a version of this.
Adopted by
Most recently taken up by
- rajanrx/skillstheir own version, first seen Nov 8, 2026
- crbnos/carbontheir own version, first seen Nov 7, 2026
- rioffe/specchecktheir own version, first seen Nov 6, 2026
- ragna-ai/ragna-studiotheir own version, first seen Nov 1, 2026
- OrionicsLtd/claude-skillstheir own version, first seen Nov 1, 2026
- converge-ai-labs/agent-foundationtheir own version, first seen Oct 29, 2026
Other versions17 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 17
- crbnos/carbon★ 2.8ksame name
- converge-ai-labs/agent-foundation★ 825same name
- itseffi/agentic-os★ 114same name
- khuynh22/agent-dev-team★ 9same name
- rioffe/speccheck★ 5same name
- anyoneanderson/agent-skills★ 3same name
- mariomile/builder-os★ 2same name
- rajanrx/skills★ 2same name
- bedomax/webdesigner-agent★ 1same name
- OrionicsLtd/claude-skills★ 1same name
7 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository20 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- adversarial-reviewSkill
- clean-architectureSkill
- decision-recordingSkill
- design-system-checkSkill
- dispatch-handoffSkill
- feature-branchingSkill
- finding-dispositionSkill
- git-recoverySkill
- gotcha-recordingSkill
- human-checkpointSkill
- plan-reviewSkill
- plan-writingSkill
- pr-createSkill
- simplicity-ladderSkill
- subagent-contractSkill
- subagent-dispatchSkill
- tdd-loopSkill
- update-toolkitSkill
- wiki-updateSkill
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.
0
Common
Most of the 15 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
Falsifiable: Every case must imply a specific failing assertion.
“Common” is measured: kept by at least 6 in 10 of the 15 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Writing Behavior Cases
Behavior cases on an entity page (or [infra] concept page) are the executable spec; each becomes a failing test.
Read first
docs/wiki/requirements.md— cases must serve a requirement.docs/wiki/architecture.md— testing strategy sets granularity (unit vs integration).- Existing entity pages in the same domain to match phrasing.
Shape
- [ ] B<N>: When <condition>, <subject> <observable outcome>.Good:
- [ ] B1: When a user submits valid credentials, the server responds 200 and sets the session cookie.- [ ] B2: When a user submits an unknown email, the server responds 401 and sets no session cookie.- [ ] B3: When an IP has 5 failed logins in the last 60 seconds, the next attempt gets 429.
Bad: Logins work correctly. (untestable) · Validates inputs, hashes password, looks up user, and returns session. (four cases) · Login is fast. (unmeasurable).
Rules
- One observable behavior per case. Split any "and"/"or" outcome needing multiple assertion groups.
- When/Then trigger and outcome.
- No implementation details ("calls
validate_email()" is how, not what an external caller observes). - Measurable ("completes in <200ms for ≤1KB input", not "fast").
- Single layer (HTTP boundary vs domain function).
- Explicit state ("When the user is already logged in and submits the form, …").
- Errors are separate cases, never "(also handles errors)".
- Falsifiable: Every case must imply a specific failing assertion.
States and numbering
[ ]defined, no test ·[~]test written and confirmed failing ·[x]passing (updated in the same commit).- Cases never move backwards: when behavior changes, strike through the
[x]case with a pointer to a newly appendedB<N>(never reuse or renumber IDs).
Tie cases to tests
## Tests
- B1 → `test_login_succeeds_with_valid_credentials`
- B2 → `test_login_fails_with_unknown_email`After writing cases
Bump the page's updated: date, and update docs/wiki/requirements.md if a case reveals a missing requirement.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

