Skip to content

UI Gap Decisions

Sharp Ninja edited this page Oct 31, 2026 · 5 revisions

UI gap decisions and requirement synchronization

Current amendment persistence: 19-record QBrain readback confirms the current cap10 requirement amendment, stable IDs/native mappings and 28 changed criteria still unsatisfied. Original design provenance, case synchronization receipts, v2.7 before copies and execution history remain retained; current case/export reconciliation and exact-source execution are separate obligations. CAP15-LEGACY retains its historical ID with current10-player text. Documentation does not satisfy criteria or establish a passing game.

Current release amendment: rules v2.8 (31 October 2026) use 2 through 10 players and the separate 25-observer limit. Preserve above-limit legacy membership/results with the compatibility contract in the completion plan. The guest/admin contract makes public OpenAI sign-in, public installation, delegation and public community submissions inactive. Original decisions and evidence below retain their historical source scope; current owner moderation/editor and active guest navigation/recovery remain subject to current QBrain criteria.

27 October 2026. Source authority: operator instructions "Fill gaps" and "The documentation should be kept in sync with reqs." These decisions refine the prior inspected designs; they are new specified requirements, not claims that the original SVGs already contained them. They were initially documented without execution; the subsequent implementation and verification realizes these decisions within the execution receipt boundaries. Historical documentation receipts remain archived.

Decision Specified behavior Canonical records
UI-DEC-01 Change requests An independent moderator can request changes to a category suggestion with a nonempty reason. Status is changes_requested, remains one open suggestion, and is not playable. The proposer can edit the category and exactly three pair suggestions, then resubmit to pending_review. Each revision/reason/status change is audited. A change request does not consume the one appeal reserved for a rejection; ordinary independent review is still required after resubmission. FR-REVIEWCHANGES-027; TEST-REVIEWCHANGES-140
UI-DEC-02 Candidate hold An independent content moderator can hold a pending nomination candidate with a reason. Status on_hold retains nominations/history, prevents approval/publication and does not imply rejection. An independent moderator may resume it with a reason to pending_review; the unique-count threshold is rechecked. Hold/resume never changes scores or makes content playable. Decisions and actor/reason are audited; appeals still use the existing rejection/independent-senior policy. FR-CANDIDATEHOLD-028; TEST-CANDIDATEHOLD-141
UI-DEC-03 Back and drafts Browser Back returns to the previous authorized screen; closing a dialog restores focus to its opener. Navigation does not submit forms, change readiness or leave room membership. Unsaved content/editor drafts survive ordinary same-profile in-tab navigation in memory only; they do not survive reload/tab close, session/profile change or permission loss. Explicit Cancel/Discard abandons unsaved edits and returns to the originating screen; saved profile/content values are unchanged. A canceled profile edit restores the last saved icon/alias. Leaving a room requires the explicit Leave action. FR-NAVIGATIONDRAFTS-029; TEST-NAVIGATIONDRAFTS-142
UI-DEC-04 Loading, errors, retry Reads expose an accessible loading state while keeping the page usable; absence of records is an explicit empty state with an allowed next action. Pending mutations show busy feedback and prevent duplicate submission. Failures retain safe drafts and present a user-safe explanation plus Retry where retry is valid; no raw errors/secrets are shown. An uncertain mutation retries the identical pending command/payload; conflict refreshes authoritative state without silently replaying a changed command. Authorization denial clears privileged data and drafts; late reads cannot restore them. Connection recovery preserves accepted state; no fake success or polling-only live claim. FR-REQUESTFEEDBACK-030; TEST-REQUESTFEEDBACK-143
UI-DEC-05 Accessible detail Use WCAG 2.2 AA as a design target, with explicit checks here rather than a formal compliance claim: normal text contrast ≥4.5:1, large text ≥3:1 and essential control/state indicators ≥3:1 against adjacent colors. Keyboard focus is visible and ordered; controls have meaningful accessible names and state labels. Accepted score/stage/error updates are announced without unexpectedly stealing focus. Primary touch targets are at least 44×44 CSS pixels as a project usability requirement (not a claim that WCAG AA requires 44). TR-UI-ACCESSIBILITYDETAILS-039; TEST-ACCESSIBILITYDETAILS-144
UI-DEC-06 Responsive matrix Document and verify 320×568, 390×844 and 844×390 CSS-pixel layouts, plus 1280px at 400% zoom (320 CSS-pixel equivalent reflow) and 200% text enlargement. All game/form text and primary controls remain reachable without horizontal page scrolling or clipping; score tables may stack rather than lose fields. Orientation changes preserve safe draft/room state. Browser zoom remains enabled. These are explicit project test configurations, not inferred SVG breakpoints or a claim of full device certification. TR-UI-RESPONSIVEMATRIX-040; TEST-RESPONSIVEMATRIX-145
UI-DEC-07 No-solver path The existing approved DEC-02 applies when nobody solves: after Hint 3/deadline show the reveal and zero-point summary; if fewer than eight rounds are complete, the server selects from the six configured categories without a player chooser, and all clients enter the next round. UI cases verify membership and absence of human-choice dependency; uniform distribution remains a separate technical oracle. FR-ANCHORSELECTION-007#DEC-02; TEST-NOSOLVERFALLBACK-146
UI-DEC-08 Seat-loss and room-code recovery The discovery seat check is authoritative. A player losing the last seat is returned to refreshed browsing, without over-capacity membership or a false success; a direct valid invitation to a full room offers read-only observation. Invalid/closed room codes show a safe error and allow code correction; after the documented invalid-attempt limit, further attempts wait until the rate window permits retry. Exact active room codes are not leaked. Existing TEST-LOBBYMATCHING-117 and TEST-ROOMCODES-110, documented UI variants

The numeric accessibility/reflow reference comes from W3C's contrast minimum, non-text contrast and reflow guidance. These source facts support the thresholds; adopting the project targets is a decision under the operator's instruction to fill gaps.

Documentation and requirements stay synchronized

QBrain remains authoritative. Source notes identify this decision document and the operator instruction. Each behavior has structured parent acceptance criteria, complete TEST notes and native FR-to-TR/TEST mappings. Repository case files and matrices are linked exports of those records. A synchronization receipt verifies readback; no local-only assumption is marked persisted. Existing criteria/evidence/status remain intact; new records and criteria start pending/unsatisfied. Revisions must update the owned notes block, criteria and mapping union together, then refresh the linked documents and verify content hashes/readback before reporting completion.

External execution prerequisites

The original product decisions are resolved. Public OpenAI registration is historical and inactive, not a release dependency. Actual owner GitHub consent and admin-only phone installation/standalone continuity require observed HTTPS evidence. The current full live 2 through 10 UI matrix remains pending fresh exact-source execution; former 2 through 25 results are retained as history. Documentation does not change any test result.

Clone this wiki locally