Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote 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-record)<a href="https://agentmods.dev/skills/npstorey/civic-ai-tools/publish-record"><img src="https://agentmods.dev/badge/skills/npstorey/civic-ai-tools/publish-record/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-record"><img src="https://agentmods.dev/badge/skills/npstorey/civic-ai-tools/publish-record.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.06287 |
| Opus 5 | $0.00048 | $0.03143 |
| Sonnet 5 | $0.00019 | $0.01257 |
| Haiku 4.5 | $0.00010 | $0.00629 |
Grade A, and why
publish-record 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 11d 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.
How it starts
The opening of the file, as written. The whole thing — 234 lines — stays where its author put it; the contents beside it link to each section on GitHub.
publish-record
This skill turns the current Claude Code conversation's civic-data analysis into a signed record package on civicaitools.org (the default target — see "Publishing to a different instance" below). It wraps POST /api/records; the endpoint contract lives in civic-ai-tools-website/docs/api/records-publish.md.
Renamed from publish-evidence by the 2026-08-19 vocabulary settlement (specification Appendix J: "evidence" is retired as the artifact/infrastructure name and retained only for the epistemic Question/Evidence/Claim role). The old invocation still works — .claude/skills/publish-evidence/ remains as a permanent alias that routes here. There is one publish.py, in this directory; the alias never carries a copy.
When to invoke
The user has just finished an analysis in this session using the Socrata MCP server (mcp__socrata__* tools) and/or the Data Commons MCP server (mcp__data-commons__* tools). They now want to publish the analysis as a verifiable record. Typical phrasings:
- "publish this as a record"
- "publish this as evidence" (the prior-era phrasing; still routes here)
- "publish to civicaitools.org"
- "sign this analysis"
- "make this a verifiable package"
Do not invoke this skill for analyses the user has not asked to publish, or for non-civic conversations (code questions, chit-chat, etc.). Do not invoke it to re-publish a package that was already published in this session; just quote the URL from the prior turn.
Capture modes
The skill supports two capture modes. Pick the one that matches what the user said, set captureMode in the JSON payload, and proceed.
| Mode | When to choose it | What gets captured |
|---|---|---|
single_final_turn (default) |
"publish this as a record", "publish this as evidence", "publish this analysis", "sign this answer" — the user points at a single question → answer cycle. | The last user prompt, the final assistant markdown response, and every civic MCP tool call made to answer it. Matches the website chat-flow shape. |
full_conversation |
"publish this whole session", "publish the full conversation", "include every turn", "publish everything we did" — the user wants the multi-turn record. | Every captured turn since the civic analysis started, rendered as a markdown transcript in output, plus every civic MCP tool call across those turns. Emits a structured turn list in extensions["org.civicaitools.multi-turn"]. |
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 11d ago First seen · 234 lines · 97 tokens per session scan A ce11294ce564
publish-record is a skill published in the GitHub repository npstorey/civic-ai-tools (41 stars, last pushed 6d ago), licensed MIT. It adds 97 tokens to every session and 6,287 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.