@mutmutco/pi-plugin 4.6.9 → 4.6.11

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mutmutco/pi-plugin",
3
- "version": "4.6.9",
3
+ "version": "4.6.11",
4
4
  "description": "MMI workflow skills and org gates delivery.",
5
5
  "author": {
6
6
  "name": "MMI Future",
@@ -20,7 +20,10 @@ One call; the JSON carries `viewer`, `repo` and the project title. Use `primary`
20
20
  `secondary` for other repos on the Project. Without `--flat`, `board read --json` returns an object
21
21
  `{project, viewer, repo, primary, secondary, warnings, partial}` whose `primary` and `secondary` are bucket
22
22
  objects `{userOwned, claimable, taken, unownedInFlight}` of item arrays (no top-level `items` array), so filter
23
- a bucket (e.g. `report.primary.claimable`) or pass `--json --flat`, never `(j.items||j).filter`. Partial reads
23
+ a bucket (e.g. `report.primary.claimable`) or pass `--json --flat`, never `(j.items||j).filter`. `--flat` rows
24
+ are `{ref,number,title,status,assignees,labels,bucket,claim,openPullRequests}` (`claim` is the parsed mmi-claim
25
+ evidence object, null when unclaimed; `openPullRequests` lists the OPEN PRs whose closing-issue body links name
26
+ the item — on the full JSON object that list lives at `report.pullRequests`, never `openPullRequests`). Partial reads
24
27
  exit nonzero; `--allow-partial` only when the dev accepts an incomplete board. The CLI partitions rows into
25
28
  **Yours**, **Free to claim** and **Taken**; stale stamps (4 hours without work) hold nothing. Partition rules,
26
29
  stamp details and `--out` rationale: [reference.md](reference.md).
@@ -62,7 +65,7 @@ Present the plan — batch count, issue count, one line per batch naming its sha
62
65
  mmi-cli oracle board claim <ref> <ref> <ref> --json
63
66
  ```
64
67
 
65
- Announce issue/PR counts; refresh `mmi-cli oracle board read` immediately before each claim (a list read earlier in the session may already be stale) and select ordinary claims from **Free to claim**. Read every result: failures exit nonzero. On conflict, do not blindly retry: stop that batch, never retry the same ref, refresh and reselect from the fresh **Free to claim** list, or coordinate a handoff; `--force` only for an owner-authorized intentional takeover. Run writes separately, never `;`; dependent follow-ups use `&&`.
68
+ Announce issue/PR counts; refresh `mmi-cli oracle board read` immediately before each claim (a list read earlier in the session may already be stale) and select ordinary claims from **Free to claim**. A cached read states its provenance — the render prints `source: cache · built <timestamp> · fresh|stale` and `--json` carries `builtAt` — so if a read in the same turn/window already returned a fresh snapshot and no board write has intervened since, re-reading the same `builtAt` snapshot buys no new information: reuse it instead of re-reading. Read every result: failures exit nonzero. On conflict, do not blindly retry: stop that batch, never retry the same ref, refresh and reselect from the fresh **Free to claim** list, or coordinate a handoff; `--force` only for an owner-authorized intentional takeover. Run writes separately, never `;`; dependent follow-ups use `&&`.
66
69
 
67
70
  Run each `mmi-cli oracle issue create` as its own simple command. Any command whose text must carry quote
68
71
  characters — an issue body, an inline `node -e` / `bash -c` one-liner — is written to a file, never spliced: a
@@ -56,7 +56,12 @@ are recorded per worktree, so a receipt from another tree does not clear the gua
56
56
  a lane root or sibling worktree (use `git -C` / `npm --prefix` instead, #3187). A historical main-based
57
57
  hotfix worktree without test-policy.json chains
58
58
  `mmi-cli tests policy --json --base origin/main --policy-ref <current origin/development commit> && <focused test>`
59
- in one command (#3243). Complete the documentation preflight below before pushing.
59
+ in one command (#3243). A lane diff is only readable from revisions the task worktree actually has (#9627):
60
+ take the head from `HEAD` or `origin/<base>`, or prove the sha first with
61
+ `git rev-parse --verify <sha>^{commit}` (fetching that commit when it is absent), and never gate the
62
+ `mmi-cli tests policy --base <comparison-base> && <focused test>` chain on an unverified short sha — `git` exits 128 there, so the
63
+ `&&` short-circuits and the policy run is silently skipped while the receipt looks missing rather than failed.
64
+ Complete the documentation preflight below before pushing.
60
65
  Open a PR through `mmi-cli devops pr create` with a closing issue link, and land through
61
66
  `mmi-cli devops pr land`. Verify required checks, merge, issue closure, and cleanup before calling
62
67
  the implementation complete. A merged implementation is not a production release.
@@ -12,7 +12,7 @@ Every refusal and every doctor blocker names its `code` and `anchor`: open the f
12
12
 
13
13
  ## Merge floor
14
14
 
15
- - **Ordinary development PRs land with `mmi-cli devops pr land <number>`.** The rules below are for the train's own merges.
15
+ - **Ordinary development PRs land with `mmi-cli devops pr land <number>`.** If a merge-queue group leaves the queue with no failed check, `pr land` re-queues once (or rerun `mmi-cli devops pr land <number>` once); a refused land is a stop to report verbatim — never fall back to a hand/admin merge, actor override (`MMI_ACTOR=personal`), or interim workaround. The rules below are for the train's own merges.
16
16
  - **Never squash-merge a tagged commit (#3167).** A squash re-mints the SHA and orphans the tag, so tag-anchored checks mis-read. Any merge that carries an already-tagged commit — the `main → development` roll-forward, an alignment PR, a hotfix fold PR — lands as a true merge: `mmi-cli devops pr merge <number> --auto --merge` (or `--wait --merge`); `--wait` alone still squashes. The hotfix main-base PR itself may squash: its tag lands after, on the merged `main` HEAD, and the `-x` trailer must survive the squash message.
17
17
  - **A refused train is a stop, never a license to finish by hand.** Every fail-closed halt — doctor blocker, authority probe, coverage guard, untolerated conflict, required checks, stray tag, ledger — ends the run. Fix the cause on `development` through a normal PR and rerun the train; never hand-resolve on `main`, hand-cherry-pick, bare-push a train branch, ack to save time, or bypass a check.
18
18
  - **Probe the latest Release tag, not branches or stale local tags (#2734).** Queue: `mmi-cli devops read pr queue <number> --repo <owner/repo> --json`; gh rejects `mergeQueueEntry`.