@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/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*. That lock is ADD's autonomy
4
- decision point — below it code is disposable; above it nothing breaks. This rubric covers the
5
- **build->verify half, executed as a dynamic, self-improving run**. The human-led **specification
6
- bundle** (Specify · Scenarios · Contract) still owns *direction*, but v7 compresses it to a
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. What the
18
- human approves: that the Spec captures real intent, the Scenarios cover the cases that matter, and
19
- the Contract shape is the one to freeze. Reject any part and the bundle goes back to draft
20
- backward-correction (principle 4), not failure. The decision-point guide (`phases/3-contract.md`) carries the **freeze review checklist** —
21
- seven lines that walk the human through exactly this, ⚠-first.
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: …`). The `because` names the §1
26
- assumption that makes it uncertain; the `if wrong` names what it costs if that assumption is off.
27
- If nothing is materially uncertain, the AI still names the single biggest risk — never a blank "none".
28
- Raising this flag is honor-system: the lint cannot force the AI to engage with it — closing that
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 a `goal_not_auto_ready` WARN while criteria are uncited, and `status`
142
- prints a `goal-ready:` line every session. It **measures, never blocks**. The lint cannot prove
143
- the citation is honest — `(verify: it works)` passes the check — that judgment stays the human's.
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>
@@ -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 invariant.** "One pass" means one drafting pass, NOT auto-creation — nothing is written until the human confirms.
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
 
@@ -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 ·