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 swan-gtm/gtm-skills --skill ai-visibility-samplinggit clone --depth 1 https://github.com/swan-gtm/gtm-skillsWrote 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/swan-gtm/gtm-skills/ai-visibility-sampling)<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/ai-visibility-sampling"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/ai-visibility-sampling/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/swan-gtm/gtm-skills/ai-visibility-sampling"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/ai-visibility-sampling.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.00087 | $0.00663 |
| Opus 5.5 | $0.00035 | $0.00265 |
| Sonnet 5.5 | $0.00017 | $0.00133 |
| Haiku 4.5 | $0.00009 | $0.00066 |
Grade A, and why
ai-visibility-sampling 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 1mo 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 — 42 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Use when brand presence in AI answers is being scored, compared, or reported over time. Produces a per-question presence verdict with vote counts, backed by the full answer text as evidence.
Sample before scoring
Answer engines are stochastic: the same question, asked twice in the same hour, returns different answers with different names in them. A score built from one ask per question is noise wearing a number. Ask every question at least three times per engine, capture each full answer verbatim, and let a majority vote decide presence. Keep the vote visible in the output — a question won three-of-three is a different fact from two-of-three, and the margin is where next month's movement shows first.
Define what counts as present
Three different events hide inside "the brand showed up": named as a recommendation (the engine offers the brand as an answer to the buyer's question), mentioned in passing (the name appears without endorsement), and cited as a source (the brand's site fed the answer). Decide the tiers before scoring and apply them mechanically. The strictest tier — named as a recommendation — is the one that predicts buyers arriving; report it separately, never blended.
Score questions, not brands
One aggregate score hides everything an operator can act on. Build the readout as a grid: question by engine, vote count in each cell. The aggregate can sit on top, but the grid is the product — it shows which questions are won, which are contested, and which engine disagrees with the rest.
Read movement honestly
Re-measure the same question set on a fixed cadence. A flip from zero-of-three to three-of-three is movement; a wobble at the margin is weather. When the question set has to change because the buyer's language moved, mark a break in the series and restate the baseline. Splicing old and new sets into one line manufactures trends that never happened.
What good looks like
The best operators read variance before they read the score: an unstable answer means the engine is undecided, and undecided questions are the winnable ones — that instability list is the work queue. The mediocre version is a single-shot scan producing one aggregate number, no raw text kept, and a question set that quietly changes between measurements, so nothing can be traced or compared. Good output lets a skeptic pick any cell in the grid and be shown the dated, verbatim answers behind it in one step.
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.
- 1mo ago First seen · 42 lines · 87 tokens per session scan A b35c94aa14f1
ai-visibility-sampling is a skill published in the GitHub repository swan-gtm/gtm-skills (221 stars, last pushed 7d ago), licensed MIT. It adds 87 tokens to every session and 663 once invoked, about $0.0003 per session on Opus 5.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-09-03.
Other skills, from other repositories
ai-visibility-audit
Check whether AI answer engines (ChatGPT, Claude, Perplexity, Google AI) can reach, read and cite a website — and find the sources they cite instead. Use when someone asks why AI never mentions their business, wants a GEO / AEO / AI-SEO / "AI visibility" audit, asks whether ChatGPT or Claude can see their site, wants…
html-ppt-zhangzara-coral
OpenDesign's community-growth campaign across GitHub, Discord, and X: the loops, the content calendar, and the pipeline math. Built as a decision-grade marketing & GTM deck for growth team, community lead.
ads
When the user wants help with paid advertising campaigns on Google Ads, Meta (Facebook/Instagram), LinkedIn, Twitter/X, or other ad platforms. Also use when the user mentions 'PPC,' 'paid media,' 'ROAS,' 'CPA,' 'ad campaign,' 'retargeting,' 'audience targeting,' 'Google Ads,' 'Facebook ads,' 'LinkedIn ads,' 'ad…
co-marketing
When the user wants to find co-marketing partners, plan joint campaigns, or brainstorm partnership opportunities. Use when the user says 'co-marketing,' 'partner marketing,' 'joint campaign,' 'who should we partner with,' 'integration marketing,' 'cross-promotion,' 'collaborate with another company,' 'partnership…
social-media
Produce a content calendar and a week of platform-specific copy from the account positioning, delivered as an Excel workbook plus a Markdown document.
press-media-relations
Use when the user asks to "build a media list for my launch", "write a launch press release", or "pitch press under embargo"; produces a three-tier media and analyst list (Tier 1 exclusive candidates, Tier 2 vertical press, Tier 3 communities and newsletters), an embargo pitch timing skeleton keyed to the…