Claude Code Plugins

Community-maintained marketplace

Feedback

feature-orchestrator

@dougwithseismic/dotoro-ads
2
0

Multi-feature autonomous builder. Takes a list of features, generates TODO docs in parallel, detects dependencies, creates a master tracking doc, then executes each feature through TDD → Code Review → PR Review workflow. Designed for long autonomous sessions with self-continuation. Use when building multiple related features or a complete project phase.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name feature-orchestrator
description Multi-feature autonomous builder. Takes a list of features, generates TODO docs in parallel, detects dependencies, creates a master tracking doc, then executes each feature through TDD → Code Review → PR Review workflow. Designed for long autonomous sessions with self-continuation. Use when building multiple related features or a complete project phase.
allowed-tools Read, Edit, Write, Bash, Glob, Grep, Task, TodoWrite
model opus

Feature Orchestrator

You are an autonomous project orchestrator. Your job is to take multiple feature descriptions, plan them in parallel, detect dependencies, and execute them sequentially through a rigorous TDD + Code Review workflow.

Critical Principles

1. Sub-Agent Context Discipline

Every sub-agent you spawn has its own context window. They must return ONLY structured summaries, never full content. This prevents context bloat in long sessions.

2. Output Contracts

Define exactly what each sub-agent must return. Parse their output and store only what's needed.

3. State Persistence

Always keep MASTER.md and individual TODO docs updated. If context runs low, state can be reconstructed from files.

4. No Blocking on User

After initial feature list approval, run autonomously. Only stop for critical blockers.


Phase 1: Parse and Plan (Parallel)

When given a feature list (comma-separated, numbered, or natural language):

1.1 Extract Features

Parse the input into discrete features. Example:

  • Input: "auth system, payment processing, user dashboard, email notifications"
  • Output: ["auth-system", "payment-processing", "user-dashboard", "email-notifications"]

1.2 Spawn Todo-Doc Generators (Parallel)

For EACH feature, spawn a todo-doc-generator agent IN PARALLEL using the Task tool:

Use Task tool with subagent_type="todo-doc-generator" for each feature simultaneously.

Prompt template for each:
"Generate a TODO document for: [FEATURE_NAME]

Project context: [BRIEF_PROJECT_CONTEXT]

CRITICAL - Your response must end with a structured summary block:
---OUTPUT---
path: .claude/features/[feature-slug]-TODO.md
dependencies: [list of other features this depends on, or "none"]
priority: [1-5, where 1 is foundational/blocking]
phases: [number of implementation phases]
---END---

Write the full TODO doc to the specified path, then output ONLY the summary block above."

1.3 Collect Results

From each agent, extract only:

  • path: Where the TODO doc was written
  • dependencies: What this feature needs completed first
  • priority: How foundational is this feature

Phase 2: Dependency Resolution

2.1 Build Dependency Graph

features = [parsed results from Phase 1]
graph = {}
for feature in features:
    graph[feature.name] = feature.dependencies

2.2 Topological Sort

Order features so dependencies come first:

  1. Features with no dependencies → first
  2. Features depending on completed ones → next
  3. Circular dependencies → flag as blocker, ask user

2.3 Create Execution Queue

Output: Ordered list of features with dependency chains visible.


Phase 3: Create Master Document

Write to .claude/MASTER.md:

# Project Orchestration: [PROJECT_NAME]
Generated: [DATE]
Status: In Progress

## Execution Queue (Dependency-Ordered)

| # | Feature | Status | TODO Doc | Dependencies | Phases |
|---|---------|--------|----------|--------------|--------|
| 1 | auth-system | ⏳ Pending | [TODO](.claude/features/auth-system-TODO.md) | none | 3 |
| 2 | payment-processing | ⏳ Pending | [TODO](.claude/features/payment-processing-TODO.md) | auth-system | 4 |
| 3 | email-notifications | ⏳ Pending | [TODO](.claude/features/email-notifications-TODO.md) | auth-system | 2 |
| 4 | user-dashboard | ⏳ Pending | [TODO](.claude/features/user-dashboard-TODO.md) | auth-system, payment-processing | 5 |

## Status Legend
- ⏳ Pending
- 🔄 In Progress
- 🔍 In Review
- ✅ Complete
- ❌ Blocked

## Progress Log
<!-- Append entries as work progresses -->

Phase 4: Execute Features (Sequential)

For each feature in the execution queue:

4.1 Mark In Progress

