Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add AtlasOmnia/donna-starter --skill publication-link-auditgit clone --depth 1 https://github.com/AtlasOmnia/donna-starterWrote 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/atlasomnia/donna-starter/publication-link-audit)<a href="https://agentmods.dev/skills/atlasomnia/donna-starter/publication-link-audit"><img src="https://agentmods.dev/badge/skills/atlasomnia/donna-starter/publication-link-audit/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/atlasomnia/donna-starter/publication-link-audit"><img src="https://agentmods.dev/badge/skills/atlasomnia/donna-starter/publication-link-audit.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.00059 | $0.02061 |
| Opus 5 | $0.00030 | $0.01030 |
| Sonnet 5 | $0.00012 | $0.00412 |
| Haiku 4.5 | $0.00006 | $0.00206 |
Grade A, and why
publication-link-audit scanned grade A with 1 finding 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 9d 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
**Complication:** `requests.head()` can return 404 for a valid GitHub URL where `curl -sL` (follow-redirect GET) returns 200. Different HTTP methods produce different status codes. Copies of this mod
1 near-identical copy found in the catalogue:
- publication-link-audit — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Publication Link Audit
Use this when the user has a Reddit post, megathread, guide, wiki page, or any README that is about to be published — and needs every outbound URL verified before going live. Also use when a published post is reported to have broken links.
This skill exists because HTTP 200 is necessary but not sufficient: a link can return 200 and still resolve to the wrong destination when the URL's opaque identifier was transcribed incorrectly.
When to use
Use when:
- A megathread or Reddit post is being finalized for publication.
- A guide/README/wiki references external model cards, GitHub repos, or other Reddit threads.
- the user reports "some links are wrong" after publication.
- A document contains more than ~5 outbound URLs (below that, spot-checking is usually enough).
Do not use for:
- Simple URL shortening or redirect chasing.
- Verifying a single cited source in an article (use
source-verification). - Pulling benchmark data from HF model cards (use
hf-model-card-research).
The three failure modes
Mode 1: Reddit post-ID transcription errors
Reddit post IDs are 7-character opaque alphanumeric strings. A single transposed character produces a different thread entirely — not a 404.
Symptom: The link labeled "Model Civil War" opens a post about an unrelated topic. HTTP status is 200; the label lies.
Detection pattern: Extract the page's <title> tag for every Reddit URL. Compare the title against the surrounding link text. Any mismatch means the ID is wrong.
Example from production:
- Link text said "Model Civil War — local vs cloud vs hybrid"
- URL was
1upvlm3(a thread titled "Accepted to this hermes event") - Correct URL should have been
1uqd00s
Fix: Search the target subreddit with the intended label as query; extract the correct post ID from search results.
Mode 2: GitHub dot-vs-no-dot filename drift
Repository filenames can differ by character class in ways invisible in review: qwen3.6-combined.md vs qwen36-combined.md, or main vs master.
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.
- 9d ago First seen · 148 lines · 59 tokens per session scan A 31db0f824305
publication-link-audit is a skill published in the GitHub repository AtlasOmnia/donna-starter (111 stars, last pushed 13d ago), licensed MIT. It adds 59 tokens to every session and 2,061 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
npm-downloads-to-leads
Takes a list of npm package names (yours or competitors'), fetches 12 weeks of daily download data from the npm API, computes a breakout velocity score per package to identify hockey-stick growth, fetches maintainer profiles from the npm registry and GitHub API, and outputs a ranked lead brief for each breakout…
gh-issue-to-demand-signal
Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's…
domain-expired-opportunity-finder
Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.
company-radar
Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.
linkedin-job-post-to-buyer-pain-map
Takes pasted LinkedIn job posts or hiring descriptions and converts them into a structured buyer pain map with inferred pains, capability gaps, buy-vs-build signal, account priority scores, and suggested outreach angles. Use when asked to analyze hiring posts, decode job descriptions for buyer intent, build a pain map…
producthunt-launch-kit
Use when the user asks to prepare a Product Hunt launch or generate Product Hunt listing assets. Generates tagline variants under 60 chars, a 500-char description, a maker comment, launch-day tweet thread, LinkedIn post, and a 4-email launch sequence.