Skip to content

Answer page: record the four settled decisions, and audit the clinical-notes sheet before it goes - #2358

Merged
BigSimmo merged 4 commits into
mainfrom
claude/answer-page-redesign-review-4ufdl5
Aug 24, 2026
Merged

Answer page: record the four settled decisions, and audit the clinical-notes sheet before it goes#2358
BigSimmo merged 4 commits into
mainfrom
claude/answer-page-redesign-review-4ufdl5

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Records the four owner decisions the answer-page handover was waiting on, with their reasoning rather than only their verdict. An open question left in a build document gets reopened, and these have been paid for once already. Settled: the mark stays one colour (staleness is a property of the document, not the claim, and a second hue would not survive forced-colors anyway); compactCitations is kept and retargeted at the rail as a collapse-to-chip, so the preference keeps meaning something once the capsule it currently shrinks is gone; the wide-screen table aside goes, with tables folding into the drawer chip; and the clinical-notes sheet goes.
  • Adds §10a, an audit of the clinical-notes Essentials tab. The handover flagged Essentials as the one removed surface whose content was not obviously duplicated, so it was traced before the decision was recorded rather than after. All five of its section ids are built by buildClinicalOutputSections: its structured-support rows are [clinical area, section body] straight from answerSections — the headed sections the design already renders as prose; its monitoring and medication items come from the prose and sectionDisplayLines; its comparison table is one row per document carrying that document's best_quote, which the drawer pages through; and its thresholds come from the prose, the quote cards and promoted visualEvidence. No content is lost. Two at-a-glance views are — "every threshold in one list" and "each document's key detail stacked side by side" — and both become paged or per-source.
  • Two things the builder needs from that audit, both recorded: buildSourceComparisonTable fires on any answer drawing on three or more documents, not only on comparison questions, so its absence will be noticed; and the threshold list is the one view with no equivalent, so it should be re-checked against real answers before the old surface is deleted in the separate PR §8 already stages.
  • Updates the design study's copy to match. /mockups/answer-chat-perfected-v2 already drew all four decisions the way they were settled, so its "What this collides with" table now reads as decisions taken rather than questions outstanding.

Follow-up to #2356, which merged as c4e4196. That PR is finished, so this restarts the branch from the merged main rather than stacking on already-merged history.

Verification

  • npm run arbiter -- lint before running anything — RUN "lint" — rag scope never defers — CI's own routing treats it as heavy.
  • npx eslint and npx tsc --noEmit on the changed file — clean. These are the smallest checks that cover a copy change inside a compiled component.
  • npm run ensure, then Chromium at 1440px on /mockups/answer-chat-perfected-v2: panels five and six read correctly with the reworded copy, and document.documentElement.scrollWidth - clientWidth measured 0, so the reworded table does not push the page sideways.
  • npm run format and committed the result.
  • Full unit suite not run: this diff changes prose in one design-scratch component and one document, with no behaviour, no new symbols and no branching. The suite ran clean on this exact scope earlier today (831 files / 10011 tests) and CI re-runs it here regardless.
  • UI verification not run: npm run verify:ui covers production journeys, and this touches a route that 404s in production. Targeted browser evidence is above.

Risk and rollout

  • Risk: Very low. Documentation, plus copy strings in a design-scratch component that 404s in production.
  • Rollback: Revert the commit. Nothing depends on it.
  • Provider or production effects: None. No provider-backed command was run.
  • RAG impact: none — no retrieval, ranking, selection, generation or fixture surface is touched.

Clinical Governance Preflight

Not applicable: no ingestion, answer generation, search/ranking, source rendering, document access, privacy, production env, or clinical output surface is changed. classifyPullRequestFiles returns clinicalRisk: false, operationalRisk: false, ragRanking: false for this file set. The audit reported here reads existing code; it changes none of it.

Notes

  • The audit is the substance of this change. "Confirm nothing is relied on before it goes" was the handover's instruction, and it is the kind of line that gets skipped at build time — so it is answered here, in the document, with the trace attached.
  • The decision that a surface may be removed is not the same as the removal. §8 still stages that as its own PR behind the dead-code gate, and the threshold re-check belongs there.

Generated by Claude Code


Note

Low Risk
Documentation and design-scratch copy only; no runtime behavior, clinical output, or retrieval paths are modified.

