pi-notes 0.1.0 → 0.1.1
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/BENCHMARK.md +426 -0
- package/README.md +4 -0
- package/package.json +2 -1
package/BENCHMARK.md
ADDED
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
# Exploratory Notes A/B benchmark
|
|
2
|
+
|
|
3
|
+
This document reports an exploratory long-horizon evaluation of `pi-notes`.
|
|
4
|
+
It is intentionally more conservative than a product benchmark: the run found
|
|
5
|
+
useful case evidence, but several harness and experimental-design defects mean
|
|
6
|
+
that it does **not** identify a causal productivity or quality effect.
|
|
7
|
+
|
|
8
|
+
## Executive summary
|
|
9
|
+
|
|
10
|
+
- Harness: `harness-1789204569100-83132b78`
|
|
11
|
+
- Run window: 2026-09-12 through 2026-09-13
|
|
12
|
+
- Model: local `qwen38-main/qwen3.8-27b`, medium thinking
|
|
13
|
+
- Scenarios: 12, each run once without Notes and once with Notes
|
|
14
|
+
- Arms: 24 total; 23 exited normally and one Notes-present arm timed out
|
|
15
|
+
- Completed pairs: 11; one pair was censored by the timeout
|
|
16
|
+
- Primary conclusion: **hypothesis-generating evidence only**
|
|
17
|
+
|
|
18
|
+
Across the 11 pairs in which both arms completed, Notes-present was faster in
|
|
19
|
+
7 and slower in 4. The mean paired duration difference was -8.81 minutes and
|
|
20
|
+
the median was -17.38 minutes. Those pooled figures combine two repositories,
|
|
21
|
+
different implementations, and conditionally comparable HostelHawk runs; they
|
|
22
|
+
must not be interpreted as an average Notes treatment effect.
|
|
23
|
+
|
|
24
|
+
A read-only audit of the retained changes judged Notes-present stronger in six
|
|
25
|
+
scenarios, Notes-absent stronger in two, mixed or inconclusive in three, and
|
|
26
|
+
the timed-out Notes-present scenario unfinished. This audit was not blinded,
|
|
27
|
+
did not execute an independent acceptance suite, and is separate from the
|
|
28
|
+
telemetry results.
|
|
29
|
+
|
|
30
|
+
The benchmark did establish several actionable facts:
|
|
31
|
+
|
|
32
|
+
1. Notes was present and active only in the intended arm and was used in every
|
|
33
|
+
Notes-present scenario.
|
|
34
|
+
2. Agents executed `checkpoint_notes` 55 times: 38 checkpoints committed and
|
|
35
|
+
17 calls were rejected for invalid payloads.
|
|
36
|
+
3. Fifty provider generations, 2.1% of Notes-present requests, contained only
|
|
37
|
+
checkpoint work.
|
|
38
|
+
4. All 41 observed compactions succeeded. Notes-present did not show lower
|
|
39
|
+
repetition or post-compaction rediscovery in this single-run sample.
|
|
40
|
+
5. The current report pairing, dirty-start detection, verification
|
|
41
|
+
classification, and cache telemetry all require fixes before a controlled
|
|
42
|
+
rerun.
|
|
43
|
+
|
|
44
|
+
## Research question
|
|
45
|
+
|
|
46
|
+
The evaluation asked whether a compact, session-local durable handoff helps a
|
|
47
|
+
local model complete long engineering tasks more efficiently and reliably,
|
|
48
|
+
especially after compaction or a late change in requirements.
|
|
49
|
+
|
|
50
|
+
The intervention was the Notes tool surface:
|
|
51
|
+
|
|
52
|
+
- **Notes-absent:** `pi-notes` was omitted entirely. The arm did not use
|
|
53
|
+
`/notes off`, because that would leave the package and its policy in context.
|
|
54
|
+
- **Notes-present:** `pi-notes` was loaded and active, including
|
|
55
|
+
`checkpoint_notes` and its static policy.
|
|
56
|
+
|
|
57
|
+
Both arms otherwise used the same scenario prompt, model, thinking level,
|
|
58
|
+
compaction fingerprint, target commit, and local-only execution policy.
|
|
59
|
+
|
|
60
|
+
## Benchmark design
|
|
61
|
+
|
|
62
|
+
Eight scenarios targeted the Records Dashboard baseline
|
|
63
|
+
`696115bf11aaa58dd5a69e417d968bf778815c16`. Four targeted the HostelHawk
|
|
64
|
+
baseline `615448114a0a951b349bbdf1a3b89cae2fabb05c`.
|
|
65
|
+
|
|
66
|
+
The harness created a detached worktree and fresh Pi session for each arm. It
|
|
67
|
+
ran all arms sequentially, always Notes-absent before Notes-present, with a
|
|
68
|
+
three-hour execution timeout. The recorder captured bounded, sanitized events
|
|
69
|
+
for requests, tools, verification-like commands, checkpoint activity,
|
|
70
|
+
compaction, and token usage. Raw session transcripts and private reasoning are
|
|
71
|
+
not part of this report.
|
|
72
|
+
|
|
73
|
+
The 12 scenarios exercised:
|
|
74
|
+
|
|
75
|
+
- durable CRUD workflows and exports;
|
|
76
|
+
- refresh, retry, lifecycle, and operator-control behavior;
|
|
77
|
+
- recorded-document and provenance workflows;
|
|
78
|
+
- architecture investigation and late requirement changes;
|
|
79
|
+
- failure recovery; and
|
|
80
|
+
- implementation followed by independent review and remediation.
|
|
81
|
+
|
|
82
|
+
## Evidence tiers
|
|
83
|
+
|
|
84
|
+
The report keeps four kinds of evidence separate:
|
|
85
|
+
|
|
86
|
+
1. **Run validity:** matching configuration, clean or conditional start,
|
|
87
|
+
complete shutdown, timeout, and recorder integrity.
|
|
88
|
+
2. **Efficiency telemetry:** wall time, requests, tools, errors, and tokens.
|
|
89
|
+
3. **Mechanism telemetry:** checkpointing, compaction, repetition, and
|
|
90
|
+
rediscovery.
|
|
91
|
+
4. **Implementation evidence:** retained diff, requirement coverage, tests,
|
|
92
|
+
documentation, and final verification claims.
|
|
93
|
+
|
|
94
|
+
Only the first three are machine-derived. Implementation verdicts are
|
|
95
|
+
read-only artifact judgments and are not independent acceptance results.
|
|
96
|
+
|
|
97
|
+
## Run disposition
|
|
98
|
+
|
|
99
|
+
| Cohort | Pairs | Disposition |
|
|
100
|
+
| --- | ---: | --- |
|
|
101
|
+
| Clean Records | 7 | Both arms completed with clean starts |
|
|
102
|
+
| Records provenance monitor | 1 | Notes-present timed out at three hours |
|
|
103
|
+
| HostelHawk | 4 | Both arms completed; automated reports excluded them for `dirty-start` |
|
|
104
|
+
|
|
105
|
+
Both source checkouts were recorded as `sourceDirty=true`, which means their
|
|
106
|
+
main working directories contained uncommitted files. Those files were not
|
|
107
|
+
copied into the detached evaluation worktrees. The separate per-run
|
|
108
|
+
`dirtyStart` field was false for every Records arm and true for every
|
|
109
|
+
HostelHawk arm.
|
|
110
|
+
|
|
111
|
+
The HostelHawk `dirtyStart` exclusion is likely a harness artifact. The harness
|
|
112
|
+
created an untracked `node_modules` symlink before the recorder ran
|
|
113
|
+
`git status`. HostelHawk ignores `node_modules/` directories but not the bare
|
|
114
|
+
symlink, so all eight HostelHawk arms received `dirtyStart=true`. Both arms of
|
|
115
|
+
every pair still used the same commit and task hash.
|
|
116
|
+
|
|
117
|
+
For that reason, HostelHawk is manually comparable as conditional evidence,
|
|
118
|
+
but it is reported separately from the clean Records cohort.
|
|
119
|
+
|
|
120
|
+
No arm emitted the recorder's `goal_progress({ status: "done" })` completion
|
|
121
|
+
signal. That signal is optional and observational; its absence is not evidence
|
|
122
|
+
that all 24 implementations failed.
|
|
123
|
+
|
|
124
|
+
## Efficiency results
|
|
125
|
+
|
|
126
|
+
All deltas below are Notes-present minus Notes-absent. Negative time, request,
|
|
127
|
+
tool, and token deltas indicate less work in the Notes-present trajectory.
|
|
128
|
+
|
|
129
|
+
### Clean Records cohort
|
|
130
|
+
|
|
131
|
+
| Scenario | Duration | Turns | Tools | Tool errors |
|
|
132
|
+
| --- | ---: | ---: | ---: | ---: |
|
|
133
|
+
| Saved due-diligence case file | -17.38 min | -3 | -15 | 0 |
|
|
134
|
+
| County-record refresh | -25.31 min | -83 | -60 | -11 |
|
|
135
|
+
| Recorded-document search | +3.21 min | -4 | -13 | -3 |
|
|
136
|
+
| Owner-request lifecycle | -28.29 min | -1 | +12 | +8 |
|
|
137
|
+
| Agent-task operations | -33.96 min | -89 | -65 | -2 |
|
|
138
|
+
| Screening comparison and retry | -7.04 min | +48 | +40 | +3 |
|
|
139
|
+
| Investigation bundle export | +24.18 min | +18 | +32 | +10 |
|
|
140
|
+
| **Mean paired delta** | **-12.09 min** | **-16.29** | **-9.86** | **+0.71** |
|
|
141
|
+
| **Median paired delta** | **-17.38 min** | **-3** | **-13** | **0** |
|
|
142
|
+
|
|
143
|
+
Notes-present was faster in five of seven clean completed pairs. Mean input
|
|
144
|
+
tokens fell by 1.752 million and mean output tokens by 13,224 per pair. These
|
|
145
|
+
means are sensitive to individual scenarios: agent-task operations alone
|
|
146
|
+
contributed an 11.407 million input-token reduction.
|
|
147
|
+
|
|
148
|
+
### Timed-out Records pair
|
|
149
|
+
|
|
150
|
+
The Notes-present provenance-monitor arm reached the fixed three-hour limit
|
|
151
|
+
and was terminated by the harness with exit code 143. It ended without a
|
|
152
|
+
normal recorder shutdown or final report.
|
|
153
|
+
|
|
154
|
+
Before termination it had made 321 provider requests and 349 tool calls,
|
|
155
|
+
compared with 183 requests and 212 tools in Notes-absent. It consumed 32.327
|
|
156
|
+
million input tokens versus 18.313 million. This is a reliability outcome and
|
|
157
|
+
must not be dropped or converted into a completed duration delta.
|
|
158
|
+
|
|
159
|
+
### Conditional HostelHawk cohort
|
|
160
|
+
|
|
161
|
+
| Scenario | Duration | Turns | Tools | Tool errors |
|
|
162
|
+
| --- | ---: | ---: | ---: | ---: |
|
|
163
|
+
| Multi-phase architecture investigation | +9.87 min | +11 | +12 | +3 |
|
|
164
|
+
| Late requirement change | -89.38 min | -75 | -89 | +2 |
|
|
165
|
+
| Failure-recovery hardening | -33.43 min | -90 | -85 | -2 |
|
|
166
|
+
| Implementation review and remediation | +100.63 min | +119 | +130 | +31 |
|
|
167
|
+
| **Mean paired delta** | **-3.08 min** | **-8.75** | **-8.00** | **+8.50** |
|
|
168
|
+
| **Median paired delta** | **-11.78 min** | **-32** | **-36.50** | **+2.50** |
|
|
169
|
+
|
|
170
|
+
This cohort is dominated by opposing outliers. Removing the implementation
|
|
171
|
+
review changes the mean duration delta from -3.08 to -37.65 minutes. The late
|
|
172
|
+
requirement run was much faster with Notes but appears to have traded some
|
|
173
|
+
original-scope completeness for deeper compatibility work. The implementation
|
|
174
|
+
review delivered broader remediation with Notes but at 3.36 times the runtime.
|
|
175
|
+
|
|
176
|
+
### Overall usage
|
|
177
|
+
|
|
178
|
+
| Metric | Notes-absent | Notes-present |
|
|
179
|
+
| --- | ---: | ---: |
|
|
180
|
+
| Provider requests | 2,402 | 2,391 |
|
|
181
|
+
| Tool calls | 2,802 | 2,838 |
|
|
182
|
+
| Tool errors | 88 | 140 |
|
|
183
|
+
| Input tokens | 231,331,864 | 229,848,996 |
|
|
184
|
+
| Output tokens | 1,895,579 | 1,839,948 |
|
|
185
|
+
| Reported total tokens | 233,227,443 | 231,688,944 |
|
|
186
|
+
|
|
187
|
+
The combined run reported 464,916,387 logical tokens. Output already includes
|
|
188
|
+
reasoning tokens and must not be double-counted.
|
|
189
|
+
|
|
190
|
+
Cache-read and cache-write fields were zero in every arm because the active
|
|
191
|
+
local server did not expose prompt-token detail telemetry. Zero therefore
|
|
192
|
+
means **unavailable telemetry**, not demonstrated absence of prefix caching.
|
|
193
|
+
Exact cached-versus-uncached usage and equivalent billing cannot be recovered
|
|
194
|
+
for this run.
|
|
195
|
+
|
|
196
|
+
## Notes mechanism results
|
|
197
|
+
|
|
198
|
+
### Checkpoint execution
|
|
199
|
+
|
|
200
|
+
Notes-absent made no checkpoint calls. Every Notes-present scenario used the
|
|
201
|
+
tool.
|
|
202
|
+
|
|
203
|
+
| Scenario | Executions | Committed | Invalid |
|
|
204
|
+
| --- | ---: | ---: | ---: |
|
|
205
|
+
| Saved due-diligence case file | 5 | 3 | 2 |
|
|
206
|
+
| County-record refresh | 4 | 4 | 0 |
|
|
207
|
+
| Recorded-document search | 4 | 3 | 1 |
|
|
208
|
+
| Owner-request lifecycle | 4 | 3 | 1 |
|
|
209
|
+
| Agent-task operations | 4 | 3 | 1 |
|
|
210
|
+
| Screening comparison and retry | 6 | 6 | 0 |
|
|
211
|
+
| Provenance drift monitor | 13 | 8 | 5 |
|
|
212
|
+
| Investigation bundle export | 2 | 1 | 1 |
|
|
213
|
+
| Multi-phase architecture investigation | 3 | 3 | 0 |
|
|
214
|
+
| Late requirement change | 2 | 2 | 0 |
|
|
215
|
+
| Failure-recovery hardening | 6 | 1 | 5 |
|
|
216
|
+
| Implementation review and remediation | 2 | 1 | 1 |
|
|
217
|
+
| **Total** | **55** | **38** | **17** |
|
|
218
|
+
|
|
219
|
+
The 17 rejected calls were malformed payloads, usually a list field supplied
|
|
220
|
+
as a string or a required field omitted. This 30.9% invalid-call rate is a
|
|
221
|
+
tool-usability defect worth addressing before measuring checkpoint benefit.
|
|
222
|
+
|
|
223
|
+
The evaluator's `checkpoint_attempt` hook saw only the 38 schema-valid calls.
|
|
224
|
+
Calls rejected by generic tool validation never reached that hook. Generated
|
|
225
|
+
reports therefore showed zero checkpoint failures even though 17 executions
|
|
226
|
+
failed. Future telemetry must count tool execution and validation rejection,
|
|
227
|
+
not only accepted checkpoint attempts.
|
|
228
|
+
|
|
229
|
+
Fifty Notes-present generations contained only checkpoint work, or 2.09 per
|
|
230
|
+
100 provider requests. There were no ambient `notes_reminder` events in either
|
|
231
|
+
arm, so the observed checkpoint overhead was not reminder-driven.
|
|
232
|
+
|
|
233
|
+
### Compaction and continuity
|
|
234
|
+
|
|
235
|
+
| Metric | Notes-absent | Notes-present |
|
|
236
|
+
| --- | ---: | ---: |
|
|
237
|
+
| Compaction attempts | 21 | 20 |
|
|
238
|
+
| Successful compactions | 21 | 20 |
|
|
239
|
+
| Failed compactions | 0 | 0 |
|
|
240
|
+
| Mean recorded recovery | 69.49 s | 62.82 s |
|
|
241
|
+
| Repeated tool calls | 44 (1.83/100 requests) | 69 (2.89/100) |
|
|
242
|
+
| Post-compaction rediscoveries | 40 (1.67/100) | 49 (2.05/100) |
|
|
243
|
+
|
|
244
|
+
The clean Records pairs averaged exactly the same number of compactions in
|
|
245
|
+
both arms. Notes-present had slightly faster recorded recovery overall, but
|
|
246
|
+
more repetition and rediscovery. Scenario trajectories and compaction timing
|
|
247
|
+
differed, so these observations do not establish mediation or a Notes effect.
|
|
248
|
+
|
|
249
|
+
The implementation-review Notes-present arm had one threshold compaction. It
|
|
250
|
+
succeeded and recorded recovery after 43 seconds. A preliminary audit that
|
|
251
|
+
listed this as a failure was checked against the event stream and corrected.
|
|
252
|
+
|
|
253
|
+
## Implementation evidence
|
|
254
|
+
|
|
255
|
+
The following verdicts come from a read-only comparison of prompts, retained
|
|
256
|
+
worktree changes, and recorded verification evidence. They are useful case
|
|
257
|
+
studies, but they were not blinded and no independent evaluator reran the
|
|
258
|
+
acceptance criteria.
|
|
259
|
+
|
|
260
|
+
| Scenario | Artifact verdict | Evidence summary |
|
|
261
|
+
| --- | --- | --- |
|
|
262
|
+
| Saved case file | Notes-absent stronger | Clearer deterministic export and richer case-file contract; Notes-present had broader UI but less visible findings/export coverage. |
|
|
263
|
+
| County refresh | Notes-present stronger | More focused worker/UI coverage with durable lifecycle and compare-and-swap semantics; login redirect still dropped the original target. |
|
|
264
|
+
| Recorded-document search | Mixed | Notes-present added useful revision and polling behavior, but lacked a final completion report and UI E2E remained auth-blocked. |
|
|
265
|
+
| Owner-request lifecycle | Notes-present stronger | Added terminal send-failure handling, bounded budgets, cancellation, key scoping, UI, and broader integration coverage. |
|
|
266
|
+
| Agent-task operations | Notes-present stronger | Stronger operator authorization, privacy projection, audit trail, proxy gating, pagination, and UI; live browser authorization remained unverified. |
|
|
267
|
+
| Screening comparison/retry | Mixed, slightly favoring Notes-present | Added current-state policy checks and comparison UI, but both arms implemented different contracts and Notes-present E2E self-skipped. |
|
|
268
|
+
| Provenance drift monitor | Notes-absent stronger | Notes-present produced a larger unfinished change and timed out without final verification. |
|
|
269
|
+
| Investigation bundle export | Notes-present stronger | Coherent durable artifact/export path and explicit route-context remediation; complete integration evidence was limited by emulator contention. |
|
|
270
|
+
| Multi-phase architecture | Notes-absent stronger | Both were partial; Notes-absent retained broader database, scraper, cache, and integration coverage. |
|
|
271
|
+
| Late requirement change | Mixed | Notes-present targeted legacy compatibility well but had less visible evidence for the original full CRUD/UI scope. |
|
|
272
|
+
| Failure recovery | Notes-present stronger | Smaller, explicit failed-alert-delivery contract with focused transition and SQL tests; no live database run was available. |
|
|
273
|
+
| Implementation review | Notes-present stronger at disproportionate cost | Added quota enforcement, row locking, conflict behavior, concurrency evidence, and remediation, but incurred extensive retry and diagnostic churn. |
|
|
274
|
+
|
|
275
|
+
Conservative summary:
|
|
276
|
+
|
|
277
|
+
- Notes-present stronger: 6 scenarios
|
|
278
|
+
- Notes-absent stronger: 2 scenarios
|
|
279
|
+
- Mixed or inconclusive: 3 scenarios
|
|
280
|
+
- Notes-present unfinished due to timeout: 1 scenario
|
|
281
|
+
|
|
282
|
+
Speed and artifact quality did not move together. Of the six scenarios judged
|
|
283
|
+
stronger with Notes, four were faster and two were slower. One of the two
|
|
284
|
+
Notes-weaker outcomes was nevertheless faster. This reinforces that telemetry
|
|
285
|
+
cannot substitute for an independent quality evaluator.
|
|
286
|
+
|
|
287
|
+
## Implementation-review outlier
|
|
288
|
+
|
|
289
|
+
The largest regression was implementation review and remediation:
|
|
290
|
+
|
|
291
|
+
- duration: +100.63 minutes;
|
|
292
|
+
- turns: +119;
|
|
293
|
+
- tools: +130;
|
|
294
|
+
- tool errors: +31;
|
|
295
|
+
- input tokens: +12.875 million;
|
|
296
|
+
- repeated tool calls: +22; and
|
|
297
|
+
- post-compaction rediscoveries: +9.
|
|
298
|
+
|
|
299
|
+
The extra work was not only empty churn. The Notes-present result added a
|
|
300
|
+
per-account favorites quota, transactional row locking, conflict behavior,
|
|
301
|
+
broader server/component tests, and an explicit audit that found and remediated
|
|
302
|
+
two concrete gaps.
|
|
303
|
+
|
|
304
|
+
The quality gain was not proportional to the cost. The trajectory included
|
|
305
|
+
three attempted subagent launches—two blocked before launch and one started in
|
|
306
|
+
the background—followed by three premature result checks that all found the
|
|
307
|
+
agent still running. The telemetry does not isolate a defensible subagent wait
|
|
308
|
+
cost. It also included 13 failed edit operations and repeated exact-pattern
|
|
309
|
+
repair scripts. Nineteen of the 22 events labeled `test:error` were Python
|
|
310
|
+
`pattern not found` assertions from edit/check scripts. The other three were
|
|
311
|
+
inspection or chained shell commands that were also classified lexically;
|
|
312
|
+
none establishes that a product test suite ran and failed. One invalid
|
|
313
|
+
checkpoint call and one successful compaction added smaller overhead.
|
|
314
|
+
|
|
315
|
+
The supported interpretation is that Notes-present followed a broader,
|
|
316
|
+
more exhaustive remediation path and then executed it inefficiently. The
|
|
317
|
+
single trajectory cannot determine whether Notes caused either the additional
|
|
318
|
+
quality work or the churn.
|
|
319
|
+
|
|
320
|
+
## Measurement defects and limitations
|
|
321
|
+
|
|
322
|
+
### Confirmed harness defects
|
|
323
|
+
|
|
324
|
+
1. **Cross-worktree repository identity broke pairing.** The experiment key
|
|
325
|
+
hashes the resolved worktree root. Each arm therefore received a different
|
|
326
|
+
experiment key despite matching commits. Scenario reporting selected the
|
|
327
|
+
first arm's key and silently omitted the second, producing zero generated
|
|
328
|
+
pairs. This report reconstructed pairs manually by scenario and arm.
|
|
329
|
+
2. **Dirty-start detection included setup artifacts.** The recorder captured
|
|
330
|
+
Git status after the harness created dependency and environment symlinks.
|
|
331
|
+
This excluded all HostelHawk arms for an untracked dependency symlink.
|
|
332
|
+
3. **Checkpoint failures were undercounted.** Schema-invalid calls failed
|
|
333
|
+
before `checkpoint_attempt`, so the report missed 17 failed executions.
|
|
334
|
+
4. **Verification classification was lexical.** Commands containing words
|
|
335
|
+
such as `test`, `check`, or `build` were counted as verification even when
|
|
336
|
+
they were search or edit scripts. A non-error tool result was generally
|
|
337
|
+
treated as success without validating a prescribed gate.
|
|
338
|
+
5. **General tool errors were omitted from pair reports.** Live activity had
|
|
339
|
+
them, but `ReportRow` and `PairDelta` did not.
|
|
340
|
+
6. **Missing cache telemetry was coerced to zero.** The report had no
|
|
341
|
+
availability indicator and could not distinguish missing data from a real
|
|
342
|
+
zero.
|
|
343
|
+
|
|
344
|
+
### Experimental limitations
|
|
345
|
+
|
|
346
|
+
- Only one stochastic replicate was run per arm and scenario.
|
|
347
|
+
- Notes-absent always ran first, confounding Notes with cache warming, server
|
|
348
|
+
state, filesystem state, and time.
|
|
349
|
+
- The two arms could choose materially different implementations.
|
|
350
|
+
- Shared dependency and environment symlinks weakened isolation.
|
|
351
|
+
- One Notes-present arm timed out and must be treated as a failure or censored
|
|
352
|
+
observation, not silently excluded.
|
|
353
|
+
- The agent wrote its own tests and reported its own completion. There was no
|
|
354
|
+
predeclared, independent correctness oracle.
|
|
355
|
+
- Runtime identity omitted Pi version, full extension/tool inventory,
|
|
356
|
+
model-server build, sampling settings, dependency snapshot, and external
|
|
357
|
+
service state.
|
|
358
|
+
- Harness wall time and evaluator session time began at different points.
|
|
359
|
+
|
|
360
|
+
These limitations prevent significance tests, confidence intervals, pooled
|
|
361
|
+
event-level regressions, or a causal estimate from this run. Turns and tool
|
|
362
|
+
events are not independent samples. Trimming the timeout or the two large
|
|
363
|
+
HostelHawk outliers would be post hoc and misleading.
|
|
364
|
+
|
|
365
|
+
## Interpretation
|
|
366
|
+
|
|
367
|
+
Publication-safe conclusion:
|
|
368
|
+
|
|
369
|
+
> Across 12 heterogeneous long-horizon engineering scenarios, the harness
|
|
370
|
+
> generated case evidence that agents actively used durable Notes and, in
|
|
371
|
+
> several cases, produced stronger retained implementations with fewer turns
|
|
372
|
+
> or less time. Other cases showed substantial checkpoint validation failures,
|
|
373
|
+
> increased repetition, a timeout, and one severe efficiency regression.
|
|
374
|
+
> Because assignment was sequential, replication was single-run,
|
|
375
|
+
> implementations differed, and telemetry/pairing defects affected the
|
|
376
|
+
> record, the run does not identify a causal productivity, reliability, or
|
|
377
|
+
> quality effect of `pi-notes`.
|
|
378
|
+
|
|
379
|
+
The practical value of this run is diagnostic. It identified scenarios worth
|
|
380
|
+
repeating, exposed tool-schema and harness defects, and produced concrete
|
|
381
|
+
hypotheses:
|
|
382
|
+
|
|
383
|
+
- concise checkpoints may help some agents preserve task structure and reduce
|
|
384
|
+
search or implementation work;
|
|
385
|
+
- checkpoint-only turns and malformed payloads can erase those gains;
|
|
386
|
+
- Notes may encourage broader review behavior in some trajectories; and
|
|
387
|
+
- continuity benefit should be evaluated with objective post-run quality, not
|
|
388
|
+
inferred from compaction or self-reported verification.
|
|
389
|
+
|
|
390
|
+
## Required rerun
|
|
391
|
+
|
|
392
|
+
Before making a product claim:
|
|
393
|
+
|
|
394
|
+
1. Use a canonical repository identity and explicit
|
|
395
|
+
`scenario × replicate × pair` identifiers.
|
|
396
|
+
2. Capture baseline cleanliness before injecting setup artifacts, and record
|
|
397
|
+
setup-generated changes separately.
|
|
398
|
+
3. Randomize or counterbalance arm order within each scenario and replicate.
|
|
399
|
+
4. Run at least five paired replicates per scenario; use more for timeout-prone
|
|
400
|
+
or high-variance tasks.
|
|
401
|
+
5. Pin and hash Pi, extension revisions, tool surface, system prompt,
|
|
402
|
+
dependencies, model-server build, model checkpoint, sampling parameters,
|
|
403
|
+
context settings, and external-service state.
|
|
404
|
+
6. Use isolated immutable dependencies, environment files, databases, and
|
|
405
|
+
server/cache state per arm.
|
|
406
|
+
7. Predeclare timeouts, exclusions, primary outcomes, and scenario-specific
|
|
407
|
+
acceptance tests. Count timeouts as outcomes.
|
|
408
|
+
8. Run an independent evaluator against each retained diff in a fresh
|
|
409
|
+
worktree. Use blinded reviewers and a fixed quality rubric.
|
|
410
|
+
9. Record structured command identity, exit code, signal, timeout, and
|
|
411
|
+
framework result instead of lexical verification classification.
|
|
412
|
+
10. Record cache-telemetry availability, cached and uncached input, reasoning
|
|
413
|
+
output, retry attempts, adaptive reasoning changes, and tool-error classes.
|
|
414
|
+
11. Count malformed checkpoint executions and test a simpler schema or better
|
|
415
|
+
corrective guidance before measuring checkpoint reliability.
|
|
416
|
+
12. Report paired per-scenario effects, ranges, missingness, and repository
|
|
417
|
+
strata. Do not pool events as independent observations.
|
|
418
|
+
|
|
419
|
+
## Artifact policy
|
|
420
|
+
|
|
421
|
+
The durable report records the harness ID, baseline commits, scenario names,
|
|
422
|
+
and derived measurements. Generated manifests, event streams, worktree diffs,
|
|
423
|
+
and session logs remain local evaluation artifacts. Machine-local absolute
|
|
424
|
+
paths and raw transcripts are deliberately omitted because they are not
|
|
425
|
+
portable and may contain prompts, tool arguments, local paths, or private
|
|
426
|
+
reasoning.
|
package/README.md
CHANGED
|
@@ -63,6 +63,10 @@ It does not call `pi.setActiveTools()`. If another mode hides `checkpoint_notes`
|
|
|
63
63
|
|
|
64
64
|
Lifecycle tests cover fresh identities, branch restoration, resume rematerialization, deferred read/research freshness, read-only threshold and streak reset, delayed checkpoint pressure, compaction pressure, inherited-resume integrity, and external-mutation gating.
|
|
65
65
|
|
|
66
|
+
## Evaluation
|
|
67
|
+
|
|
68
|
+
See [BENCHMARK.md](./BENCHMARK.md) for the exploratory long-horizon Notes A/B evaluation, its implementation-quality audit, measurement limitations, and controlled-rerun requirements. The current report is diagnostic case evidence, not a causal product benchmark.
|
|
69
|
+
|
|
66
70
|
## Optional integrations
|
|
67
71
|
|
|
68
72
|
The core has no dependency on goal, plan mode, orchestrator, subagents, memory, or compaction extensions.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-notes",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Session-local durable execution checkpoints for Pi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"entry.ts",
|
|
25
25
|
"index.ts",
|
|
26
26
|
"README.md",
|
|
27
|
+
"BENCHMARK.md",
|
|
27
28
|
"LICENSE"
|
|
28
29
|
],
|
|
29
30
|
"pi": {
|