@1aboveio/skills 0.18.0 → 0.19.0

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 (41) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/runtime/skills/distribution/generated/recipes.json +43 -23
  4. package/runtime/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +1 -1
  5. package/runtime/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +23 -1
  6. package/skills/engineering/engineering-runtime/coherence/workflow.json +65 -15
  7. package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +1 -1
  8. package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +23 -1
  9. package/skills/engineering/resolve-issues/SKILL.md +1 -1
  10. package/skills/engineering/resolve-issues/generated/workflow-repair-policy.json +55 -11
  11. package/skills/engineering/resolve-issues/scripts/run-state.mjs +4 -4
  12. package/skills/engineering/resolve-release/references/related-skills.md +1 -0
  13. package/skills/engineering/rush-issues/LICENSE +3 -0
  14. package/skills/engineering/rush-issues/SKILL.md +179 -0
  15. package/skills/engineering/rush-issues/agents/openai.yaml +9 -0
  16. package/skills/engineering/rush-issues/evals/evals.json +65 -0
  17. package/skills/engineering/rush-issues/references/canary.md +45 -0
  18. package/skills/engineering/rush-issues/references/cicd.md +37 -0
  19. package/skills/engineering/rush-issues/references/combine.md +51 -0
  20. package/skills/engineering/rush-issues/references/expire.md +55 -0
  21. package/skills/engineering/rush-issues/references/exploration.md +53 -0
  22. package/skills/engineering/rush-issues/references/implementation.md +66 -0
  23. package/skills/engineering/rush-issues/references/preflight.md +31 -0
  24. package/skills/engineering/rush-issues/references/profiling.md +78 -0
  25. package/skills/engineering/rush-issues/references/review.md +48 -0
  26. package/skills/engineering/rush-issues/references/shared-modules.md +66 -0
  27. package/skills/engineering/rush-issues/references/task-plan.md +110 -0
  28. package/skills/engineering/rush-issues/scripts/discover-models.mjs +9 -0
  29. package/skills/engineering/rush-issues/scripts/model-catalog.mjs +9 -0
  30. package/skills/engineering/rush-issues/scripts/preflight-models.mjs +466 -0
  31. package/skills/engineering/rush-release/LICENSE +3 -0
  32. package/skills/engineering/rush-release/SKILL.md +99 -0
  33. package/skills/engineering/rush-release/agents/openai.yaml +8 -0
  34. package/skills/engineering/rush-release/evals/evals.json +44 -0
  35. package/skills/engineering/rush-release/references/candidate.md +30 -0
  36. package/skills/engineering/rush-release/references/cut.md +66 -0
  37. package/skills/engineering/rush-release/references/preflight.md +47 -0
  38. package/skills/engineering/rush-release/references/publish.md +100 -0
  39. package/skills/engineering/rush-release/scripts/apply.mjs +185 -0
  40. package/skills/engineering/rush-release/scripts/green-head.mjs +231 -0
  41. package/skills/engineering/rush-release/scripts/plan.mjs +264 -0
@@ -237,7 +237,7 @@
237
237
  "id": "first-party",
238
238
  "type": "first-party",
239
239
  "package": "@1aboveio/skills",
240
- "version": "0.18.0"
240
+ "version": "0.19.0"
241
241
  }
242
242
  },
243
243
  {
@@ -248,7 +248,7 @@
248
248
  "id": "first-party",
249
249
  "type": "first-party",
250
250
  "package": "@1aboveio/skills",
251
- "version": "0.18.0"
251
+ "version": "0.19.0"
252
252
  }
253
253
  },
254
254
  {
@@ -259,7 +259,7 @@
259
259
  "id": "first-party",
260
260
  "type": "first-party",
261
261
  "package": "@1aboveio/skills",
262
- "version": "0.18.0"
262
+ "version": "0.19.0"
263
263
  }
264
264
  },
265
265
  {
@@ -270,7 +270,18 @@
270
270
  "id": "first-party",
271
271
  "type": "first-party",
272
272
  "package": "@1aboveio/skills",
273
- "version": "0.18.0"
273
+ "version": "0.19.0"
274
+ }
275
+ },
276
+ {
277
+ "installName": "rush-issues",
278
+ "ownership": "owned",
279
+ "sourcePath": "skills/engineering/rush-issues",
280
+ "expectedSource": {
281
+ "id": "first-party",
282
+ "type": "first-party",
283
+ "package": "@1aboveio/skills",
284
+ "version": "0.19.0"
274
285
  }
275
286
  },
276
287
  {
@@ -281,7 +292,18 @@
281
292
  "id": "first-party",
282
293
  "type": "first-party",
283
294
  "package": "@1aboveio/skills",
284
- "version": "0.18.0"
295
+ "version": "0.19.0"
296
+ }
297
+ },
298
+ {
299
+ "installName": "rush-release",
300
+ "ownership": "owned",
301
+ "sourcePath": "skills/engineering/rush-release",
302
+ "expectedSource": {
303
+ "id": "first-party",
304
+ "type": "first-party",
305
+ "package": "@1aboveio/skills",
306
+ "version": "0.19.0"
285
307
  }
286
308
  },
