Battlecard
Skill tga-cheetung/competitive-intel-engine/.claude/skills/battlecard
Turn a tracked competitor's profile + live sources into a 6-section, rep-ready, fully-cited battle card. Triggers: 'battle card', 'battlecard', 'build a battle card for', '/battlecard'.From its SKILL.md
npx -y skills add tga-cheetung/competitive-intel-engine --skill battlecardAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 22 days oldThe repository was created 22 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.6 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Battlecard
Generate a competitive battle card a rep can read in 90 seconds where every claim is cited to a source. The card is grounded, not guessed: each "where they win / where you win" line points to something the competitor actually published, so it survives contact with a skeptical prospect.
This skill reads a competitor profile you define once (competitors/<slug>/competitor.yaml), gathers evidence from that competitor's live sources, and writes a 6-section card to competitors/<slug>/battlecard.md.
Deploy when
- You're setting up a competitor for the first time and need the initial card.
weekly-refresh.pyflagged a card STALE because a source changed, and you're regenerating it.- A rep is about to walk into a competitive deal and wants the current card.
What this is NOT
- Not a research tool that invents claims. If a differentiator can't be tied to a source, it does not go in the card.
- Not a one-time doc generator. It's designed to be re-run every time a source moves. The card is disposable; the profile is the asset.
STEP 0: Parse input
Read the competitor slug from the argument (e.g. /battlecard northwind). Resolve competitors/<slug>/competitor.yaml. If it doesn't exist, stop and tell the user to cp -r competitors/_template competitors/<slug> and fill it in.
STEP 1: Load the profile
Parse competitor.yaml. Extract:
name,domain,categoryyour_product,your_differentiators(the case you want the card to make)their_known_strengths(seed honesty; you'll verify and expand these)sources[](label, url, type)card_path(where to write; defaultcompetitors/<slug>/battlecard.md)
STEP 2: Gather evidence
For each source in sources[], fetch the page and read it. Pay attention to source type:
changelog/docs-> what they shipped recently; capabilities they now claim.pricing-> tiers, what's gated, what's "contact us", per-seat vs. usage.reviews-> recurring complaints and recurring praise in the competitor's own customers' words.news-> funding, leadership, marquee customers, positioning shifts.
Also run a web search for "<name>" vs and <name> limitations to surface how the market already frames the matchup. Record the source URL next to every fact. You will cite it in the card.
STEP 3: Synthesize the 6 sections
Write the card with exactly these sections. Each factual line ends with a [label] citation matching a source.
- What they are - one neutral sentence.
- Where you win - exactly 3. Each must be specific ("no SSO below the $X tier [pricing]"), verifiable, and tied to
your_differentiators. No vague "we're more flexible". - Where they win - exactly 2. Honest, cited. This is the credibility of the whole card.
- Objections they create + your response - the top 3 objections a prospect will raise because this competitor exists, each with a calibrated 1-2 sentence response.
- Landmine questions - 3 questions the rep can ask that expose a weakness you found in Step 2.
- Competitive verdict - 1-2 sentences a rep can say out loud.
STEP 4: Write output
Write the card to card_path using the exact structure in competitors/example-northwind/battlecard.md. Start the file with a front-matter block recording competitor, generated (today's date), and the list of sources_cited.
End the card with a Sources list mapping each [label] to its URL, so any claim can be checked in one click.
STEP 5: Report
Print a 3-line summary: competitor name, how many claims are cited, and which sources were freshest (most recently changed). If any source in the profile was unreachable, say so explicitly. A card built on a dead source is a silent lie.
Output format
competitors/<slug>/battlecard.md, matching the example card's structure exactly: the 6 numbered sections, then a ## Sources block.
Configuration
No API keys required for the skill itself - it uses Claude Code's built-in fetch + web search. The refresh script (scripts/weekly-refresh.py) optionally reads SLACK_WEBHOOK_URL from the environment.
Installation
This skill ships inside the repo at .claude/skills/battlecard/. Opening the repo in Claude Code registers /battlecard automatically. To use it in another project, copy the battlecard/ folder into that project's .claude/skills/.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.