Skip to content

docs(issues): re-grade #322 to P1 — the two Warfarin records are complementarily incomplete - #2020

Merged
BigSimmo merged 8 commits into
mainfrom
claude/regrade-322-warfarin
Aug 17, 2026
Merged

docs(issues): re-grade #322 to P1 — the two Warfarin records are complementarily incomplete#2020
BigSimmo merged 8 commits into
mainfrom
claude/regrade-322-warfarin

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

One queued update request re-grading #322 P2 → P1 and correcting its central claim. Traced against the data and the resolution code, not inferred from the row's prose.

  • The row's claim is factually wrong, and it understates the defect. #322 says the two records carry "three interaction rows each with ZERO in common". They are not zero in common: row 0 (Pharmacokinetic — CYP2C9 inhibitors: amiodarone, fluconazole, metronidazole, cotrimoxazole) and row 2 (Dietary — vitamin K) are substantively shared.
  • The actual defect is complementary incompleteness, and it lands on psychiatric drugs.
warfarin-vka warfarin-anticoagulant
CYP2C9 inhibitors (CRITICAL)
Dietary vitamin K (HIGH)
CYP2C9 inducers — carbamazepine, St John's Wort (CRITICAL)
NSAIDs / Aspirin / SSRIs — 12 counterparties, 6 of them SSRIs (HIGH)

Neither record is complete alone, and each omits a psychiatrically central interaction the other holds.

  • There is no union — resolution is strictly per-slug. src/lib/medication-interactions.ts:207 and :241 read INDEX.bySlug[slug], and INDEX.names maps slug → display name, not name → slugs. So which record a clinician opens determines what they see, and both display as "Warfarin" with nothing distinguishing them.
  • 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. That is the reason for P1: it is not a duplicate-data hygiene issue, it is a silently incomplete answer on a narrow-therapeutic-index anticoagulant.
  • Secondary artefact recorded for the same pass: each record lists the other as a counterparty (warfarin-vka row-0 counterparties include warfarin-anticoagulant), so the duplicate is being treated as a drug that interacts with itself.

Scope is stated explicitly in the row. This establishes the structural inconsistency only. Whether either record's interaction content is clinically correct is not assessed here and is not an agent's call. Merging is flagged as the obvious candidate precisely because the two sets are complementary — but that remains a clinician's decision, and the row says so and forbids patching the catalogue automatically.

The row is also grouped with #318 as the clinical-content cluster: both are unvalidated medication-interaction surfaces in a prescribing tool.

Verification

  • npm run verify:pr-local
- completed: check:runtime, check:installed-lock-parity, format:changed, sitemap:check,
  docs:check-index, docs:check-inventory, docs:check-scripts, docs:check-links,
  check:branch-review-ledger, check:outstanding-issues, check:ledger-write-discipline
- failed: (none)
- not reached: (none)

Evidence came from reading data/medication-interaction-index.json (both bySlug entries in full) and src/lib/medication-interactions.ts. No provider access, no writes, no catalogue data changed by this PR.

UI verification not run: no UI, routing, styling, or browser-behaviour change in this diff.

Risk and rollout

  • Risk: Low as a diff — one JSON request file under docs/outstanding-issues-inbox/. No application source, no catalogue data, no schema. The canonical ledger is untouched until a reconcile applies it. The subject is high-risk, which is the point of the re-grade.
  • Rollback: git revert the single commit, or delete the request file before reconciliation. A re-grade is also trivially reversible via another --pri update.
  • Provider or production effects: None.

Clinical Governance Preflight

Not applicable as a checklist — classifyPullRequestFiles returns clinicalRisk: false, operationalRisk: false, ragRanking: false, ui: false for docs/outstanding-issues-inbox/**, and this diff changes no ingestion, answer-generation, ranking, source-rendering, document-access or privacy code. It describes a clinical-content defect rather than touching one. The governance work this row calls for — a clinician deciding between merge, delete and relabel, then confirming the merged interaction set is complete — is deliberately left to the owner and is recorded as such.


Generated by Claude Code

…lementarily incomplete

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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@supabase

supabase Bot commented Aug 17, 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 17, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 39 minutes

Limit details: You’ve used all 1 included review currently available under your plan. You completed 94 included PR reviews in the past 7 days; at that activity level, included reviews refill at 1 review per hour.

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

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: fac3c38d-e9e6-4d1b-b4f6-883542ff34dd

📥 Commits

Reviewing files that changed from the base of the PR and between 6d56292 and 29ffec6.

📒 Files selected for processing (2)
  • docs/branch-review-records/6fe6f89aef723a52b7a0abbd9fb38c4eec193bafc303312bf16c9201630bffaf.record.md
  • docs/outstanding-issues-inbox/7c602a99-9db9-4a56-9d7b-1692db146b5d.json

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

@BigSimmo
BigSimmo enabled auto-merge (squash) August 17, 2026 11:28
@BigSimmo
BigSimmo merged commit 4ffc59f into main Aug 17, 2026
24 checks passed
@BigSimmo
BigSimmo deleted the claude/regrade-322-warfarin branch August 17, 2026 11:34
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