Overview
This PR locks in documentation for the answer-page redesign: four owner decisions dated 2026-08-24 replace the handover’s open §10 questions, and the v2 mockup copy is aligned so builders treat them as final.

docs/answer-page-redesign-handover.md now states that citation marks stay one colour (staleness on rail/drawer only), compactCitations is kept and retargeted to a collapsible rail chip, the wide-screen table aside goes (tables live in the drawer chip), and the clinical-notes sheet goes. New §10a traces Essentials tab content through buildClinicalOutputSections / evidence-panels.tsx into prose, drawer, and rail — no content lost, but two scan views disappear (threshold list and multi-document comparison); the threshold list is flagged for re-check before the old UI is removed. §2, §4, and §12.5 are updated to match.

answer-chat-perfected-v2-mockups.tsx updates the “What this collides with” table and related panel text from “decide at review” to settled wording consistent with the handover.

No production answer surface or RAG code changes — prose only in a mockup route that 404s in production.

Reviewed by Cursor Bugbot for commit b23aaec. Configure here.

…es sheet carried

The handover left three decisions open for the owner and the review of PR #2356
added a fourth. All four are now settled, so they are recorded with their
reasoning rather than only their verdict -- an open question in a build document
gets reopened, and these have been paid for once already.

- Status in the mark: no. One colour stays. Staleness is a property of the
  document, not the claim, and a second hue in running prose stops the eye twice
  at reading speed -- and would not survive forced-colors anyway.
- compactCitations: kept, retargeted at the rail as a collapse-to-chip, so the
  preference keeps meaning something once the capsule it currently shrinks is
  gone. The invariant its test pins still holds: the notice, the source-only
  disclosure and any worded mark all sit outside the rail.
- The table aside: goes. Tables fold into the drawer chip. The accepted cost is
  that a table can no longer be read beside the answer on a wide screen.
- The clinical-notes sheet: goes.

The fourth was the one the handover flagged as the removed surface whose content
was not obviously duplicated, so it was traced before being recorded rather than
after. Essentials draws five section ids, all built by
buildClinicalOutputSections: its structured-support rows are [clinical area,
section body] straight from answerSections -- the headed sections the design
already renders as prose; its monitoring and medication items come from the
prose and sectionDisplayLines; its comparison table is one row per document
carrying that document's best quote, which the drawer pages through; and its
thresholds come from the prose, the quote cards and promoted visual evidence.

No content is lost. Two at-a-glance views are: "every threshold in one list" and
"each document's key detail stacked side by side", both of which become paged or
per-source. Two things the builder should know, both recorded in the new section
10a: buildSourceComparisonTable fires on any answer drawing on three or more
documents rather than only on comparison questions, so its absence will be
noticed; and the threshold list is the one view with no equivalent, so re-check
it against real answers before the old surface is deleted in the separate PR
section 8 already stages.

The design study already drew all four decisions the way they were settled, so
its changes here are copy: the reconciliation table now reads as decisions taken
rather than questions outstanding.

Verified: lint, typecheck, and Chromium at 1440px with zero horizontal overflow.
Docs plus one design-scratch file; no production surface, no RAG surface.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AP3MXGx1bGeEBmFKYkeLA8
@supabase

supabase Bot commented Aug 24, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 38 minutes.

View limit details

Limit details: You’ve used the included review currently available. Your 100 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 354f295a-a839-43f0-b762-bc8133ce25ce

📥 Commits

Reviewing files that changed from the base of the PR and between 69564d5 and af2051d.

⛔ Files ignored due to path filters (2)
  • docs/answer-page-redesign-handover.md is excluded by !docs/**, !**/*.md
  • docs/branch-review-records/a1c2e57acd6543dc226bcecf6f7b91b4830de1d1b10ff61c57731c7d2aa76377.record.md is excluded by !docs/**, !**/*.md
📒 Files selected for processing (1)
  • src/components/answer-chat-perfected-v2-mockups.tsx

Comment @coderabbitai help to get the list of available commands.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AP3MXGx1bGeEBmFKYkeLA8
cursor[bot]
cursor Bot previously approved these changes Aug 24, 2026

@cursor cursor Bot 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.

Stale comment

Approved. Cursor Bugbot was not running after the first check poll, so that signal was skipped; remaining policy and review-state checks did not require human review. No reviewers were assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

