Audit: QRS - Pirfenidone to Treat Cancer
Audit conducted on 07/09/2026 09:11 using AI4L / Opus 5
Summary
| Items | Count |
|---|---|
| Total | 93 |
| Passed | 86 |
| Failed | 0 |
| N/A | 7 |
| Pass Rate | 100.00% |
- Total = Passed + Failed + N/A
- Pass Rate = Passed / (Passed + Failed) × 100
- N/A items are excluded from the pass rate calculation
1. General Rules
| # | Description | Result | Comments |
|---|---|---|---|
| 1.1 | Every claim, magnitude, label, recommendation, and statement in the QRS is literally supported by content in the source ER. | 🟢 | Spot-checked every populated span against the ER: protocol doses (ER 353-357), gate items (ER 303-329), tiers (ER 155-199, 223-281), markers (ER 440-449) all literally supported. |
| 1.2 | Where the ER uses cautious phrasing (“not formally studied”, “None documented in human trials to date”, “theoretical concern”, “data are limited”), the QRS uses the same phrasing. | 🟢 | ER hedges carried through: ‘No established target’ (marker 5), ‘or stable against own baseline’ (markers 8-9), ‘Nothing within days’ (time 3). |
| 1.3 | The QRS never strengthens an ER claim (e.g., “not formally studied” → “not required”) or softens one (e.g., “do not use during pregnancy” → “use with caution during pregnancy”). | 🟢 | No strengthening or softening; ‘Speculative’ tier claims stay speculative, contraindications stay absolute. |
| 1.4 | The QRS does not relabel an ER fact under a different decision category. A “Benefit-Modifying Factor” from ER section is not surfaced as a “Caution”; a “Risk-Modifying Factor” is not surfaced as a “Side Effect”; etc. | 🟢 | Gate items come only from ER ‘Key Interactions & Contraindications’; no Benefit- or Risk-Modifying Factor was promoted into a gate. |
| 1.5 | PubMed IDs, study citations, expert names, clinical trial identifiers (NCT*), and brand names appear in the QRS only if they appear in the source ER for the same fact. | 🟢 | QRS carries no PMIDs, NCT numbers, author names, or brand names. |
| 1.6 | The QRS does not introduce new attributions. | 🟢 | No attributions introduced. |
2. Focus, Tone & Audience
| # | Description | Result | Comments |
|---|---|---|---|
| 2.1 | The QRS follows the tone of the ER, which is determined by the ER’s own language, phrasing, and framing. | 🟢 | Matches the ER’s measured, cost-forward framing. |
| 2.2 | The tone of the QRS is simultaneously expert, accessible, objective, and data-driven, but also empowering and encouraging | 🟢 | Expert and objective; tier labels carry the evidence weighting. |
| 2.3 | The QRS reads as a trusted, knowledgeable guide rather than a prescriptive doctor | 🟢 | Descriptive throughout; no prescriptive instructions. |
| 2.4 | The QRS avoids language that implies medical or clinical advice | 🟢 | Presents protocol regimens and monitoring cadence as observed practice, not as advice. |
| 2.5 | The QRS “presents information” instead of “providing guidance”, “recommending”, or “advising” | 🟢 | No ‘recommend’, ‘advise’, or ‘should’ constructions. |
| 2.6 | The QRS never addresses “the reader” directly — it presents evidence, not guidance | 🟢 | No second-person address anywhere in the sheet. |
| 2.7 | The QRS is written in plain language, avoiding unnecessary medical jargon | 🟢 | Technical terms are limited to biomarker, enzyme and drug names required for identification. |
| 2.8 | Information is presented in a concise and very compact manner | 🟢 | Compact; gate items and tier lists are single-clause. |
| 2.9 | It DOES NOT address the reader directly | 🟢 | No ‘you’/’your’ in any span. |
| 2.10 | The target audience is health- and longevity-oriented adults who are risk-aware, proactive, and actively seeking to optimize health or apply the intervention under review. | 🟢 | Framing suits a proactive, risk-aware reader weighing an off-label repurposed drug. |
| 2.11 | The target audience is willing to employ lifestyle and behavioral changes as well as follow protocols that may be inconvenient, costly, or require effort. | 🟢 | Protocol, titration and monitoring burden are presented without simplification. |
| 2.12 | The document is NOT written for the general population, who are unwilling to employ lifestyle and behavioral changes or follow protocols that may be inconvenient, costly, or require effort. | 🟢 | Not pitched at a general-population reader. |
| 2.13 | Framing, takeaways, and risk/benefit weighting throughout the document reflect this audience, including where an intervention’s signal for the average person differs from its signal for this audience. | 🟢 | Benefit/risk weighting mirrors the ER: protective signal foregrounded, anti-tumour claim marked speculative. |
| 2.14 | The document’s own voice frames usage in longevity terms, not “anti-aging” (e.g., “anti-aging clinics”, “anti-aging community”, “anti-aging medicine”). Proper names that contain “anti-aging” (e.g., “American Academy of Anti-Aging Medicine”) are quoted verbatim. | 🟢 | No ‘anti-aging’ language present. |
| 2.15 | The document’s own voice uses formal clinical and scientific terminology, not colloquial or consumer-grade language (e.g., “oral medication” not “pill(s)”; “injection” not “shot”; “adverse event” not “bad reaction”). Direct quotes from sources are exempt. | 🟢 | Formal register in the document’s own voice (e.g. ‘Gastrointestinal intolerance’, ‘photosensitivity’, ‘adverse effect’). |
3. Template Integrity
| # | Description | Result | Comments |
|---|---|---|---|
| 3.1 | The following labels and headings on the QRS are fixed and not modified: Card and section headings: “Protocol”, “Time to effect”, “Benefits”, “Risk & Side Effects”, “Monitoring”, “Qualitative Assessment”; Gate headings: “Contraindications”, “Key Interactions”; Tier labels: “High”, “Medium”, “Low”, “Speculative”; Table column headers in Monitoring: “Marker”, “Target”, “Why” | 🟢 | All fixed headings, gate headings, tier labels and Marker/Target/Why column headers are byte-identical to the template. |
| 3.2 | All “…” from the [qrs_template] are present in the the QRS. | 🟢 | Diff against [qrs_template] confirms all 34 named spans present; marker_#* and qualitative_item# correctly expanded to marker_1..10_* and qualitative_item_1..6. |
| 3.3 | Spans that are not addressed in a checklist item are left unchanged | 🟢 | Full-file diff against the template shows only variable spans changed; CSS, structure, footer and comments untouched. |
4. Formatting
| # | Description | Result | Comments |
|---|---|---|---|
| 4.1 | When the source ER section is empty, the QRS uses the ER’s own empty-state phrasing verbatim. Typical phrasings are “None documented in human trials to date” and “Not formally studied” | N/A | No ER section that maps into the QRS is empty; condition does not apply. |
| 4.2 | Where the ER presents a bulleted item as “Label: content”, the QRS uses the ER’s bold label verbatim as the cell or row label. | 🟢 | ER bold labels reused verbatim: ‘Standard antifibrotic dosing’, ‘Reduced-dose radiation-injury regimen’, ‘Perioperative schedule’, ‘Moderate CYP1A2 inhibitors (ciprofloxacin, enoxacin)’, etc. |
| 4.3 | Labels are not paraphrased, abbreviated, or invented. | 🟢 | No paraphrased or invented labels. |
| 4.4 | The QRS DOES NOT use emoji indicators (no 🟩, 🟥, 🟨, etc.). Color and emphasis are conveyed through CSS and bold labels. | 🟢 | No emoji present; the ER’s tier emoji and the ‘⚠️ Conflicted’ markers were correctly stripped. |
| 4.5 | The QRS is designed to render on one A4 page. Any section that has more content in the ER than fits the per-section budget is condensed by the LLM, not extended onto a second page. | 🟢 | Content volume (5 stop items, 9 caution items, 4 tier lines, 10 marker rows, 6 qualitative items) fits the one-page budget. |
5. Metadata
| # | Description | Result | Comments |
|---|---|---|---|
| 5.1 | The metadata is placed inside a single HTML comment that is the first element after “<!doctype html>” and before any other comment, head, or body content. | 🟢 | Metadata comment opens on line 2, immediately after <!doctype html>. |
| 5.2 | Inside that HTML comment the YAML block is delimited by a line “—” opening and a line “—” closing. Text before the opening “—” is permitted but is not parsed as YAML. | 🟢 | YAML opened at line 3 and closed at line 13 inside the comment. |
| 5.3 | The metadata is not visible in any rendered view of the QRS and is not surfaced by any other element on the sheet. | 🟢 | Inside an HTML comment; not surfaced by any rendered element. |
| 5.4 | All frontmatter values are trimmed: no leading or trailing whitespace, no surrounding quotes unless the value contains a colon, bracket, or leading special character that requires YAML quoting. | 🟢 | All values trimmed; only ‘duration: “00:03”’ is quoted, correctly, because it contains a colon. |
| 5.5 | The filename of the source ER is stated as “er_filename: [er_filename]” | 🟢 | er_filename: pirfenidone_cancer_2026-0907-0603_Opus_ER.md |
| 5.6 | Version of the QRS.md file used to create the document is stated as “qrs_prompt_version: [Version of QRS.md]” | 🟢 | qrs_prompt_version: 26.7.02, matching the QRS.md version badge. |
| 5.7 | Creation date and time of the document is stated as “qrs_creation_date: [YYYY-MMDD-HHMM]” (e.g., 2026-0501-1430) | 🟢 | qrs_creation_date: 2026-0907-0854, correct YYYY-MMDD-HHMM form. |
| 5.8 | The nickname of the AI used to create the document is stated as “qrs_creator_ai_nickname: [qrs_creator_ai_nickname]” | 🟢 | qrs_creator_ai_nickname: Opus |
| 5.9 | The nickname of the AI is just a single word model name without version, etc. (e.g., Opus, Sonnet, Grok, Gemini, ChatGPT) | 🟢 | Single word, no version. |
| 5.10 | The full name of the AI used to create the document is stated as “qrs_creator_ai_fullname: [qrs_creator_ai_fullname]” | 🟢 | qrs_creator_ai_fullname: Opus 5 |
| 5.11 | The full name of the AI consists of the [qrs_creator_ai_nickname] and the model version number and no additional qualifier (e.g., Opus 4.6, Sonnet 3.2, Grok 4.5, Gemini 3.1, ChatGPT 5.4) | 🟢 | Nickname plus version number, with the ‘(1M context)’ qualifier correctly omitted. |
| 5.12 | The filename of the document is stated as “qrs_filename: [filename of this document]” | 🟢 | qrs_filename matches the file on disk. |
| 5.13 | All frontmatter values are trimmed: no leading or trailing whitespace, no surrounding quotes unless the value contains a colon, bracket, or leading special character that requires YAML quoting. | 🟢 | Same as 5.4; no stray whitespace or unnecessary quoting. |
6. Page Title & Header
| # | Description | Result | Comments |
|---|---|---|---|
| 6.1 | [page_title] is set to the [canonical_topic] of the ER frontmatter followed by “ - Quick Reference Sheet” (e.g., “Intervention - Quick Reference Sheet”). The [canonical_topic] is HTML-entity-encoded as needed (e.g., & for &) |
🟢 | |
| 6.2 | [header_topic] is set to the [canonical_topic] of the ER frontmatter, with HTML entities encoded as needed (e.g., & for &) |
🟢 | header_topic = ‘Pirfenidone to Treat Cancer’, matching the ER canonical_topic. |
| 6.3 | [header_subline_date] is set to [qrs_creation_date reformatted as MM/DD/YYYY] | 🟢 | 09/07/2026, correct MM/DD/YYYY rendering of qrs_creation_date 2026-0907. |
| 6.4 | [header_subline_model] is set to [qrs_creator_ai_fullname] | 🟢 | header_subline_model = ‘Opus 5’. |
| 6.5 | No additional header content appears: no badge, version stamp, AKA / alternate names line, source-AI attribution, audit date, or QRS variant marker. | 🟢 | Subline is the unmodified template line; no badge, AKA line, or variant marker added. |
7. At-A-Glance Section
| # | Description | Result | Comments |
|---|---|---|---|
| 7.1 | [at_a_glance] is dense, execution-oriented summary of the ER Conclusion section |
🟢 | Distils the ER Conclusion (ER 486-492) into a decision-oriented paragraph. |
| 7.2 | [at_a_glance] is no longer than 60 words | 🟢 | 58 words, counted by script. |
| 7.3 | Every fact in [at_a_glance] is supported by a distinct passage in the ER. | 🟢 | Each clause traces to a distinct Conclusion passage: scar-suppressing medicine, protective-not-antitumour signal, oxygen passage, flare-ups and deaths, laboratory-only tumour claim, no life lengthened, dependable costs. |
| 7.4 | It DOES NOT use acronyms or technical classifications that require specialist knowledge, uses plain-language terms instead | 🟢 | No acronyms; plain-language substitutes used throughout (‘scar-suppressing’, ‘oxygen passage’, ‘liver enzyme rises’). |
| 7.5 | It DOES NOT cite specific trials (names, years, sample sizes, p-values) | 🟢 | No trial names, years, or sample sizes. |
| 7.6 | It DOES NOT cite effect sizes, relative risks, or statistical results | 🟢 | No effect sizes, risk ratios, or p-values. |
8. Contraindications
| # | Description | Result | Comments |
|---|---|---|---|
| 8.1 | The section is derived from the ER Key Interactions & Contraindications section |
🟢 | Drawn from the ER ‘Populations who should avoid Pirfenidone’ list (ER 323-329). |
| 8.2 | [stop_items] represent the Contraindications from the ER | 🟢 | All five ER contraindications represented, one-to-one. |
| 8.3 | Individual [stop_items] are formatted as <li></li> | 🟢 | Five <li> elements inside the stop_items span. |
| 8.4 | Items are as concise as possible. No trailing explanations, no elaborations, no mechanistic rationale, no attributions, no citations, no study details. No content after an em-dash, en-dash, or hyphen-dash (e.g., “— dose reduction required”, “— reduced efficacy”) — these trailing clauses are stripped. Just the key fact. | 🟢 | Trailing rationale stripped, e.g. ER ‘Pregnancy and breastfeeding, on the basis of animal reproductive toxicity and absent human data’ → ‘Pregnancy and breastfeeding’. |
| 8.5 | Parenthetical qualifiers from the ER bullet — time windows, severity classes, threshold values, clinical staging — ARE preserved as part of the item, kept as concise as possible (shortened or trimmed where needed to fit the one-page budget, but never dropped entirely). | 🟢 | ‘(Child-Pugh Class C)’ and ‘(creatinine clearance below 30 mL/min)’ preserved; only the explanatory gloss was trimmed. |
| 8.6 | When the ER uses ranking notation inside parens (e.g., “>” for severity ordering) that depends on an explanatory phrase to interpret, normalize the items to a plain comma-separated list rather than carrying through the bare symbol. | 🟢 | No ranking notation in the ER contraindication list; items already read as plain lists. |
| 8.7 | The section is left empty ONLY IF the ER’s Key Interactions & Contraindications section identifies no population, condition, or scenario for which the intervention should be avoided, deferred, or used only under specialist supervision. |
🟢 | Section is populated, and the ER does identify populations to avoid the drug. |
| 8.8 | If the section is left empty, an HTML comment inside the [stop_items] span records the ER basis for the absence, naming or quoting the ER text relied on. E.g. | N/A | Section is not empty (5 contraindications listed); condition does not apply. |
9. Key Interactions
| # | Description | Result | Comments |
|---|---|---|---|
| 9.1 | The section is derived from the ER Key Interactions & Contraindications section |
🟢 | Drawn from the ER ‘Key Interactions & Contraindications’ bullets (ER 303-321). |
| 9.2 | [caution_items] represent the Key Interactions from the ER, excluding any that are already listed as Contraindications | 🟢 | Nine of the ten ER interaction bullets carried over; ‘Strong CYP1A2 inhibitors (fluvoxamine)’ correctly excluded because it is an absolute contraindication already in [stop_items]. |
| 9.3 | Individual [caution_items] are formatted as <li></li> | 🟢 | Nine <li> elements inside the caution_items span. |
| 9.4 | Items are as concise as possible. No trailing explanations, no elaborations, no mechanistic rationale, no attributions, no citations, no study details. No content after an em-dash, en-dash, or hyphen-dash (e.g., “— dose reduction required”, “— reduced efficacy”) — these trailing clauses are stripped. Just the key fact. | 🟢 | Mechanistic rationale and mitigation clauses stripped; only label plus example drugs retained. |
| 9.5 | Parenthetical qualifiers from the ER bullet — example drug lists, time windows, severity classes, threshold values, clinical staging — ARE preserved as part of the item, kept as concise as possible (shortened or trimmed where needed to fit the one-page budget, but never dropped entirely). | 🟢 | Example drug lists preserved, including those pulled from bullet bodies (indole-3-carbinol/diindolylmethane/St. John’s wort; N-acetylcysteine/curcumin/silymarin; thoracic radiotherapy/checkpoint immunotherapy). |
| 9.6 | When the ER uses ranking notation inside parens (e.g., “>” for severity ordering) that depends on an explanatory phrase to interpret, normalize the items to a plain comma-separated list rather than carrying through the bare symbol. | 🟢 | No ranking notation present in the ER interaction parentheticals. |
| 9.7 | The section is left empty ONLY IF the ER’s Key Interactions & Contraindications section identifies no interaction, additive effect, or exposure that changes how the intervention is used. |
🟢 | Section is populated, and the ER does identify interactions. |
| 9.8 | If the section is left empty, an HTML comment inside the [caution_items] span records the ER basis for the absence, naming or quoting the ER text relied on. E.g. | N/A | Section is not empty (9 interactions listed); condition does not apply. |
10. Protocol
| # | Description | Result | Comments |
|---|---|---|---|
| 10.1 | The section is derived from the ER Protocol section |
🟢 | Derived from the ER ‘Therapeutic Protocol’ section (ER 353-357). |
| 10.2 | The three sets of [action] items cover the three most important actionable implementation aspects from the ER Protocol section |
🟢 | The three dosing regimens — licensed antifibrotic, reduced-dose radiation-injury, perioperative — are the actionable core of the ER protocol. |
| 10.3 | If less that three distinct actionable implementation aspects are mentioned in the ER the unused sets are left empty and made invisible, not filled with placeholder text or empty-state phrasing. | N/A | Three distinct actionable aspects exist in the ER Therapeutic Protocol; all three sets used. |
| 10.4 | All used [action_#label], [action#value], [action#_sub] items are filled with meaningful content derived from the ER Protocol section. |
🟢 | All nine action spans carry ER-derived content; doses (801 mg TID / 2403 mg per day, 200→300→400 mg TID, 600→1200 mg daily) match the ER exactly. |
11. Time to Effect
| # | Description | Result | Comments |
|---|---|---|---|
| 11.1 | The three sets of [time] items cover the three most important time-to-effect aspects from the ER | 🟢 | Covers the three time-to-effect facts the ER states (ER 408): 24-week endpoint, at least two weeks before surgery, and no effect within days. |
| 11.2 | The sets are picked and ordered by the magnitude of the related benefit | 🟢 | Ordered to match the ER’s Medium-benefit order — gas-transfer recovery first, perioperative flare prevention second, general onset last. |
| 11.3 | If less that three distinct time-to-effect aspects are mentioned in the ER the unused sets are left empty and made invisible, not filled with placeholder text or empty-state phrasing. | N/A | Three distinct time-to-effect aspects exist in the ER; all three sets used. |
| 11.4 | All used [time_#label], [time#value], [time#_sub] items are filled with meaningful content derived from the ER. | 🟢 | All nine time spans carry ER-derived content. |
| 11.5 | If the ER does not provide any information on time to effect, the section is removed completely from the Protocol Panel |
N/A | The ER provides time-to-effect information (Practical Considerations); section retained. |
12. Benefits
| # | Description | Result | Comments |
|---|---|---|---|
| 12.1 | The section is derived from the ER Expected Benefits section |
🟢 | Derived from the ER ‘Expected Benefits’ section (ER 155-199). |
| 12.2 | Key variables are [benefits_high], [benefits_medium], [benefits_low], [benefits_speculative] | 🟢 | All four tier spans present and correctly named. |
| 12.3 | Items are as concise as possible. No explanations, no elaborations, no effect sizes, no qualifiers, no attributions, no citations, no study details, no mechanistic explanations, etc. Just the key fact. | 🟢 | Only the ER benefit headings are carried; magnitudes, confidence intervals and study details dropped. |
| 12.4 | Parenthetical content — including effect sizes, sample notes, mechanistic hints, and example studies — is stripped, NOT preserved. | 🟢 | No parenthetical content carried over. |
| 12.5 | If no items of a specific sub-section (high, medium, low, speculative) are present the respective is set to “display=none”, not filled with “None documented in human trials to date” or similar empty-state phrasing. | 🟢 | benefits_high carries style=”display: none” with empty content, matching the ER’s ‘No benefit reaches High’; no empty-state phrasing used. |
13. Risks
| # | Description | Result | Comments |
|---|---|---|---|
| 13.1 | The section is derived from the ER Potential Risks & Side Effects section |
🟢 | Derived from the ER ‘Potential Risks & Side Effects’ section (ER 223-281). |
| 13.2 | Key variables are [risks_high], [risks_medium], [risks_low], [risks_speculative] | 🟢 | All four tier spans present and correctly named. |
| 13.3 | Items are as concise as possible. No explanations, no elaborations, no effect sizes, no qualifiers, no attributions, no citations, no study details, no mechanistic explanations, etc. Just the key fact. | 🟢 | Only the ER risk headings are carried; incidence figures and grades dropped. |
| 13.4 | Parenthetical content — including frequencies, severity grades, sample notes, mechanistic hints, and example studies — is stripped, NOT preserved. | 🟢 | No parenthetical content carried over. |
| 13.5 | If no items of a specific sub-section (high, medium, low, speculative) are present the respective is set to “display=none”, not filled with “None documented in human trials to date” or similar empty-state phrasing. | N/A | All four risk tiers have items in the ER; condition does not apply. |
14. Monitoring
| # | Description | Result | Comments |
|---|---|---|---|
| 14.1 | The section is derived from the ER Monitoring section |
🟢 | Derived from the ER ‘Monitoring Protocol & Defining Success’ section (ER 436-449). |
| 14.2 | All measurable/quantifiable biomarkers from the Monitoring section are listed |
🟢 | All ten ER biomarkers listed, with targets and rationales matching the ER table rows. |
| 14.3 | [monitoring_cadence] is populated with the monitoring cadence/frequency derived from the ER Monitoring section. It is not left with placeholder text or empty. |
🟢 | Cadence span carries the ER’s monitoring schedule (ER 436), including the reset-on-dose-change clause. |
15. Qualitative Assessment
| # | Description | Result | Comments |
|---|---|---|---|
| 15.1 | The section is derived from the ER Monitoring section |
🟢 | Derived from the ER’s qualitative marker list (ER 453-458). |
| 15.2 | All subjective/qualitative biomarkers from the Monitoring section are listed |
🟢 | All six ER qualitative markers listed, in ER order. |
Issues 07/09/2026 09:11
Pass rate 100.00%. No issues found.
Issues 07/09/2026 09:04
- 1.1 / 7.3 — At-a-glance overstates absence of tumour shrinkage: The at-a-glance says “Tumour shrinkage remains laboratory work” (line 434), but the ER Conclusion (line 490) limits that to “the anti-tumour claim itself” and records human nerve-sheath tumour shrinkage — which the QRS itself lists under Benefits (Low).
Fixes 07/09/2026 09:04
- 1.1 / 7.3 — At-a-glance tumour-shrinkage claim: Changed “Tumour shrinkage remains laboratory work” to “The tumour-killing claim itself remains laboratory work”, matching the ER Conclusion and removing the contradiction with the QRS’s own Benefits (Low) entry on nerve-sheath tumour volume reduction.
Issues 07/09/2026 08:59
- 12.3 / 12.4 — Conflicted qualifier not stripped: [benefits_low] (lines 549–550) preserves the parenthetical qualifier “(conflicted)” on both items — “Lower lung cancer incidence in progressive lung scarring (conflicted); volume reduction in fibrous nerve-sheath tumours (conflicted)” — where section 12 requires parenthetical content and evidence-strength qualifiers to be stripped because the Low tier already encodes them.
Fixes 07/09/2026 08:59
- 12.3 / 12.4 — Conflicted qualifier stripped: Removed the “(conflicted)” parenthetical from both [benefits_low] items, leaving “Lower lung cancer incidence in progressive lung scarring; volume reduction in fibrous nerve-sheath tumours”.