Skip to content

docs: correct the Console view count to six - #57

Merged
dichovsky merged 3 commits into
mainfrom
docs/console-six-views
Aug 6, 2026
Merged

docs: correct the Console view count to six#57
dichovsky merged 3 commits into
mainfrom
docs/console-six-views

Conversation

@dichovsky

Copy link
Copy Markdown
Owner

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-member ViewId union at web/components/sidebar.tsx:9, and the tests at web/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.

File Change
README.md:139 "five views" → "six views", with Now added first and a gloss drawn from FR-U37 (one prioritized worklist: stale leases, your review queue, idle agents, unread messages). The **Overview** gloss below it is reflowed to the file's ~90-char wrap; its wording is unchanged.
docs/design/architecture.md:68 Module map Console row: "(five views: Overview, …)" → "(six views: Now, Overview, …)".
docs/design/architecture.md:163-164 §4.1 tree: "five-view router" → "six-view router", "the five views" → "the six views".
docs/design/product-spec.md:136 "an interactive five-view browser app (Overview, …)" → "six-view … (Now, Overview, …)".
docs-site/sections/modules.tsx:107 Console node detail: "five views" → "six views" (this copy does not enumerate the views).

View order everywhere matches web/app.tsx:3 and cli-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, because docs/images/console-dashboard.png is 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.md and .github/ISSUE_TRIAGE.md. The full gate was run anyway, under Node 24.19.0.

Command Result
npm run typecheck pass (exit 0)
npm run lint pass (exit 0)
npm run format:check pass (exit 0) — prettier did not reflow the edited markdown
npm run build pass (exit 0) — dist/ui-assets/main.js 88.4kb
npm run test:coverage 1395 passed, 3 skipped, 2 pre-existing environment failures

Both 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 000 does 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:12 scopes coverage to src/** and bin/**, and this diff touches no file under either — docs/, docs-site/, and README.md are outside the gate entirely. This PR's CI run on GitHub-hosted runners is the authority for the gate.

Rebased onto origin/main immediately before pushing; the base had not moved from d311767, 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 touches docs/design/srs.md only — no overlap with README.md, docs/design/architecture.md, docs/design/product-spec.md, or docs-site/sections/modules.tsx.

Out of scope

Deliberately untouched, each tracked separately:

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 at docs-site/generated/facts.json:368 all 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 for five view|five-view|five views now returns only these intentionally-preserved occurrences plus #53's.


Generated by Claude Code

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread README.md
dichovsky pushed a commit that referenced this pull request Aug 6, 2026
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 dichovsky left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 (the ViewId union) and the NAV render order at sidebar.tsx:41-101, web/app.tsx:125-132 (TITLES) and its router branches, FR-U34 (srs.md:879-901), and cli-contract.md:412.
  • The Now gloss. "the view you land on first" holds unconditionally — web/app.tsx:165 is useState<ViewId>('now') and there is no persisted view restore (only theme reads localStorage, app.tsx:51-61). The four worklist items reproduce the exact priority order implemented in nowWorklist (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: reviewQueue filters reviewer_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, and facts.json:368 — which is ADR-0013's own <h1>, extracted mechanically by docs-facts.test.ts:49-58 and unable to drift), or the source docstrings tracked in #53. The "five" in tasks-view.tsx is the five Task status columns, not views — correctly untouched.
  • Type/build safety. ArchNode.detail (modules.tsx:13-19) is plain string; NODES is consumed only by id lookup and pass-through render. No snapshots exist in the repo, modules.test.tsx never asserts that string, and facts.json is generated one-way from package.json / the registry / src/store/schema.js / vitest.config.ts / buildProgram / ADR headings — never from docs-site/, so no regeneration was needed. npm run build:docs (a separate CI step from build) succeeds and the new string reaches dist-docs/main.js.
  • Coverage gate. vitest.config.ts:12 scopes coverage to src/** and bin/**; 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/ and README.md are 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:140 lowercases CONTEXT.md domain 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 capitalized Leases at README.md:231,268 are domain statements, not glosses — the split is principled.
  • EXAMPLES.md:206 embeds 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 — the view-model.ts gloss omits nowWorklist and 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:2 and sidebar.test.tsx:2 — both still say five. Source comments, not docs; #53 (now covering both).
  • Nothing normatively fixes now as 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 to useState could 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

claude and others added 3 commits August 6, 2026 15:34
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.
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.

Console view count stale: four docs still say five views after ADR-0017's Now view

3 participants