product-tech-spec
/product-tech-spec — Technical Specification
Write technical specs that bridge product requirements and implementation plans. Covers architecture, APIs, data models, and component hierarchy.
When to Use
- User says "tech spec", "technical spec", "architecture doc"
- After writing a PRD and before planning implementation
- When architecture decisions need to be documented
Process
Step 1: Gather Context
Check for existing artifacts:
docs/prds/— Read the PRD this spec implementsdocs/brainstorms/— Additional context if available- User-provided description or
$ARGUMENTS
Step 2: Research (Parallel Agents)
Spawn 2 agents IN PARALLEL using the Task tool:
Agent 1 — Codebase Analyst
Task(subagent_type: "general-purpose", description: "Analyze codebase for tech spec")
prompt: Analyze this project's architecture to inform a tech spec for [FEATURE].
Focus on: tech stack and versions, existing data models, API patterns,
component structure, auth patterns, state management approach.
Return findings relevant to architectural decisions.
Agent 2 — Practices Researcher
Task(subagent_type: "general-purpose", description: "Research architecture patterns")
prompt: Research architecture best practices for [FEATURE TYPE] given [TECH STACK].
Focus on: recommended patterns, data model design, API design,
component architecture, security considerations.
Return practical architectural guidance.
Step 3: Write Tech Spec
Write to docs/tech-specs/YYYY-MM-DD-<name>.md using the template in references/tech-spec-template.md.
Key sections:
- Overview — What this spec covers and its relationship to the PRD
- Architecture — System design, component hierarchy, data flow
- Data Models — Database tables, types, relationships
- API Design — Endpoints, server actions, or edge functions
- Component Hierarchy — UI structure and state ownership
- Security — Auth, RLS policies, input validation
- Migration Plan — How to get from current state to target state
Writing rules:
- Reference specific existing patterns from the codebase analysis
- Make decisions, don't list options (that's what the brainstorm was for)
- Include concrete examples (schema SQL, TypeScript types, component trees)
- Call out risks and unknowns
Step 4: Review with User
Present key architectural decisions and use AskUserQuestion to confirm approach before finalizing.
Output
Save to: docs/tech-specs/YYYY-MM-DD-<name>.md
Next Steps
- Ready to plan tasks? →
/engineer-plan - Need to start building? →
/engineer-work
More from elliottrjacobs/bench-skills
product-prd
Write product requirements documents from feature ideas or brainstorm output. Use when the user says "write a PRD", "product requirements", "feature spec", or needs to formalize a product concept into a structured document.
17product-naming
Expert naming process for products, companies, and features based on David Placek's methodology. Use when the user says "name this", "brainstorm names", "naming process", or needs to find a name for a product, feature, company, or project.
10knowledge-compound
Document solutions, decisions, and learnings into a searchable knowledge base. Use when the user says "document this", "compound this", "save this solution", "capture this", or after completing significant work that uncovered reusable knowledge.
8security-audit
Deep security audit of codebase with parallel domain-focused agents. Use when the user says "security audit", "check for vulnerabilities", "security review", or before a launch/deployment. More thorough than the security reviewer in /engineer-review.
8engineer-review
Comprehensive multi-agent code review with parallel specialist reviewers. Use when the user says "review this", "code review", "review my PR", provides a PR number or branch, or after completing a /engineer-work cycle.
8product-brainstorm
Guided requirements exploration through structured dialogue. Use when the user says "brainstorm", "explore this idea", "help me think through", or when requirements are fuzzy and need clarification before writing specs.
8