Skip to content

release(7.10.0): evidence-currency update outside the Protocols tab - #264

Merged
rkalani1 merged 176 commits into
mainfrom
claude/stoic-noether-qt632x
Oct 31, 2026
Merged

rkalani1 merged 176 commits into
mainfrom
claude/stoic-noether-qt632x

Conversation

@rkalani1

@rkalani1 rkalani1 commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Summary

Release 7.10.0 updates the Evidence and Trials content to the current best available evidence, outside the Protocols tab. Seven domain sweeps searched for guidelines, trials and label changes published or presented from January 2025 to 31 October 2026 that the content did not yet reflect. An independent verifier re-read every source and accepted, corrected or rejected each proposal (90 of 94 accepted or corrected, 4 rejected). A further verified pass covered items the verifiers said were missed. Two independent reviews then checked the applied diff, and their minor findings were fixed. Every change, its source, access level and supporting passage is in docs/evidence-ledger-2026-10-31.md. The Protocols tab is unchanged; findings that bear on it are reported for the owner in docs/protocols-review-notes-2026-10.md.

Changes

  • Thrombectomy: new study cards for MILD-MT (NIHSS <6) and LATE-MT (24–72 h), both open-label, perfusion-selected and from China, with their harms; the EVT card states their selection criteria and that they postdate AHA 2026 and are not graded. One- to three-year follow-up of OPTIMAL-BP, ANGEL-ASPECT, SELECT2, ATTENTION and TESLA; DISTAL and ESCAPE-MeVO secondary analyses; EDESTROKE.
  • IV thrombolysis and acute care: late-window IVT harm and ETERNAL-LVO; TEMPO-2 secondary analyses and a minor-stroke meta-analysis; PRACTISE; ZODIAC and HeadSOAR (head position before and after EVT); MSU-TELEMED; in-hospital stroke delays; ESO's 2026 evidence update. CRAO: TenCRAOS and THEIA do not support routine IVT.
  • Neuroprotection: EMPHASIS, LAIS, ERASE-STROKE and TASTE-2 (positive, China only, unreplicated) and neutral ACTISAVE and MIST-A are listed as postdating AHA 2026, whose COR 3: No Benefit is unchanged.
  • Hemorrhagic stroke: anticoagulation after ICH in AF (2025 meta-analysis; ENRICH-AF's lobar-ICH safety stop, no unpublished results); RECAP-ICH; STATICH-Antiplatelets; pooled INTERACT analyses with the conflicting deep/lobar evidence; ESO/EANS 2025; tranexamic acid IPD meta-analysis; MARS; DOAC vs VKA in CVT; SAH decision rules; de novo aneurysms; cavernomas; ADPKD screening.
  • Prevention: CREST-2 and CREST-H cognition; Ez-PAVE, ESPRIT, RECAP-ICH; STAREE and VESALIUS-CV; LIBREXIA-ACS; aspirin-switch NMA; LAMP and early GLP-1RA; post-stroke PAP; T3CAD; AHA ARIA Summit guidance for anti-amyloid therapy.
  • AF and cardioembolism: ACC/AHA 2023 device-detected AF grades with ARTESiA and NOAH-AFNET 6 prior-stroke subgroups; LAA closure vs anticoagulation; SCAI/HRS 2025; stroke despite anticoagulation; STABLED, ALONE-AF and OCEAN; OPTIMAS and ELAN analyses; ARCADIA bleeding; antiphospholipid prevalence.
  • Recovery and populations: CSBPR 2025, ESTREL, Walk 'n Watch, OPTIMISTmain, FAST, seizure prophylaxis trials, acute imbalance syndrome, WSO sex and gender, IPSO pediatric ICH consensus, VasCog-2-WSO, GOLDEN BRIDGE II, AHA health-literacy guidance.
  • Trials screener: TELE-REHAB-2 follows its current registry eligibility (onset 90–270 days, age 18–85, ARAT 14–44), keeping tri-state screening; registry dates rechecked for all 16 profiles. A reported CAPTIVA arm change could not be checked against an NIH or registry source, so it is not asserted and the 7.7.0 guard test is kept.
  • Search: trial names that appear only in card details were added to topic keywords so global search finds them.
  • Version 7.10.0; CHANGELOG, README rollback point, the new ledger and the Protocols owner notes. The 7.9.0 changelog date is corrected to 2026-10-30.

Not added because the sources could not be verified in this session (unreachable sites): ENRICH-AF results presented at ESC 2026, the 2026 AHA/ASA rehabilitation guideline's recommendation text, asundexian's regulatory status, AVERT DOSE and the CAPTIVA arm change.

Validation

All on the release commit (7bb9059, plus the test-only fix f606e7c):

  • npx vitest run: 134 files, 2791 passed, 3 skipped. The one failure in the first run was a test that pinned the mobile-stroke-unit bullet verbatim; f606e7c updates it to pin the unchanged COR 1 sentence and to require the new postdating label, and the file passes 8/8.
  • evidence:validate, content:validate, check:clinical-claims, validate:citations, validate:inline-citations, check:leak-guard, agent:assets:check, check:retirement: all pass
  • npm run build: succeeds; scripts/check-committed-bundle.mjs PASS; check:asset-budget within every ceiling (precache 2.14 of 2.30 MiB; JavaScript essentially unchanged)
  • Protocols: source lock PASS; rendered lock PASS at 1440×900 and at 390×844 (46 captures each); Example Protocols snapshot PASS. No Protocols file is in the diff.
  • node scripts/qa-smoke.mjs --local-only: 35/35
  • Independent reviews of the applied diff (source fidelity, and build/tests/rendered app): no blocking problems; their minor findings are fixed and listed in the ledger
  • CI green on f606e7c: unit tests, build-and-smoke, Protocols tab lock, MCP smoke, guard, Lighthouse (the adaptive-latency smoke runs on main only)

Clinical-correctness checklist (only if clinical content changed)

  • Primary sources cited: every changed claim has a ledger row with its PMID, DOI or NCT, the access date and level, and the supporting passage
  • Identifier patterns valid (validators above)
  • No PHI in tests, fixtures or commit messages (synthetic data only; leak guard clean)
  • Tri-state criterion semantics preserved (unknown ≠ not met; partial data never yields a definitive eligible or potential match)
  • Class I recommendations quote their recommendation id, class and level of evidence (guideline grades unchanged; newer evidence labelled as postdating and ungraded)

Type of change

  • New feature / clinical content
  • Docs only

Routes to inspect (if UI changed)

#/evidence (thrombectomy, neuroprotection, CRAO, ICH, AF, prevention and recovery topics; the MILD-MT and LATE-MT study cards), #/trials (TELE-REHAB-2, CAPTIVA) and global search (Ctrl/⌘ K, e.g. "MILD-MT", "HeadSOAR"). #/protocols/ischemic and #/protocols/ich should look unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA

claude added 30 commits October 21, 2026 12:14
The rendered lock captured the Protocols surface only at 1440 px, so a
responsive CSS change could hide, reorder or clip protected content on a
phone without failing. `--viewport=phone` (and `tablet`) now replays every
fixture at 390x844 against the same desktop baselines, which must match
exactly, and additionally fails when protected text is clipped out of reach
by an overflow-hidden ancestor or pushed beyond the page's right edge.
Baselines are unchanged; --update stays desktop-only.

Verified: the current build passes at phone width; a negative control that
clips Protocols paragraphs below 500 px fails (138 ICH, 82 ischemic nodes).
CI runs the phone pass after the desktop lock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
… protection

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
… ASPECTS no longer score

calculateICHScore now requires an explicit boolean for age >=80, volume >=30 mL,
IVH and infratentorial origin (Hemphill 2001). An omitted or string answer
returned a score before ('false' counted as a point). Encounter callers already
pass booleans, so displayed scores are unchanged. Three calculators.test.js
assertions now state the negative answers explicitly.

evaluateDEFUSE3 returns no screen for an entered ASPECTS that is not a whole
number 0-10 on CT selection (NCT02586415 NCCT ASPECTS <6 exclusion). It was
treated as blank and could read as a met partial screen. A blank ASPECTS still
asks for confirmation; MRI selection ignores it. protocol-source lock: PASS.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…k caution, CHA2DS2-VASc and PHQ-2 source notes

- Worksheet synonyms now live on the definitions (aliases), so the global
  quick search finds STOP-BANG by 'sleep apnea', PHQ-2 by 'depression',
  CHA2DS2-VASc/HAS-BLED by 'atrial fibrillation' and RoPE/PASCAL by 'patent
  foramen ovale'. Before, only the Calculators-tab search knew them.
- STOP-BANG flags a neck circumference under 25 cm (likely inches; 16 in =
  40.6 cm) as it already flags height; the caution is shown and copied.
- CHA2DS2-VASc limits: the 2023 ACC/AHA/ACCP/HRS AF guideline names
  CHA2DS2-VASc (s6.1 rec 1, PMC full text); the 2024 ESC AF guideline uses
  CHA2DS2-VA without the sex category (secondary full-text report), which is
  not calculated here.
- PHQ-2 limits: Kroenke 2003 cutpoint >=3 with its source population (primary
  care and obstetrics-gynecology, not stroke).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…screen and worksheet

159 cases with expected values derived from Hemphill 2001, Kothari 1996,
Cockcroft-Gault 1976, AHA/ASA 2026 dose and DAPT recommendations (archived
transcription), DAWN/DEFUSE 3 registry records, large-core trial abstracts and
the worksheet source definitions, plus missing/invalid input, copy text,
search and deep-link coverage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…answer, copy)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…pecific-population Evidence cards

