Skip to content

Releases: jparkerweb/plan2code

v2.5.1

Choose a tag to compare

@jparkerweb jparkerweb released this 07 Oct 23:46
1b34b6b

What's New 🎉

v2.5.1

✨ Added

  • web-console: six new starter templates, each slotted into every role's order. Refactor (Plan, Quick Task) asks what behaviour must not change. Performance problem (Plan, Quick Task) asks for today's number and the target. Dependency upgrade (Quick Task) asks for the known breaking changes. Spike (Pathfinder) is a time-boxed question with an "answered when". Integration (Pathfinder, Plan) covers the other side's auth and limits and what happens when it fails. Data migration (Plan) asks for a rollback plan. Pathfinder now offers 8 templates, Plan 10 and Quick Task 10, 19 in all.

🔧 Changed

  • web-console: the starter templates on the fresh-idea card (Pathfinder, Plan, Quick Task) are now Markdown sections. Each one is a ## heading with its answer on the lines under it, instead of Label: [blank] lines run together. You get room to write, and the agent gets clear sections. Brackets mark only the parts you fill in, so the lines already written for you (who reads it, what it should pin down) read as defaults. Bug investigation splits Expected and Actual into their own sections and numbers its steps. Add a test lists its cases. Picking a template now selects its first [blank], so you type straight over it instead of starting at the end of the box. Ids, labels and which skills see the existing templates are unchanged. A new test in scripts/test-web-console.mjs pins the shape.
  • web-console: template content, revised against design-doc, PRD, ADR (MADR) and bug-report guidance. Engineering spec gains Out of scope and asks for the simpler options turned down. Product requirements gains Not doing and asks for evidence and a measure of success. Test strategy leads with what costs most if it breaks. Scoping and rollout asks who sees it first and how it rolls back. Bug investigation gains How often and Error or logs. Small change gains Leave alone, and its Done when asks for a command or check. Add a test names the failure case. Record a decision's Why asks what forced the choice.

🐛 Fixed

  • web-console: a "working alone" report no longer hides helpers reported after it (or beside it). A real helper report now removes the marker (applyPatch in lib.mjs, helperRows() in subagents.js), the standing instruction and console.md say to post alone only when the agent's tools cannot start helpers at all, and Help's Helpers (subagents) topic says the note goes away once a helper shows.

v2.5.0

Choose a tag to compare

@jparkerweb jparkerweb released this 07 Oct 01:00
c16bc81

What's New 🎉

v2.5.0

