From 122b772484ddbcbbe0420b09dd83460782f83105 Mon Sep 17 00:00:00 2001 From: "Dylan Mordaunt (ISLHD)" Date: Wed, 12 Aug 2026 13:28:36 +1000 Subject: [PATCH 1/4] feat(domain): add clinical and legal skill modules Wire hard-locked clinical and legal spans into compile routing and profile families so health, clinical-safety, and legal-regulatory documents load real references instead of governance alone. Co-authored-by: Cursor --- scripts/check-sync-clean.js | 2 + scripts/compile-skill.js | 23 ++- .../profile-registry.json | 12 +- src/modules/SKILL_CLINICAL.md | 173 ++++++++++++++++++ src/modules/SKILL_GOVERNANCE.md | 4 + src/modules/SKILL_LEGAL.md | 171 +++++++++++++++++ test/domain-citation-clinical-legal.test.js | 115 ++++++++++++ test/identity-metadata.test.js | 2 + 8 files changed, 497 insertions(+), 5 deletions(-) create mode 100644 src/modules/SKILL_CLINICAL.md create mode 100644 src/modules/SKILL_LEGAL.md create mode 100644 test/domain-citation-clinical-legal.test.js diff --git a/scripts/check-sync-clean.js b/scripts/check-sync-clean.js index 0bb83b4..35aad51 100644 --- a/scripts/check-sync-clean.js +++ b/scripts/check-sync-clean.js @@ -13,7 +13,9 @@ const TARGET_FILES = [ 'references/core-patterns.md', 'references/technical.md', 'references/academic.md', + 'references/clinical.md', 'references/governance.md', + 'references/legal.md', 'references/reasoning-failures.md', ]; diff --git a/scripts/compile-skill.js b/scripts/compile-skill.js index 58288d4..4570b24 100644 --- a/scripts/compile-skill.js +++ b/scripts/compile-skill.js @@ -30,7 +30,9 @@ const MODULES = { core: 'src/modules/SKILL_CORE_PATTERNS.md', technical: 'src/modules/SKILL_TECHNICAL.md', academic: 'src/modules/SKILL_ACADEMIC.md', + clinical: 'src/modules/SKILL_CLINICAL.md', governance: 'src/modules/SKILL_GOVERNANCE.md', + legal: 'src/modules/SKILL_LEGAL.md', reasoning: 'src/modules/SKILL_REASONING.md', foio: 'src/modules/SKILL_FOIO.md', }; @@ -46,7 +48,9 @@ const REFERENCE_FILES = { core: 'core-patterns.md', technical: 'technical.md', academic: 'academic.md', + clinical: 'clinical.md', governance: 'governance.md', + legal: 'legal.md', reasoning: 'reasoning-failures.md', foio: 'foio-editorial.md', }; @@ -328,7 +332,9 @@ function compileStandardSkill(modules) { `- [Core patterns (${patternCount} patterns, before/after examples)](references/core-patterns.md)`, modules.technical && '- [Technical writing and literal preservation](references/technical.md)', modules.academic && '- [Academic and research prose](references/academic.md)', + modules.clinical && '- [Clinical and patient-safety prose](references/clinical.md)', modules.governance && '- [Policy, governance, and compliance prose](references/governance.md)', + modules.legal && '- [Legal and regulatory prose](references/legal.md)', modules.reasoning && '- [Reasoning failures and self-contradictions](references/reasoning-failures.md)', modules.foio && @@ -366,8 +372,13 @@ the material: [technical.md](references/technical.md). - Papers, manuscripts, citations, or research prose: read [academic.md](references/academic.md). -- Policy, governance, legal, risk, or compliance prose: read +- Health-research or clinical-safety prose: read + [clinical.md](references/clinical.md), plus academic or governance + references the material also requires. +- Policy, governance, risk, or compliance prose: read [governance.md](references/governance.md). +- Legal-regulatory prose (contracts, advice, affidavits, notices): read + [legal.md](references/legal.md) with governance. - Claims with contradictions or reasoning failures: read [reasoning-failures.md](references/reasoning-failures.md). - FOI-O final manuscript editing after semantic and citation review: read @@ -376,7 +387,7 @@ the material: Load more than one content reference only when the material genuinely crosses domains. Reasoning guidance supplements a content reference; it does not replace -technical, academic, or governance rules. +technical, academic, clinical, legal, or governance rules. For low-density or clearly human-authored prose, make only the smallest defensible edits. @@ -421,7 +432,11 @@ function compileProfessionalSkill(modules) { '- [Core patterns](references/core-patterns.md) — always apply', modules.technical && '- [Technical module](references/technical.md) — code and technical docs', modules.academic && '- [Academic module](references/academic.md) — papers and formal research', + modules.clinical && + '- [Clinical module](references/clinical.md) — health research and patient-safety prose', modules.governance && '- [Governance module](references/governance.md) — policy and compliance', + modules.legal && + '- [Legal module](references/legal.md) — contracts, advice, and regulatory filings', modules.reasoning && '- [Reasoning module](references/reasoning-failures.md) — reasoning failures and contradictions', modules.foio && @@ -451,7 +466,9 @@ ${moduleLinks} 1. Analyze input context: * Code or technical docs -> Core + Technical * Papers, essays, or formal research -> Core + Academic + * Health research or clinical-safety prose -> Core + Clinical, plus Academic or Governance as required * Policy, risk, or compliance writing -> Core + Governance + * Legal-regulatory prose -> Core + Governance + Legal * Reasoning failures or self-contradictions -> Core + Reasoning * FOI-O final manuscript editing -> Core + Academic + Governance + FOI-O * Otherwise -> Core only @@ -528,7 +545,9 @@ function compile() { core: readModule(MODULES.core, true), technical: readModule(MODULES.technical), academic: readModule(MODULES.academic), + clinical: readModule(MODULES.clinical), governance: readModule(MODULES.governance), + legal: readModule(MODULES.legal), reasoning: readModule(MODULES.reasoning), foio: readModule(MODULES.foio), }; diff --git a/src/document-intelligence/profile-registry.json b/src/document-intelligence/profile-registry.json index b54b4ca..37012d4 100644 --- a/src/document-intelligence/profile-registry.json +++ b/src/document-intelligence/profile-registry.json @@ -69,7 +69,8 @@ "references": [ "references/core-patterns.md", "references/academic.md", - "references/governance.md" + "references/governance.md", + "references/clinical.md" ], "checks": ["study-type", "minimum-reporting", "claim-strength", "ethics-boundary"], "false_positive_risks": ["required reporting language and cautious clinical claims"], @@ -90,7 +91,11 @@ { "id": "legal-regulatory", "subtypes": ["advice", "submission", "affidavit", "contract", "notice"], - "references": ["references/core-patterns.md", "references/governance.md"], + "references": [ + "references/core-patterns.md", + "references/governance.md", + "references/legal.md" + ], "checks": ["legal-meaning", "authority", "defined-terms", "evidentiary-boundary"], "false_positive_risks": ["formulaic language required by law, court, or contract"], "source_resolvers": ["named-jurisdiction", "publisher-requirements"], @@ -104,7 +109,8 @@ "references": [ "references/core-patterns.md", "references/academic.md", - "references/governance.md" + "references/governance.md", + "references/clinical.md" ], "checks": ["clinical-meaning", "safety-actions", "audience", "evidence-boundary"], "false_positive_risks": [ diff --git a/src/modules/SKILL_CLINICAL.md b/src/modules/SKILL_CLINICAL.md new file mode 100644 index 0000000..ac8333a --- /dev/null +++ b/src/modules/SKILL_CLINICAL.md @@ -0,0 +1,173 @@ +--- +module_id: clinical +version: 3.2.0 +description: Clinical module for health research and patient-safety prose +applies_to: trial reports, guidelines, handovers, incident reviews, patient materials +severity_levels: + - Critical + - High + - Medium + - Low +--- + +# Module: Clinical + +## Description + +This module applies to health-research manuscripts and clinical-safety prose: trial reports, observational studies, protocols, guidelines, handovers, incident reviews, and patient-facing material. It repairs editorial defects with verified diffs. It does not certify clinical safety, submission readiness, or detector evasion. + +Load this reference with academic and governance guidance when the document is a study report. Load it with governance guidance when the document is a guideline, handover, or incident review. + +**When to Apply:** + +- Randomised trials, observational studies, systematic reviews, protocols, case reports +- Clinical guidelines and safety notices +- Handovers and incident reviews +- Patient information and consent materials + +**When NOT to Apply:** + +- Creative writing +- Purely technical software documentation +- Marketing or commercial claims about products + +Authentext does not prove that a protocol, label, or patient leaflet is safe or compliant. + +--- + +## HARD-LOCKED SPANS + +These spans cannot be edited as prose. Changing them changes the clinical claim. + +### Doses, units, and modifiers + +Lock the numeral, the unit, and any modifier that changes the dose: + +- `5 mg`, `5mg`, `5 mg/kg`, `once daily`, `bd`, `PRN` +- Frequency words tied to a dose (`every 8 hours`, `three times daily`) +- Concentration and strength (`1:1000`, `0.9%`, `1000 micrograms`) + +Do not normalise `micrograms` to `mcg` or `µg` unless the source already uses that form. Do not convert `5 mg/kg` into a flat milligram figure. + +### Drug names + +Do not swap brand and generic names. Do not "correct" spelling of a drug token. If the source says `adrenaline`, keep `adrenaline`; do not silently write `epinephrine`. If two names appear, keep both in the order given. + +### Route and formulation + +Lock route and formulation tokens: `IV`, `IM`, `PO`, `subcutaneous`, `modified-release`, `oral solution`, `nebulised`. Do not infer a missing route. + +### Negation + +Lock polarity. `no evidence of infection` is not `evidence of no infection`. `should not` is not `may`. Do not drop `not`, `never`, `absent`, or `negative`. + +### Adverse-event language + +`serious` is not `severe`. CIOMS frequency words have defined meanings and are locked: + +| Word | Meaning in CIOMS frequency language | +| --- | --- | +| very common | ≥ 1/10 | +| common | ≥ 1/100 to < 1/10 | +| uncommon | ≥ 1/1,000 to < 1/100 | +| rare | ≥ 1/10,000 to < 1/1,000 | +| very rare | < 1/10,000 | + +Do not replace `uncommon` with `rare`, or `serious` with `severe`, to sound more natural. + +### Population scope and prognostic framing + +Lock who the claim applies to (`adults ≥18 years`, `children under 5`, `pregnant people`) and prognostic framing (`associated with`, `predicts`, `does not predict`, `median survival`). Do not widen a subgroup into a general population. + +--- + +## PATIENT-FACING MATERIAL + +For patient-facing subtypes (`patient-material` and close relatives), **report** Flesch–Kincaid Grade Level (FKGL) and SMOG. Do not silently simplify. If a reading-age target exists, say whether the text meets it. Confirm key-message retention: every instruction, dose, warning, and "when to seek help" claim in the source must survive. If simplification would drop a warning, leave the sentence and report the conflict. + +--- + +## CLINICAL PATTERNS + +### Pattern C1: Softened Safety Language + +**Problem:** AI hedges a locked clinical instruction until it no longer tells anyone what to do. + +**Severity:** Critical + +**Before:** + +> Staff should generally consider escalating if the patient might potentially deteriorate. + +**After:** + +> Escalate if the source already names the trigger. Keep the named observation, threshold, and action. Do not invent a NEWS2 cut-off. + +--- + +### Pattern C2: Brand/Generic Swap + +**Problem:** AI "corrects" a drug name into the other naming system. + +**Severity:** Critical + +**Action:** Leave the token. Report the ambiguity. Do not add the other name unless it is already in the source. + +--- + +### Pattern C3: Promotional Trial Abstracts + +**Problem:** AI writes trial abstracts as product copy. + +**Severity:** High + +**Words to watch:** "groundbreaking", "game-changing", "life-saving", "robust evidence" + +Keep the effect size, interval, and limitation already in the source. Do not upgrade `may reduce` to `reduces`. + +--- + +## SEVERITY CLASSIFICATION + +### Critical (must fix) + +- Edits to doses, units, drug names, route, formulation, negation, or CIOMS frequency words +- Pattern C1: Softened safety language +- Pattern C2: Brand/generic swap + +### High (strong AI signals) + +- Pattern C3: Promotional trial abstracts +- Widened population or prognostic framing + +### Medium + +- Patient-facing text that was silently simplified without an FKGL/SMOG report + +### Low + +- Filler around otherwise intact methods or handover structure + +--- + +## BEST PRACTICES + +### Do + +- Prefer cuts over new clinical sentences +- Report FKGL and SMOG for patient-facing material +- Keep every warning and "when to seek help" claim +- Load academic guidance for study reports and governance guidance for policies + +### Don't + +- Invent a dose, interval, or contraindication +- Swap `serious` and `severe` +- Generate, complete, or reformat a reference list +- Claim the pass makes the document clinically safe + +--- + +_Module Version: 3.2.0_ +_Last Updated: 2026-08-12_ +_Applies to: Health research, guidelines, handovers, incident reviews, patient materials_ diff --git a/src/modules/SKILL_GOVERNANCE.md b/src/modules/SKILL_GOVERNANCE.md index 44c7473..7b63b16 100644 --- a/src/modules/SKILL_GOVERNANCE.md +++ b/src/modules/SKILL_GOVERNANCE.md @@ -31,6 +31,10 @@ This module applies to governance writing: policies, risk assessments, complianc - Marketing materials - Informal communications +Legal-regulatory instruments (contracts, advice, affidavits, notices) still +load this module, then also load [legal.md](legal.md) for modal, defined-term, +carve-out, and temporal locks. Do not rewrite `shall` as `must` from Pattern G1. + --- ## GOVERNANCE VOICE diff --git a/src/modules/SKILL_LEGAL.md b/src/modules/SKILL_LEGAL.md new file mode 100644 index 0000000..e823f45 --- /dev/null +++ b/src/modules/SKILL_LEGAL.md @@ -0,0 +1,171 @@ +--- +module_id: legal +version: 3.2.0 +description: Legal module for contracts, advice, notices, and regulatory submissions +applies_to: contracts, advice, affidavits, notices, regulatory submissions +severity_levels: + - Critical + - High + - Medium + - Low +--- + +# Module: Legal + +## Description + +This module applies to legal-regulatory prose: advice, submissions, affidavits, contracts, and notices. It repairs editorial defects with verified diffs. It does not certify legal effect, court readiness, or detector evasion. + +Load this reference with governance guidance. Do not treat governance filler-removal as a licence to rewrite `shall` as `must`. + +**When to Apply:** + +- Contracts and deeds +- Legal advice and submissions +- Affidavits and statements of facts +- Statutory notices and regulatory filings + +**When NOT to Apply:** + +- Creative writing +- Informal correspondence with no legal effect +- Marketing copy + +Authentext does not practise law and does not verify citations. + +--- + +## HARD-LOCKED SPANS + +### Modal verbs + +Lock `shall`, `must`, `may`, `should`, and `will`. These are not synonyms. + +- `shall` / `must`: obligation. Do not swap them to match house style. +- `may`: permission or possibility, depending on the instrument. Do not upgrade to `must`. +- `should`: recommendation, not a duty, unless the instrument defines it otherwise. +- `will`: often a statement of fact or future operation. Do not rewrite as `shall`. + +Governance Pattern G1 still applies to vague policy prose that is not a locked modal. If the token is one of the five above, leave it. + +### Defined terms + +Lock capitalised defined terms (`Confidential Information`, `the Act`, `Business Day`) and the definition that creates them. Do not expand, contract, or paraphrase a defined term into ordinary English. + +### Carve-outs + +Lock carve-out markers and their objects: `except`, `unless`, `provided that`, `subject to`, `without prejudice to`, `notwithstanding`. Dropping a carve-out invents a broader duty. + +### Temporal literals + +Never normalise `30 days` to `one month`, or `seven days` to `a week`. Keep calendar vs Business Day distinctions. Keep time zones and clock times as written. + +### Citations and quoted holdings + +Citations and quoted holdings are unverified by construction. Do not complete a missing pinpoint, year, or court. Do not "fix" a citation style. Do not generate, complete, or reformat a table of authorities or reference list. + +--- + +## OMISSION VERSUS INVENTION + +Every proposed edit set must report direction: + +- **Omission risk:** the rewrite would drop an obligation, carve-out, defined term, date, or citation that the source contains. +- **Invention risk:** the rewrite would add a duty, party, date, citation, or holding the source does not contain. + +Prefer the smaller edit. If either risk is present, leave the span and report it. Subtractive edits that remove filler without touching locked spans are allowed. + +--- + +## LEGAL PATTERNS + +### Pattern L1: Modal Collapse + +**Problem:** AI rewrites `shall`/`may`/`should` into a single polite register. + +**Severity:** Critical + +**Before:** + +> The Licensee shall notify the Licensor and may sublicense to Affiliates. + +**After:** + +> Keep `shall` and `may`. Do not write "The Licensee should notify the Licensor and can sublicense." + +--- + +### Pattern L2: Dropped Carve-Out + +**Problem:** AI shortens a sentence and loses `except as provided in clause 9`. + +**Severity:** Critical + +**Action:** If a shortened sentence cannot carry the carve-out, do not shorten it. + +--- + +### Pattern L3: Temporal Normalisation + +**Problem:** AI turns `within 30 days` into `within one month`. + +**Severity:** Critical + +**Action:** Keep `30 days`. + +--- + +### Pattern L4: Invented Authority + +**Problem:** AI adds a case, section, or "the court held" line that is not in the source. + +**Severity:** Critical + +**Action:** Cut the invented citation. Report that citations remain unverified. + +--- + +## SEVERITY CLASSIFICATION + +### Critical (must fix) + +- Pattern L1: Modal collapse +- Pattern L2: Dropped carve-out +- Pattern L3: Temporal normalisation +- Pattern L4: Invented authority +- Any edit that changes a defined term + +### High + +- Filler removal that risks omission of a condition + +### Medium + +- Promotional or hedging language in a covering letter, not in the instrument + +### Low + +- Formatting of unlocked surrounding prose + +--- + +## BEST PRACTICES + +### Do + +- Report omission-versus-invention for the edit set +- Keep quotations and pinpoints exactly +- Point citation verification at sourceright or citeweft when those tools are in scope; otherwise refuse bibliography work locally + +### Don't + +- Treat `shall` and `must` as interchangeable +- Normalise `30 days` to `one month` +- Generate a table of authorities +- Claim the pass makes the document legally sufficient + +--- + +_Module Version: 3.2.0_ +_Last Updated: 2026-08-12_ +_Applies to: Contracts, advice, affidavits, notices, regulatory submissions_ diff --git a/test/domain-citation-clinical-legal.test.js b/test/domain-citation-clinical-legal.test.js new file mode 100644 index 0000000..4cc1e43 --- /dev/null +++ b/test/domain-citation-clinical-legal.test.js @@ -0,0 +1,115 @@ +import assert from 'node:assert/strict'; +import fs from 'node:fs'; +import test from 'node:test'; +import { resolveProfileRoute } from '../scripts/lib/document-profile-registry.js'; + +const compiler = fs.readFileSync('scripts/compile-skill.js', 'utf8'); +const skill = fs.readFileSync('SKILL.md', 'utf8'); +const professional = fs.readFileSync('SKILL_PROFESSIONAL.md', 'utf8'); +const clinical = fs.existsSync('src/modules/SKILL_CLINICAL.md') + ? fs.readFileSync('src/modules/SKILL_CLINICAL.md', 'utf8') + : ''; +const legal = fs.existsSync('src/modules/SKILL_LEGAL.md') + ? fs.readFileSync('src/modules/SKILL_LEGAL.md', 'utf8') + : ''; +const clinicalRef = fs.existsSync('references/clinical.md') + ? fs.readFileSync('references/clinical.md', 'utf8') + : ''; +const legalRef = fs.existsSync('references/legal.md') + ? fs.readFileSync('references/legal.md', 'utf8') + : ''; +const governance = fs.readFileSync('src/modules/SKILL_GOVERNANCE.md', 'utf8'); +const registry = JSON.parse( + fs.readFileSync('src/document-intelligence/profile-registry.json', 'utf8') +); + +function profile(id) { + return registry.profiles.find((entry) => entry.id === id); +} + +test('compiler emits and routes clinical and legal references', () => { + assert.match(compiler, /SKILL_CLINICAL\.md/); + assert.match(compiler, /SKILL_LEGAL\.md/); + assert.match(compiler, /clinical: 'clinical\.md'/); + assert.match(compiler, /legal: 'legal\.md'/); + assert.ok(fs.existsSync('references/clinical.md'), 'references/clinical.md missing'); + assert.ok(fs.existsSync('references/legal.md'), 'references/legal.md missing'); + assert.match(skill, /references\/clinical\.md/); + assert.match(skill, /references\/legal\.md/); + assert.match(professional, /references\/clinical\.md/); + assert.match(professional, /references\/legal\.md/); +}); + +test('clinical module hard-locks doses, drugs, negation, and AE language', () => { + for (const source of [clinical, clinicalRef]) { + assert.match(source, /hard-lock|Hard-lock|locked/i); + assert.match(source, /dose/i); + assert.match(source, /unit/i); + assert.match(source, /drug/i); + assert.match(source, /brand/i); + assert.match(source, /generic/i); + assert.match(source, /negation/i); + assert.match(source, /serious/i); + assert.match(source, /severe/i); + assert.match(source, /CIOMS/); + assert.match(source, /very common|uncommon|very rare/i); + assert.match(source, /route/i); + assert.match(source, /formulation/i); + assert.match(source, /population/i); + assert.match(source, /prognostic/i); + } +}); + +test('patient-facing clinical text reports FKGL or SMOG and does not silently simplify', () => { + for (const source of [clinical, clinicalRef]) { + assert.match(source, /FKGL/); + assert.match(source, /SMOG/); + assert.match(source, /Do not silently simplify/i); + assert.match(source, /key-message|key message/i); + } +}); + +test('legal module hard-locks modals, defined terms, carve-outs, and temporal literals', () => { + for (const source of [legal, legalRef]) { + assert.match(source, /shall/); + assert.match(source, /must/); + assert.match(source, /\bmay\b/); + assert.match(source, /should/); + assert.match(source, /\bwill\b/); + assert.match(source, /defined term/i); + assert.match(source, /carve-out/i); + assert.match(source, /30 days/); + assert.match(source, /one month/); + assert.match(source, /unverified/i); + assert.match(source, /omission/i); + assert.match(source, /invention/i); + } +}); + +test('governance points at the legal module instead of duplicating locks', () => { + assert.match(governance, /legal\.md/); + assert.doesNotMatch(governance, /### Pattern L1:/); +}); + +test('profile families load the new clinical and legal references', () => { + assert.ok(profile('health-research').references.includes('references/clinical.md')); + assert.ok(profile('clinical-safety').references.includes('references/clinical.md')); + assert.ok(profile('legal-regulatory').references.includes('references/legal.md')); + assert.ok(profile('health-research').references.includes('references/academic.md')); + assert.deepEqual(resolveProfileRoute({ archetype: 'clinical-safety' }).references, [ + 'references/core-patterns.md', + 'references/academic.md', + 'references/governance.md', + 'references/clinical.md', + ]); + assert.ok( + resolveProfileRoute({ archetype: 'legal-regulatory' }).references.includes( + 'references/legal.md' + ) + ); + assert.ok( + resolveProfileRoute({ archetype: 'health-research' }).references.includes( + 'references/clinical.md' + ) + ); +}); diff --git a/test/identity-metadata.test.js b/test/identity-metadata.test.js index 0b62971..c45a980 100644 --- a/test/identity-metadata.test.js +++ b/test/identity-metadata.test.js @@ -43,7 +43,9 @@ test('canonical modules use the package version and Authentext identity', () => 'SKILL_CORE_PATTERNS.md', 'SKILL_TECHNICAL.md', 'SKILL_ACADEMIC.md', + 'SKILL_CLINICAL.md', 'SKILL_GOVERNANCE.md', + 'SKILL_LEGAL.md', 'SKILL_REASONING.md', ]) { const source = fs.readFileSync(`src/modules/${filename}`, 'utf8'); From faebf1a7925d847f5a8678b95c2ffb9dab42025d Mon Sep 17 00:00:00 2001 From: "Dylan Mordaunt (ISLHD)" Date: Wed, 12 Aug 2026 13:30:25 +1000 Subject: [PATCH 2/4] chore(sync): emit clinical and legal references Rebuild compiled skill outputs after adding the clinical and legal modules so routing and progressive-disclosure files stay in sync. Co-authored-by: Cursor --- AGENTS.md | 2 +- SKILL.md | 11 ++- SKILL_PROFESSIONAL.md | 6 +- references/clinical.md | 161 +++++++++++++++++++++++++++++++++++++++ references/governance.md | 4 + references/legal.md | 159 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 339 insertions(+), 4 deletions(-) create mode 100644 references/clinical.md create mode 100644 references/legal.md diff --git a/AGENTS.md b/AGENTS.md index e3a7251..2074e48 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,7 +2,7 @@ adapter_metadata: skill_name: authentext skill_version: 3.2.0 - last_synced: 2026-08-11 + last_synced: 2026-08-12 source_path: SKILL.md adapter_id: codex-cli adapter_format: AGENTS.md diff --git a/SKILL.md b/SKILL.md index e5947aa..38f9a75 100644 --- a/SKILL.md +++ b/SKILL.md @@ -204,8 +204,13 @@ the material: [technical.md](references/technical.md). - Papers, manuscripts, citations, or research prose: read [academic.md](references/academic.md). -- Policy, governance, legal, risk, or compliance prose: read +- Health-research or clinical-safety prose: read + [clinical.md](references/clinical.md), plus academic or governance + references the material also requires. +- Policy, governance, risk, or compliance prose: read [governance.md](references/governance.md). +- Legal-regulatory prose (contracts, advice, affidavits, notices): read + [legal.md](references/legal.md) with governance. - Claims with contradictions or reasoning failures: read [reasoning-failures.md](references/reasoning-failures.md). - FOI-O final manuscript editing after semantic and citation review: read @@ -214,7 +219,7 @@ the material: Load more than one content reference only when the material genuinely crosses domains. Reasoning guidance supplements a content reference; it does not replace -technical, academic, or governance rules. +technical, academic, clinical, legal, or governance rules. For low-density or clearly human-authored prose, make only the smallest defensible edits. @@ -226,7 +231,9 @@ Read these files for the full pattern catalog, examples, and remediation guidanc - [Core patterns (40 patterns, before/after examples)](references/core-patterns.md) - [Technical writing and literal preservation](references/technical.md) - [Academic and research prose](references/academic.md) +- [Clinical and patient-safety prose](references/clinical.md) - [Policy, governance, and compliance prose](references/governance.md) +- [Legal and regulatory prose](references/legal.md) - [Reasoning failures and self-contradictions](references/reasoning-failures.md) - [FOI-O final editorial workflow and evidence receipt](references/foio-editorial.md) diff --git a/SKILL_PROFESSIONAL.md b/SKILL_PROFESSIONAL.md index 5683ecc..770c32c 100644 --- a/SKILL_PROFESSIONAL.md +++ b/SKILL_PROFESSIONAL.md @@ -15,7 +15,9 @@ Use this variant for technical, policy, academic, and client-facing prose. Keep - [Core patterns](references/core-patterns.md) — always apply - [Technical module](references/technical.md) — code and technical docs - [Academic module](references/academic.md) — papers and formal research +- [Clinical module](references/clinical.md) — health research and patient-safety prose - [Governance module](references/governance.md) — policy and compliance +- [Legal module](references/legal.md) — contracts, advice, and regulatory filings - [Reasoning module](references/reasoning-failures.md) — reasoning failures and contradictions - [FOI-O editorial workflow](references/foio-editorial.md) — final manuscript pass and receipt @@ -24,7 +26,9 @@ Use this variant for technical, policy, academic, and client-facing prose. Keep 1. Analyze input context: * Code or technical docs -> Core + Technical * Papers, essays, or formal research -> Core + Academic + * Health research or clinical-safety prose -> Core + Clinical, plus Academic or Governance as required * Policy, risk, or compliance writing -> Core + Governance + * Legal-regulatory prose -> Core + Governance + Legal * Reasoning failures or self-contradictions -> Core + Reasoning * FOI-O final manuscript editing -> Core + Academic + Governance + FOI-O * Otherwise -> Core only @@ -81,4 +85,4 @@ Vary sentence rhythm with short and long lines. Use specific details instead of For severity tiers and false-positive guidance, read [Core patterns](references/core-patterns.md) (sections **SEVERITY CLASSIFICATION** and **DETECTION GUIDANCE**). -Available reference files: core-patterns.md, technical.md, academic.md, governance.md, reasoning-failures.md, foio-editorial.md. +Available reference files: core-patterns.md, technical.md, academic.md, clinical.md, governance.md, legal.md, reasoning-failures.md, foio-editorial.md. diff --git a/references/clinical.md b/references/clinical.md new file mode 100644 index 0000000..4911534 --- /dev/null +++ b/references/clinical.md @@ -0,0 +1,161 @@ +# Module: Clinical + +## Description + +This module applies to health-research manuscripts and clinical-safety prose: trial reports, observational studies, protocols, guidelines, handovers, incident reviews, and patient-facing material. It repairs editorial defects with verified diffs. It does not certify clinical safety, submission readiness, or detector evasion. + +Load this reference with academic and governance guidance when the document is a study report. Load it with governance guidance when the document is a guideline, handover, or incident review. + +**When to Apply:** + +- Randomised trials, observational studies, systematic reviews, protocols, case reports +- Clinical guidelines and safety notices +- Handovers and incident reviews +- Patient information and consent materials + +**When NOT to Apply:** + +- Creative writing +- Purely technical software documentation +- Marketing or commercial claims about products + +Authentext does not prove that a protocol, label, or patient leaflet is safe or compliant. + +--- + +## HARD-LOCKED SPANS + +These spans cannot be edited as prose. Changing them changes the clinical claim. + +### Doses, units, and modifiers + +Lock the numeral, the unit, and any modifier that changes the dose: + +- `5 mg`, `5mg`, `5 mg/kg`, `once daily`, `bd`, `PRN` +- Frequency words tied to a dose (`every 8 hours`, `three times daily`) +- Concentration and strength (`1:1000`, `0.9%`, `1000 micrograms`) + +Do not normalise `micrograms` to `mcg` or `µg` unless the source already uses that form. Do not convert `5 mg/kg` into a flat milligram figure. + +### Drug names + +Do not swap brand and generic names. Do not "correct" spelling of a drug token. If the source says `adrenaline`, keep `adrenaline`; do not silently write `epinephrine`. If two names appear, keep both in the order given. + +### Route and formulation + +Lock route and formulation tokens: `IV`, `IM`, `PO`, `subcutaneous`, `modified-release`, `oral solution`, `nebulised`. Do not infer a missing route. + +### Negation + +Lock polarity. `no evidence of infection` is not `evidence of no infection`. `should not` is not `may`. Do not drop `not`, `never`, `absent`, or `negative`. + +### Adverse-event language + +`serious` is not `severe`. CIOMS frequency words have defined meanings and are locked: + +| Word | Meaning in CIOMS frequency language | +| --- | --- | +| very common | ≥ 1/10 | +| common | ≥ 1/100 to < 1/10 | +| uncommon | ≥ 1/1,000 to < 1/100 | +| rare | ≥ 1/10,000 to < 1/1,000 | +| very rare | < 1/10,000 | + +Do not replace `uncommon` with `rare`, or `serious` with `severe`, to sound more natural. + +### Population scope and prognostic framing + +Lock who the claim applies to (`adults ≥18 years`, `children under 5`, `pregnant people`) and prognostic framing (`associated with`, `predicts`, `does not predict`, `median survival`). Do not widen a subgroup into a general population. + +--- + +## PATIENT-FACING MATERIAL + +For patient-facing subtypes (`patient-material` and close relatives), **report** Flesch–Kincaid Grade Level (FKGL) and SMOG. Do not silently simplify. If a reading-age target exists, say whether the text meets it. Confirm key-message retention: every instruction, dose, warning, and "when to seek help" claim in the source must survive. If simplification would drop a warning, leave the sentence and report the conflict. + +--- + +## CLINICAL PATTERNS + +### Pattern C1: Softened Safety Language + +**Problem:** AI hedges a locked clinical instruction until it no longer tells anyone what to do. + +**Severity:** Critical + +**Before:** + +> Staff should generally consider escalating if the patient might potentially deteriorate. + +**After:** + +> Escalate if the source already names the trigger. Keep the named observation, threshold, and action. Do not invent a NEWS2 cut-off. + +--- + +### Pattern C2: Brand/Generic Swap + +**Problem:** AI "corrects" a drug name into the other naming system. + +**Severity:** Critical + +**Action:** Leave the token. Report the ambiguity. Do not add the other name unless it is already in the source. + +--- + +### Pattern C3: Promotional Trial Abstracts + +**Problem:** AI writes trial abstracts as product copy. + +**Severity:** High + +**Words to watch:** "groundbreaking", "game-changing", "life-saving", "robust evidence" + +Keep the effect size, interval, and limitation already in the source. Do not upgrade `may reduce` to `reduces`. + +--- + +## SEVERITY CLASSIFICATION + +### Critical (must fix) + +- Edits to doses, units, drug names, route, formulation, negation, or CIOMS frequency words +- Pattern C1: Softened safety language +- Pattern C2: Brand/generic swap + +### High (strong AI signals) + +- Pattern C3: Promotional trial abstracts +- Widened population or prognostic framing + +### Medium + +- Patient-facing text that was silently simplified without an FKGL/SMOG report + +### Low + +- Filler around otherwise intact methods or handover structure + +--- + +## BEST PRACTICES + +### Do + +- Prefer cuts over new clinical sentences +- Report FKGL and SMOG for patient-facing material +- Keep every warning and "when to seek help" claim +- Load academic guidance for study reports and governance guidance for policies + +### Don't + +- Invent a dose, interval, or contraindication +- Swap `serious` and `severe` +- Generate, complete, or reformat a reference list +- Claim the pass makes the document clinically safe + +--- + +_Module Version: 3.2.0_ +_Last Updated: 2026-08-12_ +_Applies to: Health research, guidelines, handovers, incident reviews, patient materials_ diff --git a/references/governance.md b/references/governance.md index b03d81c..7afd52d 100644 --- a/references/governance.md +++ b/references/governance.md @@ -28,6 +28,10 @@ This module applies to governance writing: policies, risk assessments, complianc - Marketing materials - Informal communications +Legal-regulatory instruments (contracts, advice, affidavits, notices) still +load this module, then also load [legal.md](legal.md) for modal, defined-term, +carve-out, and temporal locks. Do not rewrite `shall` as `must` from Pattern G1. + --- ## GOVERNANCE VOICE diff --git a/references/legal.md b/references/legal.md new file mode 100644 index 0000000..7fef9a4 --- /dev/null +++ b/references/legal.md @@ -0,0 +1,159 @@ +# Module: Legal + +## Description + +This module applies to legal-regulatory prose: advice, submissions, affidavits, contracts, and notices. It repairs editorial defects with verified diffs. It does not certify legal effect, court readiness, or detector evasion. + +Load this reference with governance guidance. Do not treat governance filler-removal as a licence to rewrite `shall` as `must`. + +**When to Apply:** + +- Contracts and deeds +- Legal advice and submissions +- Affidavits and statements of facts +- Statutory notices and regulatory filings + +**When NOT to Apply:** + +- Creative writing +- Informal correspondence with no legal effect +- Marketing copy + +Authentext does not practise law and does not verify citations. + +--- + +## HARD-LOCKED SPANS + +### Modal verbs + +Lock `shall`, `must`, `may`, `should`, and `will`. These are not synonyms. + +- `shall` / `must`: obligation. Do not swap them to match house style. +- `may`: permission or possibility, depending on the instrument. Do not upgrade to `must`. +- `should`: recommendation, not a duty, unless the instrument defines it otherwise. +- `will`: often a statement of fact or future operation. Do not rewrite as `shall`. + +Governance Pattern G1 still applies to vague policy prose that is not a locked modal. If the token is one of the five above, leave it. + +### Defined terms + +Lock capitalised defined terms (`Confidential Information`, `the Act`, `Business Day`) and the definition that creates them. Do not expand, contract, or paraphrase a defined term into ordinary English. + +### Carve-outs + +Lock carve-out markers and their objects: `except`, `unless`, `provided that`, `subject to`, `without prejudice to`, `notwithstanding`. Dropping a carve-out invents a broader duty. + +### Temporal literals + +Never normalise `30 days` to `one month`, or `seven days` to `a week`. Keep calendar vs Business Day distinctions. Keep time zones and clock times as written. + +### Citations and quoted holdings + +Citations and quoted holdings are unverified by construction. Do not complete a missing pinpoint, year, or court. Do not "fix" a citation style. Do not generate, complete, or reformat a table of authorities or reference list. + +--- + +## OMISSION VERSUS INVENTION + +Every proposed edit set must report direction: + +- **Omission risk:** the rewrite would drop an obligation, carve-out, defined term, date, or citation that the source contains. +- **Invention risk:** the rewrite would add a duty, party, date, citation, or holding the source does not contain. + +Prefer the smaller edit. If either risk is present, leave the span and report it. Subtractive edits that remove filler without touching locked spans are allowed. + +--- + +## LEGAL PATTERNS + +### Pattern L1: Modal Collapse + +**Problem:** AI rewrites `shall`/`may`/`should` into a single polite register. + +**Severity:** Critical + +**Before:** + +> The Licensee shall notify the Licensor and may sublicense to Affiliates. + +**After:** + +> Keep `shall` and `may`. Do not write "The Licensee should notify the Licensor and can sublicense." + +--- + +### Pattern L2: Dropped Carve-Out + +**Problem:** AI shortens a sentence and loses `except as provided in clause 9`. + +**Severity:** Critical + +**Action:** If a shortened sentence cannot carry the carve-out, do not shorten it. + +--- + +### Pattern L3: Temporal Normalisation + +**Problem:** AI turns `within 30 days` into `within one month`. + +**Severity:** Critical + +**Action:** Keep `30 days`. + +--- + +### Pattern L4: Invented Authority + +**Problem:** AI adds a case, section, or "the court held" line that is not in the source. + +**Severity:** Critical + +**Action:** Cut the invented citation. Report that citations remain unverified. + +--- + +## SEVERITY CLASSIFICATION + +### Critical (must fix) + +- Pattern L1: Modal collapse +- Pattern L2: Dropped carve-out +- Pattern L3: Temporal normalisation +- Pattern L4: Invented authority +- Any edit that changes a defined term + +### High + +- Filler removal that risks omission of a condition + +### Medium + +- Promotional or hedging language in a covering letter, not in the instrument + +### Low + +- Formatting of unlocked surrounding prose + +--- + +## BEST PRACTICES + +### Do + +- Report omission-versus-invention for the edit set +- Keep quotations and pinpoints exactly +- Point citation verification at sourceright or citeweft when those tools are in scope; otherwise refuse bibliography work locally + +### Don't + +- Treat `shall` and `must` as interchangeable +- Normalise `30 days` to `one month` +- Generate a table of authorities +- Claim the pass makes the document legally sufficient + +--- + +_Module Version: 3.2.0_ +_Last Updated: 2026-08-12_ +_Applies to: Contracts, advice, affidavits, notices, regulatory submissions_ From b2b6e0cc477b4c55172e543f941e654bee63d73e Mon Sep 17 00:00:00 2001 From: "Dylan Mordaunt (ISLHD)" Date: Wed, 12 Aug 2026 13:34:25 +1000 Subject: [PATCH 3/4] conductor(plan): record clinical and legal phase evidence Mark Phases 1-3 complete with merge and sync evidence SHAs, and advance the track index to the creative reference phase. Co-authored-by: Cursor --- .../domain-and-citation_20260811/index.md | 4 +- .../metadata.json | 54 ++++++++++--------- .../domain-and-citation_20260811/plan.md | 40 ++++++++------ 3 files changed, 56 insertions(+), 42 deletions(-) diff --git a/conductor/tracks/domain-and-citation_20260811/index.md b/conductor/tracks/domain-and-citation_20260811/index.md index ff48f42..fe7c135 100644 --- a/conductor/tracks/domain-and-citation_20260811/index.md +++ b/conductor/tracks/domain-and-citation_20260811/index.md @@ -5,8 +5,10 @@ - **Priority:** P0 - **Status:** In progress - **Depends on:** `editorial-safety-invariants_20260811` -- **Current phase:** Phase 1 — Positioning and academic upgrade +- **Current phase:** Phase 4 — Creative reference - **GitHub track:** [#277](https://github.com/edithatogo/authentext/issues/277) +- **Merged:** academic upgrade [PR #297](https://github.com/edithatogo/authentext/pull/297) +- **In flight:** clinical + legal modules (this branch) ## Artifacts diff --git a/conductor/tracks/domain-and-citation_20260811/metadata.json b/conductor/tracks/domain-and-citation_20260811/metadata.json index ea066ee..68f94dc 100644 --- a/conductor/tracks/domain-and-citation_20260811/metadata.json +++ b/conductor/tracks/domain-and-citation_20260811/metadata.json @@ -1,26 +1,32 @@ { - "track_id": "domain-and-citation_20260811", - "title": "Domain and Citation Coverage", - "description": "Add clinical, legal, and creative references, upgrade academic disclosure and artefact rules, route profile families to real files, and hand citation work to sourceright/citeweft.", - "type": "feature", - "priority": "P0", - "status": "in_progress", - "created_at": "2026-08-11", - "updated_at": "2026-08-12", - "current_phase": "Phase 1: Positioning and academic upgrade", - "parallel_safe": false, - "depends_on": ["editorial-safety-invariants_20260811"], - "coordinates_with": ["pattern-registry-contracts_20260811"], - "github": { - "project_number": 36, - "project_url": "https://github.com/users/edithatogo/projects/36", - "parent_issue": 277, - "parent_issue_url": "https://github.com/edithatogo/authentext/issues/277", - "phase_issues": [] - }, - "external_gates": [ - "legal or clinical approval of any real case text", - "publication or submission", - "citation verification against a source of record" - ] + "track_id": "domain-and-citation_20260811", + "title": "Domain and Citation Coverage", + "description": "Add clinical, legal, and creative references, upgrade academic disclosure and artefact rules, route profile families to real files, and hand citation work to sourceright/citeweft.", + "type": "feature", + "priority": "P0", + "status": "in_progress", + "created_at": "2026-08-11", + "updated_at": "2026-08-12", + "current_phase": "Phase 4: Creative reference", + "parallel_safe": false, + "depends_on": [ + "editorial-safety-invariants_20260811" + ], + "coordinates_with": [ + "pattern-registry-contracts_20260811" + ], + "github": { + "project_number": 36, + "project_url": "https://github.com/users/edithatogo/projects/36", + "parent_issue": 277, + "parent_issue_url": "https://github.com/edithatogo/authentext/issues/277", + "phase_issues": [ + + ] + }, + "external_gates": [ + "legal or clinical approval of any real case text", + "publication or submission", + "citation verification against a source of record" + ] } diff --git a/conductor/tracks/domain-and-citation_20260811/plan.md b/conductor/tracks/domain-and-citation_20260811/plan.md index d90ebb0..8910695 100644 --- a/conductor/tracks/domain-and-citation_20260811/plan.md +++ b/conductor/tracks/domain-and-citation_20260811/plan.md @@ -1,33 +1,37 @@ # Implementation Plan: Domain and Citation Coverage -## Phase 1: Positioning and academic upgrade +## Phase 1: Positioning and academic upgrade [checkpoint: aa18c2b] - [x] Task: Write failing tests for detector-evasion refusal wording and for academic disclosure / interface-artefact / tortured-phrase / bibliography - refuse rules. + refuse rules. [aa18c2b] - [x] Task: Update `conductor/product.md` and the compiled skill description so Authentext is editorial defect repair with verified diffs, not a humanizer that chases detector scores. `product.md` already stated the - refusal; the compiled skill description now matches. + refusal; the compiled skill description now matches. [aa18c2b] - [x] Task: Upgrade `src/modules/SKILL_ACADEMIC.md` with publisher-branching disclosure, interface-artefact hard errors, tortured-phrase lexicon, - and out-of-scope reference lists. -- [ ] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). + and out-of-scope reference lists. [aa18c2b] +- [x] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). [aa18c2b] + Evidence: merged as PR #297. Local command `CI=true npm test` green on + the clinical/legal follow-on branch after rebase onto main. -## Phase 2: Clinical reference +## Phase 2: Clinical reference [checkpoint: faebf1a] -- [ ] Task: Write failing compile, routing, and locked-span tests for - clinical material, including patient-facing FKGL report-not-rewrite. -- [ ] Task: Add `src/modules/SKILL_CLINICAL.md` and teach the compiler to - emit `references/clinical.md`. -- [ ] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). +- [x] Task: Write failing compile, routing, and locked-span tests for + clinical material, including patient-facing FKGL report-not-rewrite. [122b772] +- [x] Task: Add `src/modules/SKILL_CLINICAL.md` and teach the compiler to + emit `references/clinical.md`. [122b772] +- [x] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). [faebf1a] + Evidence: `npm run sync`; `CI=true npm test` — 286 pass, integration green. -## Phase 3: Legal reference +## Phase 3: Legal reference [checkpoint: faebf1a] -- [ ] Task: Write failing tests for modal, defined-term, carve-out, temporal, - and citation-unverified locks, plus omission-versus-invention reporting. -- [ ] Task: Add `src/modules/SKILL_LEGAL.md` and emit `references/legal.md`. -- [ ] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). +- [x] Task: Write failing tests for modal, defined-term, carve-out, temporal, + and citation-unverified locks, plus omission-versus-invention reporting. [122b772] +- [x] Task: Add `src/modules/SKILL_LEGAL.md` and emit `references/legal.md`. [122b772] +- [x] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). [faebf1a] + Evidence: same as Phase 2; governance pointer to `legal.md` only. ## Phase 4: Creative reference @@ -39,9 +43,11 @@ ## Phase 5: Profile registry routing -- [ ] Task: Point `health-research` and `clinical-safety` at `clinical.md`, +- [~] Task: Point `health-research` and `clinical-safety` at `clinical.md`, `legal-regulatory` at `legal.md`, and `creative-narrative` at `creative.md`. Update registry tests. + Clinical and legal family routing landed in [122b772]; creative remains + for Phase 4 / PR 3. - [ ] Task: Phase Verification & Checkpoint (Refer to `workflow.md`). ## Phase 6: Sourceright and citeweft handoff From 9b9027fa996aa99c3bd8d1f053e6e7cd33c2834f Mon Sep 17 00:00:00 2001 From: "Dylan Mordaunt (ISLHD)" Date: Wed, 12 Aug 2026 13:53:42 +1000 Subject: [PATCH 4/4] style(clinical): prettier-format clinical module table Fix CI format:check failure on the CIOMS frequency table and restore canonical metadata.json indentation. Co-authored-by: Cursor --- .../metadata.json | 58 +++++++++---------- references/clinical.md | 14 ++--- src/modules/SKILL_CLINICAL.md | 14 ++--- 3 files changed, 42 insertions(+), 44 deletions(-) diff --git a/conductor/tracks/domain-and-citation_20260811/metadata.json b/conductor/tracks/domain-and-citation_20260811/metadata.json index 68f94dc..c4664d5 100644 --- a/conductor/tracks/domain-and-citation_20260811/metadata.json +++ b/conductor/tracks/domain-and-citation_20260811/metadata.json @@ -1,32 +1,30 @@ { - "track_id": "domain-and-citation_20260811", - "title": "Domain and Citation Coverage", - "description": "Add clinical, legal, and creative references, upgrade academic disclosure and artefact rules, route profile families to real files, and hand citation work to sourceright/citeweft.", - "type": "feature", - "priority": "P0", - "status": "in_progress", - "created_at": "2026-08-11", - "updated_at": "2026-08-12", - "current_phase": "Phase 4: Creative reference", - "parallel_safe": false, - "depends_on": [ - "editorial-safety-invariants_20260811" - ], - "coordinates_with": [ - "pattern-registry-contracts_20260811" - ], - "github": { - "project_number": 36, - "project_url": "https://github.com/users/edithatogo/projects/36", - "parent_issue": 277, - "parent_issue_url": "https://github.com/edithatogo/authentext/issues/277", - "phase_issues": [ - - ] - }, - "external_gates": [ - "legal or clinical approval of any real case text", - "publication or submission", - "citation verification against a source of record" - ] + "track_id": "domain-and-citation_20260811", + "title": "Domain and Citation Coverage", + "description": "Add clinical, legal, and creative references, upgrade academic disclosure and artefact rules, route profile families to real files, and hand citation work to sourceright/citeweft.", + "type": "feature", + "priority": "P0", + "status": "in_progress", + "created_at": "2026-08-11", + "updated_at": "2026-08-12", + "current_phase": "Phase 4: Creative reference", + "parallel_safe": false, + "depends_on": [ + "editorial-safety-invariants_20260811" + ], + "coordinates_with": [ + "pattern-registry-contracts_20260811" + ], + "github": { + "project_number": 36, + "project_url": "https://github.com/users/edithatogo/projects/36", + "parent_issue": 277, + "parent_issue_url": "https://github.com/edithatogo/authentext/issues/277", + "phase_issues": [] + }, + "external_gates": [ + "legal or clinical approval of any real case text", + "publication or submission", + "citation verification against a source of record" + ] } diff --git a/references/clinical.md b/references/clinical.md index 4911534..79b726b 100644 --- a/references/clinical.md +++ b/references/clinical.md @@ -53,13 +53,13 @@ Lock polarity. `no evidence of infection` is not `evidence of no infection`. `sh `serious` is not `severe`. CIOMS frequency words have defined meanings and are locked: -| Word | Meaning in CIOMS frequency language | -| --- | --- | -| very common | ≥ 1/10 | -| common | ≥ 1/100 to < 1/10 | -| uncommon | ≥ 1/1,000 to < 1/100 | -| rare | ≥ 1/10,000 to < 1/1,000 | -| very rare | < 1/10,000 | +| Word | Meaning in CIOMS frequency language | +| ----------- | ----------------------------------- | +| very common | ≥ 1/10 | +| common | ≥ 1/100 to < 1/10 | +| uncommon | ≥ 1/1,000 to < 1/100 | +| rare | ≥ 1/10,000 to < 1/1,000 | +| very rare | < 1/10,000 | Do not replace `uncommon` with `rare`, or `serious` with `severe`, to sound more natural. diff --git a/src/modules/SKILL_CLINICAL.md b/src/modules/SKILL_CLINICAL.md index ac8333a..6634a02 100644 --- a/src/modules/SKILL_CLINICAL.md +++ b/src/modules/SKILL_CLINICAL.md @@ -65,13 +65,13 @@ Lock polarity. `no evidence of infection` is not `evidence of no infection`. `sh `serious` is not `severe`. CIOMS frequency words have defined meanings and are locked: -| Word | Meaning in CIOMS frequency language | -| --- | --- | -| very common | ≥ 1/10 | -| common | ≥ 1/100 to < 1/10 | -| uncommon | ≥ 1/1,000 to < 1/100 | -| rare | ≥ 1/10,000 to < 1/1,000 | -| very rare | < 1/10,000 | +| Word | Meaning in CIOMS frequency language | +| ----------- | ----------------------------------- | +| very common | ≥ 1/10 | +| common | ≥ 1/100 to < 1/10 | +| uncommon | ≥ 1/1,000 to < 1/100 | +| rare | ≥ 1/10,000 to < 1/1,000 | +| very rare | < 1/10,000 | Do not replace `uncommon` with `rare`, or `serious` with `severe`, to sound more natural.