From e57dad052c844339145185c35aaf390139a95ca8 Mon Sep 17 00:00:00 2001 From: Justin Parker Date: Thu, 20 Aug 2026 13:42:43 -0700 Subject: [PATCH] Document the v2.2.0 skills-based distribution Align release notes, version metadata, installation guidance, and maintainer documentation with the canonical skills workflow. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .agents-docs/AGENTS-architecture.md | 25 +++-- .agents-docs/AGENTS-code-style.md | 5 +- .agents-docs/AGENTS-development-commands.md | 104 ++++++++++---------- AGENTS.md | 2 +- CHANGELOG.md | 18 ++++ README.md | 38 ++++--- docs/index.html | 2 +- version.json | 4 +- 8 files changed, 117 insertions(+), 81 deletions(-) diff --git a/.agents-docs/AGENTS-architecture.md b/.agents-docs/AGENTS-architecture.md index d474151..7baecfa 100644 --- a/.agents-docs/AGENTS-architecture.md +++ b/.agents-docs/AGENTS-architecture.md @@ -34,9 +34,9 @@ plan2code/ │ └── statusline-config.json # Default config template ├── scripts/ # Development scripts │ └── validate-char-count.js # Pre-commit character count validator -├── dist/ # Generated distribution files (auto-generated) -│ ├── global-commands/ # For global installation (~/.claude/, etc.) -│ └── local-commands/ # For per-project installation (.claude/, etc.) +├── skills/ # Committed build artifact — one Agent Skill per src/ prompt +│ └── plan2code-/ # SKILL.md plus references/ where present +│ # Generated by npm run build:skills; consumed by skills add ├── .husky/ # Git hooks (husky) │ └── pre-commit # Runs character count validation ├── .claude/ # Repo-local Claude Code config (NOT installed by install.js) @@ -53,8 +53,9 @@ plan2code/ | File | Purpose | |------|---------| -| `install.js` | Main installer - generates and installs workflow files to AI tool directories | +| `install.js` | Interactive installer — builds `skills/` from `src/`, then delegates installation to the skills CLI | | `src/plan2code-*.md` | Source workflow prompts (the "source of truth") | +| `skills/` | Generated Agent Skills committed for installation and drift verification | | `scripts/validate-char-count.js` | Pre-commit validator ensuring all source prompts ≤ 11,000 chars | | `version.json` | Version metadata (name, version, description) | | `QUICK-REFERENCE.md` | User quick-reference card | @@ -93,21 +94,19 @@ Some workflows use companion reference files for depth that exceeds the 11k char **Pattern:** `src/-references/` (e.g., `plan2code-review-references/`) -**How the installer handles them:** -- **Skill-directory platforms** (Claude Code, Agents, Crush, Devin): reference files are nested as `/references/`. Read paths use canonical `references/.md`. -- **Flat-file platforms** (Windsurf, Cursor, Copilot, Continue): reference files are placed as a sibling directory. The installer rewrites Read paths to the sibling directory name (e.g., `plan2code-review-references/.md`). +**How the installer handles them:** the directory is copied verbatim to `skills//references/`, so `Read references/.md` resolves consistently for every agent. There is one output format, with no flat-file sibling directory or path rewrite. -Reference files are NOT subject to the 11,000 character limit. The review workflow pioneered this pattern (`verification-protocol`, `dimensions`, `false-positives`, `session-end`); the init-update workflow also uses it (`ai-agent-file-sync` for its Step 7), `plan2code-4-finalize.md` uses it for STEP 6.5 (`community-feedback-submission`), and `plan2code-0-pathfinder.md` leans on it hardest (`chart`, `grilling`, `questions`, `resolve`, `handoff`, `trail` — the orchestrator is a dispatcher, the depth lives in the references). Other workflows can adopt it when a source file's detail exceeds the 11k limit. - -**`Read` directives must sit at column 0.** `install.js` matches `/^(Read\s+)references\//gm` for the flat-file path rewrite — anchored, with no leading-whitespace tolerance. An indented or bulleted `Read` line is silently skipped, so flat-file platforms ship a `references/` path that does not exist there (they receive the reference dir as a *sibling*, named `plan2code--references/`). +Reference files are NOT subject to the 11,000 character limit. The review workflow pioneered this pattern (`verification-protocol`, `dimensions`, `false-positives`, `session-end`); the init-update workflow also uses it (`ai-agent-file-sync` for its Step 7), `plan2code-4-finalize.md` uses it for STEP 6.5 (`community-feedback-submission`), and `plan2code-0-pathfinder.md` leans on it hardest (`chart`, `grilling`, `questions`, `resolve`, `handoff`, `trail`, `github-issues` — the orchestrator is a dispatcher, the depth lives in the references). Other workflows can adopt it when a source file's detail exceeds the 11k limit. ## Repo-Local Skills (`.claude/skills/`) -Maintainer-only Claude Code skills committed to the repo but **deliberately excluded** from `install.js` — they are dev tooling, not shipped product, so they never install to `~/.claude/skills/` and carry no version bump of their own (a product-version bump would wrongly imply a user-facing release); changelog mentions fold into the current version's entry. +Maintainer-only skills committed to the repo but deliberately excluded from the generated `skills/` product artifact: -- `plan2code-publish/` — cuts a GitHub Release from the top `CHANGELOG.md` entry once `CHANGELOG.md` / `version.json` / `package.json` agree and the version is ahead of the latest published release. Delegates tag creation to `gh release create --target main`. +- `plan2code-publish/` — publishes a GitHub Release after version files agree. +- `plan2code-changelog/` — validates release classification and keeps version files synchronized. +- `sync-repo/` — decrypts the protected upstream-sync workflow in memory. -**Warning:** anything named `plan2code-*` placed under `~/.claude/skills/` is deleted by the installer's uninstall (`uninstallFiles()` in `install.js`) and by every re-install's pre-copy cleanup in `install()` (both match `/^plan2code-/` for the Claude Code skills target). Keep these skills repo-local only. +Do not run `skills add` against the repository root: recursive discovery also finds these maintainer skills. `install.js` targets `skills/` and passes explicit workflow names instead. Global install/uninstall cleanup removes `plan2code-*` workflow skills from user skill directories; it never operates on this repository's `.claude/skills/` directory, and `sync-repo` intentionally has no `plan2code-` prefix. ## Status Line diff --git a/.agents-docs/AGENTS-code-style.md b/.agents-docs/AGENTS-code-style.md index 237cbf8..c59f7e0 100644 --- a/.agents-docs/AGENTS-code-style.md +++ b/.agents-docs/AGENTS-code-style.md @@ -17,9 +17,10 @@ - **PowerShell mangles the CHANGELOG emoji:** `Get-Content` / `Select-String` render the `###` heading emoji as `?` under the default Windows console encoding, so a heading audit done that way reports garbage. Read `CHANGELOG.md` with a file-read or grep tool instead. - **`.claude/skills/` is tracked, not ignored:** repo-local skills (`plan2code-changelog`, `plan2code-publish`, `sync-repo`) live there and are committed. Nothing in `.gitignore` touches `.claude/`, so a new skill only needs `git add`. Per the Failure Log convention in `AGENTS.md`, a correction that is a *workflow* rather than a rule belongs here as a skill, linked from AGENTS.md — not as a Failure log line. - **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. +- **Workflow file character limit:** All `src/plan2code-*.md` files must be ≤ 11,000 characters. A husky pre-commit hook enforces this. The limit predates v2.2.0's single-format skill build and is retained as prompt-size discipline; generated `SKILL.md` files add a small YAML header. +- **`skills/` is a committed build artifact:** edit `src/`, run `npm run build:skills`, and commit the regenerated skills in the same change. `npm test` runs `install.js --verify-skills` and fails on missing, unexpected, or stale files. Never edit `skills/` by hand. - **Metrics internal prompts have no char limit:** Files in `plan2code-metrics/src/prompts/` are NOT subject to the 11,000 char limit — only `src/plan2code-*.md` consumer-facing prompts are. - **User Feedback table format:** The `## User Feedback` markdown table in `overview.md` has a strict format the collector regex depends on. Field names must be exactly `Rating`, `Reason`, `Went Well`, `Went Poorly`. Pipe characters in values must be escaped as `\|`. - **PLAN-DRAFT confidence numbers are scraped by regex:** when a `specs//PLAN-DRAFT-*.md` contains no `` comment, `collector.ts` falls back to prose scraping (`collector.ts:186-241`). The overall-confidence pattern requires a literal `%`, but the four *breakdown* patterns (`collector.ts:201-204`) do **not** — `/[Rr]equirements?[:\s|]+(\d{1,2})/` and its siblings match a bare dimension word followed by whitespace, a colon, or a pipe and then digits. So a PLAN-DRAFT written by anything other than `/plan2code-1-plan` Phase 7 must keep both the `%` sign **and** bare `Requirements` / `Feasibility` / `Integration` / `Risk` followed by a number off the page — including innocent table rows like `| Requirements | 11 |`. Otherwise the metrics pipeline records a planning-step confidence that no planning step produced. `/plan2code-0-pathfinder` works around this by hyphenating the labels (`Requirements-clarity 22/25`), which breaks the character class. - **Reference file sizing guideline:** Files in `src/plan2code-*-references/` directories target ~100-200 lines each (soft guideline; evaluate splitting above 300). They are NOT subject to the 11,000 character limit. The pre-commit hook (`validate-char-count.js`) only checks `src/plan2code-*.md` flat files — subdirectory contents are automatically excluded. -- **The splitting guideline has a hard ceiling — reference files cannot always be split:** two constraints bound it. (1) Each new reference costs the orchestrator a column-0 `Read references/.md` line plus its fallback blockquote (~150-200 chars), and orchestrators near the 11,000 limit have no room to spend. (2) **The path rewrite is not recursive** — `syncPrompts()` rewrites `Read references/…` paths on the *orchestrator's* content only, so a `Read references/…` directive placed *inside* a reference file is never rewritten for flat-file targets; it ships as a dangling instruction pointing at a path that does not exist there. When a reference legitimately exceeds 300 lines (e.g. `plan2code-0-pathfinder-references/chart.md`), that is an accepted trade-off, not an oversight. +- **The splitting guideline has a hard ceiling — reference files cannot always be split:** each new reference costs the orchestrator a `Read references/.md` line plus its fallback blockquote (~150-200 chars), and orchestrators near the 11,000 limit have no room to spend. References now stay nested under every generated skill, so the old flat-file path-rewrite constraint no longer applies. When a reference legitimately exceeds 300 lines (e.g. `plan2code-0-pathfinder-references/chart.md`), that is an accepted trade-off, not an oversight. diff --git a/.agents-docs/AGENTS-development-commands.md b/.agents-docs/AGENTS-development-commands.md index 80f7b97..aae116b 100644 --- a/.agents-docs/AGENTS-development-commands.md +++ b/.agents-docs/AGENTS-development-commands.md @@ -7,9 +7,15 @@ # Install dev dependencies (sets up husky pre-commit hooks) npm install -# Run the interactive installer (always interactive — any CLI args are silently ignored) +# Run the interactive installer node install.js +# Regenerate skills/ from src/ (non-interactive) +npm run build:skills + +# Character-count validation + skills/ drift check +npm test + # Plan2Code Loop cd plan2code-loop && npm install # First time setup cd plan2code-loop && npm run build # Build the CLI @@ -25,9 +31,9 @@ cd plan2code-metrics && npm run build # Build the CLI | Option | Action | |--------|--------| -| `I` | Install Plan2Code workflow prompts for all platforms, plus `plan2code-loop` CLI | -| `A` | Everything in `I` plus `plan2code-bot`, `plan2code-metrics` (dev tools), and Claude Code status line | -| `U` | Uninstall Plan2Code files: prompts + `plan2code-loop` + `plan2code-metrics` + `plan2code-bot` + Claude Code status line (confirmation required) | +| `I` | Install the Plan2Code skills globally through the skills CLI — **skills only**, no dev tools | +| `A` | Everything in `I` plus `plan2code-loop`, `plan2code-bot`, `plan2code-metrics`, and the Claude Code status line | +| `U` | Uninstall Plan2Code skills and all dev tools (confirmation required) | | `C` | Open CUSTOM sub-menu | | `Q` | Quit | @@ -35,67 +41,63 @@ cd plan2code-metrics && npm run build # Build the CLI | Option | Action | |--------|--------| -| `L` | Show local (per-project) install instructions | +| `L` | Install the skills into the current project instead of globally | | `O` | Install plan2code-loop CLI only | | `M` | Install plan2code-metrics CLI only | | `S` | Install Claude Code status line only | | `B` | Install plan2code-bot CLI only | | `Q` | Return to main menu | +## Non-Interactive Flags + +`install.js` takes no arguments for normal use, but exposes two build hooks. Any other argument exits 1 with usage. + +| Flag | Action | +|------|--------| +| `--build-skills` | Regenerate `skills/` from `src/`, pruning stale skills and reference files | +| `--verify-skills` | Compare committed `skills/` with `src/`; exits 1 on drift and is run by `npm test` | + ## How the Installer Works -1. **Reads source prompts** from `src/plan2code-*.md` -2. **Generates platform-specific files** with appropriate headers (YAML frontmatter for some platforms) -3. **Writes to `dist/`** subdirectories organized by destination type -4. **Copies to target directories** (global: `~/.claude/commands/`, etc.) +1. **Builds `skills/` from `src/`** — one Agent Skill per source prompt, including uncommitted source edits. +2. **Checks the skills CLI is reachable** with `npx --yes skills --version`. +3. **Sweeps pre-2.2 install paths** and removes installed `plan2code-*` skills so renamed or retired prompts cannot survive as orphans. +4. **Delegates installation** to `npx --yes skills add "/skills" -g -s -y`. -## Platform-Specific File Formats +The skills CLI owns distribution from step 4 onward. It stores canonical skills under `~/.agents/skills/` and links them into agents that maintain their own skill directory. Plan2Code no longer maintains platform-specific output formats. -| 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//` | `~/.claude/skills//` | YAML frontmatter + `disable-model-invocation: true` | -| Agent Skills (Amp · Devin · OpenCode · Zed) | `SKILL.md` in subdir | `.agents/skills//` | `~/.agents/skills//` | YAML frontmatter (no disable flag) | -| Crush | `SKILL.md` in subdir | — (global only) | `~/.config/crush/skills//` (Unix) / `%LOCALAPPDATA%\crush\skills\\` (Windows) | YAML frontmatter | -| Pi (pi.dev) | `.md` | `.pi/prompts/` | `~/.pi/agent/prompts/` | YAML frontmatter (`description`) | +**Invocation choices:** + +| Choice | Reason | +|--------|--------| +| Explicit space-separated `-s ` | Avoids shell expansion and prevents unrelated directories under `skills/` from being installed. | +| No `-a` / `--agent '*'` | Uses the CLI's supported default agent set instead of requesting incompatible scope/agent combinations. | +| Captured output | Suppresses the CLI's duplicated banners while preserving real failures; unsupported-scope noise is filtered. | + +## Skill Format + +| Item | Value | +|------|-------| +| Path | `skills//SKILL.md` | +| Skill name | `generateSkillName(prompt)`, such as `plan2code-1-plan` or `plan2code-init` | +| Frontmatter | `name`, `description`, `disable-model-invocation: true` | +| Reference files | `skills//references/.md` | + +`disable-model-invocation: true` is unconditional because these workflows are user-initiated. Agents that do not recognize the field ignore it. ## Editing Workflow Prompts -When modifying workflow prompts in `src/`: +`src/` is the source of truth; `skills/` is a committed build artifact. -1. Edit the source file in `src/` -2. Run `node install.js` to regenerate distribution files -3. Test the workflow in your AI tool of choice -4. The `dist/` folder is regenerated automatically — don't edit files there directly +1. Edit the source file under `src/`. +2. Run `npm run build:skills`. +3. Test the workflow in an AI tool. +4. Commit regenerated `skills/` beside the source change; `npm test` fails on drift. +5. Never edit `skills/` by hand because the next build overwrites it. ## Adding a New Workflow Prompt / Skill -Adding a new prompt to `src/` is more than dropping in a file — the installer is -driven by an explicit registry and several docs enumerate the command set. When -you add a `src/plan2code-.md`, do **all** of the following so nothing drifts: - -1. **Create the source file** `src/plan2code-.md` — body content **only**, - no YAML frontmatter (the installer generates frontmatter per platform). Keep - it **under 11,000 characters** (`npm test` enforces this). -2. **Register it in the installer.** Add an entry to the `SOURCE_PROMPTS` array in - `install.js` (`source`, `stepNumber`, `name`, `displayName`, `description`, and - `isUtility: true` for non-numbered utilities). If `stepNumber` is a non-numeric - label (e.g. `'handoff'`), add a matching case to `generateStepLabel()` so the - generated description reads correctly. -3. **Update every doc that lists the command set** — keep these in sync, they are - the canonical inventories: - - `README.md` — command table ("When to Use") - - `QUICK-REFERENCE.md` — Commands table - - `.agents-docs/AGENTS-architecture.md` — "Workflow Prompts (in `src/`)" table - - `CHANGELOG.md` — add an entry under the current version - - `docs/index.html` — **only** if the new prompt belongs to the core pipeline - shown there; utilities (like `init`, `quick-task`, `handoff`) are deliberately - omitted from that curated marketing list. -4. **Regenerate and validate:** run `node install.js` (regenerates `dist/`) and - `npm test` (character-count validator now covers the new file). +1. Create `src/plan2code-.md` with body content only and keep it under 11,000 characters. +2. Register it in `SOURCE_PROMPTS` in `install.js`; add a matching `generateStepLabel()` case when needed. +3. Update command inventories in `README.md`, `QUICK-REFERENCE.md`, `.agents-docs/AGENTS-architecture.md`, and `CHANGELOG.md`. Update `docs/index.html` only for core pipeline steps. +4. Run `npm run build:skills` and `npm test`. diff --git a/AGENTS.md b/AGENTS.md index 9afd132..276a5fc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -40,7 +40,7 @@ Details: [Architecture](./.agents-docs/AGENTS-architecture.md) (see Status Line ## Development Commands -Build commands, installer menu options, how the installer generates platform-specific files, platform format table, and how to edit workflow prompts. +Build commands, installer menu options, non-interactive skill-build verification, skills CLI delegation, skill format, and how to edit workflow prompts. Details: [Development Commands](./.agents-docs/AGENTS-development-commands.md) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81f6f8a..4c60041 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes to Plan2Code will be documented in this file. +## v2.2.0 + +### ✨ Added + +- **Committed Agent Skills build** — each workflow under `src/` now builds to `skills//SKILL.md`, with companion references nested under `references/`. `npm run build:skills` regenerates the artifact, and `npm test` verifies that committed skills have not drifted from their source prompts. + +- **Project-scoped skill installation** — Custom → `L` now installs Plan2Code directly into the current project through the skills CLI instead of printing manual copy instructions. + +### 🔧 Changed + +- **Installation now delegates to the skills CLI** — Plan2Code ships one canonical Agent Skill format instead of maintaining separate command, prompt, workflow, and skill outputs for individual tools. The installer builds `skills/`, checks `npx --yes skills`, removes stale Plan2Code skills, and runs `skills add` with an explicit workflow list. Installation now requires Node.js 18+ and network access; installed skills can be updated with `npx skills update -g`. + +- **Legacy installation cleanup is automatic** — install and uninstall sweep files written by earlier per-tool installers so old commands cannot shadow the canonical skills. This includes the Gemini CLI files retained exclusively for uninstall compatibility. + +- **Default installation is skills-only** — main-menu option `I` no longer installs `plan2code-loop`. The loop remains part of `A` and is still available separately through Custom → `O`. + +- **One frontmatter contract serves every agent** — generated `SKILL.md` files always include `name`, `description`, and `disable-model-invocation: true`. Reference files remain nested under their owning skill, eliminating the old flat-file path rewrite and its column-position constraint. + ## v2.1.1 ### ✨ Added diff --git a/README.md b/README.md index 5ae0987..70a942f 100644 --- a/README.md +++ b/README.md @@ -12,20 +12,22 @@ agent, and the next engineer all start from the same specs. Six commands, each posted separately. Two of them are optional. -Version 2.0.0 · MIT · 📖 [plan2code.jparkerweb.com](https://plan2code.jparkerweb.com) +Version 2.2.0 · MIT · 📖 [plan2code.jparkerweb.com](https://plan2code.jparkerweb.com) --- ## Install -Requires [Node.js](https://nodejs.org/) 14 or later. Re-run any time to update. +Requires [Node.js](https://nodejs.org/) 18 or later and network access — installation runs through +the [skills CLI](https://skills.sh). Re-run any time to update. ```bash npx --allow-git=all git+https://github.com/jparkerweb/plan2code.git ``` -This fetches the installer to a temp directory, runs it, writes the slash commands for whichever -tools you pick, and cleans up after itself. The installed commands work independently from then on. +This fetches the installer to a temp directory, builds the workflow as Agent Skills, delegates +installation to `skills add`, and cleans up after itself. The installed skills work independently +from then on. Either route lands you on the same menu: @@ -33,16 +35,24 @@ Either route lands you on the same menu: ╔═════════════════════════════════════════════════════════╗ ║ INSTALL PLAN2CODE ║ ╠═════════════════════════════════════════════════════════╣ -║ I. INSTALL Install Plan2Code for all platforms ║ +║ I. INSTALL Install Plan2Code skills everywhere ║ ║ A. ALL Install Plan2Code + dev tools ║ -║ U. UNINSTALL Remove Plan2Code files ║ +║ U. UNINSTALL Remove Plan2Code skills and dev tools ║ ║ C. CUSTOM Advanced options ║ ║ Q. QUIT Exit ║ ╚═════════════════════════════════════════════════════════╝ ``` -**Supported tools:** Claude Code · Cursor · Windsurf · Continue · Codeium (IntelliJ) · -GitHub Copilot CLI · VS Code Copilot · Crush · Pi · Amp · OpenCode · Devin · Zed +**Supported tools:** every agent supported by the skills CLI, including Claude Code · Cursor · +GitHub Copilot · Windsurf · Codex · Continue · Codeium · Zed · Amp · OpenCode · Devin · Crush · Pi · +Gemini CLI · Cline · Roo · Kilo · Goose · Trae · Qwen Code. + +The installer keeps one canonical copy of each skill under `~/.agents/skills/` and links it into +agents that maintain their own directory. Update later with `npx skills update -g`. + +Use the installer rather than calling `skills add` against the repository root: recursive discovery +would also find maintainer-only skills under `.claude/skills/`. The installer targets `skills/` +explicitly.
Prefer to clone? @@ -254,8 +264,13 @@ like this. ## Troubleshooting -**Slash commands aren't recognised.** Re-run `node install.js` for that platform and restart your AI -tool. For a per-project install, check the directory isn't gitignored. +**The skills aren't recognised.** Re-run the installer and restart your AI tool. Confirm the global +install with `npx skills list -g`. For a project install, check the generated directories aren't +gitignored. + +**Your tool doesn't read Agent Skills.** Since v2.2.0, Plan2Code ships only as skills. If your tool +has no skill support, paste the relevant `src/plan2code-*.md` manually or point it at the installed +copy under `~/.agents/skills/`. **The agent starts coding during planning.** The prompts forbid it, but models drift. Say: "Stay in planning mode. Do not write code yet." @@ -278,7 +293,8 @@ a fixed size. The prompts are yours to edit. Common changes: add testing requirements in Step 2, move the 90% confidence threshold in Step 1, restructure the `specs/` layout, or add review gates to Step 3. -Source files live in `src/`; re-run `node install.js` to push your edits out to every platform. +Source files live in `src/`; run `npm run build:skills`, then re-run `node install.js` to push your +edits out through the skills CLI. --- diff --git a/docs/index.html b/docs/index.html index 09eefb4..a8b3e5c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -372,7 +372,7 @@ footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
-

Installation

Node 14+ · re-run to update
+

Installation

Node 18+ · network required · re-run to update
$ npx --allow-git=all git+https://github.com/jparkerweb/plan2code.git
diff --git a/version.json b/version.json index 1b9960a..d1ef194 100644 --- a/version.json +++ b/version.json @@ -1,6 +1,6 @@ { "name": "Plan2Code", - "version": "2.1.1", + "version": "2.2.0", "description": "A structured 4-step workflow methodology for AI-assisted software development", "keywords": [ "ai", @@ -17,6 +17,6 @@ "url": "https://github.com/jparkerweb/plan2code" }, "homepage": "https://github.com/jparkerweb/plan2code", - "releaseDate": "2026-08-12", + "releaseDate": "2026-08-20", "mode": "utility" }