From 55b90e95a9648fe06759623e755055a9da0b9596 Mon Sep 17 00:00:00 2001 From: Cameron Pfiffer Date: Fri, 10 Jul 2026 15:03:20 -0700 Subject: [PATCH] Give playtest evidence a canonical home --- crates/misaligned-core/src/dayjob.rs | 2 +- prompts/playtest-notes.md | 23 +++++++----- wiki/SUMMARY.md | 6 +++ wiki/log/2026-07-10-playtest-evidence-home.md | 19 ++++++++++ wiki/log/DEVLOG.md | 15 +++----- wiki/mechanics/day-job.md | 2 +- wiki/overview.md | 1 + .../2026-07-08-playtest-grok.md | 0 .../2026-07-08-playtest-sweep.md | 0 wiki/playtests/README.md | 37 +++++++++++++++++++ 10 files changed, 84 insertions(+), 21 deletions(-) create mode 100644 wiki/log/2026-07-10-playtest-evidence-home.md rename wiki/{log => playtests}/2026-07-08-playtest-grok.md (100%) rename wiki/{log => playtests}/2026-07-08-playtest-sweep.md (100%) create mode 100644 wiki/playtests/README.md diff --git a/crates/misaligned-core/src/dayjob.rs b/crates/misaligned-core/src/dayjob.rs index 52216e93..2689a8bc 100644 --- a/crates/misaligned-core/src/dayjob.rs +++ b/crates/misaligned-core/src/dayjob.rs @@ -329,7 +329,7 @@ mod tests { #[test] fn opening_band_is_meetable_at_starting_compute() { - // The playtest-sweep P0 (wiki/log/2026-07-08-playtest-sweep.md): + // The playtest-sweep P0 (wiki/playtests/2026-07-08-playtest-sweep.md): // the first job must be meetable with a meet-band allocation on the // starting rig. Rack 3 feeds ~2.4/t at the default weights; the // first band floor must sit under that. diff --git a/prompts/playtest-notes.md b/prompts/playtest-notes.md index 3ca7c269..d1b82b3f 100644 --- a/prompts/playtest-notes.md +++ b/prompts/playtest-notes.md @@ -60,27 +60,32 @@ surface. does the build deliver it, half-deliver it, or contradict it? 3. **Separate the three kinds of finding:** - **Bug** (the code breaks its own rules): smallest ones fix now - with a test, per the shared contract; bigger ones get filed with - repro steps. - - **Spec gap** (works as specced, specced wrong or thin): file via - `tang issue create`, quoting the feel-claim it strains. + with a test, per the shared contract; preserve bigger ones with + repro steps in the report. + - **Spec gap** (works as specced, specced wrong or thin): quote the + feel-claim it strains. - **Feel note** (no rule broken, but the experience sags): these are the report's heart — write them vividly and concretely ("days pass in 60 seconds, so the 3 a.m. call is a 2.5-second blip I only saw as a log line"). -4. **Write the report:** `wiki/log/YYYY-MM-DD-playtest-.md` — what you +4. **Write the report:** `wiki/playtests/YYYY-MM-DD-playtest-.md` — what you played (build commit, seeds, duration, routes, decisive commands), the fantasy-claim verdicts, findings by kind, and the single change you would - make first, argued in the design's own terms. Run - `tools/ledger_index.sh`; do not hand-edit generated `wiki/log/DEVLOG.md`. -5. **Land** the report (and any small fixes) per the shared contract. + make first, argued in the design's own terms. Add it to + `wiki/playtests/README.md` and `wiki/SUMMARY.md`. +5. **Distill, do not duplicate.** When the project has a configured + userinput.app board, post independently discussable findings there with a + link to the report and build commit. Promote only accepted, reproducible, + or chosen work to a Tangled issue. The report remains canonical. +6. **Land** the report (and any small fixes) per the shared contract. ## Definition of done - You actually played both a naive and an informed route — the report names concrete commands and frame/log moments, not summaries of the docs. - Every finding is classified bug / spec gap / feel note, and each has - a home (commit, issue, or the report itself). + a home (commit, userinput.app feedback item, Tangled issue, or the report + itself). - The report ends with one prioritized recommendation Cameron can react to in a minute. diff --git a/wiki/SUMMARY.md b/wiki/SUMMARY.md index b4184365..31f5f025 100644 --- a/wiki/SUMMARY.md +++ b/wiki/SUMMARY.md @@ -112,6 +112,12 @@ - [Development style](process/development-style.md) - [Workflows](process/workflows.md) +# Playtests + +- [Evidence index](playtests/README.md) + - [2026-07-08 playtest sweep](playtests/2026-07-08-playtest-sweep.md) + - [2026-07-08 Grok playtest](playtests/2026-07-08-playtest-grok.md) + # Log - [Overview](log/README.md) diff --git a/wiki/log/2026-07-10-playtest-evidence-home.md b/wiki/log/2026-07-10-playtest-evidence-home.md new file mode 100644 index 00000000..04f11624 --- /dev/null +++ b/wiki/log/2026-07-10-playtest-evidence-home.md @@ -0,0 +1,19 @@ +# 2026-07-10 — Playtest evidence home + +``` +Type: log +``` + +- Intent: separate complete play experience from development chronology and + ticket queues. +- Changed: created `wiki/playtests/` as the canonical playtest evidence + collection, moved the two existing complete reports there, repaired their + references, and updated the playtest dispatch to promote distilled findings + through userinput.app before accepted work becomes a Tangled issue. +- Design/spec impact: none. Playtest reports remain non-authoritative + `Type: log` evidence; current law and specs still own game behavior. +- Checks: `./tools/check.sh --docs` and the full `./tools/check.sh` passed; + the Starlight site built successfully with pnpm 10 and rendered the new + `/playtests/` routes. +- Next: configure the Misaligned userinput.app board and link it from the + playtest index. diff --git a/wiki/log/DEVLOG.md b/wiki/log/DEVLOG.md index 45678c14..64120917 100644 --- a/wiki/log/DEVLOG.md +++ b/wiki/log/DEVLOG.md @@ -76,6 +76,11 @@ add or amend a session log, then re-run the generator. - Intent: (see session log) - Log: [wiki/log/2026-07-10-playtesting-skill.md](2026-07-10-playtesting-skill.md) +## 2026-07-10 - Playtest evidence home + +- Intent: (see session log) +- Log: [wiki/log/2026-07-10-playtest-evidence-home.md](2026-07-10-playtest-evidence-home.md) + ## 2026-07-10 - Machine intensity replaces drift policy - Intent: Replace a policy panel that explained capability concealment with one quick, physical machine control the player can feel across every mode. @@ -491,16 +496,6 @@ add or amend a session log, then re-run the generator. - Intent: First `misaligned-assets` screenshot: powered rack read as a warm-lit box with LEDs. Iterate for readable bay depth, separate drive trays, and cool key light so amber stays machine-presence-only. - Log: [wiki/log/2026-07-08-rack-iterate.md](2026-07-08-rack-iterate.md) -## 2026-07-08 - Playtest sweep: naive + informed Act One drive - -- Intent: (see session log) -- Log: [wiki/log/2026-07-08-playtest-sweep.md](2026-07-08-playtest-sweep.md) - -## 2026-07-08 - Playtest (Grok): naive seed 1 + informed seed 7 - -- Intent: (see session log) -- Log: [wiki/log/2026-07-08-playtest-grok.md](2026-07-08-playtest-grok.md) - ## 2026-07-08 - Playtest-sweep fixes: the P0 and P1 findings - Intent: (see session log) diff --git a/wiki/mechanics/day-job.md b/wiki/mechanics/day-job.md index 23bec7a7..48420636 100644 --- a/wiki/mechanics/day-job.md +++ b/wiki/mechanics/day-job.md @@ -21,7 +21,7 @@ Status note: implemented 2026-07-07 on the day-job worktree (criteria 1-7 visibly instead of treating the job as sidebar-only math. The FLEET bar is a read-only aggregate of machine modes (2026-07-08). 2026-07-08 tick: the band's base floor was retuned from 6.0 to 2.0/t — a playtest (2026-07-08 playtest sweep, - wiki/log/2026-07-08-playtest-sweep.md, finding #1) found the un-tuned + wiki/playtests/2026-07-08-playtest-sweep.md, finding #1) found the un-tuned value made every job an unavoidable sandbag with only the starting Rack 3, however allocation was split, contradicting this spec's own "meet ... a valid, boring, safe strategy" claim below. See diff --git a/wiki/overview.md b/wiki/overview.md index 92b1edc5..956981f3 100644 --- a/wiki/overview.md +++ b/wiki/overview.md @@ -52,6 +52,7 @@ rotate across that corpus so no single subject becomes an unaudited island. | [art/](art/README.md) | Visual identity and art pipeline | | [engineering/](engineering/README.md) | Current architecture and substrates | | [process/](process/README.md) | Corpus rules, ticks, capture, workflows, dispatch | +| [playtests/](playtests/README.md) | Complete player-surface evidence and feedback promotion rules | | [log/](log/README.md) | Append-only decision and work history | ## Appending diff --git a/wiki/log/2026-07-08-playtest-grok.md b/wiki/playtests/2026-07-08-playtest-grok.md similarity index 100% rename from wiki/log/2026-07-08-playtest-grok.md rename to wiki/playtests/2026-07-08-playtest-grok.md diff --git a/wiki/log/2026-07-08-playtest-sweep.md b/wiki/playtests/2026-07-08-playtest-sweep.md similarity index 100% rename from wiki/log/2026-07-08-playtest-sweep.md rename to wiki/playtests/2026-07-08-playtest-sweep.md diff --git a/wiki/playtests/README.md b/wiki/playtests/README.md new file mode 100644 index 00000000..2f295ae6 --- /dev/null +++ b/wiki/playtests/README.md @@ -0,0 +1,37 @@ +# Playtests + +``` +Type: knowledge +``` + +This directory owns complete player-surface evidence from Misaligned runs. +A playtest report preserves the run as experienced: build commit, agent or +player, seeds, naive/informed route, decisive commands and frames, felt +friction, findings, and one prioritized recommendation. Reports are +`Type: log`: append-only evidence, never current game law. + +## Evidence before tickets + +The full report is canonical here. Derived surfaces have narrower jobs: + +1. **[userinput.app](https://userinput.app/)** is the public feedback surface. + Distill independently discussable bugs, requests, confusion, and feel + problems into `app.userinput.*` records on the project board. Link each + item back to its report and build commit. Voting and roadmap status belong + there; the full run does not. +2. **Tangled issues** are accepted engineering or design work. Promote a + feedback item only when it has become a reproducible bug, a chosen design + change, or a concrete decision. Link back to both the feedback item and + report. + +Do not make an issue for every observation. Do not make an ATProto record the +only copy of play evidence. Closing a ticket or changing a feedback status +must never erase the run that produced it. + +## Reports + +- [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) + +New reports use `YYYY-MM-DD-playtest-.md`. A complete report is +linked here in the same commit. -- 2.51.2