docs: correct the Console view count to six - #57
Conversation
There was a problem hiding this comment.
Pull request overview
Updates lower-authority documentation to correctly reflect the Console’s six-view information architecture after ADR-0017 added the Now view, aligning README/design docs/docs-site copy with the accepted ADR/SRS/CLI contract and the shipped UI.
Changes:
- Update README Console description to “six views” and add Now first (while keeping screenshot alt text truthful to the pre-ADR capture).
- Fix design docs references from “five-view” to “six-view” and enumerate the full view list where appropriate.
- Update docs-site Console module description from “five views” to “six views”.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| README.md | Corrects Console prose to “six views” and introduces the Now view in the view list; updates screenshot alt text to describe the actual (older) capture without claiming a count. |
| docs/design/product-spec.md | Updates product spec description of the Console to “six-view” and lists Now first. |
| docs/design/architecture.md | Updates module map and source tree references from “five” to “six” views and includes Now in the enumerated list. |
| docs-site/sections/modules.tsx | Updates docs-site module description string from “five views” to “six views”. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Review feedback on #57: the replacement alt text ran ~240 characters as a single unpunctuated noun phrase, which a screen reader delivers as one uninterrupted run before the reader reaches the bullets below that already explain the Console in full — and it still omitted the "Needs attention" panel stacked above the recent-events feed, so it implied a two-panel body where the image shows three. Name what the picture shows at a glance and let the surrounding bullets carry the detail. As before it asserts no total view count, because the screenshot predates ADR-0017's Now view. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrFtAqN4d6aYMQregrLf4u
dichovsky
left a comment
There was a problem hiding this comment.
Routine review — three reviewers per .github/ISSUE_TRIAGE.md's roster: general code reviewer (always), TypeScript reviewer (the diff touches docs-site/), and the docs-only prose verification against the code and the authority order. No security reviewer: the diff touches none of src/store/, src/process.ts, src/which.ts, src/fs-safe.ts, src/setup/, or the Launcher.
No CRITICAL findings. No HIGH findings. One MEDIUM, now fixed. The rest are LOW and routed elsewhere.
Verified
- View set and order. "Now, Overview, Agents, Tasks, Messages, Operations" matches
web/components/sidebar.tsx:9(theViewIdunion) and theNAVrender order atsidebar.tsx:41-101,web/app.tsx:125-132(TITLES) and its router branches, FR-U34 (srs.md:879-901), andcli-contract.md:412. - The Now gloss. "the view you land on first" holds unconditionally —
web/app.tsx:165isuseState<ViewId>('now')and there is no persisted view restore (only theme readslocalStorage,app.tsx:51-61). The four worklist items reproduce the exact priority order implemented innowWorklist(web/view-model.ts:300-362: stale-lease → review queue → idle agents → unread-to-Operator), matching FR-U37 and ADR-0017's Decision. "your review queue" is precise:reviewQueuefiltersreviewer_id === OPERATOR_ID(view-model.ts:212-214). - Completeness. Repo-wide grep for five/six-view claims leaves nothing stale. Every remaining "five" is either a correct historical reference to ADR-0013's IA (
0013-console-redesign.md:5,23,decisions.md:128,0017-*.md:9,16,75, andfacts.json:368— which is ADR-0013's own<h1>, extracted mechanically bydocs-facts.test.ts:49-58and unable to drift), or the source docstrings tracked in #53. The "five" intasks-view.tsxis the five Task status columns, not views — correctly untouched. - Type/build safety.
ArchNode.detail(modules.tsx:13-19) is plainstring;NODESis consumed only by id lookup and pass-through render. No snapshots exist in the repo,modules.test.tsxnever asserts that string, andfacts.jsonis generated one-way frompackage.json/ the registry /src/store/schema.js/vitest.config.ts/buildProgram/ ADR headings — never fromdocs-site/, so no regeneration was needed.npm run build:docs(a separate CI step frombuild) succeeds and the new string reachesdist-docs/main.js. - Coverage gate.
vitest.config.ts:12scopes coverage tosrc/**andbin/**; no changed file falls inside. The 95% thresholds cannot move. - Reflow. The
**Overview**gloss is byte-identical in wording; only the line break moved. - Authority order. All four edited files sit at or below
architecture.md;docs-site/andREADME.mdare outside the order entirely. No ADR, SRS, CLI contract, or data-model text was touched, and no two documents now disagree.
MEDIUM — fixed in ac55841
README.md:132 — the rewritten alt text named only the lower of the two stacked right-hand panels. "Needs attention" ("1 task(s) await your review") sits above "Recent events" in the capture and is one of Overview's headline parts under FR-U34; the README's own gloss at :141-142 names "items that need attention". As written, the alt implied a two-panel body. A second reviewer independently flagged the same line as over-long for a screen reader (≈240 chars, two nested comma series, a "beside" pivot).
Both are addressed by one rewrite, now 130 chars, naming all four regions in the image's reading order and still asserting no total view count:
The crew Console's Overview screen: sidebar, headline counts, the live crew roster, what needs attention, and a recent-events feed
LOW — not changed here, and why
README.md:140lowercasesCONTEXT.mddomain terms ("stale leases", "idle agents", "unread messages"). Judged consistent rather than drift: the same bullet already glosses UI content in lowercase ("team launch", "abandoned tasks", "health, maintenance") while reserving capitals for domain statements ("each Task's detail", "an Agent's Messages"), and the lowercase forms match the on-screen pill labels (view-model.ts:312,339,353). The capitalizedLeasesatREADME.md:231,268are domain statements, not glosses — the split is principled.EXAMPLES.md:206embeds the same screenshot with alt text naming a task board, task detail, and messages, none of which are in the image. Pre-existing, outside #27's acceptance — folded into #54's acceptance rather than fixed here.docs/design/architecture.md:162— theview-model.tsgloss omitsnowWorklistand the FR-U38 theme helpers. Adjacent to an edited line but a stale description rather than a missing file, so #35 did not already cover it; noted on #35.docs/design/product-spec.md:136-139— the tail of the edited sentence still omits ADR-0017's Agent archive/restore actions (FR-U36). An illustrative list, not a closed enumeration, and outside #27's acceptance; left for a change that traces to it.web/components/sidebar.tsx:2andsidebar.test.tsx:2— both still say five. Source comments, not docs; #53 (now covering both).- Nothing normatively fixes
nowas the initial view — FR-U37 and ADR-0017 say only "first in the navigation rail". The README's claim is true of the shipped code but stronger than any requirement, so a future change touseStatecould silently falsify it. Worth tightening FR-U37 in its own change; not a defect here.
Copilot's inline comment
Declined, with reasoning in the thread: the dash it flags is pre-existing text this change did not author, and README.md genuinely mixes both styles (19 em dashes, 11 spaced hyphens) with the spaced hyphen being the local convention.
Outcome
Nothing CRITICAL or HIGH survives. CI on 4c71f70 was green (ubuntu / node 24.18.0 ✅, publish dry-run ✅; launch-e2e and ui-e2e skipped, both label-gated). This PR was opened as a draft per the routine's rules and marked ready for review by a human shortly after — that state is left as the human set it. Not approving: the routine does not approve its own work.
Generated by Claude Code
ADR-0017 added the Now view on top of ADR-0013's five-view IA and updated FR-U34 to a six-view Console, and the shipped UI lands the Operator on Now by default (web/app.tsx). The README, architecture.md, product-spec.md, and the docs site still described a five-view Console and omitted Now entirely, so two mid-authority design docs, the README, and the docs site contradicted an accepted ADR and the code — hiding the view a user sees first. Name Now as the first view everywhere the views are enumerated, matching the canonical order in web/app.tsx and cli-contract.md. The README screenshot is a pre-ADR-0017 capture whose rail genuinely shows only five views, so its alt text is rewritten to describe what the image actually shows (the Overview screen) rather than to assert a view count that would misdescribe it for screen-reader users. Recapturing the image is tracked separately. Closes #27 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrFtAqN4d6aYMQregrLf4u
Review feedback on #57: the replacement alt text ran ~240 characters as a single unpunctuated noun phrase, which a screen reader delivers as one uninterrupted run before the reader reaches the bullets below that already explain the Console in full — and it still omitted the "Needs attention" panel stacked above the recent-events feed, so it implied a two-panel body where the image shows three. Name what the picture shows at a glance and let the surrounding bullets carry the detail. As before it asserts no total view count, because the screenshot predates ADR-0017's Now view. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrFtAqN4d6aYMQregrLf4u
The Sidebar doc comment still said five view links while the ViewId union one line below already listed six. Same count correction as the rest of this change.
ac55841 to
6c32062
Compare
Closes #27
What changed and why
ADR-0017 added the Now view on top of ADR-0013's five-view IA — "Now is additive as the new first view (six views total, FR-U34 updated accordingly)" (
docs/adr/0017-console-now-view-theme-and-agent-archive.md:76). FR-U34 (docs/design/srs.md:879-880) and the CLI contract (cli-contract.md:412) both say six, and the shipped Console agrees:web/app.tsx:3,web/app.tsx:165(useState<ViewId>('now')— Now is the view a user lands on first), the six-memberViewIdunion atweb/components/sidebar.tsx:9, and the tests atweb/components/sidebar.test.tsx:39/web/app.test.tsx:222.Four lower-authority documents still said five and none named Now. Per the authority order in
docs/README.md, those restatements are the bug, not the code, so this is corrective prose only.README.md:139**Overview**gloss below it is reflowed to the file's ~90-char wrap; its wording is unchanged.docs/design/architecture.md:68docs/design/architecture.md:163-164docs/design/product-spec.md:136docs-site/sections/modules.tsx:107detail: "five views" → "six views" (this copy does not enumerate the views).View order everywhere matches
web/app.tsx:3andcli-contract.md:412: Now, Overview, Agents, Tasks, Messages, Operations.Why the README alt text does not say "six"
README.md:132's alt text described the Console as "a sidebar over five views". It is not re-worded to claim six, becausedocs/images/console-dashboard.pngis genuinely a pre-ADR-0017 capture — its rail reads Overview / Agents / Tasks / Messages / Operations with no Now entry and no theme toggle. Alt text describes the image, so asserting six would misdescribe the screenshot for screen-reader users. The alt text now describes what the image actually shows (the Overview screen: sidebar, headline counts, live crew roster, recent-events feed) and asserts no total view count in either direction. Recapturing the screenshot is filed as #54; the image file is untouched here.Verification
Docs-only change plus one string constant in a docs-site presentation array — no logic, no branches, no behavior. No tests added or updated, claiming the docs-only exemption in
CONTRIBUTING.mdand.github/ISSUE_TRIAGE.md. The full gate was run anyway, under Node 24.19.0.npm run typechecknpm run lintnpm run format:checknpm run builddist/ui-assets/main.js 88.4kbnpm run test:coverageBoth failures are in
tests/integration/commands/doctor.test.ts("degrades a raw filesystem read failure in project roles instead of aborting doctor", "degrades unreadable roles and teams directories to whole-listing warnings") and are the known root-sandbox case: running as root,chmod 000does not make a directory unreadable, so the expected warnings never fire. Proven pre-existing by stashing the change and re-running that file on a clean tree — same two test names, identical assertion diffs (Tests 2 failed | 31 passed (33)).Vitest suppresses the coverage table on a failing run, so the 95% thresholds were not evaluated locally.
vitest.config.ts:12scopes coverage tosrc/**andbin/**, and this diff touches no file under either —docs/,docs-site/, andREADME.mdare outside the gate entirely. This PR's CI run on GitHub-hosted runners is the authority for the gate.Rebased onto
origin/mainimmediately before pushing; the base had not moved fromd311767, and the gate was re-run afterward with identical results.Related open PRs
None that touch these files. #49 (
docs: trace crew team resume with SRS requirements) is the only other open PR and it touchesdocs/design/srs.mdonly — no overlap withREADME.md,docs/design/architecture.md,docs/design/product-spec.md, ordocs-site/sections/modules.tsx.Out of scope
Deliberately untouched, each tracked separately:
web/components/sidebar.tsx:2still says "the five view links", contradicting its ownViewIdat:9— a source docstring rather than a doc, filed as Console: sidebar docstrings say five view links while it renders six #53, kept out so this diff stays docs-only.docs/images/console-dashboard.png— Docs: README Console screenshot predates ADR-0017, and EXAMPLES.md misdescribes it #54.architecture.md§4.1's source tree, whose wider staleness is architecture.md §4.1 source tree is substantially stale #35. Only the view count on lines 163-164 is touched here.Left alone because they are correct, not drift:
docs/adr/0013-console-redesign.md:5,23,docs/design/decisions.md:128,docs/adr/0017-…:9,16,75, and the extracted ADR title atdocs-site/generated/facts.json:368all describe the five-view IA as ADR-0013 established it — ADR-0017 extends rather than supersedes it ("ADR-0013's five-view IA … unchanged"). A repo-wide grep forfive view|five-view|five viewsnow returns only these intentionally-preserved occurrences plus #53's.Generated by Claude Code