@mutmutco/pi-plugin 4.5.226 → 4.5.227
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
package/skills/hotfix/SKILL.md
CHANGED
|
@@ -29,7 +29,15 @@ mmi-cli devops train doctor --lane hotfix --heal --json
|
|
|
29
29
|
|
|
30
30
|
Parse stdout only; never `2>&1`. `ready` false → stop and quote every blocker's `code` and `remedy`; an unread origin is never green. Findings carry `code`, `severity`, `source`, `remedy`, `anchor`.
|
|
31
31
|
|
|
32
|
-
Piping `mmi-cli devops api get` into a JSON parser: a refusal exits 1 with empty stdout, so guard both
|
|
32
|
+
Piping `mmi-cli devops api get` into a JSON parser: a refusal exits 1 with empty stdout, so guard both exit status and nonempty output. For one job's runner and timestamps, read the allowlisted `repos/{owner}/{repo}/actions/runs/{id}/jobs` and filter `jobs[]` by `id`; `actions/jobs/{id}` is refused (only its `/logs`, with `--out`). Do not retry that refused endpoint or broaden the allowlist.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Set repo, run_id and job_id to the target repository, run and job.
|
|
36
|
+
out=$(MMI_ACTOR=app mmi-cli devops api get "repos/$repo/actions/runs/$run_id/jobs") &&
|
|
37
|
+
[ -n "$out" ] && printf '%s' "$out" | node -e 'let s="";process.stdin.on("data",d=>s+=d).on("end",()=>{const j=JSON.parse(s).jobs.find(j=>String(j.id)===process.argv[1]);if(!j)throw new Error("Job not found in run jobs");console.log(JSON.stringify({runner_name:j.runner_name,started_at:j.started_at,completed_at:j.completed_at,conclusion:j.conclusion}))})' "$job_id"
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Do not parse stdout after a failing read, suppress its stderr, or merge stderr into the JSON.
|
|
33
41
|
|
|
34
42
|
## Apply
|
|
35
43
|
|
|
@@ -18,11 +18,15 @@ Use host worktrees and MMI cleanup; no personal Jerv is required. At handoff, st
|
|
|
18
18
|
session; never copy them forward from an earlier handoff, even labelled unverified (#9039).
|
|
19
19
|
Report skill misfires to Hub
|
|
20
20
|
with `mmi-cli learning skill-lesson --skill <name> --title <summary> --body-file <path>`.
|
|
21
|
-
Under the App pool,
|
|
21
|
+
Under the App pool, on raw `gh`
|
|
22
22
|
`--jq`/`-q`/`--template`/`--web` are refused: use
|
|
23
23
|
`MMI_ACTOR=app mmi-cli devops read issue view <id> --repo <owner/repo> --json comments`
|
|
24
24
|
(or `pr`/`run view` with their fields); filter returned JSON locally, e.g. by adding
|
|
25
25
|
`--jq '<expr>'` to that typed read (runs the local jq, never inside gh).
|
|
26
|
+
For the last N comments (here, 3), use the typed JSON read with local filtering, not raw gh formatters:
|
|
27
|
+
```bash
|
|
28
|
+
MMI_ACTOR=app mmi-cli devops read issue view <id> --repo <owner/repo> --json comments --jq '.comments[-3:][] | {createdAt, body}'
|
|
29
|
+
```
|
|
26
30
|
For run logs, never native `gh run view --log`/`--log-failed`: use
|
|
27
31
|
`MMI_ACTOR=app mmi-cli devops read run log <runId> --repo <owner/repo> [--failed | --job <name>] [--tail N]`.
|
|
28
32
|
A refused command writes no output, so a `> file` redirect leaves it empty or missing: read the
|