Audit: QRS - Green Light Therapy for Hair Regrowth
Audit conducted on 24/08/2026 19:35 using AI4L / Opus 5
Summary
| Items | Count |
|---|---|
| Total | 93 |
| Passed | 85 |
| Failed | 0 |
| N/A | 8 |
| 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. | 🟢 | All protocol, time, benefit, risk, gate, marker and cadence strings trace to ER lines 164–190, 220–260, 278–302, 322–332, 371, 399–422, 448–450. |
| 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. | 🟢 | “theoretically photosensitising” (line 603), “both from one team that helped build the devices and neither using a dummy-treated area” (lines 435–437) carry the ER’s hedges. |
| 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”). | 🟢 | Conditional scope preserved, e.g. “Photosensitive epilepsy (flicker 3–60 Hz), if the device pulses” (line 585) mirrors ER line 300. |
| 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; risk tiers only from Potential Risks & Side Effects; benefit tiers only from Expected Benefits. |
| 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. | 🟢 | The QRS carries no PMIDs, NCT identifiers, investigator names, or brand names. |
| 1.6 | The QRS does not introduce new attributions. | 🟢 | No attributions of any kind present. |
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, sceptical register, including its British spellings (“photosensitising”, “naevus”). |
| 2.2 | The tone of the QRS is simultaneously expert, accessible, objective, and data-driven, but also empowering and encouraging | 🟢 | Parameters, thresholds and monitoring targets are given concretely, leaving the reader able to act or decline. |
| 2.3 | The QRS reads as a trusted, knowledgeable guide rather than a prescriptive doctor | 🟢 | Declarative throughout; no imperatives directed at a patient. |
| 2.4 | The QRS avoids language that implies medical or clinical advice | 🟢 | Monitoring and cadence are stated as ER-derived description (“The device is judged at 24 weeks”, line 751). |
| 2.5 | The QRS “presents information” instead of “providing guidance”, “recommending”, or “advising” | 🟢 | No “recommend”, “advise”, or “should” constructions in the sheet’s own voice. |
| 2.6 | The QRS never addresses “the reader” directly — it presents evidence, not guidance | 🟢 | No second-person pronouns anywhere in the file. |
| 2.7 | The QRS is written in plain language, avoiding unnecessary medical jargon | 🟢 | Retained clinical nouns (photodermatoses, porphyrias, trichoscopic) are the diagnostic names required to make the gates and markers usable. |
| 2.8 | Information is presented in a concise and very compact manner | 🟢 | Every cell is a fragment or single clause; no paragraph exceeds three lines. |
| 2.9 | It DOES NOT address the reader directly | 🟢 | Confirmed — no “you”/”your” in the document. |
| 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. | 🟢 | Fluence, irradiance, phototype and biomarker detail are pitched at a self-directed reader. |
| 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. | 🟢 | A six-month, up-to-three-weekly, morning-only regimen with lab and trichoscopy tracking is presented without softening. |
| 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. | 🟢 | No simplified or reassurance-oriented framing. |
| 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. | 🟢 | At-A-Glance foregrounds the sponsor conflict, absent sham control, and red-light alternative — the weighting a risk-aware reader needs. |
| 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. | 🟢 | The string “anti-aging” does not occur. |
| 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. | 🟢 | Clinical register held throughout; the one lay rendering (“dummy-treated area”, line 437) sits in At-A-Glance, where item 7.4 mandates plain language, and is the ER Conclusion’s own wording. |
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 twelve fixed strings verified byte-identical to the template at lines 445, 490, 540, 566, 594, 617, 643, 647–649, 758 and the eight tier labels at lines 543–556 and 620–635. |
| 3.2 | All “…” from the [qrs_template] are present in the the QRS. | 🟢 | All 38 template variables present; the repeatable marker_#_* and qualitative_item_# groups are correctly expanded to marker_1–6 and qualitative_item_1–5. |
| 3.3 | Spans that are not addressed in a checklist item are left unchanged | 🟢 | Structural diff against the template shows changes only inside data-qrs-var spans that checklist items address; the website="evidence_review", website="audit", website="full_review" spans, CSS block and footer disclaimer are 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 source ER section is empty; the unpopulated benefit/risk tiers are handled under items 12.5 and 13.5 instead. |
| 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. | 🟢 | “Core parameters”, “Approach one — green light alone”, “Best time of day” match ER lines 322, 324, 332; marker names match the ER table at lines 405–410. |
| 4.3 | Labels are not paraphrased, abbreviated, or invented. | 🟢 | Time-to-effect labels reuse the ER benefit headings from lines 164, 170, 176 verbatim. |
| 4.4 | The QRS DOES NOT use emoji indicators (no 🟩, 🟥, 🟨, etc.). Color and emphasis are conveyed through CSS and bold labels. | 🟢 | No emoji characters in the file; the ER’s “⚠️ Conflicted” marker on line 232 was correctly dropped. |
| 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. | 🟢 | Seven gate items, five interactions, four benefit/risk tier lines, six markers and five qualitative items sit inside the template’s single-page grid. |
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. | 🟢 | Lines 2–14, immediately after <!doctype html> on line 1. |
| 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. | 🟢 | Opening --- at line 3, closing --- at line 13; the preceding caption on line 2 is permitted. |
| 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. | 🟢 | Enclosed in an HTML comment; no metadata value is repeated in head or body. |
| 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: "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]” | 🟢 | Line 4. |
| 5.6 | Version of the QRS.md file used to create the document is stated as “qrs_prompt_version: [Version of QRS.md]” | 🟢 | Line 5 states 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) | 🟢 | Line 6: 2026-0824-1909. |
| 5.8 | The nickname of the AI used to create the document is stated as “qrs_creator_ai_nickname: [qrs_creator_ai_nickname]” | 🟢 | Line 7. |
| 5.9 | The nickname of the AI is just a single word model name without version, etc. (e.g., Opus, Sonnet, Grok, Gemini, ChatGPT) | 🟢 | “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]” | 🟢 | Line 8. |
| 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) | 🟢 | “Opus 5” — nickname plus version, no qualifier. |
| 5.12 | The filename of the document is stated as “qrs_filename: [filename of this document]” | 🟢 | Line 9 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. | 🟢 | Re-verified across all nine keys, including the appended git_user and git_issue values. |
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 &) |
🟢 | Line 22: “Green Light Therapy for Hair Regrowth - Quick Reference Sheet”; no entity encoding required. |
| 6.2 | [header_topic] is set to the [canonical_topic] of the ER frontmatter, with HTML entities encoded as needed (e.g., & for &) |
🟢 | Line 417 matches ER frontmatter canonical_topic on ER line 8. |
| 6.3 | [header_subline_date] is set to [qrs_creation_date reformatted as MM/DD/YYYY] | 🟢 | Line 421: “08/24/2026” from 2026-0824-1909. |
| 6.4 | [header_subline_model] is set to [qrs_creator_ai_fullname] | 🟢 | Line 425: “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. | 🟢 | Header holds only the title and the template subline; the ER’s “Also known as” line was not carried over. |
7. At-A-Glance Section
| # | Description | Result | Comments |
|---|---|---|---|
| 7.1 | [at_a_glance] is dense, execution-oriented summary of the ER Conclusion section |
🟢 | Lines 434–437 compress ER lines 448–450 to what it is, what was seen, how good the evidence is, what the harms are, and the alternative. |
| 7.2 | [at_a_glance] is no longer than 60 words | 🟢 | 57 words. |
| 7.3 | Every fact in [at_a_glance] is supported by a distinct passage in the ER. | 🟢 | Each of the five clauses maps to a separate sentence in ER lines 448–450. |
| 7.4 | It DOES NOT use acronyms or technical classifications that require specialist knowledge, uses plain-language terms instead | 🟢 | No acronyms; “dummy-treated area” replaces “sham” and “thicker, denser hair” replaces terminal-hair-density language. |
| 7.5 | It DOES NOT cite specific trials (names, years, sample sizes, p-values) | 🟢 | Only “two small studies” — no name, year, or n. |
| 7.6 | It DOES NOT cite effect sizes, relative risks, or statistical results | 🟢 | No numeric outcome of any kind. |
8. Contraindications
| # | Description | Result | Comments |
|---|---|---|---|
| 8.1 | The section is derived from the ER Key Interactions & Contraindications section |
🟢 | All seven items trace to ER lines 280 and 290–302. |
| 8.2 | [stop_items] represent the Contraindications from the ER | 🟢 | All six ER “Populations who should avoid” bullets are represented; bullet 4 is correctly split into the photodynamic-therapy window and the unsupervised full-dose photosensitiser. |
| 8.3 | Individual [stop_items] are formatted as <li></li> | 🟢 | Seven <li> elements at lines 569–589. |
| 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. | 🟢 | Explanatory glosses stripped (“(an atypical mole)”, “(an inherited failure to repair light damage to DNA)”); no dash-trailing clause survives. |
| 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). | 🟢 | “48 hours”, “3–60 Hz”, “phototype V–VI”, “with active disease”, “until assessed and cleared” all retained. |
| 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 | The ER uses no ranking notation in this section. |
| 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. |
🟢 | The ER names six such populations, and the section is correctly not empty. |
| 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 | The section is not empty. |
9. Key Interactions
| # | Description | Result | Comments |
|---|---|---|---|
| 9.1 | The section is derived from the ER Key Interactions & Contraindications section |
🟢 | All five items trace to ER lines 278–288. |
| 9.2 | [caution_items] represent the Key Interactions from the ER, excluding any that are already listed as Contraindications | 🟢 | The photodynamic-therapy bullet, an absolute contraindication, is correctly excluded; the remaining five interaction bullets are all present. |
| 9.3 | Individual [caution_items] are formatted as <li></li> | 🟢 | Five <li> elements at lines 597–607. |
| 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. | 🟢 | ER consequence/mitigation clauses dropped; the parentheses that remain carry severity or drug lists, not rationale. |
| 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). | 🟢 | Full drug list retained on line 598; severity classes retained as “(additive; monitor)” and “(no interaction expected)”. |
| 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. | N/A | The ER uses no ranking notation in this section. |
| 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. |
🟢 | The ER names six interaction classes, and the section is correctly not empty. |
| 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 | The section is not empty. |
10. Protocol
| # | Description | Result | Comments |
|---|---|---|---|
| 10.1 | The section is derived from the ER Protocol section |
🟢 | All three sets trace to ER Therapeutic Protocol lines 322, 324, 332. |
| 10.2 | The three sets of [action] items cover the three most important actionable implementation aspects from the ER Protocol section |
🟢 | Dose parameters, delivery hardware, and session timing — the three bullets a reader must act on; the alternative-wavelength and modifier bullets are descriptive rather than implementation steps. |
| 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 | The ER supplies more than three; all three sets are 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 spans populated at lines 449–486; no placeholder text remains. |
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 | 🟢 | The three ER benefits with a stated onset — density, diameter, and rated coverage — sourced from ER lines 164–180 and 371. |
| 11.2 | The sets are picked and ordered by the magnitude of the related benefit | 🟢 | All three benefits sit in the ER’s Low tier with no published outcome figure, so the ER’s own ordering in Expected Benefits is carried through. |
| 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 aspects exist and all three sets are used. |
| 11.4 | All used [time_#label], [time#value], [time#_sub] items are filled with meaningful content derived from the ER. | 🟢 | All nine spans populated at lines 496–532. |
| 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 data at line 371. |
12. Benefits
| # | Description | Result | Comments |
|---|---|---|---|
| 12.1 | The section is derived from the ER Expected Benefits section |
🟢 | Low and Speculative entries match ER headings at lines 164, 170, 176, 184, 188. |
| 12.2 | Key variables are [benefits_high], [benefits_medium], [benefits_low], [benefits_speculative] | 🟢 | All four spans present at lines 542, 545, 548, 554. |
| 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. | 🟢 | Each tier is a semicolon-separated list of bare ER headings; no magnitude or study text carried over. |
| 12.4 | Parenthetical content — including effect sizes, sample notes, mechanistic hints, and example studies — is stripped, NOT preserved. | 🟢 | No parentheses in either benefit tier. |
| 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. | 🟢 | ER records no High or Medium benefit; both spans carry style="display: none" with the template placeholder untouched. |
13. Risks
| # | Description | Result | Comments |
|---|---|---|---|
| 13.1 | The section is derived from the ER Potential Risks & Side Effects section |
🟢 | Medium, Low and Speculative entries match ER headings at lines 218, 226, 232, 238, 244, 250, 258. |
| 13.2 | Key variables are [risks_high], [risks_medium], [risks_low], [risks_speculative] | 🟢 | All four spans present at lines 619, 622, 625, 633. |
| 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. | 🟢 | All five Low items are bare ER headings; no magnitude, incidence, or inference text carried over. |
| 13.4 | Parenthetical content — including frequencies, severity grades, sample notes, mechanistic hints, and example studies — is stripped, NOT preserved. | 🟢 | No parentheses in any risk tier. |
| 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. | 🟢 | ER records no High risk; the span carries style="display: none" with the template placeholder untouched. |
14. Monitoring
| # | Description | Result | Comments |
|---|---|---|---|
| 14.1 | The section is derived from the ER Monitoring section |
🟢 | Rows and cadence trace to the ER Monitoring Protocol & Defining Success table and lines 399–410. |
| 14.2 | All measurable/quantifiable biomarkers from the Monitoring section are listed |
🟢 | All six ER table rows present — ferritin, 25-hydroxyvitamin D, TSH, serum zinc, DHEA-S, trichoscopic hair density — with ranges and rationale preserved. |
| 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. |
🟢 | Lines 749–751 condense ER line 401, including the 24-week judgement point. |
15. Qualitative Assessment
| # | Description | Result | Comments |
|---|---|---|---|
| 15.1 | The section is derived from the ER Monitoring section |
🟢 | Items trace to ER lines 414–422. |
| 15.2 | All subjective/qualitative biomarkers from the Monitoring section are listed |
🟢 | All five ER qualitative bullets present at lines 761–787, none added or dropped. |
Issues 24/08/2026 19:35
Pass rate 100.00%. No issues found.
Issues 24/08/2026 19:29
- 11.4 — Cadence used as time to effect: [time_3_value] at line 526 reads “Monthly”, which is a measurement cadence rather than a duration; placed under “Time to effect” it implies an effect within one month, contradicting the ER’s “Nothing is visible before 12 weeks” (ER line 371).
Fixes 24/08/2026 19:29
- 11.4 — Cadence used as time to effect: Replaced [time_3_value] “Monthly” with “Still improving at 6 months”, so the cell states a duration supported by the ER (“were still improving at the endpoint”, ER line 371) instead of a measurement cadence.
Issues 24/08/2026 19:15
- 1.1 — Time-to-effect window misstated: [time_2_sub] (line 516) says shaft diameter “separated from baseline over the same 24–26 week window”, but the ER states separation occurred “between three and six months”; 24–26 weeks is the ER’s study duration, not the separation window, and it also contradicts the “3–6 months” already shown in the adjacent value cell.
Fixes 24/08/2026 19:15
- 1.1 — Time-to-effect window misstated: Rewrote [time_2_sub] from “Diameter separated from baseline over the same 24–26 week window” to “Average shaft thickness separated from baseline over the same three-to-six-month window”, matching the ER’s stated separation window and the adjacent “3–6 months” value cell.