Primary sources were re-read on 2026-10-21 (PubMed abstracts, PMC full text);
AHA/ASA AIS 2026 and ICH 2022 grades were checked against the maintained
projection or the archived transcription (secondary scope).

Corrections:
- recovery: grades are AIS 2026 (ais-2026-179/-181/-174/-175/-180), not the
  unreviewed August 2026 rehabilitation guideline; SSRIs are COR 3: No Benefit;
  FOCUS/AFFINITY/EFFECTS: no mRS benefit and more fractures.
- pediatric-stroke: separate ais-2026-133 (<=6 h) and -134 (6-24 h with
  salvageable tissue) 2a windows; -135 2b needs salvageable tissue.
- preexisting-disability: restore the ICA/M1 and NIHSS >=6 limits (-118/-119).
- driving-work: AAN 2025 does propose an ordinary 3-month seizure-free interval.
- maternal-stroke: IVT/EVT support is ESO 2022 expert consensus (no RCTs); AHA
  2026 abstract wording for imaging and treatment delay.
- vte-prevention: CLOTS 3 enrolled days 0-3; add ICH low-dose heparin (2a) and
  24-48 h timing (2b).
- stroke-pneumonia: COR 3: No Benefit; ESO 2026 criteria and prompt antibiotics.
- inpatient-care, imaging-follow-up, poststroke-dysphagia: population/label
  precision (ais-2026-77, ESO 2026 TCD, FOOD early PEG).

