specs/ui: the site viewport contract as a .t27 spec (tiers, panes, 44px targets, six-size QA matrix) - #3558
Merged
Merged
Conversation
…px targets, six-size QA matrix, rail capacity) - specs/ui/viewport.t27 (module ui_viewport, KIND viewport): PHONE_MAX 600, TABLET_MAX 1024, DESKTOP_MAX 1600, HEADER_CHROME_MAX 1100, one pane on a phone, 44 px touch targets, the six-size matrix with tiers, the Queen rail capacity read from Queen.css (described, not changed). - Six test blocks / 49 asserts inside the spec; the site generator evaluates them because typecheck.ok stays true for a false assert. - specs/ui/README.md, OWNERS row ui/ -> T-Queen, docs/now entry. Closes #3557
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
Contributor
PR DashboardGenerated at: 2026-09-09 21:02:21 UTC
Summary
Seal Status
|
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3557
What
specs/ui/viewport.t27(moduleui_viewport,KIND = "viewport") — the one source for how the explorers of t27.ai lay themselves out at a given viewport, plusspecs/ui/README.md, anOWNERS.mdrow (ui/→ T-Queen) and adocs/nowentry.PHONE_MAX/TABLET_MAX/DESKTOP_MAXwideHEADER_CHROME_MAXPHONE_PANES/TABLET_PANES/DESKTOP_PANES?<key>=deep link opens the cardONE_SCROLLER_PER_PANE,DOCUMENT_SCROLLSTOUCH_TARGET_MIN_PX,BACK_CONTROL_MIN_PXVIEWPORTSVIEWPORT_TIERSper entry andDESKTOP_REFERENCE_WIDTH = 1280RAIL_*Queen.csswith file:lineWitnesses
#/tools?tool=mcp%2Fgitbutlershows only the 62-item list, the deep-linked card is not in the viewport, document scrollHeight 924 > 844; reproduced on a build of trinity main c881e7f (the hash written after mount is ignored). Rail numbers:Queen.css:5311-5312(44px tile),:5302(gap 4),:3997-3998(48px rows),:3868(gap 6),:4277+:4397(chrome 64 + 84); tile height 74 and rail clientWidth 344 measured at 390x844.t27_compiler.wasmon the site): typecheck ok, nothing discarded, moduleui_viewport; 6 test blocks, 49 asserts, 49/49 hold when evaluated from the AST by the site generator (typecheck.okalone stays true forassert 1 > 2— the generator's own test proves the false-assert case is refused).91c9235486599fdd18a188c4e191dd6ff7a591a13b01625e766fc70403dd43a4; the copy in trinityapps/website/public/t27/files/specs/ui/viewport.t27is byte-identical (cmp), and both generated files carry this sha in their header.grep -P '[^\x00-\x7F]'→ 0 hits in the.t27, the README and thedocs/nowentry); no absolute home path; the checkout isT27_ROOTorgit rev-parse --show-toplevel.spec-guards
The first run of
spec-guardson this PR failed on "Published figures": the pinnedtest blockspopulation (tools/published_figures.py) was 12456 and the corpus re-derived to 12462 — exactly the sixtestblocks this spec adds. Per the file's own protocol ("the pin FOLLOWED the corpus, and the movement is explained"), commitb63c3df6moves the pin to 12462 with the reason written next to it; the other nine figures are unchanged,--checkexits 0 and--self-checkpasses locally. This is not a ratchet raise: the figure is a population count that must track the corpus.Boundaries
specs/ui/,specs/OWNERS.md, onedocs/nowfile and thetest blockspin intools/published_figures.pyare touched; no other spec changes.masterwas not run against this file.testblock only//comments are safe (the parser reads a;line inside a block as a statement) — recorded in the README.master(gate-topology,untrusted-input) are not addressed.Consumer
trinity
feat/viewport-p0:scripts/viewport-from-spec.mjs→src/lib/viewport.generated.ts+src/styles/viewport.generated.css,useViewport(), master-detail phone tier in the five explorers,qa/explorer-viewport-contract.mjsover the matrix (link in the trinity PR).Do not merge without the owner's approval.