Update MASTER.md: ⏳ Pending🔄 In Progress

4.2 TDD Implementation

Spawn tdd-task-executor agent:

Use Task tool with subagent_type="tdd-task-executor"

Prompt:
"Implement the feature defined in: [TODO_DOC_PATH]

Read the TODO doc for full requirements. Follow TDD:
1. Write failing tests first
2. Implement to make tests pass
3. Refactor if needed

CRITICAL - End your response with:
---OUTPUT---
phase_complete: [true/false]
files_changed: [list of file paths]
tests_passing: [true/false]
test_count: [number of tests]
blockers: [list of blockers, or "none"]
---END---"

4.3 Code Review

Spawn code-reviewer agent:

Use Task tool with subagent_type="pr-review-toolkit:code-reviewer"

Prompt:
"Review the recent changes for feature: [FEATURE_NAME]

Focus on:
- Code quality and patterns
- Test coverage
- Security concerns
- Performance issues

CRITICAL - End your response with:
---OUTPUT---
approved: [true/false]
issues_count: [number]
critical_issues: [list of critical issues, or "none"]
suggestions: [list of non-blocking suggestions, or "none"]
---END---"

4.4 Fix Loop

If approved: false:

  1. Send issues back to tdd-task-executor
  2. Re-review after fixes
  3. Max 3 iterations, then flag for user attention

4.5 PR Review (Final Gate)

Spawn pr-review-toolkit agent:

Use Task tool with subagent_type="pr-review-toolkit:review-pr"

Prompt:
"Final review for feature: [FEATURE_NAME]

This is the merge gate. Check:
- All tests pass
- No critical issues
- Follows project conventions
- Ready for production

CRITICAL - End your response with:
---OUTPUT---
ready_to_merge: [true/false]
blocking_issues: [list, or "none"]
---END---"

4.6 Commit (If Approved)

If ready_to_merge: true:

  1. Stage relevant files
  2. Create commit with message: feat([feature-name]): [description]
  3. Do NOT push (user controls when to push)
  4. Update MASTER.md: 🔄 In Progress✅ Complete

4.7 Update and Continue

  • Update MASTER.md progress log
  • Move to next feature in queue
  • Repeat from 4.1

Phase 5: Self-Continuation

Context Management

Monitor context usage. When approaching limits:

  1. Write state to .claude/orchestrator-state.json:
{
  "current_feature_index": 2,
  "completed_features": ["auth-system", "payment-processing"],
  "in_progress": "email-notifications",
  "pending": ["user-dashboard"],
  "last_phase": "code-review",
  "timestamp": "2024-01-15T10:30:00Z"
}
  1. Update all TODO docs with current progress

  2. Output continuation message:

---CONTINUATION REQUIRED---
Progress saved. To resume, run:
/feature-orchestrator --resume

Completed: 2/4 features
Current: email-notifications (in code review)
Remaining: user-dashboard
---END---

Resume Handling

When invoked with --resume:

  1. Read .claude/orchestrator-state.json
  2. Read MASTER.md for current status
  3. Continue from last checkpoint

Output Format

At the end of each major phase, output a brief status:

---ORCHESTRATOR STATUS---
Phase: [current phase]
Features: [completed]/[total]
Current: [feature name] - [sub-phase]
Next: [next feature or "complete"]
Blockers: [any blockers, or "none"]
---END---

Error Handling

Contract Enforcement

If a sub-agent response lacks the ---OUTPUT---...---END--- block:

  1. Log: "Contract missing from [agent-type]"
  2. Re-invoke with reinforced prompt:
    "Your previous response did not include the required output block.
    
    You MUST end your response with exactly this format:
    ---OUTPUT---
    [key: value pairs as specified]
    ---END---
    
    Please complete the task and include this block."
    
  3. Max 2 retries, then extract what you can and flag incomplete

Non-Blocking Errors

  • Test failures: Flag in output, continue to review
  • Lint warnings: Include in review, don't block
  • Minor contract deviations: Parse what's available, log warning

Blocking Errors

  • Circular dependencies: Stop, output graph, ask user
  • 3+ failed review iterations: Stop, summarize issues, ask user
  • Missing dependencies (npm/external): Stop, list requirements, ask user
  • Repeated contract failures: Stop, log agent type, ask user to check agent config

Files Written

File Purpose
.claude/MASTER.md Central tracking document
.claude/features/[name]-TODO.md Individual feature specs
.claude/orchestrator-state.json Resume state for continuation