Additions (abstract or PMC full text): antiamyloid thrombolysis cautions from the
lecanemab/donanemab AURs and the 2026 AHA ARIA Summit (abstract only); ESO 2025
aphasia dose, motor and vision recommendations; AHA 2026 spasticity early-treatment
definition; VNS-REHAB 2-year follow-up and 2026 Cochrane review.

Review questions that restated their own card were removed to offset bytes.
Generated reference +2,215 bytes raw. The 2026-10-17 date pins in three tests
move to the 2026-10-21 review cutoff.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
Every profile's full ClinicalTrials.gov record was re-read on 2026-10-21 and
its LastUpdatePostDate re-established with exact-day search-index queries.

- verificationDate 2026-10-17 -> 2026-10-21 for all 16 profiles (all re-read).
- Last update posted: SISTER 2026-10-02 -> 2026-10-19; CAPPRICORN-1
  2026-09-18 -> 2026-10-20; CAPTIVA 2026-10-13 -> 2026-10-20. The other 13
  dates were re-established unchanged. All overall statuses unchanged.
- Stored criteria compared with today's records; corrections from the
  registry text: TELE-REHAB-2 gains registry items to confirm (it had none)
  and its pregnancy-test residual; SISTER adds inclusion 4c (CT hypodensity)
  and the planned-breastfeeding/pregnancy-test wording of exclusion 5; ASPIRE
  adds active infective endocarditis; SCOUTS-3, VERIFY and MR-PICS add
  missing registry exclusions/timing; MINUTE's time label no longer asserts
  a randomization time; FASTEST-2 notes the registry calls Part 2 an
  extension of FASTEST; MR-PICS summary follows the current brief summary.
