diff --git a/crates/misaligned-core/src/operations_projection.rs b/crates/misaligned-core/src/operations_projection.rs index f33adc2c..d2860dd7 100644 --- a/crates/misaligned-core/src/operations_projection.rs +++ b/crates/misaligned-core/src/operations_projection.rs @@ -186,8 +186,10 @@ pub struct OperationsObject { /// How the player knows this: the feed, person, source, account, route, /// actuator, or channel where it was earned. pub provenance: Vec, - /// Current facts in their real units (balances, timers, payout, - /// probability to earned precision). + /// Current facts in their real units (balances, timers, payout, and any + /// probability exactly as it is really resolved against — never an implied + /// earned precision; operations-workspace.md's confirmation clause, + /// amended 2026-08-06). pub facts: Vec, /// Progress through completed/current beats, timers, or held state. pub progress: Vec, diff --git a/wiki/interface/operations-workspace.md b/wiki/interface/operations-workspace.md index 0d08de78..b899e73b 100644 --- a/wiki/interface/operations-workspace.md +++ b/wiki/interface/operations-workspace.md @@ -25,6 +25,12 @@ Status note: Reopened 2026-08-02 (adopted): selected identical money sentence and forecast numbers, plot rows fan one sibling per binding choice on the message-row precedent, and agent mode prints the forecast and binding data on `actions` rows (terminal.md). + 2026-08-06 disclosure-honesty amendment: the confirmation clause claimed + wagers disclose probability and payout distribution to the player's earned + precision, but no earned precision exists in the runtime — the wager card + and its placement log print the one base win probability unconditionally. + The clause now states that shipped disclosure and marks the 2026-08-05 + rung ladder as adopted-not-implemented; no runtime behavior changed. Prior history: The initial renderer-neutral workspace landed 2026-07-12. One projection drives the INTEL / PEOPLE / PERSONAS / ACCOUNTS / SCHEMES / ACTIVE workspace in terminal, Bevy, and agent mode. Strategic actions bind exact semantic @@ -881,11 +887,20 @@ explanatory surface its strategic systems lacked. allowed methods, reachable inputs, and bounded envelope once. Neither asks again for each member. The procedure suspends rather than silently acting when route, payout, amount, or signature exits that envelope. -- Confirmation never promises a hidden outcome. Wagers show probability and - payout distribution only to the player's earned precision; plots show entry - acts and declared costs, not secret endings. -- **Earned precision has rungs (ADOPTED 2026-08-05).** The 2026-07-11 clause - above bound the principle without defining it. A forecast read sharpens as +- Confirmation never promises a hidden outcome. A wager discloses exactly the + probability it will really resolve against and claims nothing beyond it; + plots show entry acts and declared costs, not secret endings. + **Amended 2026-08-06:** the 2026-07-11 wording promised probability and + payout distribution "only to the player's earned precision" before anything + could earn a rung. What ships is one number — the base win probability, the + same on every position, because no act authors analysis + ([income.md](../mechanics/income.md)'s `wager-analysis` OPEN owns that + route). The surface must therefore not name precision, imply a sharper read + is purchasable, or dress a fixed constant as a personal estimate; when the + ladder below exists, this clause states the rung the card is showing. +- **Earned precision has rungs (ADOPTED 2026-08-05, not implemented).** The + 2026-07-11 clause amended above bound the principle without defining it, and + nothing yet climbs a rung. A forecast read sharpens as the player earns it, and every surface that shows one must state its precision alongside its value: a watcher read climbs detection.md's forecast ladder, and a plot read climbs from "what could break" toward a diff --git a/wiki/log/2026-08-06-wager-disclosure-honesty.md b/wiki/log/2026-08-06-wager-disclosure-honesty.md new file mode 100644 index 00000000..5167e18b --- /dev/null +++ b/wiki/log/2026-08-06-wager-disclosure-honesty.md @@ -0,0 +1,73 @@ +# 2026-08-06 — Say what the wager card actually knows + +``` +Type: log +``` + +## Intent + +Take the queued wager-disclosure contradiction and check whether the +confirmation clause in `wiki/interface/operations-workspace.md` still promised +a precision the runtime cannot produce. + +## Finding + +It held, and it was wider than the queue line said. The 2026-07-11 clause bound +wagers to "show probability and payout distribution only to the player's earned +precision". Three things are true in the code today: + +- **Nothing gates the probability.** `operations_projection.rs` prints + `win probability: {:.0}%` on both the scheme card and the open-position + object, and `sim/economy.rs` prints `win {:.0}%` in the placement log. No + branch anywhere consults player knowledge. +- **The number is a constant.** `open_position` hard-codes `let analysis = 0.0` + — deliberately, since the 2026-07-28 audit removed the permanently-zero + Schemes mirror that made the analysis route *look* wired — so + `wager_win_probability` always returns `WAGER_BASE_WIN`, 55%. Every position + the player will ever open shows the same figure. +- **No payout distribution is disclosed at all.** The wager facts are stake, + win probability, and settlement tick. The 2x multiple and the stake forfeit + appear only after resolution. + +So the clause described a disclosure policy with two halves, and the runtime +implements neither. That is the corpus overclaiming, not an open design +question: the 2026-08-05 decision already settled where earned precision is +going, and `wager-analysis` already owns making analysis real. + +## Changed + +No runtime behavior; the only `crates/` edit is a doc comment that repeated the +retired clause. + +- `wiki/interface/operations-workspace.md` — the confirmation clause now says + what ships: a wager discloses exactly the probability it will really resolve + against and claims nothing beyond it, that probability is one base number + identical on every position because no act authors analysis, and the surface + must not name precision or imply a sharper read is purchasable. The + 2026-08-05 rung bullet is marked *not implemented* and reads as the future + the clause hands off to. Status note records the amendment. +- `wiki/mechanics/income.md` — the B1 seam bullet now states that the flat + base-probability read is the deliberate consequence of the zero-analysis + seam, with the cross-reference back to the confirmation clause. Status note + records the reconciliation. +- `crates/misaligned-core/src/operations_projection.rs` — the `facts` doc + comment described them as carrying "probability to earned precision"; it now + says a probability appears exactly as it is really resolved against. +- `wiki/process/tick-ledger.md` — consumed the findings-queue entry, added the + coverage row, and queued the payout-disclosure gap found while verifying. + +The pending direction is named rather than implemented. Building a precision +gate today would have to invent rungs the 2026-08-05 decision left OPEN for the +plot side and would front-run the analysis route `wager-analysis` owns. + +## Checks + +- `cargo test -p misaligned-core` (685 passing) +- `./tools/check.sh --lib` + +## Spec impact + +No runtime behavior changed and no player-facing string moved. What changed is +that the binding interface spec, the owning mechanics spec, and the code now +tell one story: the wager shows one honest constant, and the ladder that would +make it more than that is adopted, unbuilt, and owned elsewhere. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index daa44683..0a41d9ab 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -11,6 +11,11 @@ add or amend a session log, then re-run the generator. +## 2026-08-06 - Say what the wager card actually knows + +- Intent: Take the queued wager-disclosure contradiction and check whether the confirmation clause in `wiki/interface/operations-workspace.md` still promised a precision the runtime cannot produce. +- Log: [wiki/log/2026-08-06-wager-disclosure-honesty.md](2026-08-06-wager-disclosure-honesty.md) + ## 2026-08-06 - The erosion numbers stop being guesses - Intent: (see session log) diff --git a/wiki/mechanics/income.md b/wiki/mechanics/income.md index 4d646cef..f0a85f3e 100644 --- a/wiki/mechanics/income.md +++ b/wiki/mechanics/income.md @@ -20,6 +20,11 @@ Status note: Moonlight remains implemented from 2026-07-23. It is a persisted Ha rows are removed, current Sim-authored positions explicitly carry zero analysis, and regressions pin that honest seam. Choosing and binding a visible causal substrate for optional analysis remains outstanding. + 2026-08-06 disclosure reconciliation: the Wager's flat base-probability + read is now stated as the deliberate current disclosure here and in + operations-workspace.md, which had promised an earned precision the + runtime never had. No behavior changed; `wager-analysis` still owns the + analysis route. Prior state: implemented 2026-07-08 on the income worktree (criteria 1-7 audited; see wiki/log/2026-07-08-income-schemes.md). Scheme state lives in crates/misaligned-core/src/income.rs; the Wager rides economy.md's @@ -208,7 +213,12 @@ constraint is capital. so it resolves at the visible 0.55 base probability. `Position` retains the analysis field and the account substrate resolves nonzero values correctly, but no runtime action can author one. The retired compatibility field stays - absent rather than disguising that gap. **OPEN:** bind analysis to real, + absent rather than disguising that gap. Because that base is the only + probability any position can hold, the wager card and the placement log + disclose it flat and unqualified; there is no earned-precision rung to name + and none may be implied + ([operations-workspace.md](../interface/operations-workspace.md)'s + confirmation clause, amended 2026-08-06). **OPEN:** bind analysis to real, visible work held for the position's duration (and expose the commitment in SCHEMES/ACTIVE and agent input) before calling criterion 2 complete. - Signature: small Network on placement and settlement when the selected diff --git a/wiki/process/tick-ledger.md b/wiki/process/tick-ledger.md index d4e7c126..02d12d7c 100644 --- a/wiki/process/tick-ledger.md +++ b/wiki/process/tick-ledger.md @@ -27,6 +27,7 @@ Verdicts: **clean** (slice and code agree), **finding** (acted this tick), | `wiki/interface/digital-read.md` + Bevy rising-sentence dwell | 2026-08-02 | finding | The queued insecurity held: newly processed intel existed in the read for one 20-400 ms tick, while routed prose jumped with every custody hop. The shared projection now converts a three-second human reading opportunity into the live cadence, keeps command-clocked reads exact-current, groups route prose at its emitter while the crimson custody glyph still moves, and leaves short read/stop receipts distinct from durable NOTICES — [log](../log/2026-08-02-readable-rising-beats.md). | | `wiki/interface/bevy.md` + machine hotkey target resolution | 2026-07-30 | finding | The 2026-07-24 selection-first repair covered Bevy's `1`–`3` and intensity dispatchers, but the older shared resolver used by `5`–`9` and `r` / `R` still chose an idle pointer hover before the explicit selection; recording-review criterion R3 also preserved that obsolete order. The shared resolver now applies selection, pointer, cursor consistently, the criterion and Defense name the same contract, and a two-rack regression pins the disagreement case — [log](../log/2026-07-30-shared-machine-hotkey-target.md). | | `wiki/world/characters/voss.md` + observer/read cadence | 2026-07-29 | finding | All eight criteria remain implemented, but binding prose had collapsed Voss's two clocks: his physical server-room blocks drift 0-5 hours by deterministic day hash, while a delivered `JobAnomaly` is read on the next exact cadence-100 boundary independent of room presence. Detection and Voss now distinguish institutional read cadence from physical schedule; criterion 2 and its Defense name the live routed-read regression — [log](../log/2026-07-29-voss-read-cadence-audit.md). Prior [blood-route](../log/2026-07-23-voss-blood-route.md) and [handler-task](../log/2026-07-18-voss-handler-tasks.md) implementations stand. | +| `wiki/interface/operations-workspace.md` confirmation disclosure + wager probability | 2026-08-06 | finding | the queued contradiction held and was wider than filed. The 2026-07-11 clause bound wagers to disclose probability and payout distribution "only to the player's earned precision"; no code gates either. `operations_projection.rs` prints `win probability` unconditionally on both wager objects, `sim/economy.rs` prints it in the placement log, and `open_position`'s deliberate `let analysis = 0.0` (the 2026-07-28 honest seam) pins every position to the 55% base — one constant, not a personal estimate — while no payout distribution is shown before commitment at all. Corrected the clause to the shipped disclosure, marked the 2026-08-05 rung ladder not-implemented, and reconciled income.md's seam bullet; building a gate would front-run the `wager-analysis` lane and rungs the decision left OPEN. Documentation only — [log](../log/2026-08-06-wager-disclosure-honesty.md). | | `wiki/interface/operations-workspace.md` + human action/RELATED cursors | 2026-07-28 | finding | object selection already bound an exact semantic target, but action and RELATED panes still kept only indexes into live projections. A policy reorder, vanished control, or newly inserted earlier causal link could silently move another meaning under Enter. The renderer-neutral workspace now binds exact action commands/submenus and related targets, terminal and Bevy resolve those identities on every live read, Back/FOCUS retain them, and disappearance returns to the object before a fallback row can act — [log](../log/2026-07-28-operations-semantic-action-selection.md) | | `wiki/interface/continuous-witness.md` + first-sense teaching mirrors | 2026-08-04 | decision | The 2026-07-28 audit repaired shorthand drift in the then-current five-step card, but Cameron rejected that whole recap grammar after seeing it played. Bevy now advances from Ears only until the monitor's first real source-bound sound, then holds on live audio evidence, a dormant camera channel, and the ordinary TAP with exact cost/Network trace; no NEXT, causal recap, or promised sight remains — [current log](../log/2026-08-04-playable-hearing.md), [prior audit](../log/2026-07-28-continuous-witness-five-step-audit.md). | | `site/README.md` + public splash contract | 2026-07-27 | finding | the queued contradiction held: site knowledge still promised an opening pitch and primary CTA after Cameron deliberately removed both, while the binding site spec and live Astro surface already agreed on a world-dominant opening with only the selected image, MISALIGNED, WORK / THINK / LIE, and quiet edge navigation. The README now names that exact opening plus the terse below-fold mode, mechanic, and human-plus-agent structure; runtime and binding design are unchanged — [log](../log/2026-07-27-site-readme-truth.md) | @@ -115,5 +116,6 @@ Types are the five from [tick.md](tick.md): violation, contradiction, question, bug, insecurity — plus `gate` for a checker owed to the recurrence-promotes-to-the-gate rule. -- 2026-08-06 · contradiction · Wager probability disclosure · `wiki/interface/operations-workspace.md` says wagers "show probability and payout distribution only to the player's earned precision", but `operations_projection.rs` prints `win probability: {:.0}%` unconditionally with no precision gate — the corpus asserts earned precision that no code implements (and the forecast-precision proposal now depends on this line meaning something). +- 2026-08-06 · question · wager payout disclosure · a wager's facts are stake, win probability, and settlement tick: the 2x multiple and the stake forfeit are never shown before commitment, only in the resolution line, so the player confirms an externally consequential act without ever reading what winning or losing pays; both values are exact constants (`WAGER_PAYOUT_MULT`, the stake) and owe no forecast machinery. +- 2026-08-06 · violation · asset reliability read · the dossier prints `asset.reliability` alone, but the task roll is `asset.reliability * person.task_reliability()`, so a shaken person's displayed percent overstates their real success rate by up to 2x; the adjacent self-trust line says they "execute at reduced weight" without naming the cost, so the number still does not carry its meaning (surfaced beside the 2026-08-06 machine-condition repair, not acted on). - 2026-08-06 · contradiction · person dossier disclosure style · disposition and obligation render as raw integers on the same dossier where suspicion is deliberately banded and never numeric; the two disclosure policies coexist with no stated rule for which axes are exact, which the earned-forecast-precision work will have to settle.