@mutmutco/cli 4.5.229 → 4.5.230

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/README.md CHANGED
@@ -58,6 +58,50 @@ Run `mmi-cli --help` for the task map, `mmi-cli commands --json` for bounded mac
58
58
  `mmi-cli commands --all --json` manifest names every implementation module and consumer. That inventory
59
59
  is checked when the runtime tree is assembled, so a sixth command domain cannot land ownerless.
60
60
 
61
+ ## Preparing a PR and reading status
62
+
63
+ `mmi-cli devops pr create` collects independent issue, claim, docs-index, test-policy and ref findings
64
+ in one preparation report. Fix all listed findings before retrying. The read phase never posts claim
65
+ markers. A same-branch resume restamps only after every required check passes; an unsuccessful restamp
66
+ stops creation and is not retried automatically.
67
+
68
+ Preparation binds the head and target base commits and checks their identity again before
69
+ writes. Docs and policy checks read those committed objects, including the candidate's policy and
70
+ commit trailers, so a dirty local repair cannot certify the pushed branch. A different checkout or
71
+ candidate objects unavailable locally produce an explicit skip; failed reads produce unavailable
72
+ findings. These checks do not replace required CI or verification of the eventual combined candidate.
73
+
74
+ An absent same-repository head still publishes automatically when this checkout owns that exact branch
75
+ and commit and its push target matches. Preparation observes that proof without writing; after every
76
+ check passes, one push creates the absent ref and verifies the published commit. A competing ref,
77
+ changed proof or ambiguous push stops creation without overwriting or retrying. When `--base` is
78
+ omitted, `branch.<head>.gh-merge-base` wins over the repository default, matching `gh pr create`.
79
+
80
+ `mmi-cli status --json` retains successful legacy fields and adds typed `observations` for each source.
81
+ An unavailable collection is `null`, never an empty array; unavailable stage state is `null`, never
82
+ `running: false`. A successful empty read stays `[]`. Board observations preserve source, build time,
83
+ event cursor, credential provenance, partial-read warnings and explicit stale age. Text status labels
84
+ unavailable and stale answers. A missing stage file means not running; malformed or unreadable state
85
+ means unavailable. Repair the named read before treating a status count as current.
86
+
87
+ ## Auditing test-policy trailers
88
+
89
+ `mmi-cli tests policy --json --base <base>` uses the same override reader as the test-command gate.
90
+ Its `overriddenBy` receipt retains the original commit SHA, complete Git-unfolded reason and scope.
91
+ Ordinary trailers agree with `git log --format='%(trailers:key=Test-Policy-Override,valueonly,unfold)'`.
92
+ If a final contiguous `Co-authored-by:` paragraph hides the prior trailer block, the reader removes
93
+ only that paragraph and its optional `---------` separator before running
94
+ `git interpret-trailers --parse --unfold`. The receipt records `messageTransform` as
95
+ `strip-terminal-coauthors` or `strip-squash-separator-coauthors`; the source commit is never rewritten.
96
+ To audit that case, inspect the receipt's SHA with `git show -s --format=%B <sha>`, remove exactly the
97
+ recorded terminal footer, and pass the remaining message to Git's interpreter. That message shape
98
+ alone does not establish GitHub provenance. Intervening prose, mixed footer text, malformed wrapped
99
+ reasons, unknown scopes and untrusted ranges remain subject to the existing refusals.
100
+
101
+ Native queues can append this footer even for a single source commit. Source preparation is not
102
+ combined-message verification: install the matching shared reader in the CI consumer, then require
103
+ the actual queue candidate to pass test policy and all other required checks.
104
+
61
105
  ## Capability seams — mmi-cli vs jerv-cli (#3000)
62
106
 
63
107
  `mmi-cli` is the **org** CLI (rules delivery, board/issue/PR work, registry, secrets, release train,