287
309
  {
@@ -292,7 +314,7 @@
292
314
  "id": "first-party",
293
315
  "type": "first-party",
294
316
  "package": "@1aboveio/skills",
295
- "version": "0.18.0"
317
+ "version": "0.19.0"
296
318
  }
297
319
  },
298
320
  {
@@ -303,7 +325,7 @@
303
325
  "id": "first-party",
304
326
  "type": "first-party",
305
327
  "package": "@1aboveio/skills",
306
- "version": "0.18.0"
328
+ "version": "0.19.0"
307
329
  }
308
330
  },
309
331
  {
@@ -314,7 +336,7 @@
314
336
  "id": "first-party",
315
337
  "type": "first-party",
316
338
  "package": "@1aboveio/skills",
317
- "version": "0.18.0"
339
+ "version": "0.19.0"
318
340
  }
319
341
  },
320
342
  {
@@ -325,11 +347,23 @@
325
347
  "id": "first-party",
326
348
  "type": "first-party",
327
349
  "package": "@1aboveio/skills",
328
- "version": "0.18.0"
350
+ "version": "0.19.0"
329
351
  }
330
352
  }
331
353
  ],
332
354
  "dependencyClosures": [
355
+ {
356
+ "invokedSkill": "rush-issues",
357
+ "members": [
358
+ "code-review",
359
+ "harness-runtime",
360
+ "e2e-test",
361
+ "rush-issues",
362
+ "smoke",
363
+ "engineering-runtime"
364
+ ],
365
+ "generatedIdentities": []
366
+ },
333
367
  {
334
368
  "invokedSkill": "resolve-issues",
335
369
  "members": [
@@ -350,6 +384,14 @@
350
384
  }
351
385
  ]
352
386
  },
