Skip to content

issues: record the four loose ends the differentials rework left behind - #2722

Open
BigSimmo wants to merge 3 commits into
mainfrom
claude/pensive-rubin-ouvjd2
Open

issues: record the four loose ends the differentials rework left behind#2722
BigSimmo wants to merge 3 commits into
mainfrom
claude/pensive-rubin-ouvjd2

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bookkeeping only. PR feat(differentials): rework the diagnosis detail nav, header, map and Overview #2665 merged and deployed, and three things it surfaced were recorded nowhere. The session-start hook asked for a capture twice and never got one, so this is that capture.
  • Four requests queued through npm run issues:add / issues:update. docs/outstanding-issues.md itself is untouched — these apply on the next npm run issues:reconcile.

New, P1 — ten locally authored differential records are live with no clinician sign-off. src/lib/differential-curated.ts seeds delirium, hypoactive-delirium, neuroleptic-malignant-syndrome, serotonin-toxicity, catatonia-in-mood-disorder, akathisia, alcohol-withdrawal, clozapine-specific-adverse-effects-toxicity, postpartum-psychosis and lithium-physiological-withdrawal-tremor. The labelling and the two enforcing tests are done; the attestation is not, and the content reached psychiatry.tools when main deployed. Shaped after #SBKXZ7, including its rule that assistants never tick the clinical checks on their own behalf.

New, P2 — the differentials export leaves 194 of 201 records with an empty section summary, 150 with no investigations and 110 with no immediate actions, and lithium-physiological-withdrawal-tremor carries akathisia's content outright. The detail page now degrades honestly around this, which is why it is not P1, but the per-slug overlay treats symptoms and no row owned the generator.

#QSHHGK updated — the baseline it was opened around has now been refreshed, so its points (2) and (3) are superseded and only the missing refresh owner keeps it open. The update records that it was measured from main at fd81561 rather than from a feature branch (a feature-branch baselineSource is deleted by squash-merge, which is how the previous one became unresolvable), and it deliberately preserves the row's caution that the refresh absorbed growth never attributed to a reviewed change set. That was the owner's call, taken knowingly.

#ZWJ71W updated with a cross-reference — the two morning specs it names are now test.skip on main as well (18a42d2), so Advisory UI is green and the owner ruling behind those skips is less visible than while they were failing, not more.

Verification

  • npm run check:outstanding-issues[snapshot] in step with data/outstanding-issues-snapshot.json (121 open, 0 pending)
  • npm run check:ledger-write-disciplineLedger write discipline passed for 0177bed18446..HEAD. (proves no table row was edited directly)
  • npm run format — clean, nothing to rewrite
  • git diff --stat origin/main..HEAD — 4 files, all under docs/outstanding-issues-inbox/, 51 insertions, 0 deletions

Verification not run: verify:pr-local, verify:ui, and the eval gates. This change adds four JSON request records under docs/outstanding-issues-inbox/ and touches no source, test, workflow, or configuration file, so no executable surface exists for them to exercise. The two gates that do govern this path both ran and are pasted above.

Risk and rollout

  • Risk: none to running behaviour. The queued requests are inert until someone runs issues:reconcile; until then they are four files nothing reads.
  • Rollback: revert the commit, or npm run issues:add -- cancel the request ids before reconciliation.
  • Provider or production effects: None.
  • RAG impact: none.

Clinical Governance Preflight

Included because the P1 row concerns clinical output, even though this PR ships no clinical content of its own.

  • Source-backed claims still require linked source verification before clinical use — unchanged; this PR adds no claims, and the new row exists precisely to get authored content in front of a clinician
  • No patient-identifiable document workflow was introduced or expanded without explicit governance approval
  • Supabase target remains Clinical KB Database (sjrfecxgysukkwxsowpy) — untouched
  • Service-role keys and private document access remain server-only — untouched
  • Demo/synthetic content remains clearly separated from real clinical sources — unchanged; the P1 row records that the authored overlay is labelled as locally authored at every render site
  • Source metadata, review status, and outdated/unknown-source behavior remain conservative — unchanged
  • Deployment classification/TGA SaMD impact was checked when clinical decision-support behavior changed — no decision-support behaviour is added or altered by this PR