- Updated date assertions in existing trial tests to the new check date.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
- The copied screening summary printed numeric entries the criteria reject
  (age 150, NIHSS 3.5 or 50, volume 1e3 mL, age -5) as if they were used
  facts. It now prints the value the criteria read (age 070 -> age 70) and
  marks a rejected entry "(invalid entry; treated as unknown)". One shared
  numericFact() keeps the acceptance rules identical to evaluation.
- Encounter-anchored onset text now dates both ends when midnight lies
  between the LKW and "as of" times (previously "LKW 25.0 h (Encounter LKW
  11:00, as of 12:00)"), and adds a UTC offset only for a repeated
  daylight-saving hour, as the notes do.
- The timing hint said "Exact interval entered." for a negative interval
  that the screen treats as unknown; it now says it is not valid.
- Age, NIHSS and volume inputs flag an entry the criteria cannot read
  (aria-invalid, linked hint, existing utility classes only).
- "Insufficient information" asks to confirm the unknown fact (several
  modeled facts have no screener control).
- tests/trials-2026-10-21.test.jsx: registry-derived boundaries for every
  screened criterion, missing/implausible values, midnight/DST/future LKW
  import, seeded partial-Encounter invariant (never a potential match),
  exclusion answerability and summary artifact checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…sions as registered

SCOUTS-3 exclusion 8 names benzodiazepine, barbiturate, general anesthesia or
conscious sedation within 48 h of the sleep study; MR-PICS names the Columbia
Suicide Scale ideation score. Prompts now use that wording.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…Evidence cards

Second-check corrections from the 2026-10-21 ev-acute review (sources read today):

- thrombolytic-choice: state that US labels cover alteplase and, since
  February 2025, tenecteplase within 3 h, and that the TNK label's five
  weight bands (15-25 mg) deliver more than 0.25 mg/kg below 100 kg
  (0.33 mg/kg at 45 kg). Adds the SVIN editorial reproducing the label
  (PMID 41573708, PMC12697625) as a Report source; FDA label not reachable.
- malignant-edema: keep the two COR 3 categories apart (hypothermia,
  barbiturates, corticosteroids = 3: Harm; IV glibenclamide = 3: No
  Benefit, ages 18-70 per CHARM).
- acute-bp: ESO 2025 vasopressor statement applies to neurological
  deterioration without reperfusion therapy; Cochrane 2026 population is
  after IVT or EVT with targets <160. checkedAt 2026-10-21 for the three
  sources re-read today.
- ich-management: the >70 mm Hg / <110 safeguards are ESO 2025 consensus
  (ICH guideline and BP update), not 2026.

Tests: tests/ev-acute-2026-10-21.test.js (source-derived values, label
band arithmetic against the shared calculator). Three validator date pins
move from 2026-10-17 to 2026-10-21 because sources re-read today now carry
that checkedAt (nonfuture-date rule).

Data bytes: data/clinical-reference.json +591 (generated locally, reverted).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
Cards, the details modal and the tables already link to each study's
ClinicalTrials.gov record; the copied screening summary listed NCT numbers
only. Each potential-match and insufficient-information entry now carries
a 'Registry record:' line with its registryUrl. Later and not-met groups
stay one line each.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
Scope inventory, findings with severity, changes and rationale, evidence
ledger rows (column order per the review brief), test results, Protocols
observations (report only), unresolved uncertainties and proposed
cross-area patches for the lead (TIA readiness, discharge rehabilitation
fields, PHQ-2 cutpoint).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
The dated onset text formats the anchor with toISOString, which throws for a
finite timestamp outside the Date range. anchoredOnsetHours now treats such
an anchor or clock as unanchored, so the screen falls back to the stored
interval instead of failing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…tion Evidence cards

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
AHA/ASA 2026 ais-2026-75 (COR 3: No Benefit, B-R; archived transcription)
limits the intensive post-IVT SBP statement to mild-to-moderate AIS treated
with IVT, and the ENCHANTED abstract (PMID 30739745, read 2026-10-21) draws
the same boundary. The card now says "After alteplase for mild-to-moderate
stroke" instead of an unqualified "After alteplase".

Test: tests/ev-acute-2026-10-21.test.js asserts the population wording and
the ENCHANTED any-ICH figures (14.8 vs 18.7%).

Data bytes: data/clinical-reference.json +28 (cumulative +619; generated
locally and reverted).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…ross-area patches

