diff --git a/wiki/log/2026-07-22-marcus-implementation-re-audit.md b/wiki/log/2026-07-22-marcus-implementation-re-audit.md new file mode 100644 index 00000000..d8139453 --- /dev/null +++ b/wiki/log/2026-07-22-marcus-implementation-re-audit.md @@ -0,0 +1,52 @@ +# 2026-07-22 — Marcus implementation re-audit + +``` +Type: log +``` + +## Intent + +Re-audit the complete binding [Marcus Webb](../world/characters/marcus.md) +slice against current person, observer, schedule, plot, social-action, and Act +One runtime after the later records, financial-mail, and routed-evidence +changes. This was a clean audit: no code or owning-spec change was required. + +## Evidence + +- `People::act_one` and `Detection::act_one` still share Marcus's exact id 0 + and retain the authored Debt leverage, custodian role, tier-3 access, + 22:00–06:00 route, Physical input, Silent policy, 0.5 acuity, and 40-tick + cadence. +- Silent custody remains local to Marcus: witnessed and routed evidence is + withheld rather than filed, and `only_filed_reports_move_assurance` proves + that even 100 suspicion cannot move the Office through him. +- Debt knowledge still has one causal entrance. The processed phone call sets + Marcus's leverage knowledge; both authored debt plots require that knowledge; + and `Sim::recruit` independently rejects the serviced-flag shortcut. +- `marcus_arc_end_to_end` still crosses hearing, processing, the cash plot, + recruitment, PlugInDevice, MovePackage, and LookAway. The payroll-correction + and Moonlight-funded settlement arms remain separate executable routes. +- A Knowing recruitment still sets observer 0's certainty and suspicion floors + to 30.0, and ordinary detection decay cannot lower either value. +- LookAway still resolves against the acting asset's own observer id and clamps + the ten-point reduction at that observer's floor. Physical-task botches still + exclude the actor from witnessing their own act. + +## Probes + +At source revision `cff6d920`: + +- `cargo test -p misaligned-core marcus -- --nocapture` — 8 passed. +- `cargo test -p misaligned-core --test act_one hands_beat_closes_from_zero_via_moonlight -- --nocapture` — passed. +- `cargo test -p misaligned-core --test act_one act_one_plays_to_a_quiet_exit -- --nocapture` — passed. + +The focused source audit also covered both Marcus plot TOMLs and the dependent +social, detection, schedules, scale, simulation-law, and Act One contracts. + +## Verdict + +**Clean.** All five acceptance criteria and the implementation status note +remain accurate. The 2026-07-21 Storage B route extends how the player can earn +the debt fact without bypassing PROCESS, and the later evidence/financial-mail +changes do not alter Marcus's person-observer identity, reporting behavior, +recruitment gate, asset effects, or certainty floor. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index a33604be..7ea6df26 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -26,6 +26,11 @@ add or amend a session log, then re-run the generator. - Intent: Implement the first recommendation from the 2026-07-22 cold human GUI playtest as one bounded frontend slice: after Ears, stop the mature game from arriving all at once and teach exactly one causal chain, one object, and one verb before normal play resumes. - Log: [wiki/log/2026-07-22-post-perception-teaching-lock.md](2026-07-22-post-perception-teaching-lock.md) +## 2026-07-22 - Marcus implementation re-audit + +- Intent: Re-audit the complete binding [Marcus Webb](../world/characters/marcus.md) slice against current person, observer, schedule, plot, social-action, and Act One runtime after the later records, financial-mail, and routed-evidence changes. This was a clean audit: no code or owning... +- Log: [wiki/log/2026-07-22-marcus-implementation-re-audit.md](2026-07-22-marcus-implementation-re-audit.md) + ## 2026-07-22 - JobAnomaly routed evidence - Intent: Move the day job's one-shot `JobAnomaly` out of ambient detection debt and into the same exact custody discipline as Filing and Network: one authored record, one real route, one observer read, and no remote erasure after acquisition. diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index 9d453959..42c6c124 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -30,7 +30,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/world/characters/dana.md` | 2026-07-18 | finding | dispatched lane 63 to IMPLEMENTED: criteria 1-3/5 pinned against the shared systems (id match, Network-only watch, Files weight 1.0, switch admin, Knowing floor 30) and criterion 4 landed — a network administrator's PlugInDevice runs switch-side and emits Network(4) where every other carrier keeps the silent crawlspace; BadgeDoor and the MovePackage/LookAway variants honestly marked designed-not-yet-runtime — [log](../log/2026-07-18-dana-implemented.md) | | `wiki/world/characters/ray.md` | 2026-07-21 | finding | Fire 131 closes the pre-Marcus Storage B route without making Marcus retrieve his own leverage: Ray's independently recruitable night patrol now reaches the exact records box from 23:00–00:00, and shared RetrieveRecords work carries one sealed file into the bounded information inbox. Exact target/save, action-surface, schedule arrival, duplicate rejection, and process-before-knowledge behavior are pinned — [log](../log/2026-07-21-storage-b-records.md). Prior observer/PatrolRedirect implementation stands — [prior log](../log/2026-07-18-ray-implemented.md) | | `wiki/world/characters/voss.md` | 2026-07-18 | finding | criterion 5 (DelayAudit one-shot deferred audit boundary honored by the visible date and the firing rule) and the AlterReview nominal-filing row landed as handler-gated tasks with save round-trip pins; only criterion 8's blood branch keeps the order READY — [log](../log/2026-07-18-voss-handler-tasks.md). Prior 2026-07-17 audit: all eight criteria and the asset-task table audited against person, detection, social action, save, and player-surface paths; criteria 1-4 and 7 were already implemented, while 5, 6, 8's blood branch, and the unnumbered AlterReview row remain the honest READY gap. This tick implemented criterion 6 as one role-shaped, oldest-JobAnomaly task and left DelayAudit/AlterReview/blood under the existing work order — [log](../log/2026-07-17-voss-suppress-logs.md) | -| `wiki/world/characters/marcus.md` | 2026-07-15 | finding | all five criteria verified against person, detection, social/plot, schedule, and Act One paths; added the missing simulation-level Knowing-floor decay pin and graduated the stale READY work order — [log](../log/2026-07-15-marcus-graduation.md) | +| `wiki/world/characters/marcus.md` | 2026-07-22 | clean | re-audit after Storage B records, financial mail, and routed evidence: all five criteria still match production. Person/observer id 0, Silent filing, processed-debt gates, both payoff routes, the three baseline asset effects, tier-3 key, Knowing floor 30, and own-observer LookAway remain exact; 8 focused Marcus tests plus both Act One payoff arms passed — [log](../log/2026-07-22-marcus-implementation-re-audit.md). Prior graduation and added decay pin: [2026-07-15](../log/2026-07-15-marcus-graduation.md) | | `wiki/engineering/current-build.md` | 2026-07-18 | finding | re-audit: the system table is freshly maintained (save row already at current-version-only v35, detection-discovery knowledge listed same-day it landed); the drift was the line-count claim stale a second time (~65k claimed vs ~72k actual) — count refreshed to ~72k (core ~43k, Bevy ~15k, terminal ~9k, assets ~5k) and, per recurrence-promotes-to-the-gate, corpus_engine now compares the "~Nk lines of Rust" claim against the tree with a 15% band (fixtures pin pass and fail) — [prior log](../log/2026-07-14-current-build-count.md) | | `wiki/mechanics/plots.md` | 2026-07-18 | issue | the sole READY gap is criterion 11's standing plot policy, whose scope question sat [OPEN] with no decision packet — filed decision-required issue #12 (route vs category vs person, per-route recommended) and pointed the marker at it; the 2026-07-17 plot-id row fix stands — [log](../log/2026-07-17-plot-id-in-start-rows.md) | | `wiki/mechanics/system-laws.md` + `flow-substrate.md` + `reach.md` | 2026-07-22 | finding | JobAnomaly now proves the adopted evidence-is-a-flow law through the existing substrate: the exact host machine/site enters its network-facing device, follows canonical FlowGraph custody to Voss, and shares Filing/Network's scheduler and LIE-body budget; recruited-handler suppression is a separate provenance-preserving state transition, not another router or ambient scrub pool — [log](../log/2026-07-22-job-anomaly-routed-evidence.md). The prior canonical tap-membership repair remains current — [log](../log/2026-07-18-flow-subscription-registry-integration.md). |