Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add katekruger/campaign-preflight/plugin install campaign-preflightWrote 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/katekruger/campaign-preflight/preflight-rules)<a href="https://agentmods.dev/skills/katekruger/campaign-preflight/preflight-rules"><img src="https://agentmods.dev/badge/skills/katekruger/campaign-preflight/preflight-rules/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/katekruger/campaign-preflight/preflight-rules"><img src="https://agentmods.dev/badge/skills/katekruger/campaign-preflight/preflight-rules.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.00117 | $0.01038 |
| Opus 5 | $0.00059 | $0.00519 |
| Sonnet 5 | $0.00023 | $0.00208 |
| Haiku 4.5 | $0.00012 | $0.00104 |
Grade A, and why
preflight-rules 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 7d 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 — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Explain and tune the checks
What it checks
76 rules across seven categories. To list them:
"${CLAUDE_PLUGIN_ROOT}/bin/preflight" rules list
"${CLAUDE_PLUGIN_ROOT}/bin/preflight" rules list --category senders
Categories: campaign, contacts, suppression, personalization, copy,
schedule, senders.
Summarize rather than dumping all 76 unless the user asks for the full list:
| Category | Catches |
|---|---|
| Campaign | Stop-on-reply off, volume too high, no sending window, incoherent dates |
| Contacts | Malformed addresses, duplicates, role inboxes, placeholder values, spreadsheet formula injection |
| Suppression | Unsubscribed contacts and domains, existing customers, internal addresses, competitors |
| Personalization | Unrendered merge fields, wrong name or company, unsupported claims, prompt injection |
| Copy | Empty subject, broken links, TODO markers, missing opt-out language, duplicate steps |
| Schedule | Invalid timezone, weekend sending, zero active days, DST transitions |
| Senders | Unhealthy mailboxes, error states, volume exceeding capacity |
Why did it flag this?
"${CLAUDE_PLUGIN_ROOT}/bin/preflight" rules explain campaign.daily_volume
That prints what the rule checks, what data it needs, its default severity, and every option with its default. Use it before answering — do not describe a rule from memory.
Re-running the original check with --verbose shows the reasoning behind each
specific finding and the score arithmetic.
"That threshold is wrong for us"
This is a legitimate and common response. Build them a config file rather than telling them to ignore the finding.
version: 1
settings:
target_timezone: America/New_York
required_variables: [first_name, company_name]
allow_weekend_sending: true # if they genuinely send weekends
internal_domains: [ourcompany.example.com]
customer_domains: [bigcustomer.example.com]
rules:
campaign.daily_volume:
warning_above: 300 # their real limits
blocker_above: 800
senders.health_below_threshold:
minimum_score: 70
contacts.missing_job_title:
enabled: false # turn a rule off entirely
contacts.free_email_domain:
severity: INFO # report it, but stop deducting points
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.
- 7d ago First seen · 113 lines · 117 tokens per session scan A dd5da975ebda
preflight-rules is a skill published in the GitHub repository katekruger/campaign-preflight (0 stars, last pushed yesterday), licensed MIT. It adds 117 tokens to every session and 1,038 once invoked, about $0.0006 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-31.
Other skills, from other repositories
haiku
When writing a haiku for this bot, follow these conventions.
deploy-docker-compose
Run the Omnigent server as a Docker compose stack (server + Postgres) on any Docker host — your laptop, a VPS, EC2 by hand, or as the base layer of any container-platform deploy. Invoke when the user wants to build the image, bring up the compose stack, debug the stack on a host they already have, or extend the stack…
rework-rate
Measure and interpret PR rework rate — the emerging 5th DORA metric.
taiyi-ui-design
A design-planning guide for describing how an application's user interface should look and behave. It produces a UI-DESIGN.md document covering layouts, components, interactions, accessibility, and error states.
ln-62-repository-publisher
Commits, pushes, and remotely verifies authorized repository changes. Not for releases, package publication, or announcements.
remove
Remove a deployed framework or addon from the current workspace.