Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/npstorey/civic-ai-toolsnpx agentmods add skills/npstorey/civic-ai-tools/publish-evidenceWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/npstorey/civic-ai-tools/publish-evidence)<a href="https://agentmods.dev/skills/npstorey/civic-ai-tools/publish-evidence"><img src="https://agentmods.dev/badge/skills/npstorey/civic-ai-tools/publish-evidence/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/npstorey/civic-ai-tools/publish-evidence"><img src="https://agentmods.dev/badge/skills/npstorey/civic-ai-tools/publish-evidence.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00097 | $0.00525 |
| Opus 5 | $0.00048 | $0.00262 |
| Sonnet 5 | $0.00019 | $0.00105 |
| Haiku 4.5 | $0.00010 | $0.00052 |
Grade A, and why
publish-evidence scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
publish-evidence (deprecated alias of publish-record)
This skill was renamed to publish-record by the 2026-08-19 vocabulary settlement — see the specification's Appendix J, migration class alias-and-deprecate: "evidence" is retired as the name of the artifact and infrastructure surface (it overclaims — the package records how an answer was produced, not that the answer is correct) and retained only for the epistemic Question / Evidence / Claim role.
This alias is permanent, not a deprecation window. People and notes in the wild say "publish-evidence"; that invocation keeps working. It will not be removed before the skill's next major version, and only then if nothing depends on it.
What to do when this skill is invoked
Follow ../publish-record/SKILL.md — the full, authoritative instructions — exactly as written. Read that file now and work from it. There is no second copy of the guidance here, and no second copy of the script: publish.py and test_publish.py live only in .claude/skills/publish-record/, so the alias and the canonical name always run byte-identical code.
The one thing to carry across: every command in that file invokes the script at its real location, for example
python3 .claude/skills/publish-record/publish.py --payload /tmp/publish-record-<timestamp>.json --dry-run
Those paths are correct as written whether the user typed publish-record or publish-evidence. Do not rewrite them to point inside this directory — nothing executable is here.
Prefer the new name when you speak
When telling the user what you are doing, say publish-record. Mention the rename once if they used the old name, then continue; do not stop to ask about it, and do not treat the old name as an error.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 28 lines · 97 tokens per session scan A 4865ad5864e1
publish-evidence is a skill published in the GitHub repository npstorey/civic-ai-tools (41 stars, last pushed today), licensed MIT. It adds 97 tokens to every session and 525 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
ckan-mcp
MCP server for exploring CKAN-based open data portals (dati.gov.it, data.gov, data.gov.uk, open.canada.ca, demo.ckan.org, and any other CKAN instance). Also covers data.europa.eu via its REST API (not CKAN). Use this skill whenever the user: asks about open data, public datasets, or data portals; mentions a country…
indonesia-civic-stack
Query Indonesian government data portals via Python SDK, MCP tools, or REST API. 11 modules covering BPOM (food/drug), BPJPH (halal), AHU (companies), OJK (finance), OSS (business ID), LPSE (procurement), KPU (elections), LHKPN (wealth declarations), BPS (statistics), BMKG (weather/earthquakes), SIMBG (building…
civiq-design
Use this skill to generate well-branded interfaces and assets for CIV.IQ (civic intelligence platform — representatives, voting, campaign finance), either for production or throwaway prototypes/mocks/etc. Contains essential design guidelines, colors, type, fonts, assets, and UI kit components for prototyping. The…
subagent-driven-development
Execute plans via delegatetask subagents (2-stage review).
duckduckgo-search
Free keyless web, news, and image search via ddgs.
mcporter
List, auth, and call MCP servers/tools from the terminal.