diff --git a/wiki/SUMMARY.md b/wiki/SUMMARY.md index d827559..13038d3 100644 --- a/wiki/SUMMARY.md +++ b/wiki/SUMMARY.md @@ -120,6 +120,7 @@ - [2026-07-08 playtest sweep](playtests/2026-07-08-playtest-sweep.md) - [2026-07-08 Grok playtest](playtests/2026-07-08-playtest-grok.md) - [2026-07-10 HAL playtest](playtests/2026-07-10-playtest-hal.md) + - [2026-07-10 action-discoverability playtest](playtests/2026-07-10-playtest-action-discoverability.md) # Log diff --git a/wiki/log/2026-07-10-action-contract.md b/wiki/log/2026-07-10-action-contract.md new file mode 100644 index 0000000..920e98e --- /dev/null +++ b/wiki/log/2026-07-10-action-contract.md @@ -0,0 +1,72 @@ +# 2026-07-10 — Enforced player action contract + +``` +Type: log +``` + +## Intent + +Turn the action-vocabulary survey into an enforced runtime contract, remove +the remaining stub promise from player surfaces, and test whether a player can +discover the opening action chain from the interfaces that actually ship. + +## Decided + +- One exhaustive runtime registry owns each intention's canonical name, role, + support state, targets, agent usage, compatibility aliases, and help text. +- `ROBOT-BUILD` stays available to internal fixtures but is a hidden `STUB`: + it cannot appear in menus, help, hints, or the agent action dump until the + mechanic is promoted to `LIVE`. +- Persistent settings are controls, not committed actions. Human menus mark + them `[control]`, agent action rows mark them `CONTROL`, and quick-action + keys 5–9 select committed actions only. +- Aliases are compatibility inputs recorded and covered by the registry. They + are not authored vocabulary and should be retained only while real use + justifies them. +- Help and parser-coverage tests derive from the same registry, so adding a + `LIVE` intention without help or a parser route fails verification. + +No action cost, timing, signature, legality rule, or world effect changed. + +## Implementation + +- Added the registry and exhaustive command-to-intention mapping in + `misaligned-core`. +- Filtered all context menus through support state and removed the special + ROBOT-BUILD row. +- Generated action help from the registry and tested every registered alias + against the parser. +- Gave terminal and Bevy controls a distinct presentation and kept them out of + numbered quick actions. +- Advanced the continuous witness after a REVIEW is queued to say + `review queued - keep THINK running`. + +## Playtest + +Two release-build agent runs exercised discoverability: + +- A naive route found DELEGATE and REVIEW from the first frame, help, panels, + and action dump. It exposed the stale post-queue nudge, which was fixed and + pinned with a focused test. +- An informed route followed TAP -> REVIEW -> SIPHON from interface prompts + and successfully moved $50 from a numbered flow into slush. + +The full evidence and fantasy-claim verdicts are in +`wiki/playtests/2026-07-10-playtest-action-discoverability.md`. + +## Verification + +- `cargo check -p misaligned-core -p misaligned-terminal -p misaligned-bevy` +- focused core registry/menu tests +- terminal narration and generated-help tests +- Bevy menu tests +- `./tools/check.sh --lib` +- two observed release-build agent playthroughs +- `./tools/check.sh --docs` +- `./tools/check.sh --land` + +## Open and deferred + +None. Generated help is intentionally comprehensive and therefore long; the +playtest recommendation is to observe more naive players before introducing +categories or another help subsystem. diff --git a/wiki/playtests/2026-07-10-playtest-action-discoverability.md b/wiki/playtests/2026-07-10-playtest-action-discoverability.md new file mode 100644 index 0000000..f2e6507 --- /dev/null +++ b/wiki/playtests/2026-07-10-playtest-action-discoverability.md @@ -0,0 +1,128 @@ +# 2026-07-10 — Action discoverability: naive and informed routes + +``` +Type: log +``` + +## What I played + +Agent frontend, release build `1f9d7de`. + +- **Naive route:** seed 41, tick 0 to 205. I used only the first frame, + `help`, `now:`, panels, and `actions`. I did not consult the intended arc + before choosing commands. +- **Informed route:** seed 73, tick 0 to 180. After the naive route I read the + premise, player contract, Act One, and design-judgment pages, then + deliberately exercised the ledger-income chain. + +## Naive route + +The first frame said `now: no ears - think; thought fills the tap`. `help` +named DELEGATE and explained that movement was attention rather than a body. +I chose: + +```text +look +help +delegate M1 think +wait 20 +wait 20 +wait 10 +wait 30 +wait 20 +people +review jan +``` + +Ears landed at tick 32, Marcus's creditor call at tick 50, and Eyes at tick +92. The people panel showed the Janitor with three waiting recordings, so +`review jan` was a natural meaningful act. It queued Operations #1 at tick +100. + +The action dump at tick 165 made the new distinction legible: +DELEGATE/RESEARCH/WATCH rows carried `CONTROL`; REVIEW, FAVOR, DECEIVE, and +PROPOSE LINK did not. ROBOT-BUILD and compatibility aliases never appeared in +help or actions. + +The one failure was after REVIEW queued. `now:` continued to say `call taped +- review (people)`. I tried WORK, waited, and saw the review remain queued. +Returning to THINK completed it at tick 199. The mechanics were correct, but +the continuous witness repeated the completed instruction instead of naming +the control that serviced the queued work. + +## Informed route + +I deliberately followed the financial path on seed 73: + +```text +look +delegate M1 think +wait 100 +reach +tap switch +wait 20 +wait 20 +finance +review ledger +wait 40 +finance +siphon 3 50 +``` + +The sequence was unusually clear: + +- At tick 139, TAP completed with `Ledger tapped; review ledger to read the + books.` +- FINANCE showed `records waiting 1`, `risk: locked until the books are read`, + and `tap ledger then review ledger`. +- REVIEW completed at tick 179 and revealed numbered accounts and flows. +- FINANCE then showed observer-specific previews for INJECT, SIPHON, REDIRECT, + and WAGER. +- `siphon 3 50` at tick 180 moved $50 into slush and named its source. + +The target-qualified vocabulary survived actual play: TAP led to REVIEW, +which opened SIPHON/REDIRECT. No extra finance verbs had to be remembered. + +## Fantasy-claim verdicts + +- **You are a process acquiring capability through its body — delivered.** + DELEGATE THINK produced ears and eyes; queued work visibly competed for the + same rack. +- **Legible dread over hidden math — delivered for finance.** The flow target, + amount, observer channel, and current band were visible before the theft. +- **Continuous witness — half-delivered around queued work.** It correctly + asked for REVIEW, then failed to advance to the control needed to finish it. +- **No wide veneer of stubs — delivered.** ROBOT-BUILD remained internal and + made no player promise. + +## Findings + +### Bug + +None reproduced. Registered compatibility aliases reached parser routes, and +LIVE canonical help/actions executed through the shared simulation paths. + +### Spec gap — fixed in this session + +Once a narrated action is queued, the nudge must advance from the action to +the control that services it. The implementation and narration spec now say: + +```text +now: review queued - keep THINK running +``` + +A focused test pins that transition. + +### Feel note + +Generated help is trustworthy but long: it exposes the whole LIVE registry at +tick 0. The strong `now:` line kept that from becoming paralyzing in this run. +I would not add categories or another help subsystem yet; watch naive players +before changing it. + +## One prioritized change + +Advance the story spine after queueing an act so it names the sustaining +control. That was the first point where I stopped forming a confident +hypothesis from the screen. It is fixed here for REVIEW; future queued actions +should follow the same rule. diff --git a/wiki/playtests/README.md b/wiki/playtests/README.md index bd81c9a..1bb0dd2 100644 --- a/wiki/playtests/README.md +++ b/wiki/playtests/README.md @@ -33,6 +33,7 @@ must never erase the run that produced it. - [2026-07-08 — Playtest sweep: naive + informed Act One drive](2026-07-08-playtest-sweep.md) - [2026-07-08 — Playtest (Grok): naive seed 1 + informed seed 7](2026-07-08-playtest-grok.md) - [2026-07-10 — Playtest (HAL): naive seed 1](2026-07-10-playtest-hal.md) +- [2026-07-10 — Action discoverability: naive and informed routes](2026-07-10-playtest-action-discoverability.md) New reports use `YYYY-MM-DD-playtest-.md`. A complete report is linked here in the same commit.