issues: record the four loose ends the differentials rework left behind - #2722
issues: record the four loose ends the differentials rework left behind#2722BigSimmo wants to merge 3 commits into
Conversation
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
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Team Run ID: 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. Comment |
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Bugbot couldn't run - usage limit reachedBugbot 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
Bugbot couldn't run - usage limit reachedBugbot 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) |
CI triageCI failed on this PR. Automated classification of the 2 failed job(s):
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
Summary
npm run issues:add/issues:update.docs/outstanding-issues.mditself is untouched — these apply on the nextnpm run issues:reconcile.New, P1 — ten locally authored differential records are live with no clinician sign-off.
src/lib/differential-curated.tsseedsdelirium,hypoactive-delirium,neuroleptic-malignant-syndrome,serotonin-toxicity,catatonia-in-mood-disorder,akathisia,alcohol-withdrawal,clozapine-specific-adverse-effects-toxicity,postpartum-psychosisandlithium-physiological-withdrawal-tremor. The labelling and the two enforcing tests are done; the attestation is not, and the content reachedpsychiatry.toolswhen 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-tremorcarries 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.#QSHHGKupdated — 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 atfd81561rather than from a feature branch (a feature-branchbaselineSourceis 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.#ZWJ71Wupdated with a cross-reference — the two morning specs it names are nowtest.skipon 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-discipline—Ledger write discipline passed for 0177bed18446..HEAD.(proves no table row was edited directly)npm run format— clean, nothing to rewritegit diff --stat origin/main..HEAD— 4 files, all underdocs/outstanding-issues-inbox/, 51 insertions, 0 deletionsVerification not run: verify:pr-local, verify:ui, and the eval gates.This change adds four JSON request records underdocs/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
issues:reconcile; until then they are four files nothing reads.npm run issues:add -- cancelthe request ids before reconciliation.Clinical Governance Preflight
Included because the P1 row concerns clinical output, even though this PR ships no clinical content of its own.
Clinical KB Database(sjrfecxgysukkwxsowpy) — untouchedNotes
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 todocs/outstanding-issues.mdor any app code). They stay inert until someone runsnpm 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.tsare live without clinician sign-off, and a P2 issue thatdifferentials-snapshot.jsonis 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 atfd81561, new gzip numbers, caution about unattributed growth) and closes it via adonerequest: owner accepts the weekly report-onlybundle-budget-refresh.ymlworkflow as sufficient.For
#ZWJ71W, it updates the ward-morning skipped UI specs: cross-reference that they aretest.skipon 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.