Skip to content

feat(kaizen)!: move the production commands to kaizen-ops — Kaizen 4.0.0, kaizen-ops 1.0.0 (S2) - #37

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

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

Conversation

@Lingelo

@Lingelo Lingelo commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

Slice S2 of docs/plans/2026-10-20-1515-refactor-kaizen-core-ops-split-plan.md: the switch, in one merge so the commands are never in neither plugin. Breaking (Kaizen 4.0.0): /kaizen:deploy, /kaizen:monitor, /kaizen:postmortem become /kaizen-ops:deploy, /kaizen-ops:monitor, /kaizen-ops:postmortem. Teams that deploy with Kaizen enable kaizen-ops@dojo next to kaizen@dojo; everyone else gets 3 fewer commands and ~1,900 fewer characters of skill descriptions per session.

What does not move: the CLI (deploy, monitor, metrics…), the configuration, deployment tags, DORA metrics, and every gate — typed approval for protected environments, refusal of raw deploy commands and forged tags. A new core contract test forbids any core script or hook from referring to kaizen-ops, so no protection depends on the second plugin.

Reviewer guide — read commit by commit

The diff is above the 400-line PR limit as a whole (moves + 66 renamed mentions + stubs); the plan keeps S2 as one merge (rollout order) and splits it into five reviewable commits:

  1. 1861fcf U3 — move (137 lines): git mv of the three skills, their guides and the postmortem template (detected as renames, 74–100 % similar). In the skills, K is the kaizen-ops resolver and core's conventions/configuration are read through $(node "$K" core-root); guide links to core pages point to ../../../kaizen/docs/. Intermediate commit (core still names the old commands until U5).
  2. 4e481b0 U4 — stubs (83 lines): /kaizen:deploy|monitor|postmortem answer "moved to /kaizen-ops:<name>" + the settings line, allowed-tools: Read, run nothing; short guides keep core's one-guide-per-skill contract; removed in 4.1.0 (S3).
  3. 3ba3fe9 U6 — migration warning (74 lines): doctor → ops_plugin warns when a repo declares deploy environments or monitor signals and kaizen-ops@dojo is not enabled (project, local or user settings); audit fix claude_settings enables it, also on top of an existing kaizen@dojo.
  4. db46ad9 U5 — names (260 lines, mostly one-word substitutions): status next steps, protected-deploy hook message, skills, references, docs, eval prompts; links to the old guides now target kaizen-ops'; README "Deploy and monitor" table → pointer; help/setup/conventions relay ops_plugin; troubleshooting row; diagrams regenerated (the help-routing one also follows 3.10's order); evals pass --plugin-dir twice (repeatable per claude --help); the "core never refers to kaizen-ops" contract.
  5. d6178fe U7 — release (87 lines): marketplace.json registers kaizen-ops; Kaizen 4.0.0, kaizen-ops 1.0.0 (requires ≥ 4.0.0, checked by its contract against the shipped core); CHANGELOGs (Breaking / Deprecated); root README (table, install, team settings); CLAUDE.md; plan updated.

Test plan

  • node --test plugins/kaizen/tests/*.test.mjs plugins/kaizen-ops/tests/*.test.mjs — 194/194 (both plugins' contracts incl. moved skills' core-root paths and cross-plugin links; doctor ops_plugin warn/ok/absent; claude_settings adds kaizen-ops; existing core tests for protected deploy refusal, forged tags and DORA from tags, all run with core alone).
  • Syntax check of both plugins' scripts as in CI; CI green on the 6-job matrix.
  • Smoke test in a fresh repo through the resolver: kaizen-ops/scripts/kaizen.mjs --version → kaizen-ops 1.0.0 (Kaizen 4.0.0, sibling checkout); deploy list forwarded with its exit code; core-root files exist; doctor reports ops_plugin on a repo with a deploy environment.
  • Regenerated diagrams rendered and checked: labels fit their boxes.
  • End-to-end evals with both plugins loaded (real claude -p, /kaizen-ops:* prompts): deploy-healthy, deploy-breach, deploy-protected, monitor-blind, postmortem-revert — 5/5 scenarios, 16/16 checks (deployed and tagged, breach → rollback + postmortem proposed, nothing deployed without the typed code, blind signal reported without rollback, blameless postmortem with owners).

🤖 Generated with Claude Code

https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf

…en (S2/U3)

git mv of the three skills, their guides and the postmortem template.
In the moved skills, K is the kaizen-ops resolver and core's conventions
and configuration are read through $(node "$K" core-root); in the moved
guides, links to core pages point to ../../../kaizen/docs/. kaizen-ops
README lists the commands, docs/README.md indexes the guides.
Intermediate commit: core still names the old commands until U5.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
…2/U4)

/kaizen:deploy, /kaizen:monitor and /kaizen:postmortem become stubs
(allowed-tools: Read) that only say the command is now /kaizen-ops:<name>
and how to enable kaizen-ops; they run nothing. Short guides keep the
one-guide-per-skill contract until 4.1.0 removes them.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
doctor -> ops_plugin: a repository whose config declares deploy
environments or monitor signals while kaizen-ops@dojo is not enabled
(project, local or user settings) gets a warning with the settings line.
audit fix claude_settings enables kaizen-ops@dojo in that case, also on
top of an existing kaizen@dojo declaration. Tests isolate the user
settings with CLAUDE_CONFIG_DIR.

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

66 mentions in status next steps, the protected-deploy hook message,
skills (help, plan, release, autopilot), references, docs and eval
prompts; core links to the old guides point to kaizen-ops'. The README's
Deploy and monitor table becomes a pointer to kaizen-ops; help, setup and
conventions relay the doctor's ops_plugin warning; troubleshooting covers
"moved" and unknown /kaizen-ops commands. Diagrams regenerated (the help
routing one also follows 3.10's order). Evals load both plugins
(--plugin-dir is repeatable). New contract: no core script or hook may
refer to kaizen-ops, so every gate stays whole without it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
kaizen-ops registered in marketplace.json next to Kaizen; Kaizen 4.0.0
(breaking: three commands left its namespace), kaizen-ops 1.0.0 requiring
it. CHANGELOGs, root README (plugin table, install, team settings),
CLAUDE.md, and the split plan updated (stub descriptions follow core's
skill contract; two-plugin evals resolved). kaizen-ops contract checks it
is registered and that the core version it requires is the one shipped.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_012iZk6aQ3fhJy4jrZhfWtaf
@Lingelo
Lingelo merged commit 05c5cfe 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