Skip to content

fix(kaizen): apply the core/ops split review fixes (Kaizen 4.1.1, kaizen-ops 1.0.1) - #40

Merged
Lingelo merged 4 commits into
mainfrom
ccr-8ab01603-apdrcp
Oct 20, 2026
Merged

Lingelo merged 4 commits into
mainfrom
ccr-8ab01603-apdrcp

Conversation

@Lingelo

@Lingelo Lingelo commented Oct 20, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes from the Kaizen review of the core/ops split (PRs #36–#38), one commit per group:

Also carries ef26339 (learning: one plugin running another plugin's CLI).

Finding #4 (one core lookup shared by the git hooks and the resolver) is a design choice, proposed separately.

Test plan

  • node --test plugins/kaizen/tests/*.test.mjs plugins/kaizen-ops/tests/*.test.mjs → 201 pass, 0 fail
  • Injected a skill line /kaizen:deploy next to its replacement and a script line naming /kaizen:postmortem: both turned the contracts red (reverted)
  • kaizen plan check on the split plan ✔
  • CI: 6 jobs (Ubuntu/macOS/Windows × Node 18/22)

Generated by Claude Code

…d too

Review findings #1 and #9 (core/ops split review). The relaxed contract
accepted a moved command name on any line that also named its kaizen-ops
replacement, so a skill could again send Claude to /kaizen:deploy with CI
green. Both plugins now accept a former name only as `/kaizen:x →
/kaizen-ops:x`, never in skills or agents; a changelog is exempt only for
the three moved names. A new contract greps scripts, hooks and evals for
the old names (status next steps, hook messages, eval prompts). The
troubleshooting row is rewritten as a migration note. Proven by injecting
both failures by hand: each turns the contracts red.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
…dit agrees with doctor

Review findings #2, #6 and #10. opsNeeded(root, config) now also counts a
production history — postmortems in docs/postmortems/, deploy/, rollback/,
incident/ or resolve/ tags — so a team that only used /kaizen:postmortem
and upgrades 3.10 → 4.1 (stubs gone) is told to enable kaizen-ops; the
warning names the reason. audit's claude_settings is no longer "ok" when
kaizen-ops@dojo is needed but not declared for every clone, and
`audit fix claude_settings` follows the same rule. Stale guide path in an
audit.mjs comment reworded. Tests: postmortems-only and tags-only repos,
audit without kaizen-ops.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
…rsion when incompatible

Review findings #3, #7, #8, #11 and #12. A core killed by a signal now
exits 128+signal with an explicit message instead of 1, which core uses
for a monitor verdict (breach or blind). A missing or unreadable
requires.json refuses every call instead of accepting any core.
`--version` answers before the version gate, flagged INCOMPATIBLE (exit 1)
— the command one runs to diagnose a mismatch; `core-root` stays gated.
Tests read the plugin and required versions instead of hard-coding them,
cover the three new behaviours (signal test skipped on Windows), and the
contract uses compareSemver.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
…izen-ops 1.0.1

The core contract forbids core scripts and hooks from loading or resolving a
path into kaizen-ops; naming its plugin id or /kaizen-ops: commands is fine.
Versions, changelogs, kaizen-ops README and CLAUDE.md updated for the review
fixes; plan DoD notes the review done and #4 pending.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
@Lingelo
Lingelo merged commit e89534d into main Oct 20, 2026
6 checks passed
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.

2 participants