docs/review-2026-10-21/calculators.md: inventory of 35 calculators, scores,
scales, screens and decision aids plus the MCP calculator tools; findings with
severity; changes; ledger rows for every calculator's definition source (access
scope stated); tests and results; Protocols observations (none); unresolved
uncertainties; exact Encounter/encounter-details/MCP patches for the lead; and
the evaluation of proposed additional tools (none added).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
Re-verify EVT, prehospital and systems-of-care Evidence cards against
primary sources read 2026-10-21 (PubMed abstracts, PMC full text,
ClinicalTrials.gov registries; AHA/ASA 2026 at archive scope).

- Restore population limits on graded statements (ICA/M1 EVT tiers,
  prestroke mRS 2-4, direct-to-angiography 2b, MSU thrombolytic-eligible,
  rural destination 2a with its COR 3: No Benefit counterpart,
  large-core trial age limits, ATTENTION NIHSS >=10).
- Correct trial summaries (PRISMS stopped early, RACE pooled EMS accuracy,
  RACECAT setting, bridging noninferiority trials, tirofiban COR subtype,
  ESO BP attribution) and study-source designs (DISTAL, TESLA, PEARL,
  BEST-MSU).
- Add post-guideline evidence with labels: ATLAS, DIRECT ANGIO, CHOICE-2,
  IAT-TOP, AHA writing-group response, DISTAL 12 months, TESLA,
  ANGEL-REBOOT.
- Re-date only sources re-read today; keep correction notices.
- Move DIRECT ANGIO's mapping to evt-selection, which now cites it.
- Add tests/ev-evt-2026-10-21.test.js; move three contract-validation
  cutoffs from 2026-10-17 to 2026-10-21 for the new checkedAt dates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…eet search and cautions

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
The "treated as unknown" hint sat below its input, so a flagged Volume
entry made its grid row taller and pushed the neighbouring ICH location
select out of line (390 px, dark theme). The hint now sits in the label
block above the input, using existing utilities only; the input keeps its
aria-label name and aria-describedby link to the hint.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…odality

calc_crcl returned an adjusted-weight Cockcroft–Gault estimate even when the
height was implausible (for example 66 cm, probably inches), although that
height drives the obesity adjustment and Encounter already withholds the
estimate. It now returns heightWarning with adjBwValue, rawAdjBwValue and
obesityWarning set to null.

calc_defuse3_eligibility accepts perfusionModality ('ct' default, 'mri'):
DEFUSE 3 excluded NCCT ASPECTS <6 only for patients enrolled on CT perfusion,
and evaluateDEFUSE3 already honours the field; the tool could not pass it.

Smoke: 77 calls. The new assertions fail on the unpatched server
(adjBwValue 75.8 instead of null). Found by the calculators review unit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
- evt-selection: drop the summary's repeat of the bridging-trial list
  (the caution carries the full list) and label BRIDGE-TNK as China,
  within 4.5 h, per its primary abstract.
- code-stroke-activation: keep the creatinine rule once (CTA/CTP, per
  ais-2026-49) instead of in both summary and consider.
- Lock both with assertions in tests/ev-evt-2026-10-21.test.js.

Net generated-data delta for the unit is now +3,054 bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…ches

docs/review-2026-10-21/ev-acute.md: scope inventory (24 topics, 169 card
sources, 41 graded records, 26 study records, 3 projections), findings with
severity, the six corrected statements and one added source, evidence ledger
rows (corrected, verified, flagged and unresolved, accessed 2026-10-21 with
scope), test results, Protocols observations (report only), cross-area patches
for CaseBar.jsx and safety-items.js, and unresolved uncertainties (andexanet
regulatory detail, TNK label text, CHARM notice, emerging CVT/ICH evidence).

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

# Conflicts:
#	tests/clinical-reference-data.test.js
#	tests/evidence-ivt-bp-antiplatelet-content.test.js
#	tests/ich-sah-evidence-review-2026-10-17.test.js
Scope inventory, findings with severity, changes, evidence ledger with
source access scope, test results, Protocols observations (report only),
unresolved uncertainties, and cross-area patches for the lead (EVT screen
messages in encounter-clinical-review.js; large-core modeled-subset note).

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

