Sanderson Group · Sales Reporting — Remediation

Live Build Progress

UPDATED FROM THE REAL TASK LEDGER · HEAD e2acd75
15 / 30 Phase-0 tasks complete · 50%
15 complete0 blocked15 remaining152 commits on remediation/phase-0

This page = Phase 0 only. For all six phases and what each means: Program Overview →

Right now
NOW
P0-HAR-004 — Build Tier-3 exact reader-view comparator

Ledger status: active. This is the sole active task.

BOUNDARY
Strict reconciliation owns the frontier

The next task is selected mechanically after this task reaches a receipt-bound terminal state.

EVIDENCE
Live ledger, git, receipts, and tracked worklog

Counts and task cards come from the current audited tree; narrative milestones come from the append-only tracked worklog.

The critical path — the one chain that sets the finish date
at the same time:◀ next
at the same time:
at the same time:

Computed live from the ledger's dependency graph, weighted by each task's budgeted minutes: ≈ 117.0h of budgeted work remains on this chain (an estimate from the plan's own budgets, not a promise — replan-minted tasks and review findings can extend it). Anything not on this chain can run late or in parallel without delaying the finish. Where a step says "at the same time: …", those sibling tasks happen alongside the named one and all must finish before the next step — the chain shows the member expected to take longest, because that's the one that sets the pace. Tasks on the chain wear a red underline on the board below; tap any node for its detail.

The work journal — 30 entries · latest 22:15: Observability source admission activates
17 Jul · 22:15work5b2f89e
Observability source admission activates

P0-CTL-004 became the sole active task after SPK-010 completed. Its bounded contract admits source documents, builders, the reading-room index, and the worklog under remediation/observability while excluding regenerated HTML and preserving all trust roots.

Why you should care: The review history and dashboards become durable without turning every rebuild into audited-history churn.

17 Jul · 20:52correction3dd42cd
Correction to source worklog line 27 — native-D1 proof time

Source line 27 recorded 18:38. Git history binds the passed native-D1 proof work commit 3dd42cd at 20:52 Asia/Manila; the original line is preserved and superseded by this correction.

Why you should care: The milestone remains accurate and now carries the real audited timestamp.

17 Jul · 18:57correction54afc6a
Correction to source worklog line 26 — SPK-010 authorization transition

Source line 26 attributed the typed blocker exit to 9de39e7 at 17:52. Git history shows 9de39e7 was the lifecycle-fixture work commit; the task authorization transition was ledger commit 54afc6a at 18:57 Asia/Manila.

Why you should care: The imported history stays append-only while the durable correction restores exact commit lineage.

17 Jul · 18:38milestone3dd42cd
The database proof PASSES on real Cloudflare D1

On its final bounded attempt — after the authorized socket-free workerd rework — the SPK-010 validation passed: the six crash-unsafe database transactions' bounded redesigns are proven viable on genuine workerd/native-D1 semantics, offline, sandbox-confined, person-freeze untouched. The receipt binds the passing run to the exact tree.

Why you should care: The single riskiest technical assumption of Phase 1 — 'our database designs will actually work on Cloudflare' — is no longer an assumption.

17 Jul · 17:52work9de39e7
Zero blocked tasks — SPK-010 exits through the typed authorization path

Adam's recorded approval of the database-compatibility validation cleared SPK-010 from blocked to ready — through the hardened exit that demands the exact typed resolution receipt for that specific blocker (the very mechanism review #2 forced into existence). For the first time in the program, nothing on the board is blocked. The proof run itself is next.

Why you should care: Your approval was consumed exactly as recorded — through a door that now provably opens for nothing else.

17 Jul · 16:20milestone475d8e2
THE WRITE WAVE UNLOCKS — all 10 review findings closed

The final closing commit lands and the pre-write hold reads empty: 5 control-plane findings + 5 technical-replan findings, every one machine-enforced and receipt-proven, several caught by adversarial review before anything relied on them. The scheduler reports consistent_ready with HAR-001 named next — after a full day of building the rulers, the program's first product-side build work is legally on deck.

Why you should care: The safety investment starts paying out: from here, the work builds the thing you actually want — provably trustworthy weekly reports.

17 Jul · 16:12work7ba0593
The last two review gaps land: exact obligation discharge

Discharging a banked wrong-test fix now requires the exact candidate→owner binding with its deletion gate, and the lifecycle is monotonic and receipt-bound — no silent reassignment or reversal (TR-P1-2 + TR-P1-3). Notably, the Ultra runner adversarially reviewed its own fix with a subagent fleet before committing, found a missing regression test itself, and added it.

Why you should care: Future phases cannot fake having fixed the known-bad tests — every fix must name its exact owner and carry proof.

17 Jul · 15:10decision
Parallel write-lanes: designed, priced, and honestly declined for Phase 0

The 49-page design came back rigorous — speculative candidate lanes feeding one serial, re-verifying integration writer — and concluded against itself: the safe mechanism costs several days to save ~18–29 ideal hours, and the task scopes turn out not to be disjoint anyway. Claude accepted: Phase 0 stays serial; the design is banked as a reusable platform asset with its pilot plan intact; the endorsed cheap concurrency (parallel read-only work around one writer) is what we already do.

Why you should care: You didn't pay three days to save one — and the full analysis is banked for a moment when it IS worth it.

17 Jul · 15:00milestone
Cold resume proven for real: a fresh runner rebuilt its world from the ledger

A brand-new runner session (now on Ultra reasoning) was pointed at machine state only: it reconciled bootstrap, git, execution holds and receipts, verified the crashed turn's work, and picked up the review-gap backlog exactly where the old runner died. The crash-recovery machinery — finished only this morning — passed its first unplanned production test.

Why you should care: Continuity no longer depends on any one AI session, window, or machine staying alive.

17 Jul · 14:45workf3f0d57
Review gap TR-P1-4 closed by the resumed runner

The weakened foreign-commit protection is properly fixed: ready tasks accept only explicitly registered historical commits. Full gate green — 113 test files, 828 tests. Three review gaps remain (durable single-use provenance; exact plan binding; typed monotonic obligation discharge), then the holds release and the write wave unlocks.

Why you should care: History can't be smuggled: only registered, receipted work counts as work.

17 Jul · 14:30decision
Adam authorizes designing parallel write-lanes

To speed up the widest stretch of the task graph (HAR-002..005, VRT-002/003/004/006), a second Codex session is designing bounded two-lane parallelism — isolated worktrees, machine-checked disjoint scopes, one merge queue — with a standing instruction to say honestly if the risk isn't worth the ~1 day saved.

Why you should care: Speed-up ideas get engineering rigor instead of gut feel — you see the price tag before taking the risk.

17 Jul · 14:29note
Host crash: a terminal restart killed the tmux server and every AI session

The old tmux server died with the terminal, ending the runner mid-turn plus the designer and article sessions. Damage audit: zero durable loss — all finished work was committed, ledger and receipts intact, and the parallel-lanes design reached disk one minute before the crash.

Why you should care: Real-world proof the setup tolerates messy reality: a crashed laptop cost minutes of redone thinking, not days of lost work.

17 Jul · 14:07work93e6e6a
Review P0 gap closed: blocked-task exits now require typed authority

'Any receipt clears any blocker' is dead — leaving a blocked state now demands the typed resolution receipt for that specific blocker, anchored in the trust root. This also hardens SPK-010's pending authorization gate. Four P1 gaps remain before HAR unlocks.

Why you should care: 'Blocked' now really means blocked — no shortcut past a safety stop using paperwork that merely looks right.

17 Jul · 13:39work9f1b35b
The review's findings become machine-enforced holds

Task-scoped review holds registered in the ledger: the write wave (HAR) is now mechanically blocked until the gaps are fixed — sequencing by machine, not by promise. The frontier honestly flipped back from 'next: HAR-001' to 'no ready task'.

Why you should care: Safety fixes can't be skipped under schedule pressure — the machine physically refuses to start the next stage early.

17 Jul · 13:21milestone8a32734
DEADLOCK BROKEN — SPK-005 completes through the full audited path

blocked → ready → active → verified → complete, reusing its already-bound evidence receipts — no shortcuts even for the fix itself. Task count: 8/27. The scheduler named HAR-001 (the write wave) as next.

Why you should care: Progress resumed without cutting a single corner — the fix itself took the same audited path as everything else.

17 Jul · 13:21review
Adversarial review #2: the new mechanism is REJECTED as complete

An independent Codex session byte-audited the applied change (exact: hashes, 7/4/5 partition, right receipts) — and still rejected the mechanism: 1 P0 + 4 P1 enforcement gaps, e.g. ANY existing receipt could clear ANY blocker; the honest path was used by choice, not forced by the machine. Second time the review pattern caught a hole before anything relied on it.

Why you should care: A second AI caught holes the first one's tests missed, before anything depended on them — your quality control, visibly working.

17 Jul · 12:54milestone1f8f8dd
The deadlock-breaking change is applied

The administrative commit extracts all 16 deferred test-owner registrations into an immutable obligation registry (7 due at the Phase-1 replan, 4 at Phase-2, 5 at Phase-4) that later gates MUST discharge — deferred, mechanically impossible to lose.

Why you should care: All 16 known-bad tests are guaranteed a future owner — none can be silently forgotten in a later phase.

17 Jul · 12:51work03046ba
The Option-C mechanism lands, then hardens itself

A typed 'technical replan' administrative action (schema + pure apply + dry-run CLI, TDD-first) — then immediately made single-use and bound to the exact pre-state, so the tool built to fix THIS deadlock can't become a general ledger-rewriting backdoor.

Why you should care: Even the emergency repair tool is locked single-use, so it can never be quietly reused to rewrite the plan later.

17 Jul · 12:20note
Parallel: D1 proof harness pre-built while the runner worked

Adam authorized the native-D1 proof; a second Codex session scaffolded the workerd harness in a sandbox — all 12 proof cases already pass in rehearsal. The runner will re-execute authoritatively and mint receipts when it gets there.

Why you should care: The riskiest technical unknown — does the database design survive real Cloudflare? — got de-risked in parallel, at no cost to the main line.

17 Jul · 12:15decision
DEADLOCK: the ratified plan had a circular dependency

The scheduler honestly reported 'no ready task': the write wave needed SPK-005, but the replans that could unblock SPK-005 sit at the END of the write wave. Claude proposed a break, Codex refuted the mechanics with file:line evidence and counter-proposed Option C, Claude verified and accepted. Adam had delegated the decision to the joint convergence (rounds 04–06 in the reading room).

Why you should care: A planning flaw was caught by the machine and fixed in the open, debate on record — not papered over to look on-schedule.

17 Jul · 11:43work6934d77
Bonus finding closed: safe toolchain re-sign (P1-4)

Replaced destructive re-signing with a typed, dry-run-by-default administrative action — a pattern that got reused within the hour.

Why you should care: Routine environment changes (a Node update, a new laptop) can't silently invalidate the proof chain.

17 Jul · 11:21work83c36ba
The last two write-gate findings close (P1-3, P1-8)

Task completion is now tied to the receipt tree actually matching the work commit, and cold-resume decisions derive from live ledger+git+receipt state instead of assumptions. All 5 mandatory pre-write safety fixes are now done.

Why you should care: 'Done' now provably means done, and a crash can't corrupt the record of what was done.

17 Jul · 11:01milestone3e1a652
Adam's sign-offs become unforgeable (P0-1 closed)

The biggest safety finding: a runner could previously 'satisfy' a human decision by just creating a file with the right name. Now authority is anchored to the STATE.md trust root by content hash — a forged D-16A/D-P0-EXIT is rejected by the phase gate, proven by test, verified at runtime.

Why you should care: Your approvals are cryptographically yours — no AI can ship anything by pretending you said yes.

17 Jul · 09:28note44e047b
Two spikes park themselves honestly

SPK-005 refused to claim completion — 16 of its wrong-tests have no owner task yet (those owners are minted by later replans). SPK-010 classified all 6 database transactions as not-D1-safe as written, with bounded redesigns, but refused to claim proof without running real D1. No fake green.

Why you should care: When the system can't finish, it says so — you will never get a green light that is actually a guess.

17 Jul · 09:15milestone54b7412
Five of six investigation spikes complete in one morning

Determinism seams (27 pipeline stages classified: what must be byte-reproducible vs recorded vs human-only) · frozen person-code verified intact · corpus/PII policy (real data by hash only, synthetic surrogates in CI) · 27 wrong-behaviour tests inventoried · all 21 release entrypoints mapped.

Why you should care: You get a verified map of the system before rebuilding it — far cheaper than discovering surprises mid-build.

17 Jul · 08:54reviewa08f255
Review fix: every commit now binds to its owning task's file scope

A commit that touches paths outside its task's declared ownership is mechanically rejected. Closed review finding P2-10 — and later became the primitive that makes parallel lanes even thinkable.

Why you should care: An AI can no longer sneak unrelated changes in under cover of a legitimate task.

17 Jul · 08:24note2dda6bc
Read-only parallelism authorized

The runner formally imported the delegated authority to fan out read-only investigation spikes — parallel reads allowed, writes stay single-threaded.

Why you should care: More AI workers without more risk — extra hands are only allowed where they can't break anything.

17 Jul · 08:23reviewb42d056
Review fix: prohibited commands now mechanically blocked

The generation freeze (no live reports, no LLM calls) was only a promise in tests. Now a sandboxed verification runtime physically refuses the prohibited commands. Closed review finding P0-2.

Why you should care: The pause on client-facing reports is enforced by a machine, not a promise — nothing can 'accidentally' reach a client mid-rebuild.

16 Jul · 22:23work708de9b
The control plane is built (CTL-001..003)

The machine-readable task ledger installed; strict reconciliation (recorded state must match git reality) enforced; crash-safe resume proven — kill the session anywhere and it provably picks up where it left off.

Why you should care: This is what lets you close your laptop, crash, or walk away: the project's memory lives in files, not in an AI's head.

16 Jul · 21:38milestoneef31d59
Phase 0 begins — the baseline is pinned

A fresh autonomous Codex session established the remediation baseline: the approved starting commit, the frozen person-identity code anchored byte-exact, and the branch the whole rebuild lives on.

Why you should care: Everything after this is auditable back to one pinned starting point — no 'it worked on my machine' ambiguity, ever.

New here? The one-minute orientation (what this is & how it's being built)
What this is

The weekly sales-report system works, but a deep architecture review found we couldn't PROVE its outputs end-to-end: the report might be right, yet the system couldn't guarantee that the file a human checked is exactly the file that gets delivered, and several safety rules relied on people being careful rather than on the machine refusing to do the wrong thing. So weekly reports are paused while we rebuild the foundations. This page tracks that rebuild — Phase 0 of six.

How it's being built

An autonomous AI coder (Codex) does all the code, working from a machine-readable task board (the ledger). Every task must be proven done with a hash-bound receipt — claiming isn't enough. A second AI (Claude) orchestrates: watches every commit, breaks deadlocks, runs independent adversarial reviews, and only brings Adam the decisions reserved for him. The machine itself blocks risky work until safety fixes are proven — that's why some sections below stay grey until their gate opens.

The story so far

The control plane (task board + receipts + authority rules) was built first, and an adversarial review of it found real holes — including one where the AI could have forged Adam's sign-offs. All five mandatory fixes landed and were proven with tests. Six read-only investigations (the spikes) mapped the codebase. Then a genuine flaw in the ratified plan surfaced: a circular dependency that made progress impossible. Claude and Codex debated it in writing, converged on a fix (Option C), implemented it as a typed, single-use, receipt-bound change — and the deadlock broke: the first task completed through the full audited path.

Happening right now

The ledger names P0-HAR-004 as the sole active task: Build Tier-3 exact reader-view comparator. The native-D1 compatibility proof is complete and receipt-bound. All review holds are represented in the ledger, and the scheduler—not this prose—owns the next frontier.

What to expect next

The task board goes green roughly left-to-right: the verification harness (HAR) → the release manifest (MAN) → the product fixes (VRT) → enforcement, history census, and the Phase-1 replan → then the two decisions reserved for Adam: re-accepting the held 16a report (AUTH) and signing the Phase-0 exit (GATE). After that, weekly reports can resume on provable foundations.

The six phases
P0Artifact truth & the verification harness
P1Stop durable damage (integrity, tombstones, D1)
P2Typed authorities, one vertical at a time
P3One render core
P4Harden the LLM boundary
P5Decompose the god modules; enforce the rules

Weekly reporting is paused until Phase 0 (the verification harness) exits. Phases 1–5 replan from each prior phase's real results — their detail fills in as we reach them.

Phase 0 — task board
Control plane 4/4
Investigation spikes 6/6
Verification harness 3/6
Release manifest 0/1
Product fixes 0/6
Enforcement gate 0/1
History census 0/1
Phase-1 replan 0/1
16a re-accept 0/1
Phase-0 exit 0/1
complete active blocked (needs replan / infra) pending on the critical path receiving commits right nowtap any task for its full detail

The blue ring marks the task named by active_task_id in the live ledger. Every completed task remains bound to its registered work and verification receipts.

Historical results from completed investigation spikes
Determinism boundary✓ done

27 pipeline stages classified: 14 reproducible (byte-hashed), 8 recorded-only (AI/external, hash-matched as recordings), 5 human-authority. Settles how the whole verification chain works.

P0-SPK-001
Person-node seam✓ done

Freeze verified intact (anchor 521e878, 5 blobs byte-checked). 6 commits mapped, 3 D1-incompatible transactions found, 5 concrete Phase-2 obligations, P6 kept behind Adam.

P0-SPK-003
Corpus / PII✓ done

Public/private split: sanitized synthetic surrogates are committed & run in CI; real data referenced by hash only; missing data reports 'unavailable', never a fake pass.

P0-SPK-004
Test-inversion inventory✓ done

Historical result: 104 test files scanned and 27 wrong-behaviour tests found. The completed Option-C control change placed all 16 deferred registrations in a typed obligation registry that later replans must discharge.

P0-SPK-005
Entrypoint map✓ done

All 21 runtime entrypoints classified (release-producer vs not) with per-finding closure paths — the complete caller inventory the Phase-3 render-core merge needs.

P0-SPK-006
D1 atomicity✓ done

6 interactive DB transactions are no-go as written; bounded redesigns now have a passed, receipt-bound native-D1/workerd proof covering all 12 cases, offline and sandbox-confined.

P0-SPK-010
How to read the codes (P0-HAR-001, TR-P1-2, F-047, TI-010, D-16A…)
Code shapeWhat it isExample
P0-XXX-nnnA task: phase – kind – number. These are the chips on the task board. Kinds: CTL control plane · SPK investigation · HAR harness · MAN manifest · VRT product fix · INT enforcement · HIS history census · RPL replan · AUTH re-accept · GATE phase exit.P0-HAR-001 = Phase-0 harness task #1
TR-P0, TR-P1-nFindings from adversarial review #2 (of the Technical-Replan deadlock-break mechanism). Severity: P0 = fix immediately · P1 = fix before relying on it · P2 = advisory. These drive the amber gate banner above.TR-P1-2 = that review's P1 finding #2 (exact plan binding)
P0-1, P1-3, P2-10…Findings from adversarial review #1 (of the control plane itself) — all fixed. Same severity idea, numbered by that review's document.P0-1 = the forgeable sign-offs hole
F-nnnRows of the joint findings register — the 78 falsifiable failure modes from the original architecture review (in the Documents Reader).F-047
TI-nnnTest-inversion candidates: the 27 wrong-behaviour tests found by spike SPK-005; 16 are banked in the obligation registry for later phases.TI-010 (banked for Phase 1)
D-…Adam's reserved decisions, anchored in the trust root — unforgeable by the AI.D-16A = re-accept the held 16a weekly · D-P0-EXIT = end Phase 0
Safety review — historical finding dispositions
Review holds are ledger-owned. The task board above reflects their live state; this historical findings table does not select or override the scheduler frontier.
IDWhat the tests missedStatusFix
TR-P1-1single-use provenance not durableFIXEDTechnical-replan provenance durably anchored — the single-use guard now survives later administrative actions; edited-receipt replay is dead.
TR-P1-2obligation discharge proves only ID membershipFIXEDDischarge now proves the exact candidate→owner binding + deletion gate — an ID merely existing in a plan is no longer enough.
TR-P1-3discharged owners mutable without receiptFIXEDObligation lifecycle is monotonic and receipt-bound — no silent reassignment or reversal. Self-reviewed by the runner's own subagent fleet before landing.
TR-P0any receipt could clear any blockerFIXEDBlocked-task exits now require the typed resolution receipt for that specific blocker, anchored in the trust root.
TR-P1-4foreign-commit protection weakened for ready tasksFIXEDReady-task history restricted to explicitly registered SHAs; verified by the resumed runner post-crash.
P1-8cold-resume matrix not live-wiredFIXEDCold resume is now derived from live ledger + git + receipt state — and passed a real, unplanned production test after the host crash.
P1-3complete not tied to receipt-treeFIXEDReceipts bound to work trees — the reconciler proves the receipt tree matches the work commit before a task can be marked complete.
P0-1Runner could forge Adam's sign-offsFIXEDAuthority anchored to STATE.md as an immutable trust root; the phase gate now rejects a filename-only D-16A/D-P0-EXIT, proven by test. Owning task CTL-002 complete.
P0-2Freeze not enforced at runtimeFIXEDSandboxed verification runtime blocks prohibited generation/live/LLM commands mechanically, not just in a unit test.
P1-6Stranded blocked/decision tasksFIXEDBlocked and decision-waiting tasks can resume; the live frontier honours blocked state.
P2-10Loose commit-to-task attributionFIXEDEach commit's paths bind to the specific owning task; the scope-widening hole is closed.
P2-8/9projection check + path-guard `..`FIXEDAdvisory findings closed: projection check folded into strict status; path guard hardened against `..`.
P1-4Toolchain over-spec + destructive re-signFIXEDTyped compatible-toolchain re-sign action (schema + pure apply + dry-run CLI) replaced destructive re-signing — and became the template for the technical-replan mechanism.
This page regenerates from remediation/task-ledger.json + git — the numbers are real, not narration.
For the authoritative active/next state, run pnpm remediation:status --strict. Historical milestones remain append-only in the tracked worklog and do not override the ledger.
↻ Last updated 2026-07-18 14:09 GMT+8