Feature Plan
Plan a feature implementation by understanding the project architecture, decomposing work into service-level and role-level packages, and producing an actionable plan. This is the planning phase — no code is written here. Output feeds into feature-dev skill for execution.
1. Receive Feature Requirements
Gather the feature specification from the user:
- Accepted formats: PRD, ARD, design doc, implementation plan, ticket/issue, verbal description
- Read every provided document thoroughly
- Extract and organize:
- Goal: What the feature does (1–2 sentences)
- Requirements: Functional (what it does) and non-functional (performance, security, compliance)
- Acceptance criteria: How to verify the feature works
- Constraints: Deadlines, compatibility, dependencies on other teams/services
- Out of scope: What this feature explicitly does NOT cover
If the specification is ambiguous or incomplete — ask before proceeding. Do not assume missing requirements.
2. Understand Project Architecture
Read and internalize the project's structure to plan correctly:
2a. Read Architecture Documentation
Read the following files (if they exist):
ARCHITECTURE.md — system overview, component boundaries, data flow, service map
AGENTS.md (root) — tech stack declaration, project structure, conventions
- Subdirectory
AGENTS.md files — per-service/module context and stack info
Extract:
- Service/module boundaries (monolith modules, microservices, frontend/backend split)
- Tech stack per service (language, framework, database, messaging)
- Communication patterns (REST, gRPC, events, shared DB)
- Data flow relevant to the feature
- Deployment topology (monorepo vs polyrepo, shared vs independent deploys)
2b. Scan Project Structure
If documentation is incomplete or absent, scan the filesystem:
// turbo
ls -la (or dir for Windows)
Look for:
- Monorepo signals:
packages/, services/, apps/, root package.json with workspaces, Nx/Turborepo config
- Polyrepo signals: Single service, one
AGENTS.md, one tech stack
- Infrastructure:
terraform/, infra/, k8s/, helm/, docker-compose.yml
- Dependency files:
package.json, pom.xml, requirements.txt, go.mod, *.csproj per service
2c. Build Service Map
Create a map of services/modules the feature touches:
## Service Map
| Service/Module | Tech Stack | Role | Affected by Feature |
|---|---|---|---|
| [name] | [lang + framework] | `role-id` | [yes/no — how] |
| [name] | [lang + framework] | `role-id` | [yes/no — how] |
| infrastructure | Terraform / K8s | `devops-engineer` role | [yes/no — how] |
3. Decompose into Work Packages
Break the feature into work packages — each package is a self-contained unit of work scoped to one service/module and one role.
3a. Identify Work Streams
Group changes by responsibility:
| Work Stream |
Role |
Scope |
| Frontend |
frontend-engineer role |
UI components, pages, client-side logic, API integration |
| Backend API |
java-engineer role / python-engineer role |
Endpoints, business logic, data access, validation |
| Data Layer |
db-engineer role |
Database schema, migrations, queries, indexing, optimization |
| Infrastructure |
devops-engineer role |
Terraform, Docker, K8s, config, secrets |
| Cloud Architecture |
cloud-architect role |
Cloud platform design, landing zones, networking, cost optimization |
| CI/CD Architecture |
devops-architect role |
Pipeline design, deployment strategy, GitHub org governance, platform engineering |
| ML / Data |
ml-engineer role |
Models, pipelines, feature engineering. For LLM/RAG/agent features also consult context-engineering skill |
| Data Pipelines |
data-engineer role |
ETL/ELT, data warehousing, Spark, dbt, Airflow |
| Mobile |
mobile-engineer role |
React Native, Flutter, iOS, Android apps |
| Marketing Content |
marketing-strategist role |
Positioning, messaging, GTM, landing pages |
| Architecture |
system-architect role |
System design, ARCHITECTURE.md, component boundaries, tech selection |
| Cross-cutting |
software-engineer role |
Shared libraries, contracts, API specs |
Only include work streams that the feature actually requires. Do not add empty streams.
3b. Define Work Packages
For each work stream, create ordered work packages:
### [Work Stream]: [Service Name] — `role-id`
#### WP-[N]: [Title]
- **Description**: What to implement
- **Files**: Expected files to create/modify
- **Dependencies**: Which WPs must complete first
- **Acceptance criteria**: How to verify this WP is done
- **Complexity**: S (hours) / M (day) / L (days) / XL (week+)
Rules for decomposition:
- Each WP is independently testable
- WPs within a stream are ordered by dependency (foundations first)
- Cross-service dependencies are explicitly marked
- Database migrations always come before code that uses them
- API contracts defined before consumer implementation
3c. Define Integration Points
For features spanning multiple services, explicitly document:
4. Dependency Graph
Visualize the execution order:
## Dependency Graph
WP-1: [DB migration]
└─► WP-2: [Backend API]
├─► WP-3: [Frontend integration]
└─► WP-4: [Infrastructure/config]
WP-5: [Tests] ← depends on WP-2, WP-3
Identify:
- Critical path: Longest chain of dependent WPs — determines minimum timeline
- Parallelizable: WPs that can be worked on simultaneously by different roles
- Blockers: External dependencies (other teams, third-party APIs, approvals)
5. Risk Assessment
Evaluate risks for each work stream:
| Risk |
Impact |
Likelihood |
Mitigation |
| [risk description] |
High/Med/Low |
High/Med/Low |
[mitigation strategy] |
Common risks to evaluate:
- Breaking changes to existing APIs (backward compatibility)
- Database migration on large tables (performance, downtime)
- Cross-service coordination (deployment order matters)
- New dependencies or services (operational complexity)
- Security implications (new auth flows, data exposure)
6. Present the Plan
Compile the full plan and present to the user:
# Feature Plan: [Feature Name]
## Goal
[1–2 sentences]
## Architecture Impact
- Services affected: [list]
- New services: [if any]
- Database changes: [yes/no — summary]
- Infrastructure changes: [yes/no — summary]
## Work Packages
### Stream 1: [name] — `role-id`
| WP | Title | Complexity | Dependencies | Status |
|----|-------|------------|--------------|--------|
| WP-1 | [title] | M | — | planned |
| WP-2 | [title] | S | WP-1 | planned |
### Stream 2: [name] — `role-id`
| WP | Title | Complexity | Dependencies | Status |
|----|-------|------------|--------------|--------|
| WP-3 | [title] | L | WP-1 | planned |
## Critical Path
WP-1 → WP-2 → WP-5 (estimated: [timeframe])
## Risks
[table from Step 5]
## Next Step
Run `feature-dev` skill per work package, applying the designated role.
Wait for user approval. The user may reorder, split, merge, or remove work packages.
7. Multi-Reviewer Feedback Loop
The Feature Plan MUST pass a mandatory multi-reviewer cycle before handoff. Do not update FEATURES.md or hand off to the feature-dev skill until every reviewer returns approved.
Reviewer Panel
Apply each role below in sequence, treating each as an independent reviewer with its own pass over the plan:
product-manager role — scope alignment with the PRD, WP coverage of acceptance criteria, risk coverage, correct prioritization, missing requirements
solution-architect role — end-to-end design coherence, integration points, API contracts, cross-service coordination, tech stack fit per WP, non-functional requirements coverage
system-architect role — system boundaries, component topology, data flow, ARCHITECTURE.md consistency, scalability and deployment implications of the WP decomposition
Cycle
- For each role, produce a findings report: Critical (must fix), Major (should fix, justify if waived), Minor (optional), plus an explicit verdict:
approved / approved-with-changes / rejected. Keep reports separate per role
- Collect all three reports before editing
- Apply all actionable findings to the plan (re-scope WPs, adjust dependencies, add missing streams, revise complexity). Resolve conflicts with priority Critical > Major > Minor; on ties, system-architect > solution-architect > product-manager. Record waivers with a one-line rationale
- Re-run the same three reviewer passes against the updated plan
- Loop until every reviewer returns
approved with zero remaining critical/major findings
Termination: pass when all three are approved. On divergence (findings not shrinking, mutually exclusive asks) — pause and ask the user to arbitrate. Max 5 cycles before escalation.
Record the review history at the bottom of the plan as a ## Review History section listing each cycle's reviewer verdicts and open issue counts.
8. Update FEATURES.md
After the plan is approved, apply product-manager role and update FEATURES.md:
- If
FEATURES.md does not exist — create it at the project root
- Add or update the feature entry with status
planned
- If the feature has a PRD or spec — save it in
features/ directory and link from FEATURES.md
9. Handoff to Implementation
After approval, guide execution:
- Sequential (single developer): Execute WPs in dependency order using
feature-dev skill for each
- Parallel (multiple developers/sessions): Assign independent WPs to separate sessions, each applying the appropriate role
- Track WP status:
planned → in_progress → done
- Update the plan if scope changes during implementation
Integration
- Input: PRD, ARD, design doc, or user request
- Preceded by:
product skill (produces PRD), architecture skill (produces ARD, design docs, API contracts, engineering estimates)
- Followed by:
feature-dev skill (implementation per work package)
- Roles:
product-manager role (requirements; Step 7 reviewer), solution-architect role + system-architect role (architecture; Step 7 reviewers), cloud-architect role (cloud platform), devops-architect role (CI/CD architecture), stack-specific roles (work packages)
- Skills:
context-engineering skill (context pipeline design, RAG, memory, agent harness — for AI/LLM feature work packages)
1---2name: plan-23description: Plan feature implementation across services and roles — parse requirements, understand project architecture (`ARCHITECTURE.md`, `AGENTS.md`), decompose into work packages per service/role, estimate complexity, produce an actionable implementation plan. Part of the umbrella feature workflow. Includes mandatory multi-reviewer feedback loop with product-manager, solution-architect, and system-architect.4---56# Feature Plan78Plan a feature implementation by understanding the project architecture, decomposing work into service-level and role-level packages, and producing an actionable plan. This is the **planning phase** — no code is written here. Output feeds into `feature-dev` skill for execution.910## 1. Receive Feature Requirements1112Gather the feature specification from the user:1314- **Accepted formats**: PRD, ARD, design doc, implementation plan, ticket/issue, verbal description15- Read every provided document thoroughly16- Extract and organize:17 - **Goal**: What the feature does (1–2 sentences)18 - **Requirements**: Functional (what it does) and non-functional (performance, security, compliance)19 - **Acceptance criteria**: How to verify the feature works20 - **Constraints**: Deadlines, compatibility, dependencies on other teams/services21 - **Out of scope**: What this feature explicitly does NOT cover2223If the specification is ambiguous or incomplete — ask before proceeding. Do not assume missing requirements.2425## 2. Understand Project Architecture2627Read and internalize the project's structure to plan correctly:2829### 2a. Read Architecture Documentation3031Read the following files (if they exist):32331. **`ARCHITECTURE.md`** — system overview, component boundaries, data flow, service map342. **`AGENTS.md`** (root) — tech stack declaration, project structure, conventions353. **Subdirectory `AGENTS.md` files** — per-service/module context and stack info3637**Extract**:38- Service/module boundaries (monolith modules, microservices, frontend/backend split)39- Tech stack per service (language, framework, database, messaging)40- Communication patterns (REST, gRPC, events, shared DB)41- Data flow relevant to the feature42- Deployment topology (monorepo vs polyrepo, shared vs independent deploys)4344### 2b. Scan Project Structure4546If documentation is incomplete or absent, scan the filesystem:4748```49// turbo50ls -la (or dir for Windows)51```5253Look for:54- **Monorepo signals**: `packages/`, `services/`, `apps/`, root `package.json` with workspaces, Nx/Turborepo config55- **Polyrepo signals**: Single service, one `AGENTS.md`, one tech stack56- **Infrastructure**: `terraform/`, `infra/`, `k8s/`, `helm/`, `docker-compose.yml`57- **Dependency files**: `package.json`, `pom.xml`, `requirements.txt`, `go.mod`, `*.csproj` per service5859### 2c. Build Service Map6061Create a map of services/modules the feature touches:6263```64## Service Map6566| Service/Module | Tech Stack | Role | Affected by Feature |67|---|---|---|---|68| [name] | [lang + framework] | `role-id` | [yes/no — how] |69| [name] | [lang + framework] | `role-id` | [yes/no — how] |70| infrastructure | Terraform / K8s | `devops-engineer` role | [yes/no — how] |71```7273## 3. Decompose into Work Packages7475Break the feature into **work packages** — each package is a self-contained unit of work scoped to one service/module and one role.7677### 3a. Identify Work Streams7879Group changes by responsibility:8081| Work Stream | Role | Scope |82|---|---|---|83| **Frontend** | `frontend-engineer` role | UI components, pages, client-side logic, API integration |84| **Backend API** | `java-engineer` role / `python-engineer` role | Endpoints, business logic, data access, validation |85| **Data Layer** | `db-engineer` role | Database schema, migrations, queries, indexing, optimization |86| **Infrastructure** | `devops-engineer` role | Terraform, Docker, K8s, config, secrets |87| **Cloud Architecture** | `cloud-architect` role | Cloud platform design, landing zones, networking, cost optimization |88| **CI/CD Architecture** | `devops-architect` role | Pipeline design, deployment strategy, GitHub org governance, platform engineering |89| **ML / Data** | `ml-engineer` role | Models, pipelines, feature engineering. For LLM/RAG/agent features also consult `context-engineering` skill |90| **Data Pipelines** | `data-engineer` role | ETL/ELT, data warehousing, Spark, dbt, Airflow |91| **Mobile** | `mobile-engineer` role | React Native, Flutter, iOS, Android apps |92| **Marketing Content** | `marketing-strategist` role | Positioning, messaging, GTM, landing pages |93| **Architecture** | `system-architect` role | System design, ARCHITECTURE.md, component boundaries, tech selection |94| **Cross-cutting** | `software-engineer` role | Shared libraries, contracts, API specs |9596Only include work streams that the feature actually requires. Do not add empty streams.9798### 3b. Define Work Packages99100For each work stream, create ordered work packages:101102```103### [Work Stream]: [Service Name] — `role-id`104105#### WP-[N]: [Title]106- **Description**: What to implement107- **Files**: Expected files to create/modify108- **Dependencies**: Which WPs must complete first109- **Acceptance criteria**: How to verify this WP is done110- **Complexity**: S (hours) / M (day) / L (days) / XL (week+)111```112113**Rules for decomposition**:114- Each WP is independently testable115- WPs within a stream are ordered by dependency (foundations first)116- Cross-service dependencies are explicitly marked117- Database migrations always come before code that uses them118- API contracts defined before consumer implementation119120### 3c. Define Integration Points121122For features spanning multiple services, explicitly document:123124<integration_points>125- **API contracts**: Request/response schemas for new or modified endpoints126- **Events/messages**: New event types, payload schemas, producers, consumers127- **Shared types**: DTOs, enums, or constants shared across services128- **Database changes**: Schema migrations, new tables/columns, index requirements129- **Configuration**: New env vars, feature flags, secrets needed130</integration_points>131132## 4. Dependency Graph133134Visualize the execution order:135136```137## Dependency Graph138139WP-1: [DB migration]140 └─► WP-2: [Backend API]141 ├─► WP-3: [Frontend integration]142 └─► WP-4: [Infrastructure/config]143WP-5: [Tests] ← depends on WP-2, WP-3144```145146Identify:147- **Critical path**: Longest chain of dependent WPs — determines minimum timeline148- **Parallelizable**: WPs that can be worked on simultaneously by different roles149- **Blockers**: External dependencies (other teams, third-party APIs, approvals)150151## 5. Risk Assessment152153Evaluate risks for each work stream:154155| Risk | Impact | Likelihood | Mitigation |156|---|---|---|---|157| [risk description] | High/Med/Low | High/Med/Low | [mitigation strategy] |158159**Common risks to evaluate**:160- Breaking changes to existing APIs (backward compatibility)161- Database migration on large tables (performance, downtime)162- Cross-service coordination (deployment order matters)163- New dependencies or services (operational complexity)164- Security implications (new auth flows, data exposure)165166## 6. Present the Plan167168Compile the full plan and present to the user:169170```171# Feature Plan: [Feature Name]172173## Goal174[1–2 sentences]175176## Architecture Impact177- Services affected: [list]178- New services: [if any]179- Database changes: [yes/no — summary]180- Infrastructure changes: [yes/no — summary]181182## Work Packages183184### Stream 1: [name] — `role-id`185| WP | Title | Complexity | Dependencies | Status |186|----|-------|------------|--------------|--------|187| WP-1 | [title] | M | — | planned |188| WP-2 | [title] | S | WP-1 | planned |189190### Stream 2: [name] — `role-id`191| WP | Title | Complexity | Dependencies | Status |192|----|-------|------------|--------------|--------|193| WP-3 | [title] | L | WP-1 | planned |194195## Critical Path196WP-1 → WP-2 → WP-5 (estimated: [timeframe])197198## Risks199[table from Step 5]200201## Next Step202Run `feature-dev` skill per work package, applying the designated role.203```204205Wait for user approval. The user may reorder, split, merge, or remove work packages.206207## 7. Multi-Reviewer Feedback Loop208209The Feature Plan MUST pass a mandatory multi-reviewer cycle before handoff. Do not update `FEATURES.md` or hand off to the `feature-dev` skill until every reviewer returns `approved`.210211### Reviewer Panel212213Apply each role below in sequence, treating each as an independent reviewer with its own pass over the plan:214215- `product-manager` role — scope alignment with the PRD, WP coverage of acceptance criteria, risk coverage, correct prioritization, missing requirements216- `solution-architect` role — end-to-end design coherence, integration points, API contracts, cross-service coordination, tech stack fit per WP, non-functional requirements coverage217- `system-architect` role — system boundaries, component topology, data flow, `ARCHITECTURE.md` consistency, scalability and deployment implications of the WP decomposition218219### Cycle2202211. For each role, produce a findings report: Critical (must fix), Major (should fix, justify if waived), Minor (optional), plus an explicit verdict: `approved` / `approved-with-changes` / `rejected`. Keep reports separate per role2222. Collect all three reports before editing2233. Apply all actionable findings to the plan (re-scope WPs, adjust dependencies, add missing streams, revise complexity). Resolve conflicts with priority Critical > Major > Minor; on ties, system-architect > solution-architect > product-manager. Record waivers with a one-line rationale2244. Re-run the same three reviewer passes against the updated plan2255. Loop until every reviewer returns `approved` with zero remaining critical/major findings226227Termination: pass when all three are `approved`. On divergence (findings not shrinking, mutually exclusive asks) — pause and ask the user to arbitrate. Max 5 cycles before escalation.228229Record the review history at the bottom of the plan as a `## Review History` section listing each cycle's reviewer verdicts and open issue counts.230231## 8. Update FEATURES.md232233After the plan is approved, **apply `product-manager` role** and update `FEATURES.md`:2342351. If `FEATURES.md` does not exist — create it at the project root2362. Add or update the feature entry with status `planned`2373. If the feature has a PRD or spec — save it in `features/` directory and link from `FEATURES.md`238239## 9. Handoff to Implementation240241After approval, guide execution:242243- **Sequential** (single developer): Execute WPs in dependency order using `feature-dev` skill for each244- **Parallel** (multiple developers/sessions): Assign independent WPs to separate sessions, each applying the appropriate role245- Track WP status: `planned` → `in_progress` → `done`246- Update the plan if scope changes during implementation247248## Integration249250- **Input**: PRD, ARD, design doc, or user request251- **Preceded by**: `product` skill (produces PRD), `architecture` skill (produces ARD, design docs, API contracts, engineering estimates)252- **Followed by**: `feature-dev` skill (implementation per work package)253- **Roles**: `product-manager` role (requirements; Step 7 reviewer), `solution-architect` role + `system-architect` role (architecture; Step 7 reviewers), `cloud-architect` role (cloud platform), `devops-architect` role (CI/CD architecture), stack-specific roles (work packages)254- **Skills**: `context-engineering` skill (context pipeline design, RAG, memory, agent harness — for AI/LLM feature work packages)