Skip to content

docs: document the real 2–6 panel range, seven main-window layouts, and the narrower pop-out set - #76

Merged
cchacs merged 1 commit into
mainfrom
pullfrog/71-document-six-screen-max-and-seven-layouts
Oct 1, 2026
Merged

cchacs merged 1 commit into
mainfrom
pullfrog/71-document-six-screen-max-and-seven-layouts

Conversation

@pullfrog

@pullfrog pullfrog Bot commented Oct 1, 2026

Copy link
Copy Markdown

Fixes the documentation half of #71 (the release-notes half is already published). Left open for review — not merging.

What was stale

At 191fb96, screen.js's LAYOUTS has seven main-window layouts spanning 2–6 panels, but the README still led with "2–4 highway panels" / "Five layouts", the Path 2 integration rule and the constitution preamble both said 2–4 instances, and the pop-out docs claimed popups get "the same layouts available in main" before listing four of them.

Changes

README

  • Leads with 2–6 synchronized panels; the feature bullet is now Seven layouts, 2–6 panels — Top/Bottom, Left/Right, Tri 1+2, Tri 2+1, Quad, Five (2 over 3), Six (3×2 grid).
  • Pop-out section (feature bullet + "Splitting a popped window further") now states plainly that a pop-out window's layout set is narrower than the main window's — Single / Top-Bottom / Left-Right / Quad, stopping at Quad, with Five and Six main-window only. Dropped the "same layouts as main" claim.
  • Path 2 "No shared mutable state" rule: 2–4 → 2–6 instances.
  • Settings section lists all seven and no longer implies the toolbar picker is unconditionally present.

.specify/memory/constitution.md — preamble 2–4 → 2–6; version/date footer bumped to 1.4.1 / 2026-10-01.

Beyond the issue's list, because the same claim was stale in the surfaces users read first

  • plugin.json — the plugin-manager blurb read "split into 2–4 synced panels"; the most prominent string in the plugin, and the exact wording the issue named.
  • tour.json — the layout-picker step said "Top/bottom, left/right, or quad (four panels)" while spotlighting #splitscreen-layout-btn, which now contradicts the README. Rewritten to "Seven layouts, from two panels up to six".
  • screen.js — module header comment said "Creates 2-4 independent highway panels".
  • settings.html — the default-layout picker stopped at Quad, so a saved splitscreenLayout of five/six couldn't be represented. Added both options. This is the one functional (cosmetic) change here, hence the patch bump to 1.14.22 — the repo's version-bumped-on-change compliance gate counts .js/.html as functional source.

Drift guard

Five tests in tests/screen.test.js derive the advertised surface from the code, so the next layout can't ship undocumented:

Test Pins
README advertises the panel range and layout count LAYOUTS provides lede range + spelled-out layout count
the default-layout setting offers exactly the LAYOUTS keys settings.html options
the player toolbar layout picker offers exactly the LAYOUTS keys createLayoutBtn options (hand-written copy of LAYOUTS)
pop-out layouts stay a strict subset of the main-window layouts exact FOLLOWER_LAYOUT_PANELS set + the README's narrower-set claim
the pop-out layout picker offers exactly the pop-out layouts a picker option with no FOLLOWER_LAYOUT_PANELS entry is silently dead (rebuildFollowerLayout bails on the unknown key)

Each guard was mutation-checked, not just run green: renaming the FOLLOWER_LAYOUT_PANELS declaration, adding a dead six option to the pop-out picker, and adding a seven layout to LAYOUTS without touching the docs or pickers each fail loudly (the first one initially passed vacuously via Math.max() of an empty spread — the parsers now assert a non-empty match first).

Test plan

  • node --check screen.js — clean
  • node tests/screen.test.js — 187 pass, 0 fail (185 before, +2 net new)

Not fixed here

The constitution's Principles IV, VI and VIII still reference the retired createJumpingTabPane / createTabView factories and jumpingTabPane.resize() (stale since splitscreen#47), and its Governance section still names topkoa/slopsmith-plugin-splitscreen. Also CLAUDE.md:46 lists layout as only 'top-bottom' | 'left-right' | 'quad', and CLAUDE.md:30 describes LAYOUTS as { panels, style } when the grid layouts add cols/rows. Separate pass — flagging rather than bundling, since those are architecture-doc claims rather than the capacity summary this issue is about.

Pullfrog  | View workflow run | via Pullfrog | Using big-pickle (free) | 𝕏

The README still led with "2–4 highway panels" and "Five layouts" after
the five/six grids landed, and that stale summary is what dropped the
four→six increase from the v1.14.20 notes (splitscreen#71).

- README leads with 2–6 synchronized panels and lists all seven
  main-window layouts, describing Five as 2-over-3 and Six as 3×2
- State explicitly that a pop-out window's layout set is narrower than
  the main window's (Single/Top-Bottom/Left-Right/Quad, stopping at Quad)
- Correct the Path 2 integration rule and the constitution preamble from
  2–4 to 2–6 instances
- Fix the same stale count in the surfaces users read first: the
  plugin.json blurb, the tour's layout-picker step, and the screen.js
  module header
- Add Five and Six to the Settings default-layout picker, which stopped at
  Quad, so the documented default matches what it can select
- Add tests deriving the advertised range, layout count, settings options
  and both picker option lists from LAYOUTS / FOLLOWER_LAYOUT_PANELS, so
  a future layout can't ship undocumented
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@kilo-code-bot

kilo-code-bot Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (7 files)
  • .specify/memory/constitution.md
  • README.md
  • plugin.json
  • screen.js
  • settings.html
  • tests/screen.test.js
  • tour.json
Verification notes
  • Verified every new doc claim against screen.js: LAYOUTS has exactly 7 keys with panels 2–6 (so 2–6 range / seven layouts is correct); FOLLOWER_LAYOUT_PANELS is exactly follower/top-bottom/left-right/quad, matching the narrower pop-out claim.
  • Verified settings.html gains five/six whose keys match LAYOUTS, so the previously unrepresentable saved default is now selectable.
  • Reviewed the five new drift-guard tests: the Math.min/max and indexOf-based parsers all assert a non-empty match before use, so they fail loudly rather than passing vacuously; readPickerOptionValues correctly distinguishes the two pickers by element id (splitscreen-layout-btn vs follower-layout-select).
  • No functional/logic/security changes beyond the two added <option> elements and the doc strings; plugin.json version bumped consistently with the repo's change gate.

Reviewed by free · Input: 0 · Output: 0 · Cached: 0

@cchacs
cchacs merged commit 448180a into main Oct 1, 2026
9 checks passed
@cchacs
cchacs deleted the pullfrog/71-document-six-screen-max-and-seven-layouts branch October 1, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant