# Blueprint-Driven Systematic Implementation

When the user provides a comprehensive engineering specification document (blueprint, design doc, architecture spec), treat it as a checklist — not a suggestion.

## Workflow

1. **Parse the spec into sections.** Count the sections. Create a todo list with one item per section.

2. **Audit current state per section.** For each section: what exists already? What's missing? What's partially done?

3. **Prioritize by visibility.** The user wants to SEE changes. Prioritize:
   - Screen-level wiring (NavHost changes) — instantly visible
   - Shared components (sidebar, cards, hero) — visible across multiple screens
   - Design system (colors, typography, focus indicators) — changes everything
   - New screens (settings hub, detail page) — one new route at a time
   - Infrastructure (MVI, audio, error reporting) — invisible but important
   - Performance/testing — last

4. **Implement section by section.** One section at a time, build → verify → commit. Don't jump around.

5. **After every batch: verify integration.** Build the APK and check that old component names no longer appear in the NavHost or shared screens:
   ```bash
   grep -r "OldComponentName" app/src/main/java/
   ```
   If results exist, the new components are not fully wired.

6. **Commit per phase** with descriptive messages listing every section implemented.

## Anti-patterns

- Building 33 files and committing without wiring any of them into the NavHost
- Creating new screens but leaving old ones active in routes
- Building card components but never updating the screens that render cards
- Auditing a spec document and summarizing gaps without implementing them

## Red Flag: git status shows only new files

```bash
git status --short
# All `??` or `A` — no `M` files means nothing existing was modified
```

If a batch of new files has zero modifications to existing files, the new code is dead. Every new composable must be called from somewhere.

## Red Flag: user says "the app looks the same"

This means the UI wasn't wired. The user sees the old components because the NavHost still points to them.