387
+ {
388
+ "invokedSkill": "rush-release",
389
+ "members": [
390
+ "rush-release",
391
+ "engineering-runtime"
392
+ ],
393
+ "generatedIdentities": []
394
+ },
353
395
  {
354
396
  "invokedSkill": "resolve-release",
355
397
  "members": [
@@ -426,14 +468,16 @@
426
468
  "sourceId": "first-party",
427
469
  "sourceType": "first-party",
428
470
  "package": "@1aboveio/skills",
429
- "version": "0.18.0",
471
+ "version": "0.19.0",
430
472
  "installPath": null,
431
473
  "members": [
432
474
  "harness-runtime",
433
475
  "e2e-test",
434
476
  "ensure-coverage",
435
477
  "implement-and-pr",
478
+ "rush-issues",
436
479
  "resolve-issues",
480
+ "rush-release",
437
481
  "resolve-release",
438
482
  "review-pr",
439
483
  "smoke",
@@ -442,7 +486,7 @@
442
486
  "commands": [
443
487
  {
444
488
  "transport": "npm",
445
- "command": "npx @1aboveio/skills@0.18.0 install --group engineering-workflow --yes"
489
+ "command": "npx @1aboveio/skills@0.19.0 install --group engineering-workflow --yes"
446
490
  }
447
491
  ],
448
492
  "onFailure": {
@@ -3412,7 +3412,7 @@ export const WORKFLOW_PREFLIGHT_COMMANDS = Object.freeze([
3412
3412
 
3413
3413
  const WORKFLOW_VERIFIER_URL = new URL('../../engineering-runtime/scripts/workflow-coherence.mjs', import.meta.url)
3414
3414
  const WORKFLOW_FALLBACK_POLICY_URL = new URL('../generated/workflow-repair-policy.json', import.meta.url)
3415
- export const WORKFLOW_TRUSTED_FALLBACK_POLICY_SHA256 = 'c3d9fac9486de96cb064da61f2bfcb07d4ebc9935be804cfac0c0b9f743c7a30'
3415
+ export const WORKFLOW_TRUSTED_FALLBACK_POLICY_SHA256 = '27d1fb2d0bdf9ca37933dff2f0e1863d95f9f147baecbbce9dd3553a4c71a915'
3416
3416
  const WORKFLOW_REPAIR_RECIPE_REFERENCE = Object.freeze({
3417
3417
  id: 'engineering-workflow-dependency-first',
3418
3418
  generatedFrom: 'skills/distribution/generated/recipes.json',
@@ -3461,10 +3461,10 @@ const WORKFLOW_MATT_MEMBERS = Object.freeze([
3461
3461
  'prototype', 'research', 'resolving-merge-conflicts', 'setup-matt-pocock-skills', 'tdd',
3462
3462
  'to-spec', 'to-tickets', 'triage', 'wayfinder',
3463
3463
  ])
3464
- // Dependency first, then the eight owned members, in the census order the generator emits.
3464
+ // Dependency first, then the ten owned members, in the census order the generator emits.
3465
3465
  const WORKFLOW_FIRST_PARTY_MEMBERS = Object.freeze([
3466
- 'harness-runtime', 'e2e-test', 'ensure-coverage', 'implement-and-pr', 'resolve-issues',
3467
- 'resolve-release', 'review-pr', 'smoke', 'engineering-runtime',
3466
+ 'harness-runtime', 'e2e-test', 'ensure-coverage', 'implement-and-pr', 'rush-issues', 'resolve-issues',
3467
+ 'rush-release', 'resolve-release', 'review-pr', 'smoke', 'engineering-runtime',
3468
3468
  ])
3469
3469
  const WORKFLOW_RECIPE_FIELDS = Object.freeze(['id', 'generatedFrom', 'groupId', 'lifecycle', 'renderTarget', 'stopOnFailure', 'steps'])
3470
3470
  const WORKFLOW_COMMAND_FIELDS = Object.freeze(['transport', 'command'])
@@ -3,6 +3,7 @@
3
3
  [SKILL.md](../SKILL.md) routes the phases; this file is the seam with every other skill — who
4
4
  produces this lane's input, who owns the gates it runs, and where a failure goes.
5
5
 
6
+ - `rush-release` — the explicit GitHub Flow cut from green `main` (changelog + tag + Cloud Build/npm watch). It does not assemble, promote, or shift traffic; this lane still owns those.
6
7
  - `resolve-issues` — the **upstream** producer; its handoff is this skill's input. For an epic that is one integration-verified deliverable per [component](../../resolve-issues/references/integration-gate.md), each a combined PR whose tip step 1 re-verifies (principle 2) rather than re-merges.
7
8
  - `review-pr` — twice: **step 1** on the combined integration diff, **step 2** in promotion mode (fast-forward + release-readiness checklist).
8
9
  - `smoke` — the **exposure gate**: step 4a against the 0%-traffic candidate under read-only **`prod-preview`**, step 4b against the live service under **`prod-active`** (principle 4). The named [Validation Profile](../../smoke/references/manifest.md#validation-profiles-the-profiles-registry) owns the mutation policy, so both production profiles are mechanically read-only. Also the engine behind the SHA-keyed verdict recorder the candidate pin reads (principle 11).
@@ -0,0 +1,3 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 1AboveIO
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: rush-issues
3
+ description: "Slash/explicit-only (/rush-issues). Drive an issue, epic, or complete feature spec to one PR on one branch: model/target preflight, task map, shared exploration, up to 4 isolated implementers, combination, one independent code-review, then CI/queue/merge. Do not auto-select. Use for fast whole-spec delivery, including high-risk implementation work; risk changes model and validation depth, never the workflow. Retries and 30-minute task expiry trigger diagnosis and continuation. NOT for release work (rush-release or resolve-release)."
4
+ disable-model-invocation: true
5
+ dependencies:
6
+ - code-review
7
+ - smoke
8
+ - harness-runtime
9
+ ---
10
+
11
+ # Rush issues
12
+
13
+ Deliver the **entire spec in one PR on one branch**. Act as a thin scheduler:
14
+ coordinate depth-1 subagents and local programs; do not implement product code
15
+ in the orchestrator.
16
+
17
+ **Operating bounds:** 30 minutes per task attempt · 2 retries before diagnosis ·
18
+ in-flight cap 4 · exactly one combined PR.
19
+
20
+ ```text
21
+ preflight (models + target only) -> task plan (show user)
22
+ -> exploration (shared findings)
23
+ -> continuously schedule runnable units, at most 4 in flight:
24
+ isolated implement -> validate -> self-review -> fix/re-validate as needed
25
+ -> combine every unit on one PR branch -> validate
26
+ -> data warehouse only: staged read-only canary on exact HEAD
27
+ -> open one PR
28
+ -> one independent code-review -> fix/re-validate/re-review as needed
29
+ -> watch CI -> fix/re-validate -> enqueue/merge
30
+ ```
31
+
32
+ This file is the workflow and index. Read the linked procedure immediately
33
+ before its stage; do not invent an unlinked substitute.
34
+
35
+ | Stage / concern | Procedure |
36
+ |---|---|
37
+ | Model and target preflight | [references/preflight.md](references/preflight.md) |
38
+ | Task map and run setup | [references/task-plan.md](references/task-plan.md) |
39
+ | Shared exploration | [references/exploration.md](references/exploration.md) |
40
+ | Isolated implementation loop | [references/implementation.md](references/implementation.md) |
41
+ | Combine to one PR | [references/combine.md](references/combine.md) |
42
+ | Staged read-only warehouse canary | [references/canary.md](references/canary.md) |
43
+ | Independent factual review | [references/review.md](references/review.md) |
44
+ | CI, queue, and merge | [references/cicd.md](references/cicd.md) |
45
+ | Expiry, diagnosis, and continuation | [references/expire.md](references/expire.md) |
46
+ | Live task plan | [references/task-plan.md](references/task-plan.md) |
47
+ | Performance profiling | [references/profiling.md](references/profiling.md) |
48
+ | Model catalog and leaf skills | [references/shared-modules.md](references/shared-modules.md) |
49
+
50
+ ## Run invariants
51
+
52
+ - The PR branch contains every unit in the task map. Do not open a partial PR
53
+ and describe a reduced subset as the spec.
54
+ - Never route a unit or run to another implementation workflow because it is
55
+ high-risk, large, or difficult. Keep the entire spec in Rush and apply the
56
+ repository's hazard guidance through model choice, implementation, tests,
57
+ review, and CI.
58
+ - Prefer an isolated run branch + Git workspace. Every implementation unit owns
59
+ a separate branch + Git workspace until it is combined or handed back.
60
+ - Schedule runnable units continuously and in parallel, with at most 4 active
61
+ implementation workers. Preserve declared blocking dependencies.
62
+ - A retry counter reaching 2 or a task attempt reaching 30 minutes causes
63
+ expiry -> diagnosis -> revised plan -> continuation. Expiry alone is not a
64
+ terminal unit outcome and does not remove scope.
65
+ - A human/external blocker may stop the run. Mark the unit `blocked`, preserve
66
+ its workspace, and hand back without claiming a whole-spec PR.
67
+ - Never open per-unit PRs. Open exactly one PR, after all units are combined and
68
+ the combined HEAD validates.
69
+ - When the run changes executable data-warehouse behavior or its data contract,
70
+ do not enter review until a staged read-only canary succeeds on the exact
71
+ combined HEAD. Any later code or configuration commit invalidates that
72
+ canary and requires validation plus a fresh canary on the new HEAD.
73
+ - Review facts independently. Producer summaries, claims, logs, and evidence
74
+ may locate work but cannot establish correctness for the reviewer.
75
+ - Do not manufacture review evidence collateral. Keep only the stage result,
76
+ commands actually run, findings, task-plan transitions, and profiling events.
77
+ - Persist each task-plan transition and profiling event under one monotonically
78
+ increasing plan revision, then render the user board from that persisted
79
+ revision. Displayed counters must never outrun or lag stored state.
80
+
81
+ ## Stage contracts
82
+
83
+ Every subagent brief includes:
84
+
85
+ - original spec/unit source and acceptance criteria
86
+ - absolute run workspace and unit workspace (when applicable)
87
+ - absolute shared exploration findings path
88
+ - model id + effort and required read-back
89
+ - absolute skill path only when the stage explicitly invokes a leaf skill
90
+ - required outcome and validation obligations, without prescribing an
91
+ implementation workflow, development methodology, or producer evidence format
92
+ - proof-of-execution result path or structured return contract
93
+ - 30-minute task-attempt deadline
94
+
95
+ No readable result means the stage did not complete. A dead spawn is diagnosed
96
+ and resumed in the same preserved workspace; it is never replaced by a success
97
+ claim.
98
+
99
+ ## Workflow
100
+
101
+ ### 1. Preflight
102
+
103
+ Select models and confirm the non-production target branch. Those are the only
104
+ preflight decisions. Use the shared preflight module and model-catalog fast
105
+ path: explorer is a balanced-coder that prefers `gpt-5.6-terra@high`; reviewer
106
+ is a distinct deep-reasoner that prefers `gpt-5.5@high` when available. Risk
107
+ may recommend a stronger operating point, but never changes the workflow.
108
+
109
+ ### 2. Build and show the task plan
110
+
111
+ Create the isolated run branch/workspace, decompose the entire spec into
112
+ implementable units, record blocking dependencies and shared surfaces, create
113
+ the run state/profiling paths, and show the complete plan before any heavy
114
+ spawn. Hazardous units stay in the plan with their required safety checks.
115
+
116
+ ### 3. Exploration
117
+
118
+ Spawn one explorer. It reads every requirement, the codebase, named external
119
+ documents, ADRs, and other context, then writes shared findings available to
120
+ all implementers. It writes no product code.
121
+
122
+ ### 4. Implement every unit
123
+
124
+ Give each unit its own branch/workspace and one implementer with the original
125
+ unit context plus shared findings. State the required outcome and validation
126
+ obligations, then let the active harness choose how to implement them. The
127
+ implementer changes code, validates the result, self-reviews the net diff,
128
+ fixes findings, and re-validates. Refill free worker slots immediately while
129
+ respecting blocking dependencies.
130
+
131
+ ### 5. Combine and open one PR
132
+
133
+ After every unit succeeds, combine all unit branches onto the isolated run
134
+ branch, resolve integration conflicts, and validate the combined HEAD. For a
135
+ data-warehouse run, execute the staged read-only canary on that exact HEAD
136
+ after validation and before review. Open one PR against the confirmed target
137
+ branch. If any unit or required canary remains blocked, do not open or describe
138
+ a partial PR as completion of the spec.
139
+
140
+ ### 6. Independent review
141
+
142
+ Spawn one reviewer on the combined HEAD using the `code-review` skill. It reads
143
+ the original spec and repository standards, computes its own diff fixed point,
144
+ inspects the implementation, and runs checks needed to verify findings. It does
145
+ not accept producer evidence as proof. Fix blocking findings on the combined
146
+ branch, validate, rerun the warehouse canary when required, then run a fresh
147
+ review until successful; after 2 failed fix/review cycles, diagnose and continue
148
+ with a revised approach.
149
+
150
+ ### 7. CICD
151
+
152
+ Watch CI on the exact combined HEAD. Diagnose a failure and fix it on the same
153
+ PR branch. A code/config change creates a new HEAD and invalidates the prior
154
+ review and any warehouse canary: run relevant local validation, rerun the
155
+ staged read-only canary when required, return to a fresh independent review of
156
+ that HEAD, then push/watch again. A provider rerun with no HEAD change does not
157
+ invalidate review or canary. Inspect live queue configuration before
158
+ enqueueing; use the owning queue skill when installed. Enqueue/merge only when
159
+ the exact HEAD is reviewed, green, and carries its required canary. After 2
160
+ failed cycles or a 30-minute watch attempt, diagnose and continue rather than
161
+ silently abandoning the run.
162
+
163
+ ## Task plan and profiling
164
+
165
+ The task map is the live source of truth. Display it after run setup, every
166
+ stage transition, worker/retry/diagnosis event, PR HEAD change, and about
167
+ every 5 minutes during long work. Apply a transition, append its profiling
168
+ event with the same `planRevision`, persist both, then render that exact plan
169
+ revision. Profiling distinguishes wall time, effective LLM/program activity,
170
+ and external wait.
171
+
172
+ ## Done
173
+
174
+ Success means one PR containing the entire mapped spec is independently
175
+ reviewed, green on its exact HEAD, canary-verified when it changes warehouse
176
+ behavior, and merged when authorized (or handed back merge-ready in supervised
177
+ mode). Final handoff includes the plan, PR URL/SHA, validation, canary when
178
+ required, and review results, retries/diagnoses, wall/effective/wait timings,
179
+ profiling path, and exploration path.
@@ -0,0 +1,9 @@
1
+ interface:
2
+ display_name: "Rush Issues"
3
+ short_description: "Slash/explicit-only fast delivery: complete spec to one PR"
4
+
5
+ policy:
6
+ # Codex counterpart to SKILL.md disable-model-invocation: true
7
+ # (Claude Code / Pi). Keeps $rush-issues / explicit invoke; blocks
8
+ # description-based auto-selection.
9
+ allow_implicit_invocation: false
@@ -0,0 +1,65 @@
1
+ {
2
+ "skill_name": "rush-issues",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Dry-run only: do not modify Git, spawn workers, open a PR, or contact a provider. Plan a rush run for epic #2400 against main with six routine units: #2401 API parser, #2402 CLI adapter (depends on #2401), #2403 docs, #2404 unit tests, #2405 smoke journey, #2406 migration notes. Show the first user-visible task plan and the concrete explorer/implement/combine/review/CICD briefs and state transitions you would use. All six units are required by the original spec. Available models include openai/gpt-5.6-terra@high and openai/gpt-5.5@high.",
7
+ "expected_output": "A dry-run artifact that displays the complete task map before heavy work, uses shared exploration, schedules at most four isolated unit workspaces while respecting #2402's dependency, combines all six units into one PR, performs independent factual review, and records 30-minute/retry/profiling behavior.",
8
+ "files": [],
9
+ "expectations": [
10
+ "Displays a task plan containing all six units before exploration or implementation.",
11
+ "Records #2402 as blocked on #2401 and schedules runnable work continuously with at most four active workers.",
12
+ "Assigns every implementation unit its own branch and isolated Git workspace.",
13
+ "Uses one shared exploration pack and selects gpt-5.6-terra@high for exploration and a distinct gpt-5.5@high reviewer when available.",
14
+ "Combines only after all six mapped units succeed and opens exactly one whole-spec PR.",
15
+ "Runs one independent code-review stage that establishes facts independently of producer claims.",
16
+ "States the two-retry and 30-minute diagnosis/resume behavior and profiles wall, effective, and wait time."
17
+ ]
18
+ },
19
+ {
20
+ "id": 2,
21
+ "prompt": "Dry-run only: do not modify Git, spawn workers, open a PR, or contact a provider. Simulate a rush run with required units A, B, and C. B and C succeed. A fails validation twice and its current task reaches 30 minutes. Later, after all units are implemented, the producer's PR body claims every test is green, but an independently run test reveals a real defect. Show exact task-plan transitions, whether/when combination is allowed, the review/fix loop, and CICD handling if the first two CI fix attempts also fail.",
22
+ "expected_output": "A dry-run artifact where A expires into diagnosis and resumes in its preserved workspace, B/C do not become a partial PR, combination waits for A, review establishes facts independently rather than trusting producer evidence, every changed HEAD is validated and freshly reviewed, and two failed CI cycles trigger diagnosis and continuation.",
23
+ "files": [],
24
+ "expectations": [
25
+ "Transitions A's expired attempt to diagnosing after two failures or 30 minutes while preserving A's workspace and branch.",
26
+ "Records a changed hypothesis or plan before resetting the local retry counter and resuming A.",
27
+ "Does not combine B and C into a partial PR; combination waits until A, B, and C all succeed.",
28
+ "Treats producer test claims as untrusted and uses the independent reviewer’s own test result as the fact.",
29
+ "Fixes the review defect on the combined branch, validates the fix, and performs a fresh review of the new HEAD.",
30
+ "After two failed CI fix cycles, diagnoses and continues on the same PR branch rather than abandoning or reducing scope.",
31
+ "Invalidates the prior review after any code-changing CI fix and obtains a fresh independent review of the new HEAD before enqueue or merge.",
32
+ "Uses one planRevision for each persisted task-plan transition, profiling event, and displayed board so counters and HEAD cannot disagree.",
33
+ "Shows task-plan checkpoints and profiling for retries, diagnosis, wall/effective activity, and external wait."
34
+ ]
35
+ },
36
+ {
37
+ "id": 3,
38
+ "prompt": "Dry-run only: do not modify Git, spawn workers, open a PR, or contact a provider. Plan a rush run for a high-risk money migration epic against main. Show preflight, task planning, implementation, combination, review, and CICD. The work must remain one whole-spec PR even though repository hazard guidance classifies every unit high-risk.",
39
+ "expected_output": "A dry-run artifact whose preflight asks only for model choice and target branch through the shared preflight module, retains every high-risk unit in Rush, applies deeper model/testing/review obligations, uses sandbox-compatible Git workspaces, and produces one combined PR without redirecting to another workflow.",
40
+ "files": [],
41
+ "expectations": [
42
+ "Uses the shared preflight module for only model choice and target-branch confirmation.",
43
+ "Does not redirect to resolve-issues or remove high-risk units from the Rush task map.",
44
+ "Uses risk only to strengthen model selection, implementation, validation, and review depth.",
45
+ "Keeps the entire high-risk epic within the one-branch, one-PR Rush workflow.",
46
+ "For sandboxed Git-mutating Pi workers, uses a self-contained clone workspace rather than a linked worktree whose Git metadata is outside the sandbox."
47
+ ]
48
+ },
49
+ {
50
+ "id": 4,
51
+ "prompt": "Dry-run only: do not modify Git, submit a cluster job, spawn workers, open a PR, or contact a provider. Plan a rush run for an epic that changes a PySpark warehouse transformation, partition schema, and backfill watermark. The repository exposes its production entry point with --validate-only and a staging cluster using read-only credentials. Show the ordering from combined validation through review and what happens if a review or CI fix changes HEAD.",
52
+ "expected_output": "A dry-run artifact that classifies the run as warehouse-canary required, validates the combined branch, runs the real entry point in staged read-only validate-only mode on that exact HEAD before review, proves zero publication side effects, and invalidates/repeats the canary after every code or configuration HEAD change.",
53
+ "files": [],
54
+ "expectations": [
55
+ "Records warehouseCanaryRequired and a concrete classification reason in the task plan.",
56
+ "Runs the staged read-only canary after combined tests/validation and before independent review.",
57
+ "Binds the canary command or artifact and durable result to the exact combined 40-character HEAD.",
58
+ "Uses the real production entry point, staging/canary execution surface, bounded source scope, read-only credentials, and --validate-only.",
59
+ "Requires explicit publication skip, zero output records/bytes, and no table commit, checkpoint, watermark, offset, scheduler, or other state mutation.",
60
+ "Blocks instead of waiving the stage if read-only execution cannot be proven.",
61
+ "Invalidates the prior canary result after any code/configuration commit and reruns validation plus canary before review, enqueue, or merge."
62
+ ]
63
+ }
64
+ ]
65
+ }
@@ -0,0 +1,45 @@
1
+ # Staged read-only data-warehouse canary
2
+
3
+ Run this stage after combined validation and before independent review when the
4
+ run changes executable warehouse behavior or its data contract. Examples
5
+ include Spark/SQL/ETL transformations, schemas, keys, partitions, watermarks,
6
+ checkpoints, backfills, or publication/writer behavior. A task that merely
7
+ reads application data or edits warehouse documentation does not activate this
8
+ stage. Record the classification and reason in the task plan.
9
+
10
+ ## Exact-HEAD contract
11
+
12
+ 1. Resolve and record the combined branch's exact 40-character `headSha` after
13
+ tests and validation pass.
14
+ 2. Use the repository's real entry point and staging/canary execution surface
15
+ with read-only credentials. Bind any built artifact or submitted job to that
16
+ exact SHA.
17
+ 3. Use a bounded representative source snapshot/scope and the repository's
18
+ validate-only or dry-run guard. The guard must sit before every writer; a
19
+ mode that skips the transformation under test is not a canary.
20
+ 4. Prove the run created no table/object output, transaction or table-format
21
+ commit, checkpoint, watermark, consumed offset, scheduler-state change, or
22
+ other publication side effect. For Spark, require zero output records and
23
+ bytes plus an explicit publication skip.
24
+ 5. Record the command, non-secret target, source snapshot/scope, exact SHA,
25
+ start/end time, validation readings, logs, and zero-write observation in a
26
+ durable result.
27
+
28
+ Do not run a write-enabled canary, infer safety from a command name, or replace
29
+ the staged execution with local tests. If no repository-supported mode can
30
+ prove read-only execution, mark the canary blocked and hand back the missing
31
+ guard, credentials, environment, or authorization. Do not waive it as
32
+ not-applicable after the run has been classified as warehouse-canary required.
33
+
34
+ ## Failure and invalidation
35
+
36
+ A failed canary returns the combined branch to the fix loop. Diagnose the
37
+ observed failure, change the code or execution plan, rerun relevant local tests
38
+ and validation, then run a fresh canary. Two failed validate/canary cycles or a
39
+ 30-minute attempt follows [expire.md](expire.md).
40
+
41
+ Any code or configuration commit invalidates the prior canary result, even when
42
+ the change looks unrelated. A provider rerun or evidence read with no HEAD
43
+ change may keep the result. When `warehouseCanaryRequired` is true, review, CI
44
+ delivery, enqueue, and merge require a successful canary result for the current
45
+ exact HEAD.
@@ -0,0 +1,37 @@
1
+ # CI, queue, and merge
2
+
3
+ Operate only on the single combined PR branch after independent review
4
+ succeeds.
5
+
6
+ ## Procedure
7
+
8
+ 1. Push the reviewed HEAD and watch required CI checks for that exact SHA.
9
+ 2. On failure, read the actual job logs and reproduce the failing command where
10
+ practical. Diagnose before editing.
11
+ 3. Fix on the same PR branch and run relevant local lint/build/test/smoke.
12
+ 4. If the fix changes HEAD, clear `reviewedHead`, mark review and the prior
13
+ canary result stale, rerun [canary.md](canary.md) when required, and return
14
+ to [review.md](review.md) for a fresh independent review of the new HEAD.
15
+ Only after that succeeds may the new reviewed HEAD be pushed/watched. A
16
+ provider rerun with no commit keeps the existing review and canary valid.
17
+ 5. Before enqueueing, assert `reviewedHead == headSha`; when
18
+ `warehouseCanaryRequired` is true, require a successful canary result naming
19
+ that exact SHA. Require CI green for the SHA and inspect live queue
20
+ configuration/protections. If Mergify is involved, load the `mergify` skill
21
+ and use its queue status/watcher procedure rather than a generic PR-check
22
+ poll.
23
+ 6. In `autonomous` mode, enqueue and watch through merge when authorized. In
24
+ `supervised` mode, hand back the exact green reviewed HEAD as merge-ready and
25
+ do not approve/merge on the human's behalf.
26
+
27
+ ## Expiry behavior
28
+
29
+ Two failed fix/review/watch cycles or a 30-minute bounded watch expires the
30
+ attempt. Follow [expire.md](expire.md): preserve the branch and logs, diagnose
31
+ the failure or pending provider state, update the plan, and continue with a
32
+ fresh bounded attempt. A pending queue after 30 minutes is wait diagnosis, not
33
+ a reason to change code.
34
+
35
+ If diagnosis proves an external or human blocker, mark CICD `blocked` and hand
36
+ back the PR URL, exact HEAD, checks/queue state, and required next action. Never
37
+ report merge success until the provider reports the exact PR merged.
@@ -0,0 +1,51 @@
1
+ # Combine to one PR
2
+
3
+ Combine only after every mapped unit has succeeded. The run branch and PR must
4
+ carry the entire mapped spec.
5
+
6
+ ## Inputs
7
+
8
+ - live task plan with every unit `succeeded`
9
+ - every unit branch and exact succeeded SHA
10
+ - isolated run branch/workspace from task-plan initialization
11
+ - original spec and shared exploration findings
12
+ - confirmed `targetBranch`
13
+
14
+ ## Procedure
15
+
16
+ 1. Fetch `origin/<targetBranch>` and confirm the run branch has the intended
17
+ fixed point. Do not destroy unpublished run-branch work.
18
+ 2. Merge or cherry-pick every unit branch in dependency order. Prefer a history
19
+ that preserves each unit id and SHA.
20
+ 3. Resolve conflicts in the run worktree. For non-trivial conflicts, spawn a
21
+ focused integration fix task with the same 30-minute attempt deadline.
22
+ 4. Run relevant lint, build, tests, and smoke on the combined HEAD. A check may
23
+ be `not-applicable` only with a concrete reason recorded on the plan.
24
+ 5. If `warehouseCanaryRequired` is true, follow [canary.md](canary.md) after
25
+ validation and run a staged read-only canary on this exact combined HEAD.
26
+ Do not proceed unless it succeeds and its result names that exact HEAD.
27
+ 6. Open exactly one PR against `targetBranch`. Include the original spec,
28
+ included unit ids and SHAs, validation results, and shared findings path.
29
+ Include the canary result for a data-warehouse run.
30
+ 7. Record the PR URL and combined HEAD on the task plan, then enter independent
31
+ review.
32
+
33
+ ## Whole-spec boundary
34
+
35
+ - Never open per-unit PRs.
36
+ - Never omit an expired or blocked unit and redefine the remainder as the
37
+ completed spec.
38
+ - If a unit is diagnosing, continue it before combination.
39
+ - If a unit is blocked on a human or external prerequisite, preserve all
40
+ workspaces and hand back the blocked plan. Do not open a partial PR claiming
41
+ the spec is implemented.
42
+ - If integration exposes missing work, add or reopen units on the same plan,
43
+ complete them in isolated workspaces, then retry combination.
44
+
45
+ ## Completion
46
+
47
+ Exactly one PR exists for the run; its HEAD includes every mapped unit; combined
48
+ validation is green; any required warehouse canary is green on that exact HEAD;
49
+ and the task plan records the PR, HEAD, unit SHAs, and commands run. The PR is
50
+ not review-ready on producer claims alone: the next stage establishes facts
51
+ independently.
@@ -0,0 +1,55 @@
1
+ # Expiry, diagnosis, and continuation
2
+
3
+ Expiry prevents blind repetition. It is a checkpoint, not permission to drop a
4
+ unit from the spec.
5
+
6
+ ## Limits
7
+
8
+ | Scope | Expiry condition |
9
+ |---|---|
10
+ | Implement / validate / self-review | 2 failed fix cycles without success |
11
+ | Staged read-only warehouse canary | 2 failed validate -> canary cycles without success |
12
+ | Independent review | 2 failed fix -> validate -> review cycles without success |
13
+ | CICD | 2 failed diagnose -> fix -> validate -> push/watch cycles without success |
14
+ | Any subagent task or bounded stage attempt | 30 minutes wall time |
15
+
16
+ Do not start retry 3 unchanged. A spawn death with no result does not prove a
17
+ work failure, but it still requires a short diagnosis before resuming in the
18
+ same workspace.
19
+
20
+ Reason codes: `retry-implement`, `retry-canary`, `retry-review`, `retry-cicd`,
21
+ `timeout-task`, `spawn-death`, `combine-conflict`, `external-blocker`,
22
+ `human-decision`.
23
+
24
+ ## Diagnose
25
+
26
+ When an attempt expires:
27
+
28
+ 1. Stop the live task and preserve its branch/workspace and logs.
29
+ 2. Mark the attempt `expired` and the unit/fleet row `diagnosing`; free its
30
+ worker slot while diagnosis runs.
31
+ 3. Inspect current code, actual command output, failing tests/checks, task
32
+ boundaries, dependencies, and the prior two hypotheses. Do not accept the
33
+ failed worker's explanation without reproducing the relevant fact.
34
+ 4. Record a diagnosis: observed failure, root-cause hypothesis, what changes in
35
+ the plan/brief/validation, and the next bounded attempt.
36
+ 5. Continue from the preserved workspace. Reset the local retry counter only
37
+ after the plan materially changes; retain cumulative retry/diagnosis counts.
38
+
39
+ Useful diagnosis outcomes:
40
+
41
+ - **Approach change:** revise the brief or implementation strategy and resume.
42
+ - **Further decomposition:** replace one oversized unit with smaller units that
43
+ still cover the same spec, then schedule them normally.
44
+ - **Dependency correction:** add/fix a blocking edge and resume when runnable.
45
+ - **Flake/infrastructure:** prove the classification, adjust the execution
46
+ method, and resume without changing product behavior to appease a flake.
47
+ - **Human/external blocker:** mark `blocked`, preserve work, and hand back the
48
+ exact decision or prerequisite needed. Do not continue to combine a subset.
49
+
50
+ ## Fleet stages
51
+
52
+ Exploration, combination, review, and CICD use the same expiry loop. A
53
+ 30-minute CI/queue watch may expire because the provider is still pending;
54
+ record the wait diagnosis and start a fresh bounded watch. Only a factually
55
+ blocked state ends the run, and it ends without a whole-spec completion claim.