640 lines
17 KiB
Markdown
640 lines
17 KiB
Markdown
# /sdd:story-document
|
|
|
|
## Meta
|
|
- Version: 2.0
|
|
- Category: story-management
|
|
- Complexity: medium
|
|
- Purpose: Generate comprehensive documentation for implemented story features
|
|
|
|
## Definition
|
|
**Purpose**: Analyze story implementation and generate user, technical, and testing documentation with examples and inline code comments.
|
|
|
|
**Syntax**: `/sdd:story-document [story_id]`
|
|
|
|
## Parameters
|
|
| Parameter | Type | Required | Default | Description | Validation |
|
|
|-----------|------|----------|---------|-------------|------------|
|
|
| story_id | string | No | current active | Story ID to document (format: STORY-YYYY-NNN) | Must be valid story ID |
|
|
|
|
## INSTRUCTION: Generate Story Documentation
|
|
|
|
### INPUTS
|
|
- story_id: Story to document (defaults to current active story)
|
|
- Story file from `/docs/stories/development/` or `/docs/stories/review/`
|
|
- Implemented code files referenced in story
|
|
- Project context from `/docs/project-context/`
|
|
|
|
### PROCESS
|
|
|
|
#### Phase 1: Story Location and Validation
|
|
1. **DETERMINE** which story to document:
|
|
- IF story_id provided: USE specified story
|
|
- IF no story_id: FIND current active story in `/docs/stories/development/`
|
|
2. **LOCATE** story file:
|
|
- CHECK `/docs/stories/development/[story-id].md`
|
|
- CHECK `/docs/stories/review/[story-id].md`
|
|
- CHECK `/docs/stories/qa/[story-id].md`
|
|
3. IF story not found:
|
|
- EXIT with error message
|
|
- SUGGEST using `/sdd:project-status` to find valid story IDs
|
|
|
|
#### Phase 2: Story Analysis
|
|
1. **READ** story file to extract:
|
|
- Feature title and description (from "What & Why" section)
|
|
- Implementation details (from "Technical Notes")
|
|
- Success criteria (acceptance criteria)
|
|
- Test cases defined
|
|
- UI/UX considerations
|
|
- Integration points
|
|
|
|
2. **SCAN** codebase to identify implementation:
|
|
- LOCATE files referenced in progress log
|
|
- IDENTIFY new/modified components, functions, classes
|
|
- EXTRACT public APIs and interfaces
|
|
- MAP dependencies and imports
|
|
- NOTE configuration files affected
|
|
|
|
3. **LOAD** project context:
|
|
- `/docs/project-context/technical-stack.md` - Framework conventions
|
|
- `/docs/project-context/coding-standards.md` - Documentation style
|
|
- `/docs/project-context/development-process.md` - Doc requirements
|
|
|
|
#### Phase 3: Documentation Generation
|
|
|
|
**Generate Multiple Documentation Types:**
|
|
|
|
1. **USER DOCUMENTATION** (if user-facing feature):
|
|
- CREATE `/docs/features/[feature-name].md`
|
|
- INCLUDE:
|
|
* Feature overview and purpose
|
|
* How to use the feature (step-by-step)
|
|
* Common use cases with examples
|
|
* Troubleshooting guide
|
|
* Screenshots or diagrams (note if needed)
|
|
|
|
2. **TECHNICAL DOCUMENTATION**:
|
|
- CREATE `/docs/technical/[feature-name].md`
|
|
- INCLUDE:
|
|
* Architecture overview
|
|
* Component/module descriptions
|
|
* API reference (if applicable)
|
|
* Configuration options
|
|
* Integration guide
|
|
* Data flow diagrams (note if needed)
|
|
|
|
3. **TESTING DOCUMENTATION**:
|
|
- CREATE `/docs/testing/[feature-name].md`
|
|
- INCLUDE:
|
|
* How to test the feature
|
|
* Test scenarios covered
|
|
* Known edge cases
|
|
* Performance benchmarks (if applicable)
|
|
* Manual testing checklist
|
|
|
|
4. **INLINE CODE DOCUMENTATION**:
|
|
- ADD framework-appropriate comments:
|
|
* PHP: PHPDoc blocks
|
|
* JavaScript/TypeScript: JSDoc/TSDoc
|
|
* Python: Docstrings
|
|
* [DISCOVERED language]: Appropriate style
|
|
- DOCUMENT:
|
|
* Public functions and methods
|
|
* Component props/parameters
|
|
* Complex logic explanations
|
|
* Configuration constants
|
|
* Event handlers and callbacks
|
|
|
|
5. **CODE EXAMPLES**:
|
|
- CREATE `/docs/examples/[feature-name]/`
|
|
- INCLUDE:
|
|
* Basic usage snippets
|
|
* Configuration examples
|
|
* Integration examples
|
|
* Common patterns
|
|
* Copy-paste ready code
|
|
|
|
#### Phase 4: Update Existing Documentation
|
|
1. **UPDATE** project-level docs:
|
|
- `/README.md` - Add feature to feature list (if user-facing)
|
|
- `/docs/api.md` - Add API endpoints (if applicable)
|
|
- `/docs/configuration.md` - Add new config options
|
|
- `/CHANGELOG.md` - Document changes
|
|
- `/docs/migration.md` - Add migration guide (if breaking changes)
|
|
|
|
2. **PRESERVE** existing content:
|
|
- APPEND new sections rather than replace
|
|
- MAINTAIN existing formatting style
|
|
- KEEP version history intact
|
|
|
|
#### Phase 5: Story Documentation Update
|
|
1. **UPDATE** story file with documentation summary:
|
|
```markdown
|
|
## Documentation
|
|
|
|
### Generated Documentation
|
|
- User Guide: /docs/features/[feature-name].md
|
|
- Technical: /docs/technical/[feature-name].md
|
|
- Testing: /docs/testing/[feature-name].md
|
|
- Examples: /docs/examples/[feature-name]/
|
|
|
|
### Updated Documentation
|
|
- README.md: Added feature to feature list
|
|
- CHANGELOG.md: Documented changes for v[version]
|
|
|
|
### Inline Documentation
|
|
- Added PHPDoc blocks to [count] functions
|
|
- Documented [count] component props
|
|
- Added complex logic comments in [file:line]
|
|
|
|
### Documentation Status
|
|
- [x] User documentation complete
|
|
- [x] Technical documentation complete
|
|
- [x] Testing documentation complete
|
|
- [x] Inline code comments added
|
|
- [x] Examples created
|
|
- [ ] Screenshots needed (optional)
|
|
- [ ] Diagrams needed (optional)
|
|
```
|
|
|
|
2. **CHECK** documentation completion criteria:
|
|
- [ ] All public APIs documented
|
|
- [ ] User-facing features have user guide
|
|
- [ ] Complex logic has inline comments
|
|
- [ ] Examples demonstrate key use cases
|
|
- [ ] Configuration options documented
|
|
- [ ] Breaking changes documented in migration guide
|
|
|
|
#### Phase 6: Completion Summary
|
|
1. **DISPLAY** documentation summary:
|
|
```
|
|
✅ Documentation Generated
|
|
═══════════════════════════════════
|
|
|
|
Story: [STORY-YYYY-NNN] - [Title]
|
|
|
|
DOCUMENTATION CREATED:
|
|
✓ User Guide: /docs/features/[feature-name].md
|
|
✓ Technical: /docs/technical/[feature-name].md
|
|
✓ Testing: /docs/testing/[feature-name].md
|
|
✓ Examples: /docs/examples/[feature-name]/
|
|
|
|
DOCUMENTATION UPDATED:
|
|
✓ README.md (feature list)
|
|
✓ CHANGELOG.md (version notes)
|
|
[✓ Migration guide (if breaking changes)]
|
|
|
|
INLINE DOCUMENTATION:
|
|
✓ [count] functions documented
|
|
✓ [count] components documented
|
|
✓ [count] complex logic comments
|
|
|
|
DOCUMENTATION DEBT:
|
|
[- Screenshots recommended for user guide]
|
|
[- Sequence diagram would help explain flow]
|
|
|
|
Story Updated: Documentation section added
|
|
```
|
|
|
|
2. **SUGGEST** next steps:
|
|
```
|
|
💡 NEXT STEPS:
|
|
1. Review generated documentation for accuracy
|
|
2. Add screenshots/diagrams if noted
|
|
3. /sdd:story-review [story-id] # Move to code review
|
|
4. Share docs with team for feedback
|
|
```
|
|
|
|
### OUTPUTS
|
|
- `/docs/features/[feature-name].md` - User-facing documentation
|
|
- `/docs/technical/[feature-name].md` - Technical documentation
|
|
- `/docs/testing/[feature-name].md` - Testing documentation
|
|
- `/docs/examples/[feature-name]/` - Code examples
|
|
- Updated project documentation (README, CHANGELOG, etc.)
|
|
- Inline code comments in implementation files
|
|
- Updated story file with documentation summary
|
|
|
|
### RULES
|
|
- MUST analyze story to understand what was built
|
|
- MUST generate appropriate doc types based on feature type
|
|
- MUST use framework-appropriate inline documentation style
|
|
- MUST update story file with documentation summary
|
|
- SHOULD create user docs for user-facing features
|
|
- SHOULD include code examples for all public APIs
|
|
- SHOULD update project README and CHANGELOG
|
|
- NEVER remove existing documentation
|
|
- ALWAYS preserve existing formatting style
|
|
- MUST check all public APIs are documented
|
|
|
|
## Documentation Templates
|
|
|
|
### User Documentation Template
|
|
```markdown
|
|
# [Feature Name]
|
|
|
|
## Overview
|
|
[What the feature does and why it exists]
|
|
|
|
## Prerequisites
|
|
[What user needs before using this feature]
|
|
|
|
## Getting Started
|
|
|
|
### Quick Start
|
|
[Simplest possible example to get started]
|
|
|
|
### Step-by-Step Guide
|
|
1. [First step with clear instructions]
|
|
2. [Second step]
|
|
3. [Continue...]
|
|
|
|
## Usage Examples
|
|
|
|
### Example 1: [Common Use Case]
|
|
[Description of scenario]
|
|
|
|
```[language]
|
|
[Code example]
|
|
```
|
|
|
|
[Expected result]
|
|
|
|
### Example 2: [Another Use Case]
|
|
[Description]
|
|
|
|
```[language]
|
|
[Code example]
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Available Options
|
|
| Option | Type | Default | Description |
|
|
|--------|------|---------|-------------|
|
|
| [option] | [type] | [default] | [what it does] |
|
|
|
|
### Configuration Example
|
|
```[format]
|
|
[Example configuration]
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Common Issues
|
|
|
|
#### [Issue 1]
|
|
**Problem**: [Description]
|
|
**Solution**: [How to fix]
|
|
|
|
#### [Issue 2]
|
|
**Problem**: [Description]
|
|
**Solution**: [How to fix]
|
|
|
|
## Related Features
|
|
- [Related feature 1]
|
|
- [Related feature 2]
|
|
|
|
## Additional Resources
|
|
- [Link to technical docs]
|
|
- [Link to API reference]
|
|
```
|
|
|
|
### Technical Documentation Template
|
|
```markdown
|
|
# [Feature Name] - Technical Documentation
|
|
|
|
## Architecture Overview
|
|
[High-level architecture description]
|
|
|
|
## Components
|
|
|
|
### [Component 1]
|
|
**Purpose**: [What it does]
|
|
**Location**: [File path]
|
|
**Dependencies**: [What it depends on]
|
|
|
|
**Public Interface**:
|
|
```[language]
|
|
[Key methods/functions]
|
|
```
|
|
|
|
**Usage**:
|
|
```[language]
|
|
[How to use it]
|
|
```
|
|
|
|
### [Component 2]
|
|
[Same structure]
|
|
|
|
## Data Flow
|
|
[Description of how data flows through the system]
|
|
|
|
```
|
|
[Diagram or flowchart in text/Mermaid format]
|
|
```
|
|
|
|
## API Reference
|
|
|
|
### [Function/Method Name]
|
|
```[language]
|
|
[Full signature]
|
|
```
|
|
|
|
**Parameters**:
|
|
- `param1` ([type]): [Description]
|
|
- `param2` ([type]): [Description]
|
|
|
|
**Returns**: [Return type and description]
|
|
|
|
**Throws**: [Exceptions that can be thrown]
|
|
|
|
**Example**:
|
|
```[language]
|
|
[Usage example]
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Environment Variables
|
|
| Variable | Required | Default | Description |
|
|
|----------|----------|---------|-------------|
|
|
| [VAR] | [Yes/No] | [default] | [what it does] |
|
|
|
|
### Configuration Files
|
|
[List of config files and their purpose]
|
|
|
|
## Integration Guide
|
|
|
|
### Integrating with [System/Feature]
|
|
[Step-by-step integration instructions]
|
|
|
|
### Event Hooks
|
|
[Available hooks/events for extending functionality]
|
|
|
|
## Performance Considerations
|
|
- [Performance tip 1]
|
|
- [Performance tip 2]
|
|
|
|
## Security Considerations
|
|
- [Security concern 1]
|
|
- [Security concern 2]
|
|
|
|
## Testing
|
|
[Link to testing documentation]
|
|
|
|
## Troubleshooting
|
|
[Link to user documentation troubleshooting section]
|
|
```
|
|
|
|
### Testing Documentation Template
|
|
```markdown
|
|
# Testing: [Feature Name]
|
|
|
|
## Test Coverage Summary
|
|
- Unit Tests: [count] tests, [X]% coverage
|
|
- Integration Tests: [count] tests
|
|
- E2E Tests: [count] tests
|
|
- Manual Tests: [count] scenarios
|
|
|
|
## Running Tests
|
|
|
|
### All Tests
|
|
```bash
|
|
[Command to run all tests]
|
|
```
|
|
|
|
### Unit Tests Only
|
|
```bash
|
|
[Command to run unit tests]
|
|
```
|
|
|
|
### Integration Tests
|
|
```bash
|
|
[Command to run integration tests]
|
|
```
|
|
|
|
## Test Scenarios
|
|
|
|
### Scenario 1: [Happy Path]
|
|
**Given**: [Initial state]
|
|
**When**: [Action taken]
|
|
**Then**: [Expected result]
|
|
|
|
**Test**: [Test file and function name]
|
|
|
|
### Scenario 2: [Error Case]
|
|
**Given**: [Initial state]
|
|
**When**: [Action taken]
|
|
**Then**: [Expected error handling]
|
|
|
|
**Test**: [Test file and function name]
|
|
|
|
## Edge Cases Tested
|
|
1. [Edge case 1] - [How it's tested]
|
|
2. [Edge case 2] - [How it's tested]
|
|
|
|
## Known Limitations
|
|
- [Limitation 1]
|
|
- [Limitation 2]
|
|
|
|
## Manual Testing Checklist
|
|
- [ ] [Manual test step 1]
|
|
- [ ] [Manual test step 2]
|
|
- [ ] [Verify on different browsers/devices]
|
|
|
|
## Performance Benchmarks
|
|
[If applicable, performance test results]
|
|
|
|
## Test Data
|
|
[How to set up test data or where test fixtures are located]
|
|
```
|
|
|
|
## Examples
|
|
|
|
### Example 1: Document Current Active Story
|
|
```bash
|
|
INPUT:
|
|
/sdd:story-document
|
|
|
|
OUTPUT:
|
|
→ Finding active story...
|
|
→ Located: STORY-2025-003 in /docs/stories/development/
|
|
→ Analyzing implemented features...
|
|
→ Scanning codebase for TaskManager component...
|
|
→ Generating documentation...
|
|
|
|
✅ Documentation Generated
|
|
═══════════════════════════════════
|
|
|
|
Story: STORY-2025-003 - Task Management System
|
|
|
|
DOCUMENTATION CREATED:
|
|
✓ User Guide: /docs/features/task-management.md
|
|
✓ Technical: /docs/technical/task-management.md
|
|
✓ Testing: /docs/testing/task-management.md
|
|
✓ Examples: /docs/examples/task-management/
|
|
|
|
DOCUMENTATION UPDATED:
|
|
✓ README.md (added to feature list)
|
|
✓ CHANGELOG.md (documented for v1.2.0)
|
|
|
|
INLINE DOCUMENTATION:
|
|
✓ 12 functions documented with PHPDoc
|
|
✓ 3 Livewire components documented
|
|
✓ 5 complex logic sections commented
|
|
|
|
DOCUMENTATION DEBT:
|
|
- Screenshots recommended for user guide
|
|
- Consider adding sequence diagram for task lifecycle
|
|
|
|
Story Updated: Documentation section added
|
|
|
|
💡 NEXT STEPS:
|
|
1. Review generated documentation for accuracy
|
|
2. Add screenshots to user guide
|
|
3. /sdd:story-review STORY-2025-003 # Move to code review
|
|
4. Share docs with team for feedback
|
|
```
|
|
|
|
### Example 2: Document Specific Story
|
|
```bash
|
|
INPUT:
|
|
/sdd:story-document STORY-2025-005
|
|
|
|
OUTPUT:
|
|
→ Locating story: STORY-2025-005...
|
|
→ Found in /docs/stories/review/
|
|
→ Analyzing authentication implementation...
|
|
→ Generating documentation...
|
|
|
|
✅ Documentation Generated
|
|
═══════════════════════════════════
|
|
|
|
Story: STORY-2025-005 - User Authentication
|
|
|
|
DOCUMENTATION CREATED:
|
|
✓ User Guide: /docs/features/authentication.md
|
|
✓ Technical: /docs/technical/authentication.md
|
|
✓ Testing: /docs/testing/authentication.md
|
|
✓ Examples: /docs/examples/authentication/
|
|
✓ Migration Guide: /docs/migration-v2.md (breaking changes)
|
|
|
|
DOCUMENTATION UPDATED:
|
|
✓ README.md (security section)
|
|
✓ CHANGELOG.md (v2.0.0 breaking changes)
|
|
✓ docs/api.md (auth endpoints)
|
|
|
|
INLINE DOCUMENTATION:
|
|
✓ 8 controller methods documented
|
|
✓ 4 middleware classes documented
|
|
✓ Security notes added to sensitive functions
|
|
|
|
Story Updated: Documentation section added
|
|
|
|
💡 NEXT STEPS:
|
|
1. Review security documentation carefully
|
|
2. /sdd:story-review STORY-2025-005 # Continue review process
|
|
```
|
|
|
|
### Example 3: API Documentation
|
|
```bash
|
|
INPUT:
|
|
/sdd:story-document STORY-2025-007
|
|
|
|
OUTPUT:
|
|
→ Locating story: STORY-2025-007...
|
|
→ Found in /docs/stories/development/
|
|
→ Analyzing REST API implementation...
|
|
→ Extracting API endpoints and schemas...
|
|
→ Generating OpenAPI specification...
|
|
|
|
✅ Documentation Generated
|
|
═══════════════════════════════════
|
|
|
|
Story: STORY-2025-007 - REST API for Tasks
|
|
|
|
DOCUMENTATION CREATED:
|
|
✓ API Reference: /docs/api/tasks.md
|
|
✓ Technical: /docs/technical/api-tasks.md
|
|
✓ Testing: /docs/testing/api-tasks.md
|
|
✓ OpenAPI Spec: /docs/openapi/tasks.yaml
|
|
✓ Postman Collection: /docs/examples/tasks.postman.json
|
|
|
|
DOCUMENTATION UPDATED:
|
|
✓ docs/api.md (added tasks endpoints)
|
|
✓ README.md (API section)
|
|
✓ CHANGELOG.md (new API endpoints)
|
|
|
|
INLINE DOCUMENTATION:
|
|
✓ 6 API endpoints documented
|
|
✓ Request/response schemas defined
|
|
✓ Error responses documented
|
|
|
|
Story Updated: Documentation section added
|
|
|
|
💡 NEXT STEPS:
|
|
1. Test with Postman collection
|
|
2. Share OpenAPI spec with frontend team
|
|
3. /sdd:story-review STORY-2025-007
|
|
```
|
|
|
|
## Edge Cases
|
|
|
|
### Story Not Found
|
|
- DETECT invalid story ID
|
|
- SUGGEST using `/sdd:project-status` to list valid stories
|
|
- EXIT with helpful error message
|
|
|
|
### Story Has No Implementation Yet
|
|
- DETECT story in backlog with no code
|
|
- WARN that documentation requires implemented code
|
|
- SUGGEST using `/sdd:story-implement [id]` first
|
|
- EXIT gracefully
|
|
|
|
### No User-Facing Changes
|
|
- DETECT backend-only or infrastructure changes
|
|
- SKIP user documentation generation
|
|
- FOCUS on technical and testing documentation
|
|
- NOTE decision in story update
|
|
|
|
### Documentation Already Exists
|
|
- DETECT existing documentation files
|
|
- ASK user: Update existing or create new version?
|
|
- IF update: Merge new content with existing
|
|
- IF new: Create versioned documentation
|
|
- PRESERVE all existing content
|
|
|
|
### Complex API with Many Endpoints
|
|
- DETECT large API surface area
|
|
- GENERATE comprehensive API reference
|
|
- CREATE OpenAPI/Swagger specification
|
|
- ORGANIZE by resource/domain
|
|
- PROVIDE Postman/Insomnia collections
|
|
|
|
## Error Handling
|
|
- **Story not found**: Show available stories from `/sdd:project-status`
|
|
- **No implementation found**: Guide user to implement first
|
|
- **Permission errors**: Report specific file/directory issue
|
|
- **Documentation write errors**: Log error, continue with other docs
|
|
|
|
## Performance Considerations
|
|
- Documentation generation typically takes 10-30 seconds
|
|
- Inline documentation added via file editing (may take longer for many files)
|
|
- Show progress indicators for multi-file operations
|
|
- Cache story analysis for session
|
|
|
|
## Related Commands
|
|
- `/sdd:story-implement [id]` - Generate implementation first
|
|
- `/sdd:story-review [id]` - Move to code review after documentation
|
|
- `/sdd:story-test [id]` - Verify tests before documenting
|
|
- `/sdd:project-status` - Find stories to document
|
|
|
|
## Constraints
|
|
- ✅ MUST analyze story to understand implementation
|
|
- ✅ MUST generate docs appropriate to feature type
|
|
- ✅ MUST use framework-appropriate inline doc style
|
|
- ✅ MUST update story with documentation summary
|
|
- 📋 SHOULD create user docs for user-facing features
|
|
- 🔧 SHOULD include code examples for public APIs
|
|
- 💾 MUST preserve existing documentation content
|
|
- ⚠️ NEVER remove or replace existing docs without confirmation
|
|
- 🧪 MUST document all test scenarios covered |