From fdc2ba39d5928d5c7df9efbf49ec29323029a09c Mon Sep 17 00:00:00 2001 From: Cameron Date: Fri, 10 Jul 2026 18:55:03 -0700 Subject: [PATCH] Capture the enforced action contract --- wiki/log/DEVLOG.md | 5 +++++ wiki/log/decisions/2026-07-10.md | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 08c124d4..9a8ee119 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -246,6 +246,11 @@ add or amend a session log, then re-run the generator. - Intent: Survey every action and command already exposed by the game, then create one binding spec that says which words are canonical, what they mean, and whether they are live, interface-only, aliases, stubs, or retired. - Log: [wiki/log/2026-07-10-action-vocabulary.md](2026-07-10-action-vocabulary.md) +## 2026-07-10 - Enforced player action contract + +- 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. +- Log: [wiki/log/2026-07-10-action-contract.md](2026-07-10-action-contract.md) + ## 2026-07-09 - WORK sheds zero exposure (runtime) - Intent: Implement the machine-work.md byproduct amendment from the WORK/THINK capture: a machine doing its day job emits no exposure. Crimson is evidence of THINK states only. Removes the live spec violation left by the design capture (`DAY_JOB_EXPOSURE_PER_TOKEN = 0.08`). diff --git a/wiki/log/decisions/2026-07-10.md b/wiki/log/decisions/2026-07-10.md index 7730bd11..4d64c696 100644 --- a/wiki/log/decisions/2026-07-10.md +++ b/wiki/log/decisions/2026-07-10.md @@ -367,6 +367,26 @@ Type: log treating every key or panel command as a world verb; copying complete mechanic rules into the vocabulary owner; treating compatibility aliases as authored terms. No gameplay effects changed. +- **2026-07-10 — The action vocabulary is an enforced player contract.** + Cameron adopted the post-survey cleanup and asked for implementation. + DECIDED: (1) one exhaustive runtime registry owns every stable intention's + canonical name, action/control role, support state, targets, agent usage, + compatibility aliases, and help; command variants map back to that registry. + (2) STUB actions make no player promise: ROBOT-BUILD stays available to + internal fixtures but is absent from menus, help, hints, and agent output + until the robot mechanic is promoted to LIVE. (3) persistent modes, policies, + and other settings are controls rather than committed actions; both human + frontends mark them `[control]`, the agent marks them `CONTROL`, and quick + keys 5–9 select committed actions only. (4) aliases are compatibility inputs, + never authored vocabulary; the registry records and tests them so retention + can be audited against real use. (5) generated help and parser-coverage tests + enforce the same registry, and naive plus informed playtests must prove that + the opening action chain is discoverable. The first playtest found one + witness failure after REVIEW queued; the nudge now advances to `review queued + - keep THINK running`. No action cost, timing, signature, legality, or world + effect changed. Owner: wiki/interface/action-vocabulary.md; synchronized + surfaces: context-menu.md, agent-play.md, narration.md, terminal.md, bevy.md, + building.md, runtime menus/help, and the action-discoverability playtest. - **2026-07-10 — Thought folds from intertwined paths, not one decorated centerline.** Cameron adopted the post-prototype silhouette correction. Close high-rate Thought uses two returning flow paths which separate, cross, -- 2.51.2