# Conflicts:
#	tests/evidence-ivt-bp-antiplatelet-content.test.js
#	tests/ich-sah-evidence-review-2026-10-17.test.js
claude added 25 commits October 24, 2026 01:50
…e sizes in the budget note

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…d review index; consolidate the second Trials ledger rows

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…he Encounter (WIP)

Every screener edit goes through answerFacts, which records the keys it writes
as the user's latest answer and settles a conflict over them. Each import
computes the screen from those answers and the Encounter alone, so an answer
that writes the cautious value is never lost on reapply, and the takingOac
control no longer clears exclusions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…l of the rule (WIP)

An Encounter value equal to the user's entry for a replaced fact (classification,
numbers, timing) no longer counts as written by the import.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
… add the verifier's reproductions (WIP)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…ses (WIP)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
The import model, each finding and its decision, the fuzzer and reproduction
tests with their fail-before runs and mutations, checks, and the budget
(all offline JS gzip -48 B against 042f914).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…flict over a fact it still shows (WIP)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…tradicted-answer invariant and re-entry after a classification in the fuzzer (WIP)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
… in one conflicts record; comments (WIP)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…the §9.1 and §9.2 reclassification text

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
Brings in the owner's 7.8.1–7.8.3 releases: case-bar hold reasons and dose-table link, sticky header and external
reference tiles (UpToDate Expert AI), dark default, wide-screen list-plus-pane Evidence and Calculators, collapsed
bedside quick reference, elapsed-time display. Resolutions keep both sides:
- app.jsx: main's header tiles plus this branch's update badge, offline banner and tool gating
- CaseBar.jsx: main's hold detail labels plus this branch's contradicted-answer hold and unconfirmed-agent flags
- Reference.jsx: main's wide reading pane plus this branch's bottom lines, graded/ungraded counts, section index
- shell.css: main's sticky header and tiles; this branch keeps the measured case-bar height (no :has() fallback)
- TrialScreener.jsx, tokens.css: main's header offset with this branch's logic
- Encounter.jsx: the ticking elapsed-time line keeps role=timer (main had made it a status region, which a screen
  reader would announce every minute); main's wording is kept
Tests pinned to the pre-7.8.1 layout are updated to main's behaviour. Protocols files are main's, byte for byte.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…–7.8.3 Protocols on main

main's 7.8.1–7.8.3 edited three frozen Protocols files without updating the lock record, so CI failed there and
the rendered lock never ran. Before re-baselining, the rendered lock was run on an untouched checkout of main
(88f53b9) and every capture regenerated from it: across all 46 captures the only difference from the 7.8.0
baselines is the removed line 'h2: Bedside quick reference' (now the disclosure summary). The captures committed
here are main's, not this branch's; source-lock.json changes only the three file hashes. This branch's Protocols
files equal main's byte for byte. Documented in docs/protocols-review-notes-2026-10.md; the CHANGELOG notes the
included 7.8.1–7.8.3 changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…er merging 7.8.1–7.8.3

Measured 128.06 KB gzip / 376.9 KB raw on the merged release (62 B and 873 B over the 7.8.0 ceilings), recorded
in scripts/check-asset-budget.mjs as a reviewed decision.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…model accurately

The final independent verifier (no blocking findings; 40,000 randomized sequences) showed that 'never lost
silently' holds only for an import that keeps the screen's classification. A click that hides or restarts a fact,
and an import of another classification, start clean; a later import can then take the Encounter's value. Each path
needs re-entry and a re-import, and each outcome is identical to the earlier versions. Documented with the
reproductions and a more cautious option for the owner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…Trials Encounter import, invariant fuzz test, reclassification keeps standing conflicts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…ials conflict model in the changelog

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…g; cue names a contradicted answer

The pre-merge review found that the Protocols and Encounter scroll-padding
rules kept the pre-7.8.2 formula, which left out the now-sticky header, so
reveals landed one header height too high and could hide focus (WCAG 2.4.11).
They now include var(--header-h), landing where main does. The static test
requires the header height, and Chromium tests check that the focused
element clears every stuck bar after the next-entry cue, the case-bar Dose
table link and a protocol deep link at 1440 and 820 px (all fail on the old
rule). The next-entry cue names a contradicted safety answer as the case
bar's dose hold does. Changelog and ledger record the review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…d focus clears the section nav

