@webpresso/plugin-antigravity 0.0.0-stage → 0.0.17
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/LICENSE +104 -0
- package/bin/wp +276 -0
- package/hooks.json +54 -0
- package/mcp_config.json +11 -0
- package/package.json +37 -3
- package/plugin-skill-ownership.json +105 -0
- package/plugin.json +11 -0
- package/skills/ai-deslop/SKILL.md +96 -0
- package/skills/antigravity/SKILL.md +52 -0
- package/skills/autopilot/SKILL.md +82 -0
- package/skills/autoresearch/SKILL.md +49 -0
- package/skills/best-practice-research/SKILL.md +102 -0
- package/skills/browse/SKILL.md +25 -0
- package/skills/claude/SKILL.md +52 -0
- package/skills/codex/SKILL.md +52 -0
- package/skills/deep-interview/LICENSE.txt +28 -0
- package/skills/deep-interview/SKILL.md +270 -0
- package/skills/deep-research/SKILL.md +259 -0
- package/skills/delivery-program/SKILL.md +62 -0
- package/skills/design-review/SKILL.md +26 -0
- package/skills/devex-review/SKILL.md +28 -0
- package/skills/fix/SKILL.md +218 -0
- package/skills/handoff/SKILL.md +99 -0
- package/skills/hooks-doctor/SKILL.md +153 -0
- package/skills/investigate/SKILL.md +83 -0
- package/skills/lore-protocol/SKILL.md +84 -0
- package/skills/opencode-go/SKILL.md +52 -0
- package/skills/plan-ceo-review/SKILL.md +27 -0
- package/skills/plan-design-review/SKILL.md +27 -0
- package/skills/plan-devex-review/SKILL.md +19 -0
- package/skills/plan-eng-review/SKILL.md +24 -0
- package/skills/plan-refine/SKILL.md +122 -0
- package/skills/plan-refine/references/full-methodology.md +654 -0
- package/skills/ralplan/SKILL.md +196 -0
- package/skills/team/SKILL.md +121 -0
- package/skills/tech-debt/SKILL.md +95 -0
- package/skills/testing-philosophy/SKILL.md +53 -0
- package/skills/testing-philosophy/references/full-testing-philosophy.md +519 -0
- package/skills/tooling-friction/SKILL.md +234 -0
- package/skills/tph/SKILL.md +35 -0
- package/skills/ultragoal/SKILL.md +304 -0
- package/skills/verify/SKILL.md +399 -0
- package/README.md +0 -3
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: skill
|
|
3
|
+
slug: verify
|
|
4
|
+
title: Verify
|
|
5
|
+
status: active
|
|
6
|
+
scope: repo
|
|
7
|
+
applies_to: [agents]
|
|
8
|
+
related: [testing-philosophy, tph, land-policy]
|
|
9
|
+
created: "2026-05-07"
|
|
10
|
+
last_reviewed: "2026-08-03"
|
|
11
|
+
name: verify
|
|
12
|
+
description: "Post-impl quality gate. Use for verify, merge-ready, land, done. Local=0 outside voice."
|
|
13
|
+
argument-hint: "<target> [--full|--merge-ready] where target is: package|file|plan-slug|all"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Verify
|
|
17
|
+
|
|
18
|
+
## Use when (freeform)
|
|
19
|
+
|
|
20
|
+
- "verify", "are we done?", "merge-ready", "land", "merge it" (with land-policy)
|
|
21
|
+
- final completeness before push or PR claim
|
|
22
|
+
- **Not** for multi-host review swarms — default local has **0** outside voice
|
|
23
|
+
|
|
24
|
+
Post-implementation quality gate. Run after implementation exists, before claiming `done`.
|
|
25
|
+
|
|
26
|
+
`/fix` owns investigation-if-missing, root-cause analysis, and the minimal
|
|
27
|
+
repair. `/verify` owns the broader question: **is this work actually complete,
|
|
28
|
+
integrated, and free of stale garbage?**
|
|
29
|
+
|
|
30
|
+
## Modes
|
|
31
|
+
|
|
32
|
+
| Invocation | Outside voice | When |
|
|
33
|
+
| -------------------------------- | ---------------------------------- | ------------------------------ |
|
|
34
|
+
| `/verify <target>` (default) | **0** | Local completeness / iteration |
|
|
35
|
+
| `/verify <target> --full` | **0** (broader local gates) | Full local QA bookend |
|
|
36
|
+
| `/verify <target> --merge-ready` | **exactly 1** (unless user sets N) | Claiming merge-ready / land |
|
|
37
|
+
|
|
38
|
+
Default `/verify` must **not** spawn outside reviewers. That stampede is a known
|
|
39
|
+
token/time failure mode. Merge-ready runs **one** sequential outside voice via
|
|
40
|
+
one `review_gate` delivery gate (or a host review skill), then stops. Pass
|
|
41
|
+
`caller_model` with your own model id and omit `provider`/`model`/`effort`: the
|
|
42
|
+
gate selects the cross-family reviewer and reports it in `policy_selection`.
|
|
43
|
+
|
|
44
|
+
## Tooling map
|
|
45
|
+
|
|
46
|
+
| Gate | Prefer |
|
|
47
|
+
| ------------------------- | ------------------------------------------------------------------------------------- |
|
|
48
|
+
| Lint / types / tests / QA | `lint`, `typecheck`, `test`, `qa` |
|
|
49
|
+
| Format | `format` |
|
|
50
|
+
| Audits | `audit`, `audits` |
|
|
51
|
+
| Blueprint | blueprint MCP tools + `audit` |
|
|
52
|
+
| PR / CI wait | `pr_status`, `pr_wait` (not multi-sleep loops) |
|
|
53
|
+
| Release | `release_progress` for live Release phases; `release_readiness` for package gates |
|
|
54
|
+
| Large output | `session_execute` / `batch_execute` / `execute_file` |
|
|
55
|
+
| Continuity | `session_capture` for verify summary; avoid paste-back walls |
|
|
56
|
+
| E2E / act | `e2e`, `ci_act` when the change requires them |
|
|
57
|
+
| Outside authority | `review_gate` (purpose plan or delivery); each new provider verdict is a formal round |
|
|
58
|
+
|
|
59
|
+
## Iron law — evidence before claims
|
|
60
|
+
|
|
61
|
+
No completion claim without fresh verification evidence.
|
|
62
|
+
|
|
63
|
+
Before saying `done`, `fixed`, `passes`, or `clean`:
|
|
64
|
+
|
|
65
|
+
1. Identify the command or log that proves the claim.
|
|
66
|
+
2. Run it **at the entry point the consumer or CI actually invokes** — not a narrower one that happens to be handy. If you substituted a narrower entry point, say which, and check the side effect (did the artifact appear?) rather than pass/fail alone.
|
|
67
|
+
3. Read the exit code and summary — do not infer from partial output.
|
|
68
|
+
4. If the claim covers a SET, enumerate it first: state the command, the count it returned, and that every member was addressed. "The one I found" is not the class.
|
|
69
|
+
5. State the actual result, including the log path when the repo records one.
|
|
70
|
+
6. If another agent made the change, inspect the diff yourself before repeating the claim.
|
|
71
|
+
|
|
72
|
+
Not sufficient: "should pass", "looks correct", lint-only evidence for runtime claims, another agent's success report without independent verification, or a guard that asserts a token is _present_ when the claim is that every site was fixed.
|
|
73
|
+
|
|
74
|
+
## Usage
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
/verify <target>
|
|
78
|
+
/verify <target> --full
|
|
79
|
+
/verify <target> --merge-ready
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`<target>` is a file path, package name, blueprint slug, or `all`.
|
|
83
|
+
|
|
84
|
+
Follow the repo's current routing and command surface:
|
|
85
|
+
|
|
86
|
+
- use wp MCP tools / repo-owned quality wrappers first
|
|
87
|
+
- use bounded session-memory tooling for large output
|
|
88
|
+
- reuse fresh logs instead of re-running broad commands just to inspect output
|
|
89
|
+
|
|
90
|
+
## Folded health dashboard
|
|
91
|
+
|
|
92
|
+
`/health` is folded into this quality gate. When the user asks for repo health,
|
|
93
|
+
run the available repo facades only as far as needed, then return a concise
|
|
94
|
+
scorecard: score, pass/fail table, top risks, skipped checks with reasons, and
|
|
95
|
+
the next command that most improves confidence.
|
|
96
|
+
|
|
97
|
+
## Folded testing-philosophy gate
|
|
98
|
+
|
|
99
|
+
`/tph` is folded into this quality gate. Every `/verify` run must apply the
|
|
100
|
+
Testing Philosophy Helper, not leave test-quality review as an optional separate
|
|
101
|
+
workflow:
|
|
102
|
+
|
|
103
|
+
1. Load the `tph`/`testing-philosophy` skill guidance before judging changed tests.
|
|
104
|
+
2. Run the repo audit when available:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
audit({"kind":"test-smells"})
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Use the global `wp audit test-smells` command only when MCP is unavailable.
|
|
111
|
+
|
|
112
|
+
3. Treat TPH findings as verification findings: over-mocking, weak assertions,
|
|
113
|
+
tautologies, implementation-only spy assertions, wrong test placement, or
|
|
114
|
+
missing integration/E2E coverage can block a `done` or `merge-ready` claim.
|
|
115
|
+
4. If no tests changed, still run or explicitly cite the fresh TPH audit result
|
|
116
|
+
and state that no test-quality diff review was needed.
|
|
117
|
+
|
|
118
|
+
## Phase 0 — Scope and evidence map
|
|
119
|
+
|
|
120
|
+
1. Identify target type (file / package / blueprint slug / all).
|
|
121
|
+
2. Map each claim you plan to make to the exact command or log that proves it.
|
|
122
|
+
3. If the target is a blueprint slug, run the repo's blueprint show/audit surface and record the acceptance boxes that still need proof.
|
|
123
|
+
4. **CI cost / local-first:** treat remote CI as confirmation, not the first
|
|
124
|
+
debugger. Load `ci-cost-local-first` expectations: no hook skips, no
|
|
125
|
+
blind `gh run rerun`, Ubicloud for private non-release jobs.
|
|
126
|
+
|
|
127
|
+
## Phase 1 — Governance gates
|
|
128
|
+
|
|
129
|
+
Run only the gates that apply to the diff:
|
|
130
|
+
|
|
131
|
+
- repo SSOT / schema / config changes → the repo's dedicated check
|
|
132
|
+
- docs or markdown changes → the repo's docs / markdown validation surface
|
|
133
|
+
- blueprint target → the repo's blueprint audit surface
|
|
134
|
+
- agent-surface / catalog changes → the repo's agent or catalog audit surface
|
|
135
|
+
|
|
136
|
+
Hard stop on any failure.
|
|
137
|
+
|
|
138
|
+
## Phase 2 — Surface verification
|
|
139
|
+
|
|
140
|
+
Run the narrowest checks that prove the touched behavior:
|
|
141
|
+
|
|
142
|
+
- `lint` / targeted lint
|
|
143
|
+
- `typecheck` / targeted typecheck
|
|
144
|
+
- `test` / targeted tests
|
|
145
|
+
- `qa`, `e2e`, build / package checks only when the change requires them
|
|
146
|
+
|
|
147
|
+
**Before push or PR open/update**, run the pre-push owner end-to-end:
|
|
148
|
+
|
|
149
|
+
```text
|
|
150
|
+
start = ci_preflight({})
|
|
151
|
+
ci_preflight_wait({ runId: start.details.operation.runId })
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The start result is not a gate verdict. Poll again when wait returns
|
|
155
|
+
`in_progress`; only terminal `success` authorizes push or PR mutation.
|
|
156
|
+
|
|
157
|
+
MCP-unavailable CLI fallback:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
wp ci-preflight
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
That runs the repository-owned, branch-scoped required-check plan fail-fast.
|
|
164
|
+
Run it after the final commit and make no further worktree or base-ref
|
|
165
|
+
changes before pushing. The app repo's `.husky/pre-push` checks the resulting
|
|
166
|
+
exact-state receipt without rerunning the suite after Git opens the remote
|
|
167
|
+
transport; consumer repos may keep pre-push checks user-owned. Do **not** claim
|
|
168
|
+
push-ready if preflight failed. Do **not** bypass hooks to ship red work.
|
|
169
|
+
|
|
170
|
+
Rules:
|
|
171
|
+
|
|
172
|
+
- Prefer wp MCP tools over raw underlying tools.
|
|
173
|
+
- Reuse fresh logs / session-memory indexed output if the runner auto-saves them.
|
|
174
|
+
- Never claim broader correctness than the commands actually proved.
|
|
175
|
+
- If the repo documents a "full QA" bookend, reserve `qa` / `--full` for the final broad pass rather than every iteration.
|
|
176
|
+
- If CI is already red: read the failed job log, reproduce with the matching
|
|
177
|
+
local `ci_preflight` + `ci_preflight_wait` flow (or the `wp ci-preflight` CLI fallback), fix, then push **one**
|
|
178
|
+
corrective commit — do not burn another full matrix “to check.”
|
|
179
|
+
|
|
180
|
+
## Phase 3 — Cross-surface impact scan
|
|
181
|
+
|
|
182
|
+
Ask:
|
|
183
|
+
|
|
184
|
+
- Did the change alter a public/shared export, type, config shape, command, install path, setup path, update path, operator guidance, or generated surface?
|
|
185
|
+
- Do consumers, mocks, fixtures, docs, help text, generated instruction templates, or skill/catalog references still mention the old shape?
|
|
186
|
+
- Does another package, blueprint, or agent surface need to be updated in the same change?
|
|
187
|
+
|
|
188
|
+
For command-surface, install/setup/update, or operator-guidance changes, explicitly scan affected docs/help/instruction surfaces before proceeding. Include, at minimum:
|
|
189
|
+
|
|
190
|
+
- CLI help text
|
|
191
|
+
- docs/guides
|
|
192
|
+
- generated instruction templates and checked-in generated instruction copies
|
|
193
|
+
- skill text and catalog references
|
|
194
|
+
|
|
195
|
+
Hard stop if a shared contract changed and consumers were not updated.
|
|
196
|
+
|
|
197
|
+
Every session that changes behavior, commands, setup, or operator guidance must
|
|
198
|
+
update every affected doc/help/instruction surface in the same change. Keep
|
|
199
|
+
those doc edits concise and direct.
|
|
200
|
+
|
|
201
|
+
## Phase 4 — Test quality and behavioral audit
|
|
202
|
+
|
|
203
|
+
The passing test suite is necessary, not sufficient.
|
|
204
|
+
|
|
205
|
+
Check that:
|
|
206
|
+
|
|
207
|
+
- the new or changed tests would fail against the old behavior
|
|
208
|
+
- mocks stay at real external boundaries
|
|
209
|
+
- assertions prove the intended behavior rather than incidental implementation details
|
|
210
|
+
- mixed/partial/error-path coverage exists where the feature demands it
|
|
211
|
+
- UX or operator-facing flows include graceful-degradation coverage when applicable
|
|
212
|
+
|
|
213
|
+
Run the folded TPH gate for every verification target. At minimum, execute
|
|
214
|
+
`audit` with the `test-smells` kind when available (use global `wp audit
|
|
215
|
+
test-smells` only as the CLI fallback) and inspect changed tests against the
|
|
216
|
+
`testing-philosophy` checklist. Add E2E or integration evidence when the change
|
|
217
|
+
touches user/operator-facing workflows, batch/list behavior, graceful
|
|
218
|
+
degradation, or other fidelity-sensitive paths.
|
|
219
|
+
|
|
220
|
+
## Phase 5 — Complexity, compatibility, and dead-code sweep
|
|
221
|
+
|
|
222
|
+
Before claiming done:
|
|
223
|
+
|
|
224
|
+
- remove stale compat aliases and "temporary" branches introduced by the change
|
|
225
|
+
- verify no suppressions were added
|
|
226
|
+
- verify no production `any` slipped in except an explicitly allowed repo test idiom
|
|
227
|
+
- justify every new exported/helper surface with a real consumer or test
|
|
228
|
+
- run the repo's dead-code / dependency checks when the change broadened public surface or added new files
|
|
229
|
+
|
|
230
|
+
If behavior is already locked and the remaining work is purely anti-slop
|
|
231
|
+
cleanup, route that pass through `ai-deslop` first rather than broadening
|
|
232
|
+
`verify` into a writer lane.
|
|
233
|
+
|
|
234
|
+
**Default branch when green:** if behavioral proof is green and the diff still
|
|
235
|
+
shows machine-shaped noise, dead wrappers, or elegance debt, run or recommend
|
|
236
|
+
`ai-deslop` on the changed scope before the final done claim.
|
|
237
|
+
|
|
238
|
+
This phase exists to catch the garbage that often slips in beside otherwise-correct work.
|
|
239
|
+
|
|
240
|
+
## Phase 6 — Outside-model approval gate (**`--merge-ready` only**)
|
|
241
|
+
|
|
242
|
+
**Anti-stampede:** never fan out parallel multi-host reviews. Default local
|
|
243
|
+
verify uses **zero** outside voice. Merge-ready uses **exactly one sequential**
|
|
244
|
+
outside voice unless the user sets N. If you needed "600 reviews", the bug is
|
|
245
|
+
in outside-voice usage — stop and fix the gate, do not multiply reviewers.
|
|
246
|
+
|
|
247
|
+
**Skip this entire phase** for default `/verify` and `/verify --full`. Local
|
|
248
|
+
`done` claims do not require outside voice.
|
|
249
|
+
|
|
250
|
+
This phase implements **land-policy M7** (delivery vs outside voice). Full land
|
|
251
|
+
language and dual-label contract:
|
|
252
|
+
[`catalog/agent/rules/land-policy.md`](../../rules/land-policy.md).
|
|
253
|
+
|
|
254
|
+
Before claiming **merge-ready** / land:
|
|
255
|
+
|
|
256
|
+
### 1. Classify with immutable refs
|
|
257
|
+
|
|
258
|
+
Run `audit` with `kind: "risk-review-coverage"` using:
|
|
259
|
+
|
|
260
|
+
- immutable PR **base** SHA
|
|
261
|
+
- immutable **authority** (head) SHA
|
|
262
|
+
- PR-description body (`--pr-body-file`)
|
|
263
|
+
|
|
264
|
+
Do not substitute mutable branch names for authority when the audit needs a SHA.
|
|
265
|
+
SSOT: `evaluateSensitiveReviewPolicy` in `src/review/sensitive-review-policy.ts`;
|
|
266
|
+
CI job in `.github/workflows/pr-policy.yml`.
|
|
267
|
+
|
|
268
|
+
### 2. Sensitive → delivery to terminal verdict
|
|
269
|
+
|
|
270
|
+
When classification is **sensitive**:
|
|
271
|
+
|
|
272
|
+
- Require delivery review via `risk-review-coverage` / `review_gate`
|
|
273
|
+
(purpose delivery) / qualifying lane approvals for the current
|
|
274
|
+
review subject until `policySatisfied` (**approval**). A formal **reject** is a terminal automated-review
|
|
275
|
+
outcome but does **not** satisfy land policy: Product status stays
|
|
276
|
+
`incomplete`, Process status stays `sensitive-blocked` until approval.
|
|
277
|
+
Tech-debt is **not** a substitute for delivery approval.
|
|
278
|
+
- Launch **exactly one at a time** `review_gate` delivery attempt with
|
|
279
|
+
`--base-ref <base-sha>` and `--authority-ref <head-sha>`. Do not substitute
|
|
280
|
+
`HEAD` for the authority SHA, and do not relaunch while the same subject has
|
|
281
|
+
an in-progress gate.
|
|
282
|
+
- On formal **reject**: record the gate `next_action` (`report_delivery_reject`)
|
|
283
|
+
/ reject projection, triage against blueprint non-goals, address the findings,
|
|
284
|
+
then re-review only a changed exact subject. The gate counts formal verdicts
|
|
285
|
+
per slug and purpose, starting with eight rounds.
|
|
286
|
+
After all allowance is spent, a corrected subject may open one
|
|
287
|
+
extra lane on an explicitly selected provider and model, including one that
|
|
288
|
+
already reviewed the lineage. The gate records that grant, adds five formal
|
|
289
|
+
rounds, and permits at most five distinct provider attempts in the new lane
|
|
290
|
+
that reach a verdict or an unproven outcome; provider infrastructure failures
|
|
291
|
+
spend no attempt but are bounded separately at five per lane. The provider and model remain pinned.
|
|
292
|
+
Once that lane is spent, this blueprint's review lineage is terminal: no
|
|
293
|
+
gate call on its slug can reopen it, whatever the subject. Re-plan the
|
|
294
|
+
narrowed scope as a new blueprint with its own plan review.
|
|
295
|
+
Machine enforcement does not link successor slugs; creating one to launder
|
|
296
|
+
or bypass the budget remains procedurally forbidden, as do resets and retry
|
|
297
|
+
schemes.
|
|
298
|
+
- `Review-skip` is **FORBIDDEN** (`sensitive-review-skip-forbidden`).
|
|
299
|
+
- Completed owner blueprint must be present in the PR
|
|
300
|
+
(`sensitive-no-completed-owner` otherwise).
|
|
301
|
+
- Process label when blocked: `sensitive-blocked`. When delivery lane
|
|
302
|
+
approves: `delivery-approved`.
|
|
303
|
+
|
|
304
|
+
### 3. Standard → skip or one outside voice
|
|
305
|
+
|
|
306
|
+
When classification is **standard**:
|
|
307
|
+
|
|
308
|
+
- Prefer a specific trailer when justified:
|
|
309
|
+
|
|
310
|
+
```text
|
|
311
|
+
Review-skip: SKIP standard-risk; <why ≥8 chars>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Must be start-of-line. Process label: `standard-skip`.
|
|
315
|
+
|
|
316
|
+
- Otherwise obtain **exactly one sequential** outside voice: one
|
|
317
|
+
`review_gate` delivery gate (or host skill). Process label: `outside-approved`.
|
|
318
|
+
- At most **one outside reviewer** counts unless the user asks for more.
|
|
319
|
+
- Invoke the selected reviewer **once**. Do not probe, retry, or rotate
|
|
320
|
+
providers automatically, and **never** fan out parallel multi-host review
|
|
321
|
+
swarms.
|
|
322
|
+
- If the user asks for more, fewer, zero, or specific reviewers, follow that
|
|
323
|
+
instruction and report the chosen requirement.
|
|
324
|
+
- These approvals are model outside-voice approvals, not a substitute for human
|
|
325
|
+
GitHub reviews or branch-protection approvals.
|
|
326
|
+
|
|
327
|
+
Reviewer preference: the gate owns it. State `caller_model` (your own model
|
|
328
|
+
id) and omit `provider`/`model`/`effort`; `review_gate` selects a
|
|
329
|
+
cross-family reviewer by capability, current provider limits, and measured
|
|
330
|
+
daily cost, and discloses the choice in `policy_selection`. Do not name a
|
|
331
|
+
reviewer host or model, do not probe provider catalogs, and do not rotate
|
|
332
|
+
providers yourself. A human operator may still name an explicit
|
|
333
|
+
`provider`/`model` override; agents must not.
|
|
334
|
+
|
|
335
|
+
### 4. Dual product/process labels on every land claim
|
|
336
|
+
|
|
337
|
+
Always emit:
|
|
338
|
+
|
|
339
|
+
- **Product status:** `complete` | `incomplete`
|
|
340
|
+
- **Process status:** `outside-approved` | `standard-skip` | `sensitive-blocked` | `delivery-approved`
|
|
341
|
+
|
|
342
|
+
Never invent a land-now skip. See `land-policy` for the full table.
|
|
343
|
+
|
|
344
|
+
### Approval evidence requirements
|
|
345
|
+
|
|
346
|
+
- Blueprint plan approval: use `review_gate` with the current `bpv1` version.
|
|
347
|
+
It records the review and promotes an approved draft atomically by default.
|
|
348
|
+
If the gate is still running or the host wait expires, poll the same exact
|
|
349
|
+
invocation with `review_gate_wait` until a terminal review outcome is
|
|
350
|
+
observed; wait timeout/abort/in-progress/not-found are not reviewer verdicts.
|
|
351
|
+
`not_found` means there is no active or terminal gate for that subject; refresh
|
|
352
|
+
state and start the gate again instead of continuing to wait.
|
|
353
|
+
- Implementation / delivery approval: use `review_gate` purpose delivery
|
|
354
|
+
on the immutable subject, exactly once with the selected provider, for
|
|
355
|
+
sensitive and standard PRs alike. The gate has one mode: each newly executed
|
|
356
|
+
provider review that reaches a verdict is one formal round of the slug's
|
|
357
|
+
budget, an approval is authority immediately, and an identical-subject call
|
|
358
|
+
replays the recorded verdict without a new round (an approval withheld for
|
|
359
|
+
incomplete adjudication of prior findings — not all briefed, or a briefed
|
|
360
|
+
claim still open without a matching finding — grants no authority and
|
|
361
|
+
spends none). Do not run a separate
|
|
362
|
+
provider probe.
|
|
363
|
+
- Two gates on the same subject cannot run concurrently — every
|
|
364
|
+
`review_gate` call claims the subject's active marker. If a call reports
|
|
365
|
+
marker contention, serialize the two calls rather than treating contention
|
|
366
|
+
as an error.
|
|
367
|
+
- Each gate reviewer must return exactly one schema-valid JSON review object;
|
|
368
|
+
never infer a verdict from Markdown. The gate derives approval from typed
|
|
369
|
+
findings: blockers reject, nits approve with nits, and no findings approve.
|
|
370
|
+
- `APPROVE-WITH-NITS` is terminal approval when every typed finding is
|
|
371
|
+
non-blocking. Preserve detailed nits in the artifact or follow-up backlog; do
|
|
372
|
+
not edit the reviewed subject and rerun the gate just to clear nits.
|
|
373
|
+
- Record as PR comments when a PR exists (model/tool, verdict, reviewed commit).
|
|
374
|
+
- Unavailable reviewer → report the gap and **not merge-ready**. A later explicit
|
|
375
|
+
invocation may select another reviewer after the terminal result is inspected;
|
|
376
|
+
never cycle providers automatically or invent approvals.
|
|
377
|
+
|
|
378
|
+
## Phase 7 — Final completion statement
|
|
379
|
+
|
|
380
|
+
Report:
|
|
381
|
+
|
|
382
|
+
- mode used (`local` / `full` / `merge-ready`)
|
|
383
|
+
- what was verified and which wp MCP tools commands/logs prove it
|
|
384
|
+
- which docs/help/instruction surfaces were refreshed when guidance changed
|
|
385
|
+
- outside models only if merge-ready (with PR comment links when applicable)
|
|
386
|
+
- what remains intentionally out of scope
|
|
387
|
+
|
|
388
|
+
When catalog assets or generated instruction surfaces changed, include public-package-safety or package-surface leak checks.
|
|
389
|
+
|
|
390
|
+
If any required check is missing, the correct result is **not done yet**, not a softer claim.
|
|
391
|
+
|
|
392
|
+
**Tooling friction (optional):** if this session burned medium+ tokens on MCP/CLI/hooks/CI
|
|
393
|
+
gates (not product code), run `/tooling-friction` once and resolve its capture
|
|
394
|
+
destination with `tooling_friction_path({"file":"<file>"})` — copy the absolute
|
|
395
|
+
path from the tool summary (human CLI: `wp tooling-friction path --file <file>`).
|
|
396
|
+
Do not invent fleet folder slugs or worktree-keyed desktop-state paths. Skip when
|
|
397
|
+
the path was smooth. If the surface cannot be resolved or written, report the skip
|
|
398
|
+
and never fall back to a worktree path. Never blocks land — see the
|
|
399
|
+
`tooling-friction` skill.
|
package/README.md
DELETED