From 5259f388992a1ed5f9d3ab757ccf40b21705326d Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 17 Aug 2026 08:38:09 +0000 Subject: [PATCH 1/2] =?UTF-8?q?docs(issues):=20re-grade=20#322=20to=20P1?= =?UTF-8?q?=20=E2=80=94=20the=20two=20Warfarin=20records=20are=20complemen?= =?UTF-8?q?tarily=20incomplete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Traced rather than inferred. The row claimed the two records share ZERO interaction rows; that is wrong, and it understates the defect. Rows 0 (CYP2C9 inhibitors) and 2 (dietary vitamin K) ARE shared. The real problem is complementary incompleteness landing on psychiatric drugs: - warfarin-vka has a CRITICAL CYP2C9 inducers row (carbamazepine, St John's Wort) that warfarin-anticoagulant lacks - warfarin-anticoagulant has a HIGH NSAID/Aspirin/SSRI bleeding row with twelve counterparties, six of them SSRIs, that warfarin-vka lacks Resolution is strictly per-slug — medication-interactions.ts:207 and :241 read INDEX.bySlug[slug], and INDEX.names maps slug to display name, not name to slugs. There is no union anywhere. So a psychiatrist checking warfarin against sertraline sees the bleeding warning only if they opened warfarin-anticoagulant, and nothing if they opened warfarin-vka. Carbamazepine is the mirror image. Both records display as "Warfarin". Also recorded: each record lists the other as a counterparty, so the duplicate is treated as interacting with itself. Scope is explicit — this establishes the structural inconsistency only. Whether either record's content is clinically correct is not assessed and is not an agent's call. Merging is flagged as the obvious candidate precisely because the sets are complementary, but it stays a clinician's decision. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5 --- .../7c602a99-9db9-4a56-9d7b-1692db146b5d.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/outstanding-issues-inbox/7c602a99-9db9-4a56-9d7b-1692db146b5d.json diff --git a/docs/outstanding-issues-inbox/7c602a99-9db9-4a56-9d7b-1692db146b5d.json b/docs/outstanding-issues-inbox/7c602a99-9db9-4a56-9d7b-1692db146b5d.json new file mode 100644 index 0000000000..a7594672f3 --- /dev/null +++ b/docs/outstanding-issues-inbox/7c602a99-9db9-4a56-9d7b-1692db146b5d.json @@ -0,0 +1,11 @@ +{ + "version": 2, + "id": "7c602a99-9db9-4a56-9d7b-1692db146b5d", + "createdOn": "2026-08-17", + "action": "update", + "payload": { + "id": "#322", + "pri": "P1", + "detail": "RE-GRADED TO P1 AND CORRECTED 2026-08-17 on traced evidence, not inference. The original claim that the two records carry \"three interaction rows each with ZERO in common\" is FACTUALLY WRONG and understates the defect. Traced in data/medication-interaction-index.json: rows 0 (Pharmacokinetic, CYP2C9 inhibitors - amiodarone/fluconazole/metronidazole/cotrimoxazole) and 2 (Dietary, vitamin K) ARE substantively shared by both records. The real defect is COMPLEMENTARY INCOMPLETENESS, and it lands precisely on psychiatric drugs. warfarin-vka carries a CRITICAL CYP2C9 INDUCERS row (carbamazepine, St John's Wort - INR collapses toward 1.0, stroke risk) which warfarin-anticoagulant does NOT have. warfarin-anticoagulant carries a HIGH bleeding row for NSAIDs/Aspirin/SSRIs with twelve counterparties including six SSRIs (citalopram, escitalopram, fluoxetine, fluvoxamine, paroxetine, sertraline) which warfarin-vka does NOT have. So neither record is complete on its own, and each omits a psychiatrically central interaction the other holds. Resolution is strictly per-slug with no union anywhere: src/lib/medication-interactions.ts:207 and :241 read INDEX.bySlug[slug], and INDEX.names maps slug to display name, not name to slugs. Practical consequence for this app's actual user: a psychiatrist checking warfarin against sertraline sees the bleeding warning only if they happened to open warfarin-anticoagulant, and sees NOTHING if they opened warfarin-vka; checking warfarin against carbamazepine is the exact mirror. Nothing on screen distinguishes the two records - both display as \"Warfarin\". Secondary artefact worth fixing in the same pass: each record lists the OTHER as a counterparty (warfarin-vka's row-0 counterparties include warfarin-anticoagulant), so the duplicate is being treated as a drug that interacts with itself. Scope of this finding: it establishes the STRUCTURAL inconsistency only. Whether the interaction content of either record is clinically correct is not assessed here and is not an agent's call. Next: a clinician decides whether to merge the two records, delete one, or relabel them, and confirms the merged interaction set is complete - merging is the obvious candidate precisely because the two sets are complementary. Stop: do not patch the catalogue data automatically; this is clinical content. Grouping: treat alongside #318 as the clinical-content cluster - both are unvalidated medication-interaction surfaces in a prescribing tool." + } +} From 4f43701a4b52fdd661ef3c9735f3f4e8114ef883 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 17 Aug 2026 08:40:27 +0000 Subject: [PATCH 2/2] chore(ledger): record the #322 re-grade review Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5 --- ...a52b7a0abbd9fb38c4eec193bafc303312bf16c9201630bffaf.record.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/branch-review-records/6fe6f89aef723a52b7a0abbd9fb38c4eec193bafc303312bf16c9201630bffaf.record.md diff --git a/docs/branch-review-records/6fe6f89aef723a52b7a0abbd9fb38c4eec193bafc303312bf16c9201630bffaf.record.md b/docs/branch-review-records/6fe6f89aef723a52b7a0abbd9fb38c4eec193bafc303312bf16c9201630bffaf.record.md new file mode 100644 index 0000000000..62ca9b7ebe --- /dev/null +++ b/docs/branch-review-records/6fe6f89aef723a52b7a0abbd9fb38c4eec193bafc303312bf16c9201630bffaf.record.md @@ -0,0 +1 @@ +| 2026-08-17 | claude/regrade-322-warfarin | 5259f388992a1ed5f9d3ab757ccf40b21705326d | docs/outstanding-issues-inbox — #322 re-grade to P1 on traced evidence | Traced data/medication-interaction-index.json and src/lib/medication-interactions.ts. The row's 'ZERO in common' claim is wrong - rows 0 and 2 are shared. Real defect is complementary incompleteness: warfarin-vka holds the CRITICAL CYP2C9 inducers row (carbamazepine, St John's Wort) and warfarin-anticoagulant holds the HIGH NSAID/Aspirin/SSRI row (12 counterparties, 6 SSRIs); neither holds the other's. Resolution is per-slug via INDEX.bySlug with no union (medication-interactions.ts:207,241), so which record is opened determines the warnings shown, and both display as Warfarin. Re-graded P2 to P1. Structural finding only; clinical correctness and the merge/delete/relabel decision left to the clinician. | verify:pr-local (11 completed, 0 failed) |