@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.
Files changed (43) hide show
  1. package/LICENSE +104 -0
  2. package/bin/wp +276 -0
  3. package/hooks.json +54 -0
  4. package/mcp_config.json +11 -0
  5. package/package.json +37 -3
  6. package/plugin-skill-ownership.json +105 -0
  7. package/plugin.json +11 -0
  8. package/skills/ai-deslop/SKILL.md +96 -0
  9. package/skills/antigravity/SKILL.md +52 -0
  10. package/skills/autopilot/SKILL.md +82 -0
  11. package/skills/autoresearch/SKILL.md +49 -0
  12. package/skills/best-practice-research/SKILL.md +102 -0
  13. package/skills/browse/SKILL.md +25 -0
  14. package/skills/claude/SKILL.md +52 -0
  15. package/skills/codex/SKILL.md +52 -0
  16. package/skills/deep-interview/LICENSE.txt +28 -0
  17. package/skills/deep-interview/SKILL.md +270 -0
  18. package/skills/deep-research/SKILL.md +259 -0
  19. package/skills/delivery-program/SKILL.md +62 -0
  20. package/skills/design-review/SKILL.md +26 -0
  21. package/skills/devex-review/SKILL.md +28 -0
  22. package/skills/fix/SKILL.md +218 -0
  23. package/skills/handoff/SKILL.md +99 -0
  24. package/skills/hooks-doctor/SKILL.md +153 -0
  25. package/skills/investigate/SKILL.md +83 -0
  26. package/skills/lore-protocol/SKILL.md +84 -0
  27. package/skills/opencode-go/SKILL.md +52 -0
  28. package/skills/plan-ceo-review/SKILL.md +27 -0
  29. package/skills/plan-design-review/SKILL.md +27 -0
  30. package/skills/plan-devex-review/SKILL.md +19 -0
  31. package/skills/plan-eng-review/SKILL.md +24 -0
  32. package/skills/plan-refine/SKILL.md +122 -0
  33. package/skills/plan-refine/references/full-methodology.md +654 -0
  34. package/skills/ralplan/SKILL.md +196 -0
  35. package/skills/team/SKILL.md +121 -0
  36. package/skills/tech-debt/SKILL.md +95 -0
  37. package/skills/testing-philosophy/SKILL.md +53 -0
  38. package/skills/testing-philosophy/references/full-testing-philosophy.md +519 -0
  39. package/skills/tooling-friction/SKILL.md +234 -0
  40. package/skills/tph/SKILL.md +35 -0
  41. package/skills/ultragoal/SKILL.md +304 -0
  42. package/skills/verify/SKILL.md +399 -0
  43. 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
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.