Piper · Coding harness
Log in

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.

Pages scored9/46
Suites retired3
Interventions0
Bench spend$11.43

How the tests work →

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.

"Reviewer read" is a one-line judgement, not a score, revised after each test round. The detail is on each component's page.

The 27 components 29

Piper's paper-and-spec series, one per component (plus 08a and 23a). Numbers follow her specs.

#ComponentReviewer readSuiteBaselineLatestChangeLive useTrend
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.

#BenchReviewer readSuiteBaselineLatestChangeLive useTrend
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.

#ArmReviewer readSuiteBaselineLatestChangeLive useTrend
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