@mutmutco/pi-plugin 4.6.26 → 4.6.28
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/bootstrap/seeds/gate.template.yml +4 -0
- package/skills/bootstrap/seeds/suite-gate.template.yml +6 -0
- package/skills/org-guide/references/design.md +5 -0
- package/skills/org-guide/references/work-and-releases.md +2 -0
- package/skills/release/SKILL.md +2 -0
- package/skills/release/train-common.md +5 -1
package/package.json
CHANGED
|
@@ -172,11 +172,15 @@ jobs:
|
|
|
172
172
|
# MMI-Hub#5871: declare the npm MAJOR rather than inheriting whatever the runner's node bundles.
|
|
173
173
|
# A bare major, never an exact patch (it goes stale and then prescribes downgrading operator
|
|
174
174
|
# hosts toward it, #5862) and never `latest` (it takes the next major silently, #4782).
|
|
175
|
+
# MMI-Hub#9850: this single gate job is the designated hosted npm cache writer (auto saves only on a
|
|
176
|
+
# default-branch push), keyed on the one lockfile its install uses.
|
|
175
177
|
- if: ${{ steps.development-gate.outputs.reuse != 'true' && ('{{GATE_RUNTIME}}' == 'node') }}
|
|
176
178
|
uses: mutmutco/MMI-Hub/.github/actions/runner-node-toolchain@{{GATE_RUNNER_SHA}}
|
|
177
179
|
with:
|
|
178
180
|
node-version: 24
|
|
179
181
|
npm-version: '12'
|
|
182
|
+
hosted-npm-cache: auto
|
|
183
|
+
hosted-npm-cache-lockfiles: {{GATE_CACHE_DEP_PATH}}
|
|
180
184
|
- if: ${{ steps.development-gate.outputs.reuse != 'true' && ('{{GATE_RUNTIME}}' == 'python') }}
|
|
181
185
|
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
182
186
|
with: { python-version: '{{GATE_PY_VERSION}}' }
|
|
@@ -37,11 +37,17 @@ jobs:
|
|
|
37
37
|
- name: Isolate npm cache
|
|
38
38
|
if: ${{ steps.development-gate.outputs.reuse != 'true' }}
|
|
39
39
|
run: echo "NPM_CONFIG_CACHE=$RUNNER_TEMP/npm-cache" >> "$GITHUB_ENV"
|
|
40
|
+
# MMI-Hub#9850: the single gate job is the designated hosted npm cache writer (auto saves only on a
|
|
41
|
+
# default-branch push), keyed on both lockfiles its two installs below use.
|
|
40
42
|
- uses: mutmutco/MMI-Hub/.github/actions/runner-node-toolchain@{{GATE_RUNNER_SHA}}
|
|
41
43
|
if: ${{ steps.development-gate.outputs.reuse != 'true' }}
|
|
42
44
|
with:
|
|
43
45
|
node-version: 24
|
|
44
46
|
npm-version: '12'
|
|
47
|
+
hosted-npm-cache: auto
|
|
48
|
+
hosted-npm-cache-lockfiles: |
|
|
49
|
+
package-lock.json
|
|
50
|
+
module/package-lock.json
|
|
45
51
|
- run: npm ci --no-audit --no-fund
|
|
46
52
|
if: ${{ steps.development-gate.outputs.reuse != 'true' }}
|
|
47
53
|
- run: npm ci --prefix module --no-audit --no-fund
|
|
@@ -56,6 +56,11 @@ design work follows one harmonized **Front-Loaded Impeccable v4.7.0 + MM Artifac
|
|
|
56
56
|
before choosing pieces; `exists` reports whether the requested guide exists. Never guess
|
|
57
57
|
repo-root `node_modules/@mutmutco/mmwork-ds/docs/components/<Piece>.md`; component guides
|
|
58
58
|
live in `<Piece>/guide.md`. No install/cache means capability remains unknown.
|
|
59
|
+
**Loading state comes from the content (#9851).** A page or component renders its loading state
|
|
60
|
+
from the same component tree as its real content: the kit Page `busy` or the component's own
|
|
61
|
+
loading state, drawing the real rows inert or hidden. Never hand-author a separate placeholder
|
|
62
|
+
skeleton kept in sync by hand. Every UI change checks the loading and loaded DOM structure match,
|
|
63
|
+
so an indicator cannot drift from the content it fronts.
|
|
59
64
|
|
|
60
65
|
How the five pillars fit together (owner, 2026-10-25):
|
|
61
66
|
|
|
@@ -161,6 +161,8 @@ Production changes require explicit authorization from the authorized human.
|
|
|
161
161
|
Read the selected release skill before operating the train. Let it choose versions, run gates,
|
|
162
162
|
publish, deploy, and verify the resulting release. A refusal requires fixing its cause; do not
|
|
163
163
|
finish by hand, bypass checks, or start a duplicate release.
|
|
164
|
+
Finish the board before a release cut: every item of this cycle is merged and `Done` first; a queued
|
|
165
|
+
lane is not a landed one.
|
|
164
166
|
Versions: patch is the default for fixes and small compatible additions. Minor is a deliberate call
|
|
165
167
|
for a real feature, with a one-line reason. Major is a new start or direction and needs the owner's
|
|
166
168
|
fresh approval before tagging. A breaking change refuses until it is shimmed or made an approved
|
package/skills/release/SKILL.md
CHANGED
|
@@ -15,6 +15,8 @@ Read `mmi-cli oracle org project get {owner}/{repo} --json` and name the lane ([
|
|
|
15
15
|
|
|
16
16
|
## Preflight
|
|
17
17
|
|
|
18
|
+
Board first: `mmi-cli oracle board read --repo <owner/repo>`; cut only once every in-flight item of this cycle is merged and `Done` ([train-common.md](train-common.md#board-first)).
|
|
19
|
+
|
|
18
20
|
`mmi-cli devops train doctor --lane release --heal --json`; read it per [train-common.md](train-common.md#doctor).
|
|
19
21
|
|
|
20
22
|
## Apply
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
# Train skills: shared doctor, recovery, merge floor, report and retro
|
|
1
|
+
# Train skills: shared board-first, doctor, recovery, merge floor, report and retro
|
|
2
2
|
|
|
3
3
|
`/release`, `/rcand` and `/hotfix` read this one file (from a sibling skill: `../release/train-common.md`). Each skill keeps only what differs by lane.
|
|
4
4
|
|
|
5
|
+
## Board first
|
|
6
|
+
|
|
7
|
+
Before any release cut, read the repo's own board: `mmi-cli oracle board read --repo <owner/repo>`. Every in-flight item of this cycle — claimed, in review, queued in the autolander, or awaiting landing — must be merged and `Done` first. A queued lane is not a landed one: wait for its landing to report merge and board `Done`. The cut is the last step of a board cycle, never interleaved with pending landings; otherwise the version ships without them and needs a second cut. Standing backlog nobody is working is not in flight and does not block.
|
|
8
|
+
|
|
5
9
|
## Doctor
|
|
6
10
|
|
|
7
11
|
The preflight JSON is on stdout alone: a stale CLI first prints its self-update notice on stderr and re-runs itself, so parse stdout only, never `2>&1`. Read `ready`, then `findings[]`: each carries `code`, `severity` (`blocker` · `warning` · `healed` · `info`), `source` (`local` · `origin`), `remedy` and `anchor`. `ready: false` → stop and quote every blocker's `code` and `remedy`; an unread origin is never green. The apply step (`release --apply`, `rcand --apply`, `hotfix start`, `hotfix release`) re-runs the doctor first, with heal on.
|