pi-gauntlet 5.16.2 → 5.16.3
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v5.16.3 - 2026-09-22
|
|
4
|
+
|
|
5
|
+
- The amendment human batch card carries what the reviewer funnel already knows: the header names the step that raised the batch and the plan consequence of applying as recommended (`from <trigger>; applying as recommended reopens <ids>; <phase consequence>`), each item quotes the reviewer's verdict verbatim on a `Reviewer:` line (`not reviewed - <rule>` for prefiltered items, `reviewer unavailable: <reason>` on a failed dispatch), and `Impact:` states the approved-contract shift per spec section instead of listing plan tasks. The finish-gate disposition bullet mirrors `Reviewer:` and `Impact:`. Supersedes the card fields of `doc/specs/2026-09-19-readable-amendment-gates.md`.
|
|
6
|
+
|
|
3
7
|
## v5.16.2 - 2026-09-22
|
|
4
8
|
|
|
5
9
|
- gatekeep-pr: `SKILL.md` is a flow-ordered body under 250 lines; the assessment phases, finding IDs and dispositions, consent table and courses, and the post-selection loop move to `skills/gatekeep-pr/reference/{assessment,findings,decision-menu,post-selection-loop}.md`, each rule owned once. The CI telemetry-salvage probe reads `reference/post-selection-loop.md`. (#43)
|
package/package.json
CHANGED
|
@@ -62,18 +62,19 @@ Expected reply - one line per item, nothing else:
|
|
|
62
62
|
<handle>: auto-apply | escalate - <one-line reason> - probed: <check> - <result>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
Fail closed: a dispatch error, an async handle, a silence-kill, or a missing or malformed line -> that item (every item when the dispatch failed) is `escalate`,
|
|
65
|
+
Fail closed: a dispatch error, an async handle, a silence-kill, or a missing or malformed line -> that item (every item when the dispatch failed) is `escalate`, its `Reviewer:` line `reviewer unavailable: <reason>`.
|
|
66
66
|
|
|
67
67
|
## 4. Human batch - one menu
|
|
68
68
|
|
|
69
|
-
Render only escalated and prefiltered items. Nothing symbol-dense above the fold; each item's `old -> new` sits under `Details`, after the footer.
|
|
69
|
+
Render only escalated and prefiltered items; `<N>` counts them. Nothing symbol-dense above the fold; each item's `old -> new` sits under `Details`, after the footer.
|
|
70
70
|
|
|
71
71
|
```
|
|
72
|
-
Spec amendments: <N> need your call
|
|
72
|
+
Spec amendments: <N> need your call - from <trigger>; applying as recommended <reopens | adds | removes> <task ids | no tasks>; <phase consequence | no phase change>.
|
|
73
73
|
|
|
74
74
|
* <handle> - <title>: <what>. <why>.
|
|
75
75
|
Example: <before -> after>
|
|
76
|
-
|
|
76
|
+
Reviewer: <one-line reason verbatim | not reviewed - <prefilter rule> | reviewer unavailable: <reason>>
|
|
77
|
+
Impact: <spec section>: <approved contract> -> <new contract>; ...
|
|
77
78
|
Recommended: <accept | alt-n> (<one-clause why>).
|
|
78
79
|
Alternatives: alt-1 <one line>; alt-2 <one line>
|
|
79
80
|
|
|
@@ -84,6 +85,10 @@ Details
|
|
|
84
85
|
<handle>: <location> - old: <text> -> new: <text>
|
|
85
86
|
```
|
|
86
87
|
|
|
88
|
+
`<trigger>` is the step the main loop is running when the batch forms: `the spec review`, `planning Task <n>`, `Task <n> BLOCKED`, `the verify-phase code review (FIX_FIRST <ids>)`, `the finish-gate council-edit revert`, else `the <phase> phase`; `your request` only for an amend the user raised in prose. The plan clause is the section 5 aftermath as `recommended` would land, over reviewer-cleared plus rendered items, read from the plan file and tracker state - call no `plan_tracker`/`phase_tracker` before the reply: any of `reopens <ids>`, `adds <n> task(s)`, `removes <ids>`, comma-joined (`reopens no tasks` when the plan is untouched), then `; restarts implement, then verify` when a reopen lands in `verify`/`ship`, else `; no phase change`.
|
|
89
|
+
|
|
90
|
+
`Reviewer:` quotes the `<one-line reason>` of the section 3 reply verbatim; the `probed:` half stays in the commit body; a prefiltered item carries `not reviewed - <the rule that prefiltered it>`. `Impact:` restates the design-contract shift from `location` in the reader's words, never quoted spec text, one clause per touched decision, `;`-joined; `(none) -> <new>` for a contract added, `<old> -> (removed)` for a contract removed. `Details` keeps the verbatim `old -> new`.
|
|
91
|
+
|
|
87
92
|
`Alternatives:` appears only when genuine ones exist; otherwise the item's choices are exactly `accept` and `custom(...)`. Reply grammar: `1` applies every recommendation; `2:` overrides the named handles, omitted handles keep theirs, a handle at most once; `custom(<effect>)` is free text and may redirect anywhere ("keep the spec, fix the parser"). A redirect away from the spec drops the item (still recorded in the batch commit body as `custom(<effect>)`) and returns the finding to its calling loop. Invalid handle or choice -> reprompt for that item only, keep every valid pick, never reopen the gate. Take no action before the reply.
|
|
88
93
|
|
|
89
94
|
## 5. Apply, aftermath, commit
|
|
@@ -110,7 +115,7 @@ Called from `finishing-a-development-branch` Step 3.5, before the carried-open m
|
|
|
110
115
|
1. Draft an item (step 1) for each gap with `recommended: accept`, verdict `DRIFTED` or `PARTIAL`, not `UNAUTHORIZED`, whose `origin` is not an acceptance criterion - the `accept-into-spec` edit built from its `origin` + `evidence`. Every other gap skips the funnel and stays a menu row.
|
|
111
116
|
2. Review (step 3), apply and commit (step 5).
|
|
112
117
|
3. Re-audit against the amended spec; regenerate the inventory. Only concerns the re-audit closed drop out; sibling concerns keep their rows.
|
|
113
|
-
4. Render the disposition menu for what remains - escalated items are ordinary rows there, never a second menu. Rows whose recommended disposition edits the spec carry the readable card fields (`what`, `why`, `Example:`) on the bullet, adapted to the disposition bullet grammar. A human-selected spec-changing disposition (`accept-into-spec`, `rescope-into-spec`, state-changing `custom`) is already approved: it applies at the protocol's execute-order step 2, bypasses steps 2-4 of this surface, and is recorded as today (`Gn - <title>: <disposition>`); an auto-applied item is recorded `Gn - <title>: accept-into-spec (auto-applied)`.
|
|
118
|
+
4. Render the disposition menu for what remains - escalated items are ordinary rows there, never a second menu. Rows whose recommended disposition edits the spec carry the readable card fields (`what`, `why`, `Example:`, `Reviewer:`, `Impact:`) on the bullet, adapted to the disposition bullet grammar. A human-selected spec-changing disposition (`accept-into-spec`, `rescope-into-spec`, state-changing `custom`) is already approved: it applies at the protocol's execute-order step 2, bypasses steps 2-4 of this surface, and is recorded as today (`Gn - <title>: <disposition>`); an auto-applied item is recorded `Gn - <title>: accept-into-spec (auto-applied)`.
|
|
114
119
|
|
|
115
120
|
## Worked example
|
|
116
121
|
|
|
@@ -130,19 +135,22 @@ Eight synthetic items modelled on one real run. Items 1-5 and 8 reach the review
|
|
|
130
135
|
The reviewer clears items 1-5; nothing is applied yet. The batch renders items 6-8 (items 1-5 apply together with the accepted ones after the reply):
|
|
131
136
|
|
|
132
137
|
```
|
|
133
|
-
Spec amendments: 3 need your call.
|
|
138
|
+
Spec amendments: 3 need your call - from Task 7 BLOCKED; applying as recommended reopens Tasks 4, 6; no phase change.
|
|
134
139
|
|
|
135
140
|
* scope - ROP feed out of scope: adds an out-of-scope line for the ROP feed to Non-goals. Drops a deliverable you approved.
|
|
136
141
|
Example: regulator feed = NERC filings + ROP announcements -> NERC filings only
|
|
137
|
-
|
|
142
|
+
Reviewer: not reviewed - removes approved scope
|
|
143
|
+
Impact: Non-goals: the ROP feed ships this release -> (removed)
|
|
138
144
|
Recommended: accept (the ROP source has no stable page this release).
|
|
139
145
|
* count - Fewer announcements per fetch: the acceptance criterion drops from at least 3 to at least 1. Lowers the bar you set.
|
|
140
146
|
Example: 3 items per fetch -> 1
|
|
141
|
-
|
|
147
|
+
Reviewer: not reviewed - acceptance-criteria location
|
|
148
|
+
Impact: Acceptance criteria: a fetch yields three or more announcements -> one or more
|
|
142
149
|
Recommended: accept (the captured fixture has one item; the criterion assumed three).
|
|
143
|
-
* bytes - Fixture byte count: the verification line changes from 41,208 to 43,117 bytes.
|
|
150
|
+
* bytes - Fixture byte count: the verification line changes from 41,208 to 43,117 bytes. The verification line would assert a size nobody measured.
|
|
144
151
|
Example: 41,208 bytes -> 43,117 bytes
|
|
145
|
-
|
|
152
|
+
Reviewer: rubric (a) fails - no measurement cited for the new byte count
|
|
153
|
+
Impact: Verification: the fixture measures 41,208 bytes -> 43,117 bytes
|
|
146
154
|
Recommended: alt-1 (measure first; apply whatever `wc -c` reports).
|
|
147
155
|
Alternatives: alt-1 replace the number with the `wc -c` result
|
|
148
156
|
|
|
@@ -11,7 +11,7 @@ Each bullet:
|
|
|
11
11
|
- `<handle>` leads the bullet and is a short unique human word derived from the title (`Cache coverage` -> `cache`); on collision append a digit. It is the token option 2 targets. When a gap split and no clean word fits, use the bare `Gn/Cn`; a single-concern gap uses its gap ID `Gn`.
|
|
12
12
|
- The shared options line sits below the bullets: `Other options per item: fix-now / accept / rescope / follow-up / custom`, listing the options **generally available across items**. When a specific item's availability deviates - an option unavailable for it, or an `UNAUTHORIZED` item whose `rescope` is unavailable and whose `fix-now` means removal - note that deviation as a short parenthetical on **that item's bullet** (one clause, not a block), e.g. `(rescope N/A: scope creep)`. The shared line appears **only in the carried-open render**, never in the zero-gap path. Full per-option effects only on request, or when option 2 targets an unclear choice.
|
|
13
13
|
- Group items under one recommended line only when they share a disposition and rationale; each grouped handle repeats its title.
|
|
14
|
-
- A bullet whose recommendation edits the spec (`accept-into-spec`, `rescope-into-spec`, or an item the pre-menu funnel escalated) carries, indented under it, `what` and `why` as one sentence each
|
|
14
|
+
- A bullet whose recommendation edits the spec (`accept-into-spec`, `rescope-into-spec`, or an item the pre-menu funnel escalated) carries, indented under it, `what` and `why` as one sentence each, `Example: <before -> after>`, `Reviewer: <one-line reason verbatim | not reviewed - <the Conformance entry step 1 exclusion that kept it out> | reviewer unavailable: <reason>>`, and `Impact: <spec section>: <approved contract> -> <new contract>; ...` - the readable card from `../../brainstorming/reference/amendment-surface.md`, adapted to this bullet. Escalated items are ordinary rows here; no second amendment menu renders.
|
|
15
15
|
- Availability per concern comes from the reference's single availability table - apply it against current context (worktree state, `maxFixRounds`, ownership, resource accessibility), do not restate it. `UNAUTHORIZED` bullets ask the reference's question verbatim (`Should this unrequested behavior become part of the current workflow?`); `rescope-into-spec` is shown **unavailable** (not dropped) and `fix-now` means **removal** of the unrequested code.
|
|
16
16
|
- `revert conformance fix Gn`, when the gap has an auto-applied fix, renders on the shared options line as a **separate one-off action** - never inside a bullet's recommendation and never in the option-2 list. Name the parent gap and warn that revert undoes the entire gap-level commit (see "Revert semantics").
|
|
17
17
|
|