@1aboveio/skills 1.0.15 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +1 -1
- package/.codex-plugin/resources.json +156 -152
- package/package.json +4 -4
- package/skills/app-dev/airflow/SKILL.md +1 -1
- package/skills/app-dev/android-development/SKILL.md +30 -1
- package/skills/app-dev/android-development/references/diagnosis.md +50 -0
- package/skills/app-dev/android-development/references/feature-work.md +3 -2
- package/skills/app-dev/android-development/references/gotchas.md +13 -0
- package/skills/app-dev/android-development/references/init.md +31 -2
- package/skills/app-dev/android-development/references/setup.md +16 -7
- package/skills/app-dev/android-development/references/ui-journeys.md +130 -0
- package/skills/app-dev/android-development/scripts/device-run.sh +93 -2
- package/skills/app-dev/android-development/scripts/failure_capture.py +331 -0
- package/skills/app-dev/android-development/scripts/init.mjs +129 -9
- package/skills/app-dev/android-development/scripts/maestro_failure.py +401 -0
- package/skills/app-dev/android-development/scripts/test_failure_capture.py +378 -0
- package/skills/app-dev/android-development/scripts/test_maestro_failure.py +462 -0
- package/skills/app-dev/app-debug/SKILL.md +1 -1
- package/skills/app-dev/better-auth/SKILL.md +1 -1
- package/skills/app-dev/data-catalog/SKILL.md +1 -1
- package/skills/app-dev/data-quality/SKILL.md +1 -1
- package/skills/app-dev/ios-foundation/SKILL.md +1 -1
- package/skills/app-dev/monorepo/SKILL.md +1 -1
- package/skills/app-dev/nextjs-fullstack/SKILL.md +1 -1
- package/skills/app-dev/prisma-setup/SKILL.md +1 -1
- package/skills/app-dev/pyspark/SKILL.md +1 -1
- package/skills/app-dev/python-backend/SKILL.md +1 -1
- package/skills/app-dev/shadcn/SKILL.md +1 -1
- package/skills/app-dev/zod-v4/SKILL.md +1 -1
- package/skills/cicd/cloud-build/SKILL.md +1 -1
- package/skills/cicd/cloud-debug/SKILL.md +1 -1
- package/skills/cicd/cloud-deploy/SKILL.md +1 -1
- package/skills/cicd/docker/SKILL.md +1 -1
- package/skills/cicd/github-actions/SKILL.md +1 -1
- package/skills/cicd/github-flow/SKILL.md +1 -1
- package/skills/cicd/google-cloud/SKILL.md +1 -1
- package/skills/cicd/mergify/SKILL.md +1 -1
- package/skills/cicd/podman/SKILL.md +1 -1
- package/skills/content/article-review/SKILL.md +1 -1
- package/skills/content/article-to-image/SKILL.md +1 -1
- package/skills/content/flowchart-svg/SKILL.md +1 -1
- package/skills/content/image-gen/SKILL.md +1 -1
- package/skills/content/mermaid/SKILL.md +1 -1
- package/skills/content/wechat-article-writer/SKILL.md +1 -1
- package/skills/content/wechat-publisher/SKILL.md +1 -1
- package/skills/content/wechat-search/SKILL.md +1 -1
- package/skills/content/xai-search/SKILL.md +1 -1
- package/skills/core/distill-writing/SKILL.md +1 -1
- package/skills/core/doc-to-md/SKILL.md +1 -1
- package/skills/core/editorial-review/SKILL.md +1 -1
- package/skills/core/house-style/SKILL.md +1 -1
- package/skills/core/plain-language/SKILL.md +1 -1
- package/skills/core/polish-cn/SKILL.md +1 -1
- package/skills/core/reg-parser/SKILL.md +1 -1
- package/skills/core/terminology/SKILL.md +1 -1
- package/skills/core/write-doc/SKILL.md +1 -1
- package/skills/core/write-report/SKILL.md +1 -1
- package/skills/engineering/better-review/SKILL.md +1 -1
- package/skills/engineering/e2e-test/SKILL.md +1 -1
- package/skills/engineering/engineering/SKILL.md +1 -1
- package/skills/engineering/engineering-runtime/SKILL.md +1 -1
- package/skills/engineering/engineering-runtime/coherence/workflow.json +13 -13
- package/skills/engineering/ensure-coverage/SKILL.md +1 -1
- package/skills/engineering/golden-path/SKILL.md +1 -1
- package/skills/engineering/harness-runtime/SKILL.md +4 -3
- package/skills/engineering/harness-runtime/agent-catalog.mjs +929 -0
- package/skills/engineering/harness-runtime/contracts.md +2 -0
- package/skills/engineering/harness-runtime/references/model-catalog.md +7 -1
- package/skills/engineering/resolve-issues/SKILL.md +18 -13
- package/skills/engineering/resolve-issues/references/delivery-progress.md +2 -0
- package/skills/engineering/resolve-issues/references/expire.md +6 -3
- package/skills/engineering/resolve-issues/references/exploration.md +60 -18
- package/skills/engineering/resolve-issues/references/implementation.md +7 -2
- package/skills/engineering/resolve-issues/references/preflight.md +65 -31
- package/skills/engineering/resolve-issues/references/review.md +22 -9
- package/skills/engineering/resolve-issues/references/shared-modules.md +142 -20
- package/skills/engineering/resolve-issues/references/task-plan.md +62 -8
- package/skills/engineering/resolve-issues/scripts/findings-reuse.mjs +1 -1
- package/skills/engineering/resolve-issues/scripts/next-actions.mjs +7 -7
- package/skills/engineering/resolve-issues/scripts/plan-sync.mjs +1 -1
- package/skills/engineering/resolve-issues/scripts/preflight-models.mjs +382 -592
- package/skills/engineering/resolve-issues/scripts/size-check.mjs +6 -5
- package/skills/engineering/resolve-release/SKILL.md +1 -1
- package/skills/engineering/rush-issues/SKILL.md +4 -4
- package/skills/engineering/rush-release/SKILL.md +1 -1
- package/skills/engineering/test-quality/SKILL.md +1 -1
- package/skills/risk-compliance/compliance-audit/SKILL.md +1 -1
- package/skills/risk-compliance/contract-compare/SKILL.md +1 -1
- package/skills/risk-compliance/contract-review/SKILL.md +1 -1
- package/skills/risk-compliance/doc-authenticity/SKILL.md +1 -1
- package/skills/risk-compliance/fraud-detection/SKILL.md +1 -1
- package/skills/risk-compliance/payment-analysis/SKILL.md +1 -1
- package/skills/risk-compliance/portfolio-payment-analysis/SKILL.md +1 -1
- package/skills/risk-compliance/similar-domain/SKILL.md +1 -1
- package/skills/risk-compliance/tld-detection/SKILL.md +1 -1
- package/skills/engineering/resolve-issues/scripts/discover-models.mjs +0 -9
- package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +0 -9
|
@@ -13,3 +13,5 @@ Shell code cannot invoke a native question tool inside the agent's current turn.
|
|
|
13
13
|
When no supported native question tool is advertised, concise free-text input is permitted only for one optionless question. Textual multiple-choice emulation is forbidden. Unsupported multi-select and all secret input fail explicitly rather than degrading silently.
|
|
14
14
|
|
|
15
15
|
Model discovery and catalog persistence remain separate from question planning. Current-turn tool availability is never inferred from model or harness configuration. Source-tree imports outside `skills/engineering` are unsupported until an installation-aware adapter entrypoint exists; consumers must not copy the runtime to work around that boundary.
|
|
16
|
+
|
|
17
|
+
`agent-catalog.mjs` is the consumer bridge to the harness-owned agent catalog: one versioned JSON request on stdin (`version`, `harness`, `cwd`, `available`, `foregroundModel`, `fallbackToForeground`, `launchCapabilities`, `hostPreferences`, `overrides`, `tiers`, …) and one JSON response on stdout with four worker slots. It resolves the resolver command from `PI_AGENT_CATALOG_COMMAND` (a JSON argv array, or one bare executable token) or defaults to `pi-agent-catalog` on PATH, runs it with no shell, bounds its output and runtime, and validates the response. Those host fields are validated and forwarded unchanged — nothing is inferred or completed here, so an unstated launch control or tier stays unstated. A missing, broken, or declining resolver is a reported block; the bridge never falls back to a skill-owned model ladder and never installs anything. `discover-models.mjs` and `model-catalog.mjs` remain for consumers that still import them and are no longer part of model-slot selection.
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# Model catalog (skill-owned baseline, per-harness overrides)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **Legacy compatibility surface.** Model-slot selection now belongs to the harness agent catalog,
|
|
4
|
+
> reached through [`agent-catalog.mjs`](../agent-catalog.mjs); `resolve-issues` names roles and reads
|
|
5
|
+
> that bridge instead of classifying models. This document and `model-catalog.mjs` stay for other
|
|
6
|
+
> consumers that still import them, and for the shipped baseline data. Do not use this doctrine to
|
|
7
|
+
> re-derive a model ladder for a workflow.
|
|
8
|
+
|
|
9
|
+
The legacy resolve-issues preflight classified every discovered model (family · tier) before it could propose a pick for each slot. The installed `harness-runtime` package provides the shared catalog baseline at `references/model-catalog-seed.json`; the per-harness JSON files below hold only **explicit, human-confirmed overrides**. A skill install or update replaces the shipped baseline, so its newer classifications apply on the next pre-flight wherever no local override exists. It never copies that baseline into a user file or silently changes an override. Training-data knowledge is not a discovery source, and neither is this file's *absence* of a model: only discovered or explicitly human-named models are eligible ([resolve-issues shared modules](../../resolve-issues/references/shared-modules.md)).
|
|
4
10
|
|
|
5
11
|
**Read and write through [`model-catalog.mjs`](../model-catalog.mjs)** rather than hand-editing the JSON — it single-sources the prune predicate and the write paths. Run `model-catalog.mjs help`; the script is the source of truth for the precedence composition, the write-guards, and the shapes. At pre-flight step 2 **prefer `tiers --seen <ids>`**: it composes all three evidence arms (banked → cross-harness → team seed) with the precedence applied *inside* the command. A precedence or filtering rule stated only in prose is applied by an agent mid-gate from memory, and the failure is silent — exactly how rules 5 and 7 went wrong before 2026-07-20.
|
|
6
12
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: resolve-issues
|
|
3
|
-
description: "Slash/explicit-only (/resolve-issues). Drive an issue, epic, or feature spec to reviewed, green PRs, one per issue, merged or handed back merge-ready: preflight
|
|
3
|
+
description: "Slash/explicit-only (/resolve-issues). Drive an issue, epic, or feature spec to reviewed, green PRs, one per issue, merged or handed back merge-ready: preflight assessment with an explorer only for planning unknowns, a per-issue slice check, isolated implementers within live host capacity, then per issue its PR, independent better-review, CI, and queue/merge (or merge-ready hand-back) as soon as it is done. Asks once, at the end of preflight (target branch, merge mode, scheduler mode, plan) and resolves the worker roles' models as run metadata instead of asking, then never blocks on the human; small non-blocking problems collect in a dropbox, posted at the end as grouped ready-for-agent issues. /rush-issues is its no-questions shortcut. Do not auto-select. Use for whole-spec delivery, including high-risk work; risk changes model and validation depth, never the workflow. NOT for release work (resolve-release)."
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
metadata:
|
|
6
6
|
workflow-role: coordinator
|
|
@@ -8,7 +8,7 @@ dependencies:
|
|
|
8
8
|
- better-review
|
|
9
9
|
- golden-path
|
|
10
10
|
- harness-runtime
|
|
11
|
-
release-version: 0.
|
|
11
|
+
release-version: 0.48.1
|
|
12
12
|
---
|
|
13
13
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
14
14
|
# Resolve issues
|
|
@@ -54,8 +54,8 @@ after 2 fix rounds without a new low of open P0/P1 path rows; no fixed round cap
|
|
|
54
54
|
|
|
55
55
|
```text
|
|
56
56
|
preflight: ready label -> model fills -> plan draft
|
|
57
|
-
->
|
|
58
|
-
-> one approval (
|
|
57
|
+
-> preflight assessment (optional explorer) -> size check (only scope or an open question holds a unit, with a split)
|
|
58
|
+
-> one approval (target branch, merge mode, scheduler mode, plan)
|
|
59
59
|
-> schedule runnable units within live host capacity:
|
|
60
60
|
prepare a unit's workspace when its first worker is admitted (never all units up front)
|
|
61
61
|
-> implement -> first coherent commit: draft PR (CI starts) once parents' PRs are open
|
|
@@ -77,9 +77,9 @@ Read each procedure right before its stage; never substitute your own.
|
|
|
77
77
|
|
|
78
78
|
| Stage | Procedure |
|
|
79
79
|
|---|---|
|
|
80
|
-
| Preflight: ready label, models, plan draft,
|
|
80
|
+
| Preflight: ready label, models, plan draft, assessment, size check, approval; what any filed text may say | [references/preflight.md](references/preflight.md) ([Filed text](references/preflight.md#filed-text)) |
|
|
81
81
|
| Task plan shape and live board | [references/task-plan.md](references/task-plan.md) |
|
|
82
|
-
|
|
|
82
|
+
| Preflight assessment and optional exploration (step 4) | [references/exploration.md](references/exploration.md) |
|
|
83
83
|
| Implementation loop and opening each PR | [references/implementation.md](references/implementation.md) |
|
|
84
84
|
| Read-only warehouse canary | [references/canary.md](references/canary.md) |
|
|
85
85
|
| Owned workspaces: plan, prepare, cleanup, recover, inventory | [references/workspaces.md](references/workspaces.md) |
|
|
@@ -102,8 +102,11 @@ Read each procedure right before its stage; never substitute your own.
|
|
|
102
102
|
started (`pending`), never `blocked`; what stays blocked ends deferred on its owning issue, never done.
|
|
103
103
|
- **Your role.** Coordinate first ([principle 7](references/principles.md)); between notices you may do bounded work
|
|
104
104
|
yourself: reproduce a failing browser or emulator journey, investigate an infrastructure failure, run a short
|
|
105
|
-
check.
|
|
106
|
-
|
|
105
|
+
check. When a journey or case you run fails, copy its `NATIVE_FAILURE` line (or the failing step, error and
|
|
106
|
+
evidence path) into the unit's plan row; an exit code alone is not a failure record.
|
|
107
|
+
Leave code changes to workers so your attention stays on scheduling, and record each worker as the
|
|
108
|
+
unit's `workerKind` (`implement`, `fix`, `review`). You own preflight findings;
|
|
109
|
+
delegate unresolved planning unknowns under [exploration.md](references/exploration.md#choose-the-owner). After a context compaction, read this file in
|
|
107
110
|
full again before your next step: the summary keeps the run's state, not these rules. Fill
|
|
108
111
|
free slots before starting your own work, stay within [expire.md](references/expire.md)'s limit, and send
|
|
109
112
|
large output to files (read only the lines you need). Expect Pi's **Completions while busy: Steer active run**
|
|
@@ -143,16 +146,18 @@ Follow [preflight.md](references/preflight.md):
|
|
|
143
146
|
0. **Ready label:** resume the spec's run if one exists; run `ready-check.mjs`;
|
|
144
147
|
stop on an `unreadable` outcome; ask at step 6 on `unlabeled` or a `missing` compaction
|
|
145
148
|
hook (`install-hooks.mjs --check`; shortcut: warn).
|
|
146
|
-
1. **Model slots:** record the fast-path fills without asking
|
|
149
|
+
1. **Model slots:** record the fast-path fills without asking; the models and
|
|
150
|
+
efforts are run metadata, never a question.
|
|
147
151
|
2. **Provisional target:** the default branch.
|
|
148
152
|
3. **Plan draft:** one unit per issue, links, delivery mode; show the board.
|
|
149
|
-
4. **
|
|
150
|
-
separately, its `proof`,
|
|
153
|
+
4. **Preflight assessment:** record each unit's `slice` and,
|
|
154
|
+
separately, its `proof`, yourself for clear work; use an explorer only
|
|
155
|
+
for concrete planning unknowns. Reuse prior findings for units
|
|
151
156
|
whose evidence did not change
|
|
152
157
|
([exploration.md](references/exploration.md#reuse-first)).
|
|
153
158
|
5. **Size check:** run `size-check.mjs` (exit 0; read `verdict`). On `hold` or `stop`, hold the listed
|
|
154
|
-
units (their dependents wait, not started) and draft their splits (yours when none is drafted); on `exploration-unfinished`,
|
|
155
|
-
6. **Approval:** ask once for
|
|
159
|
+
units (their dependents wait, not started) and draft their splits (yours when none is drafted); on `exploration-unfinished`, complete the findings using step 4's owner routing.
|
|
160
|
+
6. **Approval:** ask once for target, merge mode, scheduler mode, and plan;
|
|
156
161
|
record the answers; plan each unit's branch, workspace, base, and lifecycle
|
|
157
162
|
intent, and prepare a workspace only when its first worker is admitted
|
|
158
163
|
([workspaces.md](references/workspaces.md#prepare-at-admission-once)).
|
|
@@ -49,6 +49,8 @@ issue or automatic scheduler gate. They do not waive required validation.
|
|
|
49
49
|
- the [immediate acceptance checkpoint](#delivery-progress), existing baseline (or none),
|
|
50
50
|
and, for a continuation, the last result, remaining uncertainty and next distinguishing
|
|
51
51
|
test; retain the same checkpoint/history when changing workers
|
|
52
|
+
- for a fix after a failed check or case, the last `failure` block (case, step, error,
|
|
53
|
+
evidence path) verbatim, so the worker starts from the cause
|
|
52
54
|
- a concise worker-specific contract: business outcome and context, full acceptance,
|
|
53
55
|
security and quality requirements, and principles relevant to the assigned work; a
|
|
54
56
|
reviewer gets review.md's two rules instead. Do not forward coordinator scheduling
|
|
@@ -220,9 +220,12 @@ secret the repository lacks is item 5: hand it back.
|
|
|
220
220
|
Spawn no separate diagnosis worker for a known failure kind, and write no
|
|
221
221
|
diagnosis document; an unknown infrastructure failure gets one fix worker
|
|
222
222
|
([Infrastructure failures](#infrastructure-failures)). The failure kind
|
|
223
|
-
is already known from the reason code, the failing check,
|
|
224
|
-
`review-verdict.mjs`; take its response, keep the branch,
|
|
225
|
-
logs, and record one line, with the reason code, in the unit's
|
|
223
|
+
is already known from the reason code, the failing check, the result's
|
|
224
|
+
`failure` block, or `review-verdict.mjs`; take its response, keep the branch,
|
|
225
|
+
workspace, and logs, and record one line, with the reason code, in the unit's
|
|
226
|
+
plan row. A failed case whose `failure` names the step and error goes straight
|
|
227
|
+
to a fix worker with that block. Assign investigation only when the record is
|
|
228
|
+
missing, or names a step without a reason.
|
|
226
229
|
|
|
227
230
|
| Failure | Response |
|
|
228
231
|
|---|---|
|
|
@@ -1,16 +1,44 @@
|
|
|
1
1
|
# Exploration
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
**Every run gets a coordinator-owned preflight assessment after the plan draft:**
|
|
4
|
+
behaviors, missing prerequisites, proof, line estimates, dependencies, contracts,
|
|
5
|
+
and the questions that hold a unit. A dedicated explorer is optional.
|
|
6
6
|
In a one-unit run, leave `contracts`, `dependsOn`, and `stacksOn` empty.
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Choose the owner
|
|
9
|
+
|
|
10
|
+
Read the issues, applicable repository guidance, and the few code or test paths
|
|
11
|
+
needed to check the plan. For clear, bounded work, write the findings yourself.
|
|
12
|
+
The findings are planning state, not product code; keep detailed code discovery
|
|
13
|
+
with implementers.
|
|
14
|
+
|
|
15
|
+
Delegate when a concrete unknown could change the plan: uncertain cross-unit
|
|
16
|
+
dependencies or contracts, unclear boundaries or likely splitting, or an unfamiliar
|
|
17
|
+
validation setup. Name the unknown and the affected units in the explorer's brief.
|
|
18
|
+
Multiple units or a high-risk label alone do not require an explorer; unresolved
|
|
19
|
+
planning uncertainty does. An unanswered product decision stays an open question,
|
|
20
|
+
not an invitation for the explorer to invent a requirement.
|
|
21
|
+
|
|
22
|
+
Use the same record and size check for both paths. Resolve each unit's planning
|
|
23
|
+
unknowns or record its open human decision before approval. On later scope or base
|
|
24
|
+
changes, apply this routing again only to affected units.
|
|
25
|
+
|
|
26
|
+
Resolve the assessment target to an exact commit before reading code: initially
|
|
27
|
+
the provisional target, then the approved target after a branch change. Record
|
|
28
|
+
that SHA as findings `base`; use it explicitly for reuse checks and any explorer
|
|
29
|
+
checkout. The coordinator's current branch is not evidence of the assessment target.
|
|
30
|
+
|
|
31
|
+
## Optional explorer
|
|
32
|
+
|
|
33
|
+
Use at most one explorer at a time per run, on the fleet `explore` row, within
|
|
34
|
+
live host capacity. Reuse that explorer for further investigation when available.
|
|
35
|
+
Give it only the affected units and unknowns. While it writes findings, it owns
|
|
36
|
+
that file exclusively; collect its result before the coordinator updates it.
|
|
9
37
|
|
|
10
38
|
| Field | Value |
|
|
11
39
|
|---|---|
|
|
12
40
|
| Model | The explorer fill ([preflight.md](preflight.md#1-model-slots)) |
|
|
13
|
-
| Workspace | Read-only checkout
|
|
41
|
+
| Workspace | Read-only checkout at the assessment target SHA; write only the findings directory |
|
|
14
42
|
| Task plan | Absolute `task-plan.json` path; its unit ids key the findings |
|
|
15
43
|
| Prior findings | Newest `.resolve-issues/rush/*/exploration/findings.json` for the same spec locator, if any |
|
|
16
44
|
| Deadline | 15 minutes, plus 1 minute per unit beyond 4 |
|
|
@@ -18,15 +46,23 @@ In a one-unit run, leave `contracts`, `dependsOn`, and `stacksOn` empty.
|
|
|
18
46
|
|
|
19
47
|
## Reuse first
|
|
20
48
|
|
|
21
|
-
**
|
|
22
|
-
|
|
49
|
+
**Reuse requires unchanged requirements as well as unchanged code evidence.**
|
|
50
|
+
First compare each unit's current criteria, dependency contracts, relevant guidance,
|
|
51
|
+
and recorded decisions with the prior assessment. Reassess affected units even if
|
|
52
|
+
the helper below says `reuse`; it checks Git evidence paths, not those inputs.
|
|
53
|
+
When the prior inputs cannot be established, reassess that unit.
|
|
54
|
+
|
|
55
|
+
Run the code-evidence check against the exact assessment target, not the caller's
|
|
56
|
+
`HEAD`; include the output and any forced reassessments in an explorer brief:
|
|
23
57
|
|
|
24
58
|
```bash
|
|
25
59
|
node <skill-base-dir>/scripts/findings-reuse.mjs \
|
|
26
|
-
--prior <prior findings.json> --units <this run's unit ids, comma-separated>
|
|
60
|
+
--prior <prior findings.json> --units <this run's unit ids, comma-separated> \
|
|
61
|
+
--head <assessment-target-SHA>
|
|
27
62
|
```
|
|
28
63
|
|
|
29
|
-
- `reuse`: copy the entry unchanged
|
|
64
|
+
- `reuse`: copy the entry unchanged only when the non-code inputs above also
|
|
65
|
+
match, with the new `base`.
|
|
30
66
|
- `recheck`: re-explore the entry; its `changed` files are where to look.
|
|
31
67
|
- `new`: explore from scratch.
|
|
32
68
|
|
|
@@ -34,7 +70,9 @@ Example: a resumed run starts after earlier units merged `src/charge/`; only
|
|
|
34
70
|
the two units whose evidence names `src/charge/` are re-explored, the other
|
|
35
71
|
four are copied.
|
|
36
72
|
|
|
37
|
-
##
|
|
73
|
+
## Assessment record
|
|
74
|
+
|
|
75
|
+
The coordinator and any delegated explorer use these rules:
|
|
38
76
|
|
|
39
77
|
1. **Scaffold, then save one unit at a time.** Keep an existing
|
|
40
78
|
`findings.json`; otherwise create it with `version: 2`, the `base` SHA,
|
|
@@ -106,7 +144,7 @@ four are copied.
|
|
|
106
144
|
journey; `local` runs that Charge journey script on an owned emulator,
|
|
107
145
|
not the repository's default phone journey.
|
|
108
146
|
- Findings saved before `local` and `skill` existed are unfinished:
|
|
109
|
-
|
|
147
|
+
add them before the size check, even when reusing the rest.
|
|
110
148
|
- `physical`: evidence only a real device gives; else empty.
|
|
111
149
|
|
|
112
150
|
- `groups` and `setups` (only when `slice.newProductBehaviorCount` is
|
|
@@ -193,10 +231,14 @@ it then.
|
|
|
193
231
|
|
|
194
232
|
## Completion
|
|
195
233
|
|
|
196
|
-
Confirm the findings exist
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
234
|
+
Confirm the findings exist and no product source changed. For delegated work,
|
|
235
|
+
also confirm the model read-back matches and inspect the result. Run the size
|
|
236
|
+
check; `exploration-unfinished` means complete or repair the findings, not spawn
|
|
237
|
+
a worker automatically. Correct a missing field yourself when the evidence is
|
|
238
|
+
clear; continue the explorer only for unresolved investigation.
|
|
239
|
+
|
|
240
|
+
At an explorer's deadline, have it save what it has and stop. Inspect its partial
|
|
241
|
+
findings, complete clear entries yourself, and continue investigation only for
|
|
242
|
+
remaining unknowns while size-check problems plus empty units reach new lows;
|
|
243
|
+
then follow [expire.md](expire.md). Finish the fleet `explore` row once the
|
|
244
|
+
assessment and size check are complete, even when no explorer was needed.
|
|
@@ -76,7 +76,7 @@ the same work. A passing setup check is not a substitute for the blocked behavio
|
|
|
76
76
|
No additional report or result schema is required.
|
|
77
77
|
|
|
78
78
|
Have the implementer treat findings as leads, find its own code, and report
|
|
79
|
-
any `product`, `scope`, `design`, or `approval` question the
|
|
79
|
+
any `product`, `scope`, `design`, or `approval` question the assessment missed and any
|
|
80
80
|
human-only proof. Report each question in the result's `decisionNeeded`
|
|
81
81
|
([expire.md](expire.md#decide-before-you-defer)); add each proof as a
|
|
82
82
|
handback step. Never edit `findings.json`.
|
|
@@ -101,7 +101,12 @@ implementer in its kept workspace with the brief and its findings entry.
|
|
|
101
101
|
line, kind, one-line summary, whether it needs a human decision), and
|
|
102
102
|
`decisionNeeded`: `null`, or the choice that stops the unit (question,
|
|
103
103
|
options, recommendation; options are ways to proceed, and staying
|
|
104
|
-
blocked is never one).
|
|
104
|
+
blocked is never one). When a check or case fails, add
|
|
105
|
+
`failure`: `{case, step, error, evidenceDir}`, copied from the harness's
|
|
106
|
+
`NATIVE_FAILURE` line or failure record when it prints one; otherwise the failing
|
|
107
|
+
step, error message and evidence path the worker observed. An exit code alone is
|
|
108
|
+
not a failure; keep the first failure separate from cleanup errors. Fix workers
|
|
109
|
+
write the same file. Return
|
|
105
110
|
nothing else: no artifact hashes, version inventories, screenshots,
|
|
106
111
|
copied logs, or earlier attempts. For a continuation, include the current checkpoint,
|
|
107
112
|
outcome and relevant prior-result links in the existing integration notes; do not
|
|
@@ -11,10 +11,22 @@ until step 6.
|
|
|
11
11
|
node <skill-base-dir>/scripts/plan-sync.mjs --find-run --runs .resolve-issues/rush --issue <owner/name#123>
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
When it prints a directory,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
When it prints a directory, reuse that run instead of starting another. Before
|
|
15
|
+
calling the scheduler, reload its plan, decisions and standing orders. Refresh the
|
|
16
|
+
source requirements as described under [issue-tree sync](task-plan.md#issue-tree-sync)
|
|
17
|
+
and resolve the recorded target to its current exact SHA. Apply
|
|
18
|
+
[assessment reuse](exploration.md#reuse-first) against those inputs.
|
|
19
|
+
|
|
20
|
+
If assessment was interrupted, findings are incomplete, or affected requirements or
|
|
21
|
+
target evidence changed, complete step 4 and rerun step 5 for those units before
|
|
22
|
+
scheduling them. Finish any outstanding step 6 approval once; preserve choices
|
|
23
|
+
already approved. A saved size stop remains held until reassessment clears it or
|
|
24
|
+
its `runWhole` recommendation is accepted. Do not treat a scheduler action as proof
|
|
25
|
+
that assessment or approval finished.
|
|
26
|
+
|
|
27
|
+
Then resume with `next-actions.mjs --run <dir> --resume` and
|
|
28
|
+
[fresh capacity](implementation.md#live-capacity); its plan picks up whatever the
|
|
29
|
+
tree gained since. The run finder exits 0 whether or not it found a run: no run prints nothing on stdout
|
|
18
30
|
(`--json`: `{"found":false}`). Example: `/rush-issues #12` finds the run whose saved tree holds
|
|
19
31
|
#12 and resumes it, never a second run beside it.
|
|
20
32
|
|
|
@@ -28,7 +40,7 @@ The script exits 0 whenever it ran (2 if it could not); read `outcome` in its JS
|
|
|
28
40
|
|
|
29
41
|
- **`ready`:** continue. An open issue is work, whatever its sub-issues
|
|
30
42
|
say: each `rollups` entry (open, every sub-issue closed) is a unit; the
|
|
31
|
-
|
|
43
|
+
assessment records what is left, or that nothing is, and then the handback
|
|
32
44
|
says "close #N". Example: held #40's filed prerequisite #41 closed;
|
|
33
45
|
#40 is a rollup and stays a unit.
|
|
34
46
|
- **`unlabeled`:** continue as on `ready`, and record the `missing` issues for
|
|
@@ -78,16 +90,38 @@ posts them; they join this run's end-of-run review
|
|
|
78
90
|
|
|
79
91
|
## 1. Model slots
|
|
80
92
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
93
|
+
Follow [model slots](shared-modules.md#model-slots): on Pi, inspect the live native
|
|
94
|
+
catalog first after checking task overrides and authoritative host preferences;
|
|
95
|
+
use the portable resolver when native role resolution is unavailable or cannot
|
|
96
|
+
validate either exact request. Record the actual fills by
|
|
97
|
+
exact id and effort. The skill names the roles — implementer, explorer, diagnoser,
|
|
98
|
+
reviewer — and the harness agent catalog chooses the models, so rank nothing and
|
|
99
|
+
copy nothing from a ladder. The fills are run metadata: show each role's model
|
|
100
|
+
and effort on the board and never ask which model should implement. A model the
|
|
101
|
+
human names is an explicit override, resolved by rerunning this step with
|
|
102
|
+
`--implementer`, never by offering a list. Never give the reviewer the
|
|
103
|
+
implementer's id, at any effort: the catalog enforces that, and the run blocks
|
|
104
|
+
when it cannot. Let risk
|
|
105
|
+
add the repository's deterministic domain checks and review depth, never change
|
|
106
|
+
the workflow or re-choose the model.
|
|
85
107
|
|
|
86
108
|
Pass a pinned implementer (`implementer=<id[@effort]>` in the invocation) as
|
|
87
|
-
`--implementer
|
|
88
|
-
and
|
|
89
|
-
|
|
90
|
-
`
|
|
109
|
+
`--implementer` on the portable path. A declined result stops preflight with its
|
|
110
|
+
`code` and `reason`, starting nothing: `pinned-implementer-unavailable` means the
|
|
111
|
+
pinned model is unavailable and no other implementer is substituted;
|
|
112
|
+
`catalog-unavailable` means the portable resolver could not be invoked.
|
|
113
|
+
`capabilities-missing` means its input lacks model evidence: repair an omitted
|
|
114
|
+
field from current host evidence and retry, or report precisely what could not
|
|
115
|
+
be obtained. It does not establish a missing harness capability. Never revive
|
|
116
|
+
the old picker or reuse an earlier run's pick.
|
|
117
|
+
Example: `/rush-issues 1aboveio/ai#1545 implementer=gpt-6-luna@high` on a host
|
|
118
|
+
whose catalog does not offer `gpt-6-luna` stops at preflight and starts nothing.
|
|
119
|
+
|
|
120
|
+
**Catalog limitation:** optional exploration skips the worker, not catalog
|
|
121
|
+
resolution. Both paths still require all four fills, including
|
|
122
|
+
the explorer, even for coordinator-only assessment. Report a missing explorer as
|
|
123
|
+
a catalog block; do not extract other fills from a declined response or substitute
|
|
124
|
+
a model. Explorer-independent resolution needs a supported upstream protocol.
|
|
91
125
|
|
|
92
126
|
## 2. Provisional target
|
|
93
127
|
|
|
@@ -107,11 +141,13 @@ Example: epic #12's #20 (signed release and go/no-go) and #21
|
|
|
107
141
|
(physical acceptance) stay out of the plan; the run ends when its code units
|
|
108
142
|
land instead of waiting on them.
|
|
109
143
|
|
|
110
|
-
## 4.
|
|
144
|
+
## 4. Assess the plan
|
|
111
145
|
|
|
112
|
-
|
|
113
|
-
prior findings for the same spec.
|
|
114
|
-
|
|
146
|
+
Follow [exploration.md](exploration.md#choose-the-owner) on the provisional
|
|
147
|
+
target, reusing prior findings for the same spec. Write findings yourself for
|
|
148
|
+
clear work; delegate concrete planning unknowns to an optional explorer.
|
|
149
|
+
On tool failures or `exploration-unfinished`, complete the affected findings
|
|
150
|
+
using the same owner routing. Add the links the findings show.
|
|
115
151
|
|
|
116
152
|
## 5. Size check
|
|
117
153
|
|
|
@@ -143,7 +179,7 @@ by row 1 of [Never block on the human](#never-block-on-the-human).
|
|
|
143
179
|
| `ok`, `warn` | Continue |
|
|
144
180
|
| `hold` | Hold the `held` units (their dependents wait, not started); start the `runnable` units |
|
|
145
181
|
| `stop` | Run-wide failure or every unit held; draft the held units' splits |
|
|
146
|
-
| `exploration-unfinished` |
|
|
182
|
+
| `exploration-unfinished` | Complete the findings using step 4's owner routing |
|
|
147
183
|
| exit 2 | Fix the plan or command |
|
|
148
184
|
|
|
149
185
|
Only scope and open questions hold a unit; proof only warns. Add each
|
|
@@ -274,7 +310,7 @@ Example: `/resolve-issues` answered "run the rest" files nothing;
|
|
|
274
310
|
prerequisites keeps its unit, now depending on them.
|
|
275
311
|
Example: #30 splits into #50 and #51, so the sync adds both, drops 30,
|
|
276
312
|
and unit 34, `blocked_by` #30, now waits on 50 and 51.
|
|
277
|
-
4.
|
|
313
|
+
4. Assess the new units only using step 4's owner routing; rerun the size check.
|
|
278
314
|
5. Split a still-held slice again only while splitting makes progress: its
|
|
279
315
|
largest slice is smaller than the one before.
|
|
280
316
|
Example: a 7,287-line unit split into 3,455 and 2,150 lines; a held
|
|
@@ -295,7 +331,8 @@ Example: `/resolve-issues` answered "run the rest" files nothing;
|
|
|
295
331
|
Show the board: units, delivery mode, verdict and reasons by consideration,
|
|
296
332
|
each unit's behaviors, missing prerequisites, proof and suite, environment
|
|
297
333
|
checks, held units with splits, the pending device record, the
|
|
298
|
-
issues missing `ready-for-agent`, and handback steps.
|
|
334
|
+
issues missing `ready-for-agent`, and handback steps. Show each role's resolved
|
|
335
|
+
model and effort as run metadata; no question asks for one. Ask
|
|
299
336
|
in one interaction, with the native single-choice tool when there is one:
|
|
300
337
|
|
|
301
338
|
0. **Ready label** (only after step 0 `unlabeled`): list the `missing` issues,
|
|
@@ -304,20 +341,18 @@ in one interaction, with the native single-choice tool when there is one:
|
|
|
304
341
|
proceed, record it in `decisions`; on stop, end the run with the list.
|
|
305
342
|
**Compaction hook** (only when `install-hooks.mjs --check` printed `missing:`):
|
|
306
343
|
install it (recommended), or run without it.
|
|
307
|
-
1. **
|
|
308
|
-
|
|
309
|
-
2. **Target branch:** up to four fetched heads, provisional first.
|
|
310
|
-
3. **Merge mode:** `autonomous` (recommended): merge each
|
|
344
|
+
1. **Target branch:** up to four fetched heads, provisional first.
|
|
345
|
+
2. **Merge mode:** `autonomous` (recommended): merge each
|
|
311
346
|
reviewed, green PR, fixing blockers outside the plan
|
|
312
347
|
([expire.md](expire.md#infrastructure-failures)); or
|
|
313
348
|
`supervised`: hand each back merge-ready.
|
|
314
|
-
|
|
349
|
+
3. **Scheduler mode:** how much `next-actions.mjs` prescribes, recorded as
|
|
315
350
|
the plan's `schedulerMode`. `full` (recommended): do every step it
|
|
316
351
|
prints. `narrow`: it prints whether the run is done, the units with work,
|
|
317
352
|
and the guards; you choose each unit's step. `off`: it prints only whether
|
|
318
353
|
the run is done; you plan every step. In every mode the run ends only when
|
|
319
354
|
it reports done.
|
|
320
|
-
|
|
355
|
+
4. **Plan:**
|
|
321
356
|
- `ok`/`warn`: proceed or trim.
|
|
322
357
|
- `hold`: file the splits and run them with the rest (recommended when a
|
|
323
358
|
held unit has a split), run the rest, proceed anyway, or trim; offer to
|
|
@@ -336,18 +371,18 @@ in one interaction, with the native single-choice tool when there is one:
|
|
|
336
371
|
grew to 7,544 lines and was closed. Re-cut as two issues, it merged as
|
|
337
372
|
437 and 341 lines.
|
|
338
373
|
|
|
339
|
-
Record each answer in `decisions`,
|
|
374
|
+
Record each answer in `decisions`, then:
|
|
340
375
|
|
|
341
|
-
- New target: fetch it,
|
|
376
|
+
- New target: fetch it, reassess affected findings using step 4's owner routing, rerun
|
|
342
377
|
the size check; ask again only if it worsens to `hold` or `stop`.
|
|
343
|
-
- Trim: drop the scope,
|
|
378
|
+
- Trim: drop the scope, remove its findings, questions and
|
|
344
379
|
handback items, rerun the size check.
|
|
345
380
|
- File the splits: follow [File a split](#file-a-split); ask again only if
|
|
346
381
|
the size check returns `stop`.
|
|
347
382
|
- Move to later: mark the units `blocked` (`blockedReason: human-decision`, `humanItem: 1`, the human's words as `humanNeed`); they stay in
|
|
348
383
|
this run's plan and resume with it (one run per spec). Never start a
|
|
349
384
|
separate follow-up run for the same spec.
|
|
350
|
-
- Answer: record it,
|
|
385
|
+
- Answer: record it, set the question
|
|
351
386
|
`resolved: true`, rerun the size check.
|
|
352
387
|
- Run the rest: mark held units `blocked` (`blockedReason: size-hold`) with the split path;
|
|
353
388
|
their dependents stay not started (`pending`).
|
|
@@ -389,7 +424,6 @@ asking nothing at any point:
|
|
|
389
424
|
|---|---|
|
|
390
425
|
| Ready label | Proceed: show the `missing` issues as a warning on the board and in the handback |
|
|
391
426
|
| Compaction hook | Run without it: warn on the board with the install command |
|
|
392
|
-
| Implementer | The first `options` entry (the pinned one, when pinned) |
|
|
393
427
|
| Target branch | The default branch |
|
|
394
428
|
| Merge mode | `autonomous` |
|
|
395
429
|
| Scheduler mode | `full`, unless the invocation names `scheduler=narrow` or `scheduler=off` |
|
|
@@ -9,10 +9,21 @@ restate its rules in the brief beyond the two below.
|
|
|
9
9
|
## Brief
|
|
10
10
|
|
|
11
11
|
- Reviewer model: a different id from the implementer's
|
|
12
|
-
([preflight.md](preflight.md#1-model-slots)).
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
([preflight.md](preflight.md#1-model-slots)). Launch the reviewer with the
|
|
13
|
+
plan's recorded reviewer fill — its `launch`, `instructions`, `selection` and
|
|
14
|
+
native `catalogRevision` or portable `catalogDigest`
|
|
15
|
+
([task-plan.md](task-plan.md#worker-selection-on-resume)) — as
|
|
16
|
+
structured launch arguments, never as brief text and never a model id
|
|
17
|
+
hardcoded here. On Pi that `launch` is what the live role resolver receives,
|
|
18
|
+
`{ role }` unless an explicit task override or this host's own preference
|
|
19
|
+
asked for a model or effort; never rebuild a pin from a recorded model id. On
|
|
20
|
+
another host it is the recorded payload, carrying only the controls that host
|
|
21
|
+
advertised. Check independence from what actually launched, not from the
|
|
22
|
+
recorded ids: the catalog preflight checks planned independence only, since
|
|
23
|
+
runtime prepares each launch without knowing the implementer's model. Verify
|
|
24
|
+
actual launch provenance yourself, on Pi and on other hosts, and block the
|
|
25
|
+
round if the actual reviewer matches the implementer or its actual identity
|
|
26
|
+
cannot be established, rather than yielding a review.
|
|
16
27
|
- Context: spec, repository standards, target branch, unit branch and HEAD,
|
|
17
28
|
parent PR when stacked or chained, exploration path, and the contracts the unit
|
|
18
29
|
provides and builds on.
|
|
@@ -103,16 +114,18 @@ completed commands and findings, and why the review stopped. Resolve an open
|
|
|
103
114
|
`executionIncident` first; ask the reviewer to record missing continuation details.
|
|
104
115
|
|
|
105
116
|
For the same valid HEAD and scope, resume the same reviewer in the same round
|
|
106
|
-
using its result file, review clone and retained context. Give it
|
|
107
|
-
work rather than repeating the whole assignment; preserve completed
|
|
108
|
-
A wrong HEAD or invalid scope must be corrected, not carried as
|
|
117
|
+
using its result file, review clone, recorded launch and retained context. Give it
|
|
118
|
+
the unfinished work rather than repeating the whole assignment; preserve completed
|
|
119
|
+
valid passes. A wrong HEAD or invalid scope must be corrected, not carried as
|
|
120
|
+
completed proof.
|
|
109
121
|
|
|
110
122
|
If that reviewer cannot continue, state why replacement is necessary, which
|
|
111
123
|
retained evidence the replacement reads, and what it redoes before launching it.
|
|
112
124
|
The replacement reviews every pass with `tier: "full"`. Keep the round number,
|
|
113
125
|
`fixRound`, unit `attempt` and earlier round files; incompleteness neither resets
|
|
114
|
-
history nor counts as progress.
|
|
115
|
-
structured launch arguments as [the brief](#brief)
|
|
126
|
+
history nor counts as progress. Launch the replacement from the same recorded
|
|
127
|
+
reviewer fill, in the same structured launch arguments as [the brief](#brief)
|
|
128
|
+
requires; never invent or re-pick a model id for it.
|
|
116
129
|
|
|
117
130
|
## GitHub reviews
|
|
118
131
|
|