spec
Skill3 starsChanged 4 months agoMITView on GitHub
Synthesize the current conversation into a published spec, test seams included.
168 other projects use a version of this, 3 of them edited.
Adopted by
Most recently taken up by
- thistleknot/skillstheir own version, first seen Nov 8, 2026
- varelaia/claude-skills-publictheir own version, first seen Nov 8, 2026
- mrlemoos/galiciatheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- standardagents/skillstheir own version, first seen Nov 8, 2026
- Surething-io/cockpittheir own version, first seen Nov 8, 2026
Used with
Projects with it also use backprop, ios-clean and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
JuliusBrusseeSkillbackprop
Bug → spec protocol. When a bug is found or a test fails, trace the cause, decide whether a new §V invariant would catch recurrence, append to §B. This is the one non-obvious thing SDD does that plan-then-execute doesn't. Triggers on test failure, bug report, post-mortem, or explicit user ask.
Also in 4 projects that use this
Saqlain-811Skillios-clean
Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)
Also in 5 projects that use this
Saqlain-811Skillios-fix
Autonomous iOS bug fixer. (gstack)
Also in 5 projects that use this
bastosSkillios-design-review
Review iOS app UI/UX design quality using Apple's design principles and the Liquid Glass-era design language from WWDC25/26. Use when asked for a design review, UX critique, visual design assessment, or evaluation of an app's interface quality, design intent, alignment with the new Apple design system, or usability. Triggers: "design review", "UX review", "visual design critique", "review the UI", "does this design work", "evaluate this interface", "design feedback", "Liquid Glass review".
Also in 5 projects that use this
ShreyRaviSkillplan-tune
Self-tuning question sensitivity + developer psychographic for gstack (v1: observational). Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences (never-ask / always-ask / ask-only-for-one-way), inspect the dual-track profile (what you declared vs what your behavior suggests), and enable/disable question tuning. Conversational interface — no CLI syntax required.
Also in 7 projects that use this
timurgaleevSkilldocument-generate
Generate missing docs for a feature, module or project as tutorials, how-tos, reference and explanation.
Also in 6 projects that use this
- +2 more from Saqlain-811
Other versions168 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- gregwebs/skills-sdlc★ 2010% same
- cstrlcs/skills★ 214% same
- dimitritholen/1337-claude★ 038% same
Wrote their own version · 165
- garrytan/gstack★ 141ksame name
- getsentry/sentry-react-native★ 1.8ksame name
- JuliusBrussee/cavekit★ 1.1ksame name
- kdlbs/kandev★ 1.1ksame name
- getsentry/sentry-dart★ 878same name
- poshan0126/dotclaude★ 871same name
- codewithmukesh/dotnet-claude-kit★ 808same name
- SparkDevNetwork/Rock★ 701same name
- hyperlink-academy/leaflet★ 527same name
- strands-agents/box★ 503same name
155 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 repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- mod/CLAUDE.mdCLAUDE.md
- sync-upstreamSkill
- afkSkill
- codebase-designSkill
- commitSkill
- compound-refreshSkill
- compoundSkill
- deputySkill
- diagnosing-bugsSkill
- grillingSkill
- handoffSkill
- implementSkill
- improve-codebase-architectureSkill
- prototypeSkill
- questionnaireSkill
- researchSkill
- review-gateSkill
- setup-cantrips-loopSkill
- setup-git-guardrailsSkill
- simplifySkill
- tddSkill
- teachSkill
- ticketsSkill
- wait-whatSkill
- writing-for-agentsSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 145 edited versions we read keep these.
7
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 17
Read the repo's decision memory: the AGENTS.md conventions already in context, plus the records bearing on this feature from whichever …
- Distinctive: line 25
Put the seams and step 2's ADR questions to the user as one numbered round, and wait for the answers before drafting.
- Distinctive: line 55
Run three checks over the whole draft:
- Distinctive: line 60
Read the repo to settle what a check can settle, and propose softer wording where none can.
- Distinctive: line 73
Put the residue to the user: one line saying what the reread fixed or softened on its own, then the questions only the user can settle, as …
- Distinctive: line 76
Leave the draft out of the message.
- Distinctive: line 122
Do NOT include specific file paths or code snippets.
“Common” is measured: kept by at least 6 in 10 of the 145 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
Produce a spec from the current conversation and codebase understanding.
Synthesize what you already know — the interview, if any, already happened (/grilling).
Where the conversation holds nothing the user decided or approved about the design — a deputy's answer counting as the user's — recommend /grilling and stop there, drafting nothing.
Process
- Explore the repo to understand the current state of the codebase, if you haven't already. Use the project's domain vocabulary throughout the spec.
- Read the repo's decision memory: the
AGENTS.mdconventions already in context, plus the records bearing on this feature from whichever knowledge stores the loop config enables — ADRs for decisions already made, solutions for gotchas and approaches that failed before. The loop config translates the storage verbs: it isdocs/agents/cantrips-loop.md, and when that doc is absent the plugin defaults (defaults.md) govern. Fold whatever applies into the spec's decisions. Every standing ADR — one whose status isaccepted— whose subject this feature touches becomes a question in step 3's round, the ones you judge the design compatible with included: state what keeping the ADR concretely preserves in this feature's artifacts, and offer keep, revise or retire. On a revise or retire answer, name the ADR and the revised decision in the spec, and note that the revision routes through/compoundat loop end;/compoundis the ADR store's sole writer, so the standing record stays as written until then. - Propose the test seams — the places
/implementwill drive TDD (seam vocabulary:/codebase-design). Prefer existing seams to new ones; place any new seam at the highest point you can. The fewer seams across the codebase, the better - the ideal number is one.
Put the seams and step 2's ADR questions to the user as one numbered round, and wait for the answers before drafting.
Where this session engaged a deputy through /deputy and has not dismissed it, what is put to the user here goes to the deputy instead, as ROUNDS.md says, and the deputy's reply is printed verbatim under a one-line header before anything acts on it; otherwise it goes to the user as written.
Format a round like so:
❓ **Q1** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices>
➡️ <your recommended answer>
---
❓ **Q2** - **<question title>**: <question body, might be multiple paragraphs, including multiple choices>
➡️ <your recommended answer>Word each question so "yes" accepts your recommended answer.
Number on from the conversation's last question where an interview preceded, so an answer naming a number points at one question.
- Draft the spec into a file, using the template below. Where the loop config translates the publish-spec verb to a file path, write the draft straight to that path; on any other backend, write it to the OS temp directory.
Have a sub-agent reread the draft: a fresh dispatch, in the background (Claude Code: do not use
run_in_background: false). Give it the draft's path, the brief below, and, pasted verbatim, everything a decision can trace to: each question put to the user as it was asked — options and recommendation included — with its answer, labelled the user's or a deputy's by who gave it, step 3's round among them, and every exploration or research report the conversation folded in. The user's own statements that decided or approved something outside a numbered question travel with them.<reread-brief> Reread the draft spec at the path you were given, against the material pasted with it and against the repo. Edit nothing yourself: report each finding with its evidence and a proposed wording. Run three checks over the whole draft:- Traced — every decision traces to something the user answered or approved, an answer labelled a deputy's counting as the user's. Report one that does not as a question for the user.
- Evidenced — every claim about the code, and everything a decision relies on the code to provide, is no firmer than its evidence. Read the repo to settle what a check can settle, and propose softer wording where none can.
- Covered — everything the problem statement and the user stories raise is covered by a decision or listed out of scope.
Mark each finding as changing a decision, a claim or a gap, or as wording only. Where a check finds nothing, say so explicitly.
</reread-brief>Model selection. Use the platform's balanced mid-tier model for the rereader when the current harness exposes a known override. In Claude Code this is the Sonnet class. In Codex, apply this tier only when the active dispatch primitive exposes an explicit model or custom-agent selector; task wording alone does not select a different model. Otherwise omit the override and inherit the parent model -- a working pass on the parent model beats a broken dispatch.
You are the draft's only writer: apply to the file each finding that needs no user call, and hold the rest for step 6. Then message the same sub-agent to reread the file. Repeat until a pass reports nothing that changes a decision, a claim or a gap beyond the findings already held, three passes at most; wording-only findings are fixed without calling for another pass.
- Put the residue to the user: one line saying what the reread fixed or softened on its own, then the questions only the user can settle, as one numbered round ending the message, in step 3's format.
Where this session engaged a deputy through
/deputyand has not dismissed it, what is put to the user here goes to the deputy instead, as ROUNDS.md says, and the deputy's reply is printed verbatim under a one-line header before anything acts on it; otherwise it goes to the user as written. A third pass that still changed a decision, a claim or a gap is residue too: say the cap was hit. Leave the draft out of the message. With no residue, publish without stopping. Apply the user's answers to the draft. Where an answer departs from its question's recommendation, run one more pass over the applied answers, by the means of step 5's later passes, and apply what it finds; a finding that needs the user opens one more numbered round. Where this session engaged a deputy through/deputyand has not dismissed it, what is put to the user here goes to the deputy instead, as ROUNDS.md says, and the deputy's reply is printed verbatim under a one-line header before anything acts on it; otherwise it goes to the user as written. - Publish the spec, once — the publish-spec verb, translated by the loop config from step 2. A draft written at the verb's own path is published as it stands; any other goes through the verb byte for byte, and its temp file is then removed without mention. A spec is a point-in-time decision record, and execution state lives in git and the backend, so work-status lines (pending, in-progress, done) never enter the body. Where this conversation holds the spec's publication and no implementation after it, a correction the user asks for rewrites the body in place, by the backend's own means and with no reread; where tickets were published from the spec in between, carry the rewrite into every ticket it touches in the same turn, and name the tickets changed. Anywhere else the body is frozen, and a correction arrives as a dated annotation through the annotate-spec verb.
<spec-template>Problem Statement
The problem that the user is facing, from the user's perspective.
Solution
The solution to the problem, from the user's perspective.
User Stories
A LONG, numbered list of user stories. Each user story should be in the format of:
- As an
<actor>, I want a<feature>, so that<benefit>
<user-story-example>
1. As a mobile bank customer, I want to see balance on my accounts, so that I can make better informed decisions about my spending
</user-story-example>This list of user stories should be extremely extensive and cover all aspects of the feature.
Implementation Decisions
A list of implementation decisions that were made. This can include:
- The modules that will be built/modified
- The interfaces of those modules that will be modified
- Technical clarifications from the developer
- Architectural decisions
- Schema changes
- API contracts
- Specific interactions
Do NOT include specific file paths or code snippets. They may end up being outdated very quickly.
Exception: if a prototype produced a snippet that encodes a decision more precisely than prose can (state machine, reducer, schema, type shape), inline it within the relevant decision and note briefly that it came from a prototype. Trim to the decision-rich parts, not a working demo, just the important bits.
Test Seams
The seams the user approved in step 3 — where TDD will bite during implementation. For each seam: the interface under test, what behavior the tests will verify through it, and prior art (similar tests in the codebase).
Out of Scope
A description of the things that are out of scope for this spec.
Further Notes
Any further notes about the feature.
</spec-template>Spec published → close with a flow pointer (the message's final paragraph, a blockquote in full italics opening Next: — or Next steps: over one bullet per pointer — each pointer naming its skill the way this skill was itself invoked, same prefix and namespace, and ending in a one-clause rationale after an em dash) — a choice, rendering the step whose condition holds:
/tickets(user-invoked) where the work spans multiple sessions or context windows — in a fresh context./implement(user-invoked) otherwise — in a fresh context.
Where this session engaged a deputy through /deputy and has not dismissed it, a choice is put to the deputy as ROUNDS.md says and rendered as the one step it chose, any other closing is rendered as written, and each rendered step that names a skill is then taken: one marked (user-invoked) by notifying the user where the harness has a tool for it and waiting for them to type it, any other by invoking it, notifying nobody.
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.

