@mutmutco/claude-plugin 3.136.0 → 3.137.0
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/.claude-plugin/plugin.json +1 -1
- package/README.md +1 -1
- package/package.json +1 -1
- package/skills/bootstrap/seeds/manifest.json +2 -2
- package/skills/bootstrap/seeds/readme-mmi-developer-environment.block.md +5 -0
- package/skills/mmi/SKILL.md +8 -7
- package/skills/mmi-doctor/SKILL.md +15 -16
- package/skills/onboard/SKILL.md +7 -6
- package/skills/release/SKILL.md +9 -10
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
MMI workflow skills and org gates for **Claude Code**.
|
|
4
4
|
|
|
5
|
-
Published from [mutmutco/MMI-Hub](https://github.com/mutmutco/MMI-Hub). Normally installed and kept version-pinned by
|
|
5
|
+
Published from [mutmutco/MMI-Hub](https://github.com/mutmutco/MMI-Hub). Normally installed and kept version-pinned by MMI Hub maintenance (`mmi-hub`); install by hand only as a fallback:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
npm install @mutmutco/claude-plugin
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_comment": "Bootstrap seed manifest (#201) — the machine-readable contract of what /bootstrap and `mmi-cli devops bootstrap --apply` (#202) stamp into a target repo. Consumed by the CLI (loadBootstrapSeeds). ownership: 'org' = org-delivered, OVERWRITTEN on upgrade (the org owns it); 'repo' = created ONCE on a fresh bootstrap, never clobbered on upgrade (the repo owns its content). source: 'self' = copy MMI-Hub's own current file verbatim; 'seed:<file>' = render the named template in this dir with {{PLACEHOLDERS}}; 'managed-block' = merge the org-managed .gitignore block in place
|
|
2
|
+
"_comment": "Bootstrap seed manifest (#201) — the machine-readable contract of what /bootstrap and `mmi-cli devops bootstrap --apply` (#202) stamp into a target repo. Consumed by the CLI (loadBootstrapSeeds). ownership: 'org' = org-delivered, OVERWRITTEN on upgrade (the org owns it); 'repo' = created ONCE on a fresh bootstrap, never clobbered on upgrade (the repo owns its content). source: 'self' = copy MMI-Hub's own current file verbatim; 'seed:<file>' = render the named template in this dir with {{PLACEHOLDERS}}; 'managed-block' = merge the legacy org-managed .gitignore block in place. managedBlock declares a separately sourced, exact-marker-bounded Hub-owned region inside a repo-owned containing file; apply/propagate reconcile only that region and refuse malformed markers. NOTE: this manifest seeds org-managed PRODUCT assets only — it never seeds AGENTS.md / CLAUDE.md / .claude/settings.json (personal agent guides) or a legacy repo-local control-plane marker. classes: which repo classes receive this seed.",
|
|
3
3
|
"placeholders": ["OWNER", "REPO", "REPO_SLUG", "REPO_NAME", "CLASS", "GATE_CMD", "GATE_PUSH_BRANCHES_YAML", "GATE_FULL_RUN_BRANCH", "GATE_RULESET_BRANCH_REFS_JSON", "PROJECT_OWNER", "PROJECT_NUMBER", "PROJECT_ID", "STATUS_FIELD_ID", "STATUS_TODO", "STATUS_IN_PROGRESS", "STATUS_IN_REVIEW", "STATUS_DONE", "STACK", "REGION"],
|
|
4
4
|
"seeds": [
|
|
5
5
|
{ "target": ".github/ISSUE_TEMPLATE/bug.yml", "source": "self", "ownership": "org", "classes": ["deployable", "content"] },
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
{ "target": ".github/workflows/agent-pr.yml", "source": "self", "ownership": "org", "classes": ["deployable"], "waivers": { "jerv-jervcode": "pins this workflow's EXACT step shapes in its own scripts/workflow-boundary-core.mjs — a literal repositories: Jerv-JervCode token scope, and whole-step equality for the surface and verdict legs. #4040 widened the org seed to the same hardened boundary (pull_request_target off the trusted base, an immutable BASE..HEAD compare with a file-count equality wall, a per-repo App token scope, and a certified-head merge), so the two now agree on substance. They cannot agree on bytes: a seed serving 16 repos resolves its token scope and its required contexts at run time, which exact-step equality rejects by construction. The waiver is permanent by design, not a deferral — lifting it would mean weakening the strictest repo to match a fleet file." } },
|
|
12
12
|
{ "target": ".github/rulesets/mmi-product-required-checks.json", "source": "seed:mmi-product-required-checks.template.json", "ownership": "org", "classes": ["deployable"] },
|
|
13
13
|
{ "target": ".gitignore", "source": "managed-block", "ownership": "org", "classes": ["deployable", "content"] },
|
|
14
|
-
{ "target": "README.md", "source": "seed:README.template.md", "ownership": "repo", "classes": ["deployable", "content"] },
|
|
14
|
+
{ "target": "README.md", "source": "seed:README.template.md", "ownership": "repo", "classes": ["deployable", "content"], "managedBlock": { "source": "seed:readme-mmi-developer-environment.block.md", "begin": "<!-- mmi-developer-environment:start -->", "end": "<!-- mmi-developer-environment:end -->" } },
|
|
15
15
|
{ "target": "architecture.md", "source": "seed:architecture.template.md", "ownership": "repo", "classes": ["deployable", "content"] },
|
|
16
16
|
{ "target": "docs/decisions/README.md", "source": "seed:decisions-readme.template.md", "ownership": "repo", "classes": ["deployable", "content"] },
|
|
17
17
|
{ "target": "docs/Guides/google-login.md", "source": "seed:google-login.template.md", "ownership": "repo", "classes": ["deployable"], "projectTypes": ["web-app"] },
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<!-- mmi-developer-environment:start -->
|
|
2
|
+
## MMI developer environment
|
|
3
|
+
|
|
4
|
+
Use the [canonical MMI developer-environment guide](https://github.com/mutmutco/MMI-Hub/blob/main/docs/Architecture/agentic-dev-environment.md) for shared setup and daily agent work.
|
|
5
|
+
<!-- mmi-developer-environment:end -->
|
package/skills/mmi/SKILL.md
CHANGED
|
@@ -69,9 +69,9 @@ What the env half heals:
|
|
|
69
69
|
docs/doctor-contract.md § Guarded cache prune): never the running/newest/installed version, a cache a
|
|
70
70
|
live session holds is named "still held" and never forced.
|
|
71
71
|
|
|
72
|
-
What it does **not** do since #4954:
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
What it does **not** do since #4954: converge CLI or host versions. A behind npm global is REPORTED
|
|
73
|
+
and the `fleet` row reads MMI Hub's last-run journal evidence. `mmi-hub update` is the single safe
|
|
74
|
+
version-convergence writer; plain doctor and `/mmi` never run repository cleanup.
|
|
75
75
|
|
|
76
76
|
- **Fast path** → `whoami` then `board read`; no foreground doctor.
|
|
77
77
|
- **Hard setup signal** → run `doctor --no-repo-writes`, relay `↻` lines, then retry `board read` when appropriate.
|
|
@@ -81,10 +81,11 @@ row names `npm install -g @mutmutco/cli@<released>`) and the `fleet` row reads t
|
|
|
81
81
|
On Codex, install the Hub-shipped plugin: `codex plugin marketplace add mutmutco/MMI-Hub` →
|
|
82
82
|
`codex plugin add mmi@mutmutco`, then trust the bundled hooks via `/hooks`. On Kimi Code CLI:
|
|
83
83
|
`/plugins install https://github.com/mutmutco/MMI-Hub` → `/reload`. On Cursor, run
|
|
84
|
-
`mmi-cli plugin heal`, then reload the Cursor window. On OpenCode and plain shell the
|
|
85
|
-
|
|
84
|
+
`mmi-cli plugin heal`, then reload the Cursor window. On OpenCode and plain shell install the
|
|
85
|
+
maintenance package; it provisions the standalone CLI:
|
|
86
86
|
```powershell
|
|
87
|
-
npm install -g @mutmutco/
|
|
87
|
+
npm install -g @mutmutco/hub
|
|
88
|
+
mmi-hub install
|
|
88
89
|
```
|
|
89
90
|
In PowerShell from an `MMI-Hub` checkout, or when diagnosing a stale plugin cache, use the repo-local fallback:
|
|
90
91
|
```powershell
|
|
@@ -112,7 +113,7 @@ row names `npm install -g @mutmutco/cli@<released>`) and the `fleet` row reads t
|
|
|
112
113
|
gh auth login --hostname github.com --git-protocol https --web --scopes "project"
|
|
113
114
|
```
|
|
114
115
|
The `project` scope is what lets `/mmi` read + move the board, granted here once. When they're back,
|
|
115
|
-
re-run `mmi-cli doctor` to confirm green.
|
|
116
|
+
re-run `mmi-cli doctor --preflight` to confirm green without writes.
|
|
116
117
|
- **Hub registry / board META** — `mmi-cli oracle org project get <owner/repo>` or `mmi-cli oracle board read` reports
|
|
117
118
|
missing project/board coords → a master-admin registers or backfills the repo's `PROJECT#<slug>` META.
|
|
118
119
|
There's no reliable project to read until that is fixed, so stop here.
|
|
@@ -1,28 +1,27 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: mmi-doctor
|
|
3
|
-
description:
|
|
3
|
+
description: Diagnose hygiene and safely heal tooling; repository cleanup is explicit.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
**Host-native invocation:** Claude `/mmi:mmi-doctor` · Codex `$mmi:mmi-doctor` · jervcode/Kimi `/skill:mmi-doctor` · Kilo `skill` tool. A backticked `/name` in this doc names the matching workflow (this skill or a sibling), not a literal command.
|
|
7
7
|
|
|
8
8
|
# /mmi-doctor — one hygiene pass
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
Run the safe default when a session opens messy or before a handoff:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
13
|
mmi-cli doctor
|
|
14
14
|
```
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
A plain run may repair machine-global plugin wiring and guarded caches, but **never mutates the
|
|
17
|
+
repository** (#5023). It reports managed `.gitignore`, docs-index, board mechanics, merged branches,
|
|
18
|
+
dead worktrees, and aged scratch. Run `mmi-cli doctor --apply` only when the operator explicitly wants
|
|
19
|
+
that guarded full repository cleanup. Secrets stay out of doctor; use `mmi-cli vault secrets diff` for
|
|
20
|
+
a catalog gap check.
|
|
21
21
|
|
|
22
|
-
Doctor does **not**
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
the reconciler's journal (installed / expected / drift per surface). Its plugin-heal/update pass
|
|
22
|
+
Doctor does **not** converge CLI or host versions (MMI-Hub#4954). `mmi-hub update` is the single
|
|
23
|
+
writer of those versions; doctor only reports lag and last-run journal evidence. `mmi-hub status`
|
|
24
|
+
reads actual installed locations and versions. Doctor's active-plugin repair pass
|
|
26
25
|
covers every surface from any invocation surface — including Cursor's local-checkout row, not only
|
|
27
26
|
the active surface.
|
|
28
27
|
|
|
@@ -30,11 +29,11 @@ the active surface.
|
|
|
30
29
|
|
|
31
30
|
| Flag | Role |
|
|
32
31
|
|------|------|
|
|
33
|
-
| *(none)* |
|
|
32
|
+
| *(none)* | Safely heal tooling; report repository hygiene without repo writes. |
|
|
34
33
|
| `--verbose` | Full checklist + per-row evidence. |
|
|
35
|
-
| `--no-repo-writes` |
|
|
34
|
+
| `--no-repo-writes` | Compatibility spelling for the safe default. |
|
|
36
35
|
| `--self` / `--fast` / `--banner` / `--preflight` | Cheap / read-oriented lanes (see `docs/doctor-contract.md`). |
|
|
37
|
-
| `--apply` |
|
|
36
|
+
| `--apply` | Explicit advanced lane: also apply guarded repository cleanup. |
|
|
38
37
|
|
|
39
38
|
## Do not run the old multi-step ritual
|
|
40
39
|
|
|
@@ -47,8 +46,8 @@ mmi-cli vault secrets diff
|
|
|
47
46
|
mmi-cli worktree gc
|
|
48
47
|
```
|
|
49
48
|
|
|
50
|
-
Plain `mmi-cli doctor`
|
|
51
|
-
|
|
49
|
+
Plain `mmi-cli doctor` covers safe tooling repair and diagnosis. Explicit `doctor --apply` covers the
|
|
50
|
+
full guarded repository cleanup; reach for individual verbs only when you want one surface alone.
|
|
52
51
|
|
|
53
52
|
## Notes
|
|
54
53
|
|
package/skills/onboard/SKILL.md
CHANGED
|
@@ -24,18 +24,19 @@ first gap:
|
|
|
24
24
|
- **Board** — is the Project board reachable, and how many items are on it.
|
|
25
25
|
- **Registry** — is the repo registered in the Hub (`PROJECT#<slug>` META).
|
|
26
26
|
- **Secrets** — is a GitHub token available for the vault path.
|
|
27
|
-
- **
|
|
28
|
-
|
|
27
|
+
- **MMI Hub** — does `mmi-hub status` find the installed CLI and every present host surface at the
|
|
28
|
+
gated fleet version, with hourly automatic updates healthy.
|
|
29
29
|
|
|
30
30
|
The **Plugin** row is per machine, not per repo. The Hub's thin Claude/Codex catalogs pin exact npm
|
|
31
31
|
packages; Git no longer transports plugin content, and background marketplace auto-update stays **off**
|
|
32
|
-
so it cannot race
|
|
33
|
-
and
|
|
34
|
-
`mmi-
|
|
32
|
+
so it cannot race Hub maintenance. `mmi-hub` gates a release tag+BOM, converges each present host,
|
|
33
|
+
and records last-run evidence. A red row names `mmi-hub install`, `mmi-hub update`, or
|
|
34
|
+
`mmi-hub autoupdate on`; no marketplace ref or hand-edited auto-update ceremony remains.
|
|
35
35
|
|
|
36
36
|
A `✗` on any line comes with a `Next command:` — run **that** first. Common ones:
|
|
37
37
|
|
|
38
|
-
- Hub
|
|
38
|
+
- Hub maintenance missing or stale → `npm install -g @mutmutco/hub` then `mmi-hub install`.
|
|
39
|
+
- Hub API URL not configured → `mmi-cli doctor` (safe tooling wiring only; no repository cleanup).
|
|
39
40
|
- Repo not registered → a master-admin runs `/bootstrap` (or `mmi-cli oracle org project set <owner/repo>`).
|
|
40
41
|
- GitHub auth missing → the dev runs `gh auth login --hostname github.com --git-protocol https --web --scopes "project"`.
|
|
41
42
|
|
package/skills/release/SKILL.md
CHANGED
|
@@ -125,8 +125,7 @@ git rev-list --count origin/main..origin/development
|
|
|
125
125
|
|
|
126
126
|
Before local gates or `release --apply`, ensure the repo-local / PATH `mmi-cli` matches the released train
|
|
127
127
|
path — a stale checkout (e.g. 2.32.0 while 2.32.4 is released) fails release gates with opaque errors.
|
|
128
|
-
Read the gap
|
|
129
|
-
mutations of the working tree you are about to release from):
|
|
128
|
+
Read the gap on the compatibility-safe no-repository-write lane:
|
|
130
129
|
```bash
|
|
131
130
|
mmi-cli doctor --no-repo-writes
|
|
132
131
|
```
|
|
@@ -136,13 +135,13 @@ inverse is also true: a run can exit **0** while printing ✗ lines (report-only
|
|
|
136
135
|
direction is a gate. Read the rows.
|
|
137
136
|
|
|
138
137
|
- **Blocking:** a red `mmi-cli` / `Claude plugin` version line, or a reported `minClientVersion` gap.
|
|
139
|
-
**Doctor does not update the CLI (#4954).**
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
138
|
+
**Doctor does not update the CLI (#4954).** `mmi-hub` owns release-gated version convergence; doctor
|
|
139
|
+
reports lag and last-run evidence only. The remedy is `mmi-hub update`, not a doctor re-run or a bare
|
|
140
|
+
CLI install. Plain doctor/`--no-repo-writes` may safely repair active plugin wiring but never repository
|
|
141
|
+
state. Do **not**
|
|
143
142
|
proceed to Step 0b while the installed CLI is behind the Hub's `minClientVersion`.
|
|
144
|
-
- **Not blocking:** every other red check is hygiene, not a train gate. Stale branches and scratch
|
|
145
|
-
|
|
143
|
+
- **Not blocking:** every other red check is hygiene, not a train gate. Stale branches and scratch require
|
|
144
|
+
explicit `mmi-cli doctor --apply` after the release; `plugin cache` needs a different verb,
|
|
146
145
|
`mmi-cli plugin prune --apply` — saying doctor cleared it was wrong. Both still exit 1 until you run the
|
|
147
146
|
right verb. Read them, then proceed.
|
|
148
147
|
|
|
@@ -183,8 +182,8 @@ completeness:
|
|
|
183
182
|
mmi-cli --version
|
|
184
183
|
npm view @mutmutco/cli version # public package; a bare view is trustworthy here
|
|
185
184
|
```
|
|
186
|
-
Mismatch → `
|
|
187
|
-
said**. This is the check whose absence Step 0a's own title promises to cover, so it is not optional.
|
|
185
|
+
Mismatch → run `mmi-hub update`, then repeat both reads before Step 0b, **regardless of what doctor's
|
|
186
|
+
rows said**. This is the check whose absence Step 0a's own title promises to cover, so it is not optional.
|
|
188
187
|
|
|
189
188
|
## Step 0b — registry + main secret-name preflight
|
|
190
189
|
|