Notes

The P1 row is the reason this PR exists. Ten records of assistant-authored clinical content are in production and no qualified reviewer has read them. Everything else here is tidying.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GMHX5TDG34BBn2yDdi81s5


Generated by Claude Code


Note

Low Risk
Only adds inbox JSON for the issues ledger; no runtime, clinical UI, or workflow behavior changes until reconciliation.

Overview
Bookkeeping only: this PR adds queued ledger requests under docs/outstanding-issues-inbox/ (no edits to docs/outstanding-issues.md or any app code). They stay inert until someone runs npm run issues:reconcile.

It opens two new rows from the differentials rework (PR #2665): a P1 task that ten assistant-authored slugs in differential-curated.ts are live without clinician sign-off, and a P2 issue that differentials-snapshot.json is mostly empty/wrong (including lithium content mixed with akathisia) and needs a generator/export fix—not more per-slug overlay.

For #QSHHGK, it updates the row with baseline refresh context (main at fd81561, new gzip numbers, caution about unattributed growth) and closes it via a done request: owner accepts the weekly report-only bundle-budget-refresh.yml workflow as sufficient.

For #ZWJ71W, it updates the ward-morning skipped UI specs: cross-reference that they are test.skip on main, plus a 2026-09-07 correction that the open owner question is Capacity↔handover cross-linking, not restoring fixed/live morning view (WB-DB-11 already decided), with dead-code deletion refused until 2026-10-03.

Reviewed by Cursor Bugbot for commit 9581700. Configure here.

PR #2665 merged and deployed, and three things it surfaced were recorded
nowhere. The session-start hook asked for a capture twice and never got one,
so this is that capture. Queued through npm run issues:add/update only;
docs/outstanding-issues.md itself is untouched and these apply on the next
npm run issues:reconcile.

P1 — ten locally authored differential records are live with no clinician
sign-off. src/lib/differential-curated.ts seeds delirium, hypoactive
delirium, NMS, serotonin toxicity, catatonia in mood disorder, akathisia,
alcohol withdrawal, clozapine adverse effects, postpartum psychosis and
lithium physiological withdrawal tremor. The labelling and the two enforcing
tests are done; the attestation is not, and the content reached
psychiatry.tools when main deployed. Shaped after #SBKXZ7, including its rule
that assistants never tick the clinical checks on their own behalf.

P2 — the differentials export leaves 194 of 201 records with an empty section
summary, 150 with no investigations and 110 with no immediate actions, and
lithium-physiological-withdrawal-tremor carries akathisia's content outright.
The detail page now degrades honestly around this, which is why it is not P1,
but the per-slug overlay treats symptoms and no row owned the generator.

#QSHHGK updated: the baseline it was opened around has now been refreshed, so
its points (2) and (3) are superseded and only the missing refresh owner keeps
it open. The update records that it was measured from main at fd81561 rather
than from a feature branch — a feature-branch baselineSource is deleted by
squash-merge, which is how the previous one became unresolvable — and it
deliberately preserves the row's caution that the refresh absorbed growth
never attributed to a reviewed change set. That was the owner's call.

#ZWJ71W updated with a cross-reference: the two morning specs it names are
now test.skip on main as well (18a42d2), so Advisory UI is green and the
owner ruling behind those skips is less visible than while they were failing,
not more.

Verified: check:outstanding-issues in step (121 open); working tree contains
nothing outside docs/outstanding-issues-inbox/; npm run format clean.

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

coderabbitai Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: e4509bd3-ec40-4f43-94c2-f49590f78125


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@supabase

supabase Bot commented Sep 7, 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 ↗︎.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-07T10:09:47.467474Z 28ea0ef PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@cursor

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_18e893d0-99ee-409d-8e80-8865ba86bcb7)

…r than act on it

Two of the four PR items had owner decisions that could be executed. Only one
of them survived contact with the repository.

