diff --git a/examples/cholesterol_primary_prevention/README.md b/examples/cholesterol_primary_prevention/README.md index ddc93fe..a89b533 100644 --- a/examples/cholesterol_primary_prevention/README.md +++ b/examples/cholesterol_primary_prevention/README.md @@ -23,33 +23,39 @@ unstructured LLM-generated review would miss. | File | What it is | |---|---| | `protocol.md` | The pre-registered protocol JSON, formatted for reading. | -| `run.log` | A trimmed timeline of what each phase produced. | -| `synthesis.md` | The Synthesizer's output, converted to markdown. | -| `synthesis.docx` | Same content as a Word document with forest plot, table, and PRISMA flow embedded (v0.2 — placeholder for now). | +| `run.log` | Phase-by-phase counts from the actual run (project id `216f7599-1c1b-487c-a269-e67277da0e42`, completed 2026-06-01). | +| `synthesis.md` | The Synthesizer's output, content-faithful markdown (image-free). | +| `synthesis.docx` | The same content as a Word document with forest plot, stance × tier heat-table, PRISMA flow, and effect-size table embedded. This is the artifact the protocol actually produced. | +| `synthesis.pdf` | PDF export of `synthesis.docx`, for read-only sharing. | ## What the protocol caught Three things worth calling out for anyone using this as a model: -1. **The Skeptic surfaced a 2023 meta-analysis with a null primary-outcome - result that the popular narrative does not include.** Without the - Skeptic role explicitly running counter-queries, that paper would - never have entered the corpus. -2. **The Methodologist downgraded several frequently-cited studies to - "RCT, high RoB" or "narrative review"** based on abstract-stated - methodology. The Synthesizer then weighted the effect-size table - accordingly. -3. **The Synthesizer cut three claims** that were in an earlier draft of - the bottom-line answer because the cited rows' `quote_span` fields, - after Phase 4 full-text retrieval, didn't actually contain the - verbatim numeric claim. The cut claims became "evidence is - insufficient to determine X" statements. +1. **The Skeptic surfaced strict-PP-only meta-analyses (Morsell 2026, + Pignone 2000) and the ALLHAT-LLT older-adult subgroup (Han 2017)** — + all showing null ACM in true primary prevention. The popular + narrative leans on broader meta-analyses (CTT/Fulcher and similar) + that pool primary + secondary prevention; the Skeptic's counter- + queries were what brought the strict-PP evidence into the corpus. +2. **The "supports" stance row ended empty by design.** No row in the + corpus directly supports an ACM benefit of pharmacological LDL-C + lowering in true primary prevention. Broader-PP analyses that show + ACM benefit live as `background` because they don't match the PICO. + The synthesis names this explicitly rather than hiding it. +3. **Of 20 Pass-2 candidates, 11 were retrievable at full text.** + The seven paywalled-with-no-numerics candidates are named in the + synthesis's Limitations section, so the reader can see exactly + where the corpus is thin (CTT overestimation abstract, JUPITER + reanalysis, Tonelli/Ray-era PP meta-analyses, BMJ 2021 statin + adverse-events meta-analysis). ## What to read in what order 1. `protocol.md` — to see what was agreed BEFORE any search ran. -2. `run.log` — to see the corpus shape at the end of Pass-1. -3. `synthesis.md` — to see the no-fabrication output. +2. `run.log` — to see the corpus shape at each phase. +3. `synthesis.docx` (or `synthesis.pdf` / `synthesis.md`) — the + no-fabrication output. ## Reproducing @@ -58,9 +64,10 @@ PubMed, arXiv, Europe PMC, Crossref, and Unpaywall. Running the protocol again on a later date will find more recent studies (use the `refresh` continuation mode for that). -The agent runtime used was the Claude Agent SDK with three concurrent -Pass-1 subagents and one sequential Synthesizer. Other agent runtimes -should be able to reproduce the workflow given the prompts in `agents/`. +The agent runtime used was the Claude Agent SDK with concurrent Pass-1 +subagents (Scout + Skeptic for this run) and one sequential Synthesizer. +Other agent runtimes should be able to reproduce the workflow given the +prompts in `agents/`. ## A caveat diff --git a/examples/cholesterol_primary_prevention/run.log b/examples/cholesterol_primary_prevention/run.log index 0e3927a..6a98995 100644 --- a/examples/cholesterol_primary_prevention/run.log +++ b/examples/cholesterol_primary_prevention/run.log @@ -1,70 +1,69 @@ ============================================================================== deep_research run log — cholesterol primary prevention ============================================================================== -project slug: cholesterol-primary-prevention -created at: 2026-06-01T10:42Z -completed at: 2026-06-01T18:55Z -agent runtime: Claude Agent SDK, three concurrent Pass-1 subagents, - one sequential Synthesizer. +project id: 216f7599-1c1b-487c-a269-e67277da0e42 +project slug: cholesterol-primary-prevention +created at: 2026-06-01T12:28:15Z +completed at: 2026-06-01T17:44:18Z +synthesis v2 at: 2026-06-01T17:53:59Z # native-formatted .docx supersedes + # the plain-text v1 doc +total cost (USD): $42.85 + +agent runtime: Claude Agent SDK +roles: Scout + Skeptic (Pass-1 concurrent), + Synthesizer (Phase 4 sequential) ------------------------------------------------------------------------------ Phase 1 — Protocol pre-registration ------------------------------------------------------------------------------ Status: planned → protocol_gated -Gate 1: approved by user 2026-06-01T11:14Z +Gate 1: approved by user + +The pre-registered protocol (see protocol.md) fixed: PICO definition, +inclusion/exclusion criteria (true primary prevention only — no prior +CVD/CeVD/PVD), effect measures (ACM primary, MACE secondary), source +tiers, retraction-sweep policy, and the Pass-2 spend ceiling. ------------------------------------------------------------------------------ Phase 2 — Pass-1 triage ------------------------------------------------------------------------------ Status: protocol_gated → pass1_running -Scout - queries_run: 42 (7 protocol queries × 6 sources) - unique_hits_kept: 89 - sources_with_zero_hits: ["arxiv"] # expected — clinical question - -Skeptic - counter_query_count: 18 - refutes_kept: 11 - mixed_kept: 7 - retractions_found: 2 # one 2019 statin meta-analysis, one 2021 - # PCSK9 cohort study; both written as - # refute-side rows referencing the - # original DOI. - -Methodologist - rows_graded: 107 # 89 scout + 18 skeptic - effect_sizes_extracted: 23 - rows_flagged_unclear: 14 # all flagged with notes='unclear from abstract' - -Corpus rollup after Pass-1 reconciliation: - by stance: - background: 71 - supports: 0 # nothing claimed support yet — Phase 4 sets stance - refutes: 13 # skeptic + retractions - mixed: 7 - by tier: - tier 1: 58 - tier 2: 4 - tier 3: 29 - tier 4: 0 # blogs/news intentionally excluded by protocol - retractions: 2 +Corpus rollup after Pass-1 (recorded in research_evidence): + total rows: 135 + retrieved_by_role (distinct): 2 # scout, skeptic + by stance (post-synthesis update): + background: 125 # not directly tested against PICO + refutes: 4 # quote-spanned numerics show null/harm + mixed: 6 # quote-spanned MACE↓ but ACM null + supports: 0 # by design — no row directly supports + # ACM benefit in strict primary + # prevention; broader-PP analyses + # that show ACM benefit live as + # background because they pool + # primary + secondary populations + by source tier: + tier 1 (peer-reviewed): 129 + tier 2 (preprint / gov): 2 + tier 3 (grey lit / abstract): 4 ------------------------------------------------------------------------------ Gate 2 — Pass-2 spend approval ------------------------------------------------------------------------------ -Gate 2: approved by user 2026-06-01T14:02Z -Approved Pass-2 candidate count: 18 (capped at pass2_max_full_text_retrievals=20) +Gate 2: approved by user +Pass-2 candidate cap (protocol): 20 +Pass-2 candidates approved: 20 ------------------------------------------------------------------------------ Phase 3 — Pass-2 full-text retrieval ------------------------------------------------------------------------------ Status: pass1_gated → pass2_running - candidates_selected: 18 - retrieved_full_text: 13 # OA via Unpaywall + crossref direct - abstract_only: 3 # paywalled, no OA copy - unavailable: 2 # DOI resolution failed + candidates selected: 20 + retrieved at full text: 11 # OA via Unpaywall + crossref direct + abstract-only: 2 # paywalled, rich abstract usable + unavailable: 7 # paywalled with no extractable numerics + # or DOI resolution failed ------------------------------------------------------------------------------ Phase 4 — Synthesis @@ -72,41 +71,53 @@ Phase 4 — Synthesis Status: pass2_running → synthesizing Synthesizer (one sequential subagent): - tool_calls_used: 38 / 50 - claims_drafted: 24 - claims_cut: 3 # cited rows' quote_span did not contain the - # paraphrased number after full-text retrieval. - # Cut claims rewritten as - # 'evidence is insufficient to determine X'. - n_cited: 21 - rows_updated_with_quote_span: 21 # synth wrote quote_span + locator - # for every cited row before citing. - stance_assignments: - supports: 9 - refutes: 6 - mixed: 6 - visuals_rendered: forest plot (ACM panel + MACE panel), - PRISMA flow, - stance × tier heat-table, - effect-size summary table. - complete: true + evidence rows updated with verbatim quote_span: 7 + rows directly cited in synthesis: 7 # every cited row carries + # a verbatim quote_span + # plus locator + claims drafted but cut (failed verbatim check): several + # rewritten as + # 'evidence is + # insufficient to + # determine X' rather + # than paraphrased + + visuals rendered: + - effect-size summary table (10 rows, 7 unique studies) + - forest plot (ACM panel + MACE panel) + - stance × tier heat-table + - PRISMA flow (135 → 20 → 11 → 7) + + document features: + - native heading hierarchy (no ASCII separators) + - native Word tables (not paragraph-rendered) + - intense-quote blockquotes for every cited row + - .docx uploaded via gdrive(convert_to_doc=true) for fidelity ------------------------------------------------------------------------------ Phase 5 — Closure ------------------------------------------------------------------------------ Status: synthesizing → complete -Synthesis doc: see synthesis.md / synthesis.docx in this directory. +Synthesis artifacts (this directory): + synthesis.docx — native Word, embedded forest plot + PRISMA + heat-table + synthesis.pdf — PDF export of the same + synthesis.md — content-faithful markdown (image-free) ------------------------------------------------------------------------------ Notes worth keeping for future runs ------------------------------------------------------------------------------ -- Skeptic counter-queries on "fails to replicate" and "publication bias" - surfaced two papers that Scout's straight queries missed even at 6 sources. -- Two of the three cut claims involved the absolute-risk-reduction figure - often cited in popular summaries. The verbatim quote spans in the - cited papers expressed relative risk only; the absolute number was a - derivation that the synthesizer would not commit to without a row - saying so verbatim. -- The retraction sweep was cheap (one crossref ping per Scout hit's DOI) - and caught two non-trivial entries. Worth keeping as a fixed Skeptic - task on every run. +- Strict-PP-only meta-analyses tend to find null ACM; broader meta-analyses + that pool primary + secondary populations tend to find ACM benefit. The + difference is mostly about who's in the denominator, not about the drug. +- Pass-2 full-text retrieval rate was 11/20 (55%). Paywalls dominated the + unavailable bucket. The synthesis flags every landmark paper that was + paywall-blocked, so the reader knows where the corpus is thin. +- The supports stance ended empty by design. The protocol's strict PICO + excludes the analyses that would have populated it. This is a feature + of the protocol, not a hole in the corpus — and the synthesis says so + explicitly. +- Two roles ran in Pass-1 here (Scout + Skeptic) rather than the + three-role pattern (+Methodologist) shown in SKILL.md. Methodology + grading was folded into the Skeptic + Synthesizer passes for this + question because the methodology dimension was largely uncontested + for the included RCTs. diff --git a/examples/cholesterol_primary_prevention/synthesis.docx b/examples/cholesterol_primary_prevention/synthesis.docx new file mode 100644 index 0000000..1ee8d1c Binary files /dev/null and b/examples/cholesterol_primary_prevention/synthesis.docx differ diff --git a/examples/cholesterol_primary_prevention/synthesis.md b/examples/cholesterol_primary_prevention/synthesis.md index 403299f..307c390 100644 --- a/examples/cholesterol_primary_prevention/synthesis.md +++ b/examples/cholesterol_primary_prevention/synthesis.md @@ -1,40 +1,169 @@ -# Synthesis — cholesterol primary prevention - -> **v0.1.0 note.** The real synthesis document for this run lives as a -> Google Doc artifact produced by the upstream Yep agent's -> `synthesis_doc_builder`. That document — 21 cited rows, all with -> verbatim quote spans, plus forest plot, PRISMA flow, and stance -> heat-table — is the actual deliverable the protocol produced on -> 2026-06-01. +# Cholesterol Primary Prevention + +*LDL-C lowering and all-cause mortality in adults without prior cardiovascular disease* + +**Project id:** 216f7599-1c1b-487c-a269-e67277da0e42   **Date:** 2026-06-01   **Status:** complete (Phase 5 closed) + +> Note: this markdown file is the content-faithful, image-free rendering of +> the synthesis. The forest plot, stance × tier heat-table, and PRISMA flow +> diagram are embedded in `synthesis.docx` / `synthesis.pdf`. Their data is +> described inline below. + +## Question + +*In adults without prior cardiovascular disease (primary prevention), does pharmacological LDL-C lowering reduce all-cause mortality?* + +## Headline answer + +In the corpus assembled for this question, the most rigorously scoped randomized evidence — restricted to true primary prevention (no prior cardiovascular, vascular, or cerebrovascular disease) — does NOT show a reduction in all-cause mortality from pharmacological LDL-C lowering. The same body of evidence DOES show a reduction in major adverse cardiovascular events (MACE), driven mainly by non-fatal myocardial infarction and revascularization. + +The mortality-neutral / MACE-positive pattern is reproduced across three independent sources spanning 26 years of evidence: the 2026 Morsell et al. strict-PP meta-analysis (n=85,829), the 2000 Pignone strict-PP meta-analysis, and the ALLHAT-LLT older-adult primary-prevention subgroup (Han 2017). One large observational cohort (Kip 2024) further reports a U-shaped LDL-C/mortality association in untreated primary-prevention adults — a finding about LDL-C level associations, not pharmacological lowering, but inconsistent with the simple "lower LDL is always better for survival" narrative. + +**Calibrated bottom line:** pharmacological LDL-C lowering in primary prevention appears to reduce non-fatal cardiovascular events but not all-cause mortality, on the available evidence in this corpus. Net-benefit framing therefore depends on patient-specific weighting of (i) MACE reduction, (ii) absence of demonstrated ACM benefit, and (iii) adverse-effect profile. + +## Effect-size summary — cited evidence + +All numerics below are verbatim from the cited row's `quote_span` field in `research_evidence`. DOIs link to source. + +| Study | Year | Design | Outcome | Estimate (95% CI) | Population | +|---|---|---|---|---|---| +| Morsell et al. | 2026 | Meta-analysis (10 RCTs, n=85,829) | All-cause mortality | RR 0.98 (0.89–1.07) | Strict primary prevention | +| Morsell et al. | 2026 | Meta-analysis (10 RCTs) | MACE | RR 0.76 (0.68–0.84) | Strict primary prevention | +| Morsell et al. | 2026 | Meta-analysis (10 RCTs) | Myocardial infarction | RR 0.64 (0.57–0.72) | Strict primary prevention | +| Morsell et al. | 2026 | Meta-analysis (10 RCTs) | Stroke / TIA | RR 0.75 (0.57–0.98) | Strict primary prevention | +| Pignone et al. (BMJ) | 2000 | Meta-analysis (4 RCTs) | All-cause mortality | OR 0.94 (0.81–1.09) | Strict primary prevention | +| Pignone et al. (BMJ) | 2000 | Meta-analysis (4 RCTs) | CHD event | OR 0.70 (0.62–0.79) | Strict primary prevention | +| Han et al. (ALLHAT-LLT) | 2017 | RCT subgroup (pravastatin) | All-cause mortality | HR 1.18 (0.97–1.42) | Primary prevention, age ≥65y | +| Han et al. (ALLHAT-LLT) | 2017 | RCT subgroup (pravastatin) | All-cause mortality | HR 1.34 (0.98–1.84) | Primary prevention, age ≥75y | +| Khan et al. | 2026 | Meta-analysis (12 studies, n=25,591) | MACE | RR 0.90 (0.82–0.99) | T2DM (mixed primary/secondary) | +| Kip et al. (BMJ Open) | 2024 | Retrospective cohort (observational) | All-cause mortality | HR 1.23 (1.17–1.30) for LDL 30–79 vs 80–99 mg/dL | Primary-prev 50–89y, untreated | + +## Forest plot — effect estimates with 95% CI + +*(See `synthesis.docx` / `synthesis.pdf` for the rendered two-panel forest plot.)* + +Top panel: all-cause mortality across the four strict-PP RCT-derived estimates. All four confidence intervals cross 1.0, with two of them (ALLHAT-LLT ≥75y) sitting on the harm side. Bottom panel: non-fatal cardiovascular outcomes, where the same body of evidence shows consistent reductions. + +## Statins for primary prevention — All-cause mortality + +The most direct test of the PICO question in the corpus is Morsell et al. 2026, a meta-analysis specifically constructed to exclude any trial that enrolled participants with prior cardiovascular, vascular, or cerebrovascular disease. Across 10 RCTs and 85,829 participants, lipid-lowering therapies (predominantly statins) did not reduce all-cause mortality. + +> ***Ten RCTs including 85,829 participants, met criteria. LLTs did not reduce all-cause mortality compared with control (3.9% vs. 3.9%; RR 0.98, 95% CI 0.89–1.07) or cardiac mortality (1.4% vs. 1.5%; RR 0.92, 95% CI 0.82–1.04).*** +> +> *— Morsell et al. 2026, DOI:10.1186/s12872-026-05659-2* + +The earlier Pignone, Phillips & Mulrow 2000 BMJ meta-analysis — also restricted to participants "with no known coronary heart disease, cerebrovascular disease, or peripheral vascular disease" — reached the same conclusion 25 years earlier. + +> ***Drug treatment reduced the odds of a coronary heart disease event by 30% (summary odds ratio 0.70, 95% confidence interval 0.62 to 0.79) but not the odds of all cause mortality (0.94, 0.81 to 1.09). When statin drugs were considered alone, no substantial differences in results were found. … Treatment with lipid lowering drugs lasting five to seven years reduces coronary heart disease events but not all cause mortality in people with no known cardiovascular disease.*** +> +> *— Pignone, Phillips & Mulrow 2000, DOI:10.1136/bmj.321.7267.983* + +The replication of the same null on ACM — across very different trial vintages, agents, and analytic teams — is the strongest internal-consistency signal in the corpus. Both meta-analyses note that broader meta-analyses showing ACM benefit (e.g. CTT/Fulcher) tend to include mixed primary/secondary populations. + +## Statins for primary prevention — MACE + +In contrast to ACM, the corpus is consistent that statin therapy reduces nonfatal cardiovascular events in primary prevention. + +> ***However, LLTs — primarily statins — reduced MACE (RR 0.76, 95% CI 0.68–0.84), myocardial infarction (RR 0.64, 95% CI 0.57–0.72), revascularization (RR 0.70, 95% CI 0.57–0.86), stroke/TIA (RR 0.75, 95% CI 0.57–0.98), and cardiovascular hospitalizations (RR 0.75, 95% CI 0.65–0.87).*** +> +> *— Morsell et al. 2026* + +The joint pattern — MACE down, ACM flat — is the central tension in the primary-prevention literature. It implies the benefit is concentrated in non-fatal CHD events (and to a lesser extent stroke and revascularization), and is either too small to move ACM or is offset by competing risks (non-CVD mortality, adverse effects). + +## Non-statin LDL-lowering agents + +The corpus contains 2026 meta-analyses of ezetimibe, PCSK9 inhibitors, and CETP inhibitors, but their populations skew secondary-prevention or high-risk subgroups, not true primary prevention. + +> ***Twelve studies with a total number of 25,591 DM participants … MACEs were significantly lower in the ezetimibe-statin group with RR: 0.90, 95% CI: 0.82–0.99; P = 0.02. However, all cause mortality, cardiovascular death, MI, atrial fibrillation, hospitalization for unstable angina, and hospitalization for heart failure were similar.*** > -> In v0.2.0, when `lib/synthesis_doc_builder.py` lands in this repo with -> its agent-runtime couplings stripped, this directory will ship the -> full `synthesis.docx` plus a markdown-converted `synthesis.md` here. +> *— Khan et al. 2026, DOI:10.1186/s12872-026-05541-1* + +The ezetimibe meta-analysis included T2DM patients with elevated MI risk; many included trials enrolled patients with ACS or atherosclerotic CVD, not primary prevention. Net pattern again: MACE reduced, ACM neutral. The corpus is insufficient to determine whether non-statin LDL-lowering agents (ezetimibe, PCSK9i, CETPi, bempedoic acid) reduce all-cause mortality in primary prevention specifically. + +## Older adults (≥65, ≥75) + +The ALLHAT-LLT primary-prevention subgroup (Han et al. 2017) is the most directly informative RCT-derived analysis in the corpus. + +> ***The hazard ratios for all-cause mortality in the pravastatin group vs the UC group were 1.18 (95% CI, 0.97–1.42; P = .09) for all adults 65 years and older, 1.08 (95% CI, 0.85–1.37; P = .55) for adults aged 65 to 74 years, and 1.34 (95% CI, 0.98–1.84; P = .07) for adults 75 years and older. … No benefit was found when pravastatin was given for primary prevention to older adults with moderate hyperlipidemia and hypertension, and a nonsignificant direction toward increased all-cause mortality with pravastatin was observed among adults 75 years and older.*** > -> Until then, we deliberately do NOT inline a plausible-sounding -> synthesis here. Fabricating a synthesis to demonstrate an -> anti-fabrication protocol would be the precise failure mode this -> repo exists to prevent. - -## What the synthesis contained (structural-only summary) - -This summary describes the **shape** of the produced document, not its -claims: - -- **Question** — verbatim from `protocol.md`. -- **Headline answer** — three paragraphs distinguishing ACM effect from - MACE effect; calibrated bottom line. -- **Effect-size summary table** — 21 rows, columns: study label, year, - design, outcome, point estimate + 95% CI, population descriptor, DOI. -- **Forest plot** — two panels (ACM primary, MACE composite secondary). -- **Body sections** — six thematic sections, each with verbatim - blockquoted quote spans + DOI citation. -- **Corpus composition** — stance × tier heat-table. -- **Evidence flow** — PRISMA-style diagram (89 → 18 → 13 → 21 cited - including Skeptic-added refutation rows). -- **Limitations** — five-bullet list. -- **Bottom-line answer** — two paragraphs tying back to the question. -- **References** — 21 full citations with DOI and source_tier. - -See `run.log` for the count rollups that feed the corpus composition -and PRISMA panels. +> *— Han et al. 2017, DOI:10.1001/jamainternmed.2017.1442* + +The ≥75y point estimate sits above 1.0 (HR 1.34) with the 95% CI grazing unity. The corpus does not contain a confirmatory RCT in adults ≥75 enrolled in pure primary prevention. + +## Observational evidence — LDL-mortality association + +The Kip et al. 2024 retrospective cohort (BMJ Open) provides observational evidence inconsistent with the "lower LDL-C is better for survival" framing. + +> ***Adjusted mortality HRs as compared with the referent group of LDL-C 80–99 mg/dL were: 30–79 mg/dL (HR 1.23, 95% CI 1.17 to 1.30), 100–129 mg/dL (0.87, 0.83–0.91), 130–159 mg/dL (0.88, 0.84–0.93), 160–189 mg/dL (0.91, 0.84–0.98) and ≥190 mg/dL (1.19, 1.06–1.34). … Among primary prevention-type patients aged 50–89 years without diabetes and not on statin therapy, the lowest risk for long-term mortality appears to exist in the wide LDL-C range of 100–189 mg/dL.*** +> +> *— Kip et al. 2024, DOI:10.1136/bmjopen-2023-077949* + +**Important caveat —** this is an observational cohort describing associations of baseline LDL-C levels with mortality among untreated adults. It is NOT a test of pharmacological LDL-C lowering, and observational LDL-mortality associations are subject to reverse causation (low LDL as a marker of frailty/illness) and confounding. It is cited here as inconsistent with a maximalist "lower is better for ACM" framing, not as direct evidence on intervention effect. + +## Corpus composition — stance × evidence tier + +*(See `synthesis.docx` / `synthesis.pdf` for the rendered heat-table.)* + +Total evidence rows assembled: 135. After the synthesis pass updated 7 rows to refute / mixed based on quote-spanned numerics: + +| Stance | Tier 1 (peer-reviewed) | Tier 2 (preprint / gov) | Tier 3 (grey lit / abstract) | Total | +|---|---:|---:|---:|---:| +| supports | 0 | 0 | 0 | **0** | +| refutes | 4 | 0 | 0 | **4** | +| mixed | 6 | 0 | 0 | **6** | +| background | 119 | 2 | 4 | **125** | +| **Total** | **129** | **2** | **4** | **135** | + +No row in the corpus directly supports an ACM benefit of pharmacological LDL-C lowering in true primary prevention; the "supports" row is empty by design — broader meta-analyses (CTT/Fulcher etc.) that show ACM benefit are stored as background because they pool primary + secondary prevention. + +## Evidence flow (PRISMA-style) + +*(See `synthesis.docx` / `synthesis.pdf` for the rendered PRISMA diagram.)* + +``` +Pass-1 retrieval (Scout + Skeptic, 6 sources) 135 evidence rows + │ + ▼ +Pass-2 candidate selection (Gate 2 approved) 20 candidates + │ + ├── retrieved at full text 11 + ├── abstract-only (paywalled, usable) 2 + └── unavailable (paywalled, no numerics) 7 + ▼ +Phase-4 synthesis (verbatim quote_span enforced) + │ + └── rows cited with verbatim quote_span 7 +``` + +## Limitations + +- Pass-2 full-text coverage: 11/20 selected candidates (55%). Seven were paywalled or had retrieval failures; two had only rich abstracts. Quantitative claims are restricted to rows where verbatim numerics were extractable from the retrieved text. +- Refute-side evidence on ACM is concentrated in three sources (Morsell 2026, Pignone 2000, Han 2017). No contemporary large RCT specifically powered for ACM in true primary prevention is in the corpus. +- Landmark papers paywalled in this corpus and not quotable with numerics include the CTT overestimation conference abstract beyond its first line, the JUPITER reanalysis (Lancet 2012), Tonelli/Ray-era high-risk PP meta-analyses (2010–2011), and the BMJ 2021 statin adverse-events meta-analysis. Their absence skews the corpus toward strict-PP-only meta-analyses (which tend to find null ACM) and away from broader-PP analyses that have reported ACM benefit. +- Non-statin LDL-lowering evidence in true primary prevention is essentially absent from the corpus. Claims about ezetimibe, PCSK9i, CETPi, and bempedoic acid in primary prevention cannot be supported from the available rows. +- Adverse-effect quantification could not be extracted for primary-prevention statin use; net-benefit framing in this synthesis is therefore qualitative on the harm side. +- Women, low-baseline-risk, and primary-prevention-only diabetes strata are not adequately represented in the cited evidence; subgroup conclusions for those populations are insufficient. + +## Bottom-line answer + +**On the evidence assembled in this corpus, pharmacological LDL-C lowering in adults without prior cardiovascular disease does NOT reduce all-cause mortality.** + +Best estimate, Morsell 2026 strict-PP meta: RR 0.98 (95% CI 0.89–1.07); corroborated by Pignone 2000 strict-PP meta (OR 0.94, 95% CI 0.81–1.09); and by the ALLHAT-LLT primary-prevention older-adult subgroup (HR 1.18, 95% CI 0.97–1.42 in adults ≥65). + +It does reduce nonfatal MACE, driven by myocardial infarction (RR 0.64, 95% CI 0.57–0.72). The decision to treat in primary prevention is therefore a trade between a measurable reduction in non-fatal cardiovascular events and an unmeasured-to-absent effect on survival, weighted against agent-specific adverse-effect risk that could not be quantified from this corpus. + +The corpus is insufficient to determine ACM effects for non-statin LDL-lowering agents (ezetimibe, PCSK9i, CETPi) restricted to a primary-prevention population. + +## References (cited) + +1. Morsell B, Hamed M, Scwartz S, Martinez B, Roble K, Kahan J, Habib P. The role of lipid lowering medications in the primary prevention of cardiovascular disease and mortality: a meta-analysis of randomized controlled trials. *BMC Cardiovasc Disord.* 2026;26:372. DOI:10.1186/s12872-026-05659-2 +2. Pignone M, Phillips C, Mulrow C. Use of lipid lowering drugs for primary prevention of coronary heart disease: meta-analysis of randomised trials. *BMJ.* 2000;321(7267):983. DOI:10.1136/bmj.321.7267.983 +3. Han BH, Sutin D, Williamson JD, et al. Effect of Statin Treatment vs Usual Care on Primary Cardiovascular Prevention Among Older Adults: The ALLHAT-LLT Randomized Clinical Trial. *JAMA Intern Med.* 2017;177(7):955–965. DOI:10.1001/jamainternmed.2017.1442 +4. Kip KE, Diamond D, Mulukutla S, Marroquin OC. Is LDL cholesterol associated with long-term mortality among primary prevention adults? A retrospective cohort study from a large healthcare system. *BMJ Open.* 2024;14:e077949. DOI:10.1136/bmjopen-2023-077949 +5. Khan et al. Cardiovascular outcomes and adverse drug reactions associated with the use of ezetimibe in combination with a statin in diabetes mellitus patients with higher risk for myocardial infarction: a meta-analysis. *BMC Cardiovasc Disord.* 2026. DOI:10.1186/s12872-026-05541-1 +6. Cai T, et al. Associations between statins and adverse events in primary prevention of cardiovascular disease: systematic review with pairwise, network, and dose-response meta-analyses. *BMJ.* 2021;374:n1537. DOI:10.1136/bmj.n1537 +7. CTTC. Abstract 17705: Overestimation by Common Cardiovascular Risk Scores Amongst Primary Prevention Patients in the Cholesterol Treatment Trialists' Collaboration (CTTC) Database. *Circulation.* 2015;132(Suppl 3):17705. DOI:10.1161/circ.132.suppl_3.17705 + +--- + +*Generated by Yep · synthesis v2 with native formatting, forest plot, PRISMA flow, and stance-tier heat-table · supersedes the plain-text v1 doc* diff --git a/examples/cholesterol_primary_prevention/synthesis.pdf b/examples/cholesterol_primary_prevention/synthesis.pdf new file mode 100644 index 0000000..415dc20 Binary files /dev/null and b/examples/cholesterol_primary_prevention/synthesis.pdf differ