@mutmutco/codex-plugin 4.3.16 → 4.3.18
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
|
@@ -381,6 +381,13 @@ collaborator list + the per-branch allowlist are the record — no separate rost
|
|
|
381
381
|
$OWNER/$REPO` remains the supported fallback; confirm `product required-check ruleset enforcement active`
|
|
382
382
|
with `bootstrap verify` before reporting bootstrap complete. MMI-Hub keeps its own three-job gate
|
|
383
383
|
(`cli`/`infra`/`docs`) — never apply the product ruleset there.
|
|
384
|
+
- **The ruleset requires an up-to-date head (#6263)** — the seeded reference sets
|
|
385
|
+
`strict_required_status_checks_policy: true` ("require branches to be up to date before merging"), so the
|
|
386
|
+
last of several parallel landings re-tests on the real combination instead of a base that lacked the
|
|
387
|
+
others (Jerv-JervCode#4289). `bootstrap apply --execute` and `ci reconcile --apply` re-PUT an existing
|
|
388
|
+
non-strict ruleset; `bootstrap verify` reports it as `product required-check ruleset requires an up-to-date
|
|
389
|
+
branch`. `pr merge` / `pr land` update a BEHIND head from the base with a merge commit and re-wait once —
|
|
390
|
+
see `docs/Guides/train-troubleshooting.md#head-behind-base`.
|
|
384
391
|
- **A brand-new repo cannot pass the gate you just installed — its first commit must carry a real project
|
|
385
392
|
(#2928).** The seeded `gate.yml` runs `GATE_INSTALL_CMD` + `GATE_CMD` (`npm ci` + `npm run check` by
|
|
386
393
|
default) **unconditionally**. An empty repo has no `package.json`, so the gate **fails on the seed PR
|
|
@@ -438,18 +445,6 @@ collaborator list + the per-branch allowlist are the record — no separate rost
|
|
|
438
445
|
- **`docs/index.md` is an optional generated routing index (#3545).** Apply may create `docs/index.md` once for link routing; it never rewrites it. Once the repo has docs of its own,
|
|
439
446
|
`mmi-cli oracle docs index --write` owns the routing artifact and `--check` gates drift — it is not product
|
|
440
447
|
current-state SSOT. Decision records under `docs/decisions/` remain append-only *why*.
|
|
441
|
-
- **Push the mandated fill past the active ruleset (#1807).** Deployable repos activate
|
|
442
|
-
`mmi-product-required-checks` during apply (its `bypass_actors` is empty by design), so the `gate` check is
|
|
443
|
-
required on `development`/`main` before the seeded README + architecture have ever produced a green run. The
|
|
444
|
-
fill above (#1520) then cannot be pushed, and not even `gh pr merge --admin` clears it (GH013 on push /
|
|
445
|
-
GraphQL rule violation on admin-merge). Sanctioned final step: in GitHub Settings > Rules > Rulesets >
|
|
446
|
-
`mmi-product-required-checks`, set **Enforcement** to **Disabled**, push/merge the filled `README.md` +
|
|
447
|
-
`architecture.md`, then set **Enforcement** back to **Active**. Programmatic equivalent: PUT the ruleset
|
|
448
|
-
with `enforcement: disabled` (a PATCH is rejected, #917/#922), push the fill, then PUT it back to
|
|
449
|
-
`active` (or re-run `mmi-cli devops ci reconcile --apply --repo $OWNER/$REPO` once the gate is green, which
|
|
450
|
-
should activate idempotently). Before reporting bootstrap complete, run `mmi-cli devops bootstrap verify` and
|
|
451
|
-
confirm `product required-check ruleset enforcement active` is OK — a parked ruleset is not done. Never
|
|
452
|
-
leave enforcement disabled.
|
|
453
448
|
- `.claude/settings.local.json` is local-only and gitignored; bootstrap seeds no committed `.claude/settings.json`.
|
|
454
449
|
- **No agent guide is committed — none, anywhere (#2921).** `mmi-no-agent-files-org` is active with no bypass
|
|
455
450
|
and restricts `AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `.claude/**`, `.codex/**`, `.agents/**` **and
|
|
@@ -36,6 +36,11 @@ name: gate
|
|
|
36
36
|
# (mmi-live / mmi-heavy) is the only CI merge gate. Rare Windows proof stays on the owner's machine or
|
|
37
37
|
# a future self-hosted Windows runner — never windows-latest.
|
|
38
38
|
# (seed touch: keep BOM digests in lockstep after classifier land.)
|
|
39
|
+
# harbour: unmanaged
|
|
40
|
+
# The nightly `schedule` cron below is GitHub's own clock by design (docs/schedules.md rule 5, #6270): it is
|
|
41
|
+
# the drift catcher for the PR gate (#6254), a required-check workflow that must not become a SCHEDULE# row
|
|
42
|
+
# armed and dispatched by the plane it otherwise never touches — the merge gate stays decoupled from the
|
|
43
|
+
# schedule plane, exactly as the deadman is.
|
|
39
44
|
on:
|
|
40
45
|
pull_request:
|
|
41
46
|
push:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_comment": "Repository-level ruleset requiring the product gate job (#1333). Apply via GitHub repo rulesets (master-admin) after bootstrap seeds gate.yml — the job name gate must match this context.",
|
|
2
|
+
"_comment": "Repository-level ruleset requiring the product gate job (#1333). Apply via GitHub repo rulesets (master-admin) after bootstrap seeds gate.yml — the job name gate must match this context. strict_required_status_checks_policy=true (#6263): the head must be up to date with the base before merging, so the last of several parallel landings re-tests on the real combination.",
|
|
3
3
|
"name": "mmi-product-required-checks",
|
|
4
4
|
"target": "branch",
|
|
5
5
|
"enforcement": "active",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{
|
|
14
14
|
"type": "required_status_checks",
|
|
15
15
|
"parameters": {
|
|
16
|
-
"strict_required_status_checks_policy":
|
|
16
|
+
"strict_required_status_checks_policy": true,
|
|
17
17
|
"required_status_checks": [
|
|
18
18
|
{ "context": "gate" }
|
|
19
19
|
]
|
package/skills/hotfix/SKILL.md
CHANGED
|
@@ -42,10 +42,9 @@ mmi-cli devops hotfix start --from <pr|sha>[,<pr|sha>…] --json --out "$r1"
|
|
|
42
42
|
|
|
43
43
|
`hotfix start` derives the PATCH from the latest Release tag on `origin/main`, branches `hotfix/vX.Y.Z` from `origin/main`, cherry-picks with `-x`, folds the version, pushes, and opens the main-base PR with its carries marker. Never duplicate those steps with raw branch, cherry-pick or PR commands.
|
|
44
44
|
|
|
45
|
-
2. Verify the main-base PR: the repo's local gate on the hotfix branch, the independent review the active agent doctrine requires, and the original issue's acceptance criteria. Then
|
|
45
|
+
2. Verify the main-base PR: the repo's local gate on the hotfix branch, the independent review the active agent doctrine requires, and the original issue's acceptance criteria. Then merge through Hub — it waits for required CI and demands the review verdict itself; the PR may squash, and the `-x` trailer must survive in the squash message:
|
|
46
46
|
|
|
47
47
|
```bash
|
|
48
|
-
mmi-cli devops pr checks-wait <number>
|
|
49
48
|
mmi-cli devops pr merge <number> --squash
|
|
50
49
|
```
|
|
51
50
|
|