spec-grilling
Skill1 starsChanged 2 months agoMITView on GitHub
Run the Spec sitting — grill the design one question at a time against the goal-blind survey, recording the ADRs and glossary terms as they resolve, then draft prd.md, acceptance.md, architecture.md and environment.md for one signature. Surveying the code is codebase-research's; the code-cold fix of the bundle, spec-review's.
In this repository41 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- acceptance-criteriaSkill
- aim-higherSkill
- api-designSkill
- architecture-designSkill
- browser-testing-with-devtoolsSkill
- ci-cdSkill
- codebase-designSkill
- codebase-researchSkill
- code-reviewSkill
- code-simplificationSkill
- comprehension-quizSkill
- debugging-and-error-recoverySkill
- deprecation-and-migrationSkill
- documentation-and-adrsSkill
- doubt-driven-developmentSkill
- environment-manifestSkill
- gauntlet-loopSkill
- git-workflowSkill
- handoffSkill
- idea-refineSkill
- incremental-implementationSkill
- interview-meSkill
- literate-explainerSkill
- observability-and-instrumentationSkill
- orchestratorSkill
- performance-optimizationSkill
- plan-breakdownSkill
- preflight-readinessSkill
- project-setupSkill
- pull-requestSkill
- quality-verificationSkill
- security-and-hardeningSkill
- shipping-and-launchSkill
- source-driven-developmentSkill
- spec-reviewSkill
- test-driven-developmentSkill
- to-prdSkill
- using-agent-skillsSkill
- worktreeSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Not this: mapping the code as it stands (codebase-research, before the sitting opens), or fixing the drafted bundle code-cold (spec-review, …
- Very specific: line 25
Not this: a refactor introducing no term and settling no trade-off (plan-breakdown).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
spec-grilling — the one design sitting
Purpose
Stage: Spec. Principles 1, 5, 6, 7, 10.
The single Spec working session: it grills the design against the goal-blind survey, pins the terms into
CONTEXT.md and the durable trade-offs into docs/adr/, and drafts the four Spec files unsigned in the
same pass, for one signature over the bundle. One sitting rather than one skill per file, because
re-entering one design conversation from a fresh context each time is how a spec churns without deepening.
When to use / when to skip
- A feature's design is open before any PRD exists — the terms, the mechanism, the shape of the code, what a consumer of its surface may depend on — or someone asks to be grilled, to stress-test a design, to pin the domain model, or to learn what has to be settled first.
- A hard-to-reverse decision is about to be taken in passing, with nothing written down.
- Not this: mapping the code as it stands (
codebase-research, before the sitting opens), or fixing the drafted bundle code-cold (spec-review, once it closes). - Not this: a refactor introducing no term and settling no trade-off (
plan-breakdown); a framework question mid-build (source-driven-development). - One existing term and nothing contested is a whole sitting in two questions and one glossary entry; padding it manufactures a record nobody can use.
Inputs
docs/features/<slug>/research.md— helps:## Codebase map,## Structural factsand## Open items for Planare what the blind-spot pass scans and a variant stands on, and a structural item under the last is the sitting's, not Plan's · without it: runcodebase-research, else walk the entry points, the imports and two shipped handlers, marking thatderived.docs/features/<slug>/intent.md— helps: Outcome · User · Why · Success · Constraints · Out-of-scope are what the design serves · without it: read the prompt as the intent, marking what you reconstructderived.CONTEXT.mdanddocs/adr/— helps: terms come back verbatim and no accepted decision is contradicted in silence · without it: coin only what this sitting pins.- A design reference where the feature has a look — helps: a link or exported screens plus the states
covered · without it: record that none exists (
to-prdowns howprd.mdnames the states).
Fill a gap with at most three questions, and only where the answer changes the shape of the work — the design questions below are the method, not a gap.
Process
- Read the intent and the survey, then lay the open decisions out in dependency order — settle the one others hang off first, or it gets answered twice.
- Grow that tree with a blind-spot pass read off the survey, not off recollection — an invariant
this feature would break, prior art settling a question you were about to ask, an open item somebody
has to own. Present three to five, a line each. Ask which parts of the domain the person knows cold,
and scan hardest where the ignorance is
(
finding-unknowns.md). Carry a structural branch — an intent says what the product does, never how the code is arranged, so a tree grown from one is all mechanism and no shape. Three questions, each constraining the next:
Ask What it tests Which parts earn their existence? codebase-design's deletion test, part by partWhat has to be swappable, and what are the two things that swap? a second that cannot be named is itself the answer What may a consumer of this surface depend on? resource model, error envelope, pagination, versioning — api-design's groundA question is load-bearing when it is hard to reverse, surprising without context and the result of a real trade-off, all three cleared before it is answered. On one of those, dispatch
codebase-designorapi-designas fresh subagents in one message (safety-rails.md, One writer per file), each producing a genuinely different design; present the set with your recommendation and reasoning, for the person to pick or amend. A set is one question, and the amendment ("C, but move the seam up") is what the record captures. State the rest as batched defaults, a line each, open to objection.- Interview one question at a time, each carrying your recommended answer, and wait for the reply.
Spend a round only where the answer changes the design; an uncontested recommendation is one stated
line. Where the codebase answers, read
research.mdand then the code rather than making the person recite it. With nobody there, take the recommendation as the default, give its reason in a line, land it where the person reviews — a record if it clears the three legs, else a row inarchitecture.md's open questions — and log onedocs/session-log.mdentry (state-schema.md). - Sharpen the domain model as you grill: challenge a term whose use has drifted from its
CONTEXT.mdentry, propose one canonical name for a word doing two jobs, invent the edge case forcing the boundary between two concepts, surface a claim the code contradicts and name the file. - Capture each thing the moment it resolves, never in a batch. Append a term to
CONTEXT.mdas it crystallises; write a record once the decision clears the same three legs, and none otherwise — a question worth three subagents is worth one, a question missing a leg is worth none. Take the template and the next number fromdocumentation-and-adrs, hold the record to the decision, its reason and what it ruled out, and supersede an accepted one rather than editing it, linked both ways. - Draft the four files in this same sitting, applying each discipline in turn instead of handing the
conversation on:
to-prd, thenacceptance-criteriaandenvironment-manifest, thenarchitecture-designlast, whose scenario trace needsacceptance.md's ids. Cite records by id, take glossary terms verbatim. - Close the sitting — every file unsigned, the bundle handed to
spec-review(code-cold, fixes in place, writes no file), then one signature over all of it. Nothing else in Spec asks for a second.
Rationalizations
- "I'll put the questions in one message and save the round-trips." A batch reads as a form and comes back shallow, and the dependency order goes with it.
- "I know this codebase; I'll read as the questions come up." That answers the questions you already have; the survey hands you the ones you have not thought of, before a record freezes an answer.
- "This one is probably worth a record." "Probably" is usually a leg missing, and a reversible or unsurprising choice is a batched default.
- "Structure is
architecture-design's branch." That skill reconciles decisions already taken; a structural question raised at its gate is answered cold, where "C, but move the seam up" has nowhere to go. - "I'll note the term once the sitting is over." The rationale for a definition lives about ten minutes.
- "The design belongs in the prd, all in one place." The prd cites records by id; co-location is not cohesion.
Red flags
- A second question asked before the first is answered.
- A blind-spot brief built from recollection rather than the survey's three sections.
- A tree with no structural branch on a feature that adds a part, a dependency or a surface.
- Variants fanned out on a question clearing none of the three legs, or a load-bearing one settled out of your own single answer.
- A record that fails a leg, or an accepted one edited in place instead of superseded.
- Implementation detail in
CONTEXT.md, or a second##section holding terms.
Verification
research.mdwas read before the first question, and the blind-spot brief drew on it.- Every decision in the tree is resolved, prerequisites first; each one nobody answered carries a
default, its reason and a
docs/session-log.mdentry. - The structural branch was carried (or the feature adds no part, dependency or surface); each load-bearing question went to variants, the rest to batched defaults.
- Every fuzzy or conflicting term is one canonical
CONTEXT.mdentry, or was left out as general programming vocabulary. - Every decision clearing all three legs has a record in
docs/adr/, and no record there misses a leg. - The four drafts exist unsigned, each reported against its cap, every reconstructed value
derived. intent.md's Outcome and Success, re-read last, are satisfied by the design.
Outputs & handoff
| Path | Cap | Shape |
docs/adr/ADR-<NNN>-<slug>.md | 350 words | documentation-and-adrs' template, numbered on from the highest in docs/adr/ |
CONTEXT.md (repo root) | 1,000 words | # <project> above one ## Glossary heading and its entries — below |
docs/features/<slug>/prd.md | 800 words | to-prd's Outputs & handoff |
docs/features/<slug>/acceptance.md | 1,200 words | acceptance-criteria's |
docs/features/<slug>/environment.md | 30 rows | environment-manifest's |
docs/features/<slug>/architecture.md | 2,000 words | architecture-design's |
docs/session-log.md | 60 words an entry | state-schema.md |
CONTEXT.md is a glossary and nothing else — no implementation detail, no decision log, no term that is
general programming vocabulary rather than this domain's. Entries sit under the single ## Glossary
heading, clustered with ### once clusters emerge; a second ## holding terms leaves the next appender
no way to choose. Where no file exists, the first resolved term creates it, titled as above.
**Draft**:
An edit the user has made that the server has not yet acknowledged.
_Avoid_: pending edit, unsaved changePick one word and demote its rivals under _Avoid_; say what a term is, never what it does; sharpen
an entry already there rather than defining it twice. Renaming a term or superseding a record means
updating its referrers in the same commit.
Returned in conversation: each file's measured size against its cap — an over-cap draft is handed on as
over cap, never as one that fit — and the unsigned bundle for spec-review. No STATE.md row: the board
is born from a sliced plan (plan-breakdown,
state-schema.md).
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.