CLOSED #QSHHGK. The owner is the named refresh owner and the weekly
report-only run is sufficient, which resolves the last of the three reasons it
stayed open; the other two were resolved by the 2026-09-06 refresh from main at
fd81561. The closing note deliberately carries the row's own caution forward:
that refresh absorbed roughly two weeks of growth never attributed to a
reviewed change set, and closing the row does not un-record it.

DID NOT retire the fixed morning view, though that was the decision given. Two
independent reasons, either sufficient on its own.

First, the question was mis-framed when it was put to the owner, and the
mis-framing is mine. Spec D9 is not the fixed/live morning view: the phase-4
design spec defines D9 as the SHIFT HANDOVER page, which is already built at
components/ward-management/handover/ and imports none of the morning freeze
machinery. The actual open D9 question, in the spec file's own words, is
"whether the morning board and the shift handover still owe each other a
cross-link once folded" — a navigation question. The fixed/live split is not an
open question at all; owner decision WB-DB-11 already reversed it. The two
skipped specs are therefore parked on the cross-link ruling, and
morning-page.tsx explicitly instructs against the three moves that would
pre-empt it.

Second, npm run check:dead-code-candidate REFUSED all five candidates —
FrozenMorning, buildFrozenMorning, ViewControl, NoHandoverYet, MorningView.
Each was introduced 2026-09-03, four days ago and well inside the 30-day
threshold; ViewControl is additionally pinned by two committed tests. Per
docs/agents/dead-code-deletion.md a refusal is a stop and the threshold is not
to be tuned to make a diff pass. Earliest eligible re-check is 2026-10-03.

#ZWJ71W updated with both findings and with the question the owner actually
needs to answer, so the next reader does not repeat the mis-framing. Its
earlier reference to "the D5 half of #YTR84P" is corrected too: D5 in that spec
is release-a-hold and cancel-a-transport, unrelated to any of this.

No source or test file is touched by this commit.

Verified: npm run format clean; working tree contains nothing outside
docs/outstanding-issues-inbox/; the dead-code gate output above is quoted from
a real run, not assumed.

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

cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_e6676ea5-7f59-45ed-95a1-02bdeb096b8a)

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 2 failed job(s):

  • Static PR checksneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • PR requiredneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.

Compared with main CI run #16306 (cancelled).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

…g mutation

Fixes the Static PR checks failure on 9581700. The failing step was
`docs:check-links`, which builds the projected ledger markdown and therefore
plans the pending request batch:

  Error: multiple pending mutations require an explicit cancellation decision
  (#ZWJ71W: 2ab09b4d, ce667f09; #QSHHGK: 2e5e2bc1, a4593f03).

Self-inflicted: I queued two mutations against each of those rows across two
commits, and the reconciler refuses to guess which one wins. Reproduced
locally before fixing, and the same command is green after.

CANCELLED 2ab09b4d (#ZWJ71W, first update). Verified superseded verbatim —
ce667f09 contains its full 2678 characters plus the D9 correction. Nothing is
lost.

CANCELLED 2e5e2bc1 (#QSHHGK, the closure). This is ordering, not a reversal:
the owner's decision to close that row stands. Its sibling update a4593f03
corrects a statement in the row that is now false — that the baseline was
deliberately not refreshed — and a `done` request cannot carry a detail
change, so the correction has to land first. The closure is re-queued after
the next reconcile. Cancelling the update instead would have left the false
statement in the archived row, which is the opposite of why the update exists.

Why CI caught this and I did not: I ran the ledger gates and `ledger-inbox.mjs
check` locally and all passed, but `ledger-inbox check` validates request files
without planning the batch, and I never ran `docs:check-links` — the one gate
that does. Running the ledger checks alone was not sufficient evidence.

Verified after the fix: docs:check-links, docs:check-scripts,
check:outstanding-issues, check:branch-review-ledger,
check:ledger-stamp-retention, check:diff-integrity all pass;
`ledger-inbox.mjs check` reports 42 pending, 1080 applied; whole-tree
`prettier --check .` clean. check:ledger-write-discipline re-run below on the
committed tree, since it refuses a verdict on an uncommitted one.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GMHX5TDG34BBn2yDdi81s5
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