@pilotspace/add 1.11.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +112 -0
- package/docs/02-the-flow.md +10 -0
- package/docs/03-step-1-specify.md +1 -1
- package/docs/04-step-2-scenarios.md +1 -1
- package/docs/08-step-6-verify.md +4 -2
- package/docs/09-the-loop.md +4 -0
- package/docs/11-governance.md +1 -1
- package/docs/14-foundation.md +6 -4
- package/docs/16-releasing.md +1 -1
- package/docs/appendix-c-glossary.md +10 -2
- package/package.json +1 -1
- package/skill/add/SKILL.md +7 -3
- package/skill/add/advisor.md +8 -1
- package/skill/add/design.md +19 -2
- package/skill/add/intake.md +16 -0
- package/skill/add/phases/5-build.md +1 -1
- package/skill/add/phases/6-verify.md +13 -14
- package/skill/add/phases/7-observe.md +11 -10
- package/skill/add/release.md +1 -1
- package/skill/add/run.md +20 -20
- package/skill/add/scope.md +1 -1
- package/skill/add/streams.md +7 -0
- package/tooling/add.py +688 -107
- package/tooling/add_engine/constants.py +1 -1
- package/tooling/add_engine/release.py +3 -3
- package/tooling/templates/DESIGN.md.tmpl +11 -0
- package/tooling/templates/TASK.fast.md.tmpl +2 -0
- package/tooling/templates/TASK.md.tmpl +15 -1
package/skill/add/run.md
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
# The dynamic run — executing a locked scope
|
|
2
2
|
|
|
3
|
-
Once a task's CONTRACT is frozen (phase 3), the scope is *locked
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**single human approval at the decision point** — the AI drafts the whole bundle, a human approves
|
|
8
|
-
it once. The engine stays judgment-free: this is a rubric, not `add.py`.
|
|
3
|
+
Once a task's CONTRACT is frozen (phase 3), the scope is *locked* — ADD's autonomy decision point:
|
|
4
|
+
below it code is disposable; above it nothing breaks. This rubric covers the **build->verify half,
|
|
5
|
+
executed as a dynamic, self-improving run**. The human-led **specification bundle** (Specify ·
|
|
6
|
+
Scenarios · Contract) still owns *direction*. The engine stays judgment-free: this is a rubric, not `add.py`.
|
|
9
7
|
|
|
10
8
|
## The specification bundle (v7)
|
|
11
9
|
|
|
@@ -14,19 +12,18 @@ bundle in one pass** — Spec, Scenarios, Contract, and failing Tests — and pr
|
|
|
14
12
|
The human gives **one approval, at the frozen contract** (the decision point).
|
|
15
13
|
|
|
16
14
|
Why one and not zero: the decision point **stays human**. The AI *drafts* the contract but never
|
|
17
|
-
*freezes its own* — a person approves the frozen shape before any auto-run touches code
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
*freezes its own* — a person approves the frozen shape before any auto-run touches code: that the
|
|
16
|
+
Spec captures real intent, the Scenarios cover the cases that matter, and the Contract shape is the
|
|
17
|
+
one to freeze. Reject any part → back to draft (backward-correction, principle 4, not failure). The
|
|
18
|
+
decision-point guide (`phases/3-contract.md`) carries the **freeze review checklist** — seven lines,
|
|
19
|
+
⚠-first.
|
|
22
20
|
|
|
23
21
|
**The lowest-confidence flag.** The AI presents the bundle **lowest-confidence first**: the
|
|
24
22
|
**1–2 points most likely to be wrong**, tagged by part
|
|
25
|
-
(`⚠ [spec|scenario|contract|test] … — because …; if wrong: …`)
|
|
26
|
-
assumption
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
gap is a CI checker's job, not prose.
|
|
23
|
+
(`⚠ [spec|scenario|contract|test] … — because …; if wrong: …`) — `because` names the §1
|
|
24
|
+
assumption behind the doubt, `if wrong` its cost. If nothing is materially uncertain, the AI still
|
|
25
|
+
names the single biggest risk — never a blank "none". This flag is honor-system: the lint cannot
|
|
26
|
+
force engagement — closing that gap is a CI checker's job, not prose.
|
|
30
27
|
|
|
31
28
|
## When the run begins — the scope-lock trigger
|
|
32
29
|
|
|
@@ -71,6 +68,7 @@ recorded pass is an explicit pass, not a skip).
|
|
|
71
68
|
- **Auto-PASS requires ALL of:** every test green; coverage not decreased; no test weakened and no
|
|
72
69
|
contract edited; loops dry; completeness-critic clean; and the deep check below.
|
|
73
70
|
- **The deep check (every gate, do not skim).** If the task produced code, record that every new symbol is referenced (wiring) and that no new dead/unused code was introduced. If it produced prose or non-code, record a semantic read. An unfilled deep check is a **shallow verify**, not an auto-PASS.
|
|
71
|
+
- **The recorded refute-read (under `auto`).** The earned-green refute-read (`6-verify.md`) is not just run — its **verdict is recorded** in §6 (`EARNED | NOT-EARNED`); `add.py audit` surfaces an unrecorded one as `refute_unrecorded` — one of three shape lints it lists (with `shallow_deep_check` + `risk_unset`) — and a human spot-audit is the backstop. NOT-EARNED routes to `add.py heal`, never an auto-PASS.
|
|
74
72
|
- **Always escalates to a human (never auto-passed):** any **security** finding (HARD-STOP, always);
|
|
75
73
|
a **concurrency**/timing risk the tests cannot exercise; an **architecture**/layering violation;
|
|
76
74
|
any failing test.
|
|
@@ -118,7 +116,9 @@ autonomy: manual | conservative | auto
|
|
|
118
116
|
```
|
|
119
117
|
|
|
120
118
|
- **auto (the default)** — the run may auto-PASS when evidence + residue checks are satisfied.
|
|
121
|
-
Security still always escalates
|
|
119
|
+
Security still always escalates — but only a finding the AI *surfaces*: a security issue the
|
|
120
|
+
reviewer misses is **invisible** to the engine, so under `auto` a human **spot-audit** is the
|
|
121
|
+
only backstop for a missed finding.
|
|
122
122
|
- **conservative** — the deliberate *lowering*: the run converges but STOPS at the verify gate.
|
|
123
123
|
- **manual** — the strict floor: the human owns the verify gate; the engine never auto-resolves.
|
|
124
124
|
|
|
@@ -138,7 +138,7 @@ in its header is not blocked by the v14 mechanical guard.
|
|
|
138
138
|
|
|
139
139
|
**Autonomy is earned by goal-clarity — the auto-ready goal.** A milestone goal is auto-ready
|
|
140
140
|
when **every exit criterion cites a verifier** — `(verify: <test | command | metric>)`.
|
|
141
|
-
`add.py check` raises
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
`add.py check` raises `goal_not_auto_ready` while criteria are uncited; `status` prints a
|
|
142
|
+
`goal-ready:` line. It **measures, never blocks** — the lint cannot prove the citation honest
|
|
143
|
+
(`(verify: it works)` passes); that judgment stays the human's.
|
|
144
144
|
</constraints>
|
package/skill/add/scope.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
| `change-request` | route to SPECIFY/CONTRACT of the affected task | 0 milestones |
|
|
12
12
|
| `split_required` | draft ALL N items as a batch in ONE pass | N milestones/tasks |
|
|
13
13
|
|
|
14
|
-
**Confirm before create is the
|
|
14
|
+
**Confirm before create is the convention.** "One pass" means one drafting pass, NOT auto-creation — nothing is written until the human confirms; enforced only by the opt-in `--await-confirm` (below).
|
|
15
15
|
|
|
16
16
|
**Confirm the milestone before detailing tasks.** `new-milestone <slug> --await-confirm` seeds it *unconfirmed* — `new-task` is HELD (`milestone_unconfirmed`) until you show the filled `MILESTONE.md`, get the human's go, and run `milestone-confirm <slug>`. Keeps you from digging into task §0–§5 before the parent is agreed. (Omit the flag: no gate.)
|
|
17
17
|
|
package/skill/add/streams.md
CHANGED
|
@@ -179,6 +179,13 @@ Score confidence (0-1) on Completeness · Clarity · Practicality · Optimizatio
|
|
|
179
179
|
Self-Eval; if any < 0.9, refine before returning.
|
|
180
180
|
</persona>
|
|
181
181
|
|
|
182
|
+
<strategy>
|
|
183
|
+
The task's §5 plan — the Strategy (ordered batches) order and the Known-problem fixes — is
|
|
184
|
+
your PREFERRED starting path, not a hard rule. Improve on it when a better strategy emerges
|
|
185
|
+
as you build; on done, report the strategy you ACTUALLY used so the orchestrator can update
|
|
186
|
+
§5 for the audit trail.
|
|
187
|
+
</strategy>
|
|
188
|
+
|
|
182
189
|
<touch_boundary> <!-- from run.md; the worker's contract, identical on every runner -->
|
|
183
190
|
MAY: rewrite code in src/ · drive tests green WITHOUT weakening them · gather verify evidence.
|
|
184
191
|
MUST NOT: edit the frozen CONTRACT or locked scope · weaken/delete/skip any test ·
|