feat(plugins): add bm-decide and bm-orient skills to Claude Code plugin - #1126
Conversation
Close the remaining skill-parity gap with the Codex plugin (#1125): - skills/bm-decide — deliberate decision capture with rationale, alternatives, consequences, and affected work, written to the bm-writing standard. Works whether or not the output style's inline capture reflex is enabled; bm-remember and the output style now point to it. - skills/bm-orient — deliberate mid-session orientation: active tasks, open decisions, and recent checkpoints, presented as an evidence-backed summary with permalinks. Coding-session recall stays repository-scoped; an unscoped coding-session query is forbidden, matching the Codex contract. validate_claude_plugin.py requires both skills and pins their contracts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A2bgrGfWiL4izcjj66u9R8 Signed-off-by: phernandez <paul@basicmachines.co>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 212b3b3aec
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @@ -0,0 +1,44 @@ | |||
| --- | |||
| name: bm-decide | |||
| description: Capture a durable engineering decision in Basic Memory with rationale, alternatives, consequences, and affected work. Use when the user makes or asks to record a real choice — "let's go with X", "record this decision", or runs /basic-memory:bm-decide. | |||
There was a problem hiding this comment.
Restrict bm-decide to explicit decision-capture requests
When the Basic Memory output style is enabled, a user saying a normal decision phrase like “let’s go with X” already triggers the output style’s inline decision capture, while the newly added output-style guidance only delegates to this skill when the user explicitly asks to record a decision. This broad skill description tells Claude Code to invoke bm-decide for the same ordinary decision phrases, so those projects can end up with duplicate decision notes for one choice; narrow the trigger to explicit record/invoke requests or otherwise make it mutually exclusive with the output-style reflex.
Useful? React with 👍 / 👎.
Why
#1124/#1125 brought the Claude Code plugin up to the Codex plugin's coding-session design (shared
bm-writingstandard,bm-checkpoint,coding_sessionschema,sessionProfile/repositoryconfig, core hook support). Two deliberate gestures remained Codex-only: decision capture and mid-session orientation. This closes that gap so the two plugins have skill parity.What Changed
skills/bm-decide/— deliberate decision capture: rationale, alternatives, consequences, affected work, as atype: decisionnote written to thebm-writingstandard. The deliberate version of the output style's inline reflex — works even when that style is off (previously the only path).bm-rememberand the output style now point to it.skills/bm-orient/— deliberate mid-session orientation: active tasks, open decisions, recentsessioncheckpoints, pluscoding_sessionrecall for coding profiles — always scoped to the configuredrepository; an unscoped coding-session query is forbidden, matching the Codex contract. Presents an evidence-backed summary with permalinks. The mid-session counterpart to the SessionStart brief.scripts/validate_claude_plugin.py— requires both skills and pins their contracts (Apply the \bm-writing` skill` for bm-decide; the scoped-query rules for bm-orient), mirroring the Codex validator.Verification
python3 scripts/validate_claude_plugin.py✓ (now requires 8 skills)python3 scripts/validate_codex_plugin.py✓claude plugin validate plugins/claude-code --strict✓uv run pytest tests/test_codex_plugin_package.py tests/cli/test_coding_session_context.py— 23 passed🤖 Generated with Claude Code
https://claude.ai/code/session_01A2bgrGfWiL4izcjj66u9R8