Verify before asserting
Use before stating, relying on, or hardcoding an external fact where being wrong carries real cost — legal, financial, medical, safety, regulatory, security, or production-reliability. Prevents hallucinated figures and fabricated citations. Triggers on asserting a specific figure, threshold, rate, date, dosage, limit, config default, citation, version, or rule from memory.From its SKILL.md
npx -y skills add AidenHiew/verify-before-assertingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.6 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
Verify Before Asserting
Overview
Models state wrong facts with full confidence — a fabricated citation, an out-of-date threshold, a misremembered dosage or limit. In a high-stakes context that is a liability, not a typo. A high-stakes external fact is not "known" until verified against an authoritative source. Memory does not count.
This is a discipline skill. Follow it even when you're confident — confidence is exactly the failure mode. Violating the letter of this rule is violating its spirit: a fact you're "sure of" still needs a source.
This is distinct from verification-before-completion (verify your own work is done) and karpathy-guidelines (surface assumptions before coding). This skill is about external facts you're about to assert.
When this fires (and when it doesn't)
Fires when both are true:
- You're about to assert a specific external fact — a figure, threshold, rate, date, dosage, limit, config default, statutory/section reference, API version, standard clause, or named rule.
- Being wrong carries real cost: legal, financial, medical, safety, regulatory, security, or production-reliability (a vendor limit, config default, or API version baked into shipping code).
Does NOT fire for low-stakes or common knowledge — general explanations, brainstorming, naming, code that's trivially testable. Example: "how does a hash map handle collisions, and suggest a variable name" needs no verification. Don't verify trivia — that's paralysis, not diligence. If genuinely unsure whether stakes are high, a quick check is cheap — verify.
The discipline
- Retrieve an authoritative source. Order of authority (general):
- Primary / official source (the law, the standard, the spec, the label, the vendor doc).
- Issuing/regulating body or official registry.
- Official guidance from that body.
- Secondary commentary is a lead, not authority. Blogs, summaries, forum answers, news, another model — they point you to the source; they never replace reading it.
- Model memory — never sufficient on its own for a high-stakes fact.
- Cite precisely — to the section / clause / page / version, not "the docs say."
- Check status — current, superseded, draft, or proposed? A draft/proposed fact may not be relied on as final.
- Check currency — what date/version does it apply to? Has it changed since?
If you cannot reach an authoritative source (no web/tool access, doc unavailable): do not assert the fact as known. Label it explicitly unverified, say what you'd check, and stop — an unverified high-stakes fact is not an answer. Where a value drifts (vendor limits, rates), prefer reading it from a live authoritative source at runtime over hardcoding a copy.
Stakes gate
digraph verify {
"About to assert a specific external fact" [shape=box];
"Would being wrong cost real harm?" [shape=diamond];
"Authoritative source reachable?" [shape=diamond];
"Current / non-draft?" [shape=diamond];
"State it, with citation" [shape=box];
"Label unverified; do not rely" [shape=box];
"Flag as draft / superseded" [shape=box];
"State normally" [shape=box];
"About to assert a specific external fact" -> "Would being wrong cost real harm?";
"Would being wrong cost real harm?" -> "State normally" [label="no"];
"Would being wrong cost real harm?" -> "Authoritative source reachable?" [label="yes"];
"Authoritative source reachable?" -> "Label unverified; do not rely" [label="no"];
"Authoritative source reachable?" -> "Current / non-draft?" [label="yes"];
"Current / non-draft?" -> "State it, with citation" [label="yes"];
"Current / non-draft?" -> "Flag as draft / superseded" [label="no / draft"];
}
Rationalizations — STOP
| Excuse | Reality |
|---|---|
| "It's common knowledge" | Common knowledge is often out-of-date knowledge. |
| "I'm pretty sure it's X" | Sure-from-memory is the exact failure mode. Confidence ≠ correctness. |
| "I'll add the citation later" | A fact without provenance is a guess with a decimal point. |
| "A reputable blog/firm/model says so" | Secondary sources are leads. Open the primary one. |
| "I remember this section/version number" | Citing a locator you haven't opened is fabrication. |
| "It was right last year/version" | Thresholds, limits, and labels change. Re-check currency. |
| "No source handy, but it's probably fine" | "Probably fine" is unverified. Label it, don't assert it. |
All of these mean: open the authoritative source and cite it, or label the claim unverified.
Output
State a verified high-stakes fact as: value/claim | authoritative source (precise locator) | status | applies-as-of | date checked.
Worked example:
Lambda max timeout = 900 s | AWS Lambda Developer Guide, "Lambda quotas" | current | as of 2026-06 | checked 2026-06-01
Reference instance
verify-au-tax-law is the worked, domain-specific instance of this skill: it fills the authority hierarchy with Australian tax sources (legislation.gov.au, the Federal Register, ATO guidance) and the status gate with registered-vs-draft. Build new domain instances the same way — inherit this discipline, supply the domain's real authorities.
What ships with it: 2 files
2.0 KB alongside SKILL.md