Pre-ingestion verification for epistemic quality in RAG systems. Ensures documents are properly qualified before entering knowledge bases. Produces CGD (Clarity-Gated Documents) and validates SOT (Source of Truth) files.
Add this skill
npx mdskills install frmoretto/clarity-gateGeneric placeholder with no actionable instructions or verification workflow details
1---2name: clarity-gate3description: Pre-ingestion verification for epistemic quality in RAG systems. Ensures documents are properly qualified before entering knowledge bases. Produces CGD (Clarity-Gated Documents) and validates SOT (Source of Truth) files.4---56# Clarity Gate v2.178**Purpose:** Pre-ingestion verification system that enforces epistemic quality before documents enter RAG knowledge bases. Produces Clarity-Gated Documents (CGD) compliant with the Clarity Gate Format Specification v2.1.910**Core Question:** "If another LLM reads this document, will it mistake assumptions for facts?"1112**Core Principle:** *"Detection finds what is; enforcement ensures what should be. In practice: find the missing uncertainty markers before they become confident hallucinations."*1314---1516## What's New in v2.11718| Feature | Description |19|---------|-------------|20| **Claim Completion Status** | PENDING/VERIFIED determined by field presence (no explicit status field) |21| **Source Field Semantics** | Actionable source (PENDING) vs. what-was-found (VERIFIED) |22| **Claim ID Format Guidance** | Hash-based IDs preferred, collision analysis for scale |23| **Body Structure Requirements** | HITL Verification Record section mandatory when claims exist |24| **New Validation Codes** | E-ST10, W-ST11, W-HC01, W-HC02, E-SC06 (FORMAT_SPEC); E-TB01-07 (SOT validation) |25| **Bundled Scripts** | `claim_id.py` and `document_hash.py` for deterministic computations |2627---2829## Specifications3031This skill implements and references:3233| Specification | Version | Location |34|---------------|---------|----------|35| Clarity Gate Format (Unified) | v2.1 | [docs/CLARITY_GATE_FORMAT_SPEC.md](../../docs/CLARITY_GATE_FORMAT_SPEC.md) |3637**Note:** v2.0 unifies CGD and SOT into a single `.cgd.md` format. SOT is now a CGD with an optional `tier:` block.3839---4041## Validation Codes4243Clarity Gate defines validation codes for structural and semantic checks per FORMAT_SPEC v2.1:4445### HITL Claim Validation (§1.3.2-1.3.3)46| Code | Check | Severity |47|------|-------|----------|48| **W-HC01** | Partial `confirmed-by`/`confirmed-date` fields | WARNING |49| **W-HC02** | Vague source (e.g., "industry reports", "TBD") | WARNING |50| **E-SC06** | Schema error in `hitl-claims` structure | ERROR |5152### Body Structure (§1.2.1)53| Code | Check | Severity |54|------|-------|----------|55| **E-ST10** | Missing `## HITL Verification Record` when claims exist | ERROR |56| **W-ST11** | Table rows don't match `hitl-claims` count | WARNING |5758### SOT Table Validation (§3.1)59| Code | Check | Severity |60|------|-------|----------|61| **E-TB01** | No `## Verified Claims` section | ERROR |62| **E-TB02** | Table has no data rows | ERROR |63| **E-TB03** | Required columns missing | ERROR |64| **E-TB04** | Column order wrong | ERROR |65| **E-TB05** | Empty cell in required column | ERROR |66| **E-TB06** | Invalid date format in Verified column | ERROR |67| **E-TB07** | Verified date in future (beyond 24h grace) | ERROR |6869**Note:** Additional validation codes may be defined in RFC-001 (clarification document) but are not part of the normative FORMAT_SPEC.7071---7273## Bundled Scripts7475This skill includes Python scripts for deterministic computations per FORMAT_SPEC.7677### scripts/claim_id.py7879Computes stable, hash-based claim IDs for HITL tracking (per §1.3.4).8081```bash82# Generate claim ID83python scripts/claim_id.py "Base price is $99/mo" "api-pricing/1"84# Output: claim-75fb137a8586# Run test vectors87python scripts/claim_id.py --test88```8990**Algorithm:**911. Normalize text (strip + collapse whitespace)922. Concatenate with location using pipe delimiter933. SHA-256 hash, take first 8 hex chars944. Prefix with "claim-"9596**Test vectors:**97- `claim_id("Base price is $99/mo", "api-pricing/1")` → `claim-75fb137a`98- `claim_id("The API supports GraphQL", "features/1")` → `claim-eb357742`99100### scripts/document_hash.py101102Computes document SHA-256 hash per FORMAT_SPEC §2.2-2.4 with full canonicalization.103104```bash105# Compute hash106python scripts/document_hash.py my-doc.cgd.md107# Output: 7d865e959b2466918c9863afca942d0fb89d7c9ac0c99bafc3749504ded97730108109# Verify existing hash110python scripts/document_hash.py --verify my-doc.cgd.md111# Output: PASS: Hash verified: 7d865e...112113# Run normalization tests114python scripts/document_hash.py --test115```116117**Algorithm (per §2.2-2.4):**1181. Extract content between opening `---\n` and `<!-- CLARITY_GATE_END -->`1192. Remove `document-sha256` line from YAML frontmatter ONLY (with multiline continuation support)1203. Canonicalize:121 - Strip trailing whitespace per line122 - Collapse 3+ consecutive newlines to 2123 - Normalize final newline (exactly 1 LF)124 - UTF-8 NFC normalization1254. Compute SHA-256126127**Cross-platform normalization:**128- BOM removed if present129- CRLF to LF (Windows)130- CR to LF (old Mac)131- Boundary detection (prevents hash computation on content outside CGD structure)132- Whitespace variations produce identical hashes (deterministic across platforms)133134---135136## The Key Distinction137138Existing tools like UnScientify and HedgeHunter (CoNLL-2010) **detect** uncertainty markers already present in text ("Is uncertainty expressed?").139140Clarity Gate **enforces** their presence where epistemically required ("Should uncertainty be expressed but isn't?").141142| Tool Type | Question | Example |143|-----------|----------|---------|144| **Detection** | "Does this text contain hedges?" | UnScientify/HedgeHunter find "may", "possibly" |145| **Enforcement** | "Should this claim be hedged but isn't?" | Clarity Gate flags "Revenue will be $50M" |146147---148149## Critical Limitation150151> **Clarity Gate verifies FORM, not TRUTH.**152>153> This skill checks whether claims are properly marked as uncertain—it cannot verify if claims are actually true.154>155> **Risk:** An LLM can hallucinate facts INTO a document, then "pass" Clarity Gate by adding source markers to false claims.156>157> **Solution:** HITL (Human-In-The-Loop) verification is **MANDATORY** before declaring PASS.158159---160161## When to Use162163- Before ingesting documents into RAG systems164- Before sharing documents with other AI systems165- After writing specifications, state docs, or methodology descriptions166- When a document contains projections, estimates, or hypotheses167- Before publishing claims that haven't been validated168- When handing off documentation between LLM sessions169170---171172## The 9 Verification Points173174### Relationship to Spec Suite175176The 9 Verification Points guide **semantic review** — content quality checks that require judgment (human or AI). They answer questions like "Should this claim be hedged?" and "Are these numbers consistent?"177178When review completes, output a CGD file conforming to [CLARITY_GATE_FORMAT_SPEC.md](../../docs/CLARITY_GATE_FORMAT_SPEC.md). The C/S rules in [CLARITY_GATE_FORMAT_SPEC.md](../../docs/CLARITY_GATE_FORMAT_SPEC.md) validate **file structure**, not semantic content.179180**The connection:**1811. Semantic findings (9 points) determine what issues exist1822. Issues are recorded in CGD state fields (`clarity-status`, `hitl-status`, `hitl-pending-count`)1833. State consistency is enforced by structural rules (C7-C10)184185*Example: If Point 5 (Data Consistency) finds conflicting numbers, you'd mark `clarity-status: UNCLEAR` until resolved. Rule C7 then ensures you can't claim `REVIEWED` while still `UNCLEAR`.*186187---188189### Epistemic Checks (Core Focus: Points 1-4)190191**1. HYPOTHESIS vs FACT LABELING**192Every claim must be clearly marked as validated or hypothetical.193194| Fails | Passes |195|-------|--------|196| "Our architecture outperforms competitors" | "Our architecture outperforms competitors [benchmark data in Table 3]" |197| "The model achieves 40% improvement" | "The model achieves 40% improvement [measured on dataset X]" |198199**Fix:** Add markers: "PROJECTED:", "HYPOTHESIS:", "UNTESTED:", "(estimated)", "~", "?"200201---202203**2. UNCERTAINTY MARKER ENFORCEMENT**204Forward-looking statements require qualifiers.205206| Fails | Passes |207|-------|--------|208| "Revenue will be $50M by Q4" | "Revenue is **projected** to be $50M by Q4" |209| "The feature will reduce churn" | "The feature is **expected** to reduce churn" |210211**Fix:** Add "projected", "estimated", "expected", "designed to", "intended to"212213---214215**3. ASSUMPTION VISIBILITY**216Implicit assumptions that affect interpretation must be explicit.217218| Fails | Passes |219|-------|--------|220| "The system scales linearly" | "The system scales linearly [assuming <1000 concurrent users]" |221| "Response time is 50ms" | "Response time is 50ms [under standard load conditions]" |222223**Fix:** Add bracketed conditions: "[assuming X]", "[under conditions Y]", "[when Z]"224225---226227**4. AUTHORITATIVE-LOOKING UNVALIDATED DATA**228Tables with specific percentages and checkmarks look like measured data.229230**Red flag:** Tables with specific numbers (89%, 95%, 100%) without sources231232**Fix:** Add "(guess)", "(est.)", "?" to numbers. Add explicit warning: "PROJECTED VALUES - NOT MEASURED"233234---235236### Data Quality Checks (Complementary: Points 5-7)237238**5. DATA CONSISTENCY**239Scan for conflicting numbers, dates, or facts within the document.240241**Red flag:** "500 users" in one section, "750 users" in another242243**Fix:** Reconcile conflicts or explicitly note the discrepancy with explanation.244245---246247**6. IMPLICIT CAUSATION**248Claims that imply causation without evidence.249250**Red flag:** "Shorter prompts improve response quality" (plausible but unproven)251252**Fix:** Reframe as hypothesis: "Shorter prompts MAY improve response quality (hypothesis, not validated)"253254---255256**7. FUTURE STATE AS PRESENT**257Describing planned/hoped outcomes as if already achieved.258259**Red flag:** "The system processes 10,000 requests per second" (when it hasn't been built)260261**Fix:** Use future/conditional: "The system is DESIGNED TO process..." or "TARGET: 10,000 rps"262263---264265### Verification Routing (Points 8-9)266267**8. TEMPORAL COHERENCE**268Document dates and timestamps must be internally consistent and plausible.269270| Fails | Passes |271|-------|--------|272| "Last Updated: December 2024" (when current is 2026) | "Last Updated: January 2026" |273| v1.0.0 dated 2024-12-23, v1.1.0 dated 2024-12-20 | Versions in chronological order |274275**Sub-checks:**2761. Document date vs current date2772. Internal chronology (versions, events in order)2783. Reference freshness ("current", "now", "today" claims)279280**Fix:** Update dates, add "as of [date]" qualifiers, flag stale claims281282---283284**9. EXTERNALLY VERIFIABLE CLAIMS**285Specific numbers that could be fact-checked should be flagged for verification.286287| Type | Example | Risk |288|------|---------|------|289| Pricing | "Costs ~$0.005 per call" | API pricing changes |290| Statistics | "Papers average 15-30 equations" | May be wildly off |291| Rates/ratios | "40% of researchers use X" | Needs citation |292| Competitor claims | "No competitor offers Y" | May be outdated |293294**Fix options:**2951. Add source with date2962. Add uncertainty marker2973. Route to HITL or external search2984. Generalize ("low cost" instead of "$0.005")299300---301302## The Verification Hierarchy303304```305Claim Extracted --> Does Source of Truth Exist?306 |307 +---------------+---------------+308 YES NO309 | |310 Tier 1: Automated Tier 2: HITL311 Consistency & Verification Two-Round Verification312 | |313 PASS / BLOCK Round A → Round B → APPROVE / REJECT314```315316### Tier 1: Automated Verification317318**A. Internal Consistency**319- Figure vs. Text contradictions320- Abstract vs. Body mismatches321- Table vs. Prose conflicts322- Numerical consistency323324**B. External Verification (Extension Interface)**325- User-provided connectors to structured sources326- Financial systems, Git commits, CRM, etc.327328### Tier 2: Two-Round HITL Verification — MANDATORY329330**Round A: Derived Data Confirmation**331- Claims from sources found in session332- Human confirms interpretation, not truth333334**Round B: True HITL Verification**335- Claims needing actual verification336- No source found, human's own data, extrapolations337338---339340## CGD Output Format341342When producing a Clarity-Gated Document, use this format per [CLARITY_GATE_FORMAT_SPEC.md](../../docs/CLARITY_GATE_FORMAT_SPEC.md) v2.1:343344```yaml345---346clarity-gate-version: 2.1347processed-date: 2026-01-12348processed-by: Claude + Human Review349clarity-status: CLEAR350hitl-status: REVIEWED351hitl-pending-count: 0352points-passed: 1-9353rag-ingestable: true # computed by validator - do not set manually354document-sha256: 7d865e959b2466918c9863afca942d0fb89d7c9ac0c99bafc3749504ded97730355hitl-claims:356 - id: claim-75fb137a357 text: "Revenue projection is $50M"358 value: "$50M"359 source: "Q3 planning doc"360 location: "revenue-projections/1"361 round: B362 confirmed-by: Francesco363 confirmed-date: 2026-01-12364---365366# Document Title367368[Document body with epistemic markers applied]369370Claims like "Revenue will be $50M" become "Revenue is **projected** to be $50M *(unverified projection)*"371372---373374## HITL Verification Record375376### Round A: Derived Data Confirmation377- Claim 1 (source) ✓378- Claim 2 (source) ✓379380### Round B: True HITL Verification381| # | Claim | Status | Verified By | Date |382|---|-------|--------|-------------|------|383| 1 | [claim] | ✓ Confirmed | [name] | [date] |384385<!-- CLARITY_GATE_END -->386Clarity Gate: CLEAR | REVIEWED387```388389**Required CGD Elements (per spec):**390- YAML frontmatter with all required fields:391 - `clarity-gate-version` — Tool version (no "v" prefix)392 - `processed-date` — YYYY-MM-DD format393 - `processed-by` — Processor name394 - `clarity-status` — CLEAR or UNCLEAR395 - `hitl-status` — PENDING, REVIEWED, or REVIEWED_WITH_EXCEPTIONS396 - `hitl-pending-count` — Integer ≥ 0397 - `points-passed` — e.g., `1-9` or `1-4,7,9`398 - `hitl-claims` — List of verified claims (may be empty `[]`)399- End marker (HTML comment + status line):400 ```401 <!-- CLARITY_GATE_END -->402 Clarity Gate: <clarity-status> | <hitl-status>403 ```404- HITL verification record (if status is REVIEWED)405406**Optional/Computed Fields:**407- `rag-ingestable` — **Computed by validators**, not manually set. Shows `true` only when `CLEAR | REVIEWED` with no exclusion blocks.408- `document-sha256` — Required. 64-char lowercase hex hash for integrity verification. See spec §2 for computation rules.409- `exclusions-coverage` — Optional. Fraction of body inside exclusion blocks (0.0–1.0).410411**Escape Mechanism:** To write about markers like `*(estimated)*` without triggering parsing, wrap in backticks: `` `*(estimated)*` ``412413### Claim Completion Status (v2.1)414415Claim verification status is determined by field **presence**, not an explicit status field:416417| State | `confirmed-by` | `confirmed-date` | Meaning |418|-------|----------------|------------------|----------|419| **PENDING** | absent | absent | Awaiting human verification |420| **VERIFIED** | present | present | Human has confirmed |421| *(invalid)* | present | absent | W-HC01: partial fields |422| *(invalid)* | absent | present | W-HC01: partial fields |423424**Why no explicit status field?** Field presence is self-enforcing—you can't accidentally set status without providing who/when.425426### Source Field Semantics (v2.1)427428The `source` field meaning changes based on claim state:429430| State | `source` Contains | Example |431|-------|-------------------|----------|432| **PENDING** | Where to verify (actionable) | `"Check Q3 planning doc"` |433| **VERIFIED** | What was found (evidence) | `"Q3 planning doc, page 12"` |434435**Vague source detection (W-HC02):** Sources like `"industry reports"`, `"research"`, `"TBD"` trigger warnings.436437### Claim ID Format (v2.1)438439**General pattern:** `claim-[a-z0-9._-]{1,64}` (alphanumeric, dots, underscores, hyphens)440441| Approach | Pattern | Example | Use Case |442|----------|---------|---------|----------|443| **Hash-based** (preferred) | `claim-[a-f0-9]{8,}` | `claim-75fb137a` | Deterministic, collision-resistant |444| **Sequential** | `claim-[0-9]+` | `claim-1`, `claim-2` | Simple documents |445| **Semantic** | `claim-[a-z0-9-]+` | `claim-revenue-q3` | Human-friendly |446447**Collision probability:** At 1,000 claims with 8-char hex IDs: ~0.012%. For >1,000 claims, use 12+ hex characters.448449**Recommendation:** Use hash-based IDs generated by `scripts/claim_id.py` for consistency and collision resistance.450451---452453## Exclusion Blocks454455When content cannot be resolved (no SME available, legacy prose, etc.), mark it as excluded rather than leaving it ambiguous:456457```markdown458<!-- CG-EXCLUSION:BEGIN id=auth-legacy-1 -->459Legacy authentication details that require SME review...460<!-- CG-EXCLUSION:END id=auth-legacy-1 -->461```462463**Rules:**464- IDs must match: `[A-Za-z0-9][A-Za-z0-9._-]{0,63}`465- No nesting or overlapping blocks466- Each ID used only once467- Requires `hitl-status: REVIEWED_WITH_EXCEPTIONS`468- Must document `exceptions-reason` and `exceptions-ids` in frontmatter469470**Important:** Documents with exclusion blocks are **not RAG-ingestable**. They're rejected entirely (no partial ingestion).471472See [CLARITY_GATE_FORMAT_SPEC.md §4](../../docs/CLARITY_GATE_FORMAT_SPEC.md) for complete rules.473474---475476## SOT Validation477478When validating a Source of Truth file, the skill checks both **format compliance** (per [CLARITY_GATE_FORMAT_SPEC.md](../../docs/CLARITY_GATE_FORMAT_SPEC.md)) and **content quality** (the 9 points).479480### Format Compliance (Structural Rules)481482SOT documents are CGDs with a `tier:` block. They require a `## Verified Claims` section with a valid table.483484| Code | Check | Severity |485|------|-------|----------|486| E-TB01 | No `## Verified Claims` section | ERROR |487| E-TB02 | Table has no data rows | ERROR |488| E-TB03 | Required columns missing (Claim, Value, Source, Verified) | ERROR |489| E-TB04 | Column order wrong (Claim not first or Verified not last) | ERROR |490| E-TB05 | Empty cell in required column | ERROR |491| E-TB06 | Invalid date format in Verified column | ERROR |492| E-TB07 | Verified date in future (beyond 24h grace) | ERROR |493494### Content Quality (9 Points)495496The 9 Verification Points apply to SOT content:497498| Point | SOT Application |499|-------|-----------------|500| 1-4 | Check claims in `## Verified Claims` are actually verified |501| 5 | Check for conflicting values across tables |502| 6 | Check claims don't imply unsupported causation |503| 7 | Check table doesn't state futures as present |504| 8 | Check dates are chronologically consistent |505| 9 | Flag specific numbers for external check |506507### SOT-Specific Requirements508509- **Tier block required:** SOT is a CGD with `tier:` block containing `level`, `owner`, `version`, `promoted-date`, `promoted-by`510- **Structured claims table:** `## Verified Claims` section with columns: Claim, Value, Source, Verified511- **Table outside exclusions:** The verified claims table must NOT be inside an exclusion block512- **Staleness markers:** Use `[STABLE]`, `[CHECK]`, `[VOLATILE]`, `[SNAPSHOT]` in content513 - `[STABLE]` — Safe to cite without rechecking514 - `[CHECK]` — Verify before citing515 - `[VOLATILE]` — Changes frequently; always verify516 - `[SNAPSHOT]` — Point-in-time data; include date when citing517518---519520## Output Format521522After running Clarity Gate, report:523524```525## Clarity Gate Results526527**Document:** [filename]528**Issues Found:** [number]529530### Critical (will cause hallucination)531- [issue + location + fix]532533### Warning (could cause equivocation)534- [issue + location + fix]535536### Temporal (date/time issues)537- [issue + location + fix]538539### Externally Verifiable Claims540| # | Claim | Type | Suggested Verification |541|---|-------|------|------------------------|542| 1 | [claim] | Pricing | [where to verify] |543544---545546## Round A: Derived Data Confirmation547548- [claim] ([source])549550Reply "confirmed" or flag any I misread.551552---553554## Round B: HITL Verification Required555556| # | Claim | Why HITL Needed | Human Confirms |557|---|-------|-----------------|----------------|558| 1 | [claim] | [reason] | [ ] True / [ ] False |559560---561562**Would you like me to produce an annotated CGD version?**563564---565566**Verdict:** PENDING CONFIRMATION567```568569---570571## Severity Levels572573| Level | Definition | Action |574|-------|------------|--------|575| **CRITICAL** | LLM will likely treat hypothesis as fact | Must fix before use |576| **WARNING** | LLM might misinterpret | Should fix |577| **TEMPORAL** | Date/time inconsistency detected | Verify and update |578| **VERIFIABLE** | Specific claim that could be fact-checked | Route to HITL or external search |579| **ROUND A** | Derived from witnessed source | Quick confirmation |580| **ROUND B** | Requires true verification | Cannot pass without confirmation |581| **PASS** | Clearly marked, no ambiguity, verified | No action needed |582583---584585## Quick Scan Checklist586587| Pattern | Action |588|---------|--------|589| Specific percentages (89%, 73%) | Add source or mark as estimate |590| Comparison tables | Add "PROJECTED" header |591| "Achieves", "delivers", "provides" | Use "designed to", "intended to" if not validated |592| Checkmarks | Verify these are confirmed |593| "100%" anything | Almost always needs qualification |594| "Last Updated: [date]" | Check against current date |595| Version numbers with dates | Verify chronological order |596| "$X.XX" or "~$X" (pricing) | Flag for external verification |597| "averages", "typically" | Flag for source/citation |598| Competitor capability claims | Flag for external verification |599600---601602## What This Skill Does NOT Do603604- Does not classify document types (use Stream Coding for that)605- Does not restructure documents606- Does not add deep links or references607- Does not evaluate writing quality608- **Does not check factual accuracy autonomously** (requires HITL)609610---611612## Related Projects613614| Project | Purpose | URL |615|---------|---------|-----|616| Source of Truth Creator | Create epistemically calibrated docs | github.com/frmoretto/source-of-truth-creator |617| Stream Coding | Documentation-first methodology | github.com/frmoretto/stream-coding |618| ArXiParse | Scientific paper verification | arxiparse.org |619620---621622## Changelog623624### v2.1.0 (2026-01-27)625- **ADDED:** Claim Completion Status semantics (PENDING/VERIFIED by field presence)626- **ADDED:** Source Field Semantics (actionable vs. what-was-found)627- **ADDED:** Claim ID Format guidance with collision analysis628- **ADDED:** Body Structure Requirements (HITL Verification Record mandatory when claims exist)629- **ADDED:** New validation codes: E-ST10, W-ST11, W-HC01, W-HC02, E-SC06 (FORMAT_SPEC §1.2-1.3)630- **ADDED:** Bundled scripts: `claim_id.py`, `document_hash.py`631- **UPDATED:** References to FORMAT_SPEC v2.1632- **UPDATED:** CGD output example to version 2.1633634### v2.0.0 (2026-01-13)635- **ADDED:** agentskills.io compliant YAML frontmatter636- **ADDED:** Clarity Gate Format Specification v2.0 compliance (unified CGD/SOT)637- **ADDED:** SOT validation support with E-TB* error codes638- **ADDED:** Validation rules mapping (9 points → rule codes)639- **ADDED:** CGD output format template with `<!-- CLARITY_GATE_END -->` markers640- **ADDED:** Quine Protection note (§2.3 fence-aware marker detection)641- **ADDED:** Redacted Export feature (§8.11)642- **UPDATED:** `hitl-claims` format to v2.0 schema (id, text, value, source, location, round)643- **UPDATED:** End marker format to HTML comment style644- **UPDATED:** Unified format spec v2.0 (single `.cgd.md` extension)645- **RESTRUCTURED:** For multi-platform skill discovery646647### v1.6 (2025-12-31)648- Added Two-Round HITL verification system649- Round A: Derived Data Confirmation650- Round B: True HITL Verification651652### v1.5 (2025-12-28)653- Added Point 8: Temporal Coherence654- Added Point 9: Externally Verifiable Claims655656### v1.4 (2025-12-23)657- Added CGD annotation output mode658659### v1.3 (2025-12-21)660- Restructured points into Epistemic (1-4) and Data Quality (5-7)661662### v1.2 (2025-12-21)663- Added Source of Truth request step664665### v1.1 (2025-12-21)666- Added HITL Fact Verification (mandatory)667668### v1.0 (2025-11)669- Initial release with 6-point verification670671---672673**Version:** 2.1.2674**Spec Version:** 2.1675**Author:** Francesco Marinoni Moretto676**License:** CC-BY-4.0677
Full transparency — inspect the skill content before installing.