From 18c57f2e9dce0589c1f0e24dd4d939aea50cee86 Mon Sep 17 00:00:00 2001 From: tegwick Date: Wed, 12 Aug 2026 00:00:50 +0200 Subject: [PATCH] HANDOFF.md: what a generated brief cannot say MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every workplan is done and nothing is in flight -- the session stopped at a boundary, not mid-change -- so the risk on pick-up is not lost context but MISREAD context. Records the three findings most likely to be misread (attack_relief is unreachable-then-real, not null; H1's rejection covers half of H1; the scope module is inert in round one), what is waiting on ground-game versus what is ours, the conventions a new session trips over (hub is a read model; workplan status is active not in_progress; make vendor; replays/ is gitignored), and the two habits that paid for themselves repeatedly -- mutate every control, and test the path a player takes. Linked from the README above the gates, since it should be read before design — the finding register QUEUE (open findings) repro F17 degenerate raised 6d ground-game repro F18 inert raised 6d clay-borg repro F24 inert raised 5d clay-borg repro F25 inert raised 4d clay-borg repro F26 inert ruled 4d ground-game repro F27 unplayed reported 4d clay-borg repro F31 unplayed reported 4d clay-borg repro F30 degenerate ruled 4d ground-game NOTES (not reportable — GameDesign §3.1) F12 degenerate 11d F15 underdetermined 7d F21 degenerate 6d findings 28 (+3 note(s)) with a resolving reproduction 19/28 = 67% target 100% open, lacking a reproduction 0 target 0 reproductions green while open 0 target 0 notes past 30 days 0 target 0 closed (log) 20 [U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, F11, F13, F14, F16, F19, F20, F23, F22, F29, F28]. Co-Authored-By: Claude Opus 5 --- HANDOFF.md | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 7 +++ 2 files changed, 137 insertions(+) create mode 100644 HANDOFF.md diff --git a/HANDOFF.md b/HANDOFF.md new file mode 100644 index 0000000..dec62e4 --- /dev/null +++ b/HANDOFF.md @@ -0,0 +1,130 @@ +# Handoff — 2026-08-09 + +Written at the end of the session that landed CB-WP-0043 through +CB-WP-0050. **`.custodian-brief.md` is generated; this is not.** It says +what a generated index cannot: what is true, what is merely reported, and +what would be a mistake to assume. + +Start with `make all` (expect green), then `make design` for the finding +queue and `make panels` for the current measurements. + +--- + +## 1. Where the work stands + +**Nothing is in flight.** Every workplan is `done`; no task is `todo`. +That is deliberate — the session was stopped at a boundary, not +mid-change. + +The last four passes built one capability, in this order, and each +depends on the one before it: + +| pass | what it made possible | +|---|---| +| CB-WP-0047 | all four Scenarios and all three Modes are selectable | +| CB-WP-0048 | a configuration is a **point in aspect space**, not a package name | +| CB-WP-0049 | policies that can *see* an objective and a module | +| CB-WP-0050 | a panel that sweeps configurations and says what it could not measure | + +Before this, the engine dealt `SCN_01` and only `SCN_01`, and `Variant` +was a three-armed enum that could not name a two-module configuration. + +--- + +## 2. The three things most likely to be misread + +**(a) `attack_relief.self_soothe_ge4` is not "measured, no effect".** It +is **unreachable in the printed game** — peak Stress never exceeds 2 and +the gate is at 4 — and *real* once a `problem_stress` module supplies +pressure (F31). Its panel row carries `← never fired: UNMEASURED` for +exactly this reason. Do not read that row's numbers as a verdict on it. + +**(b) H1's rejection covers half of H1.** CB-EV-0030 measured H1 with +bots that never attacked, so H1-B had no opportunity in any of those +games. The rejection stands on flat pressure alone. Corrected to +ground-game as GROUND-RPT-0007. + +**(c) `problem_stress.scoped` is inert in round one.** Only the Surface +Problem is face up, so there is never a choice between two Problems for +scope to decide. Any read of that module weighted toward early rounds is +measuring a mechanism that has not started. + +--- + +## 3. What is waiting on ground-game + +Not ours to move, and worth not pre-empting: + +- **F17** — ATTACK's degeneracy; a design judgement, open longest. +- **F26, F30** — `ruled`, tracked on their side (GROUND-WP-0008). +- **Unanswered asks:** the two in GROUND-RPT-0006 §5 and the reachability + question in GROUND-RPT-0007 §4. + +Reports are written into `../ground-game/reports/` and **left +uncommitted** — their maintainer commits them. That is the established +pattern, not an oversight. + +--- + +## 4. What is ours + +### Blocked on capability, not effort + +**F27 — no policy models a rival playing their objective.** This is the +*whole* of what keeps F27 open. The competitive modes are measured by +seats that never anticipate an opponent, and no amount of additional +measurement fixes that. Opponent modelling is the largest single item on +the board. + +### Debt, small and dull + +- **F18 / F24 / F25** — the "engine hardcodes what the edition states" + family. F25 shrank when the threshold moved to the Scenario card + (CB-WP-0047); F24 is the Solution deck as a Rust literal. +- **62 untagged literals** in `make facts-check` — reported, not failing. +- **11 trial notes read `unrecorded`.** Permanent by choice: they predate + CB-WP-0046's marker stamp, and inventing provenance is the defect that + pass existed to avoid. + +### Named in workplans, never started + +- **A second game.** `clay-borg` claims to be a general engine and has + exercised exactly one. Everything built this week assumed that claim + without testing it. **My recommendation for what to do first.** +- **Mode × module is unswept.** `module-panel` runs SHARED GROUND only, + and CB-EV-0033 showed the modes move *who wins*. +- **Per-round effect** is unreported, which is where `scoped` lives. + +--- + +## 5. Conventions a new session will trip over + +- **The State Hub is a read model.** Never `create_workplan` or + `create_task` by hand: write the file, commit, run `fix-consistency` + (its C-06 check registers it and writes the ids back). +- **Workplan status is `active | done | paused`.** `in_progress` is a + *task* status; using it on a workplan 422s on every sync. +- **`make vendor`** re-syncs the edition mirror from `../ground-game` and + regenerates the digest block by walking `editions/`. Upstream changes + several times a day; a red `edition-check` usually means run this. +- **`replays/` is gitignored** — a build artifact, not a fixture. +- **Reports to ground-game** are `GROUND-RPT-####`, written into their + `reports/`, with a clay-borg `evidence/CB-EV-####` as the upstream. + +--- + +## 6. Two habits this session paid for repeatedly + +**Mutate every control before trusting it.** Three separate controls in +this session were *vacuous* and said so only under mutation: a peek +detector whose variation was invariant under what a violator reads; a +"module-aware seat is ordinary under the baseline" check that swept +positions where no ranking term could change the answer; and a panel that +printed real-looking numbers for a module that had never fired. Each +looked correct and proved nothing. + +**Test the path a player takes, not the helper.** `--module +problem_deal.pressure_deck` played a full baseline game and reported +success while every unit test of `resolve()` passed. CB-WP-0033 found the +same shape and said it plainly: *only the integration test proves the +driver.* diff --git a/README.md b/README.md index b86f1d0..ce69094 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,13 @@ A rebuild from scratch simulation and games engine framework set up to assimilat Licensed under the Target Revenue Source License (TRSL V1C1) — see [LICENSE](LICENSE); canonical text lives in the org's `target-revenue` repository. +## Picking the work back up + +**[`HANDOFF.md`](HANDOFF.md)** — written by hand at the end of each +working session, unlike the generated `.custodian-brief.md`. It records +what is true, what is only *reported*, and what would be a mistake to +assume. Read it before `make design`. + ## Running the gates ```sh