Systems Lab

Agent skill

spam-check

Scan the generated sequence (and per-lead merge var values) for spam trigger words and risky formatting, suggest replacements, and fail until no hits remain.

activeReaches the webActs undeclared273 words

Filed under Outbound email.

From sccsadmin11/outbound-gtm-sc · 11 skill entries · 0 · pushed 2026-10-22

What it does when it runs

Scan the generated sequence (and per-lead merge var values) for spam trigger words and risky formatting, suggest replacements, and fail until no hits remain.

Automated analysis of the skill and the 5 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
  • mailmeteor.com
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shell

Ask about spam-check

Opens your assistant with this page's recorded context. Check the linked sources before relying on it.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/sccsadmin11/outbound-gtm-sc.git /tmp/outbound-gtm-sc
git -C /tmp/outbound-gtm-sc sparse-checkout set "08-spam-check"
mkdir -p ~/.claude/skills/spam-check
cp -R "/tmp/outbound-gtm-sc/08-spam-check/." ~/.claude/skills/spam-check/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from sccsadmin11/outbound-gtm-sc/blob/fc996416957ff6232cc00c3b5c94d601b68e1d61/08-spam-check/SKILL.md, which is licensed MIT (repository). 273 words, 8 headings.

08 Spam check

Purpose

Catch spam trigger words before the campaign goes live. This runs locally, needs no API key, and blocks the next step while any hit remains.

The word list in data/spam_words.json is modeled on Mailmeteor's spam words list: https://mailmeteor.com/blog/spam-words (7 categories: money, too good to be true, overpromise, urgency, health, tech/security, gambling/adult).

Inputs

  • sequence.json from skill 07.
  • verified_leads.csv (optional, recommended). Per-lead values such as {{market_insight}} get scanned too.

Outputs

  • spam_report.json: passed, hit_count, hits[] (where, match, category, suggestion) and template_notes[].
  • Exit code 0 = pass, 1 = fail.

What it flags

  • Any phrase from the list (case-insensitive, whole words). Merge vars are ignored.
  • !! or more.
  • ALL CAPS words of 4+ letters.
  • More than --max-links links (default 1) and any link shortener.

Words inside the verbatim templates (for example "the best" in Email 2B) cannot be changed, so they are listed as notes and do not fail the check.

Env vars

None.

Steps (agent run instructions)

  1. Run:
    python 08-spam-check/scripts/spam_check.py --sequence sequence.json --leads verified_leads.csv
    
  2. On FAIL, for each hit: edit the slot value in copy_config.json (or the lead column) using the suggestion. Never edit the template text.
  3. Re-run skill 07, then this skill, until it passes.
  4. Only if a hit is a false positive that you want to keep (it happens, the list has common words like "check" or "deal"), add it to data/allowlist.txt and say why in the commit.

Handoff

A passing spam_report.json + sequence.json -> 09-plusvibe-campaign. Skill 11 re-checks that the report passed and matches the current sequence.

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what spam-check does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.

Build my GTM engine

Tell us what you want to improve. Fedor reviews the workflow and replies by email when there is a useful fit.

Fedor reviews every request personally. If there is a useful fit, he will reply by email.