Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Evidence

ASecurity

Check a design doc for unsubstantiated claims, missing citations, and internal incoherence — does every factual statement have a source the reader can check, and does the doc's own logic hold together? One check in the design-doc-review pipeline — run standalone or via design-doc-review:review.

8 stars
0 votes
0 copies
0 views
Added 9/20/2026
devopsgorailsdocumentation

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add tstapler/dotfiles --skill evidence --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Evidence?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Evidence
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tstapler-evidence/badge)](https://www.skillsdirectory.com/skills/tstapler-evidence)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
description: Check a design doc for unsubstantiated claims, missing citations, and internal incoherence — does every factual statement have a source the reader can check, and does the doc's own logic hold together? One check in the design-doc-review pipeline — run standalone or via design-doc-review:review.
---

# design-doc-review:evidence

Claim-verification check only — this skill does not evaluate prose quality (see `design-doc-review:readability`) or topic coverage (see `design-doc-review:outline`). It answers: **is every factual claim in this doc backed by a source the reader can check, and does the doc's reasoning actually connect claim to conclusion?**

**Target**: {{args}} — a file path, or a doc already in context.

## Framework

This check mechanizes CLAUDE.md's own "Evidence and Claims" section — that section is the standard, this skill is the automated pass against it. Don't re-derive different rules; apply the ones already agreed:

- Every factual statement carries a source the reader can check — a PR/issue URL, `repo/path/file.ext:42`, a doc/dashboard URL, or the exact command and its output. Naming a source without a link pushes verification onto the reader — that's a finding, not a pass.
- Rationales ("why") are claims too, and are a common place to invent one — check them with the same rigor as facts.
- "Consistent with" is not "because of" — a causal claim needs the evidence to actually support causation, not mere correlation-in-time.
- Confidence should be labeled: VERIFIED (source opened / command run) vs. INFERRED/UNVERIFIED. A doc that states an inferred claim with the same confidence as a verified one is miscalibrated, not just imprecise.

### What to flag

- **Unsourced factual claim** — a specific, checkable assertion (a number, a behavior, "X does Y") with no link, file:line, or command output backing it. Bare assertions of fact are exactly what a fact-checker's "how do you know this?" test exists to catch — if the author can't point to where this came from, it shouldn't be stated as fact.
- **Source named but not linked** — "per the runbook" or "as Nick's doc says" without a URL. This is explicitly called out in CLAUDE.md: naming a source without a link is the same defect as no source, since it still pushes verification onto the reader.
- **Superlative or absolute without comparative proof** — "the fastest", "the only", "always", "never" stated as fact rather than rhetorical color. These require documentation of the comparison, not just assertion.
- **Confidence mismatch** — a claim phrased as settled fact when the doc's own evidence (or absence of it) only supports "probably" or "consistent with." Conversely, don't flag a claim correctly hedged as INFERRED/UNVERIFIED — that's precision, not a defect (see `design-doc-review:readability`'s hedged-language guardrail; the two checks should agree, not double-flag the same sentence from opposite directions).
- **Non-sequitur / unsupported causal leap** — the stated evidence doesn't actually get you to the stated conclusion (e.g., "latency dropped after the deploy, so the deploy fixed it" with no ruling-out of a concurrent cause). Flag the gap between what was shown and what was claimed.
- **Internal contradiction** — two statements in the same doc that can't both be true (a field described as "read-modify-write" in one section and "set-once" in another; a status marked "Not started" in one place and "in flight" in another). Cite both locations.
- **Stale or dangling citation** — a link, PR number, or file:line reference that plausibly no longer resolves (a PR referenced as "open" that other doc context suggests has since merged/closed, a line-number citation to a file that's been substantially rewritten elsewhere in the same review pass). Flag for re-verification; don't assume broken without checking if a check is feasible in this pass.

### What NOT to flag (proportionality guardrails)

- **Correctly hedged uncertainty** ("may indicate", "not verified", "consistent with X, though Y wasn't ruled out") — this is the doc doing its job, not a gap. Only flag hedging used to *avoid* a claim the author could have made concrete with evidence already in hand.
- **Claims that are definitional or self-evident within the doc's own stated model** — a term the doc itself defines two sections earlier doesn't need a citation every time it's used again.
- **Opinion/recommendation explicitly framed as judgment, not fact** — "we recommend X because it trades off Y for Z" is a reasoned position, not a factual claim requiring a citation, as long as the trade-off's factual inputs (Y, Z) are themselves sourced elsewhere in the doc.

### How to check a claim (verification depth, scaled to stakes)

1. **Does it have a link/path/command at all?** If not, that's the finding — don't chase down whether it's *true*, since it's already failing the "checkable" bar regardless.
2. **If it has one, does the link actually support the claim?** A relevant-looking link is not evidence if it doesn't substantiate the specific sentence attached to it — a citation to a whole file when the claim is about one method's behavior is weak sourcing, not fixed sourcing (though still better than nothing; note it as `notable`, not `blocking`).
3. **Weight by stakes, not count.** One unsupported claim underpinning the doc's actual decision outweighs several unsourced but low-consequence background details. A blocking finding is about a load-bearing claim; a nit is about an incidental one — don't let the count alone drive severity.

## Section-scoped invocation (long docs)

Like `design-doc-review:readability`, this check runs section-local on docs the coordinator has split by H2 for length. Internal-contradiction checking is the one sub-check that needs whole-doc awareness even when invoked per-section — the coordinator should additionally pass a short list of any other section's headline claims (one line each) so a per-section agent can catch a contradiction against a section it wasn't otherwise given. If that list isn't provided, skip the internal-contradiction check for this invocation and say so in the finding set (`"note": "internal-contradiction check skipped — no cross-section claim list provided"`), rather than silently passing.

## Severity

| Severity | Meaning |
|---|---|
| `blocking` | An unsourced or non-sequitur claim underpins the doc's actual decision/ask — a reviewer can't evaluate the ask without it |
| `notable` | Unsourced or weakly-sourced claim that isn't the decision itself, but materially supports a risk/consequence the doc asserts; internal contradiction found |
| `nit` | Missing citation on an incidental/background fact; batch these, don't report individually |

## Output

Write full analysis (the claim, why it fails, and the fix — a specific link/path/command to add, or a specific rewrite to correct scope) to `/tmp/lean-design-doc-review-evidence-<ts>.md`.

Return only this structured summary:

```json
{
  "category": "evidence",
  "status": "pass" | "fail",
  "count": <number of blocking+notable findings>,
  "findings": [
    {"section": "§3.2", "severity": "blocking", "claim": "one-line quote or paraphrase of the claim", "issue": "unsourced" | "source-named-not-linked" | "unsupported-superlative" | "confidence-mismatch" | "non-sequitur" | "internal-contradiction" | "stale-citation", "note": "what's missing and what would fix it"}
  ]
}
```

`status: "pass"` only if there are zero `blocking` findings. `notable`/`nit` findings can coexist with a `pass` status the same way `design-doc-review:readability` allows a non-blocking notable finding alongside an overall pass.

## When invoked standalone (not via the coordinator)

Print the summary as a table, one row per finding, with the claim, the issue type, and the specific fix (exact link/path to add, or exact rewrite). For `unsourced`/`source-named-not-linked` findings where you can locate the actual source in the repo or session context yourself (e.g. the claim clearly refers to a file you can find and cite precisely), propose the citation rather than just flagging the gap — but never invent a source or guess a plausible-looking link; if you can't verify it, say so and ask the author where it came from. Do not edit the file without confirmation.

## Related

- CLAUDE.md's "Evidence and Claims" section — the standard this check mechanizes; consult it directly for edge cases not covered above.
- `design-doc-review:readability`'s "Unquantified risk language" and hedged-language guardrail — adjacent checks; coordinate rather than double-flag the same sentence (readability asks "is this padded/imprecise", this check asks "is this actually sourced/coherent").

Attribution

tstaplertstapler
View sourceMore from tstapler →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Terraform Module Library

Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices. Use when creating infrastructure modules, standardizing cloud provisioning, or implementing reusable IaC components.

393431 votes

sematext-otel

Wire a service's OpenTelemetry output to Sematext Cloud. Walks through region, App-type, instrumentation flow (managed OTLP endpoint vs Sematext Agent), and signal selection (traces/metrics/logs), then produces the exact env-var block and points at a runnable reference example in this repo. Invoke when instrumenting a new app for Sematext.

01 votes

Deployment Patterns

Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications. Use when setting up deployment infrastructure or planning releases.

2459130 votes

Babysit

Watch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.

929660 votes

V7 Roster

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

805540 votes
View all in devops →