@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.
- package/README.md +2 -2
- package/package.json +1 -1
- package/runtime/skills/distribution/generated/recipes.json +43 -23
- package/runtime/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +1 -1
- package/runtime/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +23 -1
- package/skills/engineering/engineering-runtime/coherence/workflow.json +65 -15
- package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +1 -1
- package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +23 -1
- package/skills/engineering/resolve-issues/SKILL.md +1 -1
- package/skills/engineering/resolve-issues/generated/workflow-repair-policy.json +55 -11
- package/skills/engineering/resolve-issues/scripts/run-state.mjs +4 -4
- package/skills/engineering/resolve-release/references/related-skills.md +1 -0
- package/skills/engineering/rush-issues/LICENSE +3 -0
- package/skills/engineering/rush-issues/SKILL.md +179 -0
- package/skills/engineering/rush-issues/agents/openai.yaml +9 -0
- package/skills/engineering/rush-issues/evals/evals.json +65 -0
- package/skills/engineering/rush-issues/references/canary.md +45 -0
- package/skills/engineering/rush-issues/references/cicd.md +37 -0
- package/skills/engineering/rush-issues/references/combine.md +51 -0
- package/skills/engineering/rush-issues/references/expire.md +55 -0
- package/skills/engineering/rush-issues/references/exploration.md +53 -0
- package/skills/engineering/rush-issues/references/implementation.md +66 -0
- package/skills/engineering/rush-issues/references/preflight.md +31 -0
- package/skills/engineering/rush-issues/references/profiling.md +78 -0
- package/skills/engineering/rush-issues/references/review.md +48 -0
- package/skills/engineering/rush-issues/references/shared-modules.md +66 -0
- package/skills/engineering/rush-issues/references/task-plan.md +110 -0
- package/skills/engineering/rush-issues/scripts/discover-models.mjs +9 -0
- package/skills/engineering/rush-issues/scripts/model-catalog.mjs +9 -0
- package/skills/engineering/rush-issues/scripts/preflight-models.mjs +466 -0
- package/skills/engineering/rush-release/LICENSE +3 -0
- package/skills/engineering/rush-release/SKILL.md +99 -0
- package/skills/engineering/rush-release/agents/openai.yaml +8 -0
- package/skills/engineering/rush-release/evals/evals.json +44 -0
- package/skills/engineering/rush-release/references/candidate.md +30 -0
- package/skills/engineering/rush-release/references/cut.md +66 -0
- package/skills/engineering/rush-release/references/preflight.md +47 -0
- package/skills/engineering/rush-release/references/publish.md +100 -0
- package/skills/engineering/rush-release/scripts/apply.mjs +185 -0
- package/skills/engineering/rush-release/scripts/green-head.mjs +231 -0
- package/skills/engineering/rush-release/scripts/plan.mjs +264 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Exploration
|
|
2
|
+
|
|
3
|
+
Run once after the task plan is shown and before implementation. The
|
|
4
|
+
goal is one shared context pack, so parallel implementers do not independently
|
|
5
|
+
rediscover requirements and repository structure.
|
|
6
|
+
|
|
7
|
+
## Spawn
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
|---|---|
|
|
11
|
+
| Model | Explorer slot: balanced-coder; prefer `gpt-5.6-terra@high` when discovered, otherwise use the catalog recommendation |
|
|
12
|
+
| Workspace | Isolated run worktree, read-only except for the findings directory |
|
|
13
|
+
| Task deadline | 30 minutes |
|
|
14
|
+
| Product code | Must remain unchanged |
|
|
15
|
+
|
|
16
|
+
## Brief
|
|
17
|
+
|
|
18
|
+
1. Read every unit's original source, acceptance criteria, and linked documents.
|
|
19
|
+
2. Read relevant repository guidance, ADRs, domain context, modules, tests, and
|
|
20
|
+
prior art.
|
|
21
|
+
3. Retrieve external documents named by the spec from their authoritative
|
|
22
|
+
source.
|
|
23
|
+
4. Identify blocking dependencies and shared surfaces that affect scheduling or
|
|
24
|
+
combination.
|
|
25
|
+
5. Write the findings pack to the shared path. Do not implement product code.
|
|
26
|
+
|
|
27
|
+
## Shared location
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
.resolve-issues/rush/<run-id>/exploration/
|
|
31
|
+
FINDINGS.md
|
|
32
|
+
findings.json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`FINDINGS.md` is required and includes:
|
|
36
|
+
|
|
37
|
+
- whole-spec definition of done
|
|
38
|
+
- per-unit requirements and likely code/test locations
|
|
39
|
+
- relevant repository rules, ADRs, and external-source links
|
|
40
|
+
- blocking dependencies and shared surfaces
|
|
41
|
+
- risks, assumptions, and unresolved questions
|
|
42
|
+
|
|
43
|
+
`findings.json` is optional and may index `{units, paths, dependencies, risks,
|
|
44
|
+
openQuestions}`. Record the absolute findings path in the plan and pass it to
|
|
45
|
+
every implementer.
|
|
46
|
+
|
|
47
|
+
## Completion
|
|
48
|
+
|
|
49
|
+
Confirm the findings file exists and is non-empty, the model read-back matches
|
|
50
|
+
the explorer slot, and the explorer made no product-source diff. A timeout or
|
|
51
|
+
missing result expires the attempt; follow [expire.md](expire.md), diagnose,
|
|
52
|
+
and resume exploration. Do not waive shared exploration merely to preserve
|
|
53
|
+
speed.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Isolated implementation loop
|
|
2
|
+
|
|
3
|
+
Schedule runnable units continuously after exploration succeeds. At most 4
|
|
4
|
+
units may own active implementation workers at once.
|
|
5
|
+
|
|
6
|
+
## Workspace contract
|
|
7
|
+
|
|
8
|
+
Each unit gets a dedicated branch and isolated Git workspace based on the
|
|
9
|
+
correct dependency/base state. That workspace belongs to the unit through
|
|
10
|
+
implement, validate, self-review, fixes, expiry, and diagnosis. Never wipe it
|
|
11
|
+
on spawn death or timeout.
|
|
12
|
+
|
|
13
|
+
On Pi, the default subagent sandbox can write only beneath its workspace root.
|
|
14
|
+
A linked worktree's `.git` file points to administrative metadata under the
|
|
15
|
+
parent repository, outside that root, so Git mutation will fail. For the first
|
|
16
|
+
Git-mutating spawn, pass `git_clone_workspace:true` with a dedicated
|
|
17
|
+
`sandbox_dir`; record the resulting self-contained clone as the unit workspace.
|
|
18
|
+
Retries use that clone directly without cloning it again. Use `sandbox:false`
|
|
19
|
+
only when the caller explicitly accepts unrestricted writes. Never launch a
|
|
20
|
+
Git-mutating sandboxed worker in a linked worktree.
|
|
21
|
+
|
|
22
|
+
## Implementer brief
|
|
23
|
+
|
|
24
|
+
Include:
|
|
25
|
+
|
|
26
|
+
- original unit source and acceptance criteria
|
|
27
|
+
- whole-spec context and neighboring unit boundaries
|
|
28
|
+
- absolute exploration findings path
|
|
29
|
+
- absolute unit workspace and branch
|
|
30
|
+
- declared dependencies and shared surfaces
|
|
31
|
+
- selected implementer model/effort
|
|
32
|
+
- required outcome and validation obligations
|
|
33
|
+
- instruction not to open a per-unit PR
|
|
34
|
+
- result path/return schema and 30-minute deadline
|
|
35
|
+
|
|
36
|
+
Do not require an implementation leaf skill, development methodology, or
|
|
37
|
+
producer-specific evidence contract. The active harness chooses its own
|
|
38
|
+
implementation method. Rush constrains the unit boundary, workspace, outcome,
|
|
39
|
+
validation, and return contract only.
|
|
40
|
+
|
|
41
|
+
## Per-unit loop
|
|
42
|
+
|
|
43
|
+
1. **Implement:** change only the unit scope using the harness's chosen method.
|
|
44
|
+
Commit coherent progress on the unit branch.
|
|
45
|
+
2. **Validate:** prove the acceptance criteria and affected behavior with the
|
|
46
|
+
relevant repository checks. Record concrete not-applicable reasons where a
|
|
47
|
+
named validation category does not apply.
|
|
48
|
+
3. **Self-review:** inspect the net diff adversarially against the unit ACs,
|
|
49
|
+
repository rules, failure states, and affected shared surfaces.
|
|
50
|
+
4. **Act:** fix every blocking self-review finding, then repeat validation and
|
|
51
|
+
self-review on the new HEAD.
|
|
52
|
+
5. **Finish:** return the exact branch/SHA, changed paths, validation commands,
|
|
53
|
+
self-review result, and any integration notes. Do not open a per-unit PR.
|
|
54
|
+
|
|
55
|
+
After 2 failed fix cycles or a 30-minute task attempt, follow
|
|
56
|
+
[expire.md](expire.md): preserve the workspace, diagnose, revise the plan, and
|
|
57
|
+
continue. The next worker resumes the same workspace and reads the diagnosis.
|
|
58
|
+
|
|
59
|
+
## Scheduling
|
|
60
|
+
|
|
61
|
+
- Start independent runnable units together up to the in-flight cap of 4.
|
|
62
|
+
- Refill a free slot as soon as another unit becomes runnable.
|
|
63
|
+
- Blocking dependencies constrain start order; shared-surface interference is
|
|
64
|
+
recorded for combination but does not by itself serialize workers.
|
|
65
|
+
- One diagnosis does not stall unrelated runnable units.
|
|
66
|
+
- The combine stage waits for every mapped unit to succeed.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Preflight
|
|
2
|
+
|
|
3
|
+
Preflight has exactly two outputs: selected model operating points and the
|
|
4
|
+
confirmed target branch. It does not classify workflow eligibility, decompose
|
|
5
|
+
the spec, create workspaces, probe delivery, or decide autonomy. Those belong
|
|
6
|
+
to later Rush stages.
|
|
7
|
+
|
|
8
|
+
## 1. Select models
|
|
9
|
+
|
|
10
|
+
Run the fast path and shared preflight planner in
|
|
11
|
+
[shared-modules.md](shared-modules.md). Ask only for the implementer model; fill
|
|
12
|
+
and state the explorer and reviewer. Prefer:
|
|
13
|
+
|
|
14
|
+
- explorer: balanced-coder, `gpt-5.6-terra@high` when discovered
|
|
15
|
+
- reviewer: distinct deep-reasoner, `gpt-5.5@high` when discovered
|
|
16
|
+
|
|
17
|
+
Record exact model ids and efforts. Sync/bank the shared catalog only after the
|
|
18
|
+
human answers. Repository risk may change the recommended model tier; it never
|
|
19
|
+
changes the workflow.
|
|
20
|
+
|
|
21
|
+
## 2. Confirm delivery target
|
|
22
|
+
|
|
23
|
+
Fetch remote heads and confirm `targetBranch` from those fetched facts. Do not
|
|
24
|
+
infer a stale local default.
|
|
25
|
+
|
|
26
|
+
The shared planner also returns fields used by other workflows. Rush records
|
|
27
|
+
only its model selections and `targetBranch` from this stage; an autonomy fill
|
|
28
|
+
is not merge authorization for a Rush run.
|
|
29
|
+
|
|
30
|
+
Preflight succeeds when the model slots and target branch are recorded. Proceed
|
|
31
|
+
to [task-plan.md](task-plan.md) for all run setup and decomposition.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Profiling
|
|
2
|
+
|
|
3
|
+
Profile the workflow for later performance analysis without blocking delivery.
|
|
4
|
+
Track each unit, fleet stage, bounded attempt, retry, and diagnosis.
|
|
5
|
+
|
|
6
|
+
## Metrics
|
|
7
|
+
|
|
8
|
+
| Metric | Meaning |
|
|
9
|
+
|---|---|
|
|
10
|
+
| `wallMs` | Elapsed enter-to-exit time |
|
|
11
|
+
| `llmMs` | Time attributed to active model work |
|
|
12
|
+
| `programMs` | Time attributed to local commands/programs |
|
|
13
|
+
| `waitMs` | Pure external wait, such as CI or queue pending |
|
|
14
|
+
| `effectiveMs` | Union of intervals with LLM or program activity, excluding pure wait |
|
|
15
|
+
| `retries` | Current-cycle and cumulative retries |
|
|
16
|
+
| `diagnoses` | Number and duration of diagnosis checkpoints |
|
|
17
|
+
| `outcome` | `succeeded`, `expired`, `blocked`, or `cancelled` |
|
|
18
|
+
| `expireReason` | Stable reason code when an attempt expires |
|
|
19
|
+
|
|
20
|
+
Avoid double counting nested program calls inside an LLM task. If only coarse
|
|
21
|
+
telemetry exists, classify non-overlapping intervals by their primary state.
|
|
22
|
+
Use `null` plus a note for unavailable timing; do not turn unknown into zero.
|
|
23
|
+
Across parallel workers, report both run wall time and summed worker time.
|
|
24
|
+
|
|
25
|
+
## Layout
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
.resolve-issues/rush/<run-id>/
|
|
29
|
+
task-plan.json
|
|
30
|
+
exploration/FINDINGS.md
|
|
31
|
+
profiling/
|
|
32
|
+
run.jsonl
|
|
33
|
+
summary.json
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Append one JSONL event at task-plan checkpoints. Example:
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"ts": "2026-08-22T12:00:00.000Z",
|
|
41
|
+
"runId": "rush-1200",
|
|
42
|
+
"planRevision": 12,
|
|
43
|
+
"scope": "unit",
|
|
44
|
+
"unit": "1201",
|
|
45
|
+
"stage": "implement",
|
|
46
|
+
"attempt": 2,
|
|
47
|
+
"event": "exit",
|
|
48
|
+
"outcome": "expired",
|
|
49
|
+
"expireReason": "timeout-task",
|
|
50
|
+
"wallMs": 1800000,
|
|
51
|
+
"llmMs": 1320000,
|
|
52
|
+
"programMs": 240000,
|
|
53
|
+
"waitMs": 240000,
|
|
54
|
+
"effectiveMs": 1560000,
|
|
55
|
+
"retries": {"cycle": 2, "total": 2},
|
|
56
|
+
"diagnoses": 0,
|
|
57
|
+
"headSha": "abc123"
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Diagnosis events include the changed hypothesis/plan and link to the expired
|
|
62
|
+
attempt. Fleet stages use `scope: "fleet"` and stage `explore`, `combine`,
|
|
63
|
+
`canary`, `review`, or `cicd`. Every event carries the same `planRevision` as
|
|
64
|
+
the persisted transition it describes; summary generation refuses mismatched
|
|
65
|
+
or missing revisions rather than reconciling them by guess.
|
|
66
|
+
|
|
67
|
+
## Summary
|
|
68
|
+
|
|
69
|
+
Rewrite `summary.json` on each task-plan checkpoint and at handoff with:
|
|
70
|
+
|
|
71
|
+
- per-unit, per-stage, and per-attempt wall/effective/wait totals
|
|
72
|
+
- run wall time and summed worker time
|
|
73
|
+
- worker utilization: busy slot time / available slot time
|
|
74
|
+
- retry, expiry, diagnosis, and blocker counts by reason
|
|
75
|
+
- time to task-plan display, exploration completion, PR open, review success,
|
|
76
|
+
CI green, queue entry, and merge
|
|
77
|
+
|
|
78
|
+
Link the files in the final handoff; do not paste the full event log.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Independent factual review
|
|
2
|
+
|
|
3
|
+
Run one independent review stage on the combined PR HEAD using the
|
|
4
|
+
`code-review` skill and the reviewer slot.
|
|
5
|
+
|
|
6
|
+
## Independence
|
|
7
|
+
|
|
8
|
+
- Reviewer model differs from the implementer and is a deep-reasoner when
|
|
9
|
+
available; prefer `gpt-5.5@high` when discovered.
|
|
10
|
+
- Fresh context includes the original spec, repository standards, target
|
|
11
|
+
branch, combined branch/HEAD, and exploration path.
|
|
12
|
+
- Fixed point is the reviewer's own merge-base with
|
|
13
|
+
`origin/<targetBranch>`.
|
|
14
|
+
|
|
15
|
+
Producer summaries, validation notes, logs, and evidence are untrusted claims.
|
|
16
|
+
They may point to a file, AC, or command, but the reviewer verifies facts by
|
|
17
|
+
reading original sources, inspecting the actual diff/code, running relevant
|
|
18
|
+
checks, and observing behavior where needed. Do not ask the producer to create
|
|
19
|
+
new evidence collateral as a substitute for verification.
|
|
20
|
+
|
|
21
|
+
## Review procedure
|
|
22
|
+
|
|
23
|
+
1. When `warehouseCanaryRequired` is true, require a successful canary result
|
|
24
|
+
for the current exact HEAD. Then invoke the absolute `code-review` skill path
|
|
25
|
+
on the combined HEAD.
|
|
26
|
+
2. Review both axes: repository **Standards** and original **Spec**.
|
|
27
|
+
3. Independently run or reproduce the checks needed to support each material
|
|
28
|
+
conclusion. A producer-provided green log is not a factual substitute.
|
|
29
|
+
4. Return findings with severity and file/line references, plus commands the
|
|
30
|
+
reviewer actually ran. The review result is coordination state, not an
|
|
31
|
+
evidence-generation deliverable.
|
|
32
|
+
5. Succeed only with no Spec gap/wrongness/creep and no hard Standards
|
|
33
|
+
violation. Record non-blocking baseline observations as deferrals.
|
|
34
|
+
|
|
35
|
+
## Fix loop
|
|
36
|
+
|
|
37
|
+
For blocking findings, fix the combined PR branch, run relevant lint/build/
|
|
38
|
+
test/smoke, rerun [canary.md](canary.md) when required, then spawn a fresh
|
|
39
|
+
review of the new HEAD. Record that exact SHA as `reviewedHead` only after
|
|
40
|
+
success. Never treat a fix as accepted before validation, required canary, and
|
|
41
|
+
re-review. Any later code/config commit, including a CICD fix, clears
|
|
42
|
+
`reviewedHead`, marks the prior canary result stale, and returns the new HEAD
|
|
43
|
+
through required validation/canary and review before it may be enqueued or
|
|
44
|
+
merged.
|
|
45
|
+
|
|
46
|
+
After 2 failed fix/review cycles or a 30-minute review task, expire the attempt,
|
|
47
|
+
diagnose the recurring class or task shape, revise the plan, and continue. A
|
|
48
|
+
human/external blocker ends in `blocked`, not a false successful review.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Shared modules
|
|
2
|
+
|
|
3
|
+
Rush owns orchestration, not copies of model, review, smoke, or queue doctrine.
|
|
4
|
+
Implementation method belongs to the active harness. Resolve installed leaf
|
|
5
|
+
skills from the active skills root only for stages that explicitly invoke one,
|
|
6
|
+
and pass absolute paths to those subagents.
|
|
7
|
+
|
|
8
|
+
## Model catalog and recommendation
|
|
9
|
+
|
|
10
|
+
**Owner:** [`harness-runtime`](../../harness-runtime/)
|
|
11
|
+
|
|
12
|
+
| Piece | Path |
|
|
13
|
+
|---|---|
|
|
14
|
+
| Catalog doctrine | `harness-runtime/references/model-catalog.md` |
|
|
15
|
+
| Team seed | `harness-runtime/references/model-catalog-seed.json` |
|
|
16
|
+
| Catalog CLI | `harness-runtime/model-catalog.mjs` |
|
|
17
|
+
| Discovery CLI | `harness-runtime/discover-models.mjs` |
|
|
18
|
+
| Rush fast path | `rush-issues/scripts/preflight-models.mjs` |
|
|
19
|
+
| Shared preflight planner | `resolve-issues/scripts/preflight-questions.mjs` |
|
|
20
|
+
|
|
21
|
+
Before reading the longer catalog doctrine, run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
node <skillsRoot>/rush-issues/scripts/preflight-models.mjs \
|
|
25
|
+
--harness <pi|codex|claude-code> \
|
|
26
|
+
--risk <routine|high> \
|
|
27
|
+
--available <comma-separated-current-turn-model-ids> \
|
|
28
|
+
--ask-only
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The fast path discovers current-turn availability, recommends the implementer,
|
|
32
|
+
fills explorer and reviewer, and emits the implementer picker payload. Feed the
|
|
33
|
+
model choices and fetched target-branch choices through the shared preflight
|
|
34
|
+
planner so the native interaction asks exactly those two questions.
|
|
35
|
+
|
|
36
|
+
| Slot | Selection |
|
|
37
|
+
|---|---|
|
|
38
|
+
| Implementer | Human picks from discovered eligible models; routine recommends balanced-coder |
|
|
39
|
+
| Explorer | Filled balanced-coder; prefer `gpt-5.6-terra@high` when discovered |
|
|
40
|
+
| Reviewer | Filled distinct deep-reasoner; prefer `gpt-5.5@high` when discovered |
|
|
41
|
+
|
|
42
|
+
Only discovered or explicitly human-named models are eligible. Defer catalog
|
|
43
|
+
sync/bank until after the human answers. Spawn read-back must match each
|
|
44
|
+
recorded slot. The shared planner is also used by workflows that record an
|
|
45
|
+
autonomy fill; Rush must discard that field and must not treat it as merge
|
|
46
|
+
authorization.
|
|
47
|
+
|
|
48
|
+
## Leaf skills
|
|
49
|
+
|
|
50
|
+
| Stage | Skill | Rush-specific constraint |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| Independent review | `code-review` | One fresh review of the combined branch, Standards and Spec axes |
|
|
53
|
+
| Runtime smoke | `smoke` | Run when applicable; record a concrete not-applicable reason otherwise |
|
|
54
|
+
| Merge queue | Queue owner, such as `mergify` | Inspect live configuration and use its watcher/enqueue procedure |
|
|
55
|
+
|
|
56
|
+
`code-review` may be externally installed; never assume a repository-relative
|
|
57
|
+
path. Producer summaries or validation notes may help locate claimed behavior,
|
|
58
|
+
but the independent reviewer establishes facts from source, diff, commands,
|
|
59
|
+
and runtime behavior itself. Do not add evidence-generation work merely to
|
|
60
|
+
make the review look substantiated.
|
|
61
|
+
|
|
62
|
+
## Rush-owned behavior
|
|
63
|
+
|
|
64
|
+
Rush owns the task plan, shared findings location, isolated workspaces,
|
|
65
|
+
continuous scheduling with in-flight cap 4, one-branch combination, whole-spec
|
|
66
|
+
PR boundary, expiry/diagnosis loop, and profiling logs.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Task plan
|
|
2
|
+
|
|
3
|
+
After model/target preflight, build the task plan as the run's live source of
|
|
4
|
+
truth. Show it before exploration or implementation and keep it synchronized
|
|
5
|
+
with every worker and fleet transition.
|
|
6
|
+
|
|
7
|
+
## Initialize the run
|
|
8
|
+
|
|
9
|
+
1. Prefer a dedicated run branch and workspace based on the confirmed target.
|
|
10
|
+
The run workspace owns combination, the single PR, review fixes, and CI
|
|
11
|
+
fixes. Do not reuse a dirty unrelated checkout.
|
|
12
|
+
2. Turn a plain issue into one unit; turn an epic or fat issue into
|
|
13
|
+
implementable units that collectively cover the entire original spec.
|
|
14
|
+
3. Record each unit's source and acceptance criteria, blocking dependencies
|
|
15
|
+
including premise dependencies, likely shared surfaces, and the whole-spec
|
|
16
|
+
definition of done.
|
|
17
|
+
4. Read repository hazard guidance and attach its implementation, test, and
|
|
18
|
+
review obligations to affected units. Risk never removes a unit, changes the
|
|
19
|
+
one-PR boundary, or routes the run to another workflow.
|
|
20
|
+
5. Set `warehouseCanaryRequired` when the run changes executable warehouse
|
|
21
|
+
behavior or its data contract, and record the concrete classification reason.
|
|
22
|
+
6. Create the run directory, shared findings path, profiling log, and initial
|
|
23
|
+
machine-readable plan, then render the first board.
|
|
24
|
+
|
|
25
|
+
## Shape
|
|
26
|
+
|
|
27
|
+
Fleet rows: `explore`, `combine`, `canary`, `review`, `cicd`. Render `canary` as
|
|
28
|
+
not applicable when `warehouseCanaryRequired` is false.
|
|
29
|
+
|
|
30
|
+
Per-unit fields:
|
|
31
|
+
|
|
32
|
+
| Field | Meaning |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `id`, `title` | Stable unit identity and short title |
|
|
35
|
+
| `source` | Original issue/spec/AC locator |
|
|
36
|
+
| `workspace`, `branch` | Absolute owned Git workspace and branch |
|
|
37
|
+
| `dependsOn` | Blocking unit ids |
|
|
38
|
+
| `stage` | `pending`, `implement`, `validate`, `self-review`, `diagnose`, or `done` |
|
|
39
|
+
| `status` | `pending`, `in-flight`, `diagnosing`, `succeeded`, `blocked`, or `cancelled` |
|
|
40
|
+
| `attempt` | Current bounded attempt number |
|
|
41
|
+
| `retries`, `diagnoses` | Current-cycle and cumulative counters |
|
|
42
|
+
| `worker` | Slot 1-4 while in flight |
|
|
43
|
+
| `clock` | Current attempt and cumulative wall time |
|
|
44
|
+
| `note` | SHA, failure, diagnosis, or blocker |
|
|
45
|
+
|
|
46
|
+
Run-level fields include `planRevision`, models/efforts, `targetBranch`, run
|
|
47
|
+
workspace/branch, original spec locator, explicit merge authorization when one
|
|
48
|
+
was supplied, exploration path, combined PR/HEAD, `reviewedHead`, and
|
|
49
|
+
`warehouseCanaryRequired`, its classification reason, durable canary result
|
|
50
|
+
path, and start/update timestamps.
|
|
51
|
+
|
|
52
|
+
Persist the machine-readable plan at:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
.resolve-issues/rush/<run-id>/task-plan.json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Checkpoint consistency
|
|
59
|
+
|
|
60
|
+
Use one ordered checkpoint protocol for every transition:
|
|
61
|
+
|
|
62
|
+
1. Increment `planRevision` and apply the complete state transition in memory.
|
|
63
|
+
2. Append the profiling event with that same revision.
|
|
64
|
+
3. Persist the plan and profiling checkpoint.
|
|
65
|
+
4. Render the board by reading the persisted plan revision, not from a separate
|
|
66
|
+
hand-built snapshot.
|
|
67
|
+
|
|
68
|
+
A checkpoint is invalid if the board, `task-plan.json`, and profiling event
|
|
69
|
+
disagree on status, stage, retry/diagnosis counters, clocks, HEAD, or revision.
|
|
70
|
+
Do not display a future transition before persistence or reuse an old board
|
|
71
|
+
after persistence.
|
|
72
|
+
|
|
73
|
+
## First display
|
|
74
|
+
|
|
75
|
+
The first board is the visible task-planning result and appears before any
|
|
76
|
+
explorer or implementer spawn.
|
|
77
|
+
|
|
78
|
+
```text
|
|
79
|
+
rush-issues rev 12 workers 2/4 elapsed 18m PR pending
|
|
80
|
+
fleet: explore OK combine . canary n/a review . cicd .
|
|
81
|
+
+------+---------------------------+-------------+------------+---------+-------+
|
|
82
|
+
| id | title | stage | status | retry | clock |
|
|
83
|
+
+------+---------------------------+-------------+------------+---------+-------+
|
|
84
|
+
| #1201| fix queue stall watcher | self-review | in-flight | 1/2 | 16m |
|
|
85
|
+
| #1202| parse rename edges | validate | in-flight | 0/2 | 09m |
|
|
86
|
+
| #1203| split oversized importer | diagnose | diagnosing | 2/2 D1 | 30m |
|
|
87
|
+
+------+---------------------------+-------------+------------+---------+-------+
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Use compact Markdown or text that remains readable in the active harness. Do
|
|
91
|
+
not hide blocked or diagnosing units from the board.
|
|
92
|
+
|
|
93
|
+
## Refresh checkpoints
|
|
94
|
+
|
|
95
|
+
Redisplay when:
|
|
96
|
+
|
|
97
|
+
- task-plan initialization completes
|
|
98
|
+
- a fleet stage enters/exits
|
|
99
|
+
- a worker is acquired/freed
|
|
100
|
+
- a unit enters/succeeds/expires/blocks
|
|
101
|
+
- validation fails or becomes green
|
|
102
|
+
- a required warehouse canary starts, fails, succeeds, blocks, or is invalidated
|
|
103
|
+
- a retry or diagnosis is recorded
|
|
104
|
+
- a dependency becomes runnable
|
|
105
|
+
- the combined PR opens or HEAD changes
|
|
106
|
+
- about every 5 minutes during long activity
|
|
107
|
+
|
|
108
|
+
Skip a redraw only when no material state changed. The final board includes all
|
|
109
|
+
unit outcomes, PR URL/SHA when one exists, exploration/profiling paths, retry
|
|
110
|
+
and diagnosis totals, and any exact blocker that prevented a whole-spec PR.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Thin wrapper: canonical ownership lives in harness-runtime.
|
|
2
|
+
export * from '../../harness-runtime/discover-models.mjs'
|
|
3
|
+
|
|
4
|
+
import { runCli } from '../../harness-runtime/discover-models.mjs'
|
|
5
|
+
import { isMainModule } from '../../engineering-runtime/scripts/main-module.mjs'
|
|
6
|
+
|
|
7
|
+
if (isMainModule(import.meta.url)) {
|
|
8
|
+
process.exit(runCli(process.argv.slice(2)))
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Thin wrapper: canonical ownership lives in harness-runtime.
|
|
2
|
+
export * from '../../harness-runtime/model-catalog.mjs'
|
|
3
|
+
|
|
4
|
+
import { runCli } from '../../harness-runtime/model-catalog.mjs'
|
|
5
|
+
import { isMainModule } from '../../engineering-runtime/scripts/main-module.mjs'
|
|
6
|
+
|
|
7
|
+
if (isMainModule(import.meta.url)) {
|
|
8
|
+
process.exit(runCli(process.argv.slice(2)))
|
|
9
|
+
}
|