Pre-merge verification of 064b805 found that a contradicted benefit-tier
entry (antiplatelet, ACE inhibitor, seizure at onset), which never holds
IVT, was named as the cause of a hold and displaced the 7.8.1 anticoagulant
cue, and that the cue still named a hold after a recorded administration or
a Not recommended decision. src/ivt-hold.js now gives the case bar and the
cue one rule: no hold after administration or Not recommended; an
unassessed anticoagulant first; then a contradicted answer that can hold
IVT; otherwise the safety review. Unit tests cover each state.

Stepping between date or time segments partly under the section nav left
about 6 px of the field hidden, because Chrome reveals the segment and
ignores the scroll margin. The Encounter padding is now 80 px with no field
margin (22 px and 58 px where the nav is static), so programmatic reveals
land where main puts them. A Chromium test covers it at 1440, 820 and 390 px.
The Chromium Next-cue test asserts the focused id, and a new test drives the
contradicted-answer cue. Larger-text Protocols reveals (as on main) and the
shorter Page Down step are recorded for the owner.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…he nav; hold title reports a contradiction

The second pre-merge verification (11a4ef7) found that the new Encounter
field margin overrode the 7.8.3 phone rule, moving cue, section and
deep-link targets 64 px lower at 480 px and narrower. The phone margin is
now -6 px (22 - 6 = 8 + 8) and short screens keep 58 px; wide screens pad
82 px with a -2 px margin, which clears a date segment's focus ring and keeps
the 80 px landing; main-region margins keep the skip link 8 px below the case
bar on Encounter and Protocols.

The case-bar title again reports a contradicted answer beside an
anticoagulant hold. Unit tests cover both halves of the administration gate,
every other IVT decision and the CT order. The Chromium reveal tests compare
each landing with 7.8.3's at 1440, 820 and 390 px, include the focus ring,
and cover a date-and-time field and the skip link. Changelog wording, the
ledger and recorded sizes are corrected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…; stricter ring check

The third pre-merge verification (83adb11) found nothing blocking. Two
deep-link targets without a field or tool class (#calc-alteplase,
#calc-defuse3) landed 14 px lower than on 7.8.3 on phones and short screens;
they now get -14 px (22 - 14 = 8) and 0 on wider screens, where they land
82 px below the case bar instead of under the section nav. The case-bar hold
titles are built per cause again and the CT titles are pinned by a test. The
segment-step tests require 1 px of focus-ring clearance and include a time
field; a Chromium test covers both calculator links. The shell.css comment,
changelog Page Down sentence and ledger wording are corrected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
Seven domain sweeps (IVT and acute systems; EVT and acute BP; hemorrhagic
stroke; secondary prevention; AF and cardioembolism; recovery and
populations; Trials-screener registry status) searched 2025-01 to
2026-10-31 for guidelines, trials and label changes the content did not yet
reflect. Independent verifiers re-read every source (90 of 94 proposals
accepted or corrected, 4 rejected); a further verified pass covered missed
items; two independent reviews checked the applied diff and their minor
findings were fixed (unverified CAPTIVA arm-stop text removed and the 7.7.0
guard test restored, ZODIAC transfer clause dropped, postdating labels
added, trial names added to search keywords).

New study cards for MILD-MT and LATE-MT; updated topics and source records
across thrombectomy, IVT, neuroprotection, CRAO, ICH/SAH/CVT, prevention,
AF, recovery and special populations; TELE-REHAB-2 follows its current
registry eligibility. Guideline grades unchanged; newer evidence labelled as
postdating; no conference-only result used. Protocols files untouched;
findings for them are in the owner notes. Ledger:
docs/evidence-ledger-2026-10-31.md. Version 7.10.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
…ing label

The post-review label on MSU-TELEMED changed the bullet the EVT card test
pinned verbatim. The test now pins the unchanged COR 1 sentence as the
bullet's opening and requires the "published after the AHA 2026 literature
cutoff, not graded" label on the appended trial.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UVsY25ktMFcDCDtESeS8aA
@rkalani1
rkalani1 marked this pull request as ready for review October 31, 2026 12:51
Copilot AI balanced review requested due to automatic review settings October 31, 2026 12:51
@rkalani1
rkalani1 merged commit 0ba1552 into main Oct 31, 2026
7 checks passed

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

rkalani1 pushed a commit that referenced this pull request Oct 31, 2026
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.

3 participants