Run the Competitive Intel team and produce battlecards — one card per competitor,
ready for the room. You orchestrate the agents; they do the work. This is the deep read
of the pair: the Account Scorecard is seconds on one account, this is minutes across up
to four competitors, because the answers that survive a deal live in docs and pricing
pages, not homepages.
What it replaces: building or refreshing battlecards by hand — the research, the
comparison, and the meeting prep.
Time saved: about 1 hour by hand, estimated and not yet timed. The timed
baseline (E6-26) replaces this figure when it lands.
First — anchor to the project
The battlecards, their working folder, and the voice.md / objectives.md the run reads
all live in the builder's project. Two generations exist: the project ships inside the workspace image (usually the folder
my-workspace); projects made before 2026-08 were cloned and carry whatever
name the builder chose. Assume neither — identify it by its signature. In an SSH/cloud
container the chat may start in the project itself or in the home folder with the
project one level down — both are normal. Identify it by signature, not name: run ls; see CLAUDE.md and design/ side by
side? You're in the project. If not, find it: ls */CLAUDE.md, then ls ~/*/CLAUDE.md,
else find ~ -maxdepth 3 -path '*/design/dashboard.html'. cd in, capture the
absolute path with pwd, and use that full path throughout. Can't find it? Ask the
builder which folder their project is in.
Before the questions — read what the builder already has
Check, without asking: objectives.md and voice.md at the project root, and the latest
doc under my-work/messaging-doc/ if one exists. These sharpen the run — they are never
required for it.
- If they're real, use them to pre-fill the intake below (propose, confirm, don't
re-ask cold).
- If they're placeholder templates or absent, say so once, plainly, and keep moving:
"Your
objectives.md / voice.md are still the placeholder templates, so I can't tune
these cards to your voice or goals yet. Happy to run anyway — running
/bluerock:onboard would sharpen future runs." Never make setup homework the price of
the first battlecard.
- If the builder has their own positioning or SWOT doc, they can name or paste it at
any step — it feeds the same slot as the differentiators.
Intake — one question per step, short, then confirm
Ask these one at a time. Keep each ask to a line or two; don't stack questions or explain
the whole flow up front.
Skip what they already gave you. If the opening request named the industry or the
competitors, don't re-ask — say what you're taking as given (Industry: AI runtime security · Competitors: Straiker, Zenity) so a wrong reading gets corrected early, then
pick up at the first step that's actually missing. A returning builder never re-answers a
question they already answered; a prior run's inputs.md pre-fills the same way (propose,
confirm, don't re-ask cold).
Which prompt shape for which step: use the question picker (AskUserQuestion) only
where the answer is genuinely a choice between a few options — steps 3a and 4. Everywhere
else the answer is free text in the builder's own words, and a four-option picker is the
wrong shape for it: ask in the message and let them type. Where the picker isn't available
in this client, ask in the message.
- Industry / market context. "What category are we competing in?"
- Competitors. "Who are we up against? Names are enough — add a domain for anything
with a common name (cap is 4 per run)."
- Your differentiators. "What do you win on? Two or three real bullets in your own
words beat ten aspirational ones." (Pre-fill from the messaging doc or objectives when
they exist and confirm instead.) Kill points come from the scans; silver bullets come
only from here — never fabricate a differentiator.
- 3a — if they have nothing written down, offer the route rather than leaving them
stuck: "Want me to pull them out with three questions?" (options: yes, ask me the
three · I'll write them myself · skip it — the cards will say the silver-bullets
section was built without them). If they take the three, ask one at a time:
- What do you win on when you win?
- What do you hear in a won deal that you never hear anywhere else?
- What can you do on day one that a competitor needs a services project for?
Then read their answers back as a differentiator list and let them correct it before
moving on.
- Personas. Offer it explicitly — it changes the cards materially — but never block
the run on it: "Tailor these to the person in the room?" (yes — give me title, what
they own, seniority · no — keep it general). More than one person is normal and fine: a
card carries a lane each (a CISO and a CIO want different openings). Take them all.
- Other notes. "Anything else that should shape these? A deal that's stuck, pricing
pressure, a loss you want to understand, a compliance constraint, a claim we're not
allowed to make, a phrase to avoid. Optional — say 'nothing' if there isn't anything."
- Confirm before we run. Play back industry, competitors, differentiators, personas,
and notes as a short bullet list, then: "Good to go, or anything to edit?" Carry all
five inputs forward verbatim from here — notes and differentiators are the builder's
own words, and paraphrasing either is how a card ends up asserting something they never
said.
The moment the builder approves, set the expectation for the wait in one message of
its own, then go quiet until the report: the scans run concurrently and take several
minutes, so say so plainly — this is a good moment to grab a coffee or switch tasks, and
the battlecards will be ready when they check back. No further chatter between this and
the report.
Set up the run
- Make the working folder:
my-work/competitive-intel/<YYYY-MM-DD>-<slug>/, where
the slug names the deal or the lead competitor. Dated on purpose — runs accumulate and
are never overwritten; the history is what makes "what changed" possible later.
my-work/ is builder-owned and never overwritten.
- Check for a previous run: list
my-work/competitive-intel/. If a prior dated
folder holds a battlecard.md, note its path and date — the analyst will report what
changed since it.
- Write
inputs.md into the working folder: the confirmed intake (industry,
competitors, differentiators, personas, notes) and which project files were real
enough to read. This is the record of what shaped the cards, and the seed the next
run pre-fills from.
Run the agents
Dispatch these as ordinary subagents. Do not use agent-teams tooling; this runs
identically in every client.
- Dispatch one
competitor-scanner per competitor — all in a single message so they
run concurrently. Each gets: its one competitor (name + domain if given), the
industry, and the working folder's absolute path in the dispatch prompt itself (a
subagent starts wherever the session started; the path you pass is the handoff). Each
writes a sourced scan-<competitor-slug>.md, docs-deep and bounded to 6 to 8 fetches.
Wait for all of them.
- If the builder's notes mention a specific competitor — a loss to them, a claim
they made in a deal, a rumour worth checking — pass it to that competitor's scanner
as an unverified lead from the builder, to come back sourced or come back
[not found]. Never as a fact.
- Dispatch
analyst with the working folder path and, when step 8 found one, the
previous battlecard.md path. It reads inputs.md and every scan — no web tools,
no new research — and writes battlecard.md: one card per competitor; on a
multi-competitor run, the two field-level syntheses (The field and the
Capability chart); and what changed since the previous run. The builder's
differentiators, personas, and notes reach it through inputs.md verbatim — that
file carries their words, never a paraphrase.
Publish the artifact — you, not the agents
- When
analyst finishes, read battlecard.md and publish it as a Claude Artifact
yourself, in this conversation, following the design contract below. The agents write
markdown only; the finished, shareable view is yours to render. If artifact publishing
isn't available in my environment, don't block — the markdown is saved; say so and
give the path.
The artifact — design contract (follow it exactly)
The artifact is a tool the builder operates in the room, not a report they scroll
(product decision, 2026-08-31). One competitor on screen at a time, reachable in one
click; sections scannable by color before they are read. Still read-only and honest:
no CTAs, no dead controls, nothing that pretends to fetch or save — a dead button in a
sandboxed artifact is worse than no button. Interactivity is navigation, never chrome.
A single self-contained HTML page. CSP rules: exactly one external request, the Google
Fonts stylesheet below. All CSS in one <style> block, all JS inline (one small tab
script), no CDN scripts, no remote images. Print-friendly: under @media print the tab
strip hides, .panel[hidden] { display: block } renders every competitor in sequence,
with a page break between competitors.
Fonts — one Google Fonts link, every face with a real fallback: DM Sans (display +
body; fallback system-ui, -apple-system, sans-serif), Source Serif 4 (the 30-second
read, "say it" lines, the closing question; fallback Georgia, serif), JetBrains Mono
(labels, meta, chips; fallback ui-monospace, Menlo, monospace).
Theme — ship both, token-structured. Bare :root carries the complete light palette;
@media (prefers-color-scheme: dark) guarded as :root:not([data-theme="light"])
redefines only the tokens; :root[data-theme="dark"] duplicates them. Every component
rule uses var() — no literal color outside the three token blocks. body background is
var(--paper).
Tokens (light / dark):
| Token |
Light |
Dark |
| paper / card / card-2 |
#F5F1EA / #FFFFFF / #FAF7F1 |
#14171E / #1C212B / #222835 |
| line / line-2 |
#E7E0D6 / #D6CDBE |
#2E3542 / #3D4658 |
| ink / ink-2 / ink-3 / ink-4 |
#1B2130 / #3D4658 / #6B7486 / #8B93A3 |
#EDEEF2 / #C3C9D4 / #97A0B0 / #7B8494 |
| accent (BlueRock blue) + soft + line |
#1559C4 / #E8EFFB / #B9CDEF |
#6E9BE8 / #1D2A45 / #34528C |
| kill + soft + line |
#B4432E / #F9ECE8 / #E8C7BE |
#E0715A / #372220 / #6B392F |
| bullet + soft + line |
#206E5B / #E7F2EE / #BFDCD3 |
#55B092 / #1B2E29 / #2F5A4B |
| mine + soft + line |
#94660F / #F7EFDD / #E5D3AC |
#D3A24C / #322A19 / #66542B |
| neutral + soft + line |
#5A6272 / #EEEDE9 / #D9D3C8 |
#9AA3B2 / #262C37 / #414A5A |
| chip text (on lane-colored chips) |
#FFFFFF |
#14171E |
Structure (max width 1000px):
- Sticky masthead — uppercase display title (
AI <industry> · Battlecards shape),
mono meta line (<date> · FOR: <personas> · <first run or run N> · <N> source domains), then the tab strip: one role="tab" button per competitor,
aria-selected on the active one, 3px accent underline; panels are
<section role="tabpanel"> toggled via the hidden attribute by the inline script
(first panel visible on load, others carry hidden in markup).
- Legend row naming the four lanes with color dots: kill points (sourced, use in the
room) · silver bullets (our claims, aimed) · don't take the fight here · their attack,
our answer.
- "Since your last run" strip — only when a previous run existed: an accent-soft
callout, dated, listing the analyst's "Since" items (or its "no material change"
line). Omit the block entirely on a first run.
- On a multi-competitor run, two field-level views reachable from the tab strip
alongside the competitors: The field (the analyst's cross-competitor table plus its
"who's actually the threat" read) and the Capability chart — render the Harvey-ball
grid as an actual grid of the five symbols (never a bar chart or a numeric score), each
cell's one-line rationale directly beneath its row. The symbols are the point.
- One panel per competitor, sections in this order:
- Name (display, 28–40px, weight 800) + mono scope subline carried from the scan.
- The 30-second read — bordered block with a dark bar header (
background: var(--ink), color: var(--paper)), labeled grid rows (128px + 1fr; mono
uppercase labels, serif values): what they are, the tell or how they move, and a
highlighted THE FIGHT row on accent-soft.
- Kill points — kill-colored chip + note
Sourced. Use in the room.; numbered
item-cards (mono number, kill-colored 4px left stripe) each carrying the four lines:
the point as the bold lead, the proof with its mono source chip
scan-<slug>.md · <section>, the ask (labeled ASK, the question that lets the
buyer discover it), and they'll say (labeled, their rebuttal and the one-line
counter). Carry every [their claim] / [unverified] marker as a small mine-colored
mono tag — never silently drop one.
- Silver bullets — bullet-colored chip + note
Your differentiators, aimed.;
numbered cards with the "say it" line in serif italic behind a bullet-colored left
rule. When differentiators were missing, this section carries the honest one-liner
instead.
- Where they're genuinely better — mine-colored chip + note
Don't take the fight here.; one card, hairline-separated list. Never empty when the scans found
strengths.
- Their attack on us — neutral chip + note
What they'll open with, and the answer.; THEM/US volley rows (mono uppercase speaker labels, their line italic,
our answer in ink) with the persona target as an accent mono tag (→ CISO).
- Head to head — ink-colored chip; a them/ours table inside a bordered
overflow-x: auto container (min-width: 560px on the table), their column headed
(sourced), ours (ours) in bullet color. Only rows where both sides are known.
- One question to ask — accent chip + note
Worded so the prospect asks them.;
the question in serif italic inside an accent-soft callout with a 3px accent left
border.
- Persona lane — for (only when a persona was given; one lane per person):
accent-topped card with what they're measured on, the lead-with silver bullet in
their vocabulary, the kill points re-ranked for them, the don't-say line, and their
three discovery questions.
[my read] markers stay visible.
- Panel sources — mono chips of the domains that competitor's scan actually used.
- Footer — the separation-rule note (sourced lines carry a scan citation; silver
bullets are ours to say, never dressed up as findings), the line
Internal competitive material — not for circulation to customers or prospects, and
Built with BlueRock · Competitive Intel · competitor-scanner + analyst.
The scan test: someone reading this on a phone in a lobby has about eight seconds —
the lane colors, the 30-second read, and the numbered points must carry the card before a
single sentence is read.
Finish
- The battlecard artifact is the payoff. The
battlecard.md is the source of record
the builder keeps and can push to their repo, and inputs.md beside it is what the
next run pre-fills from.
- Report: the folder path, the one line that matters (the sharpest sourced kill
point, or the biggest "don't take the fight here" warning), and the artifact (or the
fallback note). Don't reprint the cards.
- Offer the depth, after the run — never before it. One beat, two doors, then stop:
"Want to see how this worked? Two agents ran it — a scanner that read their docs and
an analyst that aimed your differentiators. The anatomy-of-an-agent and subagent-teams
sessions explain the pattern — say 'teach me how this works'. And if you want future
cards tuned to your own positioning, run
/bluerock:messaging-doc on your site — the
silver bullets aim themselves from it."
Honesty rules this skill carries
- Sourced versus supplied never blur. Kill points trace to scans and carry sources;
silver bullets are the builder's own claims, aimed but labeled ours. The analyst
enforces it; the artifact preserves it.
- A thin competitor gets an honest short card, not a padded one.
- No FUD, no disparagement. Attack the capability gap, never the company or its
people. These cards should read like they would survive being forwarded to the wrong
person.
- Refresh, don't rot. Competitive intel goes stale in about a quarter. Every run is
dated; when the previous run in
my-work/competitive-intel/ is more than a quarter old,
say so in the report rather than treating the diff as a refresh.
- The time-saved line above ships only with a timed figure and its provenance.
Who depends on this skill's wording
Not part of a run. Read this before rewording anything a builder sees.
agents/analyst.md owns the card section names (The 30-second read, Kill points,
Silver bullets, Where they're genuinely better, Their attack on us, Head to head, One
question to ask, and the conditional Persona lane) and the two field-level synthesis
names on multi-competitor runs (The field, Capability chart); this skill's artifact
contract renders all of them by name and order. Reword them in either file and the
artifact loses sections silently. The kill-point four-line shape (point, proof, ask,
they'll say) is likewise shared between the analyst's card spec and the artifact's
kill-point rendering.
agents/competitor-scanner.md owns the scan section names; the analyst reads
scans by section. The scan filename shape scan-<competitor-slug>.md is matched by the
analyst's Glob.
curriculum/manifest.json carries this skill's one_liner, artifact,
time_saved, and team — the menu and the site read them; keep them in step with the
opening lines here.
- README.md § Competitive Intel quotes the intake shape and the card sections.
- The working folder shape
my-work/competitive-intel/<YYYY-MM-DD>-<slug>/ is what makes
run history findable; /bluerock:wrap-up logs runs against the agent-team label
Competitive Intel with members competitor-scanner + analyst (the Account
Research roll-up shape).
- The flow doc mirrors this skill (content repo, private:
09-product/use-case-flows/competitive-intel-flow.md) — any change to the intake,
dispatch, artifact, or close updates it in the same pass.
1---2name: competitive-intel3description: Competitive Intel — point an agent team at the competitors you face and get a battlecard per competitor: sourced kill points, your differentiators aimed, where they're genuinely better, their likely attack and the answer, and one question to ask. Use when I say "battlecard for <competitor>", "competitive intel on <A> and <B>", "who are we up against", "how do I beat <competitor>", "kill points against <competitor>", "compare us to <X> and <Y>", "prep me for a competitive deal", or name competitors before a meeting. Runs competitor-scanner (once per competitor, up to 4, concurrently) → analyst, and writes to my-work/competitive-intel/. Research-grade on purpose — minutes, not seconds.4---56Run the Competitive Intel team and produce **battlecards** — one card per competitor,7ready for the room. You orchestrate the agents; they do the work. This is the deep read8of the pair: the Account Scorecard is seconds on one account, this is minutes across up9to four competitors, because the answers that survive a deal live in docs and pricing10pages, not homepages.1112**What it replaces:** building or refreshing battlecards by hand — the research, the13comparison, and the meeting prep.14**Time saved:** about 1 hour by hand, estimated and not yet timed. The timed15baseline (E6-26) replaces this figure when it lands.1617## First — anchor to the project1819The battlecards, their working folder, and the `voice.md` / `objectives.md` the run reads20all live in the builder's project. Two generations exist: the project ships inside the workspace image (usually the folder21`my-workspace`); projects made before 2026-08 were cloned and carry whatever22name the builder chose. **Assume neither — identify it by its signature.** In an SSH/cloud23container the chat may start in the project itself or in the **home folder** with the24project one level down — both are normal. Identify it by signature, not name: run `ls`; see `CLAUDE.md` and `design/` side by25side? You're in the project. If not, find it: `ls */CLAUDE.md`, then `ls ~/*/CLAUDE.md`,26else `find ~ -maxdepth 3 -path '*/design/dashboard.html'`. `cd` in, capture the27**absolute path** with `pwd`, and use that full path throughout. Can't find it? Ask the28builder which folder their project is in.2930## Before the questions — read what the builder already has3132Check, without asking: `objectives.md` and `voice.md` at the project root, and the latest33doc under `my-work/messaging-doc/` if one exists. These sharpen the run — they are never34required for it.3536- **If they're real**, use them to pre-fill the intake below (propose, confirm, don't37 re-ask cold).38- **If they're placeholder templates or absent**, say so once, plainly, and keep moving:39 *"Your `objectives.md` / `voice.md` are still the placeholder templates, so I can't tune40 these cards to your voice or goals yet. Happy to run anyway — running41 `/bluerock:onboard` would sharpen future runs."* Never make setup homework the price of42 the first battlecard.43- **If the builder has their own positioning or SWOT doc**, they can name or paste it at44 any step — it feeds the same slot as the differentiators.4546## Intake — one question per step, short, then confirm4748Ask these one at a time. Keep each ask to a line or two; don't stack questions or explain49the whole flow up front.5051**Skip what they already gave you.** If the opening request named the industry or the52competitors, don't re-ask — say what you're taking as given (`Industry: AI runtime53security · Competitors: Straiker, Zenity`) so a wrong reading gets corrected early, then54pick up at the first step that's actually missing. A returning builder never re-answers a55question they already answered; a prior run's `inputs.md` pre-fills the same way (propose,56confirm, don't re-ask cold).5758**Which prompt shape for which step:** use the question picker (`AskUserQuestion`) only59where the answer is genuinely a choice between a few options — steps 3a and 4. Everywhere60else the answer is free text in the builder's own words, and a four-option picker is the61wrong shape for it: ask in the message and let them type. Where the picker isn't available62in this client, ask in the message.63641. **Industry / market context.** "What category are we competing in?"652. **Competitors.** "Who are we up against? Names are enough — add a domain for anything66 with a common name (cap is 4 per run)."673. **Your differentiators.** "What do you win on? Two or three real bullets in your own68 words beat ten aspirational ones." (Pre-fill from the messaging doc or objectives when69 they exist and confirm instead.) Kill points come from the scans; **silver bullets come70 only from here** — never fabricate a differentiator.71 - **3a — if they have nothing written down**, offer the route rather than leaving them72 stuck: *"Want me to pull them out with three questions?"* (options: yes, ask me the73 three · I'll write them myself · skip it — the cards will say the silver-bullets74 section was built without them). If they take the three, ask **one at a time**:75 1. What do you win on when you win?76 2. What do you hear in a won deal that you never hear anywhere else?77 3. What can you do on day one that a competitor needs a services project for?78 Then read their answers back as a differentiator list and let them correct it before79 moving on.804. **Personas.** Offer it explicitly — it changes the cards materially — but **never block81 the run on it**: *"Tailor these to the person in the room?"* (yes — give me title, what82 they own, seniority · no — keep it general). More than one person is normal and fine: a83 card carries a lane each (a CISO and a CIO want different openings). Take them all.845. **Other notes.** "Anything else that should shape these? A deal that's stuck, pricing85 pressure, a loss you want to understand, a compliance constraint, a claim we're not86 allowed to make, a phrase to avoid. Optional — say 'nothing' if there isn't anything."876. **Confirm before we run.** Play back industry, competitors, differentiators, personas,88 and notes as a short bullet list, then: "Good to go, or anything to edit?" **Carry all89 five inputs forward verbatim from here** — notes and differentiators are the builder's90 own words, and paraphrasing either is how a card ends up asserting something they never91 said.9293**The moment the builder approves**, set the expectation for the wait in one message of94its own, then go quiet until the report: the scans run concurrently and take several95minutes, so say so plainly — this is a good moment to grab a coffee or switch tasks, and96the battlecards will be ready when they check back. No further chatter between this and97the report.9899## Set up the run1001017. **Make the working folder:** `my-work/competitive-intel/<YYYY-MM-DD>-<slug>/`, where102 the slug names the deal or the lead competitor. Dated on purpose — runs accumulate and103 are never overwritten; the history is what makes "what changed" possible later.104 `my-work/` is builder-owned and never overwritten.1058. **Check for a previous run:** list `my-work/competitive-intel/`. If a prior dated106 folder holds a `battlecard.md`, note its path and date — the analyst will report what107 changed since it.1089. **Write `inputs.md`** into the working folder: the confirmed intake (industry,109 competitors, differentiators, personas, notes) and which project files were real110 enough to read. This is the record of what shaped the cards, and the seed the next111 run pre-fills from.112113## Run the agents114115Dispatch these as ordinary subagents. Do not use agent-teams tooling; this runs116identically in every client.11711810. **Dispatch one `competitor-scanner` per competitor — all in a single message so they119 run concurrently.** Each gets: its one competitor (name + domain if given), the120 industry, and the working folder's **absolute path** in the dispatch prompt itself (a121 subagent starts wherever the session started; the path you pass is the handoff). Each122 writes a sourced `scan-<competitor-slug>.md`, docs-deep and bounded to 6 to 8 fetches.123 Wait for all of them.124 - **If the builder's notes mention a specific competitor** — a loss to them, a claim125 they made in a deal, a rumour worth checking — pass it to *that* competitor's scanner126 as an **unverified lead from the builder**, to come back sourced or come back127 `[not found]`. Never as a fact.12811. **Dispatch `analyst`** with the working folder path and, when step 8 found one, the129 previous `battlecard.md` path. It reads `inputs.md` and every scan — **no web tools,130 no new research** — and writes `battlecard.md`: one card per competitor; on a131 multi-competitor run, the two field-level syntheses (**The field** and the132 **Capability chart**); and what changed since the previous run. The builder's133 differentiators, personas, and notes reach it through `inputs.md` **verbatim** — that134 file carries their words, never a paraphrase.135136## Publish the artifact — you, not the agents13713812. When `analyst` finishes, read `battlecard.md` and **publish it as a Claude Artifact**139 yourself, in this conversation, following the design contract below. The agents write140 markdown only; the finished, shareable view is yours to render. If artifact publishing141 isn't available in my environment, don't block — the markdown is saved; say so and142 give the path.143144### The artifact — design contract (follow it exactly)145146**The artifact is a tool the builder operates in the room, not a report they scroll**147(product decision, 2026-08-31). One competitor on screen at a time, reachable in one148click; sections scannable by color before they are read. Still read-only and honest:149no CTAs, no dead controls, nothing that pretends to fetch or save — a dead button in a150sandboxed artifact is worse than no button. Interactivity is navigation, never chrome.151152A single self-contained HTML page. **CSP rules: exactly one external request, the Google153Fonts stylesheet below. All CSS in one `<style>` block, all JS inline (one small tab154script), no CDN scripts, no remote images.** Print-friendly: under `@media print` the tab155strip hides, `.panel[hidden] { display: block }` renders every competitor in sequence,156with a page break between competitors.157158**Fonts** — one Google Fonts link, every face with a real fallback: `DM Sans` (display +159body; fallback `system-ui, -apple-system, sans-serif`), `Source Serif 4` (the 30-second160read, "say it" lines, the closing question; fallback `Georgia, serif`), `JetBrains Mono`161(labels, meta, chips; fallback `ui-monospace, Menlo, monospace`).162163**Theme — ship both, token-structured.** Bare `:root` carries the complete light palette;164`@media (prefers-color-scheme: dark)` guarded as `:root:not([data-theme="light"])`165redefines only the tokens; `:root[data-theme="dark"]` duplicates them. Every component166rule uses `var()` — no literal color outside the three token blocks. `body` background is167`var(--paper)`.168169**Tokens** (light / dark):170171| Token | Light | Dark |172|---|---|---|173| paper / card / card-2 | `#F5F1EA` / `#FFFFFF` / `#FAF7F1` | `#14171E` / `#1C212B` / `#222835` |174| line / line-2 | `#E7E0D6` / `#D6CDBE` | `#2E3542` / `#3D4658` |175| ink / ink-2 / ink-3 / ink-4 | `#1B2130` / `#3D4658` / `#6B7486` / `#8B93A3` | `#EDEEF2` / `#C3C9D4` / `#97A0B0` / `#7B8494` |176| accent (BlueRock blue) + soft + line | `#1559C4` / `#E8EFFB` / `#B9CDEF` | `#6E9BE8` / `#1D2A45` / `#34528C` |177| kill + soft + line | `#B4432E` / `#F9ECE8` / `#E8C7BE` | `#E0715A` / `#372220` / `#6B392F` |178| bullet + soft + line | `#206E5B` / `#E7F2EE` / `#BFDCD3` | `#55B092` / `#1B2E29` / `#2F5A4B` |179| mine + soft + line | `#94660F` / `#F7EFDD` / `#E5D3AC` | `#D3A24C` / `#322A19` / `#66542B` |180| neutral + soft + line | `#5A6272` / `#EEEDE9` / `#D9D3C8` | `#9AA3B2` / `#262C37` / `#414A5A` |181| chip text (on lane-colored chips) | `#FFFFFF` | `#14171E` |182183**Structure** (max width 1000px):1841851. **Sticky masthead** — uppercase display title (`AI <industry> · Battlecards` shape),186 mono meta line (`<date> · FOR: <personas> · <first run or run N> · <N> source187 domains`), then the **tab strip**: one `role="tab"` button per competitor,188 `aria-selected` on the active one, 3px accent underline; panels are189 `<section role="tabpanel">` toggled via the `hidden` attribute by the inline script190 (first panel visible on load, others carry `hidden` in markup).1912. **Legend row** naming the four lanes with color dots: kill points (sourced, use in the192 room) · silver bullets (our claims, aimed) · don't take the fight here · their attack,193 our answer.1943. **"Since your last run" strip** — only when a previous run existed: an accent-soft195 callout, dated, listing the analyst's "Since" items (or its "no material change"196 line). Omit the block entirely on a first run.1974. **On a multi-competitor run, two field-level views** reachable from the tab strip198 alongside the competitors: **The field** (the analyst's cross-competitor table plus its199 "who's actually the threat" read) and the **Capability chart** — render the Harvey-ball200 grid as an actual grid of the five symbols (never a bar chart or a numeric score), each201 cell's one-line rationale directly beneath its row. The symbols are the point.2025. **One panel per competitor**, sections in this order:203 - **Name** (display, 28–40px, weight 800) + mono scope subline carried from the scan.204 - **The 30-second read** — bordered block with a dark bar header (`background:205 var(--ink)`, `color: var(--paper)`), labeled grid rows (`128px + 1fr`; mono206 uppercase labels, serif values): what they are, the tell or how they move, and a207 highlighted **THE FIGHT** row on accent-soft.208 - **Kill points** — kill-colored chip + note `Sourced. Use in the room.`; numbered209 item-cards (mono number, kill-colored 4px left stripe) each carrying the four lines:210 the **point** as the bold lead, the **proof** with its mono source chip211 `scan-<slug>.md · <section>`, the **ask** (labeled `ASK`, the question that lets the212 buyer discover it), and **they'll say** (labeled, their rebuttal and the one-line213 counter). Carry every `[their claim]` / `[unverified]` marker as a small mine-colored214 mono tag — never silently drop one.215 - **Silver bullets** — bullet-colored chip + note `Your differentiators, aimed.`;216 numbered cards with the "say it" line in serif italic behind a bullet-colored left217 rule. When differentiators were missing, this section carries the honest one-liner218 instead.219 - **Where they're genuinely better** — mine-colored chip + note `Don't take the fight220 here.`; one card, hairline-separated list. Never empty when the scans found221 strengths.222 - **Their attack on us** — neutral chip + note `What they'll open with, and the223 answer.`; THEM/US volley rows (mono uppercase speaker labels, their line italic,224 our answer in ink) with the persona target as an accent mono tag (`→ CISO`).225 - **Head to head** — ink-colored chip; a them/ours table inside a bordered226 `overflow-x: auto` container (`min-width: 560px` on the table), their column headed227 `(sourced)`, ours `(ours)` in bullet color. Only rows where both sides are known.228 - **One question to ask** — accent chip + note `Worded so the prospect asks them.`;229 the question in serif italic inside an accent-soft callout with a 3px accent left230 border.231 - **Persona lane — for <title>** (only when a persona was given; one lane per person):232 accent-topped card with what they're measured on, the lead-with silver bullet in233 their vocabulary, the kill points re-ranked for them, the don't-say line, and their234 three discovery questions. `[my read]` markers stay visible.235 - **Panel sources** — mono chips of the domains that competitor's scan actually used.2366. **Footer** — the separation-rule note (sourced lines carry a scan citation; silver237 bullets are ours to say, never dressed up as findings), the line **`Internal238 competitive material — not for circulation to customers or prospects`**, and239 `Built with BlueRock · Competitive Intel · competitor-scanner + analyst`.240241**The scan test:** someone reading this on a phone in a lobby has about eight seconds —242the lane colors, the 30-second read, and the numbered points must carry the card before a243single sentence is read.244245## Finish24624713. The **battlecard artifact** is the payoff. The `battlecard.md` is the source of record248 the builder keeps and can push to their repo, and `inputs.md` beside it is what the249 next run pre-fills from.25014. **Report:** the folder path, the one line that matters (the sharpest sourced kill251 point, or the biggest "don't take the fight here" warning), and the artifact (or the252 fallback note). Don't reprint the cards.25315. **Offer the depth, after the run — never before it.** One beat, two doors, then stop:254 *"Want to see how this worked? Two agents ran it — a scanner that read their docs and255 an analyst that aimed your differentiators. The anatomy-of-an-agent and subagent-teams256 sessions explain the pattern — say 'teach me how this works'. And if you want future257 cards tuned to your own positioning, run `/bluerock:messaging-doc` on your site — the258 silver bullets aim themselves from it."*259260## Honesty rules this skill carries261262- **Sourced versus supplied never blur.** Kill points trace to scans and carry sources;263 silver bullets are the builder's own claims, aimed but labeled ours. The analyst264 enforces it; the artifact preserves it.265- **A thin competitor gets an honest short card**, not a padded one.266- **No FUD, no disparagement.** Attack the capability gap, never the company or its267 people. These cards should read like they would survive being forwarded to the wrong268 person.269- **Refresh, don't rot.** Competitive intel goes stale in about a quarter. Every run is270 dated; when the previous run in `my-work/competitive-intel/` is more than a quarter old,271 say so in the report rather than treating the diff as a refresh.272- **The time-saved line above ships only with a timed figure and its provenance.**273274## Who depends on this skill's wording275276Not part of a run. Read this before rewording anything a builder sees.277278- **`agents/analyst.md` owns the card section names** (The 30-second read, Kill points,279 Silver bullets, Where they're genuinely better, Their attack on us, Head to head, One280 question to ask, and the conditional Persona lane) **and the two field-level synthesis281 names on multi-competitor runs (The field, Capability chart)**; this skill's artifact282 contract renders all of them by name and order. Reword them in either file and the283 artifact loses sections silently. The kill-point four-line shape (point, proof, ask,284 they'll say) is likewise shared between the analyst's card spec and the artifact's285 kill-point rendering.286- **`agents/competitor-scanner.md` owns the scan section names**; the analyst reads287 scans by section. The scan filename shape `scan-<competitor-slug>.md` is matched by the288 analyst's Glob.289- **`curriculum/manifest.json`** carries this skill's `one_liner`, `artifact`,290 `time_saved`, and `team` — the menu and the site read them; keep them in step with the291 opening lines here.292- **README.md § Competitive Intel** quotes the intake shape and the card sections.293- The working folder shape `my-work/competitive-intel/<YYYY-MM-DD>-<slug>/` is what makes294 run history findable; `/bluerock:wrap-up` logs runs against the agent-team label295 **Competitive Intel** with members `competitor-scanner` + `analyst` (the Account296 Research roll-up shape).297- **The flow doc mirrors this skill** (content repo, private:298 `09-product/use-case-flows/competitive-intel-flow.md`) — any change to the intake,299 dispatch, artifact, or close updates it in the same pass.