This commit is contained in:
2026-02-22 12:54:33 -08:00
parent b7b2595fe1
commit de46275b51
19 changed files with 653 additions and 476 deletions
+19 -19
View File
@@ -1,19 +1,19 @@
# Exclude user-generated spec files
specs/
specs--completed/
# Exclude development files
.husky/
.git/
.gitignore
CLAUDE.md
# Exclude generated files (installer generates dist/ dynamically)
dist/
# Exclude dependencies (installer will run npm install if needed)
node_modules/
package-lock.json
plan2code-loop/node_modules/
plan2code-loop/package-lock.json
plan2code-loop/dist/
# Exclude user-generated spec files
specs/
specs--completed/
# Exclude development files
.husky/
.git/
.gitignore
CLAUDE.md
# Exclude generated files (installer generates dist/ dynamically)
dist/
# Exclude dependencies (installer will run npm install if needed)
node_modules/
package-lock.json
plan2code-loop/node_modules/
plan2code-loop/package-lock.json
plan2code-loop/dist/
+33 -34
View File
@@ -100,27 +100,9 @@ The LLM must output one of these formats:
# Install dev dependencies (sets up husky pre-commit hooks)
npm install
# Run the interactive installer
# Run the interactive installer (always interactive — any CLI args are silently ignored)
node install.js
# Install to specific platform only
node install.js --platform claude
node install.js --platform cursor
node install.js --platform copilot
node install.js --platform continue
node install.js --platform windsurf
node install.js --platform codeium
node install.js --platform vscode-copilot
# Preview changes without installing
node install.js --dry-run
# Show local (per-project) installation instructions
node install.js --local
# Uninstall all Plan2Code files
node install.js --uninstall
# Plan2Code Loop
cd plan2code-loop && npm install # First time setup
cd plan2code-loop && npm run build # Build the CLI
@@ -128,13 +110,22 @@ cd plan2code-loop && npm run build # Build the CLI
### Installer Menu Options
**Main menu:**
| Option | Action |
|--------|--------|
| `I` | Install Plan2Code for all platforms + loop CLI |
| `U` | Uninstall Plan2Code files + loop CLI (confirmation required) |
| `C` | Open CUSTOM sub-menu |
| `Q` | Quit |
**CUSTOM sub-menu (`C`):**
| Option | Action |
|--------|--------|
| `A` | Install to ALL platforms + build & link loop CLI |
| `O` | Build & link plan2code-loop CLI only |
| `U` | Uninstall prompts from all platforms + unlink loop CLI |
| `L` | Show local (per-project) install instructions |
| `1-7` | Install to specific platform |
| `O` | Install plan2code-loop CLI only |
| `Q` | Return to main menu |
## How the Installer Works
@@ -145,15 +136,19 @@ cd plan2code-loop && npm run build # Build the CLI
### Platform-Specific File Formats
| Platform | Extension | Header |
|----------|-----------|--------|
| Claude Code | `.md` | None |
| Cursor | `.md` | None |
| Copilot CLI | `.md` | YAML frontmatter |
| Continue | `.prompt.md` | YAML frontmatter |
| Windsurf | `.md` | YAML frontmatter |
| VS Code Copilot | `.prompt.md` | YAML frontmatter |
| Codeium | `.md` | YAML frontmatter |
| Platform | Extension / File | Local Dir | Global Dir | Header |
|----------|-----------------|-----------|------------|--------|
| Claude Code | `.md` | — | — | None |
| Cursor | `.md` | — | — | None |
| Copilot CLI | `.md` | — | — | YAML frontmatter |
| Continue | `.prompt.md` | — | — | YAML frontmatter |
| Windsurf | `.md` | — | — | YAML frontmatter |
| VS Code Copilot | `.prompt.md` | — | — | YAML frontmatter |
| Codeium | `.md` | — | — | YAML frontmatter |
| Claude Code (Skills) | `SKILL.md` in subdir | `.claude/skills/<skill-name>/` | `~/.claude/skills/<skill-name>/` | YAML frontmatter + `disable-model-invocation: true` |
| Agent Skills (Amp · Gemini CLI · OpenCode) | `SKILL.md` in subdir | `.agents/skills/<skill-name>/` | `~/.agents/skills/<skill-name>/` | YAML frontmatter (no disable flag) |
| Crush | `SKILL.md` in subdir | — (global only) | `~/.config/crush/skills/<skill-name>/` (Unix) / `%LOCALAPPDATA%\crush\skills\<skill-name>\` (Windows) | YAML frontmatter |
| Gemini CLI (TOML) | `.toml` | `.gemini/commands/` | `~/.gemini/commands/` | None (TOML fields: `description`, `prompt`) |
## Naming Convention
@@ -184,7 +179,7 @@ When modifying workflow prompts in `src/`:
## 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` and `package.json` to match. The installer displays the version from `version.json` in its header.
- **Loop `.gitignore` setup:** `ensureGitignore()` runs at startup in `Controller.run()` as a pre-flight step, not just inside `createTaskCommit()`. This is critical for phase mode where the Node controller doesn't handle commits — without it, `git add -A` would stage spec files.
- **Workflow file character limit:** All `src/plan2code-*.md` files must be ≤ 11,000 characters. A husky pre-commit hook enforces this. The 11,000 limit leaves buffer for platform-specific YAML headers (106-142 chars) to stay under Windsurf's 12,000 char limit.
@@ -199,11 +194,15 @@ When modifying workflow prompts in `src/`:
## 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 called "Planny" - 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.
```
o o
╭───╮
│ ● │
│ ◡ │
├───┤
│ · │
╰───╯
```
+36
View File
@@ -2,6 +2,42 @@
All notable changes to Plan2Code will be documented in this file.
## v1.7.0
### ✨ Added
- **4 new platform targets** — Gemini CLI, Crush, Amp, and OpenCode now supported
- Gemini CLI installs as TOML commands (`.gemini/commands/plan2code-*.toml`)
- Crush installs as skill subdirs (`~/.config/crush/skills/` on Unix, `%LOCALAPPDATA%\crush\skills\` on Windows)
- Amp and OpenCode covered via shared Agent Skills target (`.agents/skills/`)
- **Claude Code Skills format** — Migrated from flat `.claude/commands/*.md` to `.claude/skills/<skill-name>/SKILL.md` with `disable-model-invocation: true` frontmatter
- **Agent Skills cross-tool target** — Single `.agents/skills/` install covers Amp, Gemini CLI, and OpenCode simultaneously
- **Legacy cleanup** — Old `.claude/commands/plan2code-*.md` files automatically removed on install and uninstall
- **TOML generation** — New `generateTomlContent()` produces Gemini CLI command files using TOML literal multi-line strings
### 🔧 Changed
- `AGENTS.md` Platform-Specific File Formats table expanded to 5 columns with 4 new platform rows
- `docs/index.html` hero section updated with 4 new platform pills
- `README.md` Supported Platforms list updated with 4 new platforms
## v1.6.2
### 🔧 Changed
- **Installer menu simplified** — Replaced the 7-platform picker with a clean 4-option menu (I/U/C/Q)
- `I` — Install Plan2Code for all platforms + loop CLI
- `U` — Uninstall (with confirmation prompt)
- `C` — CUSTOM sub-menu: `L` (local install instructions), `O` (loop CLI only), `Q` (back)
- `Q` — Quit
- Any CLI arguments (e.g. `--dry-run`, `--platform`) are now silently ignored; installer always runs interactively
- **README installation section** — npx install method promoted to primary recommended install path; updated menu example
### 🗑️ Removed
- CLI flags `--dry-run`, `--platform`, `--local`, `--uninstall`, `--help`, `--loop`, `--uninstall-loop` (all removed; installer is always interactive)
- `displayHelp()` function removed from `install.js`
## v1.6.1
### ✨ Added
+5 -5
View File
@@ -2,8 +2,8 @@
## Commands
| Step | Command | Input | Output |
| ------ | ----------------------------- | --------------- | ----------------------------------- |
| Step | Command | Input | Output |
| ------ | ------------------------------- | --------------- | ----------------------------------- |
| Init | /plan2code---init | None | AGENTS.md file |
| Update | /plan2code---init-update | AGENTS.md | Updated AGENTS.md |
| 0 | /plan2code---quick-task | Requirements | Conversational plan |
@@ -60,10 +60,10 @@ When phases have no file conflicts or dependencies, they can run simultaneously:
| ---------------------- | ------------------------------------------------- |
| Lost context mid-phase | Attach spec files, say "resume from Task X.Y" |
| Wrong phase started | Say "abort", start correct phase |
| Need to change plan | Use `/plan2code-1b--revise-plan` |
| Need to change plan | Use `/plan2code-1b--revise-plan` |
| Multiple spec folders | Specify which: "Continue with specs/user-auth/" |
| Need AGENTS.md file | Use `/plan2code---init` to generate one |
| Update AGENTS.md | Use `/plan2code---init-update` after sessions |
| Need AGENTS.md file | Use `/plan2code---init` to generate one |
| Update AGENTS.md | Use `/plan2code---init-update` after sessions |
| Run phases in parallel | Check Parallel Execution Groups in overview.md |
## Workflow Decision
+47 -36
View File
@@ -2,7 +2,7 @@
A structured 4-step workflow for developing features and projects with AI assistance. This methodology emphasizes thorough planning before implementation, ensuring well-documented, maintainable code.
<img src="docs/plan2code.jpg" alt="Plan2Code Workflow" height="400">
<img src="docs/desk.jpg" alt="Plan2Code Workflow" height="275">
## Overview
@@ -15,16 +15,16 @@ A structured 4-step workflow for developing features and projects with AI assist
New Chat New Chat New Chat (per phase) New Chat
```
| Command | Use When |
|---------|----------|
| `/plan2code---init` | Generate AGENTS.md file for new/existing projects |
| `/plan2code---init-update` | Update AGENTS.md with new learnings from coding sessions |
| `/plan2code---quick-task` | Small, quick tasks that don't need full workflow |
| `/plan2code-1--plan` | Starting a new feature (full planning) |
| `/plan2code-1b--revise-plan` | Requirements change mid-implementation |
| `/plan2code-2--document` | After planning, create implementation specs |
| `/plan2code-3--implement` | Execute implementation (one phase per conversation) |
| `/plan2code-4--finalize` | All phases complete, ready to archive |
| Command | When to Use |
|----------------------------------|----------------------------------------------------------|
| `/plan2code---init` | Generate AGENTS.md file for new/existing projects |
| `/plan2code---init-update` | Update AGENTS.md with new learnings from coding sessions |
| `/plan2code---quick-task` | Small, quick tasks that don't need full workflow |
| `/plan2code-1--plan` | Starting a new feature (full planning) |
| `/plan2code-1b--revise-plan` | Requirements change mid-implementation |
| `/plan2code-2--document` | After planning, create implementation specs |
| `/plan2code-3--implement` | Execute implementation (one phase per conversation) |
| `/plan2code-4--finalize` | All phases complete, ready to archive |
**Key Rules:**
- Start NEW conversation for each step (and each implementation phase)
@@ -40,13 +40,13 @@ See [QUICK-REFERENCE.md](QUICK-REFERENCE.md) for full reference card.
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="600">
### Prerequisites
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/) (recommended)
2. Or use a package manager:
- **macOS:** `brew install node`
- **Windows:** `winget install OpenJS.NodeJS` or `choco install nodejs`
@@ -61,8 +61,28 @@ The install script requires **Node.js** (v14 or later). If you don't have Node.j
- Codeium (IntelliJ)
- GitHub Copilot CLI
- VS Code GitHub Copilot
- Gemini CLI
- Crush
- Amp
- OpenCode
### Quick Start
### Install via npx (Recommended — No Clone Required)
Run the interactive installer directly using `npx` with your preferred GitHub authentication method:
**If you use SSH keys:**
```bash
npx git+ssh://git@github.com/jparkerweb/plan2code.git
```
**If you use HTTPS authentication:**
```bash
npx git+https://github.com/jparkerweb/plan2code.git
```
This downloads the installer to a temporary location, runs it, installs the workflow files to your machine, and cleans up automatically. The installed workflows remain on your system and work independently. To update or reinstall, simply run the command again.
### Standard Installation (Clone Method)
#### No Clone Required
@@ -84,7 +104,7 @@ This downloads the installer to a temporary location, runs it, installs the work
```bash
# Clone the repository
git clone https://github.com/plan/plan2code.git
git clone https://github.com/jparkerweb/plan2code.git
cd plan2code
# Run the interactive installer
@@ -94,30 +114,21 @@ node install.js
npm install
```
The installer will display an interactive menu:
The installer displays an interactive menu:
```
Available platforms:
╔════════════════════════════════════════════════════════════════╗
║ INSTALL PLAN2CODE ║
╠════════════════════════════════════════════════════════════════╣
║ I. INSTALL Install Plan2Code for all platforms ║
║ U. UNINSTALL Remove Plan2Code files ║
║ C. CUSTOM Advanced options ║
║ Q. QUIT Exit ║
╚════════════════════════════════════════════════════════════════╝
1. Claude Code (~/.claude/commands/)
2. Copilot CLI (~/.copilot/agents/)
3. Cursor (~/.cursor/commands/)
4. Continue (~/.continue/prompts/)
5. Windsurf (~/.codeium/windsurf/global_workflows/)
6. Codeium (IJ) (~/.codeium/global_workflows/)
7. VS Code Copilot (%APPDATA%\Code\User\prompts\)
A. Install ALL platforms + loop CLI
O. Build/link plan2code-loop CLI only
L. Show local (project) install instructions
U. Uninstall Plan2Code files + unlink loop CLI
Q. Quit
Enter choice (1-7, A, O, L, U, Q, or comma-separated like 1,3,5):
SELECT OPTION (I, U, C, Q) [I]:
```
For per-project installation or additional options, run `node install.js --help`.
---
## Important: Start Fresh Conversations
@@ -405,10 +416,10 @@ For hands-off implementation, Plan2Code includes an optional autonomous loop CLI
# From the plan2code root directory:
# Option 1: Install everything (recommended)
node install.js # Select option A
node install.js # Select I at the menu
# Option 2: Install loop only
node install.js # Select option O
node install.js # Select C, then O at the menu
```
### Using the Loop
+433 -368
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "plan2code",
"version": "1.6.1",
"version": "1.7.0",
"private": true,
"bin": {
"plan2code": "./install.js"
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "plan2code-loop",
"version": "1.6.1",
"version": "1.6.2",
"description": "Plan2Code Loop - Autonomous spec-driven implementation CLI",
"type": "module",
"main": "dist/index.js",
+1 -1
View File
@@ -176,7 +176,7 @@ async function handleExistingSession(
export async function setupSession(
stateManager: StateManager
): Promise<SessionSetupResult | null> {
// Show welcome
// Show Planny welcome
logger.welcome();
// Select spec
+3 -1
View File
@@ -109,7 +109,9 @@ export async function createTaskCommit(options: GitCommitOptions): Promise<boole
// Build commit message
let commitMessage = taskName;
if (jiraTicketId) {
commitMessage = `${taskName}\n\n${jiraTicketId}`;
commitMessage = `${taskName}\n\n${jiraTicketId}\n\nAI Assisted`;
} else {
commitMessage = `${taskName}\n\nAI Assisted`;
}
// Create the commit
+14 -4
View File
@@ -4,9 +4,13 @@ Start all UPDATE AGENTS MODE responses with '🛞'
```
o o
╭───╮
│ ● │
│ ◡ │ Time to level up AGENTS.md!
├───┤
│ · │
╰───╯
```
@@ -49,9 +53,13 @@ Present the user with update options:
> ```
>
> o o
> ?
> ╭───╮
> │ ● │
> │ ~ │ What should we update?
> ├───┤
> │ · │
> ╰───╯
> ```
>
@@ -140,10 +148,12 @@ Check for other AI agent config files and offer to replace with AGENTS.md refere
### If Files Found
```
> ╭───╮
> │ ● │
> │ ~ │ Found other AI agent configs!
> ╰───╯
o o
\ /
+---+
| o |
| ~ | Found other AI agent configs!
+---+
```
> Found AI config files that could reference AGENTS.md:
+8
View File
@@ -4,9 +4,13 @@ Start all CREATE AGENTS MODE responses with '💡'
```
o o
╭───╮
│ ● │
│ ◡ │ Let me explore your codebase!
├───┤
│ · │
╰───╯
```
@@ -57,9 +61,13 @@ If files found, show:
```
o o
╭───╮
│ ● │
│ ~ │ Found some other AI agent configs!
├───┤
│ · │
╰───╯
I found these AI agent configuration files:
+8
View File
@@ -16,9 +16,13 @@ Check for `./AGENTS.md` first:
> ```
>
> o o
> ?
> ╭───╮
> │ ● │
> │ ~ │ Hmm, I don't see an AGENTS.md...
> ├───┤
> │ · │
> ╰───╯
> ```
>
@@ -39,9 +43,13 @@ Check for `./AGENTS.md` first:
```
o o
?
╭───╮
│ ● │
│ ~ │ I'm ready to help!
├───┤
│ · │
╰───╯
```
+8
View File
@@ -15,9 +15,13 @@ Check if `./AGENTS.md` exists:
> ```
>
> o o
> ?
> ╭───╮
> │ ● │
> │ ~ │ Hmm, I don't see an AGENTS.md...
> ├───┤
> │ · │
> ╰───╯
> ```
>
@@ -265,9 +269,13 @@ When complete (PLAN-DRAFT created), tell user:
>
> ```
>
> o o
>
> ╭───╮
> │ ★ │
> │ ◡ │ Planning done! Ready for documentation!
> ├───┤
> │ · │
> ╰───╯
> =============================================
> NEXT STEP: Start a NEW conversation then run:
+4
View File
@@ -170,9 +170,13 @@ Report and resolve issues before proceeding.
```
o o
╭───╮
│ ★ │
│ ◡ │ All revised! Ready to continue!
├───┤
│ · │
╰───╯
╔═══════════════════════════════════════════════════════════════════╗
+4
View File
@@ -204,9 +204,13 @@ Parallel Execution: [Groups or "None - sequential only"]
>
> ```
> ⋅
> o o
> ╲
> ╭───╮
> │ ★ │
> │ ◡ │ Specs are ready! Time to build!
> ├───┤
> │ · │
> ╰───╯
> ============================================
> NEXT STEP: Start a NEW conversation and run:
+16 -4
View File
@@ -182,9 +182,13 @@ Sections: Summary (2-3 sentences), Tasks Completed (Y/Z + blocked list), Test Re
```
o o
?
╭───╮
│ ● │
│ ~ │ Ready for your review!
├───┤
│ · │
╰───╯
```
@@ -194,27 +198,35 @@ Sections: Summary (2-3 sentences), Tasks Completed (Y/Z + blocked list), Test Re
On user "approved":
1. Mark `[/]``[x]` in overview.md, update phase-X.md status to "Complete"
2. Show Mascot art with completion message
2. Show Planny art with completion message
3. Provide: `git add -A && git commit -m "Complete Phase X: [Phase Name]" -m "AI Assisted"`
4. **If more phases:** "NEXT STEP: Start NEW conversation and run: `/plan2code-3--implement`"
5. **If final phase:** "NEXT STEP: Start NEW conversation and run: `/plan2code-4--finalize`"
6. Mention `/plan2code-1b--revise` option
continuing:
Planny (continuing):
```
o o
╭───╮
│ ★ │
│ ◡ │ Phase done! Great progress!
├───┤
│ · │
╰───╯
```
final phase:
Planny (final phase):
```
o o
╲ ╲
╭───╮
│ ★ │
│ ◡ │ All phases complete! Amazing work!
├───┤
│ · │
╰───╯
```
@@ -235,7 +247,7 @@ If user says "abort", "cancel", or similar:
|-------|----------|
| Lost context mid-phase | Attach specs, say "resume from Task X.Y" |
| Spec unclear/conflicting | Mark task blocked, ask user |
| Need to change plan | Pause, use `/plan2code-1b--revise` |
| Need to change plan | Pause, use `/plan2code-1b--revise-plan` |
## Learning Capture
+9 -1
View File
@@ -177,13 +177,17 @@ Add this summary to `overview.md` under `## Completion Summary`.
Report: table of documents needing updates with proposed changes. List each document with specific additions.
If updates needed, show Mascot and ask for approval:
If updates needed, show Planny and ask for approval:
```
o o
?
╭───╮
│ ● │
│ ~ │ Found some docs that need updating!
├───┤
│ · │
╰───╯
```
@@ -257,9 +261,13 @@ specs--completed/
```
o o
╲ ╲
╭───╮
│ ★ │
│ ◡ │ You did it! Feature complete!
├───┤
│ · │
╰───╯
```
+3 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Plan2Code",
"version": "1.6.1",
"version": "1.7.0",
"description": "A structured 4-step workflow methodology for AI-assisted software development",
"keywords": [
"ai",
@@ -17,5 +17,7 @@
"url": "https://github.com/jparkerweb/plan2code"
},
"homepage": "https://plan2code.jparkerweb.com",
"releaseDate": "2026-02-20",
"mode": "utility"
}