✨ Added

  • web-console: a Subagents switch for the skills that can hand work to helpers (Implement, Implement + review, Quick task, Review, Pathfinder). An icon button after Write a brief, lit while helpers are on, opens a Subagents dialog: Use helpers or Work alone, an editable instruction with Reset to default, and an advisory "at most N at once" (1 to 20). It is off by default and saved per project folder and skill in ~/.plan2code/console/subagents.json (POST /subagents, on Cleanup's keep-list). The button shows only when the skill opts in (public/subagents.js) and the agent's console copy reported support (caps: ["subagents"] on its open event), so an older skill copy never shows a switch it cannot serve.
  • web-console: the switch reaches the agent as a standing instruction, and only when it changes. wait exit 0, chat and open carry a subagents field and Subagents: on (revision N) lines last in reply. A higher revision replaces a lower one, "off" goes only to an agent that was told "on", and a resume or dashboard launch with the switch on states it once. The per-session cursor moves only after the print, so a killed wait repeats a change rather than losing it. Contract: console.md → Standing instructions; building.md points at it.
  • web-console: a Subagents tab before Ask, from the first helper the agent reports through post (helpers: [{ id, title, ask, state, result? }], merged by id, or one { id: "alone", alone: true } entry when it has no way to start helpers). One row per helper with its ask, a Running / Done / Failed pill and a one-line result. It clears on a dashboard hop, and helper reports add no session meter points. validate() refuses malformed entries with exit 3 (house rule 8). Help gains a 17th topic, Helpers (subagents).

🔧 Changed

  • review: run on its own with nothing named (no argument, no conversation work, not from a build's review button), plan2code-review no longer assumes the branch diff. It does a quick scan (branch changes, uncommitted changes, specs) and asks what to review, each option with its size; on the web console that is the first scope question, a choice. A build's review keeps its already-decided scope.
  • web-console: post and open --file refuse a patch that sends a doc a lower version than the page already holds (exit 3, naming the doc and both versions; house rule 9). A version going back is almost always a stale or copied payload, which the page would otherwise show quietly under the new run's name. building.md now says a later phase in the same session continues phase, phasefile, report and review from the version the page holds instead of restarting at 1.
  • web-console: the project name in the footer's <project> · <branch> label now shows in your highlight color, and the browser tab title starts with it (<project> · <title> · #<sid> · Plan2Code), so consoles for different projects are easy to tell apart.

v2.4.2

Choose a tag to compare

@jparkerweb jparkerweb released this 06 Oct 02:14
8fb19ec

What's New 🎉

v2.4.2

✨ Added

  • web-console: the Questions and Ask tabs show a small spinner left of their name while Plan2Code is on it. Questions (Dashboard on the dashboard) spins from Send until the answers are picked up, the same wait as Sent. Waiting for Plan2Code.; Ask spins while a question the agent picked up has no answer yet, exactly when the conversation's own ring does. Neither turns once the agent goes quiet or offline, so a dead session never reads as a slow one.
  • web-console: User Preferences → Cleanup, above Models. Find files to clean up lists, with sizes, what ~/.plan2code does not need: sessions untouched for 30 days (never the one serving the page), anything at the top of ~/.plan2code/console/ but sessions/, looks.json, workspaces.json, console-dir and update-check.json, and anything at the top of ~/.plan2code/ but console/, bin/, launcher.json and models.json. A stray is listed only after an hour untouched (STRAY_GRACE_MS), so a held lock or a temp file mid-rename never is. Delete these removes exactly that list and reports what went and the space freed. The server builds the list (POST /cleanup, cleanupFindings() in lib.mjs), sends no paths to the page, and on delete re-scans and removes only ids still found (removeCleanup()), unlinking symlinks without following them. A console running from PLAN2CODE_CONSOLE_HOME never looks outside that home. Help's User Preferences topic describes it.
  • web-console: the dashboard shows an UPDATE AVAILABLE · v banner when a newer release is out. The console server finds the newest vX.Y.Z tag with git ls-remote --tags when it starts (no shell, prompts off, a 10 s limit, never waited on), caches the answer for an hour in ~/.plan2code/console/update-check.json, and adds update to the state frame only when that release is newer. The banner opens a dialog with both versions, a Releases link and the update command with Copy; × hides it for that session. GET /version also returns latest, and the version in Help links to the Releases page.
  • launcher: plan2code opens with a colored Planny banner and a plain-English intro, then the agent menu with cyan numbers, a (last used) marker on the remembered pick and a green default. With one CLI installed, or a --cli pick, it prints Opening with <CLI>… instead. The model menu, the folder prompt and every plan2code: error get the same styling. Color is used only on a terminal with NO_COLOR unset, so piped runs print plain text and no banner.
  • maintainer: a repo-local /plan2code-model-update skill (.claude/skills/, never installed) refreshes src/launcher/models.json from devin models list and Claude Code's documented model aliases. It shows a diff, applies only the changes the maintainer approves, checks the file against the launcher's rules, runs npm test and never commits.
  • tests: scripts/test-web-console.mjs covers Cleanup, the update check and the note thread; scripts/test-launcher.mjs covers the banner and color handling.

🔧 Changed

  • document: overview.md puts the Phase Checklist and Parallel Execution Groups directly under the Summary, ahead of the Tech Stack, Architecture, Risks and Success Criteria, so the phases are found without scrolling. Every script finds these sections by heading, so specs written in the old order keep working.
  • web-console: while a build runs, the waiting screen's pointer to the tasks list is now clickable. Task and the tab's own name (say Phase 6 tasks) show bold in the highlight color, and either one opens that phase's tasks tab.
  • web-console: the session meter counts a build while it runs instead of only once the phase is approved. console.mjs writes a progress ledger entry whenever an Implement or Implement + Review post raises headline.cleared, and the build's row (Implement + Review: 9 tasks built so far) scores one point per 3 tasks done. The phase's final run takes that row over in place, so nothing counts twice and the meter never drops. A second phase in the same run starts its own count once its headline is back at cleared: 0.
  • web-console: the UPDATE AVAILABLE banner and Send to Plan2Code (while enabled) carry a soft glow in the picked highlight color; with reduced motion Send's pulse stops and the glow stays.
  • web-console: a request body over the size cap now gets 413 too large from every JSON route instead of a connection reset or a 400.

🐛 Fixed

  • web-console: Implement + Review's built-in review no longer scores twice on the session meter. Its review run now scores the phase's 1-point review bonus as the review starts (not a standalone Review's 2), and the phase's final run leaves that point out. A 17-task phase now ends at 7 points, not 9. The breakdown also stops repeating the unit in "Code review run: review".
  • web-console: Send no longer stays disabled when an agent posts a question mid-build while still marked working (seen on Implement + Review, where the question said "I'm carrying on while you decide"). Once an open question has an answer or a note staged, Send unlocks at once with "Still working · it reads this next", instead of waiting out the agent's quietMinutes (up to an hour); the server holds the send until the agent next looks. building.md now says a question stops the build: set waiting in the same post as the question and wait, never keep working with a question open.
  • web-console: Notes on this showed the agent's replies as empty "Plan2Code" bubbles and dropped the person's own notes once they were picked up. The server now writes every note into the item's thread as it arrives, post lifts from / role and md / body / content into { who, text } (and drops an echoed copy of the person's note), and an entry with no text is rejected with exit 3. Older { from, md } entries still render. console.md gains a Replying to a note section.
  • web-console: dropped the comments list on docs, which post appended and time-stamped but nothing ever displayed.
  • web-console: a dashboard launch could strand the hand-off when the agent called a skill-invocation tool on the picked skill instead of reading its SKILL.md (every skill below the dashboard ships disable-model-invocation: true). plan2code.md and console.md now say to open the next skill's file with a file-read tool.
  • web-console: the waiting pane pointed Document and other skills with no task list at a tasks tab that never exists there. The pointer now appears only when a build's phase or a quick task's tasks tab is posted. The nav tab spinner also gets its 7px gap back from the tab's name.
  • web-console: skipping a question dropped a note already typed for it; the note now goes with the skip as skip; <note>. Ticking a checklist step after a skip now ends the skip instead of still sending skip.
  • web-console: reconnecting cleared every banner, including a warning that arrived while offline; it now clears only the Lost contact banner. An open Overview tab now refreshes during a build.
  • web-console: a 409 on Home, Stop or Write the brief now marks the page busy the way Send does, and the brief dialog says why it could not go.
  • web-console: arrowing through a menu question kept dropping keyboard focus to the page body; menu radios now carry stable ids, a value and an aria-label. @ mentions typed with a capital letter now match, and the attachment-limit banner uses MAX_ATTACHMENTS / CHAT_MAX_ATTACHMENTS instead of a hard-coded 5.

📚 Documentation

  • web console guide: new When an update is out section, Cleanup under the session cleanup notes, and a pointer to /plan2code-model-update for the curated model list.

v2.2.0

Choose a tag to compare

@jparkerweb jparkerweb released this 20 Aug 20:48

What's New 🎉

v2.2.0

✨ Added

  • Committed Agent Skills build — each workflow under src/ now builds to skills/<skill-name>/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.0

Choose a tag to compare

@jparkerweb jparkerweb released this 09 Aug 02:34

What's New 🎉

v2.1.0

✨ Added

  • GitHub Issues backend for Pathfinder — /plan2code-0-pathfinder no longer assumes local files. Chart Step 1 now asks, HITL and never self-picked, where the map should live: local (the default — files under gitignored specs/<idea>/pathfinder/, private and solo) or github (a pathfinder:map issue whose decision questions are its sub-issues, driven by the gh CLI). The pick is recorded as the first ## Ground rules bullet, never re-asked and never switched mid-map, and Auto-Discovery resolves either backend — an issue URL or number as the argument routes straight to github.

    On github, the local model maps onto the tracker's own primitives rather than being simulated in issue bodies: a question is a sub-issue (sub_issues endpoint), blocking is GitHub's native issue dependencies (dependencies/blocked_by, so the frontier renders in GitHub's UI without opening the map), the claim is the assignee, Type: becomes a single pathfinder:<type>-<mode> label so type and mode cannot drift, Locked: yes becomes pathfinder:locked, and resolution is an ## Answer comment followed by a close — completed for a decision, not planned for a question ruled out of scope. Both wiring calls key on the issue's database id, not its #number. The map body therefore carries no question checklist at all: the frontier is a live query, which removes the single largest source of drift in the local backend.

    Three things stay on local disk whatever the backend: runnable sketches (specs/<idea>/pathfinder/sketch-NN/), anything secret, and the PLAN-DRAFT-<date>.md — /plan2code-1-plan discovers its input with ls specs/ and has no notion of a tracker, so a draft that existed only as an issue would be invisible to the rest of the pipeline.

    Guardrails carried over from the local backend's assumptions: github is only offered after a five-check preflight (gh present, authenticated, GitHub remote, issues enabled, push access), and the offer must name the repo's visibility in the same breath, because a map on a public tracker publishes the destination, the rejected alternatives, and the codebase recon. The Step 3 recon is held in-session and published at Step 6, so the Step 4 no-fog off-ramp leaves no litter on a shared tracker. A gh failure mid-session stops the session rather than falling back to local files, which would fork the map.

    Depth lives in a seventh reference file, src/plan2code-0-pathfinder-references/github-issues.md — preflight, label set, the local↔GitHub equivalence table, create-then-wire charting, the frontier query, resolve and out-of-scope flows, reconcile, the trail footer, handoff, and a failure-mode table. Adapted from the GitHub tracker doc behind Matt Pocock's wayfinder skill (MIT).

🔧 Changed

  • src/plan2code-0-pathfinder.md recompressed to absorb the new ## Backend section within the 11,000-character workflow-file limit — duplication between the orchestrator and its reference files was removed (the local layout and marker legend now live only in questions.md; Form A/B footer detail only in trail.md), and step text tightened. No behaviour was dropped.

v2.0.0

Choose a tag to compare

@jparkerweb jparkerweb released this 08 Aug 19:44

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/*.toml surface is removed, along with the build-time machinery it required: generateTomlContent(), writeTomlToDestination(), inlineReferenceContent(), and the dest.type === 'toml' branch in syncPrompts(). Every remaining target resolves Read references/*.md directives at runtime, so reference content no longer needs inlining at build time.

    Uninstall still cleans up Gemini files. The .gemini/commands entry is deliberately retained in the uninstall target list (labelled Gemini CLI (legacy — uninstall only)) behind a new uninstallOnly flag, so .toml files written by v1.x installs can still be removed. Do not add it back to LOCAL_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-pathfinder command, 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's wayfinder skill (MIT), reworked for Plan2Code's local specs/ workflow.

    Pathfinder names a destination, then charts the way to it as a map of decision questions under specs/<idea>/pathfinder/ — map.md as the index plus one questions/NN-<slug>.md file 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 writes specs/<idea>/PLAN-DRAFT-<date>.md carrying the status string /plan2code-1-plan already 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), and legwork.

    Map state uses the house checkbox vocabulary — [ ] open (the frontier), [/] claimed, [x] resolved, [!] blocked, [-] out of scope. questions/ is ground truth and map.md is 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 from START to 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-finalize gains STEP 6.5: after archival, assembles a METRICS_JSON payload from the completed run and submits it as a community-feedback-labeled GitHub issue on jparkerweb/plan2code, with a tiered fallback (gh CLI issue create → browser-opened prefilled issue → printed URL) for environments without gh. Payload schema and submission tiers live in the new plan2code-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 via gh, validates and parses each METRICS_JSON payload (type-only validation; malformed submissions are skipped and logged, not fixed up), imports them into the local run store deduped by run_id, re-aggregates, and closes each imported issue. Matches an open issue by the community-feedback label OR the [Feedback] title prefix OR the METRICS_JSON marker, 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_version rather than by a prompt-file fingerprint, since community submissions carry the installed, platform-transformed prompts and an LLM-generated payload. Runs now carry a source (local/community) tag, and current_cohort_key prefers 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) and plan2code-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-finalize archives pathfinder/ with the spec — STEP 6 now names pathfinder/ in the move list and no longer describes the cleanup target as "research or scratch files," wording that pointed an agent straight at pathfinder/questions/. The map is the rationale record behind the plan, in the same class as PLAN-CONVERSATION-*.md.
  • /plan2code-1b-revise-plan no longer deletes pathfinder/ — its Step 6 cleanup had the same "research or scratch files" wording.
  • /plan2code-quick-task is no longer labelled "Step 0" — pathfinder now owns step 0, and quick-task was never a pipeline step. It registers as a utility (like init, review, and handoff), so its generated description reads Plan2Code Quick Task: Quick Task Mode. Filename, skill name, and command path are unchanged.
  • /plan2code-handoff asks 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 inside specs/<feature>/, the handoff cites the in-progress phase-X.md and its actual checkbox state rather than relying on conversation memory.
  • /plan2code-init-update Step 7 offloaded to a reference file — the AI Agent File Sync detail moves to plan2code-init-update-references/ai-agent-file-sync.md with an inline fallback. The CLAUDE.md MANDATORY-FIRST-STEP template is unchanged.
  • /plan2code-review Session End offloaded to a reference file — next-step routing moves to plan2code-review-references/session-end.md with an inline fallback.
  • Status line: context-bar token count suppressed on token-usage accounts — the bar's (84k) reads the same context_window.total_input_tokens the in/out usage 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. The items.contextTokens flag still turns it off entirely.
  • aggregator.ts refactor — extracted writeRunFile() (dedup-by-run_id write) out of importRun() so the community ingestion path can reuse it without a source file path; collector.ts now exports extractMetricsJson() for the same reason.
  • .agents-docs/AGENTS-code-style.md documents a metrics gotcha: when a PLAN-DRAFT-*.md carries no METRICS_JSON comment, collector.ts scrapes 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.md documents the column-0 requirement for Read references/*.md directives — install.js anchors its flat-file path-rewrite regex at ^, so an indented Read line is silently skipped.

🐛 Fixed

  • Broken review-command row and column alignment in QUICK-REFERENCE.md.
  • plan2code-loop banner misspelled the mascot as "Plany".

v1.16.1

Choose a tag to compare

@jparkerweb jparkerweb released this 01 Aug 05:30
3b18b42

What's New 🎉

v1.16.1

✨ Added

  • Status line: git worktree awareness — a session running in a linked git worktree now renders the project segment as repo ⑂ worktree (e.g. plan2code ⑂ spike) instead of only the worktree's directory name, which previously made the session look like an unrelated project
    • Repo identity resolved from git rev-parse --git-common-dir, so it is correct regardless of how the worktree directory was named (bare <name>.git main repos included)
    • A leading repo prefix is stripped from the worktree name (plan2code-user-auth → user-auth), and the name collapses to a bare ⑂ when it merely restates the branch already on screen — matched across / _ . - separators and type prefixes like feature/, and only when the branch is actually displayed
    • Toggleable via the new items.worktree config flag (default on); one extra timeout-bounded git call, skipped outside git repos

v1.16.0

Choose a tag to compare

@jparkerweb jparkerweb released this 21 Jul 05:41
aedfe94

What's New 🎉

v1.16.0

✨ Added

  • /plan2code-handoff skill — compacts the current conversation into a self-contained handoff document (written to gitignored ./handoffs/<timestamp>-handoff.md) so a fresh session or another agent can resume the work
    • Always captures a confirmed Next task: infers a candidate from context and requires the user to confirm or fill it in before the file is written
    • References plan specs, logs, and files by path rather than copying them; strips secrets; suggests follow-on skills and verification steps
    • Repo-safe: checks git check-ignore and warns (without silently editing .gitignore) when handoffs/ isn't ignored in an arbitrary repo
  • Repo-local release publisher skill — new /plan2code-publish maintainer skill in .claude/skills/ cuts a GitHub Release from the top CHANGELOG.md entry once CHANGELOG.md, version.json, and package.json agree and the version is ahead of the latest published release. Dev tooling only — deliberately excluded from install.js, never installed to ~/.claude/skills/.

🐛 Fixed

  • Review workflow next-step suggestion made context-aware — /plan2code-review Session End now reconciles three signals: session context (what preceded the review in the conversation), the user's review intent, and on-disk spec state gathered shell-agnostically — a file-search tool's empty result is never treated as proof that no specs exist. Suggestions render only at actual session end, cite their evidence and its source, and conflicting signals ask one targeted question instead of guessing.

v1.15.4

Choose a tag to compare

@jparkerweb jparkerweb released this 20 Jul 04:25

What's New 🎉

v1.15.4

✨ Added

  • Status line: reasoning effort + context token count — model segment now appends the current reasoning effort level (e.g. Sonnet 5 | High, hidden when the model doesn't support an effort parameter); context bar now shows raw input tokens used alongside the percentage (e.g. 42% (84k)), independently toggleable via new items.effort / items.contextTokens config flags

v1.8.1

Choose a tag to compare

@jparkerweb jparkerweb released this 23 Feb 17:02

What's New 🎉

v1.8.1

✨ Added

  • User feedback collection — Optional 1-10 rating with reason, what went well, and what went poorly
    • Finalize prompt (Step 5) asks for optional feedback before archival, writes structured table to overview.md
    • Collector parses ## User Feedback table from overview.md into RunMetrics.user_feedback
    • Aggregator computes avg_user_rating and feedback_count per cohort
    • CLI offers interactive feedback collection if none found during metrics collection
    • Analysis and improvement prompts reference avg_user_rating metric target (≥ 7.0)
    • UserFeedback type exported from public API
  • Pipe-safe feedback parsing — User text containing | characters is escaped on write and correctly unescaped on parse using negative lookbehind regex

🐛 Fixed

  • Duplicate run files — Interactive feedback no longer creates a second run JSON; the original is deleted before re-collecting
  • Finalize step ordering — Feedback collection moved to Step 5 (before archival at Step 6), ensuring overview.md is written while still in the active spec directory

v1.8.0

✨ Added

  • plan2code-metrics — New recursive self-improvement toolchain for plan2code contributors (plan2code-metrics/)
    • Fully interactive menu-driven CLI — no flags, all inputs collected via prompts
    • Collect metrics from completed project specs (plan, document, implement, finalize steps)
    • Import run data from other projects for cross-project aggregation
    • View metrics status with health indicators and generation-over-generation deltas
    • Analyze weak steps via AI-powered diagnosis (Claude Code or GitHub Copilot CLI)
    • Generate surgical improvement proposals with automatic validation (char count limits, edit verification)
    • Review and apply proposals with interactive diff review
    • Cohort-based aggregation groups runs by prompt generation (SHA fingerprint of prompt files)
    • Supports both Claude Code and GitHub Copilot CLI as AI backends
    • Standalone TypeScript package with tsup build (ESM), installed via npm link

🔧 Changed

  • plan2code-4--finalize.md — Added "Metrics Capture (Contributors)" note in Step 6 directing contributors to run plan2code-metrics after finalization
  • plan2code-loop index.ts — Added dim hint "run plan2code-metrics" after session summary