@1aboveio/skills 1.0.19 → 1.0.21
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 +146 -146
- package/package.json +4 -4
- package/skills/app-dev/airflow/SKILL.md +1 -1
- package/skills/app-dev/android-development/SKILL.md +1 -1
- 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/maestro/SKILL.md +8 -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 +5 -1
- package/skills/cicd/github-actions/references/pipeline.md +26 -0
- 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 +5 -4
- package/skills/engineering/better-review/references/passes.md +20 -0
- package/skills/engineering/better-review/references/result.md +14 -0
- package/skills/engineering/e2e-test/SKILL.md +8 -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 +8 -1
- package/skills/engineering/golden-path/SKILL.md +5 -1
- package/skills/engineering/harness-runtime/SKILL.md +1 -1
- package/skills/engineering/resolve-issues/SKILL.md +33 -11
- package/skills/engineering/resolve-issues/references/ci.md +15 -1
- package/skills/engineering/resolve-issues/references/delivery-progress.md +18 -0
- package/skills/engineering/resolve-issues/references/done.md +12 -0
- package/skills/engineering/resolve-issues/references/dropbox.md +31 -6
- package/skills/engineering/resolve-issues/references/expire.md +6 -3
- package/skills/engineering/resolve-issues/references/exploration.md +10 -3
- package/skills/engineering/resolve-issues/references/implementation.md +88 -16
- package/skills/engineering/resolve-issues/references/preflight.md +6 -0
- package/skills/engineering/resolve-issues/references/review.md +42 -9
- package/skills/engineering/resolve-issues/references/task-plan.md +17 -2
- package/skills/engineering/resolve-issues/scripts/dropbox.mjs +2 -1
- package/skills/engineering/resolve-issues/scripts/next-actions.mjs +79 -4
- package/skills/engineering/resolve-issues/scripts/review-verdict.mjs +63 -10
- package/skills/engineering/resolve-release/SKILL.md +1 -1
- package/skills/engineering/rush-issues/SKILL.md +1 -1
- 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
|
@@ -64,6 +64,12 @@ P2 lacks its follow-up URL when the caller asked for follow-ups.
|
|
|
64
64
|
"file": "src/billing/refund.ts", "line": 42,
|
|
65
65
|
"trigger": "refund 100 USD at rate 0.9 returns 111.11 EUR, expected 90.00",
|
|
66
66
|
"rule": "every currency conversion multiplies by the source-to-target rate",
|
|
67
|
+
"reproducer": {
|
|
68
|
+
"command": "pnpm test -- src/billing/refund.test.ts",
|
|
69
|
+
"cwd": ".",
|
|
70
|
+
"expected": "refund 100 USD at rate 0.9 returns 90.00 EUR",
|
|
71
|
+
"evidence": "<run>/reviews/1201/refund-probe.log"
|
|
72
|
+
},
|
|
67
73
|
"paths": [
|
|
68
74
|
{ "path": "src/billing/refund.ts:42", "status": "open", "evidence": "divides by rate" },
|
|
69
75
|
{ "path": "src/billing/charge.ts:31", "status": "closed", "evidence": "convert() at :31" }
|
|
@@ -104,6 +110,14 @@ P2 lacks its follow-up URL when the caller asked for follow-ups.
|
|
|
104
110
|
- `trigger` is required on P0/P1: the concrete input, state, or sequence that breaks it; for
|
|
105
111
|
an explicitly unmet requirement or missing required proof, identify the requirement and the
|
|
106
112
|
evidence of what is missing.
|
|
113
|
+
- `reproducer` is optional on P0/P1. When an executable case established the finding,
|
|
114
|
+
attach its actual `command`, workspace-relative `cwd` (`.` for the root), and `expected`
|
|
115
|
+
observable result from the existing contract. An optional `evidence` names its retained
|
|
116
|
+
probe/log. Keep the probe available through the fix loop. The command must exercise the
|
|
117
|
+
reported trigger; establish its defining state in the case so a different fixture cannot
|
|
118
|
+
silently bypass the failure. An unmet written requirement need not have an executable case.
|
|
119
|
+
The caller carries these references, including distinct earlier witnesses of a still-open
|
|
120
|
+
finding, into the fix brief. Their old results are baseline evidence, never candidate passes.
|
|
107
121
|
- `rule` and `paths` are required on P0/P1, with at least one row `open`: the rule as one
|
|
108
122
|
sentence, and one row per path the diff adds, changes, or relies on (a writer, caller, sweep
|
|
109
123
|
place, or async cell), each `open` or `closed`, a closed row citing its guard's `file:line`.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: e2e-test
|
|
3
3
|
description: "Playwright end-to-end guidance for affected browser journeys, render health and presentation checks, with route manifests and sweeps for broader audits. Use when browser routes or user flows ship or change, or a Playwright test flakes. NOT for non-browser tests, defining what to test (ensure-coverage), the curated ALIVE/DEAD golden-path gate (golden-path), or CI workflow YAML (github-actions)."
|
|
4
|
-
release-version: 0.
|
|
4
|
+
release-version: 0.50.1
|
|
5
5
|
---
|
|
6
6
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
7
7
|
# E2E Testing Standard
|
|
@@ -77,6 +77,13 @@ Whether you added tests, wrote notes, or reviewed a PR, the first line answers "
|
|
|
77
77
|
|
|
78
78
|
## CI
|
|
79
79
|
|
|
80
|
+
For issue Acceptance Criteria that need browser proof, map the criteria to real
|
|
81
|
+
assertions and keep the affected specs runnable through maintained local and CI
|
|
82
|
+
commands. Use isolated fixtures and retain failure traces. Workers run focused
|
|
83
|
+
development checks; CI executes qualifying acceptance against the candidate. Report
|
|
84
|
+
CI pending until its applicable cases pass; a spec file or unrelated green job is
|
|
85
|
+
not acceptance.
|
|
86
|
+
|
|
80
87
|
Run the repo's existing required checks; routine feature work does not create or change a golden-path gate. When explicitly tasked with CI wiring, see [ci-integration.md](references/ci-integration.md) and [ci-playwright-container.md](references/ci-playwright-container.md).
|
|
81
88
|
|
|
82
89
|
## Reviewing
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: engineering
|
|
3
3
|
description: "Engineering conventions: feature-delivery priorities, focused verification and review, operational boundaries, and tracker routing. Standalone /engineering offers Global, Project, or Session setup and targeted resets for configured scopes; /engineering init keeps explicit project setup. Use when setting up AGENTS.md or CONTRIBUTING.md, saving or resetting engineering defaults, or before creating an engineering issue, spec, epic, ticket, or sub-issue on GitHub or Linear. Reads existing policy without writing during ordinary work. NOT the issue-to-PR workflow (resolve-issues), release execution (resolve-release), Git delivery (github-flow), or CI setup (github-actions)."
|
|
4
|
-
release-version: 0.
|
|
4
|
+
release-version: 0.50.1
|
|
5
5
|
---
|
|
6
6
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
7
7
|
# Engineering
|
|
@@ -3,7 +3,7 @@ name: engineering-runtime
|
|
|
3
3
|
description: Internal support package for shared Engineering Workflow executable behavior. Never select or invoke this package as a user capability.
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
user-invocable: false
|
|
6
|
-
release-version: 0.
|
|
6
|
+
release-version: 0.50.1
|
|
7
7
|
---
|
|
8
8
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
9
9
|
# Engineering Runtime
|
|
@@ -369,7 +369,7 @@
|
|
|
369
369
|
"repository": "1aboveio/ai",
|
|
370
370
|
"revision": "main"
|
|
371
371
|
},
|
|
372
|
-
"contentDigest": "
|
|
372
|
+
"contentDigest": "528de8e948bcd1cfdbe92bcb4c14129cbb78d5d9037d8d378d5ac540017cd248",
|
|
373
373
|
"digestExcludes": []
|
|
374
374
|
},
|
|
375
375
|
{
|
|
@@ -382,7 +382,7 @@
|
|
|
382
382
|
"repository": "1aboveio/ai",
|
|
383
383
|
"revision": "main"
|
|
384
384
|
},
|
|
385
|
-
"contentDigest": "
|
|
385
|
+
"contentDigest": "1b1074c002a7d3ca2dfebe625b65128aee10a662f7f9d4060a018fbaecf3225f",
|
|
386
386
|
"digestExcludes": []
|
|
387
387
|
},
|
|
388
388
|
{
|
|
@@ -395,7 +395,7 @@
|
|
|
395
395
|
"repository": "1aboveio/ai",
|
|
396
396
|
"revision": "main"
|
|
397
397
|
},
|
|
398
|
-
"contentDigest": "
|
|
398
|
+
"contentDigest": "61d744eeddd5b3a5d2fa7a94ea01ec3a570c72a7c19ad526761f21aac993abff",
|
|
399
399
|
"digestExcludes": []
|
|
400
400
|
},
|
|
401
401
|
{
|
|
@@ -408,7 +408,7 @@
|
|
|
408
408
|
"repository": "1aboveio/ai",
|
|
409
409
|
"revision": "main"
|
|
410
410
|
},
|
|
411
|
-
"contentDigest": "
|
|
411
|
+
"contentDigest": "3140da610485146538ee76048446ea7bac8927890a1469eb8108e63e4056d655",
|
|
412
412
|
"digestExcludes": []
|
|
413
413
|
},
|
|
414
414
|
{
|
|
@@ -421,7 +421,7 @@
|
|
|
421
421
|
"repository": "1aboveio/ai",
|
|
422
422
|
"revision": "main"
|
|
423
423
|
},
|
|
424
|
-
"contentDigest": "
|
|
424
|
+
"contentDigest": "12f5230e47afdeab750cb6b1454b3172edb29b922155b2994e96a93f386b6dbd",
|
|
425
425
|
"digestExcludes": []
|
|
426
426
|
},
|
|
427
427
|
{
|
|
@@ -434,7 +434,7 @@
|
|
|
434
434
|
"repository": "1aboveio/ai",
|
|
435
435
|
"revision": "main"
|
|
436
436
|
},
|
|
437
|
-
"contentDigest": "
|
|
437
|
+
"contentDigest": "b8d908580483f3954545e392c11d439ed100688eadc3b41ce508569f6dddc3bc",
|
|
438
438
|
"digestExcludes": []
|
|
439
439
|
},
|
|
440
440
|
{
|
|
@@ -447,7 +447,7 @@
|
|
|
447
447
|
"repository": "1aboveio/ai",
|
|
448
448
|
"revision": "main"
|
|
449
449
|
},
|
|
450
|
-
"contentDigest": "
|
|
450
|
+
"contentDigest": "256eac4a31f95d536ef487359df4c84fe7e85436c3b7550f6200f1b15cca4d0b",
|
|
451
451
|
"digestExcludes": []
|
|
452
452
|
},
|
|
453
453
|
{
|
|
@@ -460,7 +460,7 @@
|
|
|
460
460
|
"repository": "1aboveio/ai",
|
|
461
461
|
"revision": "main"
|
|
462
462
|
},
|
|
463
|
-
"contentDigest": "
|
|
463
|
+
"contentDigest": "25ad674c96748cb5313d13c80dd1ac4be5bdb287e75e7f978d8e5b97f5892833",
|
|
464
464
|
"digestExcludes": []
|
|
465
465
|
},
|
|
466
466
|
{
|
|
@@ -473,7 +473,7 @@
|
|
|
473
473
|
"repository": "1aboveio/ai",
|
|
474
474
|
"revision": "main"
|
|
475
475
|
},
|
|
476
|
-
"contentDigest": "
|
|
476
|
+
"contentDigest": "1d10c734eaef6bb20bf99bf9fa6dcfde6460ea2eecb84c33d7c0474e470684a9",
|
|
477
477
|
"digestExcludes": []
|
|
478
478
|
},
|
|
479
479
|
{
|
|
@@ -486,7 +486,7 @@
|
|
|
486
486
|
"repository": "1aboveio/ai",
|
|
487
487
|
"revision": "main"
|
|
488
488
|
},
|
|
489
|
-
"contentDigest": "
|
|
489
|
+
"contentDigest": "229a6d752c9b17c298172a022c36f8e28e409d665df4ed89f1655c17f37db3f3",
|
|
490
490
|
"digestExcludes": []
|
|
491
491
|
},
|
|
492
492
|
{
|
|
@@ -499,7 +499,7 @@
|
|
|
499
499
|
"repository": "1aboveio/ai",
|
|
500
500
|
"revision": "main"
|
|
501
501
|
},
|
|
502
|
-
"contentDigest": "
|
|
502
|
+
"contentDigest": "c44aa11db1f62995c8b77929143892e421d7068193c959930c8af4fbe8a2d7f5",
|
|
503
503
|
"digestExcludes": []
|
|
504
504
|
},
|
|
505
505
|
{
|
|
@@ -512,13 +512,13 @@
|
|
|
512
512
|
"repository": "1aboveio/ai",
|
|
513
513
|
"revision": "main"
|
|
514
514
|
},
|
|
515
|
-
"contentDigest": "
|
|
515
|
+
"contentDigest": "14439c4b1390b3dde50dcf8d56ff5c578bbbe08b17627f7bd504db099ba5e92a",
|
|
516
516
|
"digestExcludes": [
|
|
517
517
|
"coherence/workflow.json"
|
|
518
518
|
]
|
|
519
519
|
}
|
|
520
520
|
],
|
|
521
|
-
"releaseIdentity": "
|
|
521
|
+
"releaseIdentity": "d7ab71565826655a05f576e53932870e4d0176329a1b4110a460457e5cb2d0b8",
|
|
522
522
|
"lifecycleAuthority": "native-skills-cli",
|
|
523
523
|
"repairRecipe": {
|
|
524
524
|
"id": "engineering-workflow-dependency-first",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: ensure-coverage
|
|
3
3
|
description: "Define or audit behavior-first test criteria — ACs, required test levels, mock/integration/E2E policy — across three axes: breadth (Coverage Ledger), depth (over-mocking), presentation (perceivability of browser surfaces). NOT judging whether a single test is any good (test-quality), authoring browser tests (e2e-test), reviewing a PR (better-review), or delivering issues (resolve-issues)."
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
-
release-version: 0.
|
|
5
|
+
release-version: 0.50.1
|
|
6
6
|
---
|
|
7
7
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
8
8
|
# Ensure Coverage
|
|
@@ -16,6 +16,13 @@ Read the relevant source and governing project guidance. When product behavior o
|
|
|
16
16
|
|
|
17
17
|
## Scope and proof
|
|
18
18
|
|
|
19
|
+
- Start from the issue's Acceptance Criteria, requirements elsewhere in the issue,
|
|
20
|
+
and later human corrections. Map each criterion to sufficient existing tests or
|
|
21
|
+
missing automation, its qualifying CI lane, and any human or physical-device
|
|
22
|
+
remainder. One test may prove several criteria; choose the lowest sufficient level.
|
|
23
|
+
Record this in the existing issue or findings without requiring a new ledger.
|
|
24
|
+
Workers deliver the tests; CI executes automated acceptance. Grade a criterion
|
|
25
|
+
satisfied only when the relevant assertions and candidate's results support it.
|
|
19
26
|
- Choose the smallest sufficient proof for the outcome and material risks; reuse existing tests and required CI results when they prove the behavior. Do not automatically require multiple test layers, a ledger, a criteria document, a presentation campaign, or reconciliation of every ADR.
|
|
20
27
|
- Existing required repository checks and adopted coverage floors remain binding unless an approved change alters them. Authentication, money, tenancy, and data-integrity protections remain binding. Read applicable ADRs and project policy for the touched work, not every ADR in the repository.
|
|
21
28
|
- Consider breadth, depth, and presentation where relevant: what behavior is in scope, whether evidence actually exercises it, and whether a user can perceive and use a changed interface. Do not turn every axis or hypothetical state into a separate blocking obligation.
|
|
@@ -3,7 +3,7 @@ name: golden-path
|
|
|
3
3
|
description: "Golden-path E2E: the short list of user journeys whose failure blocks a release, kept in a repo as one contract (golden-paths.json) with a generated GOLDEN_PATHS.md and a generated GitHub Actions workflow, and run against a local build or a deployed URL for an ALIVE/DEAD verdict. Use to set golden paths up in a repo ('init golden paths', 'add golden-path CI'), to migrate an older smoke.manifest.json or a hand-built smoke setup ('audit', 'migrate smoke'), to add, change, or remove a golden path, to ask 'is the build alive?' or run them before a PR or release, or when a change touches a flow listed in GOLDEN_PATHS.md. NOT for writing the Playwright specs themselves (e2e-test), deciding what a change must prove (ensure-coverage), or general workflow YAML (github-actions)."
|
|
4
4
|
dependencies:
|
|
5
5
|
- e2e-test
|
|
6
|
-
release-version: 0.
|
|
6
|
+
release-version: 0.50.1
|
|
7
7
|
---
|
|
8
8
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
9
9
|
# Golden path
|
|
@@ -42,6 +42,10 @@ repo has a copy.
|
|
|
42
42
|
|
|
43
43
|
## Rules
|
|
44
44
|
|
|
45
|
+
Golden paths are the curated release-critical subset, not the full set of issue
|
|
46
|
+
Acceptance Criteria. Keep other automated acceptance tests in their appropriate CI
|
|
47
|
+
suites; an ALIVE verdict proves only the selected paths and their assertions.
|
|
48
|
+
|
|
45
49
|
1. **A person decides which flows are golden.** Draft candidates; never promote one
|
|
46
50
|
on your own judgment. A flow the user names in the request is confirmed, and so
|
|
47
51
|
are paths carried over from an older smoke manifest (ask about trimming them).
|
|
@@ -3,7 +3,7 @@ name: harness-runtime
|
|
|
3
3
|
description: Internal import-only library shared by first-party engineering packages. Not a workflow skill; never select or invoke it as a user capability.
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
user-invocable: false
|
|
6
|
-
release-version: 0.
|
|
6
|
+
release-version: 0.50.1
|
|
7
7
|
---
|
|
8
8
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
9
9
|
# Harness Runtime
|
|
@@ -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.50.1
|
|
12
12
|
---
|
|
13
13
|
**Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
|
|
14
14
|
# Resolve issues
|
|
@@ -63,8 +63,8 @@ preflight: ready label -> model fills -> plan draft
|
|
|
63
63
|
-> when a unit's code is done, for that unit:
|
|
64
64
|
rebase on its parent (stack, chain) or the target (wait)
|
|
65
65
|
-> independent review, while CI runs -> review-verdict.mjs decides:
|
|
66
|
-
`pass`: review passes (P2
|
|
67
|
-
|
|
66
|
+
`pass`: review passes (route P2 by its contribution to delivery;
|
|
67
|
+
P3 is skipped); `fix`: its fixBrief (P0/P1) plus explicitly selected supporting P2,
|
|
68
68
|
push, re-review; `review-again`: review again
|
|
69
69
|
-> CI red: fix, push; after a passing review, carry it (no reviewer)
|
|
70
70
|
-> review passed and CI green on one HEAD: mark ready
|
|
@@ -116,16 +116,34 @@ Read each procedure right before its stage; never substitute your own.
|
|
|
116
116
|
- **The human.** Ask once, at the approval. Record every decision, correction, and scope change in
|
|
117
117
|
`decisions` at once, and each standing instruction in `standingOrders`; re-read the standing orders on
|
|
118
118
|
resume and before any push, enqueue, data write, or deletion. Default merge mode is `autonomous`.
|
|
119
|
-
- **Proof.** Treat producer reports as claims until the reviewer or CI checks them.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
119
|
+
- **Proof.** Treat producer reports as claims until the reviewer or CI checks them. Tests and diagnostic probes
|
|
120
|
+
encode failure in their exit status under [Proof](references/implementation.md#proof); printing an exception
|
|
121
|
+
and returning 0 is not a passing check. Coordination CLIs keep their documented structured-verdict contracts.
|
|
122
|
+
Apply the [Acceptance criteria](#acceptance-criteria) contract below. Use the plan,
|
|
123
|
+
findings, reviews and CI artifacts as the records; produce an additional checklist or
|
|
124
|
+
evidence document only when the issue or repository requires it, deriving results from actual runs.
|
|
124
125
|
- **Delivery.** A dependent starts on its parent's finished code. Stack its PR on the parent's (a GitHub-native
|
|
125
126
|
stack) under a live Mergify queue; chain it when the merge keeps commits; else open it once the parent merges. Live
|
|
126
127
|
steps are only the read-only warehouse canary (never blocks) and the isolated, run-owned resources
|
|
127
128
|
[preflight.md](references/preflight.md#never-block-on-the-human) allows.
|
|
128
129
|
|
|
130
|
+
## Acceptance criteria
|
|
131
|
+
|
|
132
|
+
Treat Acceptance Criteria, other issue requirements and later corrections as the contract.
|
|
133
|
+
Reuse or implement automated tests at the lowest sufficient level. Workers deliver behavior
|
|
134
|
+
and tests, run focused local checks, and return with CI pending. CI qualifies the candidate;
|
|
135
|
+
the coordinator verifies results. Human or hardware criteria stay pending until their step passes.
|
|
136
|
+
|
|
137
|
+
At preflight, record coverage, missing automation, the CI lane and manual remainder in
|
|
138
|
+
findings. Reuse sufficient tests; one may cover several criteria. Acceptance-focused issues
|
|
139
|
+
are supported: automate criteria, fix in-scope defects and qualify results in CI.
|
|
140
|
+
Tests added or code merged alone do not satisfy acceptance.
|
|
141
|
+
|
|
142
|
+
Defer acceptance only when the issue or agreed policy assigns it to a later gate; link
|
|
143
|
+
its owner. An issue requesting the campaign remains incomplete until its criteria pass.
|
|
144
|
+
Preserve required checks and merge rules. Surface missing execution or enforcement;
|
|
145
|
+
change neither branch protection nor acceptance scope without authorization.
|
|
146
|
+
|
|
129
147
|
## Delivery progress
|
|
130
148
|
|
|
131
149
|
Before briefing or continuing a unit, read [delivery-progress.md](references/delivery-progress.md).
|
|
@@ -169,7 +187,8 @@ efforts are run metadata, never a question.
|
|
|
169
187
|
### 2. Implement and open the PR
|
|
170
188
|
|
|
171
189
|
Give each unit a branch, its prepared workspace, and an implementer with its findings entry
|
|
172
|
-
and parents' contracts;
|
|
190
|
+
and parents' contracts; retain its [implementation owner](references/implementation.md#implementation-owner)
|
|
191
|
+
through review/CI fixes, separately from its active worker slot. State outcome and validation, not method. Refill
|
|
173
192
|
slots at once. At a unit's first coherent commit its PR opens as a draft, so CI
|
|
174
193
|
starts and the work is safe; later work goes to the same PR (in a Mergify stack
|
|
175
194
|
repository, amend the one commit); review starts when its code is done
|
|
@@ -178,13 +197,13 @@ the unit's own PR branch need no approval.
|
|
|
178
197
|
|
|
179
198
|
### 3. Review
|
|
180
199
|
|
|
181
|
-
Spawn one `better-review` reviewer once the unit's code is done, unless a
|
|
200
|
+
Spawn one fresh `better-review` reviewer once the unit's code is done, unless a
|
|
182
201
|
trusted complete result for that HEAD is posted on the PR; it runs alongside
|
|
183
202
|
CI. From round 2, carry a HEAD that follows a pass, else pick the tier: a
|
|
184
203
|
carry or skip writes its record and spawns no reviewer ([review.md](references/review.md#tier-then-verdict)).
|
|
185
204
|
Merge [GitHub reviews](references/review.md#github-reviews) into its result,
|
|
186
205
|
run `review-verdict.mjs`, and follow the `verdict` it prints (exit 0; 2 only if it could not run): `pass`; `fix`, give the
|
|
187
|
-
`fixBrief` (P0/P1
|
|
206
|
+
`fixBrief` (P0/P1), its retained reproducers and any selected supporting P2 under [dropbox routing](references/dropbox.md#supporting-p2-work) to the implementation owner as its `action` says, then review
|
|
188
207
|
again; `review-again`; `handback`, defer the PR with its open findings; `wait`,
|
|
189
208
|
request the awaited re-review; `decide`, answer the `decide` file
|
|
190
209
|
([expire.md](references/expire.md#decide-before-you-defer)) and rerun with `--decision`.
|
|
@@ -216,6 +235,9 @@ that same `planRevision`.
|
|
|
216
235
|
|
|
217
236
|
## Done
|
|
218
237
|
|
|
238
|
+
Check each issue's [acceptance contract](#acceptance-criteria) against qualifying results;
|
|
239
|
+
record later-gate obligations. A merged PR does not close pending acceptance.
|
|
240
|
+
|
|
219
241
|
First [clean every delivered unit's environment](references/done.md#clean-before-handoff), then
|
|
220
242
|
[settle blocked units](references/done.md#settle-blocked-units). Every PR is reviewed, green on its exact HEAD, and merged (`autonomous`) or
|
|
221
243
|
handed back merge-ready (`supervised`). For a blocked unit, hand back it, its
|
|
@@ -7,6 +7,18 @@ the queue owner's watcher where applicable. Workers may make short status reads
|
|
|
7
7
|
fetch failed logs for diagnosis, but must not run `gh run watch`,
|
|
8
8
|
`gh pr checks --watch`, a delivery watcher, or create background monitoring.
|
|
9
9
|
|
|
10
|
+
Qualify the issue's Acceptance Criteria as well as required repository checks.
|
|
11
|
+
Verify that the mapped tests actually ran in the assigned lane against the intended
|
|
12
|
+
candidate and their assertions cover the claimed behavior. A skipped case, missing
|
|
13
|
+
acceptance job, or green unrelated check is not acceptance. Use CI results and artifacts
|
|
14
|
+
for any required checklist; retain manual or explicitly later-gate obligations with
|
|
15
|
+
their owner. Worker completion with CI pending is not issue acceptance. Queue checks
|
|
16
|
+
qualify the combined candidate; post-deploy checks qualify the deployed revision.
|
|
17
|
+
Require each result at its assigned stage: PR admission checks before enqueue,
|
|
18
|
+
queue acceptance before merge, and deployed acceptance after deployment or before
|
|
19
|
+
promotion as specified. Queue-only acceptance is pending at admission, not missing
|
|
20
|
+
PR CI; it cannot be required to pass before the queue candidate exists.
|
|
21
|
+
|
|
10
22
|
1. Watch the required checks for every pushed HEAD. Pushes to the unit's own
|
|
11
23
|
PR branch need no approval. Green means every required check ran and passed
|
|
12
24
|
on that HEAD: a check that never reported is missing, not passed. Example: a
|
|
@@ -105,7 +117,9 @@ provider shows that PR merged.
|
|
|
105
117
|
|
|
106
118
|
Clean that unit's workspace and resources, then finish it, in every scheduler
|
|
107
119
|
mode: `next-actions.mjs` prints `cleanup-workspace` until its cleanup settles.
|
|
108
|
-
First
|
|
120
|
+
First [release any session retention still held](implementation.md#settle-session-retention)
|
|
121
|
+
for it, even while other units remain active; a conversation launched without protection has
|
|
122
|
+
nothing to release. Then record the intent through the [checkpoint mechanism](task-plan.md#checkpoints) (`lifecycle.cleanup`
|
|
109
123
|
`{state: applying, headSha: <the unit's headSha>}`), then run:
|
|
110
124
|
|
|
111
125
|
```bash
|
|
@@ -13,6 +13,12 @@ units keep their own checkpoints and continue in parallel within actual resource
|
|
|
13
13
|
observation that would distinguish the remaining causes. Run the relevant host,
|
|
14
14
|
integration or device check before another broad acceptance cycle. After a correction,
|
|
15
15
|
run affected checks and the required delivery checks, not extra assurance work.
|
|
16
|
+
- **Keep the repair's contract intact.** Reproduce the reported input/state and check
|
|
17
|
+
the observable result the existing criteria require. Reuse sufficient checks; an added
|
|
18
|
+
regression establishes the condition that reaches the failure. If that operation exposes
|
|
19
|
+
another failure of the same contract, continue the repair while preserving earlier
|
|
20
|
+
assertions. Return when affected criteria and required local checks pass, or an existing
|
|
21
|
+
stop/handback condition applies. This adds no fixed journey or test layer.
|
|
16
22
|
- **Justify infrastructure before adding it.** State which existing criterion requires
|
|
17
23
|
it, why the current path cannot provide that proof, and the smallest alternative.
|
|
18
24
|
Record the choice in the existing decision/note, within current authorization. Routine
|
|
@@ -39,6 +45,13 @@ issue or automatic scheduler gate. They do not waive required validation.
|
|
|
39
45
|
|
|
40
46
|
## Every brief contains
|
|
41
47
|
|
|
48
|
+
Use the full checklist for a fresh or replacement worker. For a retained conversation,
|
|
49
|
+
send the new feedback, current checkpoint, latest failure/fix brief and local evidence,
|
|
50
|
+
current standing orders and changed decisions, affected skill/proof pointers, and new
|
|
51
|
+
result path. Re-read the saved source/criteria after context loss; do not resend the original
|
|
52
|
+
role or whole assignment already in that session. This shorter continuation keeps the same
|
|
53
|
+
acceptance bar, launch-authority rules and history; it is not a new setup or proof campaign.
|
|
54
|
+
|
|
42
55
|
- the source and criteria, as a file already in the run directory
|
|
43
56
|
- the plan's `standingOrders`, verbatim, and the decisions that answer this unit's questions
|
|
44
57
|
- absolute run, workspace, and findings paths; for implementers, the unit's
|
|
@@ -46,11 +59,16 @@ issue or automatic scheduler gate. They do not waive required validation.
|
|
|
46
59
|
- model id, effort, and a required read-back
|
|
47
60
|
- an absolute skill path when the stage invokes a leaf skill; for validating, the unit's `proof.suite` `skill` (read it first) and `local`, when set
|
|
48
61
|
- the outcome and validation, with no prescribed method or evidence format
|
|
62
|
+
- the Acceptance Criteria mapping: existing or missing tests, qualifying CI lane,
|
|
63
|
+
and manual or explicitly later-gate obligations; include any issue-required checklist
|
|
49
64
|
- the [immediate acceptance checkpoint](#delivery-progress), existing baseline (or none),
|
|
50
65
|
and, for a continuation, the last result, remaining uncertainty and next distinguishing
|
|
51
66
|
test; retain the same checkpoint/history when changing workers
|
|
52
67
|
- for a fix after a failed check or case, the last `failure` block (case, step, error,
|
|
53
68
|
evidence path) verbatim, so the worker starts from the cause
|
|
69
|
+
- for review fixes, the generated brief's `reproducers` with their original triggers,
|
|
70
|
+
source rounds/HEADs, command, workspace-relative cwd, expected result and retained evidence;
|
|
71
|
+
run them against the candidate, rather than replaying in the reviewer's old checkout
|
|
54
72
|
- a concise worker-specific contract: business outcome and context, full acceptance,
|
|
55
73
|
security and quality requirements, and principles relevant to the assigned work; a
|
|
56
74
|
reviewer gets review.md's two rules instead. Do not forward coordinator scheduling
|
|
@@ -15,6 +15,13 @@ nothing is left to settle.
|
|
|
15
15
|
|
|
16
16
|
## Clean before handoff
|
|
17
17
|
|
|
18
|
+
[Release any session retention still held](implementation.md#settle-session-retention) for each
|
|
19
|
+
unit before normal workspace cleanup; this also applies at each merge while other units
|
|
20
|
+
continue. A launch that asked for none has nothing to release, and an acknowledgement is
|
|
21
|
+
recorded only where protection was actually held. Record any
|
|
22
|
+
resource intentionally kept under the existing lifecycle; never claim it was cleaned
|
|
23
|
+
because its worker exited.
|
|
24
|
+
|
|
18
25
|
Clean every delivered unit's workspace and resources before the report, in every
|
|
19
26
|
scheduler mode ([workspaces.md](workspaces.md#cleanup-after-delivery-before-finish)).
|
|
20
27
|
Its `lifecycle.cleanup` is `complete`, or `retained` with the current `headSha`
|
|
@@ -24,6 +31,11 @@ cancelled, pending, or merge-ready handed-back unit that keeps its environment.
|
|
|
24
31
|
|
|
25
32
|
## Close the run
|
|
26
33
|
|
|
34
|
+
Before closing, distinguish run completion from issue acceptance. Verify the issue's
|
|
35
|
+
Acceptance Criteria against qualifying CI results and required manual results. Keep
|
|
36
|
+
an issue open when its own acceptance remains pending, even if its automation PR
|
|
37
|
+
merged or its human-only remainder was excluded. Link that obligation in the report.
|
|
38
|
+
|
|
27
39
|
After the report ([SKILL.md](../SKILL.md#done)):
|
|
28
40
|
|
|
29
41
|
The run is done when nothing it can do is left: every unit landed,
|
|
@@ -8,8 +8,9 @@ Workers report problems; you route them.
|
|
|
8
8
|
|
|
9
9
|
## Route every problem
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Skip P3: no repair, dropbox entry or follow-up issue. For the remaining problems,
|
|
12
|
+
ask these in order; the first yes decides. A P2 label alone does not decide whether
|
|
13
|
+
work supports this delivery.
|
|
13
14
|
|
|
14
15
|
1. **Could it hurt someone now?** Security, auth, tenancy, money, data loss,
|
|
15
16
|
a failure users see, a flake that knocks other PRs out of the queue, or a
|
|
@@ -19,15 +20,17 @@ labels miss in both directions.
|
|
|
19
20
|
Example: a reviewer notes, as P2, that a provider webhook amount is parsed
|
|
20
21
|
without a check, "unreachable today". The input is external: file it now.
|
|
21
22
|
2. **Does it stop this unit from being finished or proven?** Small and in the
|
|
22
|
-
unit's files: fix it in the unit
|
|
23
|
+
unit's files: fix it in the unit; for P2, first record the explicit selection
|
|
24
|
+
under [Supporting P2 work](#supporting-p2-work). A question: take its automatic answer
|
|
23
25
|
([preflight.md](preflight.md#never-block-on-the-human)); defer it only when it is human-only. Anything else outside the unit's files, code or
|
|
24
26
|
environment: an [infrastructure failure](expire.md#infrastructure-failures).
|
|
25
27
|
Example: the shared test helper the unit's tests need is broken on the
|
|
26
28
|
target: an infrastructure failure.
|
|
27
29
|
3. **Did this unit cause it?** Fix it in the unit, however small; it costs
|
|
28
30
|
less now than as an issue. `dropbox.mjs check` decides (`inDiff` true inside the
|
|
29
|
-
unit's diff), and `add` refuses an implementer entry there.
|
|
30
|
-
|
|
31
|
+
unit's diff), and `add` refuses an implementer entry there. For a reviewer's P2,
|
|
32
|
+
`inDiff` records location, not repair authorization: apply the supporting-work
|
|
33
|
+
test below; otherwise keep it in the dropbox.
|
|
31
34
|
4. **Would fixing it change nothing** for behavior or for a reader? A style
|
|
32
35
|
nit, a smell no documented rule names, hardening the
|
|
33
36
|
code shows cannot trigger (internal input only, and this unit adds no new
|
|
@@ -44,6 +47,28 @@ labels miss in both directions.
|
|
|
44
47
|
Record a blocking relation with `--blocks <#n | owner/name#n | issue URL>`:
|
|
45
48
|
the posted issue says `Blocks #n` so a later run takes it first.
|
|
46
49
|
|
|
50
|
+
## Supporting P2 work
|
|
51
|
+
|
|
52
|
+
Select a P2 for the current unit only when it directly enables an existing
|
|
53
|
+
authorized outcome, agreed verification or delivery. For example, include the
|
|
54
|
+
unit's new regression module in its existing CI test list. Nearby cleanup,
|
|
55
|
+
optional hardening and unrelated performance work stay deferred, even inside the diff.
|
|
56
|
+
|
|
57
|
+
Record the finding/dropbox id, existing criterion and concrete reason in the plan's
|
|
58
|
+
`decisions`, and include that selection in the implementer or fix brief. Keep P2
|
|
59
|
+
nonblocking: its severity alone changes no verdict, fix counter or acceptance bar.
|
|
60
|
+
Use the existing implementation or fix work when available. When review already
|
|
61
|
+
passed, return the unit to implementation for the selected repair while retaining
|
|
62
|
+
its passed review. After the repair push, use the existing post-pass carry and final
|
|
63
|
+
CI rules; it does not reopen the blocking review loop.
|
|
64
|
+
|
|
65
|
+
After the selected work is verified, record its SHA and check result in the unit's
|
|
66
|
+
existing result/note and mark the dropbox entry with `--drop "fixed on <sha>; <check
|
|
67
|
+
and result>"` so it is not filed as unfinished work. Leave the original review
|
|
68
|
+
unchanged. If the work is not completed, retain its pending entry and report it
|
|
69
|
+
truthfully. Shared-environment changes and changes to required checks keep their
|
|
70
|
+
existing authorization boundaries.
|
|
71
|
+
|
|
47
72
|
## Commands
|
|
48
73
|
|
|
49
74
|
```bash
|
|
@@ -56,7 +81,7 @@ node $D add --dropbox <run>/dropbox.json --unit <id> --source implementer \
|
|
|
56
81
|
--summary "<one line: what is wrong>" [--pr <url>] [--blocks <issue>] \
|
|
57
82
|
--git <workspace> --base <review base>
|
|
58
83
|
# coordinator, after every review round, before the verdict: adds every P2 (P3 is skipped),
|
|
59
|
-
# then route each new entry
|
|
84
|
+
# then route each new entry, including any explicitly selected supporting work:
|
|
60
85
|
node $D from-review --dropbox <run>/dropbox.json --review <run>/reviews/<unit>-r<N>.json \
|
|
61
86
|
--pr <url> --git <unit review clone> --base <review base>
|
|
62
87
|
node $D post --dropbox <run>/dropbox.json --repo <owner/name> --ids D3 # 1: file now
|
|
@@ -235,15 +235,18 @@ missing, or names a step without a reason.
|
|
|
235
235
|
| Review: `review-verdict.mjs` verdict `fix` | Follow its `action` ([review.md](review.md#fix-loop)). |
|
|
236
236
|
| Review: `review-verdict.mjs` verdict `handback` (`not-converging`) | Stop fixing; mark the unit `blocked` (`blockedReason: review-handback`) and defer the PR with its open findings on its issue. |
|
|
237
237
|
| Review: `review-verdict.mjs` verdict `decide`, or a worker's `decisionNeeded` | [Decide before you defer](#decide-before-you-defer). |
|
|
238
|
-
| CI: a fix cycle without progress | Treat the failing check as the failing test: the
|
|
238
|
+
| CI: a fix cycle without progress | Treat the failing check as the failing test: continue the implementation owner with the required escalation fill and that check as its only target, using the [continuation/replacement selection](task-plan.md#worker-selection-on-resume) rather than fabricating a pin. 2 cycles in a row without progress: `blocked` (`blockedReason: retry-ci`), deferred on its issue. |
|
|
239
239
|
| Too big for one attempt | Resume in the kept workspace while each resume makes [progress](#retry-by-failure-mode); after 2 in a row without verified checkpoint/failure-count progress, draft a split in `<run>/splits/`, file it into the spec's tree, and run the slices the sync adds ([preflight.md](preflight.md#put-every-filed-issue-in-the-tree)). |
|
|
240
240
|
| A required proof the unit has no environment for yet | The unit builds it; see [Proof stays with its unit](#proof-stays-with-its-unit). |
|
|
241
241
|
| Dependency | Fix the edge; resume when runnable. |
|
|
242
242
|
| A capability the unit needs is missing and no unit builds it (a shared driver, fixture, or hook) | Build it inside the first unit that needs it; units that need it later get `dependsOn` on that unit. Only when that puts the unit past the size check's line limit, file it as its own issue beside them, with `blocked_by` on the units that use it, never on their parent issue. Example: three proof units each need a device-state reader: the first builds it, the other two depend on the first. |
|
|
243
243
|
| [Human-only](#human-only) blocker | Take its automatic answer ([preflight.md](preflight.md#never-block-on-the-human)); when that defers it, mark `blocked` (`blockedReason: human-decision`, its `humanItem` and `humanNeed`), keep the work, and record what is needed on its owning issue; never ship part of the unit. |
|
|
244
244
|
|
|
245
|
-
Continue in the kept workspace with the
|
|
246
|
-
|
|
245
|
+
Continue the retained owner in the kept workspace with the current checkpoint, findings
|
|
246
|
+
and failure evidence. If its process state or required selection prevents continuation,
|
|
247
|
+
use an explicit replacement under the [owner contract](implementation.md#implementation-owner),
|
|
248
|
+
keeping its old session reference for settlement; replacement briefs use those local facts
|
|
249
|
+
rather than an old transcript. Keep the response limits and history above. Record a queue stall with the
|
|
247
250
|
provider pending as a wait and watch again. End the run only when
|
|
248
251
|
`next-actions.mjs`, invoked with [live capacity](implementation.md#live-capacity), prints `finish`, and never claim the spec complete.
|
|
249
252
|
|
|
@@ -125,6 +125,12 @@ The coordinator and any delegated explorer use these rules:
|
|
|
125
125
|
5. **`layers`:** the parts changed (`backend`, `web`, `android`, `shared`,
|
|
126
126
|
`migration`).
|
|
127
127
|
6. **`proof`:**
|
|
128
|
+
Map the issue's Acceptance Criteria and other binding requirements to existing
|
|
129
|
+
tests, missing automation, the qualifying CI lane, and any manual remainder in
|
|
130
|
+
the existing notes/proof fields. Preserve criterion identifiers when supplied;
|
|
131
|
+
no new ledger or schema is required. For acceptance-focused issues, include
|
|
132
|
+
implementing the cases and connecting their execution to CI in the unit's scope.
|
|
133
|
+
|
|
128
134
|
- `level`: the weakest the run can reach that shows the behaviors work:
|
|
129
135
|
`unit`, `database`, `browser`, or `emulator`.
|
|
130
136
|
- `suite` (`browser`/`emulator` only): the repository's end-to-end suite
|
|
@@ -157,9 +163,10 @@ The coordinator and any delegated explorer use these rules:
|
|
|
157
163
|
Example: a campaign's 25 scenario groups each cover one feature issue; 20
|
|
158
164
|
share "owned emulator, database, and fixture pool" (900 lines).
|
|
159
165
|
|
|
160
|
-
`level`
|
|
161
|
-
|
|
162
|
-
|
|
166
|
+
`level` selects the test depth for automated acceptance. Put integrated acceptance
|
|
167
|
+
in `handback`, naming its gate and owner, only when the issue or agreed repository
|
|
168
|
+
policy assigns it to a later gate. A cross-feature or device journey is not deferred
|
|
169
|
+
merely because it is expensive; an issue requesting that acceptance still owes it.
|
|
163
170
|
7. **`estimatedLines`: your honest estimate of changed source and test
|
|
164
171
|
lines,** excluding generated files and docs, including every missing
|
|
165
172
|
prerequisite. Do not pad it: the size check scales it by 1.3.
|