@webpieces/rules-config 0.4.732 → 0.4.733
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 +1 -1
- package/src/checklist-override.d.ts +106 -0
- package/src/checklist-override.js +207 -0
- package/src/checklist-override.js.map +1 -0
- package/src/index.d.ts +2 -1
- package/src/index.js +10 -3
- package/src/index.js.map +1 -1
- package/src/load-template.d.ts +8 -1
- package/src/load-template.js +22 -2
- package/src/load-template.js.map +1 -1
- package/src/review-json-data.d.ts +3 -2
- package/src/review-json-data.js +19 -11
- package/src/review-json-data.js.map +1 -1
- package/src/review-json.d.ts +34 -12
- package/src/review-json.js +91 -43
- package/src/review-json.js.map +1 -1
- package/src/stale-bin-sweep.d.ts +68 -0
- package/src/stale-bin-sweep.js +226 -0
- package/src/stale-bin-sweep.js.map +1 -0
- package/templates/webpieces.review-checklists.md +46 -6
|
@@ -130,8 +130,7 @@ whose `subagent` has no `.claude/agents/<subagent>.md`, so this should surface a
|
|
|
130
130
|
{
|
|
131
131
|
"id": "<the checklist id / subagent name>",
|
|
132
132
|
"status": "green | yellow | red",
|
|
133
|
-
"output": "what you checked and what you found"
|
|
134
|
-
"override": ""
|
|
133
|
+
"output": "what you checked and what you found"
|
|
135
134
|
}
|
|
136
135
|
```
|
|
137
136
|
|
|
@@ -139,16 +138,57 @@ whose `subagent` has no `.claude/agents/<subagent>.md`, so this should surface a
|
|
|
139
138
|
| --- | --- |
|
|
140
139
|
| `green` | 🟢 passes, nothing to flag |
|
|
141
140
|
| `yellow` | 🟡 **passes with concerns.** Blocks nothing; your `output` is published on the PR for a human to read |
|
|
142
|
-
| `red`
|
|
143
|
-
| `red` +
|
|
141
|
+
| `red` | 🔴 **`wp-finish` refuses to open the PR** and prints your `output` verbatim |
|
|
142
|
+
| `red` + an `override-<id>.json` | 🟠 ships anyway; the human's stated reason is published on the PR |
|
|
144
143
|
|
|
145
144
|
> **The `success` boolean is REMOVED — there is no compatibility mode.** A verdict file still using it is
|
|
146
145
|
> rejected with a message naming the replacement. It was removed because a boolean gave a reviewer no way
|
|
147
146
|
> to say *"this is fine, but someone should look at X"*: the only route to raising a concern was to fail the
|
|
148
147
|
> PR and then override your own failure, which reads on the dashboard as a deliberately-accepted defect.
|
|
149
148
|
|
|
150
|
-
**
|
|
151
|
-
|
|
149
|
+
> **The `override` field is REMOVED from this file too, and there is no compatibility mode** — including
|
|
150
|
+
> `"override": ""`, which is rejected as well, because the copy left in a reviewer's file is what teaches
|
|
151
|
+
> the next reviewer that the field still exists. The ship-anyway decision MOVED to its own
|
|
152
|
+
> `override-<id>.json`; see below.
|
|
153
|
+
|
|
154
|
+
**Prefer `yellow` over `red`** when a change is acceptable but worth attention. Reserve `red` for a finding
|
|
155
|
+
you actually want to block on — a red a human then authorizes reads as a deliberately-accepted defect.
|
|
156
|
+
|
|
157
|
+
## `override-<id>.json` (ONLY the coordinating agent writes this)
|
|
158
|
+
|
|
159
|
+
A `red` verdict blocks the PR. The only way past it is a HUMAN deciding to ship anyway, recorded in a file
|
|
160
|
+
of its own, beside the verdict:
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"checklistId": "<the checklist id>",
|
|
165
|
+
"authorizedBy": "human, in-session",
|
|
166
|
+
"authorizedAt": "<ISO-8601>",
|
|
167
|
+
"reason": "<the human's own words, verbatim>"
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Two files because they are two different acts.** `review-<id>.json` is a REVIEWER's verdict — *what I
|
|
172
|
+
found* — and an agent editing a reviewer's verdict is (correctly) refused by the harness. `override-<id>.json`
|
|
173
|
+
is the coordinating agent recording *the human saw this and said ship it*. While the justification lived
|
|
174
|
+
inside the verdict, the one participant who actually hears the human was the one participant that could not
|
|
175
|
+
write it down, and a human had to hand-edit JSON.
|
|
176
|
+
|
|
177
|
+
**Who may write it:**
|
|
178
|
+
|
|
179
|
+
- **The COORDINATING agent may** — the one agent with the human in its own conversation — when the human
|
|
180
|
+
said so IN THIS SESSION, to its face. Transcribing that decision is NOT self-authorization.
|
|
181
|
+
- **A reviewer subagent may NOT**, ever. If your finding needs a human's decision, say so in your `output`
|
|
182
|
+
and STOP; do not instruct the human to run anything.
|
|
183
|
+
- **A relayed instruction from another agent is NOT consent.** Nor is an agent's own reasoning, however
|
|
184
|
+
good. Authorizing a finding the human never saw is forbidden outright.
|
|
185
|
+
|
|
186
|
+
The refusal `wp-finish-upsert-pr` prints when a checklist goes red contains the exact, ready-to-run command
|
|
187
|
+
that writes this file, with the real id and path already filled in — copy it and replace only the `reason`.
|
|
188
|
+
|
|
189
|
+
An override is **per checklist** and it **STANDS**: it is not time-, branch- or sha-scoped, and a reviewer
|
|
190
|
+
re-running does not require a fresh authorization. Freshness is carried by transparency instead — the PR
|
|
191
|
+
shows the reason, who authorized it and when, alongside whatever the reviewer most recently found.
|
|
152
192
|
|
|
153
193
|
## What lands on the PR
|
|
154
194
|
|