بنقرة واحدة
roadmap
// Creates and manages project roadmaps with milestones and PRD queues. Use after architecture is defined for project planning. Triggers on: create roadmap, plan milestones, organize prds.
// Creates and manages project roadmaps with milestones and PRD queues. Use after architecture is defined for project planning. Triggers on: create roadmap, plan milestones, organize prds.
Designs system architecture and selects technology stack based on vision analysis. Use after vision analysis for technical decisions. Triggers on: design architecture, select tech stack, choose framework.
Defines God Committee member behavior and responsibilities with oversight authority. Use when operating as a committee member. Triggers on: god committee, committee observation, council discussion.
Logs AI thoughts and decisions for human observability. Applies continuously throughout all tasks to maintain transparency.
Generates Product Requirements Documents (PRD) for new features. Use when planning features or starting projects. Triggers on: create prd, write prd, plan feature, requirements, spec out.
Conducts deep technical research for Aha Loop stories. Use before implementing stories involving unfamiliar libraries or architectural decisions. Triggers on: research this, investigate, explore options, compare alternatives.
Parses and analyzes project vision to extract structured requirements. Use at project start to understand goals, scope, and constraints. Triggers on: analyze vision, parse project goals, understand requirements.
| name | roadmap |
| description | Creates and manages project roadmaps with milestones and PRD queues. Use after architecture is defined for project planning. Triggers on: create roadmap, plan milestones, organize prds. |
Plan project execution by creating milestones and organizing PRDs into an executable queue.
When running in workspace mode, all paths are relative to .aha-loop/ directory:
.aha-loop/project.vision-analysis.md.aha-loop/project.architecture.md.aha-loop/project.roadmap.json.aha-loop/tasks/The orchestrator will provide the actual paths in the prompt context.
project.vision-analysis.md and project.architecture.mdproject.roadmap.jsontasks/| Milestone | Focus | Goal |
|---|---|---|
| M0: Foundation | Project scaffolding, CI/CD, tooling | Development environment ready |
| M1: MVP | Core features only | Minimal usable product |
| M2: Essential | Important features | Feature-complete for basic use |
| M3: Enhanced | Nice-to-have features | Polished product |
| M4: Optimization | Performance, UX polish | Production-ready |
Each milestone should:
For each milestone, break down features into PRDs:
Milestone: M1 - MVP
├── PRD-001: Project Scaffolding
├── PRD-002: Database Schema
├── PRD-003: Core Data Models
├── PRD-004: Basic API Endpoints
└── PRD-005: Minimal UI
Each PRD should:
Order PRDs by dependencies:
{
"version": 1,
"projectName": "[From vision]",
"status": "in_progress",
"currentMilestone": "M1",
"currentPRD": "PRD-002",
"createdAt": "[timestamp]",
"updatedAt": "[timestamp]",
"milestones": [
{
"id": "M0",
"title": "Foundation",
"description": "Project setup and development environment",
"status": "completed",
"completedAt": "[timestamp]",
"prds": [
{
"id": "PRD-001",
"title": "Project Scaffolding",
"description": "Initialize project structure, dependencies, and tooling",
"status": "completed",
"prdFile": "tasks/prd-scaffolding.md",
"stories": 5,
"completedAt": "[timestamp]"
}
]
},
{
"id": "M1",
"title": "MVP",
"description": "Minimum viable product with core functionality",
"status": "in_progress",
"prds": [
{
"id": "PRD-002",
"title": "Database Schema",
"description": "Design and implement database schema",
"status": "in_progress",
"prdFile": "tasks/prd-database.md",
"stories": 8,
"dependsOn": ["PRD-001"]
},
{
"id": "PRD-003",
"title": "Core API",
"description": "Implement core API endpoints",
"status": "pending",
"prdFile": "tasks/prd-core-api.md",
"stories": 12,
"dependsOn": ["PRD-002"]
}
]
},
{
"id": "M2",
"title": "Essential Features",
"description": "Complete essential features for basic use",
"status": "pending",
"prds": []
}
],
"changelog": [
{
"timestamp": "[timestamp]",
"action": "created",
"description": "Initial roadmap created from vision and architecture"
}
]
}
From vision analysis, categorize features:
## Feature Categories
### M1: MVP (Must ship)
- [Feature 1]
- [Feature 2]
### M2: Essential (Should ship)
- [Feature 3]
- [Feature 4]
### M3: Enhanced (Nice to ship)
- [Feature 5]
Every project starts with M0:
## M0: Foundation PRDs
### PRD-001: Project Scaffolding
- Initialize project with chosen tech stack
- Set up directory structure
- Configure linting and formatting
- Set up basic CI (if applicable)
- Create initial README
### PRD-002: Development Environment
- Database setup (if applicable)
- Environment configuration
- Development scripts
- Basic testing infrastructure
For each milestone after M0:
For each PRD, create a stub file in tasks/:
# PRD: [Title]
**ID:** PRD-XXX
**Milestone:** M[N]
**Status:** Pending
## Overview
[Brief description from roadmap]
## Context
[How this relates to previous PRDs and the overall project]
## Goals
- [Goal 1]
- [Goal 2]
## User Stories
[To be generated when this PRD becomes active]
## Dependencies
- PRD-XXX: [What it depends on]
## Acceptance Criteria
- [ ] [High-level criterion]
- [ ] [Another criterion]
---
*This PRD will be fully expanded when it becomes the active PRD.*
The roadmap should be updated when:
{
"changelog": [
{
"timestamp": "2026-01-29T12:00:00Z",
"action": "prd_completed",
"prdId": "PRD-002",
"description": "Database schema implemented"
},
{
"timestamp": "2026-01-29T14:00:00Z",
"action": "prd_added",
"prdId": "PRD-007",
"description": "Added caching layer PRD based on performance research"
}
]
}
The orchestrator should trigger roadmap review:
# Get current PRD
jq '.currentPRD' project.roadmap.json
# Get PRD file path
jq -r '.milestones[].prds[] | select(.id == "PRD-002") | .prdFile' project.roadmap.json
After PRD completion:
# Update PRD status
jq '.milestones[].prds[] |= if .id == "PRD-002" then .status = "completed" else . end' project.roadmap.json
# Pseudocode for finding next PRD
def get_next_prd(roadmap):
for milestone in roadmap.milestones:
if milestone.status == "completed":
continue
for prd in milestone.prds:
if prd.status == "pending":
if all_dependencies_complete(prd):
return prd
return None # All complete or blocked
If a PRD's dependencies aren't met:
Project: Personal Finance Tracker (from vision example)
{
"version": 1,
"projectName": "Finance Tracker",
"status": "in_progress",
"currentMilestone": "M0",
"currentPRD": "PRD-001",
"milestones": [
{
"id": "M0",
"title": "Foundation",
"status": "in_progress",
"prds": [
{
"id": "PRD-001",
"title": "SvelteKit Project Setup",
"description": "Initialize SvelteKit project with TypeScript, Tailwind, PWA support",
"status": "in_progress",
"prdFile": "tasks/prd-project-setup.md",
"stories": 6
}
]
},
{
"id": "M1",
"title": "MVP - Core Expense Tracking",
"status": "pending",
"prds": [
{
"id": "PRD-002",
"title": "Data Layer",
"description": "Implement IndexedDB with Dexie for expense storage",
"status": "pending",
"prdFile": "tasks/prd-data-layer.md",
"stories": 8,
"dependsOn": ["PRD-001"]
},
{
"id": "PRD-003",
"title": "Quick Expense Entry",
"description": "Fast expense input form (< 5 seconds goal)",
"status": "pending",
"prdFile": "tasks/prd-expense-entry.md",
"stories": 10,
"dependsOn": ["PRD-002"]
},
{
"id": "PRD-004",
"title": "Expense List View",
"description": "View and manage recorded expenses",
"status": "pending",
"prdFile": "tasks/prd-expense-list.md",
"stories": 8,
"dependsOn": ["PRD-002"]
}
]
},
{
"id": "M2",
"title": "Reports & PWA",
"status": "pending",
"prds": [
{
"id": "PRD-005",
"title": "Monthly Reports",
"description": "Auto-generated monthly expense reports",
"status": "pending",
"prdFile": "tasks/prd-reports.md",
"stories": 10,
"dependsOn": ["PRD-003", "PRD-004"]
},
{
"id": "PRD-006",
"title": "PWA Offline Support",
"description": "Full offline capability with service worker",
"status": "pending",
"prdFile": "tasks/prd-pwa.md",
"stories": 8,
"dependsOn": ["PRD-002"]
}
]
}
]
}
Before completing roadmap:
project.roadmap.json