@mutmutco/pi-plugin 4.5.170 → 4.5.172
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
package/skills/hotfix/SKILL.md
CHANGED
|
@@ -73,6 +73,7 @@ Read the receipts, never the exit code (exit `1` = a follow-up failed after the
|
|
|
73
73
|
- `runs[]` — the release-triggered runs on the tagged SHA (workflow, conclusion, url). Watch each non-success entry to conclusion: `gh run watch <run-id> --repo {owner}/{repo} --exit-status --interval 30`. Name which run is red: `deploy.yml` / `publish.yml` / `tenant-deploy.yml` / `jerv-gateway` is a deploy or publish verdict; a `gate` push run is ordinary CI sharing the SHA. `jerv-gateway` is the operator-host deploy leg: it has no run id to watch, so read its `deployNote` / `ledger.phases.deploy` — `pending` there means production was never deployed and blocks the next train run.
|
|
74
74
|
- `foldStatus` + `foldNote` — the `hotfix-fold/<tag>` development PR; land it by true merge (Merge floor) and say whether it landed.
|
|
75
75
|
- `announceNote` (Hub), `verifyNote`, `checkout`, `localSync`, `ledger` — the durable phase legs; a pending or failed leg is unresolved, never done.
|
|
76
|
+
- `localInstall` (MMI-Hub) — the train installs the release on this machine via `mmi-hub update`; never run `npm i -g`.
|
|
76
77
|
|
|
77
78
|
`mmi-cli devops hotfix status vX.Y.Z --json` re-derives the whole pipeline from live reads (`state`, `tagPushed`, `releaseExists`, `runs`, `alignmentStatus`, `npmVersion`, `next`). Then the bounded Latest Release read; its `tagName` must equal the tag:
|
|
78
79
|
|
|
@@ -118,6 +118,10 @@ Production changes require explicit authorization from the authorized human.
|
|
|
118
118
|
Read the selected release skill before operating the train. Let it choose versions, run gates,
|
|
119
119
|
publish, deploy, and verify the resulting release. A refusal requires fixing its cause; do not
|
|
120
120
|
finish by hand, bypass checks, or start a duplicate release.
|
|
121
|
+
Versions: patch is the default for fixes and small compatible additions. Minor is a deliberate call
|
|
122
|
+
for a real feature, with a one-line reason. Major is a new start or direction and needs the owner's
|
|
123
|
+
fresh approval before tagging. A breaking change refuses until it is shimmed or made an approved
|
|
124
|
+
major. The [release](../../release/SKILL.md) skill names the exact switches.
|
|
121
125
|
A release announces itself in Slack once its deploy and publish are green: the Hub to the org alerts channel, a product to its own
|
|
122
126
|
project channel when the project's registry META sets `releaseChannel`; never post release notes
|
|
123
127
|
by hand. The Hub always needs a curated `--announce-summary-file`, and so does any product whose
|
package/skills/release/SKILL.md
CHANGED
|
@@ -7,6 +7,8 @@ description: Ship rc or direct-track development to main and production.
|
|
|
7
7
|
|
|
8
8
|
**Argument:** `/release minor`, `/release major`, or `/release patch` — a bare bump word, never a `--flag` or env var. No argument → `patch`; a `/release patch` from development is a legitimate ordinary release, `/hotfix` stays the cherry-pick promotion lane.
|
|
9
9
|
|
|
10
|
+
**Bump rules** ([docs/versioning.md](../../docs/versioning.md)): patch is the default and needs nothing. `minor` only for a real feature or significant change, with a one-line reason exported as `MMI_BUMP_REASON`. `major` only with Jervaise's fresh approval in this turn: export `MMI_BUMP_REASON` and `MMI_MAJOR_APPROVED=<exact target version>` (e.g. `5.0.0`) only after that approval, never earlier or from a prior turn. A breaking signal in the range (`feat!:`, `BREAKING CHANGE:`) makes the train refuse until it is shimmed (patch) or declared an owner-gated major.
|
|
11
|
+
|
|
10
12
|
# /release — ship to main + prod
|
|
11
13
|
|
|
12
14
|
Full-track repos ship exactly what is on `rc` (never `development`): merge `rc → main`, tag `vX.Y.0`, publish the GitHub Release, deploy prod, roll `development` forward. Direct-track repos ship `development → main`, and the release event fires the repo's own deploy/publish workflow (MMI-Hub: `deploy.yml` + `publish.yml`). `rc` is ephemeral: `/rcand` creates its runtime, `/release` retires it after a confirmed prod deploy (`rcRetirement`). A prod release needs the authorized human's explicit go in the current turn — an agent never self-initiates it. The board needs no touch: items reached `Done` when their PRs merged to `development`.
|
|
@@ -84,6 +86,7 @@ Read the saved result, never the exit code (exit `1` = a follow-up failed after
|
|
|
84
86
|
- `announceNote` — `announced` (to the alerts channel for the Hub, to the project release channel for a product repo), `skipped`, `not announced` (deploy or publish not green; the note says whether a `--resume` carrying the same `--announce-summary-file` will post it), or the failure note. The channel id itself is never printed.
|
|
85
87
|
- `devRollForward` / `rcAlignment` — `pushed`, or `pr-pending` with the alignment PR to land by true merge (Merge floor). An enqueued auto-merge is not evidence of the method; before reporting, read the enqueued method back — `gh pr view <n> --json autoMergeRequest --jq .autoMergeRequest.mergeMethod` — and prove it is `MERGE`. An enqueued `SQUASH` is a stop under the Merge floor, not something to wait out.
|
|
86
88
|
- `versionFold`, `rcRetirement`, `checkout` — `returned`, or the named reason you are still on `main`.
|
|
89
|
+
- `localInstall` (MMI-Hub) — the train installs the release on this machine via `mmi-hub update`; never run `npm i -g`.
|
|
87
90
|
For a private npm surface, read [verification.md](verification.md) before interpreting authentication or package visibility.
|
|
88
91
|
|
|
89
92
|
Then verify Latest with this bounded one-row read; require `isLatest: true` and `tagName` equal to the resolved tag: `gh release list --repo {owner}/{repo} --limit 1 --json tagName,isLatest,publishedAt`.
|