Skip to content

Add --issues mode: track the plan as GitHub/GitLab issues instead of PLAN.md#57

Merged
atomantic merged 1 commit into
mainfrom
feat/replan-issue-mode
Jun 3, 2026
Merged

Add --issues mode: track the plan as GitHub/GitLab issues instead of PLAN.md#57
atomantic merged 1 commit into
mainfrom
feat/replan-issue-mode

Conversation

@atomantic
Copy link
Copy Markdown
Owner

Summary

Adds an opt-in --issues flag that lets a repo track its plan in the GitHub/GitLab issue tracker instead of PLAN.md. The default PLAN.md behavior is unchanged.

  • /do:replan --issues runs the full audit/triage/prune lifecycle against labeled issues (default label plan, override with --issues-label <name>): closes done/stale issues with an evidence comment, files issues for opportunities it surfaces, and comments + drift-labels any item that would now remove a newer feature (never auto-closing a drift).
  • It always reads PLAN.md when present, migrates every open item out to the tracker, and empties PLAN.md to a note pointing at the Issues page — so PLAN.md stops churning and causing merge conflicts while work happens on issues. The issue number is the stable ID (cos/<task>/issue-<n>/<agent> branches); kebab-slugs don't apply in issue mode.
  • Actionable-issues invariant: before migrating an item, replan surfaces any open question/decision and prompts the human to resolve it (folding the answer into the issue body), so every filed issue is immediately claimable. A deferred decision is the only thing that may remain in PLAN.md.
  • Consistent across the toolchain: a shared lib/plan-issue-mode.md partial extends the flag to every command that records plan items — /do:better, /do:better-swift, and /do:depfree file deferred findings as labeled issues instead of writing a ## … Audit section to PLAN.md; /do:review and /do:rpr file a deferred finding as an issue instead of a PLAN.md line.
  • Reuses the existing gh/glab VCS-host detection; aborts if neither CLI is authenticated rather than silently writing PLAN.md.

Test plan

  • npm test — all 128 tests pass (includes the install.sh/uninstall.sh LIBS allowlist snapshot, updated for the new lib/plan-issue-mode.md).
  • Verified the new partial inlines for Codex/Antigravity and path-rewrites for Claude via transformCommand.
  • Local review gate: fixed glab label create to pass the required --color (the || true would otherwise have silently skipped label creation on GitLab).
  • Manual e2e (issue mode) is documented in commands/do/replan.md: with gh authenticated, create a plan-labeled issue, run /do:replan --issues, and confirm close/create/comment + PLAN.md emptied to the tracker note.

…PLAN.md

/do:replan --issues runs the full audit/triage/prune lifecycle against
labeled issues. It always reads PLAN.md when present, migrates every open
item out to the tracker (resolving open questions first so each filed issue
is actionable), and empties PLAN.md to a note pointing at the Issues page —
so PLAN.md stops churning and causing merge conflicts while work happens on
issues. The issue number is the stable ID (cos/<task>/issue-<n>/<agent>).

A shared lib/plan-issue-mode.md partial extends the flag to every command
that records plan items: do:better, do:better-swift, and do:depfree file
deferred findings as labeled issues instead of a PLAN.md audit section, and
do:review/do:rpr file deferred findings as issues — so a repo can adopt
issue-tracking consistently. Registers the new lib in the install/uninstall
allowlists.
@atomantic atomantic merged commit 3762a63 into main Jun 3, 2026
4 checks passed
@atomantic atomantic deleted the feat/replan-issue-mode branch June 3, 2026 00:11
@atomantic atomantic mentioned this pull request Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant