Audit: QRS - Clascoterone for Hair Regrowth
Audit conducted on 10/29/2026 13:14 using AI4L / Opus 5.5
Summary
| Items | Count |
|---|---|
| Total | 97 |
| Passed | 87 |
| Failed | 0 |
| N/A | 10 |
| 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. | 🟢 | Lede, Protocol, Time to effect, gates, tiers, monitoring and qualitative items all trace to ER text (e.g., Therapeutic Protocol, Practical Considerations, Monitoring table and Context/Notes). |
| 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. | 🟢 | Cautious ER phrasing carried: “scalp use for hair is untested”, “absolute gains are unpublished”, “Risks, mostly from the cream”, “animal studies point to harm”. |
| 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 found in lede, gates, Protocol, Time to effect or Monitoring. |
| 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. | 🟢 | Contraindications from ER ‘Populations who should avoid’; interactions from Documented/Theoretical groups; tiers match ER tiers. |
| 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. | 🟢 | Only Winlevi, SCALP 1 and 2 and DHT appear, each in the ER for the same fact; no PMIDs, NCT IDs or expert names. |
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. | 🟢 | |
| 2.2 | The tone of the QRS is expert, accessible, objective, and data-driven | 🟢 | |
| 2.3 | The QRS reads as a trusted, knowledgeable guide rather than a prescriptive doctor | 🟢 | |
| 2.4 | The QRS avoids language that implies medical or clinical advice | 🟢 | |
| 2.5 | The QRS “presents information” instead of “providing guidance”, “recommending”, or “advising” | 🟢 | |
| 2.6 | The QRS never addresses the reader directly — it presents evidence, not guidance | 🟢 | No second-person address found. |
| 2.7 | The QRS is written in plain language, avoiding unnecessary medical jargon | 🟢 | Technical terms present (Hyperkalemia, Hypothalamic-pituitary-adrenal axis suppression, cosyntropin, ACE inhibitors) are ER labels carried verbatim. |
| 2.8 | Information is presented in a concise and very compact manner | 🟢 | |
| 2.9 | 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. | 🟢 | |
| 2.10 | The target audience is willing to employ lifestyle and behavioral changes as well as follow protocols that may be inconvenient, costly, or require effort. | 🟢 | |
| 2.11 | 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. | 🟢 | |
| 2.12 | 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. | 🟢 | |
| 2.13 | 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” wording. |
| 2.14 | The document’s own voice uses formal clinical and scientific terminology, not colloquial or consumer-grade language (e.g., “oral medication” not “pill(s)”; “oral” / “administered orally” not “taken by mouth” / “given by mouth”; “injection” not “shot”; “adverse event” not “bad reaction”). This holds on EVERY surface, including the QRS lede — the stricter plain-language bar (see 2.7) does not license lay phrasing for route of administration. Direct quotes from sources are exempt. | 🟢 | Lede uses “prescription medication”; no colloquial route or event terms. |
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 column headers unchanged. |
| 3.2 | Every element carrying a data-qrs-var attribute in [qrs_template] is present in the QRS with the same name | 🟢 | All template data-qrs-var names present; marker_# and qualitative_item_# expanded per 14.2/15.2. |
| 3.3 | Everything outside the data-qrs-var spans — markup, text, styles, comments — is as in the template; spans that no checklist item addresses are left unchanged as well | 🟢 | Diff against template shows changes only inside data-qrs-var spans, the tier hide attributes, and the metadata block (pipeline-added duration/git fields). |
4. Formatting
| # | Description | Result | Comments |
|---|---|---|---|
| 4.1 | An empty ER section never produces visible empty-state text in the QRS: the corresponding region is hidden or left empty. Phrases such as “None documented in human trials to date” or “Not formally studied” appear only where the ER uses them for a fact the QRS carries over. | 🟢 | Empty High/Low benefit and High/Medium risk tiers hidden; no empty-state phrasing. |
| 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. | 🟢 | Protocol labels “Phase 3 regimen”, “Time of day”, “Off-label cream” are the ER bold labels; gate labels match ER bold labels. |
| 4.3 | Labels are not paraphrased, abbreviated, or invented. | 🟢 | Example lists trimmed only by dropping examples (e.g., “high-alcohol tonics”, “clobetasol scalp solution”); kept words are the ER’s own. |
| 4.4 | The QRS DOES NOT use emoji indicators (no 🟩, 🟥, 🟨, etc.). Color and emphasis are conveyed through CSS and bold labels. | 🟢 | No emoji in the QRS. |
| 4.5 | The QRS is designed to render on one A4 page. It fails this item only for one of four things: a trailing clause after a dash, an optional gloss, an example list left untrimmed, or a repetition. Nothing else is cut to fit. | 🟢 | No trailing dash clause, optional gloss, untrimmed example list or repetition found. |
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. | 🟢 | |
| 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. | 🟢 | |
| 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. | 🟢 | |
| 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. | 🟢 | Only duration is quoted (“00:02”), which contains a colon. |
| 5.5 | The filename of the source ER is stated as “er_filename: [er_filename]” | 🟢 | |
| 5.6 | Version of the QRS.md file used to create the document is stated as “qrs_prompt_version: [Version of QRS.md]” | 🟢 | 26.10.25 matches QRS.md version. |
| 5.7 | Creation date and time of the document is stated as “qrs_creation_date: [YYYY-MMDD-HHMM]” (e.g., 2026-0501-1430) | 🟢 | 2026-1029-1300 |
| 5.8 | The nickname of the AI used to create the document is stated as “qrs_creator_ai_nickname: [qrs_creator_ai_nickname]” | 🟢 | |
| 5.9 | The nickname of the AI is the full name without the version number, with all remaining words joined by hyphens (e.g., Opus, Sonnet, Grok, Gemini-Flash, GPT); when the full name has no version number or is “Unknown”, the nickname equals the full name | 🟢 | Opus |
| 5.10 | The full name of the AI used to create the document is stated as “qrs_creator_ai_fullname: [qrs_creator_ai_fullname]” | 🟢 | |
| 5.11 | The full name of the AI consists of the model name (the word or words directly before the version number, leaving out the first if there is more than one, e.g., Claude Opus 5.5 → Opus 5.5), the model version number and the variant (if any) as stated in the system prompt or developer instructions of the creating model, with every word capitalized and without product, effort or pricing names (e.g., Opus X.Y, Sonnet X.Y, Grok X.Y, Gemini X.Y Flash, GPT X.Y), the model name alone when the system prompt or developer instructions name a model without a version number (e.g., Grok), or “Unknown” when neither the system prompt nor the developer instructions of the creating model name a model | 🟢 | Opus 5.5 |
| 5.12 | The filename of the document is stated as “qrs_filename: [filename of this document]” | 🟢 |
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 &) |
🟢 | |
| 6.3 | [header_subline_date] is set to [qrs_creation_date reformatted as MM/DD/YYYY] | 🟢 | 10/29/2026 |
| 6.4 | [header_subline_model] is set to [qrs_creator_ai_fullname] | 🟢 | |
| 6.5 | No additional header content appears: no badge, version stamp, AKA / alternate names line, source-AI attribution, audit date, or QRS variant marker. | 🟢 |
7. At-A-Glance Section
| # | Description | Result | Comments |
|---|---|---|---|
| 7.1 | [at_a_glance] opens by saying what the intervention is — its kind (e.g., dietary supplement, prescription medication, peptide, plant, procedure, practice) — and what it is used for, in plain language, before any verdict on the evidence | 🟢 | Opens with “a prescription medication that blocks male-hormone action … sold as an acne cream and developed as a scalp solution for pattern hair loss”. |
| 7.2 | [at_a_glance] is dense, execution-oriented summary of the ER Conclusion section |
🟢 | |
| 7.3 | [at_a_glance] is no longer than 70 words | 🟢 | 70 words (script count). |
| 7.4 | Every fact in [at_a_glance] is supported by a distinct passage in the ER. | 🟢 | Each fact maps to an ER Conclusion passage. |
| 7.5 | It DOES NOT use acronyms or technical classifications that require specialist knowledge, uses plain-language terms instead | 🟢 | |
| 7.6 | It DOES NOT cite specific trials (names, years, sample sizes, p-values) | 🟢 | |
| 7.7 | It DOES NOT cite effect sizes, relative risks, or statistical results | 🟢 |
8. Contraindications
| # | Description | Result | Comments |
|---|---|---|---|
| 8.1 | The section is derived from the ER Key Interactions & Contraindications section |
🟢 | |
| 8.2 | [stop_items] represent the Contraindications from the ER | 🟢 | All six ER ‘Populations who should avoid’ items present. |
| 8.3 | Individual [stop_items] are formatted as <li></li> | 🟢 | |
| 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. | 🟢 | |
| 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). | 🟢 | “(cuts, abrasions, eczema, sunburn)” and “under 12 years” preserved. |
| 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. | N/A | ER uses no ranking notation in contraindications. |
| 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 populated; ER names populations to avoid. |
| 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 not empty. |
9. Key Interactions
| # | Description | Result | Comments |
|---|---|---|---|
| 9.1 | The section is derived from the ER Key Interactions & Contraindications section |
🟢 | |
| 9.2 | [caution_items] represent the ER’s documented interactions — the items under its “Documented interactions:” label — excluding any that are already listed as Contraindications and any entry phrased as no interaction found | 🟢 | Occlusion and irritating topicals kept; CYP-metabolized drugs (“No clinically meaningful effect expected”), adapalene, clindamycin/benzoyl peroxide and isotretinoin (no interaction/added harm found) excluded. |
| 9.3 | [caution_theoretical_items] represent the ER’s theoretical interactions — the items under its “Theoretical interactions (inferred from mechanism, not studied in humans):” label | 🟢 | All seven ER theoretical interactions present. |
| 9.4 | The ER placeholder “None identified” is never an item: it means that group is empty | 🟢 | |
| 9.5 | Individual [caution_items] and [caution_theoretical_items] are formatted as <li></li>. The template’s bold “Theoretical (inferred from mechanism)” sub-heading is the only marker of the second list’s status: no item carries “(theoretical)”, “inferred from” or a mechanism clause | 🟢 | |
| 9.6 | 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. | 🟢 | |
| 9.7 | 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 lists preserved in trimmed form. |
| 9.8 | 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. | N/A | ER uses no ranking notation in interactions. |
| 9.9 | If the ER’s theoretical group is empty, the whole Theoretical block — the caution_theoretical span with its sub-heading and list — is hidden with style="display:none", not removed: its spans stay in place, empty. |
N/A | ER theoretical group is not empty. |
| 9.10 | 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 populated; ER names interactions. |
| 9.11 | 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, and the Theoretical block is hidden per 9.9. E.g. | N/A | Section not empty. |
10. Protocol
| # | Description | Result | Comments |
|---|---|---|---|
| 10.1 | The section is derived from the ER Therapeutic Protocol section |
🟢 | |
| 10.2 | The three sets of [action] items cover the three most important actionable implementation aspects from that section | 🟢 | |
| 10.3 | If fewer than three distinct actionable implementation aspects are mentioned in the ER, the unused sets are left empty and hidden with style="display:none", not filled with placeholder text or empty-state phrasing. |
N/A | ER gives at least three actionable aspects. |
| 10.4 | All used [action_#label], [action#value], [action#_sub] items are filled with meaningful content derived from that section. | 🟢 |
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 | 🟢 | |
| 11.2 | The sets are picked and ordered by the magnitude of the related benefit | 🟢 | Hair-count items (goal benefit) precede acne item. |
| 11.3 | If fewer than three distinct time-to-effect aspects are mentioned in the ER, the unused sets are left empty and hidden with style="display:none", not filled with placeholder text or empty-state phrasing. |
N/A | ER gives at least three time-to-effect aspects. |
| 11.4 | All used [time_#label], [time#value], [time#_sub] items are filled with meaningful content derived from the ER. | 🟢 | |
| 11.5 | If the ER provides no information on time to effect at all, the whole Time to effect block (its subhead and all three sets) is hidden with style="display:none", not removed: its spans stay in place, empty. |
N/A | ER provides time-to-effect information. |
12. Benefits
| # | Description | Result | Comments |
|---|---|---|---|
| 12.1 | The section is derived from the ER Expected Benefits section |
🟢 | |
| 12.2 | Key variables are [benefits_high], [benefits_medium], [benefits_low], [benefits_speculative] | 🟢 | |
| 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. | 🟢 | ER flags (Conflicted, Not Central) and magnitudes stripped. |
| 12.4 | Parenthetical content — including effect sizes, sample notes, mechanistic hints, and example studies — is stripped, NOT preserved. | 🟢 | |
| 12.5 | If a tier (high, medium, low, speculative) has no items, its span is hidden with style="display:none", not filled with “None documented in human trials to date” or similar empty-state phrasing. |
🟢 | High and Low tiers hidden. |
13. Risks
| # | Description | Result | Comments |
|---|---|---|---|
| 13.1 | The section is derived from the ER Potential Risks & Side Effects section |
🟢 | |
| 13.2 | Key variables are [risks_high], [risks_medium], [risks_low], [risks_speculative] | 🟢 | |
| 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. | 🟢 | |
| 13.4 | Parenthetical content — including frequencies, severity grades, sample notes, mechanistic hints, and example studies — is stripped, NOT preserved. | 🟢 | |
| 13.5 | If a tier (high, medium, low, speculative) has no items, its span is hidden with style="display:none", not filled with “None documented in human trials to date” or similar empty-state phrasing. |
🟢 | High and Medium tiers hidden. |
14. Monitoring
| # | Description | Result | Comments |
|---|---|---|---|
| 14.1 | The section is derived from the ER Monitoring Protocol & Defining Success section |
🟢 | |
| 14.2 | All measurable/quantifiable biomarkers from that section are listed, one table row per marker; the template’s # row is the pattern, repeated with # replaced by 1, 2, 3 … in the data-qrs-var names |
🟢 | Seven markers: the four table rows plus creatinine, morning cortisol and pregnancy test named in the section. |
| 14.3 | [marker_#name] is the marker, [marker#target] its target value or range as given in the ER, [marker#_why] its purpose in a few words; a target the ER does not give is written “Not specified in the ER” | 🟢 | Creatinine and pregnancy test targets written “Not specified in the ER”. |
| 14.4 | [monitoring_cadence] is populated with the monitoring cadence/frequency derived from that section. It is not left with placeholder text or empty. | 🟢 | |
| 14.5 | If the ER names no measurable biomarker, the table is hidden with style="display:none" and the single # row is left as in the template |
N/A | ER names measurable biomarkers. |
15. Qualitative Assessment
| # | Description | Result | Comments |
|---|---|---|---|
| 15.1 | The section is derived from the ER Monitoring Protocol & Defining Success section |
🟢 | |
| 15.2 | All subjective/qualitative markers from that section are listed, one <li> per marker; the template’s # item is the pattern, repeated with # replaced by 1, 2, 3 … |
🟢 | All six ER qualitative markers listed. |
| 15.3 | If the ER names no qualitative marker, the card’s list is hidden with style="display:none" and the single # item is left as in the template |
N/A | ER names qualitative markers. |
Issues 10/29/2026 13:14
Pass rate 100.00%. No issues found.
Issues 10/29/2026 13:12
- 14.2 — Pregnancy test marker missing: The ER Monitoring section (ER line 353) adds a baseline pregnancy test for women, but the Monitoring table (QRS lines 617-684) has no row for it.
Fixes 10/29/2026 13:12
- 14.2 — Pregnancy test marker added: Added Monitoring row marker_7 “Pregnancy test” with target “Not specified in the ER” and why “Baseline in women”.
Issues 10/29/2026 13:08
- 14.2 — Monitoring markers missing: The ER Monitoring section names morning serum cortisol (reference range about 5–25 µg/dL, ER lines 353/360) and serum creatinine (paired with potassium, ER line 359), but the QRS biomarker table (lines 618-661) lists only four markers.
Fixes 10/29/2026 13:08
- 14.2 — Missing monitoring markers added: Added “Morning serum cortisol” (About 5–25 µg/dL) and “Serum creatinine” (Not specified in the ER) rows to the Monitoring table, renumbering the hair-count and photograph rows to marker_5 and marker_6.
Issues 10/29/2026 13:05
- 2.7 — Avoidable jargon outside labels: action_1_sub at line 456 uses “balding vertex” and marker_1_why at line 626 uses “Safety check for hyperkalemia”; neither is an ER label carried verbatim, and plain terms exist (crown, high blood potassium).
- 2.14 — Lay route phrasing in lede: The at_a_glance at line 439 calls clascoterone “a prescription skin medicine”, consumer-grade phrasing instead of formal terminology such as “prescription medication applied to the skin”.
Fixes 10/29/2026 13:05
- 2.7 — Replaced jargon with plain terms: Changed “balding vertex” to “balding crown” in action_1_sub and “Safety check for hyperkalemia” to “Safety check for high blood potassium” in marker_1_why.
- 2.14 — Formal route phrasing in lede: Changed “a prescription skin medicine that blocks male-hormone action where applied” to “a prescription medication that blocks male-hormone action where applied to the skin”, and replaced “, and absolute gains” with “; absolute gains” to stay within 70 words.
Issues 10/29/2026 13:03
- 1.3 — Cream timing presented generally: Protocol cell action_2 (line 467) reads “At least 8 hours apart, onto a dry scalp” without the ER’s “as specified for the cream” (ER Therapeutic Protocol, Time of day), turning a cream-label interval into an apparent scalp-solution instruction.
Fixes 10/29/2026 13:03
- 1.3 — Cream timing qualifier restored: Changed action_2_sub from “At least 8 hours apart, onto a dry scalp” to “At least 8 hours apart, as specified for the cream, onto a dry scalp”, matching the ER.