- name:
- battlecard
- description:
- Creates or updates a competitor battlecard. Use when the user needs positioning, strengths, weaknesses, objections, win conditions, and practical talk tracks saved into competitive knowledge.
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 — <Competitor>
*Last updated: <today's date>*
### 1. One-line description
<What they sell, who they sell to, in one sentence.>
### 2. Where they win
<Bullet list — 3-5 items. The genuine strengths. Don't strawman.>
### 3. Where they lose
<Bullet list — 3-5 items. Real weaknesses, ideally evidenced from public reviews, missing features, or known customer complaints.>
### 4. Common objections we hear
<Format: "Objection → our response." 3-6 entries. Keep each response < 30 words.>
### 5. Win conditions
<Bullet list — when we beat them. Specific buyer profiles, deal sizes, technical requirements, regional factors.>
### 6. Where to push in a deal
<Bullet list — concrete tactical moves. Demo emphasis, pricing posture, proof points to bring up.>
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.