.claude/skills/technical-spec/SKILL.md
Generate TECHNICAL_SPEC.md through guided Q&A. Use after /product-spec to define the technical architecture.
npx skillsauth add benjaminshoemaker/ai_coding_project_base technical-specInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate a technical specification document for the current project.
Copy this checklist and track progress:
Technical Spec Progress:
- [ ] Step 1: Directory guard
- [ ] Step 2: Project root confirmation
- [ ] Step 3: Check prerequisites (plans/greenfield/PRODUCT_SPEC.md)
- [ ] Step 4: Check for existing plans/greenfield/TECHNICAL_SPEC.md
- [ ] Step 5: Conduct guided Q&A with user
- [ ] Step 6: Cross-verify against PRODUCT_SPEC.md
- [ ] Step 7: Handle deferred decisions
- [ ] Step 8: Review and refine with user
- [ ] Step 9: Suggest next step (/generate-plan)
--lean)When --lean is passed:
run_in_background: true). Continue the Q&A without waiting. When results arrive, only interrupt the flow if a finding would materially change a recommendation (e.g., a critical production issue with a chosen technology, a clearly superior alternative, a deprecation or breaking change). Skip routine benchmark comparisons and ecosystem summaries./verify-spec, /codex-consult, or /criteria-audit. Report each as LEAN_SKIP in the output..toolkit-marker exists in the current working directory → STOP:
"You're in the toolkit repo. Run this from your project directory instead:
cd ~/Projects/your-project && /technical-spec"Before generating any files, confirm the output location with the user:
Will write TECHNICAL_SPEC.md to: {absolute path of cwd}/plans/greenfield/
Continue? (Yes / Change directory)
If the user says "Change directory", ask for the correct path and instruct them to cd there first.
plans/greenfield/PRODUCT_SPEC.md first.PRODUCT_SPEC.md in the current directory.plans/greenfield/PRODUCT_SPEC.md before continuing so the project adopts the canonical layout./product-spec first."Before asking any questions, ensure plans/greenfield/ exists, then check whether
plans/greenfield/TECHNICAL_SPEC.md already exists.
plans/greenfield/TECHNICAL_SPEC.md.bak.YYYYMMDD-HHMMSS, then write the new document to plans/greenfield/TECHNICAL_SPEC.mdplans/greenfield/TECHNICAL_SPEC.md with the new documentRead .claude/skills/technical-spec/PROMPT.md and follow its instructions exactly:
plans/greenfield/PRODUCT_SPEC.md as inputWrite the completed specification to plans/greenfield/TECHNICAL_SPEC.md.
--lean)These gates MUST execute before you produce the "Next Step" output. The output template requires results from each gate. Reporting SKIPPED without --lean is a skill violation — go back and run the gate.
After writing plans/greenfield/TECHNICAL_SPEC.md, run the spec-verification workflow:
.claude/skills/spec-verification/SKILL.md for the verification processPRODUCT_SPEC.md appear in TECHNICAL_SPEC.mdIMPORTANT: Do not proceed to Gate 2 until verification passes or user explicitly chooses to proceed with noted issues.
IMPORTANT: Capture deferred requirements interactively during the Q&A process, not after.
During the Q&A, watch for signals that the user is deferring a technical decision:
When you detect a deferral signal, immediately use AskUserQuestion:
Question: "Would you like to save this to your deferred requirements?"
Header: "Defer?"
Options:
- "Yes, capture it" — I'll ask a few quick questions to document it
- "No, skip" — Don't record this
If user selects "Yes, capture it":
Ask these clarifying questions:
What's being deferred? "In one sentence, what's the technical decision or feature?" (Pre-fill with your understanding from context)
Why defer it? Options: "Premature optimization" / "Over-engineering for MVP" / "Needs more research" / "V2 feature" / "Other"
Notes for later? "Any technical context that will help when revisiting this?" (Optional — user can skip)
After collecting answers, append to DEFERRED.md right away.
If this is the first technical spec entry, add a new section:
## From plans/greenfield/TECHNICAL_SPEC.md ({date})
| Requirement | Reason | Notes |
|-------------|--------|-------|
| {user's answer} | {selected reason} | {notes or "—"} |
If section exists, append row:
| {user's answer} | {selected reason} | {notes or "—"} |
After capturing (or skipping), continue the spec Q&A where you left off.
After verification passes, run cross-model review if Codex CLI is available:
codex --version/codex-consult with upstream contextConsultation invocation:
/codex-consult --upstream plans/greenfield/PRODUCT_SPEC.md --research "{detected technologies}" plans/greenfield/TECHNICAL_SPEC.md
If Codex finds issues:
If Codex CLI is not installed or not authenticated: Report UNAVAILABLE (not SKIPPED — the distinction matters).
| Situation | Action |
|-----------|--------|
| PRODUCT_SPEC.md not found in plans/greenfield/ or project root | Stop and report "Run /product-spec first" |
| PROMPT.md not found at .claude/skills/technical-spec/PROMPT.md | Stop and report "Skill asset missing — reinstall toolkit or run /setup" |
| DEFERRED.md write fails (permissions or disk) | Output deferred items to terminal, warn user, continue with spec generation |
| Codex CLI invocation fails or times out | Log the error, skip cross-model review, proceed to Next Step |
Pre-condition: All gates above have completed, or --lean was explicitly passed. If you have not run them, STOP and run them now. Reporting SKIPPED without --lean is a skill violation.
When complete, inform the user:
TECHNICAL_SPEC.md created and verified at ./plans/greenfield/TECHNICAL_SPEC.md
Verification: PASSED | PASSED WITH NOTES | NEEDS REVIEW | LEAN_SKIP
Cross-Model Review: PASSED | PASSED WITH NOTES | UNAVAILABLE | LEAN_SKIP
Deferred Requirements: {count} items captured to DEFERRED.md
Next: Run /generate-plan
testing
Audit project alignment with VISION.md, identify SDLC gaps, and generate feature proposals. Use when reviewing strategic direction or planning new features.
development
Run code-verification on a specific task. Use to verify a single task's acceptance criteria after implementation.
testing
Resolve Vercel preview deployment URL for the current git branch. Invoked by browser-verification when deployment.enabled is true, or directly to check deployment status. Use to check deployment status or when browser verification needs a URL.
tools
Discover and sync all toolkit-using projects with the latest skills. Use when skills are modified, after the post-commit hook reminds you, or to batch-sync multiple projects.