@mutmutco/pi-plugin 4.5.224 → 4.5.225

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.5.224",
3
+ "version": "4.5.225",
4
4
  "description": "MMI workflow skills and org gates delivery.",
5
5
  "author": {
6
6
  "name": "MMI Future",
@@ -21,7 +21,7 @@ accepts an incomplete board. The CLI partitions rows into **Yours**, **Free to c
21
21
  stamps (4 hours without work) hold nothing. Partition rules, stamp details and `--out` rationale:
22
22
  [reference.md](reference.md).
23
23
 
24
- **Under the App pool, never type raw `gh` for a read** (`gh issue list/view --jq`, `gh run view --jq`, `gh api -q` all bounce). Use `MMI_ACTOR=app mmi-cli devops read issue view <n> --repo <owner/repo> --json <fields>` (or `issue list`, `pr view`, `run view`); `--jq '<expr>'` on that typed read filters locally. Filter in a pipe or save output (`>`, `2>&1`, `--out`) under this worktree's `.jerv/tmp/` (`mkdir -p .jerv/tmp` first), never `../` or a sibling path: the workspace output guard refuses those. Body edits are read-then-edit: `MMI_ACTOR=app mmi-cli devops read issue view <n> --repo <owner/repo> --json body > .jerv/tmp/issue-body.json`, append or filter the JSON locally (`node -e`; the typed read's own `--jq` also filters locally), then write back with `gh issue edit <n> --repo <owner/repo> --body-file .jerv/tmp/issue-body.md` — `gh` writes pass under the pool.
24
+ **Under the App pool, never type raw `gh` for a read** (`gh issue list/view --jq`, `gh run view --jq`, `gh api -q` all bounce). Use `MMI_ACTOR=app mmi-cli devops read issue view <n> --repo <owner/repo> --json <fields>` (or `issue list`, `pr view`, `run view`); `--jq '<expr>'` on that typed read filters locally. Filter in a pipe or save output (`>`, `2>&1`, `--out`) under this worktree's `.jerv/tmp/` (`mkdir -p .jerv/tmp` first), never `../` or a sibling path: the workspace output guard refuses those. Body edits are read-then-edit: `MMI_ACTOR=app mmi-cli devops read issue view <n> --repo <owner/repo> --json body > .jerv/tmp/issue-body.json`, append or filter the JSON locally (`node -e`; the typed read's own `--jq` also filters locally), then write back with `gh issue edit <n> --repo <owner/repo> --body-file .jerv/tmp/issue-body.md` — `gh` writes pass under the pool. When `node -e` reads saved JSON, pass an absolute path or use `JSON.parse(require('fs').readFileSync(process.argv[1],'utf8'))`: `require()` of a relative path (e.g. `tmp\board.json` from `cygpath -w`) throws MODULE_NOT_FOUND.
25
25
 
26
26
  ## Step 2 — render it
27
27
 
@@ -60,7 +60,12 @@ mmi-cli oracle board claim <ref> <ref> <ref> --json
60
60
 
61
61
  Announce issue/PR counts; refresh `mmi-cli oracle board read` this session and select ordinary claims from **Free to claim**. Read every result: failures exit nonzero. On conflict, do not blindly retry: refresh, pick another candidate or coordinate a handoff; `--force` only for an owner-authorized intentional takeover. Run writes separately, never `;`; dependent follow-ups use `&&`.
62
62
 
63
- Follow printed owner rulings; record new ones with `mmi-cli oracle issue decision`. One concurrent worktree per batch: [reference.md](reference.md).
63
+ Run each `mmi-cli oracle issue create` as its own simple command with plain double-quoted arguments — never a shell
64
+ helper function or nested escaped quotes around a long body in the same call: the workspace env-enumeration guard
65
+ blocks any command whose quoting it cannot prove inert. Write the body to a file under `.jerv/tmp/` and pass
66
+ `--body-file` (`--title-file` for titles with backticks).
67
+
68
+ Follow printed owner rulings; record new ones with `mmi-cli oracle issue decision`. One concurrent worktree per batch: [reference.md](reference.md). Always pass `--surface <value>` explicitly on every `mmi-cli oracle issue create` (surface inference is strict and bounces when the body merely mentions a path); use `--no-surface` only for genuinely exempt filings.
64
69
 
65
70
  With several task lanes in one session, pass `worktree: <the mmi-worktrees/<Repo>/<issue>-<slug> path jerv_worktree_create reported>` to `jerv_worktree_exec` / `jerv_worktree_land` every time; they refuse to guess (#5629). While any mmi-worktrees lane is registered for this repo, run focused tests/gates from the task-worktree root `jerv_worktree_create` reported — never the primary checkout; the test policy refuses it (`test-command-untrusted-worktree-cwd`).
66
71
 
@@ -65,6 +65,10 @@ and PR facts.
65
65
  full `closingIssuesReferences` list and moves **each** issue to Done, verifying every one and naming any
66
66
  that did not move. So a bundle is a first-class landing, not a trick.
67
67
 
68
+ Preflight: when the lane changed `docs/`, run `mmi-cli oracle docs index --write`, then commit and push BEFORE
69
+ `mmi-cli devops pr create` — freshness is checked at the pushed commit even under an active merge queue, so never
70
+ defer index regeneration to after merge.
71
+
68
72
  Materialize the body as a real UTF-8 file and pass its path; do not pipe it to `--body-file -`. Read
69
73
  `mmi-cli explain devops pr create --json` before the write — flags change.
70
74
 
@@ -70,6 +70,10 @@ jobs:
70
70
  if: ${{ steps.development-gate.outputs.reuse != 'true' }}
71
71
  env:
72
72
  NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73
+ # Suite only: generic product gates must not load or require design-agent content.
74
+ - name: Check kit agent-file drift
75
+ if: ${{ steps.development-gate.outputs.reuse != 'true' }}
76
+ uses: mutmutco/MMI-Hub/.github/actions/check-kit-agent-files@{{GATE_RUNNER_SHA}}
73
77
  - uses: mutmutco/MMI-Hub/.github/actions/run-with-budget@{{GATE_BUDGET_SHA}}
74
78
  if: ${{ steps.development-gate.outputs.reuse != 'true' }}
75
79
  with: