@1aboveio/skills 0.19.3 → 0.20.1

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 (197) hide show
  1. package/README.md +9 -4
  2. package/package.json +1 -1
  3. package/runtime/skills/distribution/generated/recipes.json +54 -48
  4. package/runtime/skills/distribution/scripts/bundles.mjs +113 -7
  5. package/runtime/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +4 -6
  6. package/runtime/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +3 -36
  7. package/skills/cicd-pipeline/mergify/SKILL.md +1 -1
  8. package/skills/engineering/engineering-runtime/coherence/workflow.json +14 -83
  9. package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +4 -6
  10. package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +3 -36
  11. package/skills/engineering/smoke/SKILL.md +1 -1
  12. package/skills/payment/payment-analysis/SKILL.md +5 -3
  13. package/skills/payment/tld-detection/SKILL.md +163 -0
  14. package/skills/payment/tld-detection/agents/openai.yaml +9 -0
  15. package/skills/payment/tld-detection/evals/evals.json +107 -0
  16. package/skills/payment/tld-detection/references/clean.md +51 -0
  17. package/skills/payment/tld-detection/references/clustering.md +219 -0
  18. package/skills/payment/tld-detection/references/decision.md +85 -0
  19. package/skills/payment/tld-detection/references/report-template.md +169 -0
  20. package/skills/payment/tld-detection/references/terminology.md +69 -0
  21. package/skills/payment/tld-detection/references/workflow.md +78 -0
  22. package/skills/payment/tld-detection/scripts/detect_ladders.py +390 -0
  23. package/skills/payment/tld-detection/tests/test_detect_ladders.py +132 -0
  24. package/skills/engineering/resolve-issues/SKILL.md +0 -168
  25. package/skills/engineering/resolve-issues/agents/openai.yaml +0 -9
  26. package/skills/engineering/resolve-issues/generated/workflow-repair-policy.json +0 -499
  27. package/skills/engineering/resolve-issues/references/breaker.md +0 -82
  28. package/skills/engineering/resolve-issues/references/deliverables.md +0 -27
  29. package/skills/engineering/resolve-issues/references/delivery.md +0 -108
  30. package/skills/engineering/resolve-issues/references/evidence-lane.md +0 -21
  31. package/skills/engineering/resolve-issues/references/exact-head-ci.md +0 -287
  32. package/skills/engineering/resolve-issues/references/fan-out.md +0 -33
  33. package/skills/engineering/resolve-issues/references/finalization.md +0 -68
  34. package/skills/engineering/resolve-issues/references/guarantees.md +0 -10
  35. package/skills/engineering/resolve-issues/references/high-risk.md +0 -29
  36. package/skills/engineering/resolve-issues/references/incidents/848/README.md +0 -156
  37. package/skills/engineering/resolve-issues/references/intake.md +0 -86
  38. package/skills/engineering/resolve-issues/references/integration-gate.md +0 -53
  39. package/skills/engineering/resolve-issues/references/interference.md +0 -87
  40. package/skills/engineering/resolve-issues/references/loop.md +0 -134
  41. package/skills/engineering/resolve-issues/references/model-catalog.md +0 -9
  42. package/skills/engineering/resolve-issues/references/postmortem.md +0 -27
  43. package/skills/engineering/resolve-issues/references/pre-flight-model-slots.md +0 -41
  44. package/skills/engineering/resolve-issues/references/pre-flight-recording-and-checkout.md +0 -48
  45. package/skills/engineering/resolve-issues/references/pre-flight.md +0 -41
  46. package/skills/engineering/resolve-issues/references/regression-checklist.md +0 -26
  47. package/skills/engineering/resolve-issues/references/run-state.md +0 -288
  48. package/skills/engineering/resolve-issues/references/sandboxed-testing.md +0 -48
  49. package/skills/engineering/resolve-issues/references/spawn-contract.md +0 -96
  50. package/skills/engineering/resolve-issues/references/terminal-evidence-journal.md +0 -40
  51. package/skills/engineering/resolve-issues/references/why.md +0 -653
  52. package/skills/engineering/resolve-issues/schemas/fix-round.schema.json +0 -49
  53. package/skills/engineering/resolve-issues/scripts/combine-and-verify.mjs +0 -721
  54. package/skills/engineering/resolve-issues/scripts/component-candidate.mjs +0 -962
  55. package/skills/engineering/resolve-issues/scripts/contract-revision.mjs +0 -220
  56. package/skills/engineering/resolve-issues/scripts/detect-delivery-mode.mjs +0 -420
  57. package/skills/engineering/resolve-issues/scripts/detect-target-branch.mjs +0 -256
  58. package/skills/engineering/resolve-issues/scripts/detect-workspace-mode.mjs +0 -168
  59. package/skills/engineering/resolve-issues/scripts/discover-models.mjs +0 -9
  60. package/skills/engineering/resolve-issues/scripts/doctrine.mjs +0 -62
  61. package/skills/engineering/resolve-issues/scripts/evidence-lifecycle-contract.mjs +0 -191
  62. package/skills/engineering/resolve-issues/scripts/exact-head-ci.mjs +0 -413
  63. package/skills/engineering/resolve-issues/scripts/exact-head-github-provider.mjs +0 -332
  64. package/skills/engineering/resolve-issues/scripts/finalize.mjs +0 -488
  65. package/skills/engineering/resolve-issues/scripts/fix-rounds.mjs +0 -3307
  66. package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-circular-1001.json +0 -16
  67. package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-valid-sequencing.json +0 -51
  68. package/skills/engineering/resolve-issues/scripts/fixtures/fmm-express-830-component-candidate.json +0 -17
  69. package/skills/engineering/resolve-issues/scripts/fixtures/head-check-set-1081.json +0 -166
  70. package/skills/engineering/resolve-issues/scripts/gate-value-series.mjs +0 -92
  71. package/skills/engineering/resolve-issues/scripts/guide-index.mjs +0 -73
  72. package/skills/engineering/resolve-issues/scripts/head-check-set.mjs +0 -159
  73. package/skills/engineering/resolve-issues/scripts/interference.mjs +0 -427
  74. package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +0 -9
  75. package/skills/engineering/resolve-issues/scripts/next-operations.mjs +0 -419
  76. package/skills/engineering/resolve-issues/scripts/postmortem.mjs +0 -909
  77. package/skills/engineering/resolve-issues/scripts/preflight-questions.mjs +0 -345
  78. package/skills/engineering/resolve-issues/scripts/reconcile-contained-unit-prs.mjs +0 -415
  79. package/skills/engineering/resolve-issues/scripts/release-state-contract.mjs +0 -697
  80. package/skills/engineering/resolve-issues/scripts/report.mjs +0 -494
  81. package/skills/engineering/resolve-issues/scripts/required-check-plan.mjs +0 -172
  82. package/skills/engineering/resolve-issues/scripts/round-metadata.mjs +0 -79
  83. package/skills/engineering/resolve-issues/scripts/run-state-review6-cases.mjs +0 -334
  84. package/skills/engineering/resolve-issues/scripts/run-state.mjs +0 -4792
  85. package/skills/engineering/resolve-issues/scripts/sandbox-selftest.mjs +0 -395
  86. package/skills/engineering/resolve-issues/scripts/spawn-contract.mjs +0 -290
  87. package/skills/engineering/resolve-issues/scripts/terminal-dispositions.mjs +0 -170
  88. package/skills/engineering/resolve-issues/scripts/terminal-evidence-journal.mjs +0 -293
  89. package/skills/engineering/resolve-issues/scripts/unit-kind.mjs +0 -197
  90. package/skills/engineering/resolve-issues/scripts/unit-lifecycle.mjs +0 -127
  91. package/skills/engineering/resolve-issues/scripts/watch-delivery.mjs +0 -893
  92. package/skills/engineering/resolve-issues/scripts/workspaces.mjs +0 -829
  93. package/skills/engineering/resolve-issues/workflows/independent-review.workflow.js +0 -290
  94. package/skills/engineering/resolve-issues/workflows/prior-art-scan.workflow.js +0 -80
  95. package/skills/engineering/resolve-issues/workflows/workflow-smoke.mjs +0 -102
  96. package/skills/engineering/resolve-release/LICENSE +0 -3
  97. package/skills/engineering/resolve-release/SKILL.md +0 -113
  98. package/skills/engineering/resolve-release/agents/openai.yaml +0 -9
  99. package/skills/engineering/resolve-release/references/assembly.md +0 -137
  100. package/skills/engineering/resolve-release/references/auto-when-green.md +0 -56
  101. package/skills/engineering/resolve-release/references/candidate.md +0 -167
  102. package/skills/engineering/resolve-release/references/exposure.md +0 -178
  103. package/skills/engineering/resolve-release/references/handoff.md +0 -24
  104. package/skills/engineering/resolve-release/references/postmortem.md +0 -230
  105. package/skills/engineering/resolve-release/references/preflight.md +0 -208
  106. package/skills/engineering/resolve-release/references/principles.md +0 -94
  107. package/skills/engineering/resolve-release/references/regression-checklist.md +0 -36
  108. package/skills/engineering/resolve-release/references/related-skills.md +0 -13
  109. package/skills/engineering/resolve-release/references/routing.md +0 -149
  110. package/skills/engineering/resolve-release/references/verified-sha-github-flow.md +0 -285
  111. package/skills/engineering/resolve-release/references/versioning.md +0 -202
  112. package/skills/engineering/resolve-release/references/why.md +0 -53
  113. package/skills/engineering/resolve-release/scripts/adapter-completion-artifact.mjs +0 -389
  114. package/skills/engineering/resolve-release/scripts/build-changes.mjs +0 -209
  115. package/skills/engineering/resolve-release/scripts/candidate-hygiene.mjs +0 -407
  116. package/skills/engineering/resolve-release/scripts/candidate-identity.mjs +0 -904
  117. package/skills/engineering/resolve-release/scripts/candidate-traffic.mjs +0 -81
  118. package/skills/engineering/resolve-release/scripts/checked-adapter-loader.mjs +0 -612
  119. package/skills/engineering/resolve-release/scripts/close-attempt.mjs +0 -135
  120. package/skills/engineering/resolve-release/scripts/closeout-release.mjs +0 -161
  121. package/skills/engineering/resolve-release/scripts/doctrine.mjs +0 -106
  122. package/skills/engineering/resolve-release/scripts/durable-processing.mjs +0 -522
  123. package/skills/engineering/resolve-release/scripts/ensure-target-green.mjs +0 -659
  124. package/skills/engineering/resolve-release/scripts/evidence-bundle.mjs +0 -1014
  125. package/skills/engineering/resolve-release/scripts/finalize-release.mjs +0 -526
  126. package/skills/engineering/resolve-release/scripts/fixtures/durable-processing-adapter.mjs +0 -169
  127. package/skills/engineering/resolve-release/scripts/green-gate.mjs +0 -599
  128. package/skills/engineering/resolve-release/scripts/isolated-adapter-evaluator.mjs +0 -752
  129. package/skills/engineering/resolve-release/scripts/metadata-pr-status.mjs +0 -56
  130. package/skills/engineering/resolve-release/scripts/metadata-sync.mjs +0 -1538
  131. package/skills/engineering/resolve-release/scripts/postmortem.mjs +0 -381
  132. package/skills/engineering/resolve-release/scripts/preflight-probes.mjs +0 -510
  133. package/skills/engineering/resolve-release/scripts/production-endpoints.mjs +0 -326
  134. package/skills/engineering/resolve-release/scripts/rc-circuit-breaker.mjs +0 -272
  135. package/skills/engineering/resolve-release/scripts/report.mjs +0 -417
  136. package/skills/engineering/resolve-release/scripts/reprobe-credentials.mjs +0 -114
  137. package/skills/engineering/resolve-release/scripts/revalidate-candidate.mjs +0 -238
  138. package/skills/engineering/resolve-release/scripts/review-packet.mjs +0 -503
  139. package/skills/engineering/resolve-release/scripts/rollback-floor.mjs +0 -263
  140. package/skills/engineering/resolve-release/scripts/version-assert.mjs +0 -339
  141. package/skills/engineering/resolve-release/scripts/version-postmortem.mjs +0 -485
  142. package/skills/engineering/resolve-release/scripts/version.mjs +0 -1199
  143. package/skills/engineering/resolve-release/scripts/watch-candidate-delivery.mjs +0 -449
  144. package/skills/engineering/resolve-release/vendor/ACORN-LICENSE +0 -21
  145. package/skills/engineering/resolve-release/vendor/README.md +0 -60
  146. package/skills/engineering/resolve-release/vendor/acorn.mjs +0 -6233
  147. package/skills/engineering/resolve-release/vendor/quickjs/core/LICENSE +0 -21
  148. package/skills/engineering/resolve-release/vendor/quickjs/core/README.md +0 -341
  149. package/skills/engineering/resolve-release/vendor/quickjs/core/README.template.md +0 -70
  150. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs +0 -2
  151. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs.map +0 -1
  152. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs +0 -7
  153. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs.map +0 -1
  154. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.mts +0 -2033
  155. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.ts +0 -2033
  156. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js +0 -7
  157. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js.map +0 -1
  158. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs +0 -2
  159. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs.map +0 -1
  160. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs +0 -2
  161. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs.map +0 -1
  162. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs +0 -2
  163. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs.map +0 -1
  164. package/skills/engineering/resolve-release/vendor/quickjs/core/package.json +0 -49
  165. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/LICENSE +0 -21
  166. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/README.md +0 -5
  167. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.mts +0 -549
  168. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.ts +0 -549
  169. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js +0 -2
  170. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js.map +0 -1
  171. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs +0 -2
  172. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs.map +0 -1
  173. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/package.json +0 -36
  174. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/LICENSE +0 -47
  175. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/README.md +0 -82
  176. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.d.ts +0 -11
  177. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.mjs +0 -22
  178. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cjs +0 -21
  179. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.cjs +0 -21
  180. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.d.ts +0 -11
  181. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.d.ts +0 -11
  182. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.mjs +0 -25
  183. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.wasm +0 -0
  184. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.mts +0 -85
  185. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.ts +0 -85
  186. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js +0 -2
  187. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js.map +0 -1
  188. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs +0 -2
  189. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs.map +0 -1
  190. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.mts +0 -20
  191. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.ts +0 -20
  192. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js +0 -2
  193. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js.map +0 -1
  194. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs +0 -2
  195. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs.map +0 -1
  196. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/package.json +0 -61
  197. /package/skills/{engineering/resolve-issues → payment/tld-detection}/LICENSE +0 -0
@@ -1,168 +0,0 @@
1
- ---
2
- name: resolve-issues
3
- description: "Slash/explicit-only (/resolve-issues). Drive GitHub issues (single or epic) to merge-ready PRs: implement → e2e → independent review on a different model ∥ CI → fix, looped until PASS; epics assemble one PR per shippable component. Orchestrates implement-and-pr, e2e-test, ensure-coverage, review-pr, smoke. Do not auto-select — only on explicit user/orchestrator invoke. NOT one implement+PR alone, review alone, rush-issues, or release work (rush-release or resolve-release)."
4
- disable-model-invocation: true
5
- dependencies:
6
- - implement-and-pr
7
- - e2e-test
8
- - ensure-coverage
9
- - review-pr
10
- - smoke
11
- ---
12
-
13
- # Resolve issues (produce → review ∥ CI → fix, looped)
14
-
15
- Drive GitHub issues to **merge-ready PR(s)**. You orchestrate: schedule spawns, run the loop, enforce the guarantees below. One issue or an epic is the same pipeline — normalize the input to a `units[]` list (a plain issue is one unit, an epic one per sub-issue) and loop over it.
16
-
17
- At intake, classify every unit as `implementation`, `external-verification`,
18
- `human-decision`, or `prerequisite` with `scripts/unit-kind.mjs`. The same intake
19
- classifies evidence/authorization lifecycle semantics from declared scope and changed
20
- surfaces, deny-by-default; classified implementation work must carry a valid
21
- `evidenceLifecycleContract` before `spawn-contract` admits it. Only confirmed
22
- `implementation` units enter the produce/review/CI/delivery loop; other kinds retain
23
- their own completion protocols and remain separate in progress reporting.
24
-
25
- ## The four guarantees (everything here serves one of these)
26
-
27
- A step that serves none of these does not belong in this skill — see [The removal path](#the-removal-path-keep-this-skill-small). Each guarantee's incident record: [references/why.md](references/why.md#the-four-guarantees).
28
-
29
- 1. **Real tests, honestly green.** Never skip, guard, weaken, or `.only` a test to pass; never mock a first-party internal seam or intercept first-party routes in a journey; assertions against 404/empty/error pages are defects. A missing precondition is the test's *arrange* step — **seed it**. Un-sandboxable/flaky → quarantine lane (runs, non-blocking, `Unverified`); obsolete → delete. Diff-discipline: gate the net `merge-base...HEAD` diff; pre-existing issues are notes.
30
- 2. **An independent review that actually ran.** Fresh context **and** a different model than the one that wrote the diff. The reviewer loads `review-pr` and returns its proof artifacts — a prose review-shaped answer does not count.
31
- 3. **The loop exits on a fresh verdict on the current authorization boundary, never on a claim.** "I addressed the findings" is not a terminal state. A unit review PASS is terminal for that unit branch and becomes preserved **preliminary evidence**; notes inside it become `deferrals[]`, never another unit round. Component delivery is authorized separately: progressively assemble those passed unit heads, freeze one complete clean candidate, then run one terminal exact-head integrated review + CI + smoke whose `authorizationBoundary` is the component HEAD. Any movement after that terminal PASS requires a typed `reopenReason: ci-red|head-rewritten|contract-revised|integration-finding|external-review`, a changed matching `ci|head|contract|integration` boundary, and a fresh freeze + terminal authorization. (`external-review` is the epic-876 shape: independent PASS, then a non-self `CHANGES_REQUESTED` naming a real AC gap — not a note-chase; boundary kind is still `head`.) A bar the orchestrator may raise after the fact is not a bar.
32
- 4. **Merging requires a recorded human authorization, and only ever targets the integration branch.** The authorization is `mergeShippable` on the run manifest, and the *only* thing that sets it is a human answering pre-flight — the recommended `autonomous` level turns it on, `supervised` leaves it off, and an explicit field wins over either. With it, an [independently-shippable component](references/deliverables.md#deliverables-the-shippable-component-not-the-whole-epic) merges into `targetBranch` (e.g. `dev`) at its full bar; without it the loop hands components back merge-ready with evidence and merges nothing. Never to production, which stays `resolve-release`'s with its own authorization.
33
-
34
- **Two different things are called "the default" around this field, and conflating them is how the guarantee gets read backwards.** What pre-flight *recommends* to a human who is present is `autonomous` (authorization on). What an *unset* field resolves to, on a manifest nobody was ever asked about, is `supervised` (authorization off) — the fail-safe, because a recommendation may change what a human is offered but must never change what silence already meant. This guarantee rests on the second: no recorded answer, no merge.
35
-
36
- ## How to invoke me
37
-
38
- **Main loop only — never nested in a subagent. All spawns at depth 1, launched by you — and you coordinate, never implement**, single-issue runs included. Why both halves matter: [references/why.md](references/why.md#main-loop-only-and-the-spawn-contract). Be a **thin scheduler**: every heavy step runs in a spawn that returns a compact, schema'd result (verdict + `file:line` pointers + PR ref, never a transcript); durable state lives in the [run manifest](references/run-state.md). **Waiting is not a foreground activity either** — an enqueued PR is watched by one launch of [`watch-delivery.mjs`](scripts/watch-delivery.mjs), not a poll loop that spends a turn per check.
39
-
40
- **The leaf-spawn contract (every spawn, both steps).** A spawned agent does not inherit your loaded skills — everything it must know has to be *in the spawn*, and each clause fails **silently** when omitted. So **render it, don't compose it: [`run-state.mjs spawn-contract <slug> <unit> --kind producer|fix|review`](scripts/run-state.mjs)** fills every clause from state and prints a block to paste (exit 4 = state is missing a clause; fix the state). A composed contract is written once per run and then repeated — measured, it decays rather than being re-derived, which is how gate flags go missing. All five clauses in full: [references/spawn-contract.md](references/spawn-contract.md). → [why](references/why.md#the-spawn-contract-is-rendered-not-composed)
41
-
42
- **(e) Pass the working directory** is the clause worth restating here: the *unit's own* `units[].workspacePath`, never the orchestrator's checkout. A spawn inherits *your* cwd otherwise, so an unset one quietly writes into the tree you are coordinating from — the workspace is recorded, reported, and doing nothing. Every code-writing spawn, every round; and a fix round gets the **same** path its producer used, so it resumes rather than reinstalls.
43
-
44
- **A spawn that dies mid-flight leaves a partial, and the partial beats a clean slate** — point the replacement at the same path so it resumes. But a partial is **never** proof: `status: in-progress` counts exactly as missing for every gate, and the response is a re-spawn, not an exit.
45
-
46
- **Fan-out (opt-in, Workflow harness):** only read-only/advisory stages — prior-art and independent review — via `workflows/`; everything that writes code or hits a human gate stays in the main loop ([references/fan-out.md](references/fan-out.md)). An epic's *implementers* run as plain depth-1 spawns regardless, concurrently up to the in-flight cap, each in its own unit's workspace.
47
-
48
- ## Pre-flight (once, before intake — never mid-run)
49
-
50
- **Before creating or resuming a run, use [`run-state.mjs init|resume`](scripts/run-state.mjs).** That shared lifecycle boundary runs `engineering-runtime`'s read-only coherence verifier first; an incoherent, unavailable or malformed verdict fails closed with findings and a pinned repair recipe, and never runs the repair itself.
51
-
52
- **Then read [references/pre-flight.md](references/pre-flight.md) and run its seven steps (0–6)** — it owns the procedure and every non-negotiable in it. Four rules decide whether the rest of the run means anything, so they are named here too:
53
-
54
- - **Both model slots are filled individually by the human**, each as an operating point (a model *and* its banked effort), with alternates shown. **`reviewer ≠ implementer`** is hard — it is what makes guarantee 2 an independent review rather than a second opinion from the same blind spots.
55
- - **Probe, never assume, the merge path** — `deliveryMode`, `queueProvider`, and above all **`enqueueTrigger`**: on a repo that auto-merges once conditions hold, *posting the review verdict as an approval **is** the merge*. Ask [`run-state.mjs approval-gate <slug> [componentId]`](scripts/run-state.mjs) before any verdict reaches GitHub. → [why](references/why.md#the-enqueue-trigger)
56
- - **`autonomy` is filled as `autonomous` by default** (subsumes `mergeShippable`; guarantee 4). It is **not** a pre-flight question — stated in the summary; a human may override to `supervised`. Ask the manifest what it resolved to — `run-state.mjs autonomy <slug>` — never re-derive it from prose. No level lifts the design gate, the breaker's `descope`, or its round ceiling.
57
- - **No silent fallback:** read back the model every spawn actually ran on and record it per unit. A reviewer read-back ≠ the confirmed review model means the verdict does not count.
58
-
59
- ## Routing (read this first)
60
-
61
- **This file is an index, and must stay one** — a truncated skill silently becomes a shorter skill and nothing warns you. The doctrine lives in `references/`, one file per phase.
62
-
63
- | Phase | Read | The rule you must not miss |
64
- |---|---|---|
65
- | Know the bar any step must serve | [references/guarantees.md](references/guarantees.md) | The four guarantees in full. |
66
- | **Once, before intake** — pre-flight | [references/pre-flight.md](references/pre-flight.md) | Seven steps, **once**, before intake, never mid-run. |
67
- | Turn issues into scheduled units | [references/intake.md](references/intake.md) | A prerequisite artifact is **not a unit**; schedule against [interference](references/interference.md), not dependency order alone. |
68
- | Decide what runs next | [references/interference.md](references/interference.md) | **`runnable <slug>` is the scheduler — ask it at every milestone** and spawn what it names. The bar is *pushed*, never *merged*; `inFlightCap` is 4 on every repo. |
69
- | Run a unit: produce → review ∥ CI → fix | [references/loop.md](references/loop.md) | **Review on a different model than the implementer**, same breath as CI, **same HEAD**. A PASS is preliminary component evidence — **record it with typed `reviewSubject` + `authorizationBoundary`, then feed `record-component-candidate`. The log is append-only: a legacy-shape round can never become component evidence.** |
70
- | Deliver a merge-ready component | [references/deliverables.md](references/deliverables.md) | One PR per **independently-shippable component** — an epic is not one PR. |
71
- | Enqueue, watch, route a dequeue | [references/delivery.md](references/delivery.md) | A watch observes a **progression**, not a state. Never hand-roll a watcher. |
72
- | Preserve terminal facts while coherence blocks a transition | [references/terminal-evidence-journal.md](references/terminal-evidence-journal.md) | Journal append is evidence only; reconciliation revalidates coherence and live facts before one state transition. |
73
- | Persist / resume run state | [references/run-state.md](references/run-state.md) | Durable state lives in the manifest, not your context. |
74
- | Reconcile superseded unit PRs, then finalize | [references/finalization.md](references/finalization.md) | Run the pre-finalization `reconcile-contained-unit-prs` operation `next` emits for delivered combined components. **`finalize <slug>` remains the sole completion transition** — fails closed on dispositions, live ancestry/GitHub state, branch restoration and cleanup, then renders the handoff. |
75
-
76
- **`references/why.md` is not on this list, and never is.** It is the archive — the incident behind each rule — read when you **edit** this skill, never while running it. The `→ [why]` citations are provenance, not steps: every rule you need is stated where the rule is.
77
-
78
-
79
- The four guarantees, the spawn contract, the step map and the definition of done
80
- stay on this page: a reader who takes nothing else from this skill should still
81
- take those.
82
-
83
- ## The four guarantees (everything here serves one of these)
84
-
85
- A step that serves none of these does not belong in this skill ([the removal path](#the-removal-path-keep-this-skill-small)). Each bar in full — what it refuses, what satisfies it, the state that records it — is [references/guarantees.md](references/guarantees.md); each one's incident record is [references/why.md](references/why.md#the-four-guarantees).
86
-
87
- 1. **Real tests, honestly green.** Never skip, guard, weaken or `.only` a test to pass; never mock a first-party internal seam or intercept first-party routes in a journey; an assertion against a 404/empty/error page is a defect.
88
- 2. **An independent review that actually ran.** Fresh context **and** a different model than the one that wrote the diff, loading `review-pr` and returning its proof artifacts.
89
- 3. **The loop exits on a fresh verdict on the current authorization boundary, never on a claim.** "I addressed the findings" is not a terminal state, and a bar the orchestrator may raise after the fact is not a bar.
90
- 4. **Merging requires a recorded human authorization** (`mergeShippable`, set only by a human answering pre-flight) **and only ever targets the integration branch** — never production, which is `resolve-release`'s. An **unset** field resolves to `supervised`: no recorded answer, no merge.
91
-
92
- ## How to invoke me
93
-
94
- **Main loop only — never nested in a subagent. All spawns at depth 1, launched by you — and you coordinate, never implement**, single-issue runs included. Be a **thin scheduler**: every heavy step runs in a spawn returning a compact schema'd result (verdict + `file:line` + PR ref, never a transcript), durable state lives in the [run manifest](references/run-state.md), and **waiting is not foreground work** — an enqueued PR gets one launch of [`watch-delivery.mjs`](scripts/watch-delivery.mjs), never a poll loop.
95
-
96
- **The leaf-spawn contract (every spawn, both steps).** A spawned agent inherits none of your loaded skills, and each clause fails **silently** when omitted. **Render it, don't compose it — [`run-state.mjs spawn-contract <slug> <unit> --kind producer|fix|review`](scripts/run-state.mjs) fills every clause from state and prints a block to paste** (exit 4 = state is missing a clause; fix the state): a composed contract decays across a run. Each clause in full, with its failure mode: [references/spawn-contract.md](references/spawn-contract.md).
97
-
98
- - **(a) Read the skill** — `<skillsRoot>/<skill>/SKILL.md`, **absolute**, resolved at [pre-flight](references/pre-flight.md) step 0.
99
- - **(b) Name the proof** — an artifact the next step verifies; output without it did not run the skill.
100
- - **(c) Use the harness's own agent primitive** — one whose result returns *into this session as a value*. A launch with no result channel back (detached job, background CLI, queued task) does not qualify.
101
- - **(d) Pass the model *and* its effort** — `models.<slot>` + `models.<slot>Effort` (absent = `high`). A slot is an operating point, not a model.
102
- - **(e) Pass the working directory** — the **unit's own** `units[].workspacePath`, never yours; unset, the spawn inherits *your* cwd and writes into the tree you coordinate from. Every code-writing spawn, every round — and a fix round gets the **same** path its producer used.
103
-
104
- **A spawn that dies mid-flight leaves a partial, and the partial beats a clean slate** — point the replacement at the same path. But a partial is **never** proof: `status: in-progress` counts as missing for every gate.
105
-
106
- **Fan-out (opt-in, Workflow harness):** read-only/advisory stages only — prior-art and independent review — via `workflows/`; anything that writes code or hits a human gate stays in the main loop ([references/fan-out.md](references/fan-out.md)). An epic's *implementers* are plain depth-1 spawns either way, concurrent up to the in-flight cap, each in its own unit's workspace.
107
-
108
- ## Pre-flight (once, before intake — never mid-run)
109
-
110
- **Before creating or resuming a run, use [`run-state.mjs init|resume`](scripts/run-state.mjs).** That lifecycle boundary runs `engineering-runtime`'s read-only Workflow coherence verifier first: an incoherent, unavailable or malformed verdict fails closed with structured findings and a generated repair recipe it never executes. Inspection commands stay available for diagnosis.
111
-
112
- Read [references/pre-flight.md](references/pre-flight.md) and run its seven steps (0-6) — **once**, before intake, never mid-run. One neutral question batch through [`scripts/preflight-questions.mjs`](scripts/preflight-questions.mjs); invoke only the calls it plans; record the completed patch atomically (a cancelled gate records nothing). The non-negotiables it elaborates rather than replaces:
113
-
114
- - **Models** — the **implementer** is asked with alternates shown; the **reviewer is filled from the ranking, never asked**, and stated in the gate. **Reviewer ≠ implementer** is hard; a slot is an **operating point** (model + banked `models.<slot>Effort`). **No silent fallback:** read back the model each spawn ran on (`units[].implementationModel` when it differs) — a reviewer read-back ≠ the confirmed model voids the verdict for guarantee 2.
115
- - **Everything else is probed or filled, never assumed mid-run** — `targetBranch` from fetched remote heads; `deliveryMode` + `queueProvider` + `enqueueTrigger` from [`detect-delivery-mode.mjs`](scripts/detect-delivery-mode.mjs), UNKNOWN being a human ask; `autonomy` **filled** as `autonomous` by [`preflight-questions.mjs`](scripts/preflight-questions.mjs) (stated, overridable to `supervised`), subsuming `mergeShippable`, lifting neither the design gate nor the breaker's `descope` or ceiling. Where a repo auto-merges on its conditions, **posting the verdict as an approval *is* the merge** — ask [`run-state.mjs approval-gate <slug> [componentId]`](scripts/run-state.mjs) first.
116
- - **Design first** — pre-flight **skims for units that already owe a design and hands them back** before anything else is settled.
117
-
118
- An outer orchestrator that already ran an equivalent gate → inherit, don't re-prompt.
119
-
120
- ## The loop (per unit)
121
-
122
- Loop each unit through these three steps until the review passes — all three in [references/loop.md](references/loop.md).
123
-
124
- | Step | What it does | Ends when |
125
- |---|---|---|
126
- | 1 — Produce | One spawn: implement + e2e + gates + PR | A PR exists carrying its Review Contract |
127
- | 2 — Review ∥ CI | Independent review on a **different model**, same breath as CI, same HEAD | A verdict lands: PASS / NEEDS_CHANGES / FAIL / BLOCKED |
128
- | 3 — Fix, then loop | Address the verdict, then re-review the delta | The review PASSes — preserve it and update the component candidate |
129
-
130
- ## Promotion / release lane
131
-
132
- A unit PR based on a production branch is a **promotion**, not a feature PR: fast-forward required (review-pr § Promotion PRs), gate on the promoted SHA's already-green PR-lane result, and read-only smoke (under a read-only production profile, `prod-preview`/`prod-active`) against a 0%-traffic candidate before any traffic shifts. Full releases belong to `resolve-release`.
133
-
134
- ## Definition of done (handoff)
135
-
136
- **Run the operations emitted by `run-state.mjs next <slug>`.** For a delivered combined component with distinct published unit PRs, `next` first emits `reconcile-contained-unit-prs`: it freshly fetches `origin/<targetBranch>`, verifies the live combined PR at its recorded merge SHA, compares every live unit PR exact head with the component's recorded reviewed-unit evidence, and closes only open heads proved contained in the fresh target. Drift, missing ancestry, or unreadable state leaves that unit PR open and blocks finalization; terminal unit PRs are recorded no-ops.
137
-
138
- **Then run `run-state.mjs finalize <slug>`.** This remains the only completion transition. It independently fetches the target again, proves every delivered merge SHA is an ancestor, verifies issue and PR terminal states live, restores `originalBranch`, and applies the fail-closed workspace reap — refusing on any unresolved unit, stale GitHub state, missing ancestry, or preserved unpublished work. On success it writes immutable `finalization` evidence and prints the canonical handoff from that validated state.
139
-
140
- **Do not retype that handoff or replace it with a prose completion claim.** `run-state.mjs progress <slug>` is the standing progress report, never a completion gate; [the profiler](references/postmortem.md) is an explicitly invoked, non-blocking diagnostic that authorizes nothing.
141
-
142
- Three rules the generated handoff exists to enforce:
143
-
144
- - **A component whose members are `merge-ready` owes one terminal `components[].delivery.outcome`** — `merged` with a verified component `mergedSha`, or `handed-back` with the blocking condition. Member units derive dispositions through `deliveryRef`; a member with neither canonical nor legacy evidence is reported **undelivered, never done**.
145
- - **Merge only what `mergeShippable` authorizes, and only into `targetBranch`.** Never promote to production — that is `resolve-release` with its own authorization.
146
- - **Reap the workspaces last**, through `finalize`, after every unit branch is pushed — removing them first destroys what was never published. **Never `--force` a worktree removal and never delete one by hand**: preserved unpublished work blocks finalization and stays on disk, and a forced removal is the one action in this loop that destroys work no gate can recover. On a `worktree` run the **orchestrator's own checkout is removed separately, after the reap**, and only once the finalization record exists.
147
-
148
- What the handoff reports per unit, and how to read the round profile: [references/finalization.md](references/finalization.md).
149
-
150
- ## The removal path (keep this skill small)
151
-
152
- This skill accretes, so every new gate/artifact/validator must name the incident it would have caught in the same commit and in [references/why.md](references/why.md). Recommend retirement only from a configurable durable cross-run window of readable executions with zero unique findings and zero rejections; one clean run is never enough, and `not run`, `skipped`, or `unreadable` breaks the streak. Fingerprint findings by stable `class + locator`, keep value separate from raw volume, and leave every retirement decision to the human. Process weight is a regression ([regression checklist](references/regression-checklist.md)). → [why](references/why.md#the-removal-path) Editing this skill? Run the sandbox self-test first: [references/sandboxed-testing.md](references/sandboxed-testing.md).
153
-
154
- ## Reference Map
155
-
156
- **`run-state.mjs guide [what you are trying to do]`** — 29 routed answers, each naming the reference
157
- that owns it and the script that runs it. `guide` with no query lists them all; `--json` for a
158
- machine-readable answer. It needs no run and no manifest.
159
-
160
- ```
161
- run-state.mjs guide reap # -> references/interference.md, scripts/workspaces.mjs
162
- run-state.mjs guide breaker # -> references/breaker.md, run-state.mjs diagnose-breaker
163
- ```
164
-
165
- This table used to live here, at 24 rows and 3.6KB of a file that is loaded into **every** run
166
- whether the table is consulted or not — and it is consulted one row at a time, when you already
167
- know what you are doing next. That is a query, not doctrine. The [phase routing](#routing-read-this-first)
168
- above stayed, because it is read once at the start and is what makes a truncated read survivable.
@@ -1,9 +0,0 @@
1
- interface:
2
- display_name: "Resolve Issues"
3
- short_description: "Slash/explicit-only orchestrator: issues/epic → merge-ready PR(s)"
4
-
5
- policy:
6
- # Codex counterpart to SKILL.md disable-model-invocation: true
7
- # (Claude Code / Pi). Keeps $resolve-issues / explicit invoke; blocks
8
- # description-based auto-selection.
9
- allow_implicit_invocation: false