Install
$ agentstack add skill-swan-gtm-gtm-skills-battlecard ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Instructions
State check. This skill assumes the org has at least basic positioning established — a value prop and competition notes saved to org knowledge. Load org competition knowledge via swan-get-memory. If there's no competition slot at all and no value prop on file, the battlecard will end up generic — build out positioning first (the positioning capability has its own setup flow) before generating a battlecard. If competition notes exist for some competitors but not this one, that's fine: this run becomes the create-from-scratch path.
When to use
- "Build me a battlecard for X."
- "Update our notes on competitor X."
- "How do we beat X?"
- Before a competitive deal cycle.
What it produces
A six-section battlecard in canonical format, saved to org knowledge via swan-update-knowledge-competition and returned to the user.
Step 1 — Identify the competitor
Get the competitor name and primary URL from the user. Confirm the spelling. If the user has prior notes, load them first via swan-update-knowledge-competition (the read path is via swan-get-memory on the competition slot).
Step 2 — Pull existing intelligence
swan-get-memory for org competition knowledge. If there's already a section on this competitor, treat the task as update, not create from scratch. Preserve what's true; only revise what's stale.
Step 3 — Gather fresh signals
Make a small number of cheap queries. Do not dump everything; pick the highest-signal sources first.
swan-fetch-scraped-urlon the competitor's homepage and pricing page. Capture: the headline value prop, the primary CTA, the named target customer/segment.swan-fetch-scraped-urlon their /customers or case-study page if linked. Capture 3-5 named customers and any pattern.swan-linkedin-social-media-presenceon the competitor's company LinkedIn. Capture: posting cadence, hiring areas (titles in recent posts), leadership announcements.swan-website-trafficon the competitor's domain. Capture: traffic order of magnitude (10k, 100k, 1M monthly) and trend direction.swan-fetch-business-eventsfor funding/leadership/partnership events.
If the user already has fresh intelligence, skip the corresponding fetch. Don't burn credits re-pulling.
Step 4 — Compose the six sections
Write the battlecard in this exact structure:
## Battlecard —
*Last updated: *
### 1. One-line description
### 2. Where they win
### 3. Where they lose
### 4. Common objections we hear
### 5. Win conditions
### 6. Where to push in a deal
Be honest about strengths. A battlecard that pretends the competitor has no advantages doesn't get used.
Step 5 — Save the result
swan-update-knowledge-competition with the new battlecard content. Use append or find-and-replace depending on whether this is a new competitor or an update.
Step 6 — Return to the user
Return the full battlecard in the response. The user typically wants to read it once and share it.
Rules
- MUST cite real evidence in strengths and weaknesses sections — not opinion. If you can't cite, leave it out.
- MUST keep total length under one page of dense text (~600 words).
- MUST save the final to
swan-update-knowledge-competition. A battlecard that lives only in chat history is wasted. - NEVER include speculation framed as fact. If a weakness is rumored, label it ("reported in G2 reviews").
- NEVER include legally sensitive claims (e.g. "their product is insecure") without a citation.
- If the competitor has < 1,000 monthly visitors and no LinkedIn presence, flag that — usually means the user is fighting a ghost. Suggest they reassess whether this competitor is worth a battlecard.
- Date-stamp the battlecard. Competitive intel rots fast.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: swan-gtm
- Source: swan-gtm/gtm-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.