agentleFS
madeincartelmadeincartel/claude-code-framework/skills/tech-spec-planning/SKILL.md

tech-spec-planning

Skill1 starsChanged 9 months agoMITView on GitHub

Creates tech-spec.md with architecture, decisions, testing strategy, and implementation plan.

2 other projects use a version of this, 2 of them edited.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 10 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈10

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create technical specification through code research, adaptive clarification, and multi-validator review.

    line 14
  2. Very specific:

    Ask user for feature name if not provided.

    line 22
  3. Very specific:

    Read work/{feature}/user-spec.md.

    line 24
  4. Very specific:

    Read all files in .claude/skills/project-knowledge/references/ (project.md, architecture.md, patterns.md, deployment.md, ux-guidelines.md, …

    line 27
  5. Very specific:

    After subagent completes — read {feature_path}/code-research.md.

    line 40
  6. Very specific:

    If during later phases a gap is discovered — launch code-researcher again with the specific question.

    line 42
  7. Distinctive:

    Ask technical questions if gaps exist.

    line 52
  8. Distinctive:

    If gaps found in user-spec requirements — discuss with user and update user-spec too (via subagent or directly).

    line 54
  9. Distinctive:

    If requirements are fundamentally unclear — suggest creating user-spec first.

    line 55
  10. Very specific:

    Write Verify-user: when user should check something: UI on localhost, behavior, UX.

    line 86
  11. Distinctive:

    All technical decisions belong in the Decisions section, not in task descriptions.

    line 92
  12. Distinctive:

    Read all 5 reports. For each finding:

    line 139
  13. Distinctive:

    If fixes were made:

    line 146
  14. Distinctive:

    If problems remain after 3 iterations — show user: "Validation didn't pass in 3 iterations.

    line 152
  15. Distinctive:

    Wait for explicit approval.

    line 163
  16. Distinctive:

    If user has comments — fix, re-validate, show again.

    line 164
  17. Very specific:

    After approval: update status: draft → status: approved in tech-spec frontmatter.

    line 165

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tech Spec Planning

Create technical specification through code research, adaptive clarification, and multi-validator review.

Input: work/{feature}/user-spec.md + Project Knowledge Output: work/{feature}/tech-spec.md (approved) Language: Technical documentation in English, communication in English

Phase 1: Load Context

  1. Ask user for feature name if not provided. Check work/{feature}/ exists, create if needed.
  2. Read work/{feature}/user-spec.md. If missing — ask user to describe the task or create user-spec first. Extract size: S|M|L from user-spec frontmatter — it determines testing strategy depth in tech-spec.
  3. 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.
  4. user-spec.md is the single input source — all information from interview.yml and code research is already consolidated there.

Checkpoint:

  • Feature folder exists
  • user-spec.md read, size extracted
  • Project Knowledge read

Phase 2: Code Research

Launch code-researcher subagent (Task tool, opus) with feature path and user-spec path. The agent reads existing code-research.md (from user-spec phase if available) and deepens analysis for implementation.

After subagent completes — read {feature_path}/code-research.md. Use in Phase 3 clarification and Phase 4 spec writing.

If during later phases a gap is discovered — launch code-researcher again with the specific question.

Checkpoint:

  • code-research.md created/updated with implementation-level analysis
  • Research file read by orchestrator

Phase 3: Clarification (Adaptive)

Analyze if additional information is needed based on user-spec and code research.

  • Ask technical questions if gaps exist. No limit on question count — ask as many as needed.
  • Focus: technical constraints, integration points, data sources, external dependencies.
  • If gaps found in user-spec requirements — discuss with user and update user-spec too (via subagent or directly).
  • If requirements are fundamentally unclear — suggest creating user-spec first.

Checkpoint:

  • All technical gaps clarified (or none existed)

Phase 4: Create tech-spec

  1. Copy template to feature folder:
    cp ~/.claude/shared/work-templates/tech-spec.md.template work/{feature}/tech-spec.md
    Then edit sections one by one using Edit tool. This keeps template structure and examples visible while you work.
  2. Fill frontmatter:
    • created: today's date
    • status: draft
    • size: copy from user-spec (S|M|L)
    • branch: dev (simple change, single component) or feature/{name} (multiple components, architectural changes)
  3. Fill all template sections. The template defines section structure — follow it directly. 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".
  4. Fill Implementation Tasks by waves. For each task provide: Description, Skill, Reviewers, Verify-smoke (optional), Verify-user (optional), Files to modify, Files to read. Select skill and reviewers from skills-and-reviewers.md (execution skills catalog, reviewer agents, default mappings).

    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 -c or import check that verifies setup
    • Docker/infrastructure → docker compose build, docker run commands
    • 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, AC, and TDD anchors are created during task-decomposition phase.
    • 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.
  5. The last two waves are always Audit Wave and Final Wave, in that order:

    Audit Wave (always present) — 3 tasks running in parallel, reviewers: none:

    • Code Audit (skill: code-reviewing) — holistic code quality review of all feature code
    • Security Audit (skill: security-auditor) — OWASP Top 10 across all components
    • Test Audit (skill: test-master) — test quality and coverage across all components

    Auditors read all source files from the feature and write reports (analysis only). If issues found — feature-execution lead spawns a fixer agent, auditors become reviewers for the fix.

    Final Wave:

    • QA (skill: pre-deploy-qa) — always present. Acceptance testing: run all tests, verify acceptance criteria from user-spec and tech-spec.
    • Deploy (skill: deploy-pipeline) — only if deploy is needed for this feature.
    • Post-deploy verification (skill: 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.
  6. Task Count Check: if >15 tasks — propose splitting into MVP + Extension phases. Wait for user decision.
  7. Git commit: draft(techspec): create tech-spec for {feature}

Checkpoint:

  • tech-spec.md created in work/{feature}/ with all sections
  • Implementation Tasks include Description (2-3 sentences), skill, reviewers for each task
  • No AC or TDD anchors in tasks (those come from task-decomposition phase)
  • 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 user approved larger scope)

Phase 5: Validation

Run 5 validators in parallel

Launch all as subagents, each writes JSON report to logs/techspec/{name}-review.json:

ValidatorAgentChecks
Mirage detectorskepticNon-existent files, APIs, functions, dependencies
Completeness + adequacycompleteness-validatorBidirectional traceability, scope creep, overengineering, underengineering, solution depth
Securitysecurity-auditorOWASP, input validation, auth, sensitive data
Testing strategytest-reviewerTest plan adequacy for feature size S/M/L
Template + wave conflictstech-spec-validatorAll sections filled, frontmatter, format, skills/reviewers, wave conflict detection

Pass to each validator: work/{feature}/tech-spec.md + work/{feature}/user-spec.md.

Process findings

Read all 5 reports. For each finding:

  • Fix if clearly valid
  • Reject with reasoning if disagree
  • Discuss with user if controversial

Iterate if needed (up to 3 iterations)

If fixes were made:

  1. Apply targeted fixes directly in work/{feature}/tech-spec.md.
  2. Git commit: chore(techspec): validation round {N} — {summary of fixes}
  3. Re-run validators on updated tech-spec.
  4. Repeat up to 3 iterations.

If problems remain after 3 iterations — show user: "Validation didn't pass in 3 iterations. Here's what remains — let's resolve together."

Checkpoint:

  • All 5 validators ran
  • Findings processed (fixed / rejected / discussed)
  • Final tech-spec.md placed in work/{feature}/

Phase 6: User Approval

  1. Show user the full tech-spec.md.
  2. Show validation summary: iterations count, issues found and resolved.
  3. Wait for explicit approval.
  4. If user has comments — fix, re-validate, show again.
  5. After approval: update status: draft → status: approved in tech-spec frontmatter.
  6. Git commit: chore(techspec): approve tech-spec for {feature}
  7. Tell user next step: run /decompose-tech-spec to create task files.

Checkpoint:

  • User explicitly approved tech-spec
  • status = approved

Final Check

  • tech-spec.md created with all sections (Implementation Tasks are brief scope descriptions)
  • Validation passed (5 validators)
  • User approved tech-spec
  • status = approved in frontmatter

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.