# 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.
