Repository navigation
v2.0.0
What's New 🎉
v2.0.0
Ports upstream v1.17.0 and v2.0.0 into Plan2Code.
💥 Breaking
-
Gemini CLI is no longer an install target. The
.gemini/commands/*.tomlsurface is removed, along with the build-time machinery it required:generateTomlContent(),writeTomlToDestination(),inlineReferenceContent(), and thedest.type === 'toml'branch insyncPrompts(). Every remaining target resolvesRead references/*.mddirectives at runtime, so reference content no longer needs inlining at build time.Uninstall still cleans up Gemini files. The
.gemini/commandsentry is deliberately retained in the uninstall target list (labelledGemini CLI (legacy — uninstall only)) behind a newuninstallOnlyflag, so.tomlfiles written by v1.x installs can still be removed. Do not add it back toLOCAL_DESTINATIONS/GLOBAL_DESTINATIONS.All other platforms are unaffected — Claude Code (skills and commands), Cursor, Windsurf, Continue, Codeium, GitHub Copilot, VS Code Copilot, Pi, Crush, Amp, Devin, OpenCode, and Zed all install exactly as before.
✨ Added
-
Pathfinder workflow — new
/plan2code-0-pathfindercommand, an optional Step 0 for an idea too big and unclear to plan yet: where you can feel the shape of the work but can't write it down as requirements. Adapted from Matt Pocock'swayfinderskill (MIT), reworked for Plan2Code's localspecs/workflow.Pathfinder names a destination, then charts the way to it as a map of decision questions under
specs/<idea>/pathfinder/—map.mdas the index plus onequestions/NN-<slug>.mdfile per decision. It resolves one question per session (research excepted), and each resolution clears the fog ahead of it, graduating whatever became specifiable into fresh questions. When nothing is left to decide, it writesspecs/<idea>/PLAN-DRAFT-<date>.mdcarrying the status string/plan2code-1-planalready recognizes, so planning resumes at Phase 4 in the same folder with Requirements, System Context, and Scope pre-answered.Grilling is batched — up to three independent probes per turn instead of one probe per round trip, delivered either through the environment's structured question tool or as numbered prose Q blocks, chosen per batch by a detail test. Probes are written in plain English, and any probe you skip is re-asked rather than quietly dropped. It plans, it never builds: four question types —
grill(HITL, the default),research(AFK, resolved by background subagents in parallel),sketch(HITL), andlegwork.Map state uses the house checkbox vocabulary —
[ ]open (the frontier),[/]claimed,[x]resolved,[!]blocked,[-]out of scope.questions/is ground truth andmap.mdis a rebuildable index: every Work session reconciles the two before choosing, which self-heals drift and recovers claims left by a crashed session. Every response ends with a Trail Footer — a one-line path fromSTARTto the⚑destination, a numbered legend, a plain-English confidence line, and exactly one closer chosen by turn type (a turn that asks you something never emits a resume command).Depth lives in six new reference files under
src/plan2code-0-pathfinder-references/(chart,grilling,questions,resolve,handoff,trail), so the orchestrator stays a dispatcher and the skill has no external skill dependencies. -
Community feedback submission —
/plan2code-4-finalizegains STEP 6.5: after archival, assembles a METRICS_JSON payload from the completed run and submits it as acommunity-feedback-labeled GitHub issue onjparkerweb/plan2code, with a tiered fallback (ghCLI issue create → browser-opened prefilled issue → printed URL) for environments withoutgh. Payload schema and submission tiers live in the newplan2code-4-finalize-references/community-feedback-submission.md. Step 5 now asks for explicit submission consent and skips straight to Step 6 when declined. -
Community submission ingestion in plan2code-metrics — new "Fetch community submissions" CLI flow (
community.ts) lists open feedback issues viagh, validates and parses eachMETRICS_JSONpayload (type-only validation; malformed submissions are skipped and logged, not fixed up), imports them into the local run store deduped byrun_id, re-aggregates, and closes each imported issue. Matches an open issue by thecommunity-feedbacklabel OR the[Feedback]title prefix OR theMETRICS_JSONmarker, so browser/print-tier submissions from outside contributors are still picked up; paginates fully (--limit 1000); and closes issues idempotently even on the duplicate path. -
Community runs cohort by Plan2Code version — ingested community runs are keyed into cohorts by their
plan2code_versionrather than by a prompt-file fingerprint, since community submissions carry the installed, platform-transformed prompts and an LLM-generated payload. Runs now carry asource(local/community) tag, andcurrent_cohort_keyprefers local cohorts so ingested feedback never displaces the maintainer's current prompt generation. -
Devin CLI as an AI backend for both
plan2code-metrics(invoke-llm.ts) andplan2code-loop(agents/devin-cli.ts) —devin --print --prompt-file <file> --permission-mode dangerous. Unlike upstream, which replaced GitHub Copilot CLI with Devin, Plan2Code keeps both: Claude Code, GitHub Copilot CLI, and Devin CLI are all selectable. Existing Copilot CLI selections keep working.
🔧 Changed
- README rebuilt around a shorter, task-first structure, with the deep material split into a new
.readme/folder:walkthrough.md,autonomous-loop.md,status-line.md,metrics.md,test-bot.md. - Docs site and README redesigned around an "airmail" postcard theme — a fixed four-sided airmail-chevron page frame, sticky header, and the workflow presented as six posted letters, with Pathfinder and the optional Review step both surfaced. Adds a postage-stamp favicon set (
favicon.svg/.ico/.png/apple-touch-icon.png) and a new README banner; removes three orphaned images (desk.jpg,install-script.jpg,plan2code.jpg). /plan2code-4-finalizearchivespathfinder/with the spec — STEP 6 now namespathfinder/in the move list and no longer describes the cleanup target as "research or scratch files," wording that pointed an agent straight atpathfinder/questions/. The map is the rationale record behind the plan, in the same class asPLAN-CONVERSATION-*.md./plan2code-1b-revise-planno longer deletespathfinder/— its Step 6 cleanup had the same "research or scratch files" wording./plan2code-quick-taskis no longer labelled "Step 0" — pathfinder now owns step 0, and quick-task was never a pipeline step. It registers as a utility (likeinit,review, andhandoff), so its generated description readsPlan2Code Quick Task: Quick Task Mode. Filename, skill name, and command path are unchanged./plan2code-handoffasks where to save — the OS temp directory is now the default, with./handoffs/or any other path available on request. Adds a spec-awareness section: when the session worked insidespecs/<feature>/, the handoff cites the in-progressphase-X.mdand its actual checkbox state rather than relying on conversation memory./plan2code-init-updateStep 7 offloaded to a reference file — the AI Agent File Sync detail moves toplan2code-init-update-references/ai-agent-file-sync.mdwith an inline fallback. TheCLAUDE.mdMANDATORY-FIRST-STEP template is unchanged./plan2code-reviewSession End offloaded to a reference file — next-step routing moves toplan2code-review-references/session-end.mdwith an inline fallback.- Status line: context-bar token count suppressed on token-usage accounts — the bar's
(84k)reads the samecontext_window.total_input_tokensthein/outusage segment already shows on Enterprise/Bedrock/Vertex/PAYG accounts. It now renders only on Pro/Max/Teams (rate-limit) accounts, where no other segment carries an absolute token count. Theitems.contextTokensflag still turns it off entirely. aggregator.tsrefactor — extractedwriteRunFile()(dedup-by-run_idwrite) out ofimportRun()so the community ingestion path can reuse it without a source file path;collector.tsnow exportsextractMetricsJson()for the same reason..agents-docs/AGENTS-code-style.mddocuments a metrics gotcha: when aPLAN-DRAFT-*.mdcarries noMETRICS_JSONcomment,collector.tsscrapes it by regex, and the four confidence-breakdown patterns match a bare dimension word plus a number without requiring a%— so even a table row like| Requirements | 11 |gets ingested as a planning confidence score..agents-docs/AGENTS-architecture.mddocuments the column-0 requirement forRead references/*.mddirectives —install.jsanchors its flat-file path-rewrite regex at^, so an indentedReadline is silently skipped.
🐛 Fixed
- Broken review-command row and column alignment in
QUICK-REFERENCE.md. plan2code-loopbanner misspelled the mascot as "Plany".