spec
Spec - Progressive Disclosure Specification
Core Philosophy
Write what's needed. Skip what's not.
Most specs fail because they're either:
- Too thin (unclear, leads to rework)
- Too thick (nobody reads them, decisions buried in prose)
This skill routes you to the right depth:
- Quick task? → Write a clear issue
- Feature? → Write a lite PRD
- AI feature? → Add context requirements and behavior examples
The templates are already excellent. This skill helps you use them.
Linear Method Principles
These principles guide every level:
-
Issues, not user stories - Plain language wins. "Add export button to dashboard" beats "As a user, I want to export data so that I can..."
-
Scope down - If it can't be done in 1-3 weeks by 1-3 people, break it down further.
-
Short specs get read - Long specs get skipped. Write for clarity, not completeness.
-
Prototype > documentation - A working demo + 3 paragraphs beats a 10-page spec.
-
Make decisions, not descriptions - Every section should decide something.
See: skills/spec/references/philosophy.md for the full philosophy.
Entry Point
When this skill is invoked, start with:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SPEC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What are you speccing?
1. Quick task (hours to days)
→ Clear title + optional description
→ If it fits in one sentence, just write an issue
2. Feature (1-3 weeks)
→ Problem, solution, success metric, scope
→ Use what's helpful, skip the rest
3. AI feature (any size)
→ Core AI questions + context requirements + behavior examples
→ Evals are non-negotiable. Model costs early.
4. Not sure
→ Tell me what you're building, I'll help you decide
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Parse intent from context:
- If user says "issue" or mentions a quick task → Level 1
- If user mentions a feature, project, or gives detail → Level 2
- If user mentions AI, ML, LLM, context, prompts → Level 3
- If user provides a Linear issue ID → fetch it, then determine level
Command-line shortcuts:
/spec --quick→ Skip to Level 1/spec --feature→ Skip to Level 2/spec --ai→ Skip to Level 3/spec LIN-123→ Fetch Linear issue, determine level
Level 1: Quick Task (Linear Issue)
When to Use
- Task is clear and focused
- Can be done in hours to a few days
- Title alone is almost enough
- No ambiguity about what "done" means
Template
Use templates/linear-issue.md as reference.
Flow
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LEVEL 1: Quick Task
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The goal: A title that makes it obvious what you're doing.
Everything else is optional.
Questions to ask:
-
What's the action? (Add, Fix, Design, Refactor, Remove...)
-
What's being changed? (The specific thing)
-
Where? (Optional: location in product)
Good titles:
Add CSV export to dashboardFix: Login fails on SafariDesign mobile navigationRefactor auth middleware
Bad titles:
Export feature(vague)Bug(what bug?)Updates(what updates?)
When to add a description:
- Context isn't obvious
- Specific requirements exist
- Edge cases need clarification
- Need to link to designs/specs
When to skip description:
- Title says it all
- Task is straightforward
- Team already understands context
Output
Generate a clear issue ready for Linear:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ISSUE READY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Title: [Generated title]
Description:
[Optional description if needed]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What next?
1. Create in Linear
2. Edit title/description
3. Add more context (→ Level 2)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If Linear MCP available: Offer to create the issue directly.
Level 2: Feature (Lite PRD)
When to Use
- Feature needs alignment across team
- Scope is 1-3 weeks
- Need to document problem, solution, success criteria
- More than just "implement X"
Template
Use templates/lite-prd.md as reference.
Flow
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LEVEL 2: Feature Spec
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The goal: Shared understanding. Not completeness.
We'll answer 5 essential questions. Everything else is optional.
The Essentials (Always answer)
1. What problem are we solving?
- 2-3 sentences
- Customer pain or opportunity
- Push for specificity
2. For whom?
- Specific user segment
- Not "users" - which users?
3. How do we know this matters?
- Evidence: research, data, feedback
- Not assumptions - what do you actually know?
4. What are we building?
- High-level solution
- Link to prototype if you have one (you should!)
5. How will we know it worked?
- 1-2 key metrics with targets
- Not "improve X" - what number?
Optional Sections
After the essentials, offer relevant optional sections:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ESSENTIALS COMPLETE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
That might be all you need. Want to add any of these?
□ Scope & Decisions (in/out of scope, open questions)
□ Risks (assumptions, four risks check)
□ Discovery Insights (research, data)
□ Technical Notes (estimate, challenges, dependencies)
□ Launch Notes (rollout strategy, communication)
□ Timeline (Now/Next/Later)
Skip what doesn't help create shared understanding.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Output
Generate the spec in markdown:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SPEC READY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# [Feature Name]
## The Essentials
**What problem:** [2-3 sentences]
**For whom:** [Specific segment]
**Evidence:** [What you know]
**Solution:** [What you're building + prototype link]
**Success:** [Metric with target]
[Optional sections if added]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What next?
1. Create Linear project (parent + child issues)
2. Export markdown
3. Go deeper (→ Level 4 options)
4. Start over
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Level 3: AI Feature
When to Use
- Building anything with AI/ML/LLM
- Need to define context requirements
- Need behavior examples for evals
- Cost modeling matters
Templates
Use templates/ai-product-spec.md + context requirements table.
Flow
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LEVEL 3: AI Feature Spec
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AI products need more upfront thinking - but not overly complex docs.
We'll cover:
• Core AI questions (what, quality, testing, cost, failures)
• Context requirements (what data the AI needs)
• Behavior examples (what good/bad looks like)
Evals are non-negotiable. Model costs early.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase 1: Core AI Questions
Walk through these 5 questions (from templates/ai-product-spec.md):
1. What's the AI doing?
- What problem? What task?
- Push for precision: Not "recommendations" → "3 ranked options with rationale"
2. How will you know if it's good?
- What does "good" output look like?
- What's "bad"? What should never happen?
3. How will you test it?
- Eval strategy (even simple evals > no evals)
- Test dataset categories: happy path, edge cases, adversarial, boundary
4. What will it cost?
- Cost per query/user
- Projected at scale
5. What happens when it's wrong?
- User controls
- Fallbacks
- Safety guardrails
Phase 2: Context Requirements
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONTEXT REQUIREMENTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
90% of AI quality comes from context quality.
What context does the AI need to do its job?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Build a context requirements table:
| Data Needed | Source | Availability | Notes |
|---|---|---|---|
| [Entity/signal] | [DB/API/user] | [Always/Sometimes/Never] | [Sensitivity, freshness] |
See: skills/spec/references/context-table.md for the full format.
Key questions:
- For each piece of context: Where does it come from? Is it always available?
- What happens when context is missing? (Fallback behavior)
- Any privacy/sensitivity concerns?
Flag problems immediately:
- "Sometimes" availability needs a decision
- "Never" availability is a blocker
Phase 3: Behavior Examples
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BEHAVIOR EXAMPLES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AI behaves according to examples, not descriptions.
We need 5-10 examples minimum covering:
• Good responses (what should happen)
• Bad responses (common failure modes)
• Reject cases (when AI should refuse/defer)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Example format:
Scenario: [Brief description]
Input: [What the user provides]
Good: [Desired response]
Bad: [What to avoid]
Reject: [When to refuse - if applicable]
See: skills/spec/references/behavior-examples.md for guidance.
Coverage to aim for:
- 2-3 happy path examples
- 2-3 edge cases
- 1-2 adversarial inputs
- 1-2 boundary cases (out of scope)
Phase 4: Agency Progression Plan
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AGENCY PROGRESSION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AI products earn autonomy. What's your ladder?
| Version | Capability | Control | Agency | What You're Testing |
|---------|------------|---------|--------|---------------------|
| V1 | [describe] | High | Low | [what you learn] |
| V2 | [describe] | Medium | Medium | [what you learn] |
| V3 | [describe] | Low | High | [what you learn] |
Which version are you speccing right now? (Usually V1)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Key questions:
- What's the minimum viable agency for V1?
- What must the AI prove before V2?
- What would full autonomy (V3) even look like?
See: skills/spec/references/agency-progression.md for examples and ladder patterns.
Phase 5: Control Handoffs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CONTROL HANDOFFS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
How do humans take back control when the AI is wrong?
- Override mechanism: [how users correct/reject AI output]
- Escalation path: [when AI should defer to human]
- Feedback capture: [how corrections feed back into system]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Good control handoffs:
- "AI suggested X. Accept or edit?"
- Clear confidence indicators
- Easy override path
- Corrections improve the system
Bad control handoffs:
- AI acts without confirmation
- No way to correct mistakes
- User doesn't know AI made the decision
Phase 6: Reference Dataset
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
REFERENCE DATASET
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Before building, you need 20-100 examples of expected behavior.
This forces alignment on what "good" looks like.
Where will reference examples come from?
- [ ] Historical data (logs, past interactions)
- [ ] Manual curation (team creates examples)
- [ ] User research (observed behaviors)
- [ ] Synthetic generation (for edge cases)
Target count: [X] examples before V1 launch
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Why this matters: Reference datasets force the team to align on expected behavior before writing prompts. Most AI features fail because teams skip this step.
Golden dataset = baseline for evals. Without it, you're testing against vibes.
Output
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
AI SPEC READY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# [Feature Name]
## What's the AI Doing?
[Precise task description]
## Quality Definition
**Good:** [Criteria]
**Bad:** [What to avoid]
## Eval Strategy
[Test approach + dataset categories]
## Cost Model
[Cost per query + projection]
## Failure Handling
[User controls + fallbacks]
## Context Requirements
| Data | Source | Availability | Notes |
|------|--------|--------------|-------|
[Table]
**When context is missing:** [Fallback behavior]
## Behavior Examples
[5-10 examples]
## Agency Progression Plan
| Version | Capability | Control | Agency | What You're Testing |
|---------|------------|---------|--------|---------------------|
| V1 (this spec) | ... | High | Low | ... |
| V2 (future) | ... | Medium | Medium | ... |
| V3 (future) | ... | Low | High | ... |
## Control Handoffs
**Override:** [mechanism]
**Escalation:** [path]
**Feedback:** [capture method]
## Reference Dataset
**Source:** [where examples come from]
**Target:** [X] examples before launch
**Status:** [X/Y collected]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What next?
1. Create Linear project
2. Export markdown
3. Go deeper (→ Level 4 options)
4. Run /ai-health-check
5. Plan agency ladder (/agency-ladder)
6. Set up post-launch calibration (/calibrate)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Level 4: Deep Dive (On-Demand)
When user needs more depth, offer these expansions:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GO DEEPER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Your spec is solid. Need more depth anywhere?
1. --deep context
Full 4D Canvas walkthrough (Demand, Data, Discovery, Defense)
2. --deep examples
Expand to 15-25 behavior examples
3. --deep rollout
Detailed phased rollout with gates
4. --deep full-prd
Complete PRD framework (5 stages)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--deep context
Invoke the full 4D Context Canvas walkthrough:
- D1 Demand: Precise job definition
- D2 Data: Full context requirements mapping
- D3 Discovery: How to fetch context at runtime
- D4 Defense: Pre-checks, post-checks, fallbacks, feedback loops
Reference the archived context-engineering skill for the full framework.
--deep examples
Expand behavior examples to 15-25:
- 5-7 happy path
- 4-5 edge cases
- 3-4 adversarial
- 3-4 boundary/reject cases
--deep rollout
Detailed rollout planning:
- Phase 1: Internal/beta (%, duration, criteria)
- Phase 2: Limited rollout (%, gates)
- Phase 3: Full launch (criteria)
- Kill switch: When and how to turn off
- Monitoring: What to track, alert thresholds
--deep full-prd
Invoke the prd-writer skill for the complete 5-stage PRD framework:
- Planning (Speclet)
- Kickoff
- Solution Review
- Launch Readiness
- Impact Review
Linear Integration
When Linear MCP is available:
Pulling Context
/spec LIN-123→ Fetch issue details, pre-populate what's available- For parent issues, offer to pull child issues for context
Creating Output
Level 1: Create issue directly via Linear MCP
Level 2: Offer to create:
- Parent issue with spec in description
- Child issues for implementation tasks
Level 3: Offer to create:
- Parent issue with full spec
- Child issues broken down by phase
- Context requirements in parent description
Integration with Other Commands
Before /spec:
/four-risks- Should we build this at all?
After /spec:
/ai-cost-check- Model the unit economics/ai-health-check- Pre-launch validation/ai-debug- If feature is underperforming/context-check- Quick quality validation
Attribution
Linear Method: Linear team (issues not stories, scope down, momentum) Lite PRD: Aakash Gupta (Product Growth) AI Product Spec: Aakash Gupta (Product Growth) Context Engineering: Aakash Gupta & Miqdad Jaffer (OpenAI) - 4D Context Canvas
Remember
- Right-size your spec - Don't write more than needed
- Prototype first - A demo + 3 paragraphs > 10-page spec
- Make decisions - Every section should decide something
- Short specs get read - Long specs get skipped
- Evals are non-negotiable - For AI features, define quality upfront
More from breethomas/pm-thought-partner
agent-workflow
Expert system for designing and architecting AI agent workflows based on proven Meta methodologies. Use when users need to build AI agents, create agent workflows, solve problems using agentic systems, integrate multiple tools into agent architectures, or need guidance on agent design patterns. Helps translate business problems into structured agent solutions with clear scope, tool integration, and multi-layer architecture planning.
9context-engineering
[ARCHIVED] Full 4D Context Canvas reference. For new AI features, use /spec --ai. For debugging, use /ai-debug. For quality checks, use /context-check.
6competitive-research
Systematic competitive intelligence with parallel agent analysis. Analyzes competitors thoroughly and synthesizes into actionable insights.
2pmf-survey
Create and analyze a PMF survey using Rahul Vohra's Superhuman framework. The magic 40% benchmark for product-market fit.
2four-risks
Run Marty Cagan's Four Risks assessment on an issue (value, usability, feasibility, viability). Use when evaluating features before building.
2strategy-session
Your product soundboard. Work through product decisions conversationally - Claude gathers context, challenges assumptions, captures decisions, and creates Linear issues.
2