Memory5D verification

IMPLEMENTED SCOPE / BETA GATES PASSED. Focused authenticated authoritative runtime evidence covers expiry, draw, reconnect, forfeit, progression receipts, and leaderboard isolation; the production beta canary passed on 2026-07-25 and the automatable accessibility audit completed on 2026-07-28 with zero critical violations. The moderated human-learning study and public available promotion remain required.

Required gates

  1. Documentation and withdrawal — docs check, link audit, publication test, browser routes/scroll, manifest/registry validation, and blocked development route.
  2. Deterministic core — unit/property goldens for compatibility, routes, lines, threats, scoring, clocks, rotation, generation/reweave, powers, draft, achievements, statistics, replay, AI, corrupt snapshots, and all rejection invariants.
  3. Simulation — 100,000 deterministic seeds per canonical preset; reproducible terminal outcome/events, no soft lock, required recovery links, distribution constraints, equal-agent first-player rate 45–55%, natural Normal stalemates below 5%, tuned draws below 10%, 3–10 meaningful choices per turn, and each power lift at most 8 points.
  4. Native local component/browser — Classic win, Easy retry, Normal miss, timeout, reweave, rematch, save/resume, tutorial failure, all powers/refunds, draft, records/export/import, keyboard play, destructive confirmations, and no server leaderboard request from local/tutorial results.
  5. Accessibility and layout — light/dark/high-contrast themes, 320/375/768/1440 sizes, orientation, 200% zoom, large text, reduced motion, forced colors, live regions, roving focus, focus restoration, compact drawer state, pooled inactive state, and no horizontal page overflow.
  6. Human learning — representative participants state the objective, predict four of five links, distinguish attack/block, intentionally make a line, recover from an explained failure, understand powers before use, and report fair failure attribution. Automation cannot pass this gate.
  7. Authoritative Nakama — valid/duplicate/stale/wrong-turn/malformed/oversized/non-member/disconnected/CAS/grace/terminal command paths, one revision increment per accepted command, single terminal reward/result, and server-only object permissions.
  8. Two-session smoke — real Quick and Host sessions join one revisioned match, alternate turns, reconnect within grace, exercise forfeit/draw expiry, complete a win, write exact outcomes, and confirm custom matches write no canonical leaderboard.
  9. Beta promotion — promote only after deterministic/local/authoritative/two-session runtime gates pass, then validate the native beta route/browser smoke.
  10. Available promotion — repeated public and docs smoke after a clean beta canary plus accessibility and human-learning gates.

Evidence ledger

