Skip to content

feat: add /plannotator-archive slash command#388

Merged
backnotprop merged 2 commits intomainfrom
feat/archive-command
Mar 24, 2026
Merged

feat: add /plannotator-archive slash command#388
backnotprop merged 2 commits intomainfrom
feat/archive-command

Conversation

@backnotprop
Copy link
Owner

Summary

  • Adds /plannotator-archive slash command to Claude Code and OpenCode plugins for browsing saved plan decisions
  • Previously only available via CLI (plannotator archive) and Pi — this brings parity across all runtimes
  • Archive is read-only: opens the browser, user browses plans, closes when done — no feedback sent to agent

Changes

  • apps/hook/commands/plannotator-archive.md — Claude Code slash command (invokes plannotator archive subcommand)
  • apps/opencode-plugin/commands/plannotator-archive.md — OpenCode slash command definition
  • apps/opencode-plugin/commands.tshandleArchiveCommand() using startPlannotatorServer in archive mode with waitForDone()
  • apps/opencode-plugin/index.ts — event dispatch for plannotator-archive

No server changes needed — both the shared Bun server and Pi Node.js server already have full archive endpoint parity.

Relates to #362 — users can now ad hoc browse old plans from within any session via /plannotator-archive

Test plan

  • bun run build:hook && bun run build:opencode
  • Claude Code: claude --plugin-dir ./apps/hook/plannotator-archive → archive viewer opens, Done closes it
  • OpenCode: /plannotator-archive → same behavior

…Code

The archive browser was only accessible via CLI (plannotator archive) and
Pi (/plannotator-archive). This adds slash command parity so users can
browse saved plan decisions from within Claude Code and OpenCode sessions.

Relates to #362

For provenance purposes, this commit was AI assisted.
@backnotprop
Copy link
Owner Author

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

The server pre-loads plans from ~/.plannotator/plans/ (default) because
no runtime passes customPlanPath. For users with a custom save directory,
the plan list was wrong and clicking any plan 404'd. Calling fetchPlans()
after init() re-fetches with the user's cookie-based custom path setting.

For provenance purposes, this commit was AI assisted.
@backnotprop backnotprop merged commit 5e36960 into main Mar 24, 2026
5 checks passed
@backnotprop backnotprop deleted the feat/archive-command branch March 24, 2026 22:00
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