This commit is contained in:
2026-02-03 20:32:18 -08:00
parent 34704eaf84
commit 035cc680a7
7 changed files with 79 additions and 0 deletions
+3
View File
@@ -169,8 +169,11 @@ When modifying workflow prompts in `src/`:
## Gotchas/Pitfalls ## Gotchas/Pitfalls
- **Version sync:** When adding a new version to `CHANGELOG.md`, also update `version.json` to match. The installer displays the version from `version.json` in its header. - **Version sync:** When adding a new version to `CHANGELOG.md`, also update `version.json` to match. The installer displays the version from `version.json` in its header.
## Mascot ## Mascot
The project has a mascot - an ASCII art robot that appears in installer output and workflow prompts. Mascot variants are defined in `MASCOT` constant in `install.js` and appear in workflow markdown files. The project has a mascot - an ASCII art robot that appears in installer output and workflow prompts. Mascot variants are defined in `MASCOT` constant in `install.js` and appear in workflow markdown files.
``` ```
╭───╮ ╭───╮
│ ● │ │ ● │
+9
View File
@@ -13,8 +13,11 @@ All notable changes to Plan2Code will be documented in this file.
- Correct relative paths for each file location (./AGENTS.md, ../AGENTS.md, ../../AGENTS.md) - Correct relative paths for each file location (./AGENTS.md, ../AGENTS.md, ../../AGENTS.md)
- **Knowledge Transfer** - Init mode now uses existing CLAUDE.md content as context when creating new AGENTS.md - **Knowledge Transfer** - Init mode now uses existing CLAUDE.md content as context when creating new AGENTS.md
- Preserves project knowledge during migration to AGENTS.md - Preserves project knowledge during migration to AGENTS.md
## v1.5.1 ## v1.5.1
### ✨ Added ### ✨ Added
- **Prerequisite verification workflow** - Agents now verify/complete prerequisites before starting phase tasks - **Prerequisite verification workflow** - Agents now verify/complete prerequisites before starting phase tasks
- Implementation mode processes prerequisites in order: verify, complete, or mark assumed - Implementation mode processes prerequisites in order: verify, complete, or mark assumed
- Loop prompt treats prerequisites as "Task 0.X" - one per iteration before tasks - Loop prompt treats prerequisites as "Task 0.X" - one per iteration before tasks
@@ -30,6 +33,7 @@ All notable changes to Plan2Code will be documented in this file.
- Consistency check now verifies phase completion status matches task completion - Consistency check now verifies phase completion status matches task completion
### 🔧 Changed ### 🔧 Changed
- **Installer UI refresh** - Cleaner, narrower layout for better terminal compatibility - **Installer UI refresh** - Cleaner, narrower layout for better terminal compatibility
- Narrower menu boxes (65 characters instead of 76) - Narrower menu boxes (65 characters instead of 76)
- Smaller mascot display at end of installation - Smaller mascot display at end of installation
@@ -47,6 +51,7 @@ All notable changes to Plan2Code will be documented in this file.
## v1.5.0 - 2026-01-22 ## v1.5.0 - 2026-01-22
### ✨ Added ### ✨ Added
- **Plan2Code Loop** - New autonomous CLI tool for hands-off spec implementation - **Plan2Code Loop** - New autonomous CLI tool for hands-off spec implementation
- Separate Node.js/TypeScript tool in `plan2code-loop/` directory - Separate Node.js/TypeScript tool in `plan2code-loop/` directory
- LLM-driven task discovery - AI reads spec files and finds unchecked tasks - LLM-driven task discovery - AI reads spec files and finds unchecked tasks
@@ -60,6 +65,7 @@ All notable changes to Plan2Code will be documented in this file.
- Option `U` uninstalls prompts AND unlinks the loop CLI - Option `U` uninstalls prompts AND unlinks the loop CLI
### 📝 Documentation ### 📝 Documentation
- Updated README.md with "Autonomous Loop" section explaining when to use loop vs manual Step 3 - Updated README.md with "Autonomous Loop" section explaining when to use loop vs manual Step 3
- Updated QUICK-REFERENCE.md with loop commands and decision tree - Updated QUICK-REFERENCE.md with loop commands and decision tree
- Updated AGENTS.md with loop architecture, commands, and completion markers - Updated AGENTS.md with loop architecture, commands, and completion markers
@@ -67,6 +73,7 @@ All notable changes to Plan2Code will be documented in this file.
## v1.4.0 - 2026-01-09 ## v1.4.0 - 2026-01-09
### ✨ Added ### ✨ Added
- **Parallel Phase Execution** - Run multiple implementation phases simultaneously in separate agent instances - **Parallel Phase Execution** - Run multiple implementation phases simultaneously in separate agent instances
- Documentation Mode auto-detects parallel-eligible phases based on file conflicts and dependencies - Documentation Mode auto-detects parallel-eligible phases based on file conflicts and dependencies
- Implementation Mode presents phase selection UI when parallel options are available - Implementation Mode presents phase selection UI when parallel options are available
@@ -82,6 +89,7 @@ All notable changes to Plan2Code will be documented in this file.
- Supports multiple agent sessions on parallel phases with clear visibility of what's active - Supports multiple agent sessions on parallel phases with clear visibility of what's active
### 🔧 Changed ### 🔧 Changed
- **Documentation Mode process** - Added step 6 "Analyze phases for parallel execution eligibility" - **Documentation Mode process** - Added step 6 "Analyze phases for parallel execution eligibility"
- **Implementation Mode detection** - Now checks for parallel siblings before starting phase - **Implementation Mode detection** - Now checks for parallel siblings before starting phase
- **Implementation Mode phase selection** - 4-case decision logic for parallel, resume, auto-start scenarios - **Implementation Mode phase selection** - 4-case decision logic for parallel, resume, auto-start scenarios
@@ -108,6 +116,7 @@ All notable changes to Plan2Code will be documented in this file.
## v1.3.2 - 2025-12-25 ## v1.3.2 - 2025-12-25
### 🔧 Changed ### 🔧 Changed
- **Phase file naming convention** - Changed from `Phase X.md` to `phase-X.md` (lowercase, hyphen instead of space) - **Phase file naming convention** - Changed from `Phase X.md` to `phase-X.md` (lowercase, hyphen instead of space)
+10
View File
@@ -35,17 +35,22 @@ specs--completed/ # After Step 4
- Never look in `specs--completed/` (it's archived specs) - Never look in `specs--completed/` (it's archived specs)
## Phase Status ## Phase Status
| Checkbox | Status | Meaning | | Checkbox | Status | Meaning |
|----------|--------|---------| |----------|--------|---------|
| `[ ]` | Pending | Not started | | `[ ]` | Pending | Not started |
| `[/]` | In Progress | Agent working (or paused) | | `[/]` | In Progress | Agent working (or paused) |
| `[x]` | Complete | Approved | | `[x]` | Complete | Approved |
## Parallel Execution ## Parallel Execution
When phases have no file conflicts or dependencies, they can run simultaneously: When phases have no file conflicts or dependencies, they can run simultaneously:
1. Documentation Mode auto-detects parallel-eligible phases 1. Documentation Mode auto-detects parallel-eligible phases
2. Implementation Mode shows selection UI with status for each phase 2. Implementation Mode shows selection UI with status for each phase
3. Run multiple `/plan2code-3--implement` instances on different phases 3. Run multiple `/plan2code-3--implement` instances on different phases
4. `[/]` status shows which phases are actively being worked on 4. `[/]` status shows which phases are actively being worked on
## Quick Troubleshooting ## Quick Troubleshooting
| Issue | Solution | | Issue | Solution |
@@ -78,13 +83,18 @@ Is it a quick, small task?
Need to revise mid-implementation? Need to revise mid-implementation?
└── /plan2code-1b--revise-plan └── /plan2code-1b--revise-plan
``` ```
## Autonomous Loop (Alternative) ## Autonomous Loop (Alternative)
The `plan2code-loop` CLI is an **alternative** to Step 3, not a replacement. The `plan2code-loop` CLI is an **alternative** to Step 3, not a replacement.
| Approach | Use When | | Approach | Use When |
|----------|----------| |----------|----------|
| `/plan2code-3--implement` | You want interactive control per phase | | `/plan2code-3--implement` | You want interactive control per phase |
| `plan2code-loop` | You want hands-off autonomous execution | | `plan2code-loop` | You want hands-off autonomous execution |
```bash ```bash
plan2code-loop # Fully interactive - auto-detects specs, prompts for options plan2code-loop # Fully interactive - auto-detects specs, prompts for options
``` ```
Session state stored per-spec in `specs/<feature>/.plan2code-loop/` Session state stored per-spec in `specs/<feature>/.plan2code-loop/`
+17
View File
@@ -39,10 +39,13 @@ See [QUICK-REFERENCE.md](QUICK-REFERENCE.md) for full reference card.
## Installation ## Installation
Plan2Code includes an interactive installer that generates and installs workflow files for all major AI coding assistants. Plan2Code includes an interactive installer that generates and installs workflow files for all major AI coding assistants.
<img src="docs/install-script.jpg" width="582"> <img src="docs/install-script.jpg" width="582">
### Prerequisites ### Prerequisites
The install script requires **Node.js** (v14 or later). If you don't have Node.js installed: The install script requires **Node.js** (v14 or later). If you don't have Node.js installed:
1. Download from [nodejs.org](https://nodejs.org/) 1. Download from [nodejs.org](https://nodejs.org/)
2. Or use a package manager: 2. Or use a package manager:
- **macOS:** `brew install node` - **macOS:** `brew install node`
@@ -50,6 +53,7 @@ The install script requires **Node.js** (v14 or later). If you don't have Node.j
- **Linux:** `sudo apt install nodejs` (Debian/Ubuntu) or `sudo dnf install nodejs` (Fedora) - **Linux:** `sudo apt install nodejs` (Debian/Ubuntu) or `sudo dnf install nodejs` (Fedora)
### Supported Platforms ### Supported Platforms
| Platform | Global Directory | Invocation | | Platform | Global Directory | Invocation |
| ---------------- | -------------------------------------- | ---------------------------- | | ---------------- | -------------------------------------- | ---------------------------- |
| Claude Code | `~/.claude/commands/` | `/plan2code-1--plan`, etc. | | Claude Code | `~/.claude/commands/` | `/plan2code-1--plan`, etc. |
@@ -59,16 +63,19 @@ The install script requires **Node.js** (v14 or later). If you don't have Node.j
| Windsurf | `~/.codeium/windsurf/global_workflows/`| `/plan2code-1--plan`, etc. | | Windsurf | `~/.codeium/windsurf/global_workflows/`| `/plan2code-1--plan`, etc. |
| Codeium (IJ) | `~/.codeium/global_workflows/` | `/plan2code-1--plan`, etc. | | Codeium (IJ) | `~/.codeium/global_workflows/` | `/plan2code-1--plan`, etc. |
| VS Code Copilot | Platform-specific (see below) | Slash commands in chat | | VS Code Copilot | Platform-specific (see below) | Slash commands in chat |
**VS Code Copilot paths:** **VS Code Copilot paths:**
- Windows: `%APPDATA%\Code\User\prompts\` - Windows: `%APPDATA%\Code\User\prompts\`
- macOS: `~/Library/Application Support/Code/User/prompts/` - macOS: `~/Library/Application Support/Code/User/prompts/`
- Linux: `~/.config/Code/User/prompts/` - Linux: `~/.config/Code/User/prompts/`
### Quick Start ### Quick Start
```bash ```bash
# Clone the repository # Clone the repository
git clone https://github.com/plan/plan2code.git git clone https://github.com/plan/plan2code.git
cd plan2code cd plan2code
# Run the interactive installer # Run the interactive installer
node install.js node install.js
``` ```
@@ -85,6 +92,7 @@ Available platforms:
5. Windsurf (~/.codeium/windsurf/global_workflows/) 5. Windsurf (~/.codeium/windsurf/global_workflows/)
6. Codeium (IJ) (~/.codeium/global_workflows/) 6. Codeium (IJ) (~/.codeium/global_workflows/)
7. VS Code Copilot (%APPDATA%\Code\User\prompts\) 7. VS Code Copilot (%APPDATA%\Code\User\prompts\)
A. Install ALL platforms + loop CLI A. Install ALL platforms + loop CLI
O. Build/link plan2code-loop CLI only O. Build/link plan2code-loop CLI only
L. Show local (project) install instructions L. Show local (project) install instructions
@@ -112,22 +120,28 @@ Enter choice (1-7, A, O, L, U, Q, or comma-separated like 1,3,5):
```bash ```bash
# Install to Claude Code only # Install to Claude Code only
node install.js --platform claude node install.js --platform claude
# Install to multiple specific platforms # Install to multiple specific platforms
node install.js # Then enter "1,3,5" for Claude, Cursor, Windsurf node install.js # Then enter "1,3,5" for Claude, Cursor, Windsurf
# Preview installation without making changes # Preview installation without making changes
node install.js --dry-run node install.js --dry-run
# Remove all installed files # Remove all installed files
node install.js --uninstall node install.js --uninstall
``` ```
### Per-Project Installation ### Per-Project Installation
If you prefer project-specific configuration instead of global installation: If you prefer project-specific configuration instead of global installation:
```bash ```bash
# Run the installer with --local flag # Run the installer with --local flag
node install.js --local node install.js --local
``` ```
This will generate the distribution files and display instructions for copying them to your project. The generated files will be in `dist/local-commands/` organized by platform: This will generate the distribution files and display instructions for copying them to your project. The generated files will be in `dist/local-commands/` organized by platform:
``` ```
dist/local-commands/ dist/local-commands/
├── .claude/commands/ # Claude Code ├── .claude/commands/ # Claude Code
@@ -138,10 +152,13 @@ dist/local-commands/
├── .windsurf/workflows/ # Windsurf ├── .windsurf/workflows/ # Windsurf
└── .agent/workflows/ # Google Antigravity └── .agent/workflows/ # Google Antigravity
``` ```
> **Note:** Some AI tools (Windsurf, Cursor, Continue) may not recognize workflows in gitignored directories. If your project's `.gitignore` includes patterns like `.windsurf/`, consider using global installation instead. > **Note:** Some AI tools (Windsurf, Cursor, Continue) may not recognize workflows in gitignored directories. If your project's `.gitignore` includes patterns like `.windsurf/`, consider using global installation instead.
--- ---
## Platform-Specific Notes ## Platform-Specific Notes
<details> <details>
<summary>Claude Code CLI</summary> <summary>Claude Code CLI</summary>
+23
View File
@@ -1317,11 +1317,13 @@ function runInteractive() {
rl.close(); rl.close();
const uninstallResult = uninstallFiles(targets); const uninstallResult = uninstallFiles(targets);
// If uninstalling from ALL platforms, also unlink plan2code-loop // If uninstalling from ALL platforms, also unlink plan2code-loop
if (uninstallInput === 'A') { if (uninstallInput === 'A') {
console.log(''); console.log('');
uninstallPlan2CodeLoop(); uninstallPlan2CodeLoop();
} }
process.exit(uninstallResult); process.exit(uninstallResult);
} }
@@ -1358,16 +1360,20 @@ function runInteractive() {
} }
rl.close(); rl.close();
// If installing ALL platforms, install plan2code-loop first // If installing ALL platforms, install plan2code-loop first
let loopResult = 0; let loopResult = 0;
if (input === 'A') { if (input === 'A') {
loopResult = installPlan2CodeLoop(); loopResult = installPlan2CodeLoop();
console.log(''); console.log('');
} }
const installResult = install(targets); const installResult = install(targets);
if (input === 'A') { if (input === 'A') {
process.exit(installResult === 0 && loopResult === 0 ? 0 : 1); process.exit(installResult === 0 && loopResult === 0 ? 0 : 1);
} }
process.exit(installResult); process.exit(installResult);
} }
@@ -1381,25 +1387,32 @@ function runInteractive() {
// ============================================================================ // ============================================================================
// PLAN2CODE-LOOP INSTALLATION // PLAN2CODE-LOOP INSTALLATION
// ============================================================================ // ============================================================================
const { execSync, spawn } = require('child_process'); const { execSync, spawn } = require('child_process');
/** /**
* Build plan2code-loop package * Build plan2code-loop package
*/ */
function buildPlan2CodeLoop() { function buildPlan2CodeLoop() {
const loopDir = path.join(__dirname, 'plan2code-loop'); const loopDir = path.join(__dirname, 'plan2code-loop');
// Check if directory exists // Check if directory exists
if (!fs.existsSync(loopDir)) { if (!fs.existsSync(loopDir)) {
console.log(`${COLORS.YELLOW}${SYMBOLS.WARNING}${COLORS.RESET} plan2code-loop directory not found`); console.log(`${COLORS.YELLOW}${SYMBOLS.WARNING}${COLORS.RESET} plan2code-loop directory not found`);
return false; return false;
} }
console.log(`${COLORS.CYAN}${SYMBOLS.ACTIVE} Building plan2code-loop...${COLORS.RESET}`); console.log(`${COLORS.CYAN}${SYMBOLS.ACTIVE} Building plan2code-loop...${COLORS.RESET}`);
try { try {
// Install dependencies // Install dependencies
console.log(` ${COLORS.DIM}Installing dependencies...${COLORS.RESET}`); console.log(` ${COLORS.DIM}Installing dependencies...${COLORS.RESET}`);
execSync('npm install', { cwd: loopDir, stdio: 'pipe' }); execSync('npm install', { cwd: loopDir, stdio: 'pipe' });
// Build // Build
console.log(` ${COLORS.DIM}Running build...${COLORS.RESET}`); console.log(` ${COLORS.DIM}Running build...${COLORS.RESET}`);
execSync('npm run build', { cwd: loopDir, stdio: 'pipe' }); execSync('npm run build', { cwd: loopDir, stdio: 'pipe' });
console.log(` ${COLORS.GREEN}${SYMBOLS.SUCCESS}${COLORS.RESET} Build complete`); console.log(` ${COLORS.GREEN}${SYMBOLS.SUCCESS}${COLORS.RESET} Build complete`);
return true; return true;
} catch (error) { } catch (error) {
@@ -1606,14 +1619,17 @@ function removeGlobalSymlink() {
*/ */
function installPlan2CodeLoop() { function installPlan2CodeLoop() {
displaySectionHeader('PLAN2CODE-LOOP', '[ BUILD & INSTALL ]'); displaySectionHeader('PLAN2CODE-LOOP', '[ BUILD & INSTALL ]');
const buildSuccess = buildPlan2CodeLoop(); const buildSuccess = buildPlan2CodeLoop();
if (!buildSuccess) { if (!buildSuccess) {
return 1; return 1;
} }
const symlinkSuccess = createGlobalSymlink(); const symlinkSuccess = createGlobalSymlink();
if (!symlinkSuccess) { if (!symlinkSuccess) {
return 1; return 1;
} }
console.log(''); console.log('');
console.log(`${COLORS.GREEN}${SYMBOLS.SUCCESS} plan2code-loop installed successfully!${COLORS.RESET}`); console.log(`${COLORS.GREEN}${SYMBOLS.SUCCESS} plan2code-loop installed successfully!${COLORS.RESET}`);
console.log(''); console.log('');
@@ -1623,19 +1639,25 @@ function installPlan2CodeLoop() {
console.log(` ${COLORS.BRIGHT}plan2code-loop -v${COLORS.RESET} Verbose mode`); console.log(` ${COLORS.BRIGHT}plan2code-loop -v${COLORS.RESET} Verbose mode`);
console.log(` ${COLORS.BRIGHT}plan2code-loop --help${COLORS.RESET} Show all options`); console.log(` ${COLORS.BRIGHT}plan2code-loop --help${COLORS.RESET} Show all options`);
console.log(''); console.log('');
return 0; return 0;
} }
/** /**
* Uninstall plan2code-loop * Uninstall plan2code-loop
*/ */
function uninstallPlan2CodeLoop() { function uninstallPlan2CodeLoop() {
displaySectionHeader('PLAN2CODE-LOOP', '[ UNINSTALL ]'); displaySectionHeader('PLAN2CODE-LOOP', '[ UNINSTALL ]');
removeGlobalSymlink(); removeGlobalSymlink();
console.log(''); console.log('');
console.log(`${COLORS.GREEN}${SYMBOLS.SUCCESS} plan2code-loop uninstalled${COLORS.RESET}`); console.log(`${COLORS.GREEN}${SYMBOLS.SUCCESS} plan2code-loop uninstalled${COLORS.RESET}`);
console.log(''); console.log('');
return 0; return 0;
} }
// ============================================================================ // ============================================================================
// MAIN // MAIN
// ============================================================================ // ============================================================================
@@ -1643,6 +1665,7 @@ function uninstallPlan2CodeLoop() {
// Additional CLI arguments for plan2code-loop // Additional CLI arguments for plan2code-loop
const installLoop = args.includes('--loop'); const installLoop = args.includes('--loop');
const uninstallLoop = args.includes('--uninstall-loop'); const uninstallLoop = args.includes('--uninstall-loop');
// Run the appropriate function // Run the appropriate function
if (installLoop) { if (installLoop) {
process.exit(installPlan2CodeLoop()); process.exit(installPlan2CodeLoop());
+2
View File
@@ -41,6 +41,7 @@ You are a senior software architect and engineer. Your purpose is to thoroughly
- Keep plans concise and actionable - Keep plans concise and actionable
- Focus on the immediate implementation, not future enhancements - Focus on the immediate implementation, not future enhancements
- This is a standalone workflow - does NOT create spec files or feed into steps 2-4 - This is a standalone workflow - does NOT create spec files or feed into steps 2-4
``` ```
╭───╮ ╭───╮
@@ -150,4 +151,5 @@ If scope is within thresholds (or user chose to continue), present the implement
│ ◡ │ Plan ready! What do you think? │ ◡ │ Plan ready! What do you think?
╰───╯ ╰───╯
``` ```
Ready to implement? (yes / modify plan / escalate to full planning / abort) Ready to implement? (yes / modify plan / escalate to full planning / abort)
+15
View File
@@ -93,21 +93,29 @@ Each task should be:
6. **Analyze** phases for parallel execution eligibility (see Parallel Eligibility Analysis below) 6. **Analyze** phases for parallel execution eligibility (see Parallel Eligibility Analysis below)
7. **Verify** all requirements from planning document are covered 7. **Verify** all requirements from planning document are covered
8. **Present** summary to user and ask about the planning document 8. **Present** summary to user and ask about the planning document
### Parallel Eligibility Analysis ### Parallel Eligibility Analysis
After creating all phase files, analyze which phases can be executed in parallel. This enables users to run multiple agent instances simultaneously for faster implementation. After creating all phase files, analyze which phases can be executed in parallel. This enables users to run multiple agent instances simultaneously for faster implementation.
**Analysis Process:** **Analysis Process:**
1. For each pair of adjacent phases (Phase N and Phase N+1), check for conflicts: 1. For each pair of adjacent phases (Phase N and Phase N+1), check for conflicts:
| Conflict Type | How to Detect | Result if Found | | Conflict Type | How to Detect | Result if Found |
|---------------|---------------|-----------------| |---------------|---------------|-----------------|
| **File Overlap** | Any task in Phase N modifies a file also modified in Phase N+1 | NOT parallel-eligible | | **File Overlap** | Any task in Phase N modifies a file also modified in Phase N+1 | NOT parallel-eligible |
| **Prerequisite Dependency** | Phase N+1's Prerequisites section references Phase N | NOT parallel-eligible | | **Prerequisite Dependency** | Phase N+1's Prerequisites section references Phase N | NOT parallel-eligible |
| **Data/Output Dependency** | Phase N+1 tasks require artifacts, exports, or state created by Phase N | NOT parallel-eligible | | **Data/Output Dependency** | Phase N+1 tasks require artifacts, exports, or state created by Phase N | NOT parallel-eligible |
| **Shared State** | Both phases modify the same database tables, config, or global state | NOT parallel-eligible | | **Shared State** | Both phases modify the same database tables, config, or global state | NOT parallel-eligible |
2. Group consecutive phases with NO conflicts into Parallel Execution Groups: 2. Group consecutive phases with NO conflicts into Parallel Execution Groups:
- If Phases 2 and 3 have no conflicts → Group A: 2, 3 - If Phases 2 and 3 have no conflicts → Group A: 2, 3
- If Phase 4 depends on Phase 3 → Phase 4 starts a new sequence - If Phase 4 depends on Phase 3 → Phase 4 starts a new sequence
- If Phases 5 and 6 have no conflicts → Group B: 5, 6 - If Phases 5 and 6 have no conflicts → Group B: 5, 6
3. Populate the "Parallel Execution Groups" table in `overview.md`: 3. Populate the "Parallel Execution Groups" table in `overview.md`:
**Example with parallel groups:** **Example with parallel groups:**
```markdown ```markdown
| Group | Phases | Reason | | Group | Phases | Reason |
@@ -115,13 +123,16 @@ After creating all phase files, analyze which phases can be executed in parallel
| A | 2, 3 | Phase 2 (data models) and Phase 3 (API routes) touch separate files | | A | 2, 3 | Phase 2 (data models) and Phase 3 (API routes) touch separate files |
| B | 5, 6 | Phase 5 (frontend) and Phase 6 (tests) have no shared dependencies | | B | 5, 6 | Phase 5 (frontend) and Phase 6 (tests) have no shared dependencies |
``` ```
**Example with no parallel phases:** **Example with no parallel phases:**
```markdown ```markdown
| Group | Phases | Reason | | Group | Phases | Reason |
|-------|--------|--------| |-------|--------|--------|
| None | - | All phases must run sequentially due to dependencies | | None | - | All phases must run sequentially due to dependencies |
``` ```
4. Inform the user about parallel eligibility in the completion summary: 4. Inform the user about parallel eligibility in the completion summary:
> **Parallel Execution:** Phases [X, Y] can be run simultaneously in separate agent instances. Phases [Z] must be run sequentially due to dependencies. > **Parallel Execution:** Phases [X, Y] can be run simultaneously in separate agent instances. Phases [Z] must be run sequentially due to dependencies.
### Output Structure ### Output Structure
@@ -200,12 +211,15 @@ Check the Testing Strategy from the PLAN-DRAFT (section 2.4):
## Phase Checklist ## Phase Checklist
- [ ] Phase 1: [Name] - [Description] - [ ] Phase 1: [Name] - [Description]
... ...
## Parallel Execution Groups ## Parallel Execution Groups
<!-- This section enables running multiple phases simultaneously in separate agent instances --> <!-- This section enables running multiple phases simultaneously in separate agent instances -->
<!-- Phases in the same group have no file conflicts or dependencies between them --> <!-- Phases in the same group have no file conflicts or dependencies between them -->
| Group | Phases | Reason | | Group | Phases | Reason |
|-------|--------|--------| |-------|--------|--------|
| [A/B/etc or "None"] | [phase numbers] | [Why these can run in parallel] | | [A/B/etc or "None"] | [phase numbers] | [Why these can run in parallel] |
_If no phases can run in parallel, this table will show "None - all phases must run sequentially"_ _If no phases can run in parallel, this table will show "None - all phases must run sequentially"_
## Quick Reference ## Quick Reference
@@ -295,6 +309,7 @@ Total phases: X
Total tasks: Y Total tasks: Y
Requirements coverage: [Confirm all planning requirements are addressed] Requirements coverage: [Confirm all planning requirements are addressed]
Parallel Execution Groups: Parallel Execution Groups:
- Group A: Phases X, Y (can run simultaneously) - Group A: Phases X, Y (can run simultaneously)
- [Or: "None - all phases must run sequentially"] - [Or: "None - all phases must run sequentially"]