mirror of
https://github.com/jparkerweb/plan2code.git
synced 2026-07-21 18:33:22 -07:00
spacing
This commit is contained in:
@@ -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.
|
||||||
|
|
||||||
```
|
```
|
||||||
╭───╮
|
╭───╮
|
||||||
│ ● │
|
│ ● │
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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/`
|
||||||
|
|||||||
@@ -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
@@ -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());
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
Reference in New Issue
Block a user