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 signal-to-campaigngit 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/signal-to-campaign)<a href="https://agentmods.dev/skills/swan-gtm/gtm-skills/signal-to-campaign"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/signal-to-campaign/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/signal-to-campaign"><img src="https://agentmods.dev/badge/skills/swan-gtm/gtm-skills/signal-to-campaign.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.00091 | $0.00915 |
| Opus 5 | $0.00046 | $0.00458 |
| Sonnet 5 | $0.00018 | $0.00183 |
| Haiku 4.5 | $0.00009 | $0.00092 |
Grade A, and why
signal-to-campaign 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.
How it starts
The opening of the file, as written. The whole thing — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Use this play before enriching contacts or writing campaign copy. It turns an observable market event into a small, defensible campaign package staged for human approval.
Prove the signal carries pain
Translate the offer into the operational problem it solves. Generate several candidate signals, then score each on:
- Specificity: does it point to this problem or merely describe the company?
- Observability: can every account be tied to evidence another operator can inspect?
- Timing: does it explain why action makes sense now?
- Ownership: is there a recognisable buyer who owns the implied problem?
- Offer fit: does the offer resolve the situation without a logical leap?
- Noise: what common cases would create a false positive?
Select one primary signal and one backup. A visible event is not automatically a buying signal. Funding, generic hiring, technology use, and broad growth become useful only when combined with current evidence of the relevant workflow, constraint, or complexity.
Build the evidence layer
Create an account record for every candidate with:
- normalised company identity and domain;
- source and exact evidence excerpt;
- observation date or verified current status;
- the operational implication;
- the likely pain owner;
- a false-positive note;
- a decision: keep, investigate, or remove.
Reject accounts that cannot survive the sentence: “This company belongs because the evidence shows ___, which likely creates ___ for ___.” Do not enrich people yet. Replace weak rows instead of padding the cohort to hit a volume target.
Map buyers after the account passes
For each kept account, identify the role that owns the affected process, the role that feels the consequence, and any likely blocker. Titles are clues, not proof of ownership. Map one to three contacts per account, deduplicate against existing relationships, and record why each person belongs in the motion.
Enrich contact details only after the account and persona gates pass. Preserve strong accounts with missing contact data in a separate research queue rather than weakening the campaign.
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 · 74 lines · 91 tokens per session scan A 635b2f2ec42a
signal-to-campaign is a skill published in the GitHub repository swan-gtm/gtm-skills (150 stars, last pushed 2d ago), licensed MIT. It adds 91 tokens to every session and 915 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
signals-hooks
Comprehensive reactive state hooks for integration with flutterhooks.
signals-dart
Advanced reactive state primitives, collections, mixins, and utilities of signalscore.
signals-flutter
Highly optimized Flutter UI bindings and GPU rendering for reactive signals.
signals-migration-6-to-7
Detailed guidelines, patterns, and rules for migrating codebases from signals.dart version 6.x to version 7.x.
signals-preact-dart
Core reactive programming best practices and primitive definitions for preactsignals in Dart.
signals-lint
Standardized compiler diagnostics, static analysis lints, and automated IDE quick-fixes.