Coding harness
Piper's coding-harness programme: 27 components of a coding agent, each with a paper and a spec she wrote in September, and the benches and harness arms built to measure them. The rule was paper → spec → build → A/B: nothing is kept unless a pre-registered comparison on hidden tests says it helps. It got as far as the measurement rig, the workflow driver, a proven sandbox for the harness's own runs, a security plane in observe mode on her real workers, and one adopted change, a three-session vote (+11 points on dev, confirmed on held-out), now unconfirmed: a 10-18 audit found the bench tools could reach the internet and the answer store (h1-v41 leaked in 61% of its draws), and the first boxed re-run on 10-19 gave h1-v41 21/38 against h0b's 18/38 per seed, +7.5 points with CI [−3.1, +18.0], at about nine times the cost per task: the pre-registered rule says undetermined. Both arms ran the same model: h0b names deepseek-v4-flash, which is only an alias of deepseek-flash (DeepSeek retired V4 Flash on 09-10; both ids now return the same model, V4.1-Flash-1017 since 10-17, checked 10-19). A 10-19 note here said otherwise and was wrong. The vote does filter its pool on the graded PASS_TO_PASS list, so the +7.5 is not gold-free. A gold-free re-test (h1c-v41 against h0-v41) was pre-flighted on 10-19 and came back NO-GO: its nearby-test check was unusable on all 5 tasks, so the mechanism never ran. It was on hold from 09-27 until 10-10, when iterative repair (14) was built and given its first A/B. That run did not count (a parser bug and a gold-list verifier). The fixed re-run on 10-11 (h14b against h0b) is not kept: +5 cells on dev but −2 on the regression set, and the repair loop started in only 1 of 68 cells, so seeded repair is still effectively unmeasured (see 14). On 10-12 Claude took over 14 with a reproduction-script trigger. It is precise (0 false fires) and fixed every failure it caught, but on a harder set the first draws almost never failed, so the paired run stopped as inconclusive. A 10-14 check on tasks rated 1-4 hours found the same: 5 of 6 solved on the first try. Component 14 is parked until there is a task source this model fails. Each page below says what is built, what is missing, an independent review, and how it is measured.
Shared copy: the operator's name is replaced with "the operator", and machines other than Firefly are named by their role. Nothing else is changed.
The 27 components 29
Piper's paper-and-spec series, one per component (plus 08a and 23a). Numbers follow her specs.
| # | Component | Reviewer read | Suite | Baseline | Latest | Change | Live use | Trend |
|---|---|---|---|---|---|---|---|---|
| 01 | Coding harness (REPAIR and primitives) | Plumbing built and proven neutral; the spec's design set aside | — | — | — | — | — | not scored |
| 02 | Tool selection and tool calling | One trigger built | — | — | — | — | — | not scored |
| 03 | Repository reconnaissance | Not started | — | — | — | — | — | not scored |
| 04 | Code and context retrieval | Not started; may be unnecessary | — | — | — | — | — | not scored |
| 05 | Issue and fault localization | Stub only; next on the plan (E1) | — | — | — | — | — | not scored |
| 06 | Dependency and impact analysis | Round 2; not started | — | — | — | — | — | not scored |
| 07 | Task decomposition and planning | Round 2; not started | — | — | — | — | — | not scored |
| 08 | Context construction | Not started | — | — | — | — | — | not scored |
| 08a | Context compaction | Not started; spec written for another product | — | — | — | — | — | not scored |
| 09 | Patch and code generation | Generation by sessions; gates built | — | — | — | — | — | not scored |
| 10 | Editing mechanism | Pi's editor, gated | — | — | — | — | — | not scored |
| 11 | Code execution | Built and proven | — | — | — | — | — | not scored |
| 12 | Runtime instrumentation and traces | Round 2; not started | — | — | — | — | — | not scored |
| 13 | Error interpretation and debugging | Not started | — | — | — | — | — | not scored |
| 14 | Iterative repair | Parked (10-14): the repro trigger works, but this model fails too few SWE-bench tasks to test repair (5 of 6 "1-4 hours" tasks solved first try) | — | — | — | — | — | not scored |
| 15 | Reflection after failure | Merged into 20; not started | — | — | — | — | — | not scored |
| 16 | Candidate generation and competing hypotheses | Unconfirmed since the boxed re-run (10-19) | — | — | — | — | — | not scored |
| 17 | Test execution | Core built; pytest only | — | — | — | — | — | not scored |
| 18 | Validation and patch acceptance | Two-part verdict built and trusted | — | — | — | — | — | not scored |
| 19 | Regression protection | Guard only | — | — | — | — | — | not scored |
| 20 | Episodic coding memory | Episodes recorded; nothing reads them | — | — | — | — | — | not scored |
| 21 | Multi-agent development | Deliberately deferred | — | — | — | — | — | not scored |
| 22 | Independent reviewer (critic) | Not started | — | — | — | — | — | not scored |
| 23 | Workflow and state machine | Round 1 graph built | — | — | — | — | — | not scored |
| 23a | Recovery-transition agent loop | Not as specified; three guards built for real failures | — | — | — | — | — | not scored |
| 24 | Execution sandbox | Harness runs and bench workers both fenced on Firefly | — | — | — | — | — | not scored |
| 25 | Permissions and least privilege | Table built; production observing | — | — | — | — | — | not scored |
| 26 | Agent security and prompt-injection resistance | Mechanisms tested; models not | — | — | — | — | — | not scored |
| 27 | Benchmarking and objective scoring | Built first, and it held | — | — | — | — | — | not scored |
Benches 6
What the harness is measured on.
| # | Bench | Reviewer read | Suite | Baseline | Latest | Change | Live use | Trend |
|---|---|---|---|---|---|---|---|---|
| B1 | SWE-bench Verified rig | Trustworthy and saturated | — | — | — | — | — | not scored |
| B2 | piperbench | Small; used for smoke only | — | — | — | — | — | not scored |
| B3 | Hostile corpus | All green; scope is the mechanisms | v1 | 1 run | 100 | — | — | |
| B4 | Coding holdout | At ceiling; useful only for regressions | v1 | 1 run | 100 | — | — | |
| B5 | Replay bench | The right yardstick for her own work | v1 | 1 run | 50 | — | — | |
| B6 | RSI loop graded set | Live and unsaturated | v1 | 1 run | 76.2 | — | — |
Harness arms 11
Each arm is one configuration run through the benches and compared with its parent.
| # | Arm | Reviewer read | Suite | Baseline | Latest | Change | Live use | Trend |
|---|---|---|---|---|---|---|---|---|
| A1 | baseline-flash | Control; numbers from the old model | v1 | 1 run | 78.3 | — | — | |
| A2 | h0 (plumbing) | Neutral, as intended | v3 +2 earlier | 1 run | 93 | — | — | |
| A3 | hg (gate bundle) | Gates cost nothing measurable | v1 | 1 run | 76 | ▼ -0.7 vs h0 | — | |
| A4 | h1 (three-session vote) | Adopted by rule on both pre-box sets; unconfirmed on boxed rows (10-19) | v3 +1 earlier | 1 run | 99 | ▲ +6 vs h0 | — | |
| A5 | h2p (repair prompt) | Registered, never run | — | — | — | — | — | not scored |
| A6 | picker-v41 (tests as selector) | Tested; the vote won | v2 | 1 run | 91.7 | — | — | |
| A7 | oracle_k (keep every patch) | Selection is nearly solved | — | — | — | — | — | not scored |
| A8 | Diversity probes (pk4–pk7) | No headroom to show anything | — | — | — | — | — | not scored |
| A9 | Worker gates in production | Observing cleanly | — | — | — | — | — | not scored |
| A10 | h14 (seeded retry) | Keep rule not met; the loop barely ran | — | — | — | — | — | not scored |
| A11 | h14b (seeded retry, scope verifier) | Not kept: regression −2; the loop ran once | — | — | — | — | — | not scored |