@1aboveio/skills 1.0.10 → 1.0.11
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 +297 -216
- package/README.md +3 -3
- package/package.json +10 -8
- package/skills/app-dev/airflow/SKILL.md +1 -1
- package/skills/app-dev/android-foundation/SKILL.md +35 -37
- package/skills/app-dev/android-foundation/references/delivery-focus.md +4 -2
- package/skills/app-dev/android-foundation/references/feature-work.md +50 -0
- package/skills/app-dev/android-foundation/references/setup.md +24 -9
- package/skills/app-dev/android-foundation/references/workspace.md +81 -0
- package/skills/app-dev/android-foundation/scripts/workspace-runtime/bin/workspaces.mjs +52 -0
- package/skills/app-dev/android-foundation/scripts/workspace-runtime/native-workspace.mjs +239 -0
- package/skills/app-dev/android-foundation/scripts/workspace-runtime/workspace-lifecycle.mjs +2154 -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 +15 -10
- package/skills/app-dev/ios-foundation/references/setup.md +25 -9
- package/skills/app-dev/ios-foundation/references/workspace.md +82 -0
- package/skills/app-dev/ios-foundation/scripts/workspace-runtime/bin/workspaces.mjs +52 -0
- package/skills/app-dev/ios-foundation/scripts/workspace-runtime/native-workspace.mjs +239 -0
- package/skills/app-dev/ios-foundation/scripts/workspace-runtime/workspace-lifecycle.mjs +2154 -0
- 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 +3 -3
- package/skills/core/distill-writing/references/extraction.md +1 -1
- package/skills/core/doc-to-md/SKILL.md +1 -1
- package/skills/core/editorial-review/SKILL.md +82 -12
- package/skills/core/editorial-review/references/checklist.md +26 -1
- package/skills/core/house-style/SKILL.md +8 -3
- package/skills/core/house-style/references/analytical-reporting.md +123 -0
- package/skills/core/house-style/references/analytical-writing-patterns.md +79 -0
- package/skills/core/house-style/references/analytical-writing-research.md +129 -0
- package/skills/core/{write-doc → house-style}/references/bilingual.md +7 -5
- package/skills/core/house-style/references/definitions-and-metrics.md +86 -0
- package/skills/core/house-style/references/document-workflow.md +193 -0
- package/skills/core/house-style/references/initialization.md +66 -0
- package/skills/core/house-style/references/persistence.md +9 -4
- package/skills/core/house-style/references/rules.md +11 -4
- package/skills/core/house-style/scripts/init-guidance.mjs +213 -0
- package/skills/core/house-style/templates/analytical-report.md +54 -0
- package/skills/core/house-style/templates/gap-analysis.md +1 -1
- package/skills/core/plain-language/SKILL.md +2 -2
- package/skills/core/polish-cn/SKILL.md +9 -2
- package/skills/core/reg-parser/SKILL.md +3 -3
- package/skills/core/terminology/SKILL.md +8 -4
- package/skills/core/write-doc/SKILL.md +40 -151
- package/skills/core/write-report/SKILL.md +129 -0
- package/skills/core/{write-doc → write-report}/references/compliance-reports.md +4 -4
- package/skills/engineering/better-review/SKILL.md +37 -37
- package/skills/engineering/better-review/references/passes.md +35 -41
- package/skills/engineering/better-review/references/result.md +10 -9
- package/skills/engineering/e2e-test/SKILL.md +17 -17
- package/skills/engineering/e2e-test/references/authoring/playwright-config.md +11 -13
- package/skills/engineering/e2e-test/references/presentation-sweep.md +7 -7
- package/skills/engineering/e2e-test/references/reviewing.md +9 -11
- package/skills/engineering/e2e-test/references/route-manifest.md +1 -1
- package/skills/engineering/engineering/SKILL.md +124 -0
- package/skills/engineering/engineering/references/engineering-conventions.md +32 -0
- package/skills/engineering/engineering/references/feature-delivery.md +8 -0
- package/skills/engineering/engineering/references/init-scope.md +37 -0
- package/skills/engineering/engineering/scripts/init.mjs +160 -0
- package/skills/engineering/{contributing → engineering}/scripts/persist-conventions.mjs +1 -1
- package/skills/engineering/engineering-runtime/SKILL.md +1 -1
- package/skills/engineering/engineering-runtime/coherence/workflow.json +19 -19
- package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +1 -1
- package/skills/engineering/ensure-coverage/SKILL.md +22 -109
- package/skills/engineering/ensure-coverage/references/breadth/coverage-ledger.md +7 -5
- package/skills/engineering/ensure-coverage/references/breadth/surface-baseline.md +4 -4
- package/skills/engineering/ensure-coverage/references/breadth/surface-discovery.md +3 -3
- package/skills/engineering/ensure-coverage/references/depth/characterization.md +4 -65
- package/skills/engineering/ensure-coverage/references/depth/grading.md +5 -7
- package/skills/engineering/ensure-coverage/references/depth/mock-policy.md +6 -12
- package/skills/engineering/ensure-coverage/references/enforcement/ci-contract.md +1 -1
- package/skills/engineering/ensure-coverage/references/presentation/axis.md +6 -6
- package/skills/engineering/ensure-coverage/references/process/audit-mode.md +7 -23
- package/skills/engineering/ensure-coverage/references/process/output-template.md +18 -133
- package/skills/engineering/ensure-coverage/references/process/test-strategy.md +7 -12
- package/skills/engineering/ensure-coverage/scripts/README.md +12 -4
- package/skills/engineering/golden-path/SKILL.md +1 -1
- package/skills/engineering/harness-runtime/SKILL.md +3 -1
- package/skills/engineering/harness-runtime/bin/workspaces.mjs +52 -0
- package/skills/engineering/harness-runtime/native-workspace.mjs +239 -0
- package/skills/engineering/harness-runtime/references/workspaces.md +78 -0
- package/skills/engineering/harness-runtime/workspace-lifecycle.mjs +2154 -0
- package/skills/engineering/resolve-issues/SKILL.md +40 -61
- package/skills/engineering/resolve-issues/references/ci.md +13 -3
- package/skills/engineering/resolve-issues/references/delivery-progress.md +4 -3
- package/skills/engineering/resolve-issues/references/done.md +11 -2
- package/skills/engineering/resolve-issues/references/expire.md +9 -2
- package/skills/engineering/resolve-issues/references/implementation.md +33 -17
- package/skills/engineering/resolve-issues/references/preflight.md +3 -1
- package/skills/engineering/resolve-issues/references/principles.md +52 -0
- package/skills/engineering/resolve-issues/references/review.md +25 -15
- package/skills/engineering/resolve-issues/references/task-plan.md +64 -27
- package/skills/engineering/resolve-issues/references/workspaces.md +164 -0
- package/skills/engineering/resolve-issues/scripts/cleanup-runs.mjs +185 -317
- package/skills/engineering/resolve-issues/scripts/next-actions.mjs +44 -7
- package/skills/engineering/resolve-issues/scripts/rehydrate.mjs +36 -2
- package/skills/engineering/resolve-issues/scripts/review-verdict.mjs +9 -8
- package/skills/engineering/resolve-issues/scripts/workspace-lifecycle.mjs +1 -0
- package/skills/engineering/resolve-release/SKILL.md +1 -1
- package/skills/engineering/rush-issues/SKILL.md +7 -5
- package/skills/engineering/rush-release/SKILL.md +1 -1
- package/skills/engineering/test-quality/SKILL.md +19 -4
- package/skills/engineering/test-quality/references/lint.md +1 -1
- package/skills/engineering/test-quality/references/principles.md +2 -2
- package/skills/engineering/test-quality/references/testing-conventions.md +1 -1
- package/skills/risk-compliance/compliance-audit/SKILL.md +4 -8
- package/skills/risk-compliance/compliance-audit/references/audience-and-reports.md +12 -0
- package/skills/risk-compliance/contract-compare/SKILL.md +17 -1
- package/skills/risk-compliance/contract-review/SKILL.md +6 -1
- package/skills/risk-compliance/contract-review/references/report-stage.md +17 -0
- package/skills/risk-compliance/doc-authenticity/SKILL.md +11 -1
- package/skills/risk-compliance/fraud-detection/LICENSE +3 -0
- package/skills/risk-compliance/fraud-detection/SKILL.md +148 -0
- package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/archetypes/first-party-fraud.md +3 -2
- package/skills/risk-compliance/fraud-detection/references/archetypes/third-party-fraud.md +47 -0
- package/skills/risk-compliance/fraud-detection/references/collection-payout-features.md +151 -0
- package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/contexts/bank-transfer.md +4 -3
- package/skills/risk-compliance/fraud-detection/references/contexts/card-payment.md +70 -0
- package/skills/risk-compliance/fraud-detection/references/contexts/payment-collection.md +34 -0
- package/skills/risk-compliance/fraud-detection/references/contexts/payout.md +34 -0
- package/skills/risk-compliance/fraud-detection/references/enrichment.md +74 -0
- package/skills/risk-compliance/fraud-detection/references/entities.md +48 -0
- package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/feature-engineering.md +69 -33
- package/skills/risk-compliance/fraud-detection/references/feature-sql.md +150 -0
- package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/report-rationale.md +4 -2
- package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/report-template.md +45 -23
- package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/review-checklist.md +60 -20
- package/skills/risk-compliance/fraud-detection/references/workflow.md +216 -0
- package/skills/risk-compliance/fraud-detection/release-check.mjs +95 -0
- package/skills/risk-compliance/payment-analysis/SKILL.md +36 -17
- package/skills/risk-compliance/payment-analysis/references/auth-rate-actions.md +2 -2
- package/skills/risk-compliance/payment-analysis/references/report-template.md +10 -2
- package/skills/risk-compliance/payment-analysis/references/visualization.md +11 -1
- package/skills/risk-compliance/portfolio-payment-analysis/LICENSE +3 -0
- package/skills/risk-compliance/portfolio-payment-analysis/SKILL.md +170 -0
- package/skills/risk-compliance/portfolio-payment-analysis/references/identity-and-reconciliation.md +46 -0
- package/skills/risk-compliance/portfolio-payment-analysis/references/metrics-and-reporting.md +170 -0
- package/skills/risk-compliance/portfolio-payment-analysis/references/risk-history.md +89 -0
- package/skills/risk-compliance/portfolio-payment-analysis/release-check.mjs +95 -0
- package/skills/risk-compliance/portfolio-payment-analysis/scripts/analyze.py +636 -0
- package/skills/risk-compliance/portfolio-payment-analysis/scripts/build_report.py +386 -0
- package/skills/risk-compliance/portfolio-payment-analysis/scripts/comparison_charts.py +425 -0
- package/skills/risk-compliance/portfolio-payment-analysis/scripts/csv_export.py +52 -0
- package/skills/risk-compliance/portfolio-payment-analysis/scripts/render.py +160 -0
- package/skills/risk-compliance/portfolio-payment-analysis/scripts/risk_history.py +435 -0
- package/skills/risk-compliance/similar-domain/SKILL.md +9 -4
- package/skills/risk-compliance/tld-detection/SKILL.md +124 -239
- package/skills/risk-compliance/tld-detection/agents/openai.yaml +1 -1
- package/skills/risk-compliance/tld-detection/references/clean.md +18 -51
- package/skills/risk-compliance/tld-detection/references/fx-conversion.md +56 -219
- package/skills/risk-compliance/tld-detection/references/metric-contract.md +109 -0
- package/skills/risk-compliance/tld-detection/references/pattern.md +99 -0
- package/skills/risk-compliance/tld-detection/references/report-template.md +49 -272
- package/skills/risk-compliance/tld-detection/scripts/detect_ladders.py +46 -13
- package/skills/risk-compliance/tld-detection/scripts/detect_patterns.py +346 -0
- package/skills/risk-compliance/tld-detection/scripts/detect_streams.py +51 -19
- package/skills/risk-compliance/tld-detection/scripts/profile_groups.py +109 -0
- package/skills/risk-compliance/tld-detection/scripts/render_charts.py +218 -0
- package/skills/risk-compliance/tld-detection/scripts/tld_common.py +243 -0
- package/skills/engineering/contributing/SKILL.md +0 -70
- package/skills/risk-compliance/fraud-analysis/SKILL.md +0 -114
- package/skills/risk-compliance/fraud-analysis/references/archetypes/third-party-fraud.md +0 -27
- package/skills/risk-compliance/fraud-analysis/references/contexts/card-payment.md +0 -30
- package/skills/risk-compliance/fraud-analysis/references/contexts/payment-collection.md +0 -20
- package/skills/risk-compliance/fraud-analysis/references/contexts/payout.md +0 -20
- package/skills/risk-compliance/fraud-analysis/references/workflow.md +0 -175
- package/skills/risk-compliance/tld-detection/references/chinese-polish.md +0 -55
- package/skills/risk-compliance/tld-detection/references/clustering.md +0 -235
- package/skills/risk-compliance/tld-detection/references/decision.md +0 -189
- package/skills/risk-compliance/tld-detection/references/streams.md +0 -141
- package/skills/risk-compliance/tld-detection/references/terminology.md +0 -95
- package/skills/risk-compliance/tld-detection/references/workflow.md +0 -95
- /package/skills/{engineering/contributing → core/write-report}/LICENSE +0 -0
- /package/skills/core/{write-doc → write-report}/references/reports/audit-report-template.md +0 -0
- /package/skills/core/{write-doc → write-report}/references/reports/external-assessment-template.md +0 -0
- /package/skills/core/{write-doc → write-report}/references/reports/management-report-template.md +0 -0
- /package/skills/core/{write-doc → write-report}/references/reports/vars-report-template.md +0 -0
- /package/skills/{engineering/contributing → core/write-report}/release-check.mjs +0 -0
- /package/skills/{risk-compliance/fraud-analysis → engineering/engineering}/LICENSE +0 -0
- /package/skills/engineering/{contributing → engineering}/references/tracker-conventions.md +0 -0
- /package/skills/{risk-compliance/fraud-analysis → engineering/engineering}/release-check.mjs +0 -0
- /package/skills/engineering/{contributing → engineering}/scripts/persist-conventions-core.mjs +0 -0
- /package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/archetypes/authorized-payment-scam.md +0 -0
- /package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/mechanisms/account-takeover.md +0 -0
- /package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/taxonomy.md +0 -0
- /package/skills/risk-compliance/{fraud-analysis → fraud-detection}/references/terminology.md +0 -0
|
@@ -8,16 +8,25 @@ dependencies:
|
|
|
8
8
|
- better-review
|
|
9
9
|
- golden-path
|
|
10
10
|
- harness-runtime
|
|
11
|
-
release-version: 0.
|
|
11
|
+
release-version: 0.45.0
|
|
12
12
|
---
|
|
13
13
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
14
14
|
# Resolve issues
|
|
15
15
|
|
|
16
|
+
Before substantive work, if `update_todo` is advertised in this turn, capture the
|
|
17
|
+
known objective with `update_todo({outcome:{objective:<objective>}})`; include only
|
|
18
|
+
known, useful criteria or boundaries. No checklist is required. The interface is
|
|
19
|
+
optional and must never be enabled as a precondition. Read the source requirements
|
|
20
|
+
as authoritative; later user corrections take precedence. A reminder is not
|
|
21
|
+
permission to continue. See [checkpoints](references/task-plan.md#checkpoints).
|
|
22
|
+
|
|
16
23
|
## Goal
|
|
17
24
|
|
|
18
|
-
**
|
|
19
|
-
already sets: every PR reviewed and green on required CI.**
|
|
20
|
-
|
|
25
|
+
**Deliver the spec's business outcomes autonomously, in the shortest wall-clock time, at the bar the spec
|
|
26
|
+
already sets: every PR reviewed and green on required CI.** A working end-to-end feature is progress;
|
|
27
|
+
more guards, tests, frameworks, or gates are not progress by themselves. Supporting work belongs only
|
|
28
|
+
when the outcome needs it, a binding requirement calls for it, or the change introduces a concrete defect.
|
|
29
|
+
Make the decisions that get there; the principles are guidelines, and every rule serves the goal: when one would slow the run
|
|
21
30
|
without protecting the bar, take the faster path and record why in `decisions`. The bar is the
|
|
22
31
|
human's criteria. The only constraints are the plan's [standingOrders](references/task-plan.md#standing-orders) and the
|
|
23
32
|
invocation's settings (implementer pin, target, merge and scheduler mode); any other limit, wherever
|
|
@@ -31,49 +40,9 @@ what did not pass).
|
|
|
31
40
|
|
|
32
41
|
## Principles
|
|
33
42
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
1. **Deliver when the agreed plan and required CI pass.**
|
|
38
|
-
Example: the plan names the charge unit tests and typecheck; both pass and
|
|
39
|
-
CI is green, so mark the PR ready. Do not also run the emulator journey
|
|
40
|
-
"to be safe".
|
|
41
|
-
2. **Never add work the plan does not name.**
|
|
42
|
-
Example: a check flaked: fix its cause (principle 11), and write no incident disposition, failure
|
|
43
|
-
fingerprint, or review of either. A problem outside the unit goes to the
|
|
44
|
-
[dropbox](references/dropbox.md). A choice (spec meaning, design, approach) is no
|
|
45
|
-
failure: answer it, never retry it ([expire.md](references/expire.md#decide-before-you-defer)).
|
|
46
|
-
3. **Add a check only for a concrete doubt that could change delivery.**
|
|
47
|
-
Example: "the fix changed refund rounding; if `refund.test.ts` fails, the
|
|
48
|
-
code must change", so run it. "More coverage would be reassuring": skip.
|
|
49
|
-
4. **Reuse a passing result until what it tested changes.**
|
|
50
|
-
Example: a commit that only rewords its message keeps every result. A
|
|
51
|
-
fix to `refund.ts` reruns the refund tests, not the whole plan.
|
|
52
|
-
5. **Push early; CI is the full test.**
|
|
53
|
-
Example: push each fix to the draft PR once its focused tests pass,
|
|
54
|
-
without asking first and without running the full suite locally.
|
|
55
|
-
6. **Carry a HEAD pushed after a passing review; give every other new HEAD the tier `better-review`'s scope script picks.**
|
|
56
|
-
Example: a CI fix or a merge of main after a pass: `--carry`, no
|
|
57
|
-
reviewer. A P0/P1 fix: delta; one that rewrote most of the PR: full.
|
|
58
|
-
7. **Coordinate first.** On every completion notice, read fresh capacity and run `scripts/next-actions.mjs --run <run>`
|
|
59
|
-
with the [live capacity arguments](references/implementation.md#live-capacity); do everything it prints
|
|
60
|
-
before resuming your own work; keep a [heartbeat](references/expire.md#waits).
|
|
61
|
-
Example: mid-way through an emulator debug, a notice says `impl-1322`
|
|
62
|
-
finished; the script prints `start-review 1322` and `fill-slot 1323`, so
|
|
63
|
-
start both, then return to the debug. On a new invocation, call it first with `--resume`.
|
|
64
|
-
Only it decides the run is done: end a turn only when it prints nothing due, only `wait`, or `finish`.
|
|
65
|
-
8. **Run as much at once as the plan and live host capacity allow.** Start every `fill-slot` before your own work;
|
|
66
|
-
never hold a ready unit back; link a unit only to what its change needs.
|
|
67
|
-
Example: a slot is free while you debug CI: start the ready unit, then debug. Five slices need one helper: the first builds it, the rest depend on it.
|
|
68
|
-
9. **Record what remains once, in the issue that owns it.**
|
|
69
|
-
Example: the release device campaign is still to run, so add one comment
|
|
70
|
-
on the release issue and link it from the handback. Never report "device
|
|
71
|
-
tests passed" from a unit build.
|
|
72
|
-
10. **Never block on the human.** After the approval, take the [automatic answer](references/preflight.md#never-block-on-the-human)
|
|
73
|
-
wherever you could ask or wait, record it, and keep going; a later message changes course from there.
|
|
74
|
-
11. **Fix the root cause.** Find why a failure happens and fix that, in the plan or outside it ([expire.md](references/expire.md#infrastructure-failures));
|
|
75
|
-
never only its symptom (a blind retry, a longer timeout, a skip, a guessed fix sent to CI: reproduce a failed journey
|
|
76
|
-
with `proof.suite.local` first). Defer only a [human-only](references/expire.md#human-only) cause.
|
|
43
|
+
Read the [delivery principles](references/principles.md) before substantive work
|
|
44
|
+
and include them verbatim in every worker brief. They are guidelines, not
|
|
45
|
+
restrictions: when two pull apart, take the one that ships sooner at the same bar.
|
|
77
46
|
|
|
78
47
|
`/rush-issues` runs this workflow with every answer defaulted ([shortcut mode](references/preflight.md#shortcut-mode)).
|
|
79
48
|
|
|
@@ -87,7 +56,8 @@ preflight: ready label -> model fills -> plan draft
|
|
|
87
56
|
-> exploration -> size check (only scope or an open question holds a unit, with a split)
|
|
88
57
|
-> one approval (implementer, target branch, merge mode, scheduler mode, plan)
|
|
89
58
|
-> schedule runnable units within live host capacity:
|
|
90
|
-
|
|
59
|
+
prepare a unit's workspace when its first worker is admitted (never all units up front)
|
|
60
|
+
-> implement -> first coherent commit: draft PR (CI starts) once parents' PRs are open
|
|
91
61
|
(stack, chain) or merged (wait) -> validate -> self-review -> fix and re-validate
|
|
92
62
|
-> when a unit's code is done, for that unit:
|
|
93
63
|
rebase on its parent (stack, chain) or the target (wait)
|
|
@@ -98,8 +68,8 @@ preflight: ready label -> model fills -> plan draft
|
|
|
98
68
|
-> CI red: fix, push; after a passing review, carry it (no reviewer)
|
|
99
69
|
-> review passed and CI green on one HEAD: mark ready
|
|
100
70
|
-> autonomous: merge (through the queue; stack, chain: enqueue a line's deepest PR); supervised: hand back merge-ready
|
|
101
|
-
-> after a merge, optional: read-only warehouse canary on that commit
|
|
102
|
-
-> done: every PR merged (autonomous) or handed back merge-ready (supervised)
|
|
71
|
+
-> after a merge, clean that unit's workspace and resources (retained = report it); optional: read-only warehouse canary on that commit
|
|
72
|
+
-> done: every PR merged (autonomous) or handed back merge-ready (supervised), every delivered environment cleaned or retained with a reason
|
|
103
73
|
```
|
|
104
74
|
|
|
105
75
|
Read each procedure right before its stage; never substitute your own.
|
|
@@ -111,6 +81,7 @@ Read each procedure right before its stage; never substitute your own.
|
|
|
111
81
|
| Exploration (preflight step 4) | [references/exploration.md](references/exploration.md) |
|
|
112
82
|
| Implementation loop and opening each PR | [references/implementation.md](references/implementation.md) |
|
|
113
83
|
| Read-only warehouse canary | [references/canary.md](references/canary.md) |
|
|
84
|
+
| Owned workspaces: plan, prepare, cleanup, recover, inventory | [references/workspaces.md](references/workspaces.md) |
|
|
114
85
|
| Independent review | [references/review.md](references/review.md) |
|
|
115
86
|
| Routing small problems; posting them at the end | [references/dropbox.md](references/dropbox.md) |
|
|
116
87
|
| CI, queue, and merge | [references/ci.md](references/ci.md) |
|
|
@@ -128,7 +99,7 @@ Read each procedure right before its stage; never substitute your own.
|
|
|
128
99
|
([Done](#done)); an infrastructure or external blocker becomes a tree issue the units wait on
|
|
129
100
|
([expire.md](references/expire.md#infrastructure-failures)); a unit that only waits on another unit is not
|
|
130
101
|
started (`pending`), never `blocked`; what stays blocked ends deferred on its owning issue, never done.
|
|
131
|
-
- **Your role.** Coordinate first ([principle 7](
|
|
102
|
+
- **Your role.** Coordinate first ([principle 7](references/principles.md)); between notices you may do bounded work
|
|
132
103
|
yourself: reproduce a failing browser or emulator journey, investigate an infrastructure failure, run a short
|
|
133
104
|
check. Leave code changes to workers so your attention stays on scheduling, and record each worker as the
|
|
134
105
|
unit's `workerKind` (`implement`, `fix`, `review`). Exploration continues the run's one explorer. After a context compaction, read this file in
|
|
@@ -159,7 +130,7 @@ infrastructure, and report verified behavior. Full acceptance and required CI st
|
|
|
159
130
|
## Every brief contains
|
|
160
131
|
|
|
161
132
|
Use the full [brief checklist](references/delivery-progress.md#every-brief-contains),
|
|
162
|
-
including the Goal and Principles verbatim, checkpoint history and result contract.
|
|
133
|
+
including the Goal and [Principles](references/principles.md) verbatim, checkpoint history and result contract.
|
|
163
134
|
Treat a missing or unreadable result as incomplete; resume a dead spawn once in its workspace.
|
|
164
135
|
|
|
165
136
|
## Workflow
|
|
@@ -181,13 +152,15 @@ Follow [preflight.md](references/preflight.md):
|
|
|
181
152
|
5. **Size check:** run `size-check.mjs` (exit 0; read `verdict`). On `hold` or `stop`, hold the listed
|
|
182
153
|
units (their dependents wait, not started) and draft their splits (yours when none is drafted); on `exploration-unfinished`, continue the explorer.
|
|
183
154
|
6. **Approval:** ask once for implementer, target, merge mode, scheduler mode, and plan;
|
|
184
|
-
record the answers and
|
|
155
|
+
record the answers; plan each unit's branch, workspace, base, and lifecycle
|
|
156
|
+
intent, and prepare a workspace only when its first worker is admitted
|
|
157
|
+
([workspaces.md](references/workspaces.md#prepare-at-admission-once)).
|
|
185
158
|
In shortcut mode, take the defaults: on `hold` or `stop`, file the splits (never defer
|
|
186
159
|
for size), accept recommended answers, and run the rest ([shortcut mode](references/preflight.md#shortcut-mode)).
|
|
187
160
|
|
|
188
161
|
### 2. Implement and open the PR
|
|
189
162
|
|
|
190
|
-
Give each unit a branch, workspace, and implementer with its findings entry
|
|
163
|
+
Give each unit a branch, its prepared workspace, and an implementer with its findings entry
|
|
191
164
|
and parents' contracts; state outcome and validation, not method. Refill
|
|
192
165
|
slots at once. At a unit's first coherent commit its PR opens as a draft, so CI
|
|
193
166
|
starts and the work is safe; later work goes to the same PR (in a Mergify stack
|
|
@@ -217,20 +190,26 @@ Enqueue through the queue's skill only when CI is green and the verdict is `pass
|
|
|
217
190
|
on the same HEAD.
|
|
218
191
|
After 2 cycles without progress ([expire.md](references/expire.md)), or a harness-reported stuck worker, take the failure kind's response
|
|
219
192
|
([expire.md](references/expire.md)).
|
|
193
|
+
A landed unit's workspace and resources are cleaned then, alongside independent units, never by age
|
|
194
|
+
([workspaces.md](references/workspaces.md#cleanup-after-delivery-before-finish)).
|
|
220
195
|
|
|
221
196
|
## Task plan and board
|
|
222
197
|
|
|
223
198
|
Keep the task plan as the only source of truth; only you update it
|
|
224
|
-
([task-plan.md](references/task-plan.md)).
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
199
|
+
([task-plan.md](references/task-plan.md)). When `update_todo` is advertised, capture
|
|
200
|
+
the known outcome before substantive work and bind or reload the saved plan with
|
|
201
|
+
`update_todo({workflow:{path:<absolute-plan-path>,revision:<persisted-planRevision>},outcome:{objective:<objective>}})`.
|
|
202
|
+
Binding with no event is read-only for the plan. Save transitions through its
|
|
203
|
+
`workflow` payload with the current revision; never edit the bound plan directly.
|
|
204
|
+
When the tool is absent or disabled, use the existing file transition in
|
|
205
|
+
[task-plan.md](references/task-plan.md#other-harnesses-and-display). Never enable the
|
|
206
|
+
optional interface as a precondition. Render the board from the saved plan under
|
|
207
|
+
that same `planRevision`.
|
|
230
208
|
|
|
231
209
|
## Done
|
|
232
210
|
|
|
233
|
-
First [
|
|
211
|
+
First [clean every delivered unit's environment](references/done.md#clean-before-handoff), then
|
|
212
|
+
[settle blocked units](references/done.md#settle-blocked-units). Every PR is reviewed, green on its exact HEAD, and merged (`autonomous`) or
|
|
234
213
|
handed back merge-ready (`supervised`). For a blocked unit, hand back it, its
|
|
235
214
|
dependents, and the merged units. Link each issue the run filed into the spec's tree, and each `excluded` rollup to close;
|
|
236
215
|
hand back the draft from `<run>/splits/` only for a unit still held, and the link to the pending device record. Report one short record per unit:
|
|
@@ -97,9 +97,19 @@ provider shows that PR merged.
|
|
|
97
97
|
|
|
98
98
|
## After the merge
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
Clean that unit's workspace and resources, then finish it, in every scheduler
|
|
101
|
+
mode: `next-actions.mjs` prints `cleanup-workspace` until its cleanup settles.
|
|
102
|
+
First record the intent through the [checkpoint mechanism](task-plan.md#checkpoints) (`lifecycle.cleanup`
|
|
103
|
+
`{state: applying, headSha: <the unit's headSha>}`), then run:
|
|
101
104
|
|
|
102
105
|
```bash
|
|
103
|
-
node <skill-base-dir>/scripts/cleanup-runs.mjs --
|
|
104
|
-
|
|
106
|
+
node <skill-base-dir>/scripts/cleanup-runs.mjs cleanup --run <run> --unit <unit> \
|
|
107
|
+
--revision <saved planRevision> --apply --json
|
|
105
108
|
```
|
|
109
|
+
|
|
110
|
+
Persist its returned lifecycle ([workspaces.md](workspaces.md#cleanup-after-delivery-before-finish)).
|
|
111
|
+
It runs alongside independent units. `complete` settles the unit; `retained`
|
|
112
|
+
keeps the whole environment and reports it as **not cleaned**, with the
|
|
113
|
+
helper's reason, in the handoff. `pending` or `applying` cleanup blocks
|
|
114
|
+
`finish`. Only a proven cleanup removes a tree: no `--merged <path>` on its
|
|
115
|
+
own, and no deletion by age.
|
|
@@ -49,11 +49,12 @@ 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
|
-
- the [Goal](../SKILL.md#goal) and [Principles](
|
|
52
|
+
- the [Goal](../SKILL.md#goal) and [Principles](principles.md), verbatim (a reviewer gets review.md's two rules instead)
|
|
53
53
|
- the result path, `<run>/results/<unit>-<label>.json` (`<label>`: kind and attempt, e.g. `fix-2`), with `unit` and `decisionNeeded` (null or a choice)
|
|
54
54
|
- at the deadline: stop starting work, commit, and report
|
|
55
|
-
- environment rules: write only inside the workspace (and the findings directory for the explorer),
|
|
56
|
-
with
|
|
55
|
+
- environment rules: write only inside the workspace and its planned resources (and the findings directory for the explorer),
|
|
56
|
+
with private caches and temp files registered before use (`TMPDIR`, `npm_config_cache`, `UV_CACHE_DIR`);
|
|
57
|
+
reuse them through retries and return them to the cleanup owner ([workspaces](workspaces.md)); use the machine's
|
|
57
58
|
installed JDK, Android SDK, system images, and browsers (`JAVA_HOME`, `ANDROID_HOME`) where they fit,
|
|
58
59
|
or the repo's pinned Playwright image where the runner has no browser (`github-actions` runners.md);
|
|
59
60
|
edit with the harness's tools, never a shell `apply_patch`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Done
|
|
2
2
|
|
|
3
|
-
End a run in
|
|
4
|
-
the run in the harness.
|
|
3
|
+
End a run in four steps, in order: clean each delivered unit's environment,
|
|
4
|
+
settle blocked units, report, then close the run in the harness.
|
|
5
5
|
|
|
6
6
|
## Settle blocked units
|
|
7
7
|
|
|
@@ -13,6 +13,15 @@ itself is not settled while `next-actions.mjs` prints `wait` or
|
|
|
13
13
|
`retry-blocked` for it ([expire.md](expire.md#reason-codes)). End only when
|
|
14
14
|
nothing is left to settle.
|
|
15
15
|
|
|
16
|
+
## Clean before handoff
|
|
17
|
+
|
|
18
|
+
Clean every delivered unit's workspace and resources before the report, in every
|
|
19
|
+
scheduler mode ([workspaces.md](workspaces.md#cleanup-after-delivery-before-finish)).
|
|
20
|
+
Its `lifecycle.cleanup` is `complete`, or `retained` with the current `headSha`
|
|
21
|
+
and a reason; `pending` or `applying` blocks the handoff. Report each retained
|
|
22
|
+
environment as **not cleaned**, with its reason, and say so for every blocked,
|
|
23
|
+
cancelled, pending, or merge-ready handed-back unit that keeps its environment.
|
|
24
|
+
|
|
16
25
|
## Close the run
|
|
17
26
|
|
|
18
27
|
After the report ([SKILL.md](../SKILL.md#done)):
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Expire an attempt at these limits. Never drop an expired unit from the spec.
|
|
4
4
|
|
|
5
|
+
These counters track progress toward the agreed outcome, not a reason to create
|
|
6
|
+
more work. Count only required checks and concrete defects that affect delivery;
|
|
7
|
+
do not keep an attempt alive by adding guards, tests, gates, or diagnostics that
|
|
8
|
+
the feature does not need.
|
|
9
|
+
|
|
5
10
|
**Count progress, not attempts: expire after 2 cycles without progress, and
|
|
6
11
|
never after a fixed number of cycles.** A fix cycle makes progress only when
|
|
7
12
|
its count reaches a new low, below every earlier cycle of the attempt; a
|
|
@@ -277,8 +282,10 @@ merge waits for its proof.
|
|
|
277
282
|
|
|
278
283
|
## Infrastructure failures
|
|
279
284
|
|
|
280
|
-
**Diagnose
|
|
281
|
-
|
|
285
|
+
**Diagnose infrastructure that prevents an agreed required check or feature from
|
|
286
|
+
running, and fix its cause.** Do not use this section to harden healthy infrastructure,
|
|
287
|
+
repair unrelated debt, or create a new test platform for speculative assurance. Never
|
|
288
|
+
wait for someone else to diagnose a blocker the run can resolve.
|
|
282
289
|
|
|
283
290
|
"The same failure" means the same command failing with the same error.
|
|
284
291
|
Example: `./gradlew assembleDebug` fails with `Could not resolve
|
|
@@ -6,10 +6,15 @@ Give these to every implementer and fix worker, with SKILL.md's
|
|
|
6
6
|
[Principles](../SKILL.md#principles). Each is a guideline toward the
|
|
7
7
|
[Goal](../SKILL.md#goal), then an example.
|
|
8
8
|
|
|
9
|
-
1. **Done is the criteria passing at `proof.level
|
|
10
|
-
Example:
|
|
11
|
-
against
|
|
12
|
-
2. **
|
|
9
|
+
1. **Done is the requested outcome working and its agreed criteria passing at `proof.level`.**
|
|
10
|
+
Example: the Charge layout persists per installation and the repository test passes
|
|
11
|
+
against disposable PostgreSQL, so finish. No browser run on top.
|
|
12
|
+
2. **Keep the first working business flow in view.** Build the smallest complete path
|
|
13
|
+
through the existing system; do not build a general framework before its first use.
|
|
14
|
+
Supporting code or tests need a direct dependency, an agreed requirement, or a
|
|
15
|
+
concrete defect introduced by this change. Do not add speculative guards, retries,
|
|
16
|
+
fallbacks, coercions, or compatibility modes; retain the protections the supported
|
|
17
|
+
behavior actually needs. Never enlarge the criteria, CI gates, or evidence campaign.
|
|
13
18
|
Example: you notice the export also lacks currency. Run `dropbox.mjs
|
|
14
19
|
check` on it: `inDiff` false, so report it as a dropbox item; do not fix or test
|
|
15
20
|
it in this unit. `inDiff` true means your change caused it: fix it.
|
|
@@ -32,22 +37,26 @@ After the approval, schedule runnable units continuously within
|
|
|
32
37
|
|
|
33
38
|
## Workspaces
|
|
34
39
|
|
|
35
|
-
Give each unit its own branch and
|
|
36
|
-
`.resolve-issues/rush/<run-id>/units/<unit>/`, on the target or on its
|
|
37
|
-
|
|
38
|
-
and expiry; never wipe it on spawn death or
|
|
39
|
-
one workspace, one emulator profile (AVD), and at most one
|
|
40
|
-
reused across retries and fixes; never
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
first
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
Give each unit its own branch and one prepared workspace at
|
|
41
|
+
`.resolve-issues/rush/<run-id>/units/<unit>/`, on the target or on its parent's
|
|
42
|
+
branch in `stack` or `chain` mode ([workspaces.md](workspaces.md)). Keep it
|
|
43
|
+
through implementation, fixes, and expiry; never wipe it on spawn death or
|
|
44
|
+
timeout. Give a unit one workspace, one emulator profile (AVD), and at most one
|
|
45
|
+
scratch copy, planned as a resource and reused across retries and fixes; never
|
|
46
|
+
one per attempt.
|
|
47
|
+
|
|
48
|
+
Prepare it when the unit's first worker is admitted, and persist the helper's
|
|
49
|
+
ready identity before that worker starts ([workspaces.md](workspaces.md#prepare-at-admission-once)).
|
|
50
|
+
Every later worker reuses the same tree. A sandboxed Git-mutating worker gets an
|
|
51
|
+
independent clone prepared before its first spawn; after that, never pass
|
|
52
|
+
`git_clone_workspace:true` again, and use `sandbox:false` only when the caller
|
|
53
|
+
accepts unrestricted writes.
|
|
46
54
|
|
|
47
55
|
## Brief
|
|
48
56
|
|
|
49
57
|
Add to SKILL.md's brief list: whole-spec context and neighboring unit
|
|
50
|
-
boundaries, the branch,
|
|
58
|
+
boundaries, the branch, the prepared workspace and its recorded resources,
|
|
59
|
+
dependencies, and shared surfaces; "push the branch at
|
|
51
60
|
your first coherent commit and after each later one (in a Mergify stack
|
|
52
61
|
repository, amend the one commit), and write its head SHA to
|
|
53
62
|
`<run>/results/<unit>-head.json`; do not open the PR yourself" (the
|
|
@@ -108,8 +117,13 @@ transcript.
|
|
|
108
117
|
- Prove `browser` and `emulator` levels with the existing end-to-end suite;
|
|
109
118
|
with none, the unit builds the journey its proof needs
|
|
110
119
|
([expire.md](expire.md#proof-stays-with-its-unit)).
|
|
120
|
+
- Reuse existing tests that already prove an outcome. Add focused cases for the
|
|
121
|
+
changed behavior and material failures, at the lowest level that proves them for
|
|
122
|
+
real. Decide whether a new defensive branch belongs before writing a test for it;
|
|
123
|
+
do not make an invented fallback permanent by treating its test as a requirement.
|
|
111
124
|
- Prove logic with unit, database, or component tests; keep journeys for what
|
|
112
|
-
only they show.
|
|
125
|
+
only they show. A journey can satisfy several obligations it actually exercises;
|
|
126
|
+
a new branch does not automatically need another test layer.
|
|
113
127
|
- When CI runs the unit's `browser` or `emulator` suite, CI proves it: push
|
|
114
128
|
and read the journey's result on the pushed HEAD. CI confirms a fix; it
|
|
115
129
|
never debugs one. After a failed journey, reproduce it with
|
|
@@ -148,6 +162,8 @@ transcript.
|
|
|
148
162
|
## Scheduling
|
|
149
163
|
|
|
150
164
|
- Start runnable units together within [live host capacity](#live-capacity).
|
|
165
|
+
A printed `prepare-workspace` is work that admits the worker printed after it:
|
|
166
|
+
run it, persist the returned identity, then spawn.
|
|
151
167
|
Separately, this machine runs one local emulator at a time unless its
|
|
152
168
|
suite proves more is safe. Treat it as a queue the coordinator hands out,
|
|
153
169
|
in arrival order: to emulator proof CI does not run and to failures only
|
|
@@ -352,7 +352,9 @@ Record each answer in `decisions`, sync the catalog, then:
|
|
|
352
352
|
- Run the rest: mark held units `blocked` (`blockedReason: size-hold`) with the split path;
|
|
353
353
|
their dependents stay not started (`pending`).
|
|
354
354
|
|
|
355
|
-
|
|
355
|
+
Record the unit branches and workspace intents, then prepare each workspace only
|
|
356
|
+
when its first worker is admitted ([workspaces](workspaces.md#prepare-at-admission-once)).
|
|
357
|
+
From here on, ask nothing ([never block on the human](#never-block-on-the-human)).
|
|
356
358
|
|
|
357
359
|
### Environment checks
|
|
358
360
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Delivery principles
|
|
2
|
+
|
|
3
|
+
Guidelines, not restrictions; put them in every brief. When two pull apart, take the one that
|
|
4
|
+
ships sooner at the same bar.
|
|
5
|
+
|
|
6
|
+
1. **Deliver when the requested behavior works and the agreed checks pass.**
|
|
7
|
+
Example: the cashier can submit the Charge, the plan's charge tests and typecheck
|
|
8
|
+
pass, and required CI is green, so mark the PR ready. Do not add another
|
|
9
|
+
journey or a hardening campaign "to be safe".
|
|
10
|
+
2. **Keep supporting work tied to the outcome; never enlarge acceptance on your own.**
|
|
11
|
+
Add a guard, fallback, retry, compatibility path, abstraction, or test setup only
|
|
12
|
+
for a supported requirement, a concrete dependency, or a demonstrated defect.
|
|
13
|
+
Preserve necessary security, financial correctness, tenancy, data integrity, and
|
|
14
|
+
cleanup. Do not turn a feature into a coverage, CI, observability, framework,
|
|
15
|
+
or repository-cleanup project. A problem outside the unit goes to the
|
|
16
|
+
[dropbox](dropbox.md); do not fix it merely because you found it.
|
|
17
|
+
A choice (spec meaning, design, approach) is no failure: answer it, never retry
|
|
18
|
+
it ([expire.md](expire.md#decide-before-you-defer)).
|
|
19
|
+
3. **Add a check only for a concrete doubt that could change delivery.**
|
|
20
|
+
Example: "the fix changed refund rounding; if `refund.test.ts` fails, the
|
|
21
|
+
code must change", so run it. "More coverage would be reassuring": skip.
|
|
22
|
+
4. **Reuse a passing result until what it tested changes.**
|
|
23
|
+
Example: a commit that only rewords its message keeps every result. A
|
|
24
|
+
fix to `refund.ts` reruns the refund tests, not the whole plan.
|
|
25
|
+
5. **Push early; CI is the full test.**
|
|
26
|
+
Example: push each fix to the draft PR once its focused tests pass,
|
|
27
|
+
without asking first and without running the full suite locally.
|
|
28
|
+
6. **Carry a HEAD pushed after a passing review; give every other new HEAD the tier `better-review`'s scope script picks.**
|
|
29
|
+
Example: a CI fix or a merge of main after a pass: `--carry`, no
|
|
30
|
+
reviewer. A P0/P1 fix: delta; one that rewrote most of the PR: full.
|
|
31
|
+
7. **Coordinate first.** On every completion notice, read fresh capacity and run `scripts/next-actions.mjs --run <run>`
|
|
32
|
+
with the [live capacity arguments](implementation.md#live-capacity); do everything it prints
|
|
33
|
+
before resuming your own work; keep a [heartbeat](expire.md#waits).
|
|
34
|
+
Example: mid-way through an emulator debug, a notice says `impl-1322`
|
|
35
|
+
finished; the script prints `start-review 1322` and `fill-slot 1323`, so
|
|
36
|
+
start both, then return to the debug. On a new invocation, call it first with `--resume`.
|
|
37
|
+
Only it decides the run is done: end a turn only when it prints nothing due, only `wait`, or `finish`.
|
|
38
|
+
8. **Run as much at once as the plan and live host capacity allow.** Start every `fill-slot` before your own work;
|
|
39
|
+
never hold a ready unit back; link a unit only to what its change needs.
|
|
40
|
+
Example: a slot is free while you debug CI: start the ready unit, then debug. Five slices need one helper: the first builds it, the rest depend on it.
|
|
41
|
+
9. **Record what remains once, in the issue that owns it.**
|
|
42
|
+
Example: the release device campaign is still to run, so add one comment
|
|
43
|
+
on the release issue and link it from the handback. Never report "device
|
|
44
|
+
tests passed" from a unit build.
|
|
45
|
+
10. **Never block on the human.** After the approval, take the [automatic answer](preflight.md#never-block-on-the-human)
|
|
46
|
+
wherever you could ask or wait, record it, and keep going; a later message changes course from there.
|
|
47
|
+
11. **Fix the cause of what actually blocks delivery.** Diagnose a failed agreed check or
|
|
48
|
+
a concrete defect introduced by the change; fix the cause, not a blind retry, longer
|
|
49
|
+
timeout, skip, or guessed CI fix. Reproduce a failed journey with `proof.suite.local`
|
|
50
|
+
first. Infrastructure repair follows [expire.md](expire.md#infrastructure-failures)
|
|
51
|
+
only when the required acceptance needs it; unrelated debt stays in the dropbox.
|
|
52
|
+
Defer a necessary fix only for the documented [human-only](expire.md#human-only) causes.
|
|
@@ -15,8 +15,10 @@ restate its rules in the brief beyond the two below.
|
|
|
15
15
|
provides and builds on.
|
|
16
16
|
- Have it compute its own merge-base with `origin/<targetBranch>`, or the
|
|
17
17
|
parent's branch when stacked or chained.
|
|
18
|
-
-
|
|
19
|
-
|
|
18
|
+
- Prepare each unit one review clone at `<run>/reviews/<unit>/clone`, recorded as
|
|
19
|
+
its `review` resource before the first reviewer is admitted, and reuse it every
|
|
20
|
+
round by fetching the new HEAD; never a fresh clone or sandbox per round
|
|
21
|
+
([workspaces.md](workspaces.md#prepare-at-admission-once)).
|
|
20
22
|
- Give it the result path and tell it to file no follow-up issues: give each
|
|
21
23
|
P2 its `file` and `line`; you add them to the
|
|
22
24
|
[dropbox](dropbox.md). It reports no P3. It changes no code and pushes nothing.
|
|
@@ -25,8 +27,9 @@ restate its rules in the brief beyond the two below.
|
|
|
25
27
|
instead of rerunning them. Example: CI ran the 876-test suite green; the
|
|
26
28
|
reviewer reads that run and runs only the changed files' tests.
|
|
27
29
|
- Repeat two rules in every brief, as a safety net:
|
|
28
|
-
- A blocker names
|
|
29
|
-
|
|
30
|
+
- A blocker names a concrete supported failure with a counterexample, or cites
|
|
31
|
+
an explicit unmet requirement or missing agreed required proof and its evidence.
|
|
32
|
+
A missing optional test or hypothetical improvement is P2 at most.
|
|
30
33
|
- A check you cannot run is not a finding: record it as not run.
|
|
31
34
|
|
|
32
35
|
## Tier, then verdict
|
|
@@ -140,14 +143,21 @@ the PR author; `github-reviews.mjs` reads them and decides what blocks.
|
|
|
140
143
|
stall guard reads every earlier `<unit>-r<K>.json` beside the prior and
|
|
141
144
|
answers `review-again` when one is missing, so keep every round's file under that name.
|
|
142
145
|
|
|
143
|
-
3.
|
|
146
|
+
3. **Before running the old fix or adding a new one, apply the same finding bar.**
|
|
147
|
+
Keep accepted criteria and binding checks fixed. A proposed fallback, compatibility
|
|
148
|
+
mode, harness, gate, or wider test campaign needs a concrete dependency or defect;
|
|
149
|
+
a reviewer preference alone does not authorize it. Return an unsupported request
|
|
150
|
+
for clarification or as a non-blocking follow-up, never silently downgrade a real
|
|
151
|
+
security, money, tenancy, or data-integrity defect.
|
|
152
|
+
|
|
153
|
+
Add the round's P2 to the dropbox, merge the
|
|
144
154
|
[GitHub reviews](#github-reviews) into the file, then run the verdict
|
|
145
155
|
script and follow its `verdict`, never the reviewer's prose (it exits 0 whenever it ran, 2 if it could not):
|
|
146
156
|
|
|
147
157
|
```bash
|
|
148
158
|
node <skill-base-dir>/scripts/dropbox.mjs from-review --dropbox <run>/dropbox.json \
|
|
149
159
|
--review <run>/reviews/<unit>-r<N>.json --pr <PR url> \
|
|
150
|
-
--git <run>/reviews/<unit
|
|
160
|
+
--git <run>/reviews/<unit>/clone --base <review base> &&
|
|
151
161
|
node <skill-base-dir>/scripts/github-reviews.mjs merge --pr <owner/name#N> \
|
|
152
162
|
--head <PR headSha> --review <run>/reviews/<unit>-r<N>.json &&
|
|
153
163
|
node <skill-base-dir>/scripts/review-verdict.mjs \
|
|
@@ -190,17 +200,17 @@ Give the fix worker only the `fixBrief`, and act on its `action`:
|
|
|
190
200
|
|
|
191
201
|
| `action` | When | Fix worker |
|
|
192
202
|
|---|---|---|
|
|
193
|
-
| `fix` | first blocking round |
|
|
194
|
-
| `test-first` | a P0/P1 survived the last fix | On the escalation model, for each `recurring` finding, before changing code: name the rule
|
|
203
|
+
| `fix` | first blocking round | Make the smallest complete fix for each finding's `rule` and close every applicable row in its `paths`; do not require centralization. |
|
|
204
|
+
| `test-first` | a P0/P1 survived the last fix | On the escalation model, for each `recurring` finding, before changing code: name the broken rule and its concrete open paths, reuse sufficient tests and add focused cases for missing proof, and see the open cases fail. Fix the rule until the applicable cases pass. A table-driven test may cover several paths; no new architecture is required. |
|
|
195
205
|
| `one-by-one` | the last fix introduced new P0/P1 | One fix worker per finding, in turn, each with the smallest change that closes every row of its `paths` at the rule's owner. |
|
|
196
206
|
|
|
197
|
-
**Fix the rule
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
async completion
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
**Fix the broken rule on every applicable path, without requiring a refactor.**
|
|
208
|
+
A shared owner is useful when it makes the fix smaller and clearer; it is not a
|
|
209
|
+
prerequisite for closing the finding.
|
|
210
|
+
Example: for an old async completion overwriting a newer session, ensure every
|
|
211
|
+
credential-clearing path checks the relevant session identity. A shared store check
|
|
212
|
+
or focused handler checks can both resolve it; prove the supported same-person and
|
|
213
|
+
different-person sign-in cases without inventing unrelated event combinations.
|
|
204
214
|
|
|
205
215
|
Have each fix worker run the checks its change affects and return the
|
|
206
216
|
commands and results; push, and let CI run. Then pick the new HEAD's
|