@mutmutco/claude-plugin 4.0.17 → 4.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mmi",
3
3
  "displayName": "MMI",
4
- "version": "4.0.17",
4
+ "version": "4.0.18",
5
5
  "mmiCompat": "4.x",
6
6
  "description": "MMI workflow skills and org gates delivery.",
7
7
  "author": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/claude-plugin",
3
- "version": "4.0.17",
3
+ "version": "4.0.18",
4
4
  "description": "MMI workflow skills and org gates delivery.",
5
5
  "author": {
6
6
  "name": "MMI Future",
@@ -59,6 +59,15 @@ jobs:
59
59
  run: { working-directory: {{GATE_WORKDIR}} }
60
60
  steps:
61
61
  - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
62
+ # #5427: per-job npm cache under $RUNNER_TEMP — never the shared ~/.npm. Twelve mmi-live lanes
63
+ # share the gha-runner home; npm hardlinks from that cache into node_modules, so one job's
64
+ # `npm ci` can make another job's vitest/dist/workers/forks.js vanish mid-suite (Cannot find
65
+ # module). Job-local cache ⇒ no cross-job hardlinks. Must land BEFORE setup-node (`cache: npm`
66
+ # follows `npm config get cache`). Job-level `env:` cannot use the `runner` context — write
67
+ # via GITHUB_ENV from the shell `$RUNNER_TEMP` instead.
68
+ - name: Isolate npm cache (per-job)
69
+ shell: bash
70
+ run: echo "NPM_CONFIG_CACHE=$RUNNER_TEMP/npm-cache" >> "$GITHUB_ENV"
62
71
  # MMI-Hub#5111: Windows CRLF in tracked shell scripts breaks Linux runners before the real
63
72
  # check can explain it. Inspect only tracked files before install; .gitattributes is the fix.
64
73
  - name: Line-ending guard
@@ -108,6 +108,11 @@ janitor prose. Catalog: `docs/Architecture/compute-at-read.md` (in MMI-Hub).
108
108
  | Docs index freshness | `mmi-cli oracle docs index --check` |
109
109
  | Path / symbol / meaning pointers | `mmi-cli oracle repo-index search <q>` (Hub cloud; `--semantic` optional) |
110
110
 
111
+ **Code orientation after a handoff (#5420):** a memory handoff orients by story, not by structure. Route
112
+ cross-repo “where does X live / how does Y flow” questions through `mmi-cli oracle find <q>` (semantic) or
113
+ `mmi-cli oracle repo-index search <q>` (hybrid) as the first-class step — before trusting recall or grepping a
114
+ host-native index — and open the cited source to verify a pointer hit before acting on it.
115
+
111
116
  ## Notes
112
117
 
113
118
  - `/mmi-resume` is read-only session orientation. It never claims, moves, or writes.
@@ -66,8 +66,11 @@ mmi-cli oracle repo-index status --cloud # is the estate
66
66
  ```
67
67
 
68
68
  Host indexes (Cursor / Kilo) stay local helpers; **Hub `repo-index` is the org SSOT structure door**.
69
- Living current-state still comes from live verbs (`org schedules`, `board read`, …) see
70
- `docs/Architecture/compute-at-read.md`. Do not invent wiki prose from pointer hits.
69
+ After any memory handoff, cross-repo code-orientation questions go through `mmi-cli oracle find <q>` (semantic)
70
+ or the `repo-index search` door above as the first-class step (#5420), and every pointer hit gets verified
71
+ against the cited source before you act on it. Living current-state still comes from live verbs
72
+ (`org schedules`, `board read`, …) — see `docs/Architecture/compute-at-read.md`. Do not invent wiki prose
73
+ from pointer hits.
71
74
 
72
75
  ## Notes
73
76
 
@@ -57,8 +57,11 @@ primary checkout.
57
57
 
58
58
  Preconditions: on `development`, clean tree. The clean-tree check rejects UNTRACKED scratch too, not just
59
59
  modified tracked files — if `--apply` stops with `working tree must be clean before …`, run `git status
60
- --porcelain` on the paths it named and read both columns. Gitignore the `??` scratch (or move it to a
61
- gitignored path like `tmp/`). Treat every tracked state except exactly ` M` as real work to commit or stash;
60
+ --porcelain` on the paths it named and read both columns. For `?? .jerv/` / `?? .pi/` (org-managed agent
61
+ scratch), run `mmi-cli doctor --apply` to write the managed `.gitignore` block do not hand-edit
62
+ `.gitignore` (#5409). The train CLI already ignores those live-session dirs (#5397); doctor is the durable
63
+ heal so `git status` stays clean. For other `??` scratch, gitignore it (or move it to a gitignored path
64
+ like `tmp/`). Treat every tracked state except exactly ` M` as real work to commit or stash;
62
65
  for ` M`, discard only when `git diff HEAD --numstat -- <paths>` is empty, and only with
63
66
  `git checkout -- <paths>`. Plain `git diff --numstat` prints nothing for a merely staged change, so it
64
67
  cannot tell real work from line-ending churn (#1472, #4004).
@@ -125,7 +128,13 @@ Required status checks are **per-repo branch protection, not a fixed list** —
125
128
  SHA has no check-runs yet, so when checks ARE required, pushing the branch *first* is structurally rejected
126
129
  until CI catches up (it then succeeds on a retry — avoidable noise). Push the **tag first**: it lands the
127
130
  SHA and triggers the repo's CI without touching the protected branch ref. Then probe what `rc` actually
128
- requires and wait only for those contexts:
131
+ requires and wait only for those contexts.
132
+
133
+ **Preflight (#5428):** before the immutable tag, `mmi-cli devops rcand --apply` inspects each required
134
+ context's workflow `on:` triggers. If a required context (e.g. `py-gate` / `web-gate`) is pull_request-only
135
+ and cannot fire on a tag push, the train **refuses before tagging** with a teaching error — never publish a
136
+ candidate tag then wait on an event that cannot fire. Fix the gate to also trigger on `push: tags: ['v*']`
137
+ (see MMI-Hub `gate.yml`), or remove those contexts from the rc ruleset (`ci audit` / reconcile).
129
138
 
130
139
  ```bash
131
140
  git push origin "vX.Y.0-rc.N" # lands the SHA + triggers the repo's CI
@@ -112,7 +112,10 @@ The clean-tree check rejects UNTRACKED scratch too, not just modified tracked fi
112
112
  `--resume` stops with `working tree must be clean before …`, run `git status --porcelain` on the paths it
113
113
  named and read BOTH status columns before touching anything (#1472, #4004):
114
114
 
115
- - `??` — untracked scratch. Gitignore it, or move it to a gitignored path like `tmp/`, then retry.
115
+ - `??` — untracked scratch. For `?? .jerv/` / `?? .pi/` (org-managed agent scratch), run
116
+ `mmi-cli doctor --apply` to write the managed `.gitignore` block — do not hand-edit `.gitignore`
117
+ (#5409). The train CLI already ignores those live-session dirs (#5397); doctor is the durable heal.
118
+ For other `??` paths, gitignore them, or move them to a gitignored path like `tmp/`, then retry.
116
119
  - exactly ` M` (blank staged column) — the only state that can be churn rather than work. Test it with
117
120
  `git diff HEAD --numstat -- <paths>`: non-empty is a real edit to commit or stash; empty means the
118
121
  worktree normalizes straight back to HEAD (an LF↔CRLF rewrite, say), and `git checkout -- <paths>`
@@ -510,6 +513,12 @@ correct). Read the model from the registry (`mmi-cli oracle org project get {own
510
513
  - **repository-owned serverless / registry-publish** (e.g. Jerv-PowerTools' `Deploy Jerv Memory`) — there is
511
514
  no `runtime tenant redeploy` for these; re-run the repo's OWN declared `workflow_dispatch` deploy workflow at
512
515
  the promoted-equivalent ref: `gh workflow run <deploy-workflow> --repo {owner}/{repo} --ref <ref>`.
516
+ - **hub-serverless** (MMI-Hub) — when `deploy.yml` fails the repo-index v4 readiness gate (`stale-commit` /
517
+ not-ready authorities), the promoted ref is fine; repair cloud v4 authorities first (#5405). List failing
518
+ authorities with `mmi-cli oracle repo-index status --cloud`, run
519
+ `mmi-cli oracle repo-index sync-estate --repo <owner/repo>` for each, re-probe with
520
+ `mmi-cli oracle repo-index health --live --queries-only`, then `gh run rerun --failed` on the failed
521
+ deploy run. Do not re-tag.
513
522
 
514
523
  Name the sanctioned dispatch mechanism you used in the train report.
515
524