Repository navigation
Wordpairs
Actual game UI with demonstration players. Slides alternate every seven seconds.
Phone view · Desktop view · Capture details
Every category has cel-shaded comic backgrounds in 9:16 for phones and 16:9 for desktop, displayed behind a frosted translucent game surface. View all twelve backgrounds and their design.
Wordpairs is a real-time word-association game. Its requirements, AC gap analysis, test execution receipt, planned AC test inventory, repo review receipt, implementation plan, Phase 1A execution record, Phase 0–6 hostile-validation goal, Phase 0 execution tracker, Phase 0 interface and data contracts, Phase 0 approval receipt, Phase 0 refresh review receipt, implementation kickoff review receipt, approved architecture decision record, architecture design and FR/TR traceability, architecture patterns, deployment plan, moderation plan, and rendered diagrams are in docs/.
Release work stopped on 1 November 2026. Read the deadline report and token accounting, supporting native evidence and stopped-work handoff. The exact-source local chain finished on 31 October at 17:55 Central; independent acceptance and final hosted staging/production verification remain unfinished. Documentation publication does not resume deployment or establish a contest submission.
Stopped release scope: 2 through 10 players and owner-only GitHub admin PWA. Public play uses guests; rooms retain a separate limit of 25 observers, for an audience of at most 35. The creation default stays 4; the current rules metadata target is v2.8, dated 31 October 2026. Existing larger running matches remain finishable. The 31 October authoritative amendment updates 19 existing requirements and leaves all 28 changed criteria unsatisfied pending new evidence. The current exact-source local results are retained with their qualifications in the deadline evidence package; staged deployment and hosted verification remain unfinished. The canonical plan filename retains release15 for stable links.
31 October prior-candidate validation history: source 0e8d31a638e4db63e96302ca60fa7512c6accc96 passed its local source/build lane, but the full multiplayer repeat reports 13 passing games and one failure at 15 players. Strict push validation and subsequent evidence preparation did not run. Independent acceptance and staged deployment remain pending; this is not a completed release.
The operator selected Cline with model Beam and High effort for hostile validation until Monday, 2 November 2026. Acceptance still requires at least 98% accuracy and 98% completeness. Earlier reviewer selections and receipts retain their historical scope.
Phases 0–6 completed implementation and independent phase-exit review, including multiplayer gameplay, moderation and final acceptance. Historical evidence remains in the Phase 6 execution record. The earlier administration and ACL extension included role-management pages; delegation is inactive in the current release. Hosted deployment remains Phase 7; a locally running app is not a hosted release.
The application uses Next.js 16.4.3, React 19.3.1 and TypeScript 6.0.3, pinned in package.json and package-lock.json. Install dependencies with npm ci, configure the server environment and a migrated TLS-enabled database as described in local development, then run npm run dev -- --hostname 127.0.0.1 --port 3000. Open the exact origin configured in WORDPAIRS_ORIGIN.
The testing guide lists unit, PostgreSQL, multiplayer, administration, Realtime and browser commands and their evidence boundaries. The administration candidate passed 502 unit/contract tests, 66 PostgreSQL tests and 31 browser journeys, plus the production build. Its independent hostile review approved the recorded 189-file snapshot at 99/100 for accuracy and completeness with no unresolved findings. This documentation refresh follows that snapshot and does not relabel it as a review of later bytes.
The wiki manifest indexes current guides and historical execution records. MCP trust and logging were restored by registering this repository and correcting the service configuration file's ACL mask. The maintenance receipt records the recovery, triage reports and requirements-export outcome.
The public game uses guests only and has no account sign-in or PWA install
controls. Administration at /admin and /admin/words uses the registered
GitHub App and permits only the verified sharpninja account. User delegation
and public community submissions/nominations are disabled in this release.
Set server-only WORDPAIRS_GITHUB_CLIENT_ID and
WORDPAIRS_GITHUB_CLIENT_SECRET together with the canonical
WORDPAIRS_ORIGIN. Both hosting callbacks are registered; GitHub credentials
belong in the hosting secret configuration, never source control. Former
WORDPAIRS_ADMIN_PROFILE_IDS guest/bootstrap grants do not authorize this
release's admin routes.
Only administration remains installable. Sign into /admin over HTTPS, then
use Get Wordpairs Admin on your phone or the browser's install menu. The
manifest launches at /admin; its worker caches only generic offline HTML
and public icons. Admin/guest sessions are separate and private data is not
cached. The former public worker retires itself; an already-installed OS icon
requires manual removal if no longer wanted.
See the current release design, cases and QBrain references. Earlier PWA and ACL reviews remain historical evidence. Physical OS installation and live standalone GitHub cookie continuity are separate from automated Chromium installability checks.
Run npm run test:multiplayer with Docker, PowerShell 7, and installed npm dependencies. The runner creates a disposable, loopback-only PostgreSQL container, applies every migration, and removes the container in finally. It does not use the running game's database.
The current release matrix requires eight-round games at every size from 2 through 10 players: 9 games, 54 player participations and 432 accepted round solves. It exercises real identity, room, lobby, match and PostgreSQL services, including simultaneous answer conflicts and retries, all hint/scoring stages, shared final standings and idempotent profile awards. Time and random draws are controlled; actual browser UI and private Realtime have separate integration suites. The full tests/integration/run-phase1.ps1 run also includes the service matrix. Earlier 2 through 25 results remain historical and do not prove the changed release.
The game is intended to use GNU GPL version 2 only (GPL-2.0-only). See LICENSE.
The application deploys from sharpninja/wordpairs to two existing Vercel projects: wordpairs is logical staging and wordpairs-j9jf is production. Both use Vercel's production target with separate Supabase databases and secrets. Verify the same reviewed commit in staging before production; prevent automatic Git builds from bypassing that sequence. See hosting execution and the current completion plan.
Live gameplay needs authenticated Realtime configuration and an independent deadline/outbox worker. A rendered page alone does not establish a working game. See local live setup and real browser integration. npm run test:live-ui targets an explicitly configured real runtime and complements the service integration suite.
For a repeatable local browser matrix, run pwsh -NoProfile -NonInteractive -File scripts/run-local-ui-integration.ps1 -PlayerCounts '2,3,4,5,6,7,8,9,10' after a production build. It uses installed Chromium, owned disposable TLS databases on volatile test storage, private Realtime and loopback HTTPS, then cleans up only its owned resources. Readiness, categories and every answer use the UI, with at most two simultaneous answer submissions. It does not establish disk durability or hosted capacity. See the UI harness guide.
Existing moderation history and immutable word/hint editing remain available to
the owner. Multi-account community submission/resubmission and browser role
delegation are inactive under the current guest-only release. Their original UI
cases remain in docs/testing/historical/, while policy/transaction tests stay
available. Profile Save/Cancel, safe retries and active game/accessibility
journeys remain in the current browser suite. No-solver rounds still advance
after the server delay. See the current release design
and historical UI implementation.
Contest readiness and all historical hostile-validation evidence are tracked in the submission checklist. The operator directed us to use 31 October 2026 as the working deadline. The original PDF/public-date conflict remains recorded; no sponsor extension or exact cutoff hour is asserted. Final public/live evidence and entrant prerequisites remain explicit.
Generated from MCP requirements wiki export.
- Home
- Guest Game and GitHub Admin PWA
- Functional Requirements
- Technical Requirements
- Testing Requirements
- TR per FR Mapping
- Requirements Matrix
- Wordpairs
- Local Development
- Testing and Evidence
- Administration and Access Control
- Requirements Baseline v2.8
- Architecture Decision Record
- Architecture Design
- Architecture Patterns
- Content Moderation
- Deployment and Release Plan
- Acceptance Criteria Gap Analysis
- Acceptance Criteria Test Inventory
- Implementation Plan
- Phase 0 Execution
- Phase 0 Interface and Data Contracts
- Phase 1A Execution
- Phase 1 Execution
- Phase 2 Execution
- Phase 3 Execution
- Phase 4 Execution
- Phase 5 Execution
- Phase 6 Execution
- Optional Phase 6 Human Feedback
- Historical Chromium Crash Diagnosis
- Completed Coding Goal and Review Agreement
- Third Party Attributions
- Software Bill of Materials Contract
- Phone Installation and PWA
- Live Multiplayer Runtime and UI Integration
- UI Test Case Index
- UI Design Coverage
- UI Criterion Gaps
- UI Design Questions
- UI Test Persistence
- TEST-ACCESSIBLEGAMECONTROLS-044 UI Case
- TEST-ACLAUTHORIZATION-132 UI Case
- TEST-ADMINUI-136 UI Case
- TEST-AUTHORITATIVEANSWERHANDLING-045 UI Case
- TEST-BROWSEOPENLOBBIES-022 UI Case
- TEST-CATALOGVERSIONING-133 UI Case
- TEST-CATEGORYART-005 UI Case
- TEST-CATEGORYCHOICE-011 UI Case
- TEST-CATEGORYSUGGESTIONUNLOCK-019 UI Case
- TEST-CONFIGUREDCAPACITY-024 UI Case
- TEST-CONNECTIONRECOVERY-109 UI Case
- TEST-CONTENTVALIDATION-016 UI Case
- TEST-DEEPLINKJOINANDFULLROOM-026 UI Case
- TEST-FINALSTANDINGS-013 UI Case
- TEST-FIRSTCATEGORY-004 UI Case
- TEST-FREETIERQUOTAHANDLING-037 UI Case
- TEST-FULLROOMOBSERVER-027 UI Case
- TEST-GUESTPLAY-021 UI Case
- TEST-HINTPROGRESSION-009 UI Case
- TEST-HINTSCORING-007 UI Case
- TEST-HOLDOUTWARNINGANDREMOVAL-032 UI Case
- TEST-IDLELOBBYREADINESSPROMPT-033 UI Case
- TEST-INROUNDEMOJIREACTION-029 UI Case
- TEST-LANDINGPAGEPUBLICDATA-050 UI Case
- TEST-LIVESCORECARD-010 UI Case
- TEST-MODERATIONANDCATALOGBOUNDARY-047 UI Case
- TEST-NOHINTSOLVE-006 UI Case
- TEST-NOMINATIONELIGIBILITY-017 UI Case
- TEST-NOMINATIONMODERATION-114 UI Case
- TEST-NOMINATIONTHRESHOLDANDMODERATION-018 UI Case
- TEST-OBSERVERPERSPECTIVEANDPERMISSIONS-028 UI Case
- TEST-OIDCTOKENVALIDATION-046 UI Case
- TEST-OPENAIOIDCPROFILE-020 UI Case
- TEST-ORIENTATION-015 UI Case
- TEST-PLAYERLIMIT-002 UI Case
- TEST-PRECOUNTDOWNOBSERVERPROMOTION-030 UI Case
- TEST-PROFILEICON-003 UI Case
- TEST-PUBLICGAMELANDINGPAGE-043 UI Case
- TEST-PWAINSTALL-137 UI Case
- TEST-PWAPRIVACY-138 UI Case
- TEST-QUICKMATCH-023 UI Case
- TEST-READYCOUNTDOWNANDROSTERLOCK-031 UI Case
- TEST-ROOMINVITATIONS-025 UI Case
- TEST-ROOMJOINING-001 UI Case
- TEST-ROOMSYNC-139 UI Case
- TEST-ROUNDSUMMARY-012 UI Case
- TEST-SUGGESTIONREVIEW-115 UI Case
- TEST-TIMETIEBREAK-014 UI Case
- TEST-UNSOLVEDRESULT-008 UI Case
- UI Gap Decisions and Synchronization
- TEST-ACCESSIBILITYDETAILS-144 UI Case
- TEST-CANDIDATEHOLD-141 UI Case
- TEST-LOBBYMATCHING-117 UI Case
- TEST-NAVIGATIONDRAFTS-142 UI Case
- TEST-NOSOLVERFALLBACK-146 UI Case
- TEST-REQUESTFEEDBACK-143 UI Case
- TEST-RESPONSIVEMATRIX-145 UI Case
- TEST-REVIEWCHANGES-140 UI Case
- TEST-ROOMCODES-110 UI Case
- UI Gap Implementation Plan
- UI Gap Implementation and Evidence
- Contest Readiness
- Hostile Validation Evidence
- Category Artwork
- 10-Player Release Completion Plan
- Deadline Report and Token Accounting
- Deadline Report Supporting Evidence
- Deadline Timeline and Review Finding Analysis
- Stopped Wordpairs Release Handoff