cursor[bot]
cursor Bot previously approved these changes Aug 24, 2026

@cursor cursor Bot 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.

Stale comment

Approved. Cursor Bugbot was not running after the first check poll, so that signal was skipped; remaining policy and review-state checks did not require human review. No reviewers were assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b23aaec392

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/answer-page-redesign-handover.md Outdated
@BigSimmo

Copy link
Copy Markdown
Owner Author

@codex resolve actionable Codex review findings for this pull request and current head using the repository instructions. This is the pull request's single automatic repair pass: do not perform a fresh review, create new standalone findings, or request another review. Work only the existing unresolved Codex threads on the current head. The only repository destination is BigSimmo/Database, and the only branch destination is the pull request head branch claude/answer-page-redesign-review-4ufdl5 at starting commit 777862a; never publish fixes to a detached or synthetic work branch and never create a stacked pull request. Use the authenticated GitHub connector to commit each approved fix to BigSimmo/Database:claude/answer-page-redesign-review-4ufdl5, then verify that the pull request head contains the published commit before reporting success. Always fix P0 and P1 findings. For P2 and lower findings, fix only clear, scoped, low-risk issues; otherwise disposition them with a concise reason. For a fixed thread, reply with as the first line and as the second line. For a no-code disposition, use followed by . These result markers authorize the workflow to close that exact thread only after it verifies a fixed commit is the pull request head; a local-only commit is not a fix. If publication or verification fails, do not use either result marker, do not claim success, and leave the thread open with the blocker. If human input or new authorization is required, do the same. Finish only after every actionable thread is fixed or dispositioned and closed, or explicitly left open for a human decision. Do not update the branch from main, address unrelated reviews, broaden scope, or create more than one scoped fix commit. Do not use external APIs, paid services, credentials, dependency changes, or broad refactors unless explicitly authorized. Add targeted tests where behavior changes and run the narrowest relevant validation.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep it up!

Reviewed commit: 777862a1ae

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Review of PR #2358 caught the audit asserting from buildClinicalOutputSections
without checking what that builder actually puts on screen. Verified before
accepting, and it cuts further than the finding stated.

clinicalNotesDetailSectionsForAnswer ends with
.filter((section) => section.items.length > 0), so a section carrying only
tables is dropped before the tabs are built. clinicalNotesRowsForTab then
iterates section.items alone, so a table never becomes a row at all. And
displayItemsForClinicalDetailSection drops items already redundant with the
answer prose, so the sheet is a de-duplicated view of that prose to begin with.

That changes two rows of the audit and one of its conclusions:

- support-map is created with items: [] plus one structured-support table, so it
  never renders. The earlier row described builder output that never reached the
  screen.
- comparison renders only when the prose produced comparison items; the
  table-only form is created with items: [] and dropped. So the stacked
  per-document comparison view the audit said would be lost was never there.
- thresholds renders its items only -- the threshold lines from the prose and
  quote cards. Its tables never render either.

Corrected conclusion: no content is lost, and ONE at-a-glance view is, not two.
Every row Essentials renders originates in the answer prose or its sections,
which the new design shows as the prose itself. The grouped threshold list is
the single real loss, and remains the thing to re-check on real answers before
the old surface is deleted.

This makes the owner's fold-it-away decision safer than the audit had it, not
riskier. Kept a method note in section 10a: this audit was wrong the first time
in the same way the first-pass design was wrong -- asserting from a code path
without checking what that path renders.

Verified: lint, typecheck, format. Docs plus one design-scratch copy string.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AP3MXGx1bGeEBmFKYkeLA8

@cursor cursor Bot 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.

Approved. Cursor Bugbot was not running after the first check poll, so that signal was skipped; remaining policy and review-state checks did not require human review. No reviewers were assigned.

Open in Web View Automation 

Sent by Cursor Approval Agent: Pull Request Router and Approver

@BigSimmo
BigSimmo enabled auto-merge (squash) August 24, 2026 19:26
@BigSimmo
BigSimmo merged commit e3295b1 into main Aug 24, 2026
28 checks passed
@BigSimmo
BigSimmo deleted the claude/answer-page-redesign-review-4ufdl5 branch August 24, 2026 19:41
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.

2 participants