tech-spec-planning
Skill4 starsChanged 29 days agoMITView on GitHub
[METHODOLOGY] Tech-spec creation (architecture, decisions, testing strategy, implementation plan) from approved user-spec. SDD phase 2: the single task of the `{name}-spec` engagement, owned by dev-tech-architect. Preloaded by dev-tech-architect and dev-lead.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- stepanenkoviktor0110-boop/ai-dev-methodologytheir own version, first seen May 31, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- stepanenkoviktor0110-boop/ai-dev-methodology★ 2same 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 repository48 other files it gives its agents.
- skills/dev-methodology/references/agents.mdAGENTS.md
- skills/skill-authoring/references/agents.mdAGENTS.md
- acceptance-protocolSkill
- agency-intakeSkill
- ai-visibility-methodologySkill
- banner-design-guideSkill
- benchmark-researchSkill
- brand-methodologySkill
- code-reviewingSkill
- code-writingSkill
- codex-bridgeSkill
- deploy-pipelineSkill
- design-assets-guideSkill
- design-system-methodologySkill
- design-task-decompositionSkill
- dev-methodologySkill
- docs-pipelineSkill
- documentation-writingSkill
- engagement-contractSkill
- engagement-protocolSkill
- feature-researchSkill
- human-voiceSkill
- infrastructure-setupSkill
- marketing-task-decompositionSkill
- post-deploy-qaSkill
- pre-deploy-qaSkill
- presentation-designSkill
- project-planningSkill
- prompt-engineeringSkill
- security-auditingSkill
- semantic-drift-methodologySkill
- seo-auditingSkill
- skill-authoringSkill
- skill-test-designSkill
- skill-testingSkill
- system-optimization-protocolSkill
- task-decompositionSkill
- testing-methodologySkill
- ui-styling-guideSkill
- ui-ux-methodologySkill
- user-spec-planningSkill
- validation-pipelineSkill
- yandex-analytics-methodologySkill
- yandex-direct-guideSkill
- yandex-metrika-guideSkill
- yandex-search-guideSkill
- yandex-webmaster-guideSkill
- yandex-wordstat-guideSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 5 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Create the technical specification from an approved user-spec, inside the SDD {name}-spec engagement (see dev-methodology §"Spec-Driven …
- Very specific: line 32
Read engagement/specs/user-spec.md.
- Very specific: line 37
Read all files in .claude/skills/project-knowledge/references/ (project.md, architecture.md, patterns.md, deployment.md, ux-guidelines.md, …
- Very specific: line 39
If engagement/specs/research-verdict.md exists, read it.
- Very specific: line 49
Read engagement/specs/code-research.md (written by code-researcher during the user-spec phase) and deepen it yourself to implementation …
- Very specific: line 59
Use Context7 MCP (resolve-library-id → query-docs) to fetch current API documentation
- Distinctive: line 60
Verify: API signatures match what code-research assumes, no deprecated methods planned
- Distinctive: line 61
If library has breaking changes in latest version — note in Risks section
- Distinctive: line 62
Use Context7 findings to inform Architecture and Decisions sections
- Very specific: line 129
Write Verify-user: when user should check something: UI on localhost, behavior, UX.
- Distinctive: line 135
All technical decisions belong in the Decisions section, not in task descriptions.
- Very specific: line 163
Write your executor report per engagement-contract and return.
- Distinctive: line 188
Before you return, walk the tech-spec through these five lenses yourself so the validators find little.
- Very specific: line 194
Read the newest validation-outputs/*-iter-{N}-*.json files (highest timestamp per validator) and fix every finding of severity medium or …
≈ “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
Tech Spec Planning
Create the technical specification from an approved user-spec, inside the SDD {name}-spec
engagement (see dev-methodology §"Spec-Driven Development").
Input: engagement/specs/user-spec.md (status: approved) + engagement/specs/code-research.md + Project Knowledge
Output: engagement/specs/tech-spec.md (status: draft)
Language: Technical documentation in English
Where this runs. engagement-workflow dispatches dev-tech-architect as the owner of the
spec engagement's one task. You are a leaf (engagement-contract): no subagents, no user. That
shapes three things below:
- research you do yourself (Read/Grep/Glob + Context7), no
code-researcherspawn; - the six spec validators are run by the engine's validate phase (dev-lead lists them in
plan.validators), not by you; - approval is the spec engagement's acceptance (human directive +
dev-managerACCEPT). You never setstatus: approved;agency-intakedoes that when it opens the{name}-implengagement.
Phase 1: Load Context
- Read
engagement/specs/user-spec.md. If it is missing or its frontmatter is notstatus: approved, stop and return NEEDS_CONTEXT: a tech-spec over an unapproved user-spec is the exact failure SDD exists to prevent. Extractsize: S|M|Lfrom user-spec frontmatter — it determines testing strategy depth in tech-spec. - Read all files in
.claude/skills/project-knowledge/references/(project.md, architecture.md, patterns.md, deployment.md, ux-guidelines.md, and any custom domain files). Missing files are fine — not all projects have all guides. - If
engagement/specs/research-verdict.mdexists, read it. Use complexity classification and risk assessment as starting point — carry forward and deepen in tech-spec. - user-spec.md is the single requirements source — all information from interview.yml and code research is already consolidated there.
Checkpoint:
- user-spec.md read, status approved, size extracted
- Project Knowledge read
Phase 2: Code Research
Read engagement/specs/code-research.md (written by code-researcher during the user-spec phase) and
deepen it yourself to implementation level: the exact files, functions, call sites and tests the
change touches. Append your findings under ## Implementation-level analysis (tech-spec) in the
same file. Every existing file path you later put into the tech-spec must be one you opened. A
file the feature creates is written with the marker (new) (src/api/export.ts (new)), and its
parent directory must exist or be created by an earlier task.
Context7: Library Documentation
For each new external dependency identified in code research:
- Use Context7 MCP (
resolve-library-id→query-docs) to fetch current API documentation - Verify: API signatures match what code-research assumes, no deprecated methods planned
- If library has breaking changes in latest version — note in Risks section
- Use Context7 findings to inform Architecture and Decisions sections
This prevents mirages where tech-spec references APIs that don't exist in current library versions.
Checkpoint:
- code-research.md deepened with implementation-level analysis
Phase 3: Gaps you cannot close
You cannot ask the user. Two kinds of gap, two different exits:
- Technical gap (an unknown about the code, a library, an environment): resolve it by
reading. If reading cannot resolve it, pick the conservative option, record it as a Decision
with the alternative you rejected, and list it in the tech-spec
## Open questionssection so the human sees it at the gate. - Requirements gap (the user-spec does not say what should happen): do NOT edit the
user-spec and do NOT invent the behaviour. Record it in
## Open questionswith the AC it touches, and return NEEDS_CONTEXT if the gap blocks a task. The approved user-spec changes only through the user.
Checkpoint:
- Every gap is either resolved by reading, recorded as a Decision, or listed in
## Open questions
Phase 4: Create tech-spec
- Copy template:
Then edit sections one by one using Edit tool. This keeps template structure and examples visible while you work.cp ~/.claude/shared/work-templates/tech-spec.md.template engagement/specs/tech-spec.md - Fill frontmatter:
created: today's datestatus: draftsize: copy from user-spec (S|M|L)user_spec:specs/user-spec.md+ itsapproved:datebranch:dev(simple change, single component) orfeature/{name}(multiple components, architectural changes)
- Fill all template sections. The template defines section structure — follow it directly. Fill Complexity Classification: determine if feature is Platform/Product/Mixed. If research-verdict.md exists, use its classification as starting point. Product features must enforce simplicity. In Architecture → Shared Resources: list heavy resources (ML models, DB pools, browser instances, API clients) shared across components. Specify owner (who creates), consumers, instance count. If none — write "None". Fill Risks with concrete technical and operational risks for THIS feature. If research-verdict.md has risk assessment, carry forward and deepen. 2+ entries for M/L features. Fill Rollback Strategy for M/L features (required) or S features with DB changes (recommended): deployment rollback method, data rollback, feature flags if applicable, rollback verification steps.
Fill Implementation Tasks by waves. The
{name}-implengagement's dev-lead maps these tasks onto its plan one to one, so write them in the shape the engine executes:- Covers: the ids it delivers (
AC-2, AC-5, TC-1). EveryAC-Nin the user-spec and everyTC-Nin this tech-spec is covered by at least one task. A TC no code task can own ("all tests pass", "no regressions") is covered by an Audit or Final Wave declaration: write it in that declaration's Covers. A task that covers nothing is either infrastructure another task needs (say which) or scope creep (delete it). - Owner: the specialist agentType (
dev-backend-engineer,dev-frontend-engineer,dev-fullstack-engineer,dev-devops-engineer). - Files to modify (repo-relative; new files marked
(new)) and Files to read. Tasks in the same wave have strictly disjoint Files to modify: parallel worktrees merge by octopus. Shared contracts (types, schema) go alone in an earlier wave. - Depends on: earlier task ids.
- Description, Skill, Reviewers, Verify-smoke (optional), Verify-user (optional). Select skill and reviewers from skills-and-reviewers.md.
For each task, write
Verify-smoke:when the task involves:- External API integration → curl/httpie command to real endpoint with expected response
- Library/model initialization →
python -cor import check that verifies setup - Docker/infrastructure →
docker compose build,docker runcommands - LLM/prompt work → spawn agent with prompt + test question, check response
- External service API (OpenRouter, Stripe, etc.) → test API call with expected response
- MCP-verifiable UI/frontend → use Playwright MCP or similar to check rendered page
Write
Verify-user:when user should check something: UI on localhost, behavior, UX. Omit both if task is purely internal logic covered by unit tests.
Task brevity rules:
- Tasks are brief scope descriptions (2-3 sentences). Detailed steps and AC come from the impl engagement's decomposition and per-task contract.
- Task Description answers WHAT and WHY, not HOW. No step-by-step instructions, no line numbers, no implementation details.
- All technical decisions belong in the Decisions section, not in task descriptions. If you're writing a decision rationale inside a task — move it to Decisions.
- Covers: the ids it delivers (
The last two waves are always Audit Wave and Final Wave, in that order. They declare the verification plan; the impl engagement maps them onto its validate phase (see
dev-lead§"SDD impl engagement"), so they are written as declarations, not as code tasks:Audit Wave (always present):
- Code Audit (
code-reviewer) — holistic code quality review of all feature code - Security Audit (
security-auditor) — OWASP Top 10 across all components - Test Audit (
test-reviewer) — test quality and coverage across all components
Final Wave:
- QA (
pre-deploy-qa) — always present. Acceptance testing: run all tests, verify everyAC-Nfrom user-spec and the tech-spec criteria. - Deploy (
dev-devops-engineertask) — only if deploy is needed for this feature. - Post-deploy verification (
post-deploy-qa) — only if live-environment checks are needed (MCP tools listed in Agent Verification Plan → Tools required). QA is mandatory. Deploy and post-deploy — if applicable.
- Code Audit (
- Task Count Check: if >15 code tasks, split them into an MVP set and an Extension set inside
Implementation Tasks and list the split in
## Open questions. The human decides at the gate which set the impl engagement takes. - AVP executability. You cannot co-sign your own AVP. Make every AVP step and every
Verify-smokea concrete command or tool call with a concrete expected value, list every tool in### Tools required(the impl engagement's preflight checks each one is reachable before any code is written), and in### Executability reviewwrite exactlyExecutability review: validate-phase — reality-checker + test-reviewer against the spec engagement's AVP criterion. The spec engagement'scriteria.mdcarries the AVP as a Done-when item, so those two validators judge it. - Write your executor report per
engagement-contractand return.
Checkpoint:
- tech-spec.md created in
engagement/specs/with all sections - Every
AC-Nfrom user-spec and everyTC-Ncovered by a task or an Audit/Final declaration; every code task names Covers, Owner, Files, Depends on - Same-wave tasks have disjoint Files to modify
- No AC or TDD anchors in tasks (those come from the impl engagement)
- Technical decisions are in Decisions section, not in task descriptions
- Final Wave present with QA (mandatory) + Deploy/Post-deploy (if applicable)
- Task count ≤15, or the MVP/Extension split is listed in
## Open questions
Phase 5: Validation (run by the engine, not by you)
The spec engagement's validate phase runs these on your tech-spec (dev-lead puts them in
plan.validators), and the engine adversarially verifies each finding:
| Validator | Agent | Checks |
| Mirage detector | skeptic | Non-existent files, APIs, functions, dependencies |
| Completeness + adequacy | completeness-validator | Bidirectional traceability user-spec ↔ tech-spec, scope creep, overengineering, underengineering, solution depth |
| Security | security-auditor | OWASP, input validation, auth, sensitive data |
| Testing strategy | test-reviewer | Test plan adequacy for feature size S/M/L, AVP executability |
| Template + wave conflicts | tech-spec-validator | All sections filled, frontmatter, format, skills/reviewers, wave conflict detection |
| Reality + AVP review | reality-checker | Task claims against the codebase; Verify-smoke and AVP concrete, tools listed (static) |
Before you return, walk the tech-spec through these five lenses yourself so the validators find little. Self-review is not validation; it only saves a rework round.
Rework. Three ways a round comes back to you:
- a per-task
reworkverdict inside the run: fix what the reviewer names; - a fresh run at the same iteration after a gate failure:
specs/tech-spec.mdalready exists. Read the newestvalidation-outputs/*-iter-{N}-*.jsonfiles (highest timestamp per validator) and fix every finding of severity medium or above; record each in your executor report with what you changed, or why it needs no change; - a new iteration (
iteration≥ 2) after a REJECT or DIRECTED: before touching the spec, read the previous iteration'svalidation-outputs/*-iter-{N-1}-*.json, the latestacceptance-log.mdentry andhuman-directive.md. Every finding and every answer the human gave to an open question is addressed in the spec. Your executor report gets a## Iteration Nsection (engagement-protocol§"4-iter") listing each one with what you changed, or why it needs no change. Either way: fixengagement/specs/tech-spec.mdin place, keepstatus: draft.
Final Check
- tech-spec.md created with all sections (Implementation Tasks are brief scope descriptions)
- Every AC traced, every gap visible in
## Open questions - status = draft (approval belongs to the spec engagement's acceptance)
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.

