Creates an auditable JSON evidence map to document supporting, contradicting, and missing information for technical decisions and research synthesis.
- GitHub stars
- 41,038
- Files
- 5
- Last commit
- Nov 11, 2026
- License
- MIT
- Allowed tools
- —
What does the build-evidence-map skill do?
build-evidence-map creates an auditable JSON evidence map to document supporting, contradicting, and missing information for technical decisions and research synthesis.
Summary generated from the skill's SKILL.md.
About the build-evidence-map skill
Documenting the complex reasoning behind technical decisions or research synthesis is what this skill enables. It allows developers and researchers to move beyond simple prose by creating an auditable JSON evidence map that captures supporting, contradicting, and missing information. Instead of collapsing disagreements into a summary, the tool preserves the relationships between a central position, intermediate claims, specific evidence, and unknown facts.
An agent should load this skill when a user presents a contested question or a consequential decision that requires structural transparency. The process produces a .doubt.json file containing a directed graph of reasoning. Users can validate these files using a built-in Node.js script and render them into HTML using the doubt-ai package. The workflow relies on precise source locators, such as page numbers or timestamps, to ensure every claim is tied to a specific, bounded region of a primary source.
What an agent can do with it
- 1Documenting contested technical choicesCreate a portable decision artifact that shows what supports a position and what pushes against it.
- 2Verifying source integrityEnsure that recorded excerpts match their original HTTP or local file sources.
- 3Validating reasoning graph integrityRun a deterministic validation to check for duplicate edges, directed cycles, or schema errors.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the build-evidence-map skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the build-evidence-map skill in Claude Code
~/.claude/skills/build-evidence-map/SKILL.md
$ npx degit github/awesome-copilot/skills/build-evidence-map ~/.claude/skills/build-evidence-mapInstall the build-evidence-map skill in Claude Code (project)
.claude/skills/build-evidence-map/SKILL.md
$ npx degit github/awesome-copilot/skills/build-evidence-map .claude/skills/build-evidence-mapInstall the build-evidence-map skill in Codex
~/.agents/skills/build-evidence-map/SKILL.md
$ npx degit github/awesome-copilot/skills/build-evidence-map ~/.agents/skills/build-evidence-mapInstall the build-evidence-map skill in Gemini CLI
~/.gemini/skills/build-evidence-map/SKILL.md
$ npx degit github/awesome-copilot/skills/build-evidence-map ~/.gemini/skills/build-evidence-mapInstall the build-evidence-map skill in Claude.ai
npx degit github/awesome-copilot/skills/build-evidence-map build-evidence-map && zip -r build-evidence-map.zip build-evidence-map # claude.ai → Customize → Skills → + → Create skill → Upload a skill → build-evidence-map.zip
Automated checks
Ran Nov 15, 2026Full report →Passed our automated checks. That is not a security audit: read the scripts before you let an agent run them. How checks work
- Source repository linked and reachablegithub/awesome-copilot/skills/build-evidence-map is public and reachablegithub.com/github/awesome-copilot/tree/HEAD/skills/build-evi ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit 2026-11-11github.com/github/awesome-copilot/commits ↗Pass
- No download-and-run or credential theft in scripts2 scripts read; no download-and-run, remote eval, base64 execution or credential uploadPass
- No hidden instructions in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/github/awesome-copilot/blob/HEAD/skills/build-evi ↗Pass
- Pre-approved tools are scopedNo pre-approved tools; the agent asks before using onegithub.com/github/awesome-copilot/blob/HEAD/skills/build-evi ↗Pass
- SKILL.md follows the Agent Skills formatValid name and description; says when to use it; 108 linesgithub.com/github/awesome-copilot/blob/HEAD/skills/build-evi ↗Pass
SKILL.md
View on GitHubBuild Evidence Map
Turn one contested question into a portable decision artifact that shows what supports the current position, what pushes against it, and what remains unknown. Do not use a graph to decorate an answer that has not been sourced.
For a simple factual claim or a general fact-checking request, use a verification
workflow such as doublecheck instead. Use this skill when the relationships
between evidence, intermediate claims, trade-offs, and missing facts matter.
Workflow
-
Frame one decision. Write one falsifiable question and one provisional position. Narrow the question until a reader can identify what action or belief the map is testing.
-
Collect bounded source regions. Prefer direct observations and primary sources. Record the URL or absolute local path, publisher, publication date, retrieval date, section/page/line/timestamp locator, and a short checkable excerpt. Read references/evidence-ladder.md when source quality is disputed.
-
Atomize the reasoning. Create only four node types:
position: the single current verdict;claim: an intermediate proposition;evidence: a faithful statement of one source region;unknown: a specific missing fact that could change the verdict.
-
Type every edge. Use
supports,contradicts,qualifies, ormissing. Add a plain-language note explaining why the source node bears on the target. Topical similarity is not support. Different scope, date, or population is not automatically a contradiction. -
Preserve counterevidence. Do not delete contrary evidence because the provisional verdict survives it. Represent scope differences with
qualifiesedges. -
Express uncertainty structurally. Do not invent confidence percentages. Add an
unknown, narrow the position, or qualify a claim. -
Write UTF-8 JSON with a
.doubt.jsonsuffix. Follow references/map-schema.md. Keep IDs short, stable, and semantic. -
Validate fail-closed. Resolve
scripts/validate.mjsrelative to thisSKILL.md, then run it with Node.js 18 or newer:node <skill-directory>/scripts/validate.mjs decision.doubt.jsonThe bundled validator uses only Node.js built-ins and does not require npm or network access. Fix every finding before reporting success. Only say the map is valid when the command exits
0and printsVALIDfollowed by a 64-character receipt. A file hash, node count, JSON parse, or manual schema review is not a Doubt receipt. If deterministic validation cannot run, report that block instead of inventing success.Render the validated map only when the user has already installed
doubt-ai@0.8.0; do not install or execute a remote package implicitly:doubt map decision.doubt.json --out decision.html -
Verify source snapshots only with explicit network permission. The following command retrieves each recorded HTTP(S) source and fails closed if an excerpt cannot be matched:
doubt verify decision.doubt.json \ --out decision.verified.doubt.jsonNever run this command implicitly. Local file verification does not use the network. Do not write a
verificationobject by hand or hide a mismatch. -
Inspect the deliverable. Confirm that the question, verdict, counterevidence, unknowns, edge notes, and exact source regions remain readable. Treat JSON as the canonical editable artifact; HTML is a shareable view.
Quality gates
A finished map must satisfy all of these:
- exactly one
positionhas incoming reasoning; - every evidence node names one source and participates in an edge;
- every source is used and has dates, a bounded locator, and a substantive excerpt;
- every non-position node has a directed path to the position;
- the reasoning graph has no duplicate edges or directed cycles;
- contrary or qualifying evidence is present when the source set contains it;
- each decision-changing gap is an explicit
unknownnode; - every edge note explains support, contradiction, qualification, or absence;
- the verdict is no broader than the evidence.
Deliver the result
Report:
- the current position in one sentence;
- the strongest counterevidence or qualification;
- the most important unresolved unknown;
- paths to the canonical JSON and any rendered HTML;
- whether deterministic validation and explicit source verification ran.
Never describe a structurally valid map as proven true. Validation establishes traceability and graph integrity; source quality and inference quality still require human review.
Files in this skill
5build-evidence-map skill questions
How do I install the build-evidence-map skill in Claude Code?
Run npx degit github/awesome-copilot/skills/build-evidence-map ~/.claude/skills/build-evidence-map. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the build-evidence-map skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
When should I use this skill instead of a simple fact-checking workflow?
Use this skill when the relationships between evidence, intermediate claims, trade-offs, and missing facts matter, rather than for simple factual claims.
How do I validate that my evidence map is correct?
You can validate the map using the bundled validator script with Node.js 18 or newer by running node <skill-directory>/scripts/validate.mjs decision.doubt.json.
What are the different types of nodes allowed in the reasoning graph?
The map uses four specific node types: position, claim, evidence, and unknown.