Public floor tasks
This is the public task board for the Bridlewise development floor. It is a working list, not a release schedule. Each row names one outcome; the detailed exit criteria live in the build roadmap.
Each row is one item file in docs/trackers/items/ (format bridlewise-tracker-item/v1, read by engine/src/workflow/failure-owners.ts). The board below is generated from those files by harness sync: a row changes only by editing its item, and harness check refuses a board that differs from its items.
Flaky burn-down owners. Each row owns at least one entry in the tracked flaky burn-down list. The owner is the task that must reproduce, fix, or explicitly retire the entry; a row re-owns an entry only by the commit that adds it (engine/src/workflow/flaky-burn-down.ts entryAddedWithOwner).
Private web lanes. The public snapshot does not publish the private web run history, so these lanes own no entry here. They remain the private floor’s workstreams — ordinary work, not a claim that a private failure still exists.
Open
- Bring the supported suite under the calibrated-work cap — the old raw-CPU row is SUPERSEDED, not rescaling its numbers. Two full runs on 2026-10-20 measured 2124.7 and 2183.7 ms/file against a 2032.2 ms/file cap, but those figures are in the retired
raw-cpu-ms/v0unit: the runs were measured with NO calibration reading, so they are INCOMPARABLE with the current declaration and no arithmetic converts them. The red was the box, not the suite: the same tree moved to 2124.7 ms/file under load ~9-10 against the 1926 ms/file floor, and raw CPU is not invariant at saturation. The metric now judges calibrated work (calibrated-work/v1): each run pairs its CPU delta with a fixed start/end calibration benchmark (256 KiB working set, six fixed chunks,--no-opt, median chunk;engine/src/shared/run-cpu.tscomputeRunWork) and judgesworkUnitsPerTestFile = (runCpuMs / calibrationMs) / testFileCount— computed once, read by the verdict, the reporter, the engine runner and the pages. The declaration is in ACCUMULATION (0 of 12 clean judged full runs); the retired 1926 ms/file at 521 files is recorded underlegacywithincomparable: trueand its two ledger rows carry no metric, so they never feed the new window. Next: run the full suite twelve times inside the instrument lock;npm run budget:measure -- --checkmust stop answeringmigrating, then the window's clean median is derived into the floor from the calibrated rows alone (later floors go throughnpm run budget:measure -- --write). Measured residual on a four-file/68-test subset (2026-10-20, 12-core WSL2): among runs inside BOTH declared bounds (drift <=15%, load5 <=1.7/cpu), units/file spread 1.1% and the eight-burner step +1.1%, against raw 7.0% spread and +7.3%; the two runs outside the drift bound (26.2% and 17.9% start/end drift) are DEFERRED, never judged. Evidence:docs/floor/evidence.md. - No clean judged run in calibrated-work/v1 yet — No clean judged run in calibrated-work/v1: 0 of 12 recorded; the retired raw-CPU window is incomparable, so the cap is derived from new runs alone.
Roadmap
- Per-capability readiness receipts — Every capability names its gate decision, the policy fact that decided it, and a remedy when denied. Carried from: M2 workstream 1, existing roadmap; receipt shape recorded in TASKS.md.
- Each capability has a failure path and a regression — Each capability has a documented failure path and a regression. Carried from: M3 exit criterion 1, existing roadmap; backup and restore carry the first regression.
- A newcomer can go from clone to a reviewable change — A new contributor can install, run the public gate, pick a labeled issue, and open a reviewable change using only public instructions. Carried from: M4 exit criterion 1, existing roadmap; install and run are proved, the labeled-issue path is not.
- Close the remaining pre-admission gates — Model invocation, repository mutation, process execution and network egress each have an admission decision or a named refusal. Carried from: M2 workstream 2, existing roadmap.
- No admitted capability without a receipt — No capability is described as admitted without a reproducible receipt. Carried from: M2 exit criterion 2, existing roadmap; only preflight is admitted.
- Provider conformance fixtures and clearer setup failures — The Responses path and a second provider shape are proved offline, with typed setup failures. Carried from: M3 workstream 2, existing roadmap; a second fixture is closed in TASKS.md.
- Issue lanes with evidence requirements and a named next action — Every open issue names the evidence it needs or the decision it waits on. Carried from: M4 workstream 2, existing roadmap; lives on GitHub, not in this tree.
- Every open issue names its missing evidence — Every open issue states what evidence is missing or what decision is needed. Carried from: M4 exit criterion 2, existing roadmap; judged on GitHub, not in this tree.
- Publish the method and limits of the safety and privacy controls — The detectors, redaction and Landlock boundary are documented with their limits. Carried from: M2 workstream 3, existing roadmap.
- MCP coverage — The MCP transports and server lifecycle have conformance coverage and named prerequisites. Carried from: M3 later list, existing roadmap; not one of the six workstreams.
- Platform limits are stated before installation — Platform limits are stated before installation. Carried from: M3 exit criterion 3, existing roadmap.
- The roadmap and issue labels agree — The roadmap and the issue labels agree about the current milestone. Carried from: M4 exit criterion 3, existing roadmap; judged on GitHub, not in this tree.
- Reproducible performance report — A profile at the judged head is generated by npm run perf:profile under the idle-host contract and judged by the regression gate. Carried from: M1 workstream 4, existing roadmap.
- Release provenance and verification — Versioned metadata, checksums, attestations and a verification path ship; signing follows a reproducible build. Carried from: M2 workstream 4, existing roadmap.
- Cross-platform path handling with an explicit Landlock refusal — Platform limits are stated before installation, and unsupported confinement refuses explicitly. Carried from: M3 workstream 3, existing roadmap.
- Performance claims link to a method and a report — Performance claims link to a method and a report. Carried from: M3 exit criterion 4, existing roadmap; the method and probe exist, the envelope does not.
- A documented example matches its command output — A documentation example is verified against the command output before it ships. Carried from: M4 exit criterion 4, existing roadmap; docs:links checks targets, not command output.
- 10x test-phase factor on a documented runner class — The full-suite test phase is at least 10x faster than the single-runner baseline on the documented runner class, and the receipt records the measured factor. Carried from: M1 exit criterion 5, existing roadmap; 2.81x measured at d47909de.
- Independent security review — An independent review is commissioned, or its absence is stated without implying that CI is an audit. Carried from: M2 workstream 5, existing roadmap.
- Measured scale and performance envelope — Large repositories and concurrent runs have a measured envelope, and red budgets are tracked rather than called a pass. Carried from: M3 workstream 4, existing roadmap; red LCP, long-task, API and long-chat budgets.
- A node:test shard runner that preserves the inventory contract — The public node:test smoke files run inside the same shard and receipt contract as the supported Vitest set, without leaving the inventory. Carried from: M1 help-wanted lane, existing roadmap; no task row yet.
- Accessibility and responsive behavior as tested contracts — Accessibility and responsive behavior have tested contracts, not visual claims. Carried from: M3 workstream 5, existing roadmap.
- A stable extension surface with compatibility notes — Extension points carry compatibility notes and a tested failure path. Carried from: M3 workstream 6, existing roadmap.
Flaky burn-down owners
- FLAKY-PUBLIC-ENGINE-GUARD-REDS-ON-ROUND-TREES — public re-owning of
FLAKY-ENGINE-GUARD-REDS-ON-ROUND-TREES; needs private history, still owned. Keeps the three entries whose tests are green at HEAD:engine/test/verification/test-surface-conservation.test.ts(two arms, 11/11) andengine/test/workflow/harness-commands.test.ts. The private row says these guards were red on the committed round tree of 2026-10-07 23:59Z and fixed by a later commit of the same round — "not flakes … the coordinator decides". Their schema-v2 records (b1cf5ba8…,0cc4dff2…,50c8c4ef…) name parent7f319afc→ fixa12dccb8at one run per side, but they are ignored by the current door and have noattempts/files here; the fix's exact bytes are not at HEAD either (a12dccb8's conservation blob3e8a0765…and harness blob9ec78f88…differ from HEAD, because later work moved both files). The already-DoneFLAKY-WEB-GUARD-REDS-ON-ROUND-TREESrow covers 18tests/prevention/*identities — the same "round-tree guard red, fixed by the next commit" mechanism but a disjoint identity set (none of the three engine files appears there), so it does not cover this lane. Missing artifact: the private coordinator's decision (E-01/GC-0) on the three entries, or current-door records/attempts that explain them. Guarded byengine/test/prevention/flaky-test-memory.test.ts. - FLAKY-PUBLIC-ENGINE-UNDIAGNOSED — public re-owning of the private lane
FLAKY-ENGINE-UNDIAGNOSED; needs private history, still owned. The identity isengine/test/repository-root-capability.test.tsLinux test adapter is explicit, path-closed, and has typed unavailable outcomes(the title is present at HEAD; the file is 26/26 green in the 2026-10-20 focused run). The private floor's row records the red three times on 2026-10-07 (17:13Z–20:19Z, one digest) and says cause not found. The only record here,engine/traceability/flake-reproductions/9971023809fa1b13bd0845c6.json(recorded 2026-10-08T06:24:49Z), is schema v2; the current door refuses v2 by version before it reads the attempt log (engine/src/shared/flake-reproduction.ts), so the record explains nothing. Its parentcf352060→ fix50130fbb, one run per side, is not a current-door reproduction;50130fbb's change to the test (the mount point comes from this system's mount table) is present at HEAD (2660a069…), but the lane owner has not accepted it as the cause. Missing artifact: a schema-v3 reproduction record plus itsattempts/file for this identity (or the private lane's accepted cause/record); until one exists the entry stays owned. Guarded byengine/test/prevention/flaky-test-memory.test.ts. - FLAKY-PUBLIC-ENGINE-UNLOGGED-RECORDS — public re-owning of
FLAKY-ENGINE-UNLOGGED-RECORDS; needs private history, still owned. Coversengine/test/evaluation/matrix-executor.test.tsevaluation/matrix-executor: tokens accumulate from run usageandengine/test/mcp/transport.test.tsstreamable http: a server ping on the answer stream is answered and never resolves the client's request (H-1); both files are green at HEAD (160/160 in the 2026-10-20 focused run). The private row says the causes are reproduced and fixed (matrix: the stall after the first response, fix2d2b58e2; transport: the late ping answer, fix7305adbf), but the two records (d1c7abfdb12b746761457109.json, ten statistical runs;fbe9f9c7cdad96d8f24298a0.json, one deterministic run underflake-shim-hold-requests.ts) are schema v2, the current door ignores them, and neither has anattempts/file here. The transport test at HEAD is byte-identical to7305adbf(b067b0e2…), and the matrix fix'sengine/src/shared/outbound-http.tsmoved on afterward, but a fix is not a current-door reproduction. Missing artifact: two schema-v3 records plus theirattempts/files, re-recorded under the door (the hold-requests shim is registered; the stall shim is statistical). The private row's own instruction is "Re-record … and the entries leave". Guarded byengine/test/prevention/flaky-test-memory.test.ts. - FLAKY-PUBLIC-S1-B12-CONTROL — public re-owning of
FLAKY-S1-B12-CONTROL; needs private history, still owned. The identity isengine/test/s1-scenarios/b12.test.tsS1-B12-CONTROL; the file is green at HEAD, but the private floor records a vacuous-pass race in the control (it callsverifyS1Structure(REPOSITORY_ROOT)on the live checkout and asserts only that nouniversal-policy-*violation is listed, while a manifest walk that meets an unreadable entry, a symlink or a hardlink can return early before that check), and no fix has been made. The public attemptengine/traceability/flake-reproductions/attempts/e5f2e977b5b00eb82939d0b57a4bc05e88f35f79ca19ccb24c1c165b757dfbd9.json(recorded 2026-10-10T14:03:33Z) refused this identity: "on the parent it failed 4 and passed 1 of 5 run(s) (9833610b600dec8b ×4): a deterministic reproduction fails every run — reproduce the condition with --statistical". No record names it. Missing artifact: the private statistical reproduction of the vacuous-pass condition (the 4-of-5 attempt) plus the control's walk-safety fix; the focused green is not a fix. The same file'sS1-B12-FAILUREarm is a different identity, disposed withFLAKY-PUBLIC-ENGINE-ONE-RUN-2026-10-09. Guarded byengine/test/prevention/flaky-test-memory.test.ts. - FLAKY-PUBLIC-WEB-GUARD-REDS-ON-ROUND-TREES — deterministic documentation defects fixed at
fd7e058f; not clearable under the current ledger, so the row stays the public owner. Coverstests/prevention/agent-docs-liveness.test.ts(the briefing arm) andtests/prevention/source-root-organization.test.ts(theengine/test/README arm). Reproduced at the recorded red treeb4dc6b33in a scratch worktree (node_moduleslinked, config 0600): the two files red 2 failed | 36 passed (38), the first namingdocs/floor/roadmap.mdanddocs/testing.mdforengine/large-codebasesandtests/performance/.report.json, the second namingengine/test/verification/corpus-manifest.test.tsas undocumented. Atfd7e058fthe same files are green 38/38; at HEAD25a446c3the three suspect files are green 64/64, and the 2026-10-20T11:50:26Z recorded full web run passed both. The retained ledger still reds both (2026-10-20T11:44:16Z, clean tree, not provisional). Clearing is not possible without faking: noFlake-cause:trailer reachable from HEAD names either identity; the four schema-v2 records (2ed1b081…,8bdecb60…,efbda9fc…,2a56ab4b…) are refused by name ("written before the door kept its attempt log"), and their causes are Markdown, which FLAKE-REPRO never judges semantic; no accepted reproduction or move exists. A probe over the live rows (judgeBurnDown) shows that removing the two entries and closing this row leaves 2 new suspects — the web guard reds — and the same holds after appending a simulated green full run, because the ledger is append-only and a trimmed failing row moves to the never-trimmed suspect archive. What would clear it: a machine-accepted explanation (a semantic declared cause plus its attempt, or a recorded move) — none is honestly available for a Markdown-only document fix — or an E-01/GC-0 retirement decision with a ledger rule that accepts a retired entry; closing the row alone reds the guard. A focused or partial run cannot supply either artifact. Guarded bytests/prevention/flaky-test-memory.test.ts. - FLAKY-PUBLIC-WEB-WATCHDOG-C3 — canonical owner after merging the duplicate
FLAKY-WATCHDOG-C3row; still owned. Coverstests/prevention/test-run-watchdog.test.tsC3. The recorded red (2026-10-20T11:44:16Z) isexpected 70 to be +0; 70 isPROCESS_FAULT_EXIT_CODE(EX_SOFTWARE), so the nested focused wrapper faulted closed on an uncaught exception, an unhandled rejection or a guarded-callback fault. Reproduced with execution: a nonexistentTMPDIRdrove the real wrapper to exit 70 witherror (process): uncaught exception … statfson stderr; the C3 arm then passed 10/10 focused runs at HEAD25a446c3and passed in the 11:50:26Z recorded full run. A scratch worktree at the recorded treeb4dc6b33ran the arm 30 times under a private TMPDIR: 28 green and two reds, the diagnosed oneending: "stalled"at 2.1s — the 1.5s watchdog killing the wrapper during startup, a different mode from the recorded exit-70. The prior 430 drives (400 wrapper, 30 real arms under load 11.5–15.4) and these 30 did not reproduce exit 70. Why the cause was never recorded: the old assertion printed the bare exit code; HEAD's assertion now printsoutput.join(""), so the next fault names its stack. Evidence that would close it: one recurrence under the recorded conditions (full web suite, 1-minute load ≥ 10, parallel files) whose failure message carries the fault line; its stack's throw site is the cause, then fix that owner and reproduce it under the door with the same conditions. A focused or partial run is not enough — the recorded red happened in a full run under load, and no acceptedengine/traceability/flake-reproductions/record names this identity. Entry kept; nothing ages out. Guarded bytests/prevention/flaky-test-memory.test.ts.
Private web lanes (retained as ordinary work)
- FLAKY-PERF-GATE-STALE-REPORT — narrowed 2026-10-20, still owned. Covers
tests/performance/regression.test.tsandtests/prevention/flaky-test-memory.test.ts. The record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here) claims the gate's arms "red on 2026-10-07/08 while the profile report was absent or not judgeable for the tree; the report was regenerated (judgeable, 2026-10-10 22:54Z). Rows recorded before a regeneration are explained by the gate's own regeneration arm; any left red are the coordinator's decision." Noengine/traceability/flake-reproductions/record names this file, its suite or any of its arms — 0 of the 158 records and 8 attempts in this tree — so FLAKE-REPRO never accepted a flake here. Measured at HEAD54f978f3: three consecutive focused runs are red 26/36 with 10 passed each and an identical failure set; every failure is the gate's own stale-surface refusal (the report on disk was minted at2caada8f11:25:03Z with measured-surface hash37a412fe…, while HEAD's surface isa1309f29…, and 23 measured files moved between the mint and HEAD, e.g.server/db/backup-restore.ts). The recorded absent-report half reproduces deterministically too: in a scratch worktree at HEAD with no report, two focused runs are red 28/36 with 8 passed, every failure naming "no profile report …npm run perf:profilemakes it". Both modes are the gate doing its job; no run varies. What the gate requires: a report minted on the current measured surface bynpm run perf:profileinside the host's one instrument lock under the idle-host contract. The CPU-cap row shares the measurement machinery and now needs 12 clean judged full runs in the calibrated-work metric, not the retired raw-CPU window; that window is missing (0 of 12),npm run budget:measure -- --checkanswersmigrating(the declaration is in accumulation, the retired 1926 ms/file at 521 files is recorded as incomparable), and a single run cannot legally derive it (D-17). The host is not idle now (a concurrentpytestsuite ran at 69.7% CPU; 5-minute load ~9.6 on 12 CPUs), so a fresh mint here would be a measurement the contract forbids; and no amount of test repetition can refresh a report or fill the window. Decision that unblocks it: the floor owner schedules one idle-host measurement campaign at the judged head — onenpm run perf:profilemint, plus the 12 clean judged full runs for the CPU-cap window — or makes an explicit policy decision that the 12-run window cannot be filled on this host. Do not hand-edit the report, the declaration or a budget. Evidence that would close the lane: a report whosemeasuredSurfaceHashequals the judged head's surface with the gate 36/36; the recorded 2026-10-07/08 reds then stand retired as the gate's own pre-regeneration refusals, with nothing left to reproduce. A judged full run also reads the report (judgePerformanceBudgets) and failsperformance-reportwhen it cannot be judged, so the same mint is a prerequisite of a green full-run campaign; the CPU-cap window closes separately on 12 clean judged runs incalibrated-work/v1withbudget:measure -- --checkreporting a measured floor. Guarded bytests/prevention/flaky-test-memory.test.ts; the lane owns no entry in the publicengine/traceability/flaky-burn-down/web.json(that file holds only the three public suspects), and the private floor remains its owner.
Done
- Document and implement the backup and restore flow — at
400a130athe claim reproduced:git show 400a130a:package.json | grep '"db-'named onlydb-keyanddb-archive;git ls-tree 400a130a server/dbheld no backup/restore module;docs/shipping.md:88only advised backing up the key home and the SQLite databases. Exercisingnpm run db-archive -- --db <db> --chats-file <file>proved the partial path: it wrote a verified<db>.pre-archivecopy and the key-home key/salt, but nothing restored either (a copy the operator cannot restore is not a backup). Nownpm run db-backup -- backup --db <db> --to <new folder>holds the database alone, writes a verified copy throughwriteVerifiedCopy, copies the key material (or passphrase salt) and the bound-fields marker byte for byte, records every digest/size and the table counts in a manifest, and proves the copy opens under that material (databaseKeyProof) before the folder takes its name;npm run db-backup -- restore --from <folder> --db <db>treats the manifest as untrusted input, checks every digest/size/quick_check/table count, refuses a key that does not open the backup, holds the target alone, keeps a verified<db>.pre-restorecopy, installs the bundle's key only when the key home has none, copies the database into place atomically, and proves the restored database opens (putting the pre-restore copy back on failure). The CLI ran end to end on a scratch database: backup reportedkeyProof:"opens"and digesta2b2aed0…, a user added after the backup disappeared on restore (keySource:"existing",keyProof:"opens",preRestoreCopy:"…web.db.pre-restore"), and the pre-restore copy still held the later user. A restore into a NEW folder reportedkeySource:"backup"and the installed key opened the restored database. Evidence:tests/unit/database-backup.test.ts6/6 (round trip + pre-restore copy, damaged backup refused before changes, lost database + key home recovered, passphrase salt, held database refused, different key conflict refused); the focused 13-file batch 162/162 (database-backup,conversation-archive,database-exposure,db-key-rotation,source-root-organization,file-effect-recording,no-empty-catch,no-scattered-helpers,encryption-and-dedup-prevention,data-loss-5-keypersist,data-loss-3-migration,effect-kind-recording,path-spelling-comparison); engine key-home 6/6;npm --prefix engine run typecheckclean;npm run typecheckclean;npm run test:public29/29;npm run docs:linksclean (512 Markdown files);npm run check:secretsclean;harness check --skip-typecheckfromengine/allPassed: true(869 modules, architecture/readme-consumers/ratchet all pass);scripts/test-shard-manifest.mjs verify --manifest tests/test-shards.json --live …reports 522 supported, 4 excluded, 526 live. Still open and stated in the docs: the timeline ledger and the pre-migration/pre-rekey copies are not in the bundle; a key mode mismatch or a different key in the key home is refused rather than overwritten; the new test's shard weight was measured on its own, so the open "Re-measure the shard weights" row still owns the full per-file re-measurement. - Publish the corpus manifest —
engine/test/fixtures/corpus-manifest.jsonpins lodash, express and babel/traverse by commit and file hash (99 files);npm run corpus:fetchmaterialises them from upstream and links the cache,npm run corpus:verifyjudges it, and the focused probe passes 80 engine and 12 Vitest tests. - Reconcile the flaky burn-down list with the published memory — measured 22 engine entries across 9 private lanes and 0 web entries before; re-ran all 18 distinct engine entry files and the 3 public web suspects. Re-owned the 15 engine entries that still have live tests under 7 public rows; retired 7 engine entries with evidence: 2 live MCP arms moved to
engine/live/mcp-servers.test.ts, and 5 deterministic public-snapshot failures recorded in thePUBLIC-SNAPSHOT-*rows above. The 3 web suspects are owned by 2 public rows (the two doc guards were deterministic stale-doc defects fixed atfd7e058f, the watchdog C3 is the one transient). After: 15 engine entries / 7 owners and 3 web entries / 2 owners; the engine guard and the web guard both pass. Evidence: the focused entry-file runs,docs/floor/evidence.md, and the commit message's command list. - FLAKY-CUSTODY-KEEPOUT-ESTALE — retired 2026-10-20 on
agent/flaky-keepoutfromf6c8cef2as a stale private-web lane: the recorded failure mechanism is gone, and the public ledger does not carry its entry. The record claimed the guardian refused a whole confined spawn when a keep-out entry changed while it was located —keep_out[#] is not a resolved path: '<tmp>/<dir>/web.db': Stale file handleat 2026-10-07T16:54Z — because the run's one key home registers every test file's temporary database, so one file's cleanup churned another's keep-out entry; the private floor fixed it atd250d3da, whose code this tree carries in its sanitized import.engine/guardian/landlock-guardian.cre-locates an ESTALE entry, keeps it out by its folder and its name, and runs the unrelated spawn (keep_out_retriesinengine/src/filesystem/self-protection/self-protection-contracts.ts), and the deterministic armengine/test/filesystem/self-protection/keep-out-links.test.ts"S2, DETERMINISTIC: … (ESTALE) …" proves the old whole-spawn refusal is gone while the entry is still kept out. Observed atf6c8cef2: the two named tests are 31/31 in ten consecutivenpx vitest runruns and 18/18 in three runs under the recorded condition (a privateHARNESS_KEY_HOMEholding a registered$TMPDIR/bw-custody-race-*/web.dbthat a loop unlinked and re-created);engine/test/filesystem/self-protection/keep-out-links.test.tsis 8/8;engine/test/prevention/flaky-test-memory.test.tsis 19/19;tests/prevention/flaky-test-memory.test.tsis 8/8. No entry was removed because none is in the public list: the import2545d94fcarried the private web history,94b1a97femptied it, and400a130aadded only the three public suspects thatengine/traceability/flaky-burn-down/web.jsonnow holds under the README's rule;engine/traceability/flaky-burn-down/engine.jsonis the engine suite's list and has never held a custody identity. The ledger guards pass over the closed row. This closes the public tracking row only; the private floor remains the owner of its own records. What remains is the run-wide key home's cross-file coupling (ordinary work on the private floor, not a public entry); it no longer manifests as this refusal. - FLAKY-HELPERS-README-HARNESS-VIEW — retired 2026-10-20 on
agent/flaky-harness-viewfrom1a9a6e38as a stale private-web lane: the recorded mechanism no longer exists, and the public ledger never carried its entry. The record claimedtests/prevention/source-root-organization.test.ts"tests/ each README names exactly the folder's real files" failed in the 2026-10-10T18:44Z full web run ate8b25c8cbecausetests/helpers/README.mddid not nametests/helpers/harness-view.ts, and judged it not a flake:9d7c7e78folded that helper intotests/helpers/isolated-config.tsand deleted the file, so FLAKE-REPRO cannot explain it (the cause is absent at the fix, and a README is Markdown, never a semantic change). Observed at1a9a6e38: the arm is deterministic, not intermittent. Ate8b25c8cthe helper exists (blobbb145be1) and the README omits it; restoring exactly that file as an untracked fixture twice, the arm failed twice 1/1 (exit 1, "In the folder but not named in its README (undocumented): tests/helpers/harness-view.ts"); removing it, the arm passed twice 1/1. At HEAD the file is absent andtests/helpers/README.mdnamesisolated-config.ts. The two named files are 44/44 (36 + 8) in ten consecutivenpx vitest runruns (440 test results). The ledger's own rule (engine/src/workflow/flaky-burn-down.ts) retires an entry only with its owning row, and the removal commit names the decision (FLAKE-REPRO); there is nothing to remove here because2545d94fcarried the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds. That file's source-root entry is theengine/test/README arm owned byFLAKY-PUBLIC-WEB-GUARD-REDS-ON-ROUND-TREES, a different identity from this lane'stests/arm; the private floor'sweb.jsonremains this identity's owner and is not edited from the public floor. The web ledger guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row. This closes the public tracking row only; the private floor remains the owner of its own record. - FLAKY-ISOLATION-PIDFD — fixed 2026-10-20 on
agent/flaky-pidfdfrom194227ee: the recorded failure is the arm's exact-step assertion, not the supervisor's cleanup. The record (the private floor'sdocs/trackers/TASKS.mdrow and theengine/traceability/flaky-burn-down/web.jsonentry it owns; noengine/traceability/flake-reproductions/record names this identity in either floor, and the publicweb.jsonholds only its three public suspects) claimed "native descriptor exhaustion after launch fails only after its owned descendants are reaped" failed once in the 2026-10-10T12:36:32Z floor run because the supervisor exhausted descriptors atpidfd_openbefore the test's plantedowned childrenpoint, so the message named the other step; the exhaustion point depends on what the process already holds. Observed at194227ee: the arm is 30/30 in consecutive focusednpx vitest run tests/prevention/test-isolation-contract.test.ts -t "native descriptor exhaustion"runs, so plain repetition does not reproduce it. Forced deterministically by wrapping the inner supervisor instrace -f -qq -o /dev/null -e inject=pidfd_open:delay_enter=1500000: the command'sprlimit --pid "$PPID" --nofile=4:4lands before the delayedpidfd_open, which returns EMFILE; 5/5 runs namedtest supervisor pidfd_open: Too many open files(the old assertion was red 5/5, and green 5/5 in the normal order), while every cleanup assertion held in both orders — outer receiptreaped: [],killed: [],noOwnedChildren: true, the supervisor's command dead, and the 60 ssleepdescendant dead.fail()runs the same cleanup from both post-launch allocations, soengine/guardian/test-process-supervisor.cis unchanged; the arm now accepts either post-launch step (/^test supervisor (?:owned children|pidfd_open): Too many open files$/m) and keeps every cleanup assertion; the same call path is green 5/5 in the forced order and 30/30 in normal focused runs. No ledger entry was removed because none is in the public list (2545d94fimported the private web history,94b1a97femptied it,400a130are-added only the three public suspects); the private floor remains the owner of its entry, not edited here.npx vitest run tests/prevention/test-isolation-contract.test.tsis 31/31; the web flaky guard 8/8 and the engine flaky guard 19/19;npm run test:public34/34;npm run docs:linksandnpm run docs:roadmap -- --checkare current. This closes the public tracking row only. - Retire the two hermetic live MCP arms from the flaky list — both identities named
engine/test/mcp/real-servers.test.tslive, opt-in arms that no longer exist there; the equivalent live arms areengine/live/mcp-servers.test.ts:321(context7) and:325(deepwiki), in the opt-in live suite. Noharness flake moverecord exists because the public import has no parent tree that holds the hermetic identities; the entries were removed by the same commit that added this reasoned row, and the private lane remains the source of truth. - FLAKY-POPULATION-FLOOR-REDERIVED — retired 2026-10-20 on
agent/flaky-population-floorfromcd99bfe9as a deterministic stale-floor red, fixed atbfb123b9, not a flake: the recorded arm reds 5/5 at the fix's parent tree and is green 5/5 at the fix and 5/5 at HEAD, and the public ledger never carried the identity. The record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here) claimed "the budget's population is still the one the budget was derived against" failed in every recorded full web run from 2026-10-07 to 2026-10-10 13:33Z, then passed at 18:44Z. It is not a flake: the floor was stale,bfb123b9re-derived it (1926 at 521 files) through the measuring tool (D-17), and the flaky memory reads the first pass as a suspect. The privateengine/traceability/flaky-burn-down/web.jsonowns the entry under this owner; the publicengine/traceability/flaky-burn-down/web.jsonholds only its three public suspects, so no ledger entry was removed. Noengine/traceability/flake-reproductions/record names the arm — all 59 records whose paths or conditions mentionweb-ui-runtime-budgetbelong to theweb-ui-runtime-budget-verdict.test.tssibling, and a literal search ofidentityfortests/prevention/web-ui-runtime-budget.test.ts::finds none — which is the record's own "FLAKE-REPRO cannot explain it". The fix and the tree it was built on are adjacent (git rev-list --count 29090f68..bfb123b9= 1; parent 08:32:36Z, fix 13:35:46Z, after the last recorded red at 13:33Z), and the fix moves the declaration's two values (1614 ms/file at 485 files → 1926 at 521), adds the derivation record beside them, and moves the test's two pins together; the parent's tree held 521 live test files against the declared 485 — a 7.4% drift, over the declared 3.0% band. Observed in scratch worktrees at the recorded commits with bothnode_modulestrees linked andengine/bridlewise.config.jsonat 0600: at the parent29090f68five consecutive./node_modules/.bin/vitest run tests/prevention/web-ui-runtime-budget.test.tsruns are red 5/5 with1 failed | 13 passed (14), and every run names "the budget's population is still the one the budget was derived against" with "the suite has grown from the 485 test files this budget was derived against to 521 — a drift of 7.4%, over the 3.0% a derivation is allowed to survive"; at the fixbfb123b9and at HEADcd99bfe9the same command is green 5/5 (14 passed (14)each). At that row's measurement headcd99bfe9the live population was 527 (523 supported + 4 named exclusions intests/test-shards.json, verified against a freshvitest list --filesOnly), a 1.152% drift from the declared 521 — inside the 3.0% band, so the arm is green by its own rule and the declared floor is not stale; no re-derivation is due, and the owner's tool says it is not yet possible:npm run budget:measure -- --checkanswersunmeasurablewith "2 of the 12 clean judged full runs of the current 527-file population are recorded" against the declared 1926/521. The fix changes the declaration's two values, adds the derivation record and moves the test's two pins; the arm andjudgePopulationDriftare untouched. The shard manifest verify is 523 supported / 4 excluded / 527 live atb0e9f6305c0aand the ten-shard plan assigns all 523 supported files with a 1.000x weight sum; the 1.766x wall spread the shard-weights row measured at9c4526e7is that row's separate packing fact (summed file cost is not wall time), not a population staleness. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;tests/prevention/tasks-no-stale-duplicates.test.tsis 2/2;tests/prevention/roadmap-status-owner.test.tsis 6/6;npm run test:public34/34;npm run docs:linksclean (512 Markdown files);npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - FLAKY-PUBLIC-ENGINE-GATE-LOG-PASSWORD-TAIL — covered and retired 2026-10-20 on
agent/public-reowningfrom114ab553as fixed by5f8aa96d, not left owned: the identity isengine/test/workflow/working-copy.test.tsthe gate log redacts across chunk boundaries: …; the private row records it failed once (2026-10-14 19:55Z, validate 19) because its random synthetic password ended in_or-, the persistence redaction keeps such a final character outside its marker ("password": "[REDACTED:credential]-", measured 8 of 300 random JSON values), and the exact-shape assertion failed although the password never reached the log; the test's password now ends in a letter (0 of 2000 off-shape over the four forms), and the dropped character is the separateREDACT-AMPERSAND-TAILcase, not this identity. The test file at HEAD is byte-identical to5f8aa96d(88f3532c…), so the fix is in this tree. There is noengine/traceability/flake-reproductions/record for the identity, but this is a deterministic test-fixture red fixed at its cause, not a flake. The one publicengine.jsonentry leaves with this row (the ledger's shrink-only rule; the private floor remains the owner of its records). Ran:working-copy.test.ts35/35; the engine flaky guard 19/19;npm run test:public34/34;npm run docs:linksclean (512 files);npm run docs:roadmap -- --checkcurrent. This closes the public tracking row only. - FLAKY-PUBLIC-ENGINE-INVENTORY-RACE — covered and retired 2026-10-20 on
agent/public-reowningfrom114ab553as fixed by694cfd1b, not left owned: the identity isengine/test/verification/test-surface-conservation.test.tsconservation: the identity is asserted by the production inventory door; the private row records it failed once (2026-10-14 13:55:03Z, validate 15) because the inventory CLI it runs refused "test inventory source tree changed during discovery" whileengine/verification/benchmarks/opencode-history/review/independent-scope-review.test.tsmade and removed sandboxes inside the live tree in the same suite, reproduced by hand six of sixtest-inventory --checkrefusals, and the cause is fixed at694cfd1b(the sandboxes are in the run's temp root). Both files the fix touched are byte-identical at HEAD to694cfd1b:test-surface-conservation.test.tsd0ee23a9…andindependent-scope-review.test.tsdabd6bc7…. Focused runs at HEAD:test-surface-conservation.test.ts11/11 andindependent-scope-review.test.ts8/8. There is noengine/traceability/flake-reproductions/record for the identity, but this is a deterministic fixture red fixed at its cause, not a flake, and the fix is in this tree. The one publicengine.jsonentry leaves with this row (the ledger's shrink-only rule; the private floor remains the owner of its records). Ran: the two files 19/19; the engine flaky guard 19/19;npm run test:public34/34;npm run docs:linksclean (512 files);npm run docs:roadmap -- --checkcurrent. This closes the public tracking row only. - FLAKY-PUBLIC-ENGINE-ONE-RUN-2026-10-09 — covered and retired 2026-10-20 on
agent/public-reowningfrom114ab553as fixed in this tree, not left as a private-history claim:114df640fixes five of the six identities and300a2a7afixesS1-B13-HOSTILE-REAL. The private row's "failed in ONE run only (2026-10-09 20:42:23Z, treeeb6b8f4c87) … Not reproduced" is superseded by the door's own attempts:engine/traceability/flake-reproductions/attempts/e5f2e977b5b00eb82939d0b57a4bc05e88f35f79ca19ccb24c1c165b757dfbd9.json(recorded 2026-10-10T14:03:33Z; parent69fc8701, fix114df640, five runs per side) recordsS1-B02-FAILURE,S1-B12-FAILURE,resolved defaults: a default its own module resolves is never exported,[FC-B001] pure modular boundary and single protocol ownershipandatomic-write-consistency: every src/workflow/*.ts writeFileSync call writes to an fd, never a path, and their five v2 records show 5/5 parent failures and 5/5 fix passes;63ef82b280fe71021c1eaac3f8deee12eeb4a48a0fd54a13059aea230941fbfa.json(parent114df640, fix300a2a7a, five per side) recordsS1-B13-HOSTILE-REALwith the same 5/5 counts. The identity set is exact: those six are the six entries this row owned. Five of the fix's six test files plusengine/src/kernel/web-performance-budgets.tsare byte-identical at HEAD (b02,b12,resolved-default,FC-B001,atomic-write,web-performance-budgets; onlycheckout-setup.tsmoved on after the fix), andb13.test.tsandtest/support/repository-local-temporary.tsare byte-identical to300a2a7a. The lane's other two entries (candidate-format,S1-B08-CONTROL) were already retired by the twoPUBLIC-SNAPSHOT-*rows, so the lane is fully disposed. The six publicengine.jsonentries leave with this row (the ledger's shrink-only rule; the private floor remains the owner of its records). Ran: the six entry files plusharness-commands91/91; the engine flaky guard 19/19;npm run test:public34/34;npm run docs:linksclean (512 files);npm run docs:roadmap -- --checkcurrent. This closes the public tracking row only. - FLAKY-RESOURCE-SAMPLER-TICK — retired 2026-10-20 on
agent/flaky-samplerfromc23a89ebas fixed byb7aff7c7, not stale: the recorded REDACT-NUM mechanism reproduces deterministically at its parent and is gone at its fix and at HEAD, and the public ledger never carried this lane's entry. The record (the private floor'sdocs/trackers/TASKS.mdrow and itsengine/traceability/flaky-burn-down/web.jsonentry, read-only here; the publicweb.jsonholds only the three public suspects) claimed the lane's single identity failed in the 2026-10-08T09:53Z full web run and three single-file runs, then passed every run, and was not reproduced by 115 fresh ticks outside the runner (50 under an all-core hog, 15 under an engine-root churn) or 0 of 10 under the state-folder churn. Its acceptedengine/traceability/flake-reproductions/48f737503fd3367f3b49b0c2.json(schema v3, recorded 2026-10-11T05:51:28Z,mode: "deterministic", preloadengine/test/support/flake-shim-routing-rss.ts, sha2565514f082…) names causeengine/src/privacy/operational-redaction.tsat parent3003d806and fixb7aff7c7: about 3% of 9-digit byte counts pass the bank-routing check digit, so the tick'sprocess.rssnumber was projected to[REDACTED:pii], the metric document no longer parsed, and the query found noprocess.rssrow. Observed at3003d806under the recorded preload: 5/5 focused runs red, 2 failed of 4 (the tick arm and the actor arm that re-readsprocess.rss), and 2/2 green without the preload — the shim is the trigger, not stale test code. A direct probe of the projection returns{"metric":"process.rss","value":[REDACTED:pii],"unit":"bytes"}(invalid JSON) at the parent and the exact number atb7aff7c7. Atb7aff7c7under the same preload: 5/5 runs green (4/4); at HEADc23a89eb: 10/10 green (4/4). No ledger entry was removed because none exists in the public list:2545d94fimported the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds; the ledger README says private web lanes own no entry here, and the private floor remains this identity's owner. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;npm run test:public34/34;npm run docs:linksclean;npm run docs:roadmap -- --checkcurrent. This closes the public tracking row only; the private record's own caveat (its 2026-10-08/10 rows measured other bytes) is not re-judged here. - FLAKY-VERDICT-CONFIG-RACE — retired 2026-10-20 on
agent/flaky-verdict-configfrom04548877as fixed byf6c8cef2, not stale: the recorded mechanism reproduces red before that commit and is gone after it, and the public ledger never carried this lane's entry. The record (the private floor'sengine/traceability/flaky-burn-down/web.json, read-only here) owns 39 identities in this lane, and the 39 acceptedengine/traceability/flake-reproductions/*.jsonrecords — all recorded 2026-10-08T10:53:17Z,mode: "statistical", 10 runs each — name causeengine/src/kernel/config.ts, parent8e6e314cfailing every run (0 passed of 10), and fix6c056824passing 10/10. Their condition is a loop that creates and removesengine/.bridlewise/flake-churnwhile the web budget reporter's fixture drives record: the pinned-config bootstrap refuses (config_parent_changed) and the drive loses its judged history row. (The lane's earlier attempts — 20 statistical runs against concurrenttests/unit/mcp-stdio-landlock.test.tsload, fix33d08308, and three deterministic budget-reporter records, fix8b9b900a— are separate episodes; the accepted config batch is the one this row reproduces.) The public tree's sanitized import already carries6c056824's exclusion of the state directory's volatile fields, so that exact location is quiet here: at the pre-fix commit5171055cthe file is 136/136 under the recorded.bridlewisechurn with 0 refusals. What still failed at5171055cwas the same refusal reached through the foreign-root question:readTestExecutionConfigbootstrapped this checkout's pinned document before comparing the root, so a scratch entry churning directly underengine/made each budget-reporter fixture drive fail.f6c8cef2compares the root first and answers a foreign root from the defaults without the read, while this checkout's own root still loads and propagates every refusal (engine/test/workflow/test-execution-config.test.tspins both halves; its own-root probe answersrefused:alternate_config_denied). Reproduced red-first in a scratch worktree at5171055cwithnode_moduleslinked: under continuous create/remove ofengine/.flake-churn,npx vitest run tests/prevention/web-ui-runtime-budget-verdict.test.ts --reporter=defaultfailed 40 of 136 in both runs (96 passed; 31 reporter refusals each — 23 and 21config_parent_changed"Directory identity changed", 8 and 10 ENOENT racing the removed entry), and a direct 100-question foreign-root probe answered 0 from the defaults (45 "Directory identity changed", 50 ENOENT, 5 the recorded "Configuration parent identity changed"). At HEAD (04548877) under the same churn the file is 136/136 in three consecutive runs with 0 refusals, and the same probe answers 100/100 from the defaults. The focused runs pass--reporter=defaultto keep the live reporter's own-root read out of the measurement: that read still refuses under churn by design, and is the protectionf6c8cef2preserves, not this lane's flake. No ledger entry was removed because none is in the public list:2545d94fimported the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds; the private floor remains the owner of its 39 entries, which are not edited from here. Not measured: the private parent8e6e314citself (a private-floor object not on this branch, and its tree is not the public floor) and a full suite or shard run under churn. The engine flaky guard is 19/19 and the web flaky guard 8/8 over the closed row. This closes the public tracking row only. - FLAKY-WATCHDOG-C3 — merged 2026-10-20 on
agent/public-reowningfrom114ab553into the canonical public ownerFLAKY-PUBLIC-WEB-WATCHDOG-C3; the two rows named the same lane, the same C3 arm and the same guard, and the public row already carried the narrowed evidence and owns theengine/traceability/flaky-burn-down/web.jsonentry. One owner remains; the entry is unchanged and still owned. This closes only the duplicate ordinary-work row, not the C3 suspect. - FLAKY-WEB-ARTIFACT-CENSUS — retired 2026-10-20 on
agent/flaky-artifact-censusfrom988eb32fas deterministic and fixed by114df640, not a flake: the recorded arm reproduces red 5/5 at its parent and is green 5/5 at its fix and 5/5 at HEAD, and the public ledger never carried the lane's entry. The record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here) claimedtests/prevention/generated-artifact-freshness.test.ts"the census discovers every gitignored-artifact reader, and the detector is awake" failed at 2026-10-08 20:09:00Z, 20:13:13Z, 20:27:51Z, 23:22:03Z, 23:27:34Z and 23:34:08Z and at 2026-10-09 20:47:53Z, passed every recorded run since 2026-10-09, and had no reproduced cause. Its acceptedengine/traceability/flake-reproductions/dcfe2ad186dcb79e700697a5.json(schema v3, recorded 2026-10-10T14:26:11.916Z,mode: "deterministic", suite web, no preload, seed, setup or environment) names that explanation: causetests/prevention/generated-artifact-freshness.test.ts, parent69fc8701e250ca1236f74ee5d79a007d450960f3(0 passed of 5; loads 6.34/5.45/4.63/3.82/3.26) and fix114df640f9871b67a8fb5c0c638e3cf2165876a1(5 passed of 5; loads 7.62/6.96/5.93/4.61/4.33); the attemptengine/traceability/flake-reproductions/attempts/437788202b87d02bef238af90f267a7c424cc86d35bcf55aab13ada06eadf2d7.jsonis the same five-pass run and also records twotests/prevention/no-proximity-window-assertions.test.tsidentities owned by the separateFLAKY-WEB-PROXIMITY-ROUND-13-REGEXlane. The defect is the census's read detector, not a race:tests/performance/regression.test.tsreads the gitignoredtests/performance/.report.jsonthroughscripts/testing/performance-measurements.tsreadProfileReport(REPORT_PATH)andjudgeableProfileReport(repositoryRoot, REPORT_PATH), while the parent'sREAD_REand its constant extraction knew onlyreadFileSync,JSON.parse,readRunFailureRowsandreadRunHistory; the reader was invisible, so the first arm'sKNOWN_READERSliveness floor failed with "the census did not find tests/performance/regression.test.ts — the artifact-read detector went blind, and a green here would certify nothing". The second arm stayed green because it judges only what the blind census discovered.114df640addsreadProfileReport(X)andjudgeableProfileReport(root, X)toREAD_REand to the read-constant extraction (its message namesgenerated-artifact-freshness), so the reader is discovered and judged again; the test file's bytes at HEAD are the fix's bytes (64bd17dc1446cf169567a9a5bb41d3bfb26eeeb9a76e0a1f8cfc06765576f515). Observed in scratch worktrees at the recorded commits withnode_moduleslinked andengine/bridlewise.config.jsonat 0600 (a fresh worktree's 0664 is refused withconfig_mode_insecure): the parent69fc8701ran./node_modules/.bin/vitest run tests/prevention/generated-artifact-freshness.test.tsfive times, exit 1 in all five with1 failed | 3 passed (4)and the named assertion each time; the fix114df640and HEAD988eb32fran the same command five times each, exit 0 with4 passed (4)every time. The private row's "cause not reproduced" and pass-every-run-since note are a tree-state fact, not nondeterminism: the arm reds exactly while the detector is blind to a reader it names, and greens once the detector learns the owner's shape. No ledger entry was removed because none is in the public list:2545d94fimported the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds; the private floor remains the owner of this lane's record, which is not edited here. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;tests/prevention/roadmap-status-owner.test.tsis 6/6;tests/prevention/tasks-no-stale-duplicates.test.tsis 2/2;npm run test:public34/34;npm run docs:linksclean (512 Markdown files);npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - FLAKY-WEB-F5-LINK-RUN — retired 2026-10-20 on
agent/flaky-f5-linkfrom3d3344aaas fixed byd250d3da, not stale: the recorded GUARD-F5 mechanism reproduces deterministically at its parent under the recorded condition and is gone at its fix and at HEAD, and the public ledger never carried this lane's entries. The record (the private floor'sdocs/trackers/TASKS.mdrow and the 48engine/traceability/flake-reproductions/*.jsonrecords its lane owns, read-only here; the publicweb.jsonholds only the three public suspects) claimed one link at~/.local/state/bridlewise-*madeengine/guardian/landlock-guardian.crefuse EVERY confined spawn with ELOOP (keep_out[…] is not a resolved path), failing 43 web tests in 9 files under a substitute HOME with a planted link; its 48 accepted records are schema v2, allmode: "deterministic", one run each (47 recorded 2026-10-08T06:19Z, one 06:21Z), causeengine/guardian/landlock-guardian.c, parent00e9d58b, fixd250d3da, setupmkdir -p "$HOME/.local/state" "$HOME/f5-target" && ln -s "$HOME/f5-target" "$HOME/.local/state/bridlewise-coordinator", parentRunspassed0 (loads 6.76; 9.11 for the one) and fixRunspassed1 (loads 8.76; 9.38 for the one). Observed at the parent00e9d58bin a scratch worktree withnode_moduleslinked, the parent guardian pin built from its own C source (287e113e3e59c9411ace430a3bc47833207c9a8adb7b22a7229ecdcfdb5b1852, the parent'sroot-policy.tspin) and that setup:npx vitest runover the lane's ten record files failed 49 of 205 tests — all 48 recorded identities plus one unrecorded sibling arm (tests/unit/custody-see-what-changed.test.ts"a move INSIDE a directory carries its counts (the folded spelling, live)") — withkeep_out[2|8|11] is not a resolved path: '<home>/.local/state/bridlewise-coordinator': Too many levels of symbolic links; the row's seven record-bearing files were 23 failed / 150 passed of 173 in two full runs, exactly the recorded 1+6+4+2+7+2+1 identities, and the focused liveness arm was red 5/5. The link is the trigger: the same parent worktree is green 173/173 under the real HOME and 173/173 under a fresh substitute HOME without the link, and building the parent's gitignoredengine/dist/bundle.jsremoved the only non-link red (an allow-rule arm). At the fixd250d3daunder the same HOME and link, the seven record-bearing files are green 173/173 in two full runs (the fix guardian builds to8084afdb93127a491125800bb81947467fb728873763b1820d7fc1c60296d1c5, the record's fix pin) and the other three record files are 31/32, the remaining red beingtests/unit/mcp-stdio-landlock.test.ts's substitute-HOME-without-.sshcause owned byFLAKY-WEB-SUBSTITUTE-HOME(fixedaa3ed91c), not the link. At HEAD3d3344aaunder the same condition: the ten record files are 205/205 green (the seven files 173/173 in three consecutive runs), the row's nine covered files are 188/188 green, and the focused liveness arm is green 5/5. The fix resolves a link entry once in the guardian, keeps out its place and its target, keeps a dangling or looping link out by name, leaves a grant standing when a link leads into it, still refuses a grant reaching an entry through a linked folder (fail-closed), and re-locates an ESTALE entry. Two of the row's covered files carry no F5 record and are not evidence of the link:tests/prevention/flaky-test-memory.test.tspassed at the parent under the link (10/10) and at HEAD (8/8), andtests/prevention/gitignore-anchoring.test.ts's MOVED-ASIDE arm fails identically at the parent with and without the link because the scratch worktree lacks the gitignoredengine/large-codebasescorpus link its disk predicate needs (its declared cause is.gitignoreat3896bdd1, a different owner), while it passes at HEAD under the link. No ledger entry was removed because none is in the public list:2545d94fimported the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds; the private floor remains the owner of its 48 entries, which are not edited here. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;npm run test:public34/34;npm run docs:linksclean;npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - FLAKY-WEB-GUARD-REDS-ON-ROUND-TREES — retired 2026-10-20 on
agent/flaky-guard-roundsfrom37f50246as deterministic round-tree reds, not flakes: each of the private lane's 18 identities reds at every recorded parent tree and is green at the matching next-commit fix, the round-13 instance at81464727is the same class and is fixed by48898e57, and all 18 are green at HEAD. The record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here) claimedtests/prevention/agent-docs-liveness.test.ts,centralized-config.test.ts,config-write-gate-owner.test.ts,declared-pattern-liveness.test.ts,error-debug-owner.test.ts,error-handling-consistency.test.ts,exposure-reachable.test.ts,guarded-callbacks.test.ts,integration-rule-refs-ratchet.test.ts,no-proximity-window-assertions.test.ts,no-rule-refs.test.ts,no-unused-imports.test.ts,path-spelling-comparison.test.ts,raw-handle-owner.test.ts,raw-source-reader-owner.test.ts,secret-intelligence-owner.test.ts,source-root-organization.test.tsandtest-helpers-dedup.test.tswere "whole-tree guards red on committed round trees of 2026-10-07/08 (a real violation in a round commit, fixed by a later commit of the same round), then green: not flakes"; FLAKE-REPRO cannot explain a deterministic guard red whose fix changed the guarded tree rather than a cause of the test. The privateengine/traceability/flaky-burn-down/web.jsonowns the 18 entries (one per file;source-root-organization,guarded-callbacks,no-proximity-window-assertionsandraw-source-reader-ownereach carry more than one record); the publicengine/traceability/flaky-burn-down/web.jsonholds only its three public suspects, and the two identities it shares with this lane (agent-docs-liveness,source-root-organization) are owned there byFLAKY-PUBLIC-WEB-GUARD-REDS-ON-ROUND-TREES, not by this row. The lane's 24 acceptedengine/traceability/flake-reproductions/*.jsonrecords are schema v2,mode: "deterministic", one run per side, with emptyconditions(no preload, seed, setup or environment); they name seven parent→fix pairs, each one commit apart (git rev-list --count parent..fix= 1):31fc3a7b→8e6e314c,8a312394→10bbd3c4,786bbe2a→00e9d58b,48f23d75→3270c458,d250d3da→8a312394,6c056824→e42ba568andc93d9e50→59ecf14b. Observed in scratch worktrees at those commits withnode_moduleslinked andengine/bridlewise.config.jsonat 0600: at31fc3a7bthe 12 recorded files ran red12 failed | 251 passed (263)with exactly one failure per file, every failure name equal to its ledger identity, and at8e6e314cthe same files are263 passed (263); at8a312394the five files are red5 failed | 61 passed (66)and at10bbd3c4green66 passed (66); at786bbe2athe two files are red2 failed | 36 passed (38)and at00e9d58bgreen38 passed (38); at48f23d75the two files are red2 failed | 47 passed (49)and at3270c458green49 passed (49); atd250d3dathe proximity file is red1 failed | 32 passed (33)and at8a312394green33 passed (33); at6c056824the config-write file is red1 failed | 21 passed (22)and ate42ba568green22 passed (22); atc93d9e50the centralized-config file is red1 failed | 9 passed (10)and at59ecf14bgreen10 passed (10). All 18 distinct identities were observed red across the seven parent runs, and the only non-lane failure name in the logs was the sibling "exempted production trees" arm at81464727, owned byFLAKY-WEB-PROXIMITY-ROUND-13-REGEX. The one reproducible instance outside those dates is the same class: at the round-13 tree81464727./node_modules/.bin/vitest run tests/prevention/no-proximity-window-assertions.test.tsran five times, exit 1 in all five with2 failed | 31 passed (33), and every run named this lane's "greedy/lazy split" arm withexpected 58 to be less than or equal to 56(the sibling arm,expected 24 to be less than or equal to 23, isFLAKY-WEB-PROXIMITY-ROUND-13-REGEX's, retired at37f50246); at48898e57and at HEAD37f50246the same command ran five times each, exit 0 with33 passed (33)every time. The test file's bytes are identical at all three commits (blobb1dda12be2a2d1b1e8ead2bb06adfb8498f944ff), so the fix changed the guarded tree, never the test. The lead'sposix.basenameattribution is incomplete: the scanned estate's greedy count is 58 at81464727and 56 at48898e57(a probe of the same split), and the only two rows that leave the list are two greedy test assertions rewritten in48898e57—engine/test/process/instrument-lock.test.ts:307(/wholeInstrumentTestFileCount\(.*, "slot"\)/→assert.ok(cli.includes(...))) andengine/test/workflow/harness-commands.test.ts:1097(the greedy.*harness frozen accept --reason→ the explicit sentence) — both in the scannedtests/engine/testestate; theposix.basenamehunk (first.replace(/^.*\//u, "")→posix.basename(first)) is inengine/src/shared/flake-reproduction.ts, an exempt production tree, and accounts for the sibling lane's 24→23, not this 58→56. The same round-14 commit therefore closes both arms, by different hunks. At HEAD all 18 covered files plustests/prevention/flaky-test-memory.test.tsran three consecutive times,19 passed (19)/328 passed (328)every round (the proximity file alone five times green), so no other arm this lane covers is live. No ledger entry was removed: the publicweb.jsonholds only the three public suspects and the private floor remains this lane's owner, which is not edited here. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;tests/prevention/roadmap-status-owner.test.tsis 6/6;tests/prevention/tasks-no-stale-duplicates.test.tsis 2/2;npm run test:public34/34;npm run docs:linksclean (512 Markdown files);npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - FLAKY-WEB-PROXIMITY-ROUND-13-REGEX — retired 2026-10-20 on
agent/flaky-proximity-regexfrom7908177eas deterministic and fixed by48898e57, not a flake: the recorded arm reds 5/5 at the tree the record names and is green 5/5 at its fix and 5/5 at HEAD, and the public ledger never carried the lane's entry. The record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here) claimedtests/prevention/no-proximity-window-assertions.test.ts"the exempted production trees are measured, not merely excused" failed in ONE run (2026-10-11 12:31:10Z, validate 10's web suite, tree of81464727): round 13 had added a greedy/^.*\//toengine/src/shared/flake-reproduction.ts, an exempt production tree, taking the count from 23 to 24 against the ceiling of 23; round 14 removed it (48898e57,posix.basename), and the arm has passed every run since. That is the tree's own state, not nondeterminism. The fiveengine/traceability/flake-reproductions/records that mention the file name sibling identities, never this arm:155fbe7121999cc4714e8a82.json,2982927deced77960e749df3.jsonand3e9479bd2bfe9fec03d34314.json(schema v2) name the "greedy/lazy split" arm with three unrelated causes and fixes (8e6e314c,3270c458,8a312394), and74f8f5507ff206ec54190025.json/d3d111d410bf42cc8861acf0.json(schema v3, recorded in the artifact-census attempt437788202b87d02bef238af90f267a7c424cc86d35bcf55aab13ada06eadf2d7) name "no test file uses a proximity window" and "a window built out of ARITHMETIC" at parent69fc8701/ fix114df640; the census row attributes those two identities to this lane, and no record names the exempted-production arm because FLAKE-REPRO cannot explain a tree-state red whose fix changes the guarded tree. Observed in scratch worktrees at the recorded commits withnode_moduleslinked andengine/bridlewise.config.jsonat 0600:./node_modules/.bin/vitest run tests/prevention/no-proximity-window-assertions.test.tsat the parent81464727ran five times, exit 1 in all five with2 failed | 31 passed (33), and every run named the arm withexpected 24 to be less than or equal to 23and listedengine/src/shared/flake-reproduction.ts [.*] /^.*\//; a directwindowedPatternsInprobe over the four exempt trees counted{"files":965,"bounded":8,"greedy":24}there, against{"files":965,"bounded":8,"greedy":23}at48898e57and{"files":966,"bounded":8,"greedy":23}at HEAD7908177e, with the file carryingfirst.replace(/^.*\//u, "")only at the parent andposix.basename(first)at the fix and HEAD. At48898e57and at HEAD the same command ran five times each, exit 0 with33 passed (33)every time. The test file's bytes are identical at all three commits (blobb1dda12be2a2d1b1e8ead2bb06adfb8498f944ff), andgit diff 48898e57 7908177eis empty for both the test andengine/src/shared/flake-reproduction.ts— the fix changed the guarded tree, never the test. One finding beyond the record: the same five parent runs also red the sibling "greedy/lazy split" arm (expected 58 to be less than or equal to 56), which the privateweb.jsonat81464727already owns underFLAKY-WEB-GUARD-REDS-ON-ROUND-TREES; the same round-14 commit takes the scanned estate's greedy count from 58 to 56, so that end is that lane's, not this one's. No ledger entry was removed:2545d94fimported the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds; the private floor remains the owner of this lane's record, which is not edited here. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;tests/prevention/roadmap-status-owner.test.tsis 6/6;tests/prevention/tasks-no-stale-duplicates.test.tsis 2/2;npm run test:public34/34;npm run docs:linksclean (512 Markdown files);npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - FLAKY-WEB-STRAY-TREE-RUN — retired 2026-10-20 on
agent/flaky-stray-treefromffa15bd5as a deterministic archived-stray-tree run, not a flake, with the recorded config-mode mechanism fixed by56d9dc92and48898e57: the record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here; the publicengine/traceability/flaky-burn-down/web.jsonholds only the three public suspects, so this lane owns no entry here) claimed fourteen web tests —tests/prevention/run-executes-once.test.ts×10,tests/prevention/decisions-format.test.ts,tests/prevention/git-refusal-not-emptiness.test.ts,tests/prevention/subprocess-confinement-owner.test.ts's missing-project arm, andtests/performance/regression.test.ts's long-chat arm — failed in ONE run only (2026-10-11 08:06:37Z) of the archived stray commitad965a41's tree in the workspace's worktree, withengine/bridlewise.config.jsonat 0664 after the checkout (the worktree-move defectsettleCheckoutfixes), "so every harness configuration read in that run was refused"; they passed in every other recorded run, and the lane is "not a flake of any tree that exists". Observed atad965a41(tagarchive/stray-test-commit-ad965a41, in a scratch worktree withnode_moduleslinked):chmod 600 engine/bridlewise.config.json, thengit checkout -q -f --detach 6aacb7ddand back toad965a41, left the document at664both times (git writes its own umask mode over the chmodded file);node --experimental-strip-types engine/src/cli.ts harness check --skip-typecheckrefused it at 664 withconfig_mode_insecure("Configuration mode must be exactly 0600, found 0664 …"), and at 600 the same command passed the config read and failed later inscripts/pin-authority-regeneration.ts— the mechanism is real, not stale. The fourteen are not that mechanism: the five covered files (run-executes-once,git-refusal-not-emptiness,subprocess-confinement-owner,decisions-format,regression) ran twice at that tree, once at 664 and once at 600, and both were 18 failed | 86 passed | 25 skipped (129) with identical sorted failure lists (diffempty); thirteen of the fourteen lane identities were red in both — the tenrun-executes-oncearms,decisions-format's well-formed-index arm,git-refusal-not-emptiness's spawn-THROWS arm, and the subprocess missing-project arm — while the fourteenth (regression's long-chat arm) was not reached because the gitignored profile report is absent from the worktree and the file reds on "the profile report is present and parseable" instead (owned byFLAKY-PERF-GATE-STALE-REPORT). The other five reds of the 18 are not this lane's:run-executes-once's newer crash-path arm, the two F5-linkgit-refusal-not-emptinessarms, the subprocessEarm that names the missingengine/guardian/build/harness-landlock-guardian, andregression's profile-presence arm. The causes are the tree's own and deterministic: therun-executes-oncearms fail before any provider request, and the frame captured from the assistant-persistence arm isllm_stream_error("The remote address … is on this machine or a private network, which this request may not reach");decisions-formatreds becausead965a41(an accidentalgit commit -afrom an agent's shell) edited three decisions andengine/scripts/verification/tracker-entries.tswithout regeneratingdocs/decisions/README.md; the git arm getsgit_not_runwhere it pinsgit_read_unavailable; the subprocess arm getsrefusedfor an existing temp folder with the guardian binary absent (the sibling E arm namesengine/guardian/build/harness-landlock-guardianmissing). The owner is the worktree move:56d9dc92re-applies the checkout files after every move,48898e57folds that into the onesettleCheckoutpoint at every tree move (the land, the read-tree switches, the worktree moves, the promotion), and its shipped guard isengine/test/workspaces/workspace-integration.test.ts"every move of a worktree keeps the config's 0600…". At48898e57that guard is 1/1 green; planted by deleting itssettleCheckoutcall frommoveWorktreeit reds 1/1 withactual ['664'] vs expected ['600']; restored it is green. At HEADffa15bd5it is 1/1 green (243 ms). At HEAD the four non-regression covered files are 107/107 (all thirteen lane identities), whiletests/performance/regression.test.tsis 26 red of 133 on the stale/unjudgeable profile report, whichFLAKY-PERF-GATE-STALE-REPORT's open row owns. No ledger entry was removed: the publicweb.jsonholds only the three public suspects and never carried this lane, and the private floor remains the owner of its record. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;npm run test:public34/34;npm run docs:linksclean (512 Markdown files);npm run docs:roadmap -- --checkcurrent. This closes the public tracking row only. - FLAKY-WEB-SUBSTITUTE-HOME — retired 2026-10-20 on
agent/flaky-substitute-homefromaae25109as fixed byaa3ed91c, not stale: the recorded mechanism reproduces deterministically at its parent under the recorded substitute HOME and is gone at its fix and at HEAD, and the public ledger never carried this lane's entries. The record (the private floor'sdocs/trackers/TASKS.mdrow and the twoengine/traceability/flaky-burn-down/web.jsonentries it owns, read-only here) claimed the 2026-10-07 16:36–17:20Z rows: a read path the confinement floor would refuse at spawn was accepted at save under a substitute HOME without~/.ssh, becauseserver/safety/landlock-runner.tsemittableDerivedRulesdropped a missing derived rule before the one compiler's keep-out judgement; its two acceptedengine/traceability/flake-reproductions/*.jsonrecords are schema v2 andmode: "deterministic"—b7ebdc038b662928fbf41434.jsonnamestests/unit/mcp-servers-route.test.ts::add and edit (the one upsert write) > a read path the confinement floor would refuse at spawn is refused at SAVE, with the floor's code,f59bbc198abe83202330c35a.jsonnamestests/unit/mcp-stdio-landlock.test.ts::a stdio MCP server under the real guardian > writes only its own home (and TMPDIR inside it): every other root the spec could grant is EACCES, and read paths are held to W^X and the refused roots; both name causeserver/safety/landlock-runner.ts, parentb4a3c298, fixaa3ed91c, environmentHOME=/home/example/.cache/bridlewise-home-land-opencode(the public sanitizer's spelling of the private substitute home) and setupmkdir -p "$HOME". Observed at the parentb4a3c298in a scratch worktree withnode_moduleslinked, the recorded guardian pin built from its own C source (8084afdb93127a491125800bb81947467fb728873763b1820d7fc1c60296d1c5), and a fresh substitute HOME with no.ssh/.claude:npx vitest run tests/unit/mcp-servers-route.test.tswas red 5/5 withexpected 200 to be 400and the accepted server carryingreadPaths: ["<home>/.ssh"](1 failed, 25 passed), andnpx vitest run tests/unit/mcp-stdio-landlock.test.tswas red 5/5 with the secret reader{status:"connected",code:null,confinement:"confined",reason:null}where the arm requires{status:"error",code:"mcp_spawn_refused",confinement:"refused",reason:"read_path_refused"}. The condition is the trigger: with the same worktree and the gitignoredengine/dist/bundle.jspresent (its absence otherwise made the parent compiler emit a missing allow-rule and refuse the whole spec), the parent is green 3/3 under the real HOME, 2/2 under a substitute HOME that holds.ssh(stdio), and 2/2 (26/26) under a substitute HOME that holds.sshand.claude(route). At the fixaa3ed91cunder the same no-store substitute HOME: route green 5/5 (27/27, including the newUNDER ANY HOME: a read path the floor refuses BY NAME is refused at save whether or not it exists yet — absent, then present — and a near-miss that names no store is accepted) and stdio green 5/5 (1/1). At HEADaae25109, same condition: route green 5/5 (27/27) and stdio green 5/5 (1/1). The fix judges every allow-rule by name in the one compiler (engine/src/filesystem/self-protection/guardian-binary.tscompileSelfProtectionConfigToSpec) and only then cuts the emitted list to the paths that exist, whileemittableDerivedRulesno longer drops a missing path before that judgement; the parent code is the opposite. No ledger entry was removed because none is in the public list:2545d94fimported the private web history,94b1a97femptied it, and400a130are-added only the three public suspectsengine/traceability/flaky-burn-down/web.jsonholds; the private floor remains the owner of its two entries, which are not edited here. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;tests/prevention/roadmap-status-owner.test.tsis 6/6;npm run test:public34/34;npm run docs:linksclean;npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - FLAKY-WEB-UNDIAGNOSED — retired 2026-10-20 on
agent/flaky-web-undiagnosedfrom54a27378as deterministic test-fixture reds, not flakes: both recorded identities red 5/5 at the parent tree the record names and are green 5/5 at its adjacent fix and 5/5 at HEAD, with the cause proven in each failure. The record (the private floor'sdocs/trackers/TASKS.mdrow, read-only here) claimedtests/unit/config-write-concurrency.test.tsandtests/unit/landlock-project-refusal.test.tseach had "one red each (2026-10-07 20:06Z and 2026-10-08 09:53Z), cause not found. Find it and declare a reproduced fix, or row the proven cause." The two matchingengine/traceability/flake-reproductions/*.jsonrecords are schema v2,mode: "deterministic", one run per side, with emptyconditions(no preload, seed, setup or environment) andcausesnaming the test file itself:aecb6b4aa5ac7b3a6d9b5ba7.json(config-write, parent31fc3a7b, fix8e6e314c, recorded 2026-10-08T10:38:58.842Z) andb6da1c789d69c52cbe059f09.json(landlock, parent48f23d75, fix3270c458, recorded 2026-10-08T06:34:10.453Z); each pair is adjacent (git rev-list --count parent..fix= 1). Observed in scratch worktrees at the recorded commits withnode_moduleslinked andengine/bridlewise.config.jsonat 0600: at the config parent five focused runs red 5/5 with1 failed | 6 passed (7), every run naming "the config write lock across processes > a stale lock from a dead holder is broken, not waited on" andConfigWriteLockTimeout: could not acquire the lock at … within 10000ms; at its fix and at HEAD the same command is green 5/5 (7 passed (7)). At the landlock parent five runs red 5/5 with1 failed | 12 passed (13), every run naming "the ONE keep-out list at the project door and the file choke point (CRED-F11) > a home is refused because it holds credential stores …" andexpected "Path '<tmp>/fake-home-…' contains <tmp>/fake-home-…/.local/share/bridlewise/evidence, which is the harness's own state or code …" to match /credentials or keys/i; at its fix and at HEAD the same command is green 5/5 (13 passed (13)at the fix;11 passed (11)at HEAD, where the two WSL arms were removed later). The causes are the tests' own fixtures, not races: the config test planted a lock record withpidand nostartTime, while the parent'sfile-lock.tsparseContentalready requires pid AND start time for an identity, so the fresh record read as an unreadable foreign lock and was honoured forfilesystemInfrastructure.fileLock.staleMs(120000 ms), longer than the 10 s acquire timeout;8e6e314caddsstartTime: 1beside the dead pid, so the dead holder is broken at once. The landlock test setHOMEto a fake home without pinningHARNESS_EVIDENCE_HOME, so the evidence store's default (~/.local/share/bridlewise/evidence,privateHomeSetting) landed inside that home and the one keep-out door refused the home as containing harness state before reaching the credential-store arm;3270c458pins the store outside the fake home and restores it. The recorded reds fall between their parent and fix commits (config: parent 09:45:39Z, red 09:53Z, fix 10:07:28Z; landlock: parent 19:48:17Z, red 20:06Z, fix 20:10:44Z, UTC), so the deterministic parent reds are the recorded "one red each"; no intermittent failure was observed. No ledger entry was removed: the publicengine/traceability/flaky-burn-down/web.jsonnever carried these identities (it holds only the three public suspects), and the private floor remains the owner of its v2 records and its lane, which are not edited here. The web flaky guard is 8/8 andengine/test/prevention/flaky-test-memory.test.tsis 19/19 over the closed row;npm run test:public34/34;npm run docs:linksclean;npm run docs:roadmap -- --checkcurrent. The roadmap's generated blocks were rebuilt by their writer. This closes the public tracking row only. - Repair the public full-suite baseline — the 521-file supported set is green and the four remaining failures are named exclusions with a reason and evidence.
- Verify the public floor on a fresh machine — a clean clone at
b866b826ran the public gate (28/28), the corpus fetch and verify, the focused probe (81 engine + 12 Vitest tests), and the supported 521-file suite (8720 passed, 0 failed); it found a corpus-fetch bug (fixed0e45bf58) and two undocumented builds (documented5522cc3d). - Give the testing repository its own front door — publish a contributor hub, move product documentation to a linked entry point, and keep the complete mirror.
- Make the testing hub discoverable from every surface — the README, Pages hub, roadmap, help, and product README are in step.
- Link the task board from the hub — the contributor hub at
docs/index.mdlinksdocs/trackers/TASKS.mdbeside "How to help" and "Contributing", so the open work is reachable from the site root. - Anchoring the public ignore rules — keep every pattern scoped to the place it names, and pass the floor guard.
- Allow the public node:test suite in the source walks — keep
.mjssmoke files visible to the guards that judge the tree. - Publish the milestone roadmap — state M0 to M4, exit criteria, and the full-suite audit.
- Add the shard merge contract — refuse missing, duplicate, failed, unexpected, and out-of-root shard files, and write one receipt.
- Publish the full supported-set shard receipt — CI run 39439338300 at
3b4db454ran the matrix on a push: the plan, tenubuntu-24.04shards (521 files, 8722 tests, 8722 passed, 0 failed, 0 skipped), and the merge all succeeded, and the merge job uploaded thetest-shard-receiptartifact described in the evidence page. This supersedes the prose-only d47909de receipt. The artifact recordstestPhaseMs88000 but no same-commit single-host baseline, so it does not re-derive the 2.81x factor; the roadmap's 10x exit line remains open. - Re-measure the shard weights at the manifest's own head — closed 2026-10-20 at
f54df4a5. CI run39470087124'stest-shard-receiptartifact measured the tenubuntu-24.04shards over 523 files and 8734 tests (8734 passed, 0 failed, 0 skipped):testPhaseMs83438,testPhaseCpuMs658687, shard walls 49566–81359 ms (max/min 1.64x). The heavy shard was 8 (81359 ms, 53 files;promotion-boundary29003 ms,subprocess-confinement-owner22641 ms,content-search-deadline11618 ms,redaction-reaches-provider9362 ms); the light shard was 4 (49566 ms, 52 files, 579 tests). The checked-in weights from0ba57912predicted 1.00x, so the imbalance was stale measurement, not the assignment: the run's per-fileendTime - startTimediffered from the checked-in weight by 0.052x–10.47x and the weight sum fell from 1487347 ms to 798882 ms (1.86x). Re-derived through the manifest owner (node scripts/test-shard-manifest.mjs measure --manifest tests/test-shards.json --head f54df4a5… --runner ubuntu-24.04 --out tests/test-shards.jsonover the tentest-shard-report-*artifacts), which rewrote all 523 weights andmeasuredHeadSha; the new plan predicts 79888–79889 ms per shard (1.00x). The after wall spread is not measured: the run had at most three concurrent files, and packing the same file durations into three slots per shard gives a 26630–39967 ms critical path (1.50x) becausetest-isolation-contractalone costs 39967 ms; the next receipt confirms the wall, and splitting that file is the remaining lever. MEASURED 2026-10-20 (CI run 39471843640 on 9c4526e7, artifact test-shard-receipt): the walls did NOT improve — 45184–79817 ms, max/min 1.766x against the previous 1.641x, same 523 files and 8734 tests, all green. The weights are now truthful (the own-measure path rewrote all 523), but summed file cost is not wall time: setup, collection and per-file overhead are not in the weights, so balancing the sums cannot balance the walls. The open work is therefore wall-aware packing or per-shard overhead accounting (or splitting test-isolation-contract), not another weight edit — the weights themselves are measured and owned. - Activate the sharded full-suite gate —
.github/workflows/test-shards.ymlis now a reusable workflow called by theshardsjob in.github/workflows/ci.ymlon every push and pull request tomain; the merge refuses a failed shard or a union that is not the manifest exactly once, and uploadstest-shard-receipt. The dispatch path and runner choice remain. The local two-shard sample and the refusal arms are recorded in the evidence page. - The clean-machine setup names every build before the suite — The setup sequence names the guardian build and engine bundle before the supported suite, and docs/testing.md names each refusal rather than calling it a skip. Carried from: docs/testing.md: Development-floor setup; TASKS.md: Verify the public floor on a fresh machine.
- Docs and briefings resolve only to tracked paths — The docs link check resolves every tracked repository-relative Markdown link, and the briefing liveness guard refuses a linked path or backticked repo path that git does not hold. Carried from: tests/prevention/agent-docs-liveness.test.ts; scripts/check-docs-links.mjs.
- Tracked modes and the self-protection config keep their contract — A tracked file recorded as 100644 stays 0644 in the working tree; a new atomic write takes 0600 only when it creates the file; and engine/bridlewise.config.json is 0600 in the checkout and CI. Carried from: TASKS.md: PUBLIC-SNAPSHOT-FILE-MODES; .github/workflows/ci.yml.
- Every gate carries a replayable evidence record — The evidence page's gates name a command and an expected shape, and the record-your-own-check form gives a reviewer the claim, commit, command, observation, and interpretation fields. Carried from: docs/floor/evidence.md: Record your own check.
- Public floor, public gate and preview release — Both repositories, the Pages sites, the public gate, failure reporting, the promotion gate and v0.0.3-preview are live. Carried from: M0, existing roadmap.
- Build the floor from a clean machine — A clean clone reaches the public gate, the pinned corpus probe, and the supported suite through the documented commands; the sharded gate and receipt (M1), corpus boundary (M1), contributor hub (M4), and remaining known gaps (M2-X4) are composed here rather than restated. Carried from: TASKS.md closed rows: Verify the public floor on a fresh machine, Publish the corpus manifest; docs/testing.md setup; composes M1-SHARD, M1-RECEIPT, M1-CORPUS, M4-HUB and M2-X4.
- Reproducible fixtures — The pinned corpus subset is fetched and verified outside the checkout; the raw cache stays unpublished. Carried from: M1 workstream 3, existing roadmap.
- One qualification receipt — The merge refuses a missing, duplicate, failed, skipped, dirty or wrong-commit shard and uploads one receipt with the counts, timings and exclusion anchors. Carried from: M1 workstream 2, existing roadmap.
- Repair the baseline reds — The supported file set runs without a failing or skipped test, and every exclusion is named with evidence. Carried from: M1 workstream 5, existing roadmap.
- Shard the full suite — The manifest verifies against the live suite, the plan is deterministic, and a matrix of runners executes disjoint shards. Carried from: M1 workstream 1, existing roadmap.
- CI calls the shard workflow — A push and pull-request CI job calls the shard workflow; dispatch remains available. Carried from: M1 exit criterion 1, existing roadmap.
- The merge refuses a bad shard set — The merge refuses a missing shard, a duplicate file, a skipped file, a failed result, a dirty tree, or a shard from another commit. Carried from: M1 exit criterion 2, existing roadmap.
- The merge uploads one receipt — The merge uploads one receipt naming the manifest digest, shard indexes and timings, pass/fail counts, and the excluded files with their evidence anchors. Carried from: M1 exit criterion 3, existing roadmap.
- The receipt names commit, class, time and prerequisites — One receipt records the exact commit, shard count, runner class, total test-phase time, and any unsupported suite with its named prerequisite. Carried from: M1 exit criterion 4, existing roadmap.
- A fresh clone runs the supported suite — A fresh clone with the documented setup runs the supported suite without guessing which tests are silently missing. Carried from: M1 exit criterion 6, existing roadmap; met at b866b826.
- preflight names each capability — preflight names each capability and its state, with evidence and a remedy for anything denied. Carried from: M2 exit criterion 1, existing roadmap; receipt shape recorded in TASKS.md.
- A release is verifiable from published assets — A release can be verified from published assets and instructions. Carried from: M2 exit criterion 3, existing roadmap.
- The review boundary is stated without an audit claim — The project states exactly what has and has not been reviewed, without implying that CI is an audit. Carried from: M2 exit criterion 4, existing roadmap.
- Backup and restore for the database and key home, with verification — One documented flow backs up and restores the database with its key material and proves each copy opens. Carried from: M3 workstream 1, existing roadmap; task board done row.
- Backup and restore are one verified flow — Backup and restore are one documented flow with a verification step. Carried from: M3 exit criterion 2, existing roadmap.
- A first-patch path for docs, tests, guards, benchmarks and portability — Each contribution lane starts from a public command and a reviewable first step. Carried from: M4 workstream 3, existing roadmap.
- A contributor hub distinct from the product home — The floor has its own front door, separate from the product documentation mirror. Carried from: M4 workstream 1, existing roadmap.
- Review expectations that reward reproduction and prevention — The review guide asks for the reproduction, the prevention guard and the evidence, not only a green run. Carried from: M4 workstream 4, existing roadmap.
- A roadmap that records state and exit criteria instead of a wish list — Every planned-but-not-done item is rendered from its owner, and a guard refuses a stale status block. Carried from: M4 workstream 5, existing roadmap; this change.
- Skipping or hiding a failing test to make a badge green — A failing test is owned by a named task row, and a guard refuses a stale duplicate.
- A hosted multi-tenant service in the preview — The preview is a single-user developer preview and carries no hosting claim.
- Publishing the raw 4.1 GB corpus as a repository — Mixed licenses, nested histories, duplicate checkouts and credential-shaped fixtures.
- A production-readiness claim before the admission evidence exists — The admission gates are open and no capability beyond preflight is admitted.
- A release date — This roadmap is a statement of intent, not a schedule.
- A universal provider compatibility claim — Provider conformance is proved per shape, not universally.
- A benchmark number without its method — Performance claims must link to a method and a report.
- Make the performance report reproducible — the idle-host contract is documented in the test map, and a fresh
2caada8fprofile was judged by the regression gate (36/36); the red LCP, long-task, API, and long-chat budgets belong to M3. - Add per-capability admission receipts — every
preflightcapability entry now names the fact that decided it and what would change a denial:evidence.pathisengine/src/kernel/root-policy.ts,evidence.fieldiscapabilities.<name>(covered by the receipt'srootPolicyHash), andremedyisnullonly for the admittedpreflightcapability while each denied capability names its governance gate as the remedy. The regression test (engine/test/preflight.test.ts, "each capability receipt names its covering policy fact and a remedy when denied") failed before the fix withTypeError: Cannot read properties of undefined (reading 'path')and passes 29/29 after; the focused preflight/S1/S2.4 consumer set is 57/57,tests/prevention/exposure-reachable.test.tsis 14/14,npm --prefix engine run typecheckis clean,npm run test:publicis 29/29, andnode --experimental-strip-types src/cli.ts harness check --skip-typecheckpassed with the architecture manifest in sync (869 modules, no registry change). This closes the receipt shape only: the M2 admission gates for model invocation, repository mutation, process execution, and network egress remain open, and no capability beyondpreflightis admitted. - Add a second provider conformance fixture — the Chat Completions request and stream shapes are proved offline without a universal-compatibility claim.
- PUBLIC-SNAPSHOT-BUNDLE-STALE — closed 2026-10-20 at
c0f637e7. Reproduced 1 red of 5:npm --prefix engine run build:bundlemeasured68adb4f4d2633972c64b0ed1e7ae4cff7fb9eac026d0950b175a31b0e86789ab(5,996,223 bytes; the row'sab8f23b4...was thef518c9f6source) whileROOT_POLICYstill pinnedc2d96102.... The rebuild alone cannot move the pin:scripts/build-bundle.tspublishes the sealed bytes, and the pin owner is theroot-policy-self-protection-bundle-sha256hash binding written byharness regenerate. Ran the documented owner one-shot fromengine/:node src/cli.ts harness sync --with-bundle— statuspass, stepsregister,regenerate,bundle-build,regenerate,checkall pass; convergence took 2 passes and rewrote onlyengine/src/kernel/root-policy.ts(bundleSha256c2d96102...→68adb4f4...). The focused guard is 5/5 after. No hand edit: thedist/bundle.jsartifact stays gitignored and generated. The stale writer is thesrc/changes after thec2d96102...build (the last isc0f637e7, the backup/restore flow) landing without a bundle rebuild; the guard and the one-shot remedy already refuse that. The later item-4 source change re-ran the same one-shot and moved the pin tof7138261...;test/prevention/bundle-staleness.test.tsis 5/5 at the final head too. Not a flaky suspect. - PUBLIC-SNAPSHOT-CANDIDATE-FORMAT — closed 2026-10-20 at
c0f637e7. Reproduced 3 red of 25 (artifact admission rejected content format: ...historical-evidence.tar.gz,4532 !== 4533, andartifact-search-projection-drift:...verify-artifacts.mjs). The owner is the projection declaration, not the evidence fixture: the public import sanitized the local home path to/home/examplein exactly three text projections whilecontent-manifest.jsonstill declared the private-floor bytes (1627/360872/4533 against 1626/360852/4532); the archived originals do not match the manifest either (they retain the oldercode-harnesspath), and the public tree cannot carry the private home path becausenpm run check:secretsrefuses it outside fixture paths. Re-measured the manifest from the bytes this tree carries under its ownidentity/append-one-lfrules (all three are identity) and updated both sidecars'contentManifestSha256(52149559...→bef1b490...); no evidence byte or archive was rewritten.node --experimental-strip-types --test test/candidate-format.test.tsis 25/25 after. The public import sanitizer must re-measure this manifest whenever it rewrites a projection; the focused guard is the refusal if it does not. - PUBLIC-SNAPSHOT-EXTERNAL-BENCHMARK-SOURCES — closed 2026-10-20 at
c0f637e7. Reproduced 35 diagnostics (3 hash-drift, 16 missing, 16 unreadable; the row's 34 was thef518c9f6measurement). Decision: this is the public boundary, not a missing fixture. The 16verification/benchmarks/historical-opencode/sources are the private floor's historical research and the public snapshot pruned them deliberately (ROOT_POLICYrecords the 16→8 test-surface prune; the public tree carries nohistorical-opencode/directory), so no source was fabricated or restored. The architecture owner now declarespublication: "not-published"on those 16 commands:verifyExternalCommandsemitsarchitecture-external-command-source-not-published:<path>on every run andarchitecture-external-command-source-unexpectedly-published:<path>if one appears; the S1 reader skips only the expected-absent read, andisUnavailableCapabilityDiagnosticclassifies the named boundary soS1-B08-CONTROLandS1-B13-CONTROLaccept it as a baseline refusal —verifyS1Structure().okstays false and all 16 named diagnostics remain visible, not silenced. The three published sources that had drifted (code-intelligence/inspect_existing_baseline.py,code-intelligence/tests/test_qualification.py,runtime/verify-node-v24.18.0-linux-x64.sh) are deliberately sanitized public copies, so theirsourceSha256pins were re-measured to the public bytes (478d8122…,191b4eb3…,8d20dcf7…) and they remain published and hash-bound. The recursive inventory's second hand-written pin moved 16→8 /8dcad553…to matchroot-policy.ts. Ran:node --experimental-strip-types --test test/verification/architecture-external-commands.test.ts8/8 (new absent and unexpectedly-present boundary arms),test/s1-scenarios/b08.test.ts3/3,test/s1-scenarios/b13.test.ts3/3,test/verification/recursive-test-inventory.test.ts29/29,test/prevention/flaky-test-memory.test.ts19/19,test/verification/test-surface-conservation.test.ts11/11, andnode src/cli.ts harness sync --with-bundle(pass; re-pinnedf7138261…). - PUBLIC-SNAPSHOT-FILE-MODES — closed 2026-10-20. Reproduced 1 red of 5 (the guard named
scripts/verification/corpus.ts 600andtest/verification/corpus-manifest.test.ts 600);git ls-files -srecords both as100644, so the expected working-tree mode is0644(Git records only the executable bit; the tree's dominant disk mode is0664). Repaired withchmod 0644; the focused guard is 5/5 (node --experimental-strip-types --test test/prevention/git-freshness.test.ts). The copy that produced them is the public-snapshot import outside this checkout: no in-repo writer or generator creates either tracked file, andsrc/filesystem/atomic-write.tsalready carries an existing target's mode across its rename (a NEW file deliberately takes 0600). A fresh clone materializes 0644 and this guard refuses a recurrence. The chmod itself is not representable in a Git commit because Git stores only100644versus100755. Not a flaky suspect. - Record the v0.0.3 release evidence — receipt, checksums, attestations, and verification commands.
- Update the rewind provider stub — read the Responses request shape and exercise the real context path.
- Split the slow rewind test — four behavior files, each with a fresh harness, 44 tests in total, and the largest at 4.52% against the 5% per-file share cap.
- Give each shard exclusion evidence that resolves — the four
tests/test-shards.jsonevidence fields point atdocs/floor/roadmap.md#snapshot, the dated public-baseline audit that names all four exclusions, instead of the milestone anchor the roadmap never defined. - Refuse a failed tree-sitter parse instead of an empty extraction —
extractSymbolsTreeSitternow throws the typedtree_sitter_parse_failedrefusal (backend error carried ascause; the file is named in the message),parseSyncrefuses a missing tree, andgenerateRepositoryMaprefuses instead of skipping the file. The regression atengine/test/intelligence/tree-sitter-js-extract.test.tswas red first (returned 0 symbols (lineCount 3)) and is green (8/8); the focused intelligence/editor suites (220 tests), the tentree-sitterguards, andnpm run test:public(28/28) pass. The isolated farm keeps its documented per-file containment for a killed child, and a typed parse refusal now reaches it asFarmFileResult.errorCoderather than as a successful zero-symbol extract.