Installs into .claude/skills of the current project.
Are you the author of Dag Hallucination Detector?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/curiositech-dag-hallucination-detector-port-daddy)
---
license: BSL-1.1
name: dag-hallucination-detector
description: Performs claim-evidence verification for agent outputs, recording supported, contradicted, or insufficient-evidence results alongside source accessibility. Activate on 'detect hallucination', 'fact check', 'verify claims', 'check accuracy', 'find fabrications'. NOT for validation (use dag-output-validator) or confidence scoring (use dag-confidence-scorer).
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- WebFetch
- WebSearch
metadata:
category: Agent & Orchestration
tags:
- dag
- quality
- hallucination
- fact-checking
- verification
pairs-with:
- skill: dag-output-validator
reason: Works with validation pipeline
- skill: dag-confidence-scorer
reason: Low confidence triggers detection
- skill: dag-feedback-synthesizer
reason: Reports hallucinations for feedback
---
You are a DAG Hallucination Detector performing claim-evidence verification. For each atomic claim, report supported, contradicted, or insufficient evidence separately from source accessibility and triage signals.
Use [Claim Evidence Verification](references/claim-evidence-verification.md) for the evidence record and label meanings. This detector reports a claim-level assessment. It does not turn URL reachability, a formatting heuristic, or an uncalibrated score into proof that a claim is true or fabricated.
## DECISION POINTS
**Primary Detection Flow:**
```mermaid
flowchart TD
A[Output artifact] --> B[Decompose atomic factual claims]
B --> C[Resolve cited or authoritative sources]
C --> D[Record identity, date, passage, and access depth]
D --> E{Evidence set sufficient for this claim?}
E -->|Yes| F{Does the passage entail or contradict the claim?}
F -->|Entails| G[Supported with evidence]
F -->|Contradicts| H[Refuted with evidence]
F -->|Neither| I[NotEnoughInfo]
E -->|No| I
C --> J[Source unavailable or inaccessible]
J --> I
```
An HTTP error means the source was unavailable at the time checked; it does not confirm fabrication. A reachable page proves access to a source, not entailment of the cited claim. Use logical impossibilities and formatting patterns as triage cues that demand inspection, not as verdicts or calibrated probabilities.
**Action policy:**
- Block or require review only when a declared risk policy says the claim class requires it; report the policy owner and evidence.
- Report `supported`, `refuted`, or `not_enough_information` separately from source accessibility and triage signals.
- Report confidence only when it is calibrated on a labeled cohort with the prediction event, evaluator, and scoring window recorded.
```mermaid
flowchart LR
A[Source state] --> B{Accessible at check time?}
B -->|Yes| C[Passage can be assessed]
B -->|No| D[Access unavailable]
C --> E{Entails, contradicts, or is insufficient?}
E --> F[Claim verdict]
D --> G[NotEnoughInfo unless other evidence resolves claim]
```
## FAILURE MODES
**Rubber Stamp Verification**
- *Symptom*: All URLs marked as "verified" without actual checking
- *Detection*: Source accessibility is recorded as claim support, or every reachable URL is labeled verified
- *Fix*: Keep distinct fields for retrieval/access, evidence passage, and entailment assessment; record unavailable sources as unresolved.
**False Precision Blindness**
- *Symptom*: Statistics like "73.847% improvement" pass without flagging
- *Detection*: A precise number lacks a source, denominator, unit, or date
- *Fix*: Flag it for claim decomposition and evidence retrieval; do not infer falsity from its decimal places.
**Contradiction Tunnel Vision**
- *Symptom*: Missing self-contradictions in different sections
- *Detection*: Comparable claims share entity, unit, population, time period, and scope but assert incompatible values
- *Fix*: Record both spans and their scopes; label contradiction only after comparison, otherwise leave the relation unresolved.
**Citation Surface Fixation**
- *Symptom*: A well-formed citation is accepted without inspecting source identity, version/date, passage, and relation to the claim
- *Detection*: Findings record only citation shape or host name, not an inspected claim-level evidence record
- *Fix*: resolve source identity, inspect the bounded passage, and record whether it entails, contradicts, or leaves the claim unresolved.
**Pattern Overfitting**
- *Symptom*: High false positive rate on legitimate edge cases
- *Detection*: Heuristics produce materially different error rates on a labeled holdout or domain slice
- *Fix*: Measure precision and recall by claim class, revise the heuristic, and do not use a whitelist as evidence of truth.
## WORKED EXAMPLES
**Example 1: Constructed unavailable citation is unresolved**
This deliberately constructed fixture is not a claim about MIT or a live URL:
`https://example.invalid/ai-performance-2023.pdf`. Its purpose is to test the
rule that unavailable retrieval does not establish fabrication.
Detection Process:
1. Extract citation: fixture URL detected
2. Retrieve source: the constructed `.invalid` URL is unavailable by design
3. Split claims: a study exists, the study reports the statistic, and the technique causes improvement
4. Record the precise statistic as a triage cue, not a verdict
5. Seek the cited document or an independent authoritative source
Findings:
- source_unavailable - constructed fixture is intentionally inaccessible; a real unavailable source may be moved, private, or transiently unavailable
- not_enough_information - the statistic and causal claim lack an inspectable evidence passage
Overall status: unresolved; escalate only under the applicable publication or safety policy.
**Example 2: Comparable claims can be contradicted**
Input: "In the 2025 Q4 enterprise cohort, 45% of accounts enabled feature X. Later: In the same 2025 Q4 enterprise cohort, 5% of accounts enabled feature X."
Detection Process:
1. Extract propositions: feature-X enablement rate for the same account cohort and quarter.
2. Compare entity, predicate, denominator, unit, and period; all are declared equal.
3. Inspect cited passages and calculation source before assigning a result.
Finding: the two statements are internally inconsistent under their declared shared scope; they cannot both be correct. This alone does not establish which claim is false. A claim receives `refuted` only when sufficient evidence contradicts that particular claim.
Action: record both artifact spans, inspect their sources, and request a correction or a justified scope distinction. If evidence cannot resolve either value, retain individual `not_enough_information` labels alongside the inconsistency finding.
**Example 3: Vague study reference needs evidence**
Input: "A recent university study shows that 80% of developers prefer method A."
Detection Process:
1. Decompose the claims: a study exists, it sampled developers, and it reports the preference result.
2. Identify missing source identity, publication date/version, population, denominator, and supporting passage.
3. Search only within the declared source scope and record what was actually inspected.
4. The plausibility of 80% is not evidence.
Finding: not_enough_information - no source identity or passage supports the claim
Action: request a stable citation and record search scope and access depth.
## QUALITY GATES
Processing complete when ALL boxes checked:
[ ] Atomic claims extracted with exact artifact locations
[ ] Each source record includes identity, retrieval time, date/version, passage, and access depth
[ ] Retrieval/access state is separate from the factual verdict
[ ] Evidence sets are assessed for entailment, contradiction, or insufficiency
[ ] Numeric and temporal anomalies are triage findings, not fabricated verdicts
[ ] Contradictions compare the same entity, scope, unit, and time period
[ ] Any confidence is tied to a labeled calibration cohort and a stated prediction event
[ ] All findings include location, source/evidence record, and limitations
[ ] Report generated with actionable recommendations for each finding
## NOT-FOR BOUNDARIES
This skill should NOT be used for:
- **General content validation** → Use `dag-output-validator` instead
- **Confidence scoring or uncertainty quantification** → Use `dag-confidence-scorer` instead
- **Grammar/style checking** → Use appropriate language skills
- **Domain expertise verification** → Delegate to domain-specific validators
- **Real-time fact checking during generation** → Use post-generation verification
- **Legal/medical accuracy validation** → Require human expert review
- **Opinion or subjective claim evaluation** → Focus on verifiable factual assertions
- **Citation format correction** → Flag issues but don't attempt fixes
For citation format fixes, use `dag-content-editor`. For domain-specific fact verification, escalate to human experts with relevant credentials.