@mutmutco/kilo-plugin 3.129.0 → 3.131.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/package.json +1 -1
- package/skills/hotfix/SKILL.md +8 -10
- package/skills/onboard/SKILL.md +8 -9
- package/skills/rcand/SKILL.md +6 -7
- package/skills/release/SKILL.md +42 -17
package/package.json
CHANGED
package/skills/hotfix/SKILL.md
CHANGED
|
@@ -18,9 +18,9 @@ The FIX is never back-merged: `development` already contains it, and `rc` absorb
|
|
|
18
18
|
|
|
19
19
|
The VERSION FOLD is different, and `hotfix release` ports it for you (#4410). `hotfix start` commits the
|
|
20
20
|
fold onto the main-base branch, so after the tag `main` declares the new version while `development`
|
|
21
|
-
still declares the old one
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
still declares the old one. The Hub's catalogs now pin exact npm packages (#4948), so there is no
|
|
22
|
+
branch/content lockstep red; the fold still must land so the next release starts from production's real
|
|
23
|
+
version, BOM, and package pins. Step 3 opens that development-base fold PR automatically; land it.
|
|
24
24
|
|
|
25
25
|
## Merge floor (#3167 — non-negotiable)
|
|
26
26
|
|
|
@@ -144,19 +144,17 @@ merged into `development`; the fold is regenerated on a branch cut from `develop
|
|
|
144
144
|
reported `development fold port FAILED`, follow the manual remedy it named; never improvise a merge from
|
|
145
145
|
`main`.
|
|
146
146
|
|
|
147
|
-
###
|
|
147
|
+
### Development fold after a hotfix (#4517 / #4948)
|
|
148
148
|
|
|
149
|
-
Hub
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
`release-distribution prepare` as a development PR — use this hotfix door:
|
|
149
|
+
The Hub's thin catalogs now pin exact npm packages, so the old main-anchored catalog-lockstep gate is
|
|
150
|
+
retired: an unreleased branch cannot deliver a package version the release train has not published.
|
|
151
|
+
Hotfix versioning still belongs on the main-base train, never in an improvised development prepare PR:
|
|
153
152
|
|
|
154
153
|
1. `mmi-cli devops hotfix start --from <merged-dev-pr-or-sha>` (prepare + distribution bump on `hotfix/vX.Y.Z` from `main`)
|
|
155
154
|
2. merge the hotfix PR → `mmi-cli devops hotfix release vX.Y.Z` (publish)
|
|
156
155
|
3. land the automatic `hotfix-fold/<tag>` development fold PR (or follow its printed remedy)
|
|
157
156
|
|
|
158
|
-
|
|
159
|
-
catalog-lockstep; that is not a false red — switch to the hotfix path above.
|
|
157
|
+
The fold is now required for version/BOM/package-pin continuity, not to clear a branch-content gate.
|
|
160
158
|
|
|
161
159
|
## Retro
|
|
162
160
|
|
package/skills/onboard/SKILL.md
CHANGED
|
@@ -24,15 +24,14 @@ 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
|
-
- **Plugin** —
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
front of you.
|
|
27
|
+
- **Plugin** — is `mmi-updater` the single writer, and does its journal show every present surface at
|
|
28
|
+
the gated fleet version (#4945).
|
|
29
|
+
|
|
30
|
+
The **Plugin** row is per machine, not per repo. The Hub's thin Claude/Codex catalogs pin exact npm
|
|
31
|
+
packages; Git no longer transports plugin content, and background marketplace auto-update stays **off**
|
|
32
|
+
so it cannot race the scheduled updater. The updater gates a release tag+BOM, converges each present host,
|
|
33
|
+
and writes the journal stamp (`fleet <V> ✓`). A red row names `mmi-updater verify` or
|
|
34
|
+
`mmi-updater reconcile`; no marketplace ref or hand-edited auto-update ceremony remains.
|
|
36
35
|
|
|
37
36
|
A `✗` on any line comes with a `Next command:` — run **that** first. Common ones:
|
|
38
37
|
|
package/skills/rcand/SKILL.md
CHANGED
|
@@ -100,8 +100,8 @@ exists — a tag minted before the conflict resolution points at the wrong SHA.
|
|
|
100
100
|
## Step 3 — tag the rc
|
|
101
101
|
|
|
102
102
|
The shared helper derives the next rc tag from existing tags (re-run-safe — `-rc.N` increments). `rc` mode
|
|
103
|
-
|
|
104
|
-
|
|
103
|
+
reads `MMI_BUMP_INTENT`; unset it resolves to `patch` (#4929) — declare `minor`/`major` explicitly for a
|
|
104
|
+
planned feature cycle:
|
|
105
105
|
```bash
|
|
106
106
|
TAG=$(MMI_BUMP_INTENT=minor node scripts/next-version.mjs rc) # -> vX.Y.0-rc.N
|
|
107
107
|
git tag "$TAG"
|
|
@@ -191,11 +191,10 @@ Version `vX.Y.0-rc.N` · merged commits · rc deploy run + env URL.
|
|
|
191
191
|
- **MAJOR / exact-target cycle:** for a release the tag math can't derive (a MAJOR like `2.0.0`, or skipping
|
|
192
192
|
a version already on npm), export `MMI_RELEASE_VERSION=X.Y.Z` before `/rcand` — `next-version.mjs rc` then
|
|
193
193
|
opens that exact cycle (validated to move strictly forward). Keep it exported through `/release`.
|
|
194
|
-
- **`MMI_BUMP_INTENT=major|minor|patch`
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
leaves the apply to fail after the preflight has already passed. This is
|
|
194
|
+
- **`MMI_BUMP_INTENT=major|minor|patch` selects the increment for `next-version.mjs rc`** (Step 3); absent,
|
|
195
|
+
it defaults to `patch` (#4929). **Export it for the whole run:** `mmi-cli devops rcand --apply` resolves
|
|
196
|
+
the intent itself with the same default, so a one-off prefix on the `next-version.mjs` command leaves the
|
|
197
|
+
apply deriving a different increment than the tag you minted. This is
|
|
199
198
|
a different knob from `MMI_RELEASE_VERSION` above: `MMI_BUMP_INTENT` picks the increment,
|
|
200
199
|
`MMI_RELEASE_VERSION` overrides the computed version entirely and is for the exceptional case only.
|
|
201
200
|
|
package/skills/release/SKILL.md
CHANGED
|
@@ -5,6 +5,11 @@ description: Ship rc or direct-track development to main and production.
|
|
|
5
5
|
|
|
6
6
|
**Host-native invocation:** Claude `/mmi:release` · Codex `$mmi:release` · jervcode/Kimi `/skill:release` · 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
|
+
**Argument (#4929):** `/release minor`, `/release major`, or `/release patch` — a bare bump word, never a
|
|
9
|
+
`--flag` or env var. Map it to `MMI_BUMP_INTENT` exported for the whole run (the train and
|
|
10
|
+
`next-version.mjs` both read it). No argument → `patch`: a `/release patch` from development is a
|
|
11
|
+
legitimate ordinary release; `/hotfix` remains the cherry-pick promotion lane.
|
|
12
|
+
|
|
8
13
|
# /release — ship to main + prod
|
|
9
14
|
|
|
10
15
|
Full-track repos ship **exactly what is on `rc`** (never pulls `development`): merge `rc → main`, tag
|
|
@@ -56,9 +61,13 @@ mean "unverified", never an authority verdict:**
|
|
|
56
61
|
denial, and retrying will never change it: fix the `{owner}/{repo}` argument, then re-probe. Before the
|
|
57
62
|
fix this string came back `role: master, train: true, verified: true` for anything owner/name-shaped.
|
|
58
63
|
|
|
59
|
-
- An `unknown command '
|
|
60
|
-
installed CLI can't even parse the probe. Jump to Step 0a, heal the CLI, then re-run
|
|
61
|
-
conclude the command form is wrong from a pre-heal failure (#3150).
|
|
64
|
+
- An `unknown command 'oracle'` error is a STALE CLI — the house-prefixed namespaces ship in newer
|
|
65
|
+
trains, so an old installed CLI can't even parse the probe. Jump to Step 0a, heal the CLI, then re-run
|
|
66
|
+
this probe; never conclude the command form is wrong from a pre-heal failure (#3150). The mirror-image
|
|
67
|
+
failure is a Wave-3 flat alias on a CURRENT CLI: the un-housed `org …`, `secrets …`, and
|
|
68
|
+
`release …` forms were removed in #4316 and fail closed with a house-prefix error — rewrite to the
|
|
69
|
+
house form (`mmi-cli oracle org …`, `mmi-cli vault secrets …`, `mmi-cli devops release …`); that is
|
|
70
|
+
never a stale CLI and never an authority verdict.
|
|
62
71
|
- A **TIMEOUT or network error** (`operation aborted due to timeout`, DNS/socket failures) is **not** a
|
|
63
72
|
`train: false` denial (#3321). Read the probe's own `verified` field: `verified: false` means the verdict
|
|
64
73
|
could not be established, so the `train: false` beside it carries NO authority meaning. The client
|
|
@@ -70,8 +79,10 @@ mean "unverified", never an authority verdict:**
|
|
|
70
79
|
|
|
71
80
|
Then
|
|
72
81
|
preconditions: clean tree; full-track repos run from `rc` (or from `development` with `--dev`), while
|
|
73
|
-
direct-track repos run from `development`. Ordinary `/release`
|
|
74
|
-
|
|
82
|
+
direct-track repos run from `development`. Ordinary `/release` takes its bump intent from the bare
|
|
83
|
+
argument (`/release minor|major|patch` → `MMI_BUMP_INTENT`, exported for the whole run); unstated, the
|
|
84
|
+
train defaults to `patch` (#4929). An invalid intent fails `--apply` closed at intent resolution
|
|
85
|
+
(`MMI_BUMP_INTENT must be one of major|minor|patch`), before any merge, tag, or fold.
|
|
75
86
|
|
|
76
87
|
**Run from the checkout that already has that branch — never a fresh isolated worktree (#2770).** This is
|
|
77
88
|
a shared-branch train operation (merge/tag/push against origin's protected `main`/`rc`), not an isolated
|
|
@@ -288,8 +299,10 @@ Nothing to do by hand; the `--apply` result reports the fold outcome (`versionFo
|
|
|
288
299
|
## Step 2 — tag the release
|
|
289
300
|
|
|
290
301
|
Full-track repos drop the `-rc.N` suffix from the open cycle. Direct-track repos use the next cycle directly
|
|
291
|
-
because they have no rc tag —
|
|
292
|
-
|
|
302
|
+
because they have no rc tag — `cycle` mode reads `MMI_BUMP_INTENT` (the `/release` argument; unset →
|
|
303
|
+
`patch`, #4929). The Step 0 export is what covers the apply run — the inline prefix below only resolves
|
|
304
|
+
the tag for display; `mmi-cli devops release --apply` re-derives intent itself and fail-closes before any
|
|
305
|
+
merge, tag, or fold when the value is invalid:
|
|
293
306
|
```bash
|
|
294
307
|
TAG=$(node scripts/next-version.mjs release) # full-track repos -> vX.Y.0
|
|
295
308
|
TAG=$(MMI_BUMP_INTENT=minor node scripts/next-version.mjs cycle) # direct-track repos -> vX.Y.0
|
|
@@ -300,7 +313,13 @@ git tag "$TAG"
|
|
|
300
313
|
|
|
301
314
|
`mmi-cli devops release --apply`'s exit code is **not** the release verdict: exit `2` can mean the release
|
|
302
315
|
shipped successfully while protected-branch alignment remains pending, and exit `1` can mean a
|
|
303
|
-
post-release follow-up failed after promotion
|
|
316
|
+
post-release follow-up failed after promotion — **or that the follow-up is merely unresolved** (#4939):
|
|
317
|
+
a verdict of `releaseStatus=succeeded` with `followUpStatus=pending` (the release-triggered runs — e.g.
|
|
318
|
+
the Hub's `deploy.yml` + `publish.yml` — had only just auto-fired) also exits nonzero, and a
|
|
319
|
+
background-task harness surfacing exit codes misreads it as "release failed" when the release actually
|
|
320
|
+
shipped. Classify from the verdict fields, never the exit code alone: `succeeded` + `pending` means
|
|
321
|
+
shipped with the follow-up unresolved — watch the enumerated `workflowRuns` to conclusion; only a
|
|
322
|
+
resolved failure there is a failed follow-up. Read the live release verdict and verify these four
|
|
304
323
|
facts instead: the `main..development` count, the tag on `origin`, `gh release view`, and the runs on
|
|
305
324
|
the release SHA.
|
|
306
325
|
|
|
@@ -486,7 +505,10 @@ mmi-cli oracle org project sync-info --apply # omit --apply for the read-only
|
|
|
486
505
|
|
|
487
506
|
## Step 6 — collect deploy verdict + report
|
|
488
507
|
|
|
489
|
-
The `release --apply` exit code is **not** the release verdict.
|
|
508
|
+
The `release --apply` exit code is **not** the release verdict. A nonzero exit with
|
|
509
|
+
`releaseStatus=succeeded` and `followUpStatus=pending` is the unresolved-follow-up case from Step 3 —
|
|
510
|
+
the release shipped; the runs enumerated in `workflowRuns` are the outstanding verdict, so watch them
|
|
511
|
+
to conclusion here rather than re-running or alarming. Report the live release verdict from
|
|
490
512
|
the four checks that matter: the `main..development` count, the tag on `origin`, `gh release view`,
|
|
491
513
|
and the runs on the release SHA; an alignment PR is normal follow-up work when those checks confirm
|
|
492
514
|
the release shipped.
|
|
@@ -546,12 +568,15 @@ deploy run + URL + **green/red** · branch-alignment note · npm publish run + C
|
|
|
546
568
|
|
|
547
569
|
## Notes
|
|
548
570
|
|
|
549
|
-
-
|
|
550
|
-
directly)
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
run, not a one-off prefix on `next-version.mjs cycle`:
|
|
554
|
-
|
|
571
|
+
- `/hotfix` stays the cherry-pick promotion lane (a hotfix always skips rc — it cherry-picks
|
|
572
|
+
`development → main` directly), but a `/release patch` from development is a legitimate ordinary
|
|
573
|
+
release (#4929). Never force-push `main`.
|
|
574
|
+
- **`MMI_BUMP_INTENT=major|minor|patch` comes from the bare `/release` argument; unstated it defaults to
|
|
575
|
+
`patch`** (#4929). Export it for the whole run, not a one-off prefix on `next-version.mjs cycle`:
|
|
576
|
+
`mmi-cli devops release --apply` (and `rcand --apply`) resolve intent themselves **before any merge,
|
|
577
|
+
tag, or fold** — direct-track included — defaulting to `patch` when the env is absent and failing closed
|
|
578
|
+
there with `MMI_BUMP_INTENT must be one of major|minor|patch` on an invalid value, so the tree stays
|
|
579
|
+
clean on the start branch. `MMI_RELEASE_VERSION`
|
|
555
580
|
below is a different knob: it overrides the computed version; it does not replace the intent export
|
|
556
581
|
unless you set that exact-target env instead.
|
|
557
582
|
- **`--dev` (full-track only):** releases `development → main` skipping rc, with the same fold/tag/Release/
|
|
@@ -561,8 +586,8 @@ deploy run + URL + **green/red** · branch-alignment note · npm publish run + C
|
|
|
561
586
|
- **MAJOR / exact-target release:** to ship a version the tag math can't derive (a MAJOR like `2.0.0`, or
|
|
562
587
|
skipping a version already on npm), product repos export `MMI_RELEASE_VERSION=X.Y.Z` for **both** `/rcand`
|
|
563
588
|
and `/release`; MMI-Hub exports it for `/release` only. Steps 1b/2 then fold and tag exactly that
|
|
564
|
-
version. Unset, the train uses the declared `MMI_BUMP_INTENT` increment
|
|
565
|
-
|
|
589
|
+
version. Unset, the train uses the declared `MMI_BUMP_INTENT` increment, defaulting to `patch` when
|
|
590
|
+
neither the argument nor the env declares one (#4929).
|
|
566
591
|
|
|
567
592
|
## Retro — one check before you finish
|
|
568
593
|
Before your final report, answer one question honestly: did **this skill's own instructions** misfire
|