playbook/awesome-codex-skills/notion-spec-to-implementation/reference/spec-parsing.md

384 lines
6.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Specification Parsing
## Finding the Specification
Before parsing, locate the spec page:
```
1. Search for spec:
Notion:notion-search
query: "[Feature Name] spec" or "[Feature Name] specification"
2. Handle results:
- If found → use page URL/ID
- If multiple → ask user which one
- If not found → ask user for URL/ID
Example:
Notion:notion-search
query: "User Profile API spec"
query_type: "internal"
```
## Reading Specifications
After finding the spec, fetch it with `Notion:notion-fetch`:
1. Read the full content
2. Identify key sections
3. Extract structured information
4. Note ambiguities or gaps
```
Notion:notion-fetch
id: "spec-page-id-from-search"
```
## Common Spec Structures
### Requirements-Based Spec
```
# Feature Spec
## Overview
[Feature description]
## Requirements
### Functional
- REQ-1: [Requirement]
- REQ-2: [Requirement]
### Non-Functional
- PERF-1: [Performance requirement]
- SEC-1: [Security requirement]
## Acceptance Criteria
- AC-1: [Criterion]
- AC-2: [Criterion]
```
Extract:
- List of functional requirements
- List of non-functional requirements
- List of acceptance criteria
### User Story Based Spec
```
# Feature Spec
## User Stories
### As a [user type]
I want [goal]
So that [benefit]
**Acceptance Criteria**:
- [Criterion]
- [Criterion]
```
Extract:
- User personas
- Goals/capabilities needed
- Acceptance criteria per story
### Technical Design Doc
```
# Technical Design
## Problem Statement
[Problem description]
## Proposed Solution
[Solution approach]
## Architecture
[Architecture details]
## Implementation Plan
[Implementation approach]
```
Extract:
- Problem being solved
- Proposed solution approach
- Architectural decisions
- Implementation guidance
### Product Requirements Document (PRD)
```
# PRD: [Feature]
## Goals
[Business goals]
## User Needs
[User problems being solved]
## Features
[Feature list]
## Success Metrics
[How to measure success]
```
Extract:
- Business goals
- User needs
- Feature list
- Success metrics
## Extraction Strategies
### Requirement Identification
Look for:
- "Must", "Should", "Will" statements
- Numbered requirements (REQ-1, etc.)
- User stories (As a... I want...)
- Acceptance criteria sections
- Feature lists
### Categorization
Group requirements by:
**Functional**: What the system does
- User capabilities
- System behaviors
- Data operations
**Non-Functional**: How the system performs
- Performance targets
- Security requirements
- Scalability needs
- Availability requirements
- Compliance requirements
**Constraints**: Limitations
- Technical constraints
- Business constraints
- Timeline constraints
### Priority Extraction
Identify priority indicators:
- "Critical", "Must have", "P0"
- "Important", "Should have", "P1"
- "Nice to have", "Could have", "P2"
- "Future", "Won't have", "P3"
Map to implementation phases based on priority.
## Handling Ambiguity
### Unclear Requirements
When requirement is ambiguous:
```markdown
## Clarifications Needed
### [Requirement ID/Description]
**Current text**: "[Ambiguous requirement]"
**Question**: [What needs clarification]
**Impact**: [Why this matters for implementation]
**Assumed for now**: [Working assumption if any]
```
Create clarification task or add comment to spec.
### Missing Information
When critical info is missing:
```markdown
## Missing Information
- **[Topic]**: Spec doesn't specify [what's missing]
- **Impact**: Blocks [affected tasks]
- **Action**: Need to [how to resolve]
```
### Conflicting Requirements
When requirements conflict:
```markdown
## Conflicting Requirements
**Conflict**: REQ-1 says [X] but REQ-5 says [Y]
**Impact**: [Implementation impact]
**Resolution needed**: [Decision needed]
```
## Acceptance Criteria Parsing
### Explicit Criteria
Direct acceptance criteria:
```
## Acceptance Criteria
- User can log in with email and password
- System sends confirmation email
- Session expires after 24 hours
```
Convert to checklist:
- [ ] User can log in with email and password
- [ ] System sends confirmation email
- [ ] Session expires after 24 hours
### Implicit Criteria
Derive from requirements:
```
Requirement: "Users can upload files up to 100MB"
Implied acceptance criteria:
- [ ] Files up to 100MB upload successfully
- [ ] Files over 100MB are rejected with error message
- [ ] Progress indicator shows during upload
- [ ] Upload can be cancelled
```
### Testable Criteria
Ensure criteria are testable:
**Not testable**: "System is fast"
**Testable**: "Page loads in < 2 seconds"
**Not testable**: "Users like the interface"
**Testable**: "90% of test users complete task successfully"
## Technical Detail Extraction
### Architecture Information
Extract:
- System components
- Data models
- APIs/interfaces
- Integration points
- Technology choices
### Design Decisions
Note:
- Technology selections
- Architecture patterns
- Trade-offs made
- Rationale provided
### Implementation Guidance
Look for:
- Suggested approach
- Code examples
- Library recommendations
- Best practices mentioned
## Dependency Identification
### External Dependencies
From spec, identify:
- Third-party services required
- External APIs needed
- Infrastructure requirements
- Tool/library dependencies
### Internal Dependencies
Identify:
- Other features needed first
- Shared components required
- Team dependencies
- Data dependencies
### Timeline Dependencies
Note:
- Hard deadlines
- Milestone dependencies
- Sequencing requirements
## Scope Extraction
### In Scope
What's explicitly included:
- Features to build
- Use cases to support
- Users/personas to serve
### Out of Scope
What's explicitly excluded:
- Features deferred
- Use cases not supported
- Edge cases not handled
### Assumptions
What's assumed:
- Environment assumptions
- User assumptions
- System state assumptions
## Risk Identification
Extract risk information:
### Technical Risks
- Unproven technology
- Complex integration
- Performance concerns
- Scalability unknowns
### Business Risks
- Market timing
- Resource availability
- Dependency on others
### Mitigation Strategies
Note any mitigation approaches mentioned in spec.
## Spec Quality Assessment
Evaluate spec completeness:
**Good spec**:
- Clear requirements
- Explicit acceptance criteria
- Priorities defined
- Risks identified
- Technical approach outlined
**Incomplete spec**:
- Vague requirements
- Missing acceptance criteria
- Unclear priorities
- No risk analysis
- Technical details absent
Document gaps and create clarification tasks.
## Parsing Checklist
Before creating implementation plan:
All functional requirements identified
Non-functional requirements noted
Acceptance criteria extracted
Dependencies identified
Risks noted
Ambiguities documented
Technical approach understood
Scope is clear
Priorities are defined