222 lines
8.7 KiB
Markdown
222 lines
8.7 KiB
Markdown
# Phase 4: Implementation
|
|
|
|
## Overview
|
|
|
|
Phase 4 is where planning transitions into actual development. This phase manages the iterative implementation of stories defined in the epic files, tracking their progress through a well-defined status workflow.
|
|
|
|
## Status Definitions
|
|
|
|
### Epic Status
|
|
|
|
Epics progress through a simple two-state flow:
|
|
|
|
| Status | Description | Next Status |
|
|
| ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
|
|
| **backlog** | Epic exists in epic file but technical context has not been created | contexted |
|
|
| **contexted** | Epic technical context has been created via `epic-tech-context` workflow. This is a prerequisite before any stories in the epic can be drafted. | - |
|
|
|
|
**File Indicators:**
|
|
|
|
- `backlog`: No `epic-{n}-context.md` file exists
|
|
- `contexted`: `{output_folder}/epic-{n}-context.md` file exists
|
|
|
|
### Story Status
|
|
|
|
Stories progress through a six-state flow representing their journey from idea to implementation:
|
|
|
|
| Status | Description | Set By | Next Status |
|
|
| ----------------- | ---------------------------------------------------------------------------------- | ------------- | ------------- |
|
|
| **backlog** | Story only exists in the epic file, no work has begun | Initial state | drafted |
|
|
| **drafted** | Story file has been created via `create-story` workflow | SM Agent | ready-for-dev |
|
|
| **ready-for-dev** | Story has been drafted, approved, and context created via `story-context` workflow | SM Agent | in-progress |
|
|
| **in-progress** | Developer is actively implementing the story | Dev Agent | review |
|
|
| **review** | Implementation complete, under SM review via `code-review` workflow | Dev Agent | done |
|
|
| **done** | Story has been reviewed and completed | Dev Agent | - |
|
|
|
|
**File Indicators:**
|
|
|
|
- `backlog`: No story file exists
|
|
- `drafted`: `{story_dir}/{story-key}.md` file exists (e.g., `1-1-user-auth.md`)
|
|
- `ready-for-dev`: Both story file and context exist (e.g., `1-1-user-auth-context.md`)
|
|
- `in-progress`, `review`, `done`: Manual status updates in sprint-status.yaml
|
|
|
|
### Retrospective Status
|
|
|
|
Optional retrospectives can be completed after an epic:
|
|
|
|
| Status | Description |
|
|
| ------------- | -------------------------------------------------- |
|
|
| **optional** | Retrospective can be completed but is not required |
|
|
| **completed** | Retrospective has been completed |
|
|
|
|
## Status Transitions
|
|
|
|
### Epic Flow
|
|
|
|
```mermaid
|
|
graph LR
|
|
backlog --> contexted[contexted via epic-tech-context]
|
|
```
|
|
|
|
### Story Flow
|
|
|
|
```mermaid
|
|
graph LR
|
|
backlog --> drafted[drafted via create-story]
|
|
drafted --> ready[ready-for-dev via story-context]
|
|
ready --> progress[in-progress - dev starts]
|
|
progress --> review[review via code-review]
|
|
review --> done[done - dev completes]
|
|
```
|
|
|
|
## Sprint Status Management
|
|
|
|
The `sprint-status.yaml` file is the single source of truth for tracking all work items. It contains:
|
|
|
|
- All epics with their current status
|
|
- All stories with their current status
|
|
- Retrospective placeholders for each epic
|
|
- Clear documentation of status definitions
|
|
|
|
### Example Sprint Status File
|
|
|
|
```yaml
|
|
development_status:
|
|
epic-1: contexted
|
|
1-1-project-foundation: done
|
|
1-2-app-shell: done
|
|
1-3-user-authentication: in-progress
|
|
1-4-plant-data-model: ready-for-dev
|
|
1-5-add-plant-manual: drafted
|
|
1-6-photo-identification: backlog
|
|
1-7-plant-naming: backlog
|
|
epic-1-retrospective: optional
|
|
|
|
epic-2: backlog
|
|
2-1-personality-system: backlog
|
|
2-2-chat-interface: backlog
|
|
2-3-llm-integration: backlog
|
|
epic-2-retrospective: optional
|
|
```
|
|
|
|
## Workflows in Phase 4
|
|
|
|
### Core Workflows
|
|
|
|
| Workflow | Purpose | Updates Status |
|
|
| --------------------- | -------------------------------------------------- | ----------------------------------- |
|
|
| **sprint-planning** | Generate/update sprint-status.yaml from epic files | Auto-detects file-based statuses |
|
|
| **epic-tech-context** | Create technical context for an epic | epic: backlog → contexted |
|
|
| **create-story** | Draft a story from epics/PRD | story: backlog → drafted |
|
|
| **story-context** | Add implementation context to story | story: drafted → ready-for-dev |
|
|
| **dev-story** | Developer implements the story | story: ready-for-dev → in-progress |
|
|
| **code-review** | SM reviews implementation | story: in-progress → review |
|
|
| **retrospective** | Conduct epic retrospective | retrospective: optional → completed |
|
|
| **correct-course** | Course correction when needed | Various status updates |
|
|
|
|
### Sprint Planning Workflow
|
|
|
|
The `sprint-planning` workflow is the foundation of Phase 4. It:
|
|
|
|
1. **Parses all epic files** (`epic*.md` or `epics.md`)
|
|
2. **Extracts all epics and stories** maintaining their order
|
|
3. **Auto-detects current status** based on existing files:
|
|
- Checks for epic context files
|
|
- Checks for story files
|
|
- Checks for story context files
|
|
4. **Generates sprint-status.yaml** with current reality
|
|
5. **Preserves manual status updates** (won't downgrade statuses)
|
|
|
|
Run this workflow:
|
|
|
|
- Initially after Phase 3 completion
|
|
- After creating epic contexts
|
|
- Periodically to sync file-based status
|
|
- To verify current project state
|
|
|
|
### Workflow Guidelines
|
|
|
|
1. **Epic Context First**: Epics should be contexted before drafting their stories
|
|
2. **Flexible Parallelism**: Multiple stories can be in-progress based on team capacity
|
|
3. **Sequential Default**: Stories within an epic are typically worked in order
|
|
4. **Learning Transfer**: SM drafts next story after previous is done, incorporating learnings
|
|
5. **Review Flow**: Dev moves to review, SM reviews, Dev moves to done
|
|
|
|
## Agent Responsibilities
|
|
|
|
### SM (Scrum Master) Agent
|
|
|
|
- Run `sprint-planning` to generate initial status
|
|
- Create epic contexts (`epic-tech-context`)
|
|
- Draft stories (`create-story`)
|
|
- Create story contexts (`story-context`)
|
|
- Review completed work (`code-review`)
|
|
- Update status in sprint-status.yaml
|
|
|
|
### Developer Agent
|
|
|
|
- Check sprint-status.yaml for `ready-for-dev` stories
|
|
- Update status to `in-progress` when starting
|
|
- Implement stories (`dev-story`)
|
|
- Move to `review` when complete
|
|
- Address review feedback
|
|
- Update to `done` after approval
|
|
|
|
### Test Architect
|
|
|
|
- Monitor stories entering `review` status
|
|
- Track epic progress
|
|
- Identify when retrospectives needed
|
|
- Validate implementation quality
|
|
|
|
## Best Practices
|
|
|
|
1. **Always run sprint-planning first** to establish current state
|
|
2. **Update status immediately** as work progresses
|
|
3. **Check sprint-status.yaml** before starting any work
|
|
4. **Preserve learning** by drafting stories sequentially when possible
|
|
5. **Document decisions** in story and context files
|
|
|
|
## Naming Conventions
|
|
|
|
### Story File Naming
|
|
|
|
- Format: `{epic}-{story}-{kebab-title}.md`
|
|
- Example: `1-1-user-authentication.md`
|
|
- Avoids YAML float parsing issues (1.1 vs 1.10)
|
|
- Makes files self-descriptive
|
|
|
|
### Git Branch Naming
|
|
|
|
- Format: `feat/{epic}-{story}-{kebab-title}`
|
|
- Example: `feat/1-1-user-authentication`
|
|
- Consistent with story file naming
|
|
- Clean for branch management
|
|
|
|
## File Structure
|
|
|
|
```
|
|
{output_folder}/
|
|
├── sprint-status.yaml # Sprint status tracking
|
|
├── epic*.md or epics.md # Epic definitions
|
|
├── epic-1-context.md # Epic technical contexts
|
|
├── epic-2-context.md
|
|
└── stories/
|
|
├── 1-1-user-authentication.md # Story drafts
|
|
├── 1-1-user-authentication-context.md # Story contexts
|
|
├── 1-2-account-management.md
|
|
├── 1-2-account-management-context.md
|
|
└── ...
|
|
```
|
|
|
|
## Next Steps
|
|
|
|
After Phase 4 implementation, projects typically move to:
|
|
|
|
- Deployment and release
|
|
- User acceptance testing
|
|
- Production monitoring
|
|
- Maintenance and updates
|
|
|
|
The sprint-status.yaml file provides a complete audit trail of the development process and can be used for project reporting and retrospectives.
|