@mutmutco/claude-plugin 4.0.16 → 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.
package/package.json
CHANGED
|
@@ -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.
|
package/skills/onboard/SKILL.md
CHANGED
|
@@ -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
|
-
|
|
70
|
-
`
|
|
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
|
|
package/skills/rcand/SKILL.md
CHANGED
|
@@ -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.
|
|
61
|
-
|
|
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
|
package/skills/release/SKILL.md
CHANGED
|
@@ -38,6 +38,9 @@ nothing deploys before the protected `main` push accepts that checked SHA.
|
|
|
38
38
|
branch's lineage and every tag-anchored check (coverage trailers, misalignment guard, version probes)
|
|
39
39
|
re-flags or mis-reads forever after. Any merge that carries an already-tagged commit — the Step 5
|
|
40
40
|
`main → development` roll-forward, any alignment PR — lands as a **true merge** (`--merge`), never squash.
|
|
41
|
+
`--wait` does not relax this: use `mmi-cli devops pr merge <n> --wait --merge` (or the policy-gated
|
|
42
|
+
`--auto --merge`). `--wait` alone still defaults the CLI merge method to squash and must not land an
|
|
43
|
+
alignment / tagged-commit-carrying PR.
|
|
41
44
|
- **A refused train is a stop, never a license to finish by hand.** Every fail-closed halt below — authority
|
|
42
45
|
probe, coverage guard, untolerated conflict, required checks, stray tag — ends the run. The recovery is
|
|
43
46
|
always to fix the cause and re-run the train; it is never hand-resolving on `main`, bare-pushing a train
|
|
@@ -109,7 +112,10 @@ The clean-tree check rejects UNTRACKED scratch too, not just modified tracked fi
|
|
|
109
112
|
`--resume` stops with `working tree must be clean before …`, run `git status --porcelain` on the paths it
|
|
110
113
|
named and read BOTH status columns before touching anything (#1472, #4004):
|
|
111
114
|
|
|
112
|
-
- `??` — untracked scratch.
|
|
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.
|
|
113
119
|
- exactly ` M` (blank staged column) — the only state that can be churn rather than work. Test it with
|
|
114
120
|
`git diff HEAD --numstat -- <paths>`: non-empty is a real edit to commit or stash; empty means the
|
|
115
121
|
worktree normalizes straight back to HEAD (an LF↔CRLF rewrite, say), and `git checkout -- <paths>`
|
|
@@ -294,7 +300,8 @@ why (a hotfix freezes a snapshot that `development` can keep rewriting).
|
|
|
294
300
|
Alignment PRs are the exception to the org's squash default: land them with a true merge —
|
|
295
301
|
`mmi-cli devops pr merge <n> --auto --merge` (not squash; a squash discards the merge parentage, so the
|
|
296
302
|
misalignment guard re-flags the same divergence on the next run). `--auto` clears the checks the PR
|
|
297
|
-
triggers, which block an immediate merge right after a release.
|
|
303
|
+
triggers, which block an immediate merge right after a release. When awaiting checks inline, keep
|
|
304
|
+
`--merge`: `mmi-cli devops pr merge <n> --wait --merge` — `--wait` alone is not enough (merge floor above).
|
|
298
305
|
|
|
299
306
|
**Exception — version-manifest and `.gitignore` paths.** `mmi-cli devops release --apply` tolerates
|
|
300
307
|
conflicts confined to the version-fold paths (Step 1b) and `.gitignore` (#1037 — a
|
|
@@ -506,6 +513,12 @@ correct). Read the model from the registry (`mmi-cli oracle org project get {own
|
|
|
506
513
|
- **repository-owned serverless / registry-publish** (e.g. Jerv-PowerTools' `Deploy Jerv Memory`) — there is
|
|
507
514
|
no `runtime tenant redeploy` for these; re-run the repo's OWN declared `workflow_dispatch` deploy workflow at
|
|
508
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.
|
|
509
522
|
|
|
510
523
|
Name the sanctioned dispatch mechanism you used in the train report.
|
|
511
524
|
|
|
@@ -529,7 +542,8 @@ mmi-cli oracle org project sync-info --apply # omit --apply for the read-only
|
|
|
529
542
|
PR with a true merge** — `mmi-cli devops pr merge <number> --auto --merge` (never squash — a squash drops the merge
|
|
530
543
|
parentage and the misalignment guard re-flags the divergence). `--auto` is what makes it land right after a
|
|
531
544
|
release: the alignment PR's own `cli`/`infra`/`docs` checks are still running, so a plain immediate merge is
|
|
532
|
-
policy-blocked — `--auto` merges once they pass.
|
|
545
|
+
policy-blocked — `--auto` merges once they pass. If you await with `--wait` instead, still pass `--merge`
|
|
546
|
+
(`mmi-cli devops pr merge <number> --wait --merge`); `--wait` alone must not land the alignment PR. Never force.
|
|
533
547
|
- Full-track repos: `mmi-cli devops release --apply` already aligned `rc` to the released `main` (#1036 — the
|
|
534
548
|
push runs inside the authority-gated train; the result reports it as `rcAlignment`). No manual `rc`
|
|
535
549
|
push — if the result reports a failed alignment, investigate and rerun via the train, never bare-push.
|