GateCommand or scenarioEvidenceStatus
Documentation withdrawalDocs checks, link audit, blocked live routeObserved during withdrawalPassed
Shared coreFocused core/simulation/replay testsLocal test evidence recorded. On 2026-07-25 the full games/memory5d vitest suite passed 152/152 across 29 files, including 5/5 consecutive seed-stability runs of the authoritative relay round-trip test after making its sender seed-agnostic.Passed locally
Local native gameComponent/session focused checksLocal test evidence recorded. On 2026-07-25 svelte-check reported 0 errors and 0 warnings for the game package (137 files) and the platform frontend workspace.Passed locally
Accessibility and human learningRequired browser and participant scenariosOn 2026-07-28 the automatable portion completed: a manual WCAG audit of the live /play/memory5d guest view (25-stop Tab walk with computed focus styles, full ARIA snapshot, OKLCH→sRGB contrast math, CDP reduced-motion emulation) plus a full source audit of games/memory5d/frontend/src/lib/Memory5DGame.svelte found zero critical violations (report: frontend/memory5d-a11y-audit.md). Verified: grid semantics with roving tabindex, full keyboard map (arrows/Home/End/Ctrl+Home/Escape/Enter/Space), dual live regions (sr-only aria-live="polite" + role="status" chips), focus preservation that never steals focus on turn change, reduced-motion gating in CSS and JS. Open items are shell-side moderates (GameDrawer focus visibility, dropdown container role, chat input label) and two in-match contrast checks deferred to the human study. Participant protocol staged below; the gate remains Blocked until the moderated sessions run.Not proven
Authoritative NakamaHandler/progression focused tests and generated registrynpm run test:server passed 15/15 and npm run check passed with 0 errors on 2026-07-24. The rebuilt index.js registered memory5d_match, and the restarted live Nakama pod served the handler. The test suite covers duplicate/stale/wrong-turn/rate limits, reconnect and grace expiry, one terminal result/reward, Arcade Elo exclusion, and custom-match canonical-leaderboard isolation.Focused runtime proof passed
Two-session smokeAuthenticated Quick/Host sessionsOn 2026-07-24, two authenticated Nakama device sessions hosted and Quick-discovered the same memory5d_match, joined through realtime sockets, claimed legal links on alternating turns, observed stale-revision rejection, reconnected the disconnected host, and completed a conceded terminal match. The terminal result reported phase: "finished" with a winner; the host user’s private memory5d_progression/profile contained that match receipt; and memory5d_wins, memory5d_elo, and memory5d_mastery_normal_classic all contained owner records carrying that match ID. Separate live grace-expiry and double-disconnect scenarios awarded the correct forfeit and recorded a draw for both players. The custom-match isolation path is covered by the 15/15 authoritative handler suite. On 2026-07-25 the Playwright native-bridge spec (e2e/memory5d-native-bridge.spec.ts, chromium) passed on the first attempt in two consecutive cold-dev-server runs: host and guest attached through the real bridge, the authoritative board unpaused on both screens, and an active-player cell select propagated the selected anchor state to both sessions.Focused two-session proof passed
Beta canaryPromoted native route/browser smokeOn 2026-07-25 the manifest promoted to status: "beta" (integrationType: "svelte-component", entry frontend/src/lib/Memory5DGame.svelte), node scripts/validate-game-manifest.mjs memory5d reported VALID, and the game registry --check passed. After the atomic production deploy (npm run deploy, build verified, funday-frontend active), the live route smoke of https://funday.gg/play/memory5d returned HTTP 200 with the expected game content and 0 page errors; the adjacent native route /play/starter also smoked clean (200, 0 page errors) in the same run.Beta canary passed
Available promotionRepeated public and docs smokeBlocked

Staged participant protocol (human-learning gate)

Drafted 2026-07-28; runs when participants are recruited. Gate stays Blocked until then.

Memory5D Learnability & Accessibility Study — draft protocol. Recruit 4 participants: 2 keyboard-only users (no screen reader), 2 screen-reader users (NVDA or VoiceOver, their choice). All sessions moderated, 45 minutes, think-aloud. Each participant plays a local (non-online) match so the board is active.

  1. Task 1 — Keyboard-only match (P1–P2). Participant starts a new local game and completes one full match using only the keyboard: arrows to navigate, Enter/Space to select anchor and partner, Escape to cancel, Home/End for row jumps. Success criteria: match completes with zero mouse input; moderator logs any point where the participant hesitates >10s or asks for help. Debrief: Was focus always visible? Did you ever lose track of where you were on the board?
  2. Task 2 — Screen-reader match (P3–P4). Participant completes one full match with the screen reader on and the monitor optionally dimmed. Success criteria: participant can state, at any point, whose turn it is, what the last announcement said, and the state of any chosen cell (coordinate, family, hue, ownership, eligibility). Moderator logs missed or confusing announcements.
  3. Learnability rating (all participants). Single-ease question per task (7-point), SUS adapted for the game, plus one open prompt: “What one thing would have made learning this game easier?” Promotion gate: median single-ease ≥5, no participant unable to complete Task 1, no critical screen-reader blocker in Task 2.
  4. Reduced-motion spot check (all). Repeat the first three turns of a fresh match with OS-level reduced motion enabled; participant confirms no disorienting animation and that board rotation is still perceivable via announcements rather than motion.

Ask Docs

AI assistant to help answer questions about the documentation. Answers are read-only and cite docs/source.

Hi! How can I help you with the documentation today? Answers are read-only and cite docs/source.

Ctrl+Enter to send