user-spec-planning
Skill299 starsChanged 11 days agoMITView on GitHub
Plans a feature, bug fix, or refactor as work/{feature}/user-spec.md through an adaptive interview, code research, and validation before implementation. Use whenever requirements should be agreed before coding, including thinking a feature through, describing what it must do, resuming an existing spec, and "/new-user-spec".
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 13 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Ask 3–4 questions per batch and run as many batches as needed.
- Distinctive: line 26
When the user does not know, offer concrete options or break a required question down.
- Very specific: line 31
When Project Knowledge exists, read its SKILL.md as the router and load only the references relevant to the task.
- Distinctive: line 38
If the user explicitly asks to continue an existing user spec and provides its feature folder or slug:
- Very specific: line 41
Use that exact work/{feature} directory.
- Very specific: line 42
Read logs/userspec/interview.yml and the existing feature artifacts.
- Distinctive: line 49
when all required topics are complete and no substantive draft exists, run the completeness review.
- Distinctive: line 51
when a filled draft already exists, validate it again with fresh reviewers rather than trying to restore old reviewer responses.
- Very specific: line 56
Use the current request as the initial task description.
- Distinctive: line 60
If that exact folder already contains prior user-spec work, ask whether to continue that work in the same folder or create the new spec …
- Distinctive: line 67
If at any point the request appears to contain several independently valuable outcomes, explain the proposed split and ask the user whether …
- Distinctive: line 96
If it returns findings, validate and deduplicate them.
- Distinctive: line 145
If reviewers return findings, validate and deduplicate them.
- Very specific: line 151
If all three results are clean, validation ends immediately.
- Very specific: line 152
If accepted findings were fixed after rounds 1 or 2, commit chore(userspec): validation round {N} — {summary} and launch the next full …
- Distinctive: line 154
After round 3, stop and show any remaining findings.
- Distinctive: line 157
If a session ends after drafting, a later run starts a new validation from round 1.
- Distinctive: line 177
Ask 3–4 questions about different gaps, using Project Knowledge and code evidence when available.
- Very specific: line 179
After the user responds, append the full question batch and answer to conversation_history.
- Very specific: line 180
Update each affected topic's score, value, and gaps, plus interview_metadata.last_updated, and save immediately.
- Distinctive: line 185
Use scores as a compact completeness signal: detailed 80–95%, brief 50–70%, vague 20–40%, and not mentioned 0%.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
<!-- Generated by sync-to-codex v1. Do not edit directly. -->User Spec Planning
Thorough adaptive interview → codebase research → completeness review → user-spec.md → three-lane
validation → user approval. Output: work/{feature}/user-spec.md with status approved.
Interview Style
Conduct the interview in the language the user writes in. Be an engaged co-thinker: propose solutions, challenge weak answers with concrete examples or code evidence, and keep interviewing until the applicable requirements are understood.
- Ask 3–4 questions per batch and run as many batches as needed.
- Save every question and answer verbatim after each user response.
- Give one substantive challenge to a weak or unclear answer, then accept a supported answer and move to the next gap.
- When the user does not know, offer concrete options or break a required question down. An optional detail may remain an acknowledged limitation; a required detail may not remain TBD.
- Record material choices, rejected alternatives, and reasons in the relevant topic summary so
they survive into
Accepted Decisions.
When Project Knowledge exists, read its SKILL.md as the router and load only the references
relevant to the task. Missing Project Knowledge does not block planning.
Workflow
1. Start or Resume
If the user explicitly asks to continue an existing user spec and provides its feature folder or slug:
- Use that exact
work/{feature}directory. Do not search for other interviews. - Read
logs/userspec/interview.ymland the existing feature artifacts. Treat any additions or changes in the current request as interview input. Derive the next action from the interview and artifacts:
- continue with the earliest required topic below 85% or with an unresolved gap;
- once the general task is understood, create
code-research.mdif it does not exist, then use it for the remaining questions; - when all required topics are complete and no substantive draft exists, run the completeness review;
- when a filled draft already exists, validate it again with fresh reviewers rather than trying to restore old reviewer responses.
Otherwise start a new spec:
- Use the current request as the initial task description. If the intended work is not described,
ask the user what they want to plan. Infer
feature,bug, orrefactoring. - Choose a kebab-case slug and tell the user which
work/{slug}folder will be used. Do not pause only to confirm the slug. - If that exact folder already contains prior user-spec work, ask whether to continue that work in the same folder or create the new spec under another slug. If the user chooses the existing folder, follow the resume path above. Never overwrite prior work implicitly.
- Resolve the directory of this loaded
user-spec-planningskill, then from the target project root run itsscripts/init-feature-folder.shwith{slug}. Initialize the interview metadata with the start time, last-update time, andin_progressstatus, then begin the interview.
If at any point the request appears to contain several independently valuable outcomes, explain the proposed split and ask the user whether to separate them. Only after the user agrees, read and apply splitting-user-specs.md. Otherwise do not read that reference and continue the normal workflow.
2. Interview and Research
- Score the initial description against every interview topic.
- Complete the general-understanding topics using the interview loop below.
- Once the intended outcome is clear enough to research, launch
code-researcherwith the feature path and description. Readcode-research.mdand use its evidence in later questions. - Complete user-flow and integration topics, including applicable failures, edge cases, constraints, deployment, manual user actions, and verification.
- Make a final pass over every remaining required gap. If a later answer exposes a factual code gap, or the current side of a changed process is still unclear, run focused code research again.
Interview for observable evidence that would prove important behavior works, but do not ask the user to choose test types or design a testing strategy. Derive the smallest reliable automated, agent, visual, smoke, or manual check later from the behavior, project, and risk.
Deepen relevant edge cases and error scenarios, including scenarios the user has not considered even when the corresponding interview topic already meets the completion threshold.
3. Check Interview Completeness
Launch a fresh interview-completeness-checker with the feature path and intended scope. It reads
the interview, code research, and relevant Project Knowledge and returns the common reviewer JSON
directly.
If it returns findings, validate and deduplicate them. Explain what the current requirements say and
how the feature would work, then what the checker found, what it can cause, whether you agree and
why, and what you recommend. Present the targeted questions or exact local corrections in one batch.
Apply only what the user explicitly answers or approves; a user_decision_required: false value is
not approval. Record requirement answers through the interview loop, then run a fresh checker.
Draft only after it returns clean.
4. Draft the User Spec
Fill the initialized work/{feature}/user-spec.md in place without replacing a substantive
existing document. Preserve its executor instruction, replace every placeholder, and remove only
the conditional sections that the template says do not apply. Keep headings in English and write
the specification content in the user's language.
What We Are Buildingis self-contained without the interview.Whystates concrete user value.- For a changed process,
What Changesgives one coherent current-to-target description per process. Keep detailed target behavior out of this section and omit the section for net-new work. How It Should Workowns the target business logic. Organize it by meaningful user actions or system events when useful, and include only applicable checks, branches, state changes, results, and important failure or stop behavior. Match the detail to the task instead of forcing a fixed scenario schema.Scope and Constraintsmakes both included and excluded work explicit.- Preserve substantive risks and accepted product or technical decisions; omit those sections when they add no useful information.
Acceptance and Verificationpairs meaningful observable results with concrete checks at the smallest reliable boundary. Do not repeat every implementation detail or require user checks the agent can perform.- Include agreed outcomes and acknowledged limitations; omit exploratory tangents that do not clarify the implementation contract.
Commit: draft(userspec): create user-spec for {feature}.
5. Validate the User Spec
For every validation round, launch all three fresh reviewers in parallel:
userspec-quality-validator— document completeness, behavioral clarity, verification, contradictions, and template compliance;userspec-adequacy-validator— feasibility, proportionality, architecture fit, insufficient or unnecessary complexity, and demonstrably simpler existing approaches;skeptic— factual claims about current files, symbols, dependencies, integrations, and behavior.
Resolve assets/user-spec.md.template from this loaded skill and supply that exact path to
userspec-quality-validator together with the feature path. Supply the complete remaining inputs
required by each agent. All reviewers may inspect code; overlap is acceptable when independently
supported evidence falls within more than one lane.
If reviewers return findings, validate and deduplicate them. Explain what the current specification
says and how the feature would work, then what reviewers found, what it can cause, whether you agree
and why, and what you recommend. Present exact proposed corrections in one batch and apply only what
the user explicitly approves. Record requirement answers through the interview loop before changing
the specification; user_decision_required: false is not approval.
- If all three results are
clean, validation ends immediately. - If accepted findings were fixed after rounds 1 or 2, commit
chore(userspec): validation round {N} — {summary}and launch the next full round. - After round 3, stop and show any remaining findings. Do not launch round 4 without a new explicit user request.
If a session ends after drafting, a later run starts a new validation from round 1; old reviewer responses are not persisted or reconstructed.
6. Obtain Approval
Show the user the spec path and validation summary. A requested content change returns the document to validation; immediate approval is valid only when the validated content did not change.
After explicit approval:
- Set the user-spec frontmatter status to
approved. - Set
interview_metadata.statustocompleted. - Commit
chore(userspec): approve user-spec for {feature}. - Return the absolute user-spec path and tell the user it can be implemented in a new chat.
Interview Loop
Repeat inside the current topic group:
- Find required topics below 85% or with a missing substantive answer or unresolved gap.
- Ask 3–4 questions about different gaps, using Project Knowledge and code evidence when available.
- After the user responds, append the full question batch and answer to
conversation_history. - Update each affected topic's
score,value, andgaps, plusinterview_metadata.last_updated, and save immediately. - Continue until every required topic in scope has score ≥85%, a substantive value, no TBD, and no unresolved gap except an explicitly accepted limitation.
Use scores as a compact completeness signal: detailed 80–95%, brief 50–70%, vague 20–40%, and not mentioned 0%. Optional topics are covered when the task makes them relevant.
For bugs, emphasize reproduction, expected versus actual behavior, severity, root cause, and regression risk. For refactoring, emphasize the current problem, target structure, compatibility, migration, and stability guarantees.
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- AgentShekel/agentic-workflow★ 4same name
- stepanenkoviktor0110-boop/ai-dev-methodology★ 2same name
- antonbru/hermes-ai-dev★ 0same name
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 repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- skills/skill-master/references/agents.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- code-reviewingSkill
- code-writingSkill
- documentation-writingSkill
- infrastructure-setupSkill
- layout-reviewingSkill
- layout-writingSkill
- methodologySkill
- project-initializationSkill
- prompt-masterSkill
- security-auditorSkill
- skill-masterSkill
- test-masterSkill
- code-reviewingSkill
- code-writingSkill
- documentation-writingSkill
- infrastructure-setupSkill
- layout-reviewingSkill
- layout-writingSkill
- methodologySkill
- project-initializationSkill
- prompt-masterSkill
- security-auditorSkill
- skill-masterSkill
- test-masterSkill
- user-spec-planningSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

