@mutmutco/codex-plugin 4.3.14 → 4.3.16
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/.codex-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/skills/bootstrap/SKILL.md +9 -4
- package/skills/bootstrap/seeds/gate.template.yml +35 -2
- package/skills/epic/SKILL.md +4 -3
- package/skills/hotfix/SKILL.md +2 -2
- package/skills/rcand/SKILL.md +2 -2
- package/skills/release/SKILL.md +2 -2
- package/skills/secrets/SKILL.md +4 -3
- package/skills/stage/SKILL.md +4 -3
package/package.json
CHANGED
|
@@ -366,9 +366,13 @@ collaborator list + the per-branch allowlist are the record — no separate rost
|
|
|
366
366
|
`pytest` / `pip install -e ".[dev]"` with `--var GATE_PY_VERSION=` (3.11 default). The runtime selects
|
|
367
367
|
which setup step (`setup-node` vs `setup-python`) the rendered `if:` fires. The check command runs
|
|
368
368
|
under the org **wall-clock budget** (#3178): the render pins `run-with-budget` to the CLI's blessed SHA
|
|
369
|
+
(since #6256 that one pin also covers the `zeroci-verify` step — both actions ship from the same Hub commit)
|
|
369
370
|
with `--var GATE_MAX_SECONDS=` (300s onboarding default — tighten once the gate is measured, via
|
|
370
371
|
`--var` or `org project set <repo> --var gate={"maxSeconds":N}`); `ci audit` and the release train
|
|
371
|
-
both enforce the step, so do not remove it.
|
|
372
|
+
both enforce the step, so do not remove it. ZeroCI C3 (#6254): `--var GATE_AFFECTED_CMD=...` (or
|
|
373
|
+
`gate={"affectedCmd":"..."}`) runs an affected-only selection on pull_request instead of `GATE_CMD`;
|
|
374
|
+
empty (default) keeps the full suite on PRs. Pushes, tags and the rendered nightly `schedule`
|
|
375
|
+
(`17 3 * * *` on the default branch) always run the full `GATE_CMD` — that nightly is the drift catcher. `bootstrap apply --execute` installs that JSON as the
|
|
372
376
|
repository ruleset itself (#6070) and reports one `product-ruleset` row: `PARK` (the gate file is not on
|
|
373
377
|
the base branch yet — installed disabled), `WAIT` (the gate exists but has not emitted a proven-green
|
|
374
378
|
`gate` context — kept disabled; re-run apply after the gate passes), `ACTIVATE` (gate green — enforcement
|
|
@@ -550,6 +554,7 @@ Before your final report, answer one question honestly: did **this skill's own i
|
|
|
550
554
|
this run — ambiguous wording, a misleading message, or an environment failure it should have warned
|
|
551
555
|
about? (Process only — never the user's code or task; e.g. an ambiguous seed, registry, or OIDC step, or
|
|
552
556
|
a guard that fired on a healthy repo.) If yes, file **one** lesson and move on; a clean run is silent
|
|
553
|
-
(hard cap: one per run). It lands on the
|
|
554
|
-
edit the skill live; the retro is advisory, so if the call fails, note it and continue
|
|
555
|
-
`
|
|
557
|
+
(hard cap: one per run). It lands on the owning board (deduped) and is fixed only via a reviewed PR — never
|
|
558
|
+
edit the skill live; the retro is advisory, so if the call fails, note it and continue. In-session, call the
|
|
559
|
+
`jerv_learning_note` tool with origin retro; the machine fallback is:
|
|
560
|
+
`jervcode learn --origin retro --surface skills --title "bootstrap: <what misfired>" --body "<what; evidence; proposed amendment>"`
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
name: gate
|
|
2
2
|
# Org-standard green-before-merge gate for product repos (#1333). Runs on PRs, train-branch pushes,
|
|
3
3
|
# and v* tags so /release and /hotfix can discover required contexts on the tagged SHA.
|
|
4
|
+
# ZeroCI C3 (#6254): a nightly `schedule` run on the default branch executes the FULL GATE_CMD even when
|
|
5
|
+
# a signed receipt already proves the tree — the drift catcher for affected-only PR selection
|
|
6
|
+
# (GATE_AFFECTED_CMD) and for stale receipts. The job `if:` below admits `schedule` (it is not a push).
|
|
4
7
|
#
|
|
5
8
|
# Runner: self-hosted mmi-runner (mmi-live) — see docs/Guides/gh-runner-runbook.md in MMI-Hub.
|
|
6
9
|
# #4118: if GATE_CMD runs tsgo or other memory-heavy typecheck / browser work, pin this job to
|
|
@@ -11,6 +14,9 @@ name: gate
|
|
|
11
14
|
# bootstrap with --var):
|
|
12
15
|
# GATE_RUNTIME — node | python (selects which setup step fires)
|
|
13
16
|
# GATE_CMD — the check command ({{GATE_CMD}})
|
|
17
|
+
# GATE_AFFECTED_CMD — affected-only check command run on pull_request instead of GATE_CMD (#6254);
|
|
18
|
+
# empty (default) renders GATE_CMD here too, so the PR gate stays the full suite.
|
|
19
|
+
# Pushes, tags and the nightly schedule always run GATE_CMD. ({{GATE_AFFECTED_CMD}})
|
|
14
20
|
# GATE_INSTALL_CMD — the dependency-install command ({{GATE_INSTALL_CMD}})
|
|
15
21
|
# GATE_WORKDIR — app working directory when not the repo root ({{GATE_WORKDIR}})
|
|
16
22
|
# GATE_CACHE_DEP_PATH— npm lockfile path for runner-checkout heal ({{GATE_CACHE_DEP_PATH}})
|
|
@@ -22,7 +28,8 @@ name: gate
|
|
|
22
28
|
# GATE_FULL_RUN_BRANCH — train branch whose PUSHES run the full gate job (development on full/direct;
|
|
23
29
|
# main on trunk). `main` is ALWAYS included in the job `if:` below so a required-
|
|
24
30
|
# checks ruleset on main cannot be silently skipped by a future bootstrap (#4113).
|
|
25
|
-
# GATE_BUDGET_SHA is rendered by the CLI from its blessed run-with-budget pin — not an operator knob.
|
|
31
|
+
# GATE_BUDGET_SHA is rendered by the CLI from its blessed run-with-budget pin — not an operator knob. It
|
|
32
|
+
# also pins zeroci-verify (MMI-Hub#6253): both actions ship from the same Hub commit.
|
|
26
33
|
# GATE_RUNNER_SHA pins the org runner-checkout / runner-node-toolchain actions (#5610).
|
|
27
34
|
# Estate policy 2026-08-23: GitHub-hosted Windows (`windows-latest` / windows-*) is forbidden org-wide.
|
|
28
35
|
# Do not add a windows-compat (or any other) job that runs-on GH-hosted Windows. Linux self-hosted
|
|
@@ -34,6 +41,9 @@ on:
|
|
|
34
41
|
push:
|
|
35
42
|
branches: {{GATE_PUSH_BRANCHES_YAML}}
|
|
36
43
|
tags: ['v*']
|
|
44
|
+
# #6254: nightly full run on the default branch — catches affected-only drift and stale receipts.
|
|
45
|
+
schedule:
|
|
46
|
+
- cron: '17 3 * * *'
|
|
37
47
|
|
|
38
48
|
env:
|
|
39
49
|
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
|
@@ -48,6 +58,8 @@ concurrency:
|
|
|
48
58
|
|
|
49
59
|
permissions:
|
|
50
60
|
contents: read
|
|
61
|
+
# MMI-Hub#6253: ZeroCI receipts are commit statuses on the PR head; the gate reads them, never writes them.
|
|
62
|
+
statuses: read
|
|
51
63
|
|
|
52
64
|
jobs:
|
|
53
65
|
gate:
|
|
@@ -115,10 +127,31 @@ jobs:
|
|
|
115
127
|
if: ${{ '{{GATE_RUNTIME}}' == 'python' }}
|
|
116
128
|
run: |
|
|
117
129
|
python3 --version || { echo "::error title=CI runner toolchain::RUNNER NOT PROVISIONED — python3 not on PATH after setup-python. This is the runner, not your diff; no install or test ran. Re-run the job; if it persists the mmi-runner python toolchain needs attention (docs/Guides/gh-runner-runbook.md in MMI-Hub)."; exit 1; }
|
|
130
|
+
# MMI-Hub#6253 ZeroCI: skip the install and the budgeted run when a trusted seat already ran this
|
|
131
|
+
# exact command on this exact tree (receipt = commit status zeroci/<command> on the PR head). It
|
|
132
|
+
# needs only git and gh, so it sits before the install. Only `verified=true` skips;
|
|
133
|
+
# absent/stale/unreadable fall through to the install and the budgeted run below.
|
|
134
|
+
- id: zeroci
|
|
135
|
+
uses: mutmutco/MMI-Hub/.github/actions/zeroci-verify@{{GATE_BUDGET_SHA}}
|
|
136
|
+
with:
|
|
137
|
+
command: {{GATE_CMD}}
|
|
138
|
+
working-directory: {{GATE_WORKDIR}}
|
|
139
|
+
head-sha: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
118
140
|
- run: {{GATE_INSTALL_CMD}}
|
|
141
|
+
if: ${{ steps.zeroci.outputs.verified != 'true' || github.event_name == 'schedule' }}
|
|
119
142
|
# #3178: the check runs under the org wall-clock budget — a hung suite dies at the ceiling instead
|
|
120
143
|
# of squatting a runner lane for GitHub's 6h default. ci-audit + the release train enforce this step.
|
|
121
|
-
|
|
144
|
+
# #6254 (ZeroCI C3): two complementary budget steps. pull_request runs GATE_AFFECTED_CMD (rendered
|
|
145
|
+
# equal to GATE_CMD until the knob is set); every other trigger runs the full GATE_CMD. The nightly
|
|
146
|
+
# schedule runs even when the zeroci receipt already proves the tree — that is its whole point.
|
|
147
|
+
- if: ${{ steps.zeroci.outputs.verified != 'true' && github.event_name == 'pull_request' }}
|
|
148
|
+
uses: mutmutco/MMI-Hub/.github/actions/run-with-budget@{{GATE_BUDGET_SHA}}
|
|
149
|
+
with:
|
|
150
|
+
command: {{GATE_AFFECTED_CMD}}
|
|
151
|
+
max-seconds: {{GATE_MAX_SECONDS}}
|
|
152
|
+
working-directory: {{GATE_WORKDIR}}
|
|
153
|
+
- if: ${{ github.event_name != 'pull_request' && (steps.zeroci.outputs.verified != 'true' || github.event_name == 'schedule') }}
|
|
154
|
+
uses: mutmutco/MMI-Hub/.github/actions/run-with-budget@{{GATE_BUDGET_SHA}}
|
|
122
155
|
with:
|
|
123
156
|
command: {{GATE_CMD}}
|
|
124
157
|
max-seconds: {{GATE_MAX_SECONDS}}
|
package/skills/epic/SKILL.md
CHANGED
|
@@ -123,6 +123,7 @@ Before your final report, answer one question honestly: did **this skill's own i
|
|
|
123
123
|
this run — ambiguous wording, a misleading message, or an environment failure it should have warned
|
|
124
124
|
about? (Process only — never the user's code or task; e.g. a batch schema that rejected a valid row, or a
|
|
125
125
|
link that attached to the wrong parent.) If yes, file **one** lesson and move on; a clean run is silent
|
|
126
|
-
(hard cap: one per run). It lands on the
|
|
127
|
-
edit the skill live; the retro is advisory, so if the call fails, note it and continue
|
|
128
|
-
`
|
|
126
|
+
(hard cap: one per run). It lands on the owning board (deduped) and is fixed only via a reviewed PR — never
|
|
127
|
+
edit the skill live; the retro is advisory, so if the call fails, note it and continue. In-session, call the
|
|
128
|
+
`jerv_learning_note` tool with origin retro; the machine fallback is:
|
|
129
|
+
`jervcode learn --origin retro --surface skills --title "epic: <what misfired>" --body "<what; evidence; proposed amendment>"`
|
package/skills/hotfix/SKILL.md
CHANGED
|
@@ -95,8 +95,8 @@ Title first, verdict first. Name the resolved tag (never a placeholder like `vX.
|
|
|
95
95
|
|
|
96
96
|
## Retro
|
|
97
97
|
|
|
98
|
-
Before the final report, answer one question honestly: did this skill's own instructions misfire this run — ambiguous wording, a misleading message, or an environment failure it should have warned about? Process only, never the user's code or task. If yes, file one lesson and move on; a clean run is silent (hard cap: one per run). It lands on the
|
|
98
|
+
Before the final report, answer one question honestly: did this skill's own instructions misfire this run — ambiguous wording, a misleading message, or an environment failure it should have warned about? Process only, never the user's code or task. If yes, file one lesson and move on; a clean run is silent (hard cap: one per run). It lands on the owning board, deduplicated, and is fixed only through a reviewed PR — never edit the skill live. The retro is advisory: if the call fails, note it and continue. In-session, call the `jerv_learning_note` tool with origin retro and let it queue the lesson; the command below is the machine fallback. The amendment itself stays reference-free: the skill-drift gate rejects issue references in any section outside Merge floor, so carry the evidence in words or point at the guide entry — never inline reference markers.
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
|
|
101
|
+
jervcode learn --origin retro --surface skills --title "hotfix: <what misfired>" --body "<what; evidence; proposed amendment>"
|
|
102
102
|
```
|
package/skills/rcand/SKILL.md
CHANGED
|
@@ -73,8 +73,8 @@ Title first, verdict first. Name the resolved tag (never a placeholder like `vX.
|
|
|
73
73
|
|
|
74
74
|
## Retro
|
|
75
75
|
|
|
76
|
-
Before the final report, answer one question honestly: did this skill's own instructions misfire this run — ambiguous wording, a misleading message, or an environment failure it should have warned about? Process only, never the user's code or task. If yes, file one lesson and move on; a clean run is silent (hard cap: one per run). It lands on the
|
|
76
|
+
Before the final report, answer one question honestly: did this skill's own instructions misfire this run — ambiguous wording, a misleading message, or an environment failure it should have warned about? Process only, never the user's code or task. If yes, file one lesson and move on; a clean run is silent (hard cap: one per run). It lands on the owning board, deduplicated, and is fixed only through a reviewed PR — never edit the skill live. The retro is advisory: if the call fails, note it and continue. In-session, call the `jerv_learning_note` tool with origin retro and let it queue the lesson; the command below is the machine fallback. The amendment itself stays reference-free: the skill-drift gate rejects issue references in any section outside Merge floor, so carry the evidence in words or point at the guide entry — never inline reference markers.
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
|
|
79
|
+
jervcode learn --origin retro --surface skills --title "rcand: <what misfired>" --body "<what; evidence; proposed amendment>"
|
|
80
80
|
```
|
package/skills/release/SKILL.md
CHANGED
|
@@ -82,8 +82,8 @@ Title first, verdict first. Name the resolved tag (never a placeholder like `vX.
|
|
|
82
82
|
|
|
83
83
|
## Retro
|
|
84
84
|
|
|
85
|
-
Before the final report, answer one question honestly: did this skill's own instructions misfire this run — ambiguous wording, a misleading message, or an environment failure it should have warned about? Process only, never the user's code or task. If yes, file one lesson and move on; a clean run is silent (hard cap: one per run). It lands on the
|
|
85
|
+
Before the final report, answer one question honestly: did this skill's own instructions misfire this run — ambiguous wording, a misleading message, or an environment failure it should have warned about? Process only, never the user's code or task. If yes, file one lesson and move on; a clean run is silent (hard cap: one per run). It lands on the owning board, deduplicated, and is fixed only through a reviewed PR — never edit the skill live. The retro is advisory: if the call fails, note it and continue. In-session, call the `jerv_learning_note` tool with origin retro and let it queue the lesson; the command below is the machine fallback. The amendment itself stays reference-free: the skill-drift gate rejects issue references in any section outside Merge floor, so carry the evidence in words or point at the guide entry — never inline reference markers.
|
|
86
86
|
|
|
87
87
|
```bash
|
|
88
|
-
|
|
88
|
+
jervcode learn --origin retro --surface skills --title "release: <what misfired>" --body "<what; evidence; proposed amendment>"
|
|
89
89
|
```
|
package/skills/secrets/SKILL.md
CHANGED
|
@@ -163,6 +163,7 @@ Before your final report, answer one question honestly: did **this skill's own i
|
|
|
163
163
|
this run — ambiguous wording, a misleading message, or an environment failure it should have warned
|
|
164
164
|
about? (Process only — never the user's code or task; e.g. a canonical-name or tier mix-up, or a step
|
|
165
165
|
that risked echoing a value.) If yes, file **one** lesson and move on; a clean run is silent (hard cap:
|
|
166
|
-
one per run). It lands on the
|
|
167
|
-
skill live; the retro is advisory, so if the call fails, note it and continue
|
|
168
|
-
`
|
|
166
|
+
one per run). It lands on the owning board (deduped) and is fixed only via a reviewed PR — never edit the
|
|
167
|
+
skill live; the retro is advisory, so if the call fails, note it and continue. In-session, call the
|
|
168
|
+
`jerv_learning_note` tool with origin retro; the machine fallback is:
|
|
169
|
+
`jervcode learn --origin retro --surface skills --title "secrets: <what misfired>" --body "<what; evidence; proposed amendment>"`
|
package/skills/stage/SKILL.md
CHANGED
|
@@ -173,6 +173,7 @@ Before your final report, answer one question honestly: did **this skill's own i
|
|
|
173
173
|
this run — ambiguous wording, a misleading message, or an environment failure it should have warned
|
|
174
174
|
about? (Process only — never the user's code or task; e.g. a teardown that left a port bound, or a
|
|
175
175
|
Playwright output path aimed at the repo root.) If yes, file **one** lesson and move on; a clean run is
|
|
176
|
-
silent (hard cap: one per run). It lands on the
|
|
177
|
-
never edit the skill live; the retro is advisory, so if the call fails, note it and continue
|
|
178
|
-
`
|
|
176
|
+
silent (hard cap: one per run). It lands on the owning board (deduped) and is fixed only via a reviewed PR —
|
|
177
|
+
never edit the skill live; the retro is advisory, so if the call fails, note it and continue. In-session, call the
|
|
178
|
+
`jerv_learning_note` tool with origin retro; the machine fallback is:
|
|
179
|
+
`jervcode learn --origin retro --surface skills --title "stage: <what misfired>" --body "<what; evidence; proposed amendment>"`
|