competitor-positioning
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCompetitor Positioning
Competitor Positioning
Marketing-focused competitive positioning analysis powered by Nimble's web data APIs.
Built for marketing teams who need to understand how competitors present themselves —
messaging, value props, content themes, pricing — and how that evolves over time.
The output is a marketing briefing, not a signal feed. Every insight should answer:
"what does this mean for our messaging and positioning?"
User request: $ARGUMENTS
Argument parsing — determine what to do before running anything:
- No arguments → run full workflow (scope confirmation in Step 2)
- Competitor names (e.g., "Exa, Tavily") → research only those, skip scope confirmation
- "battlecard [competitor]" → skip to Battlecard Generation (see below) using existing snapshots from memory
- "delta" / "what changed" → force delta mode regardless of timing
Before running any commands, read for Claude Code
constraints (no shell state, no /, sub-agent permissions, communication style).
references/nimble-playbook.md&wait基于Nimble网络数据API打造的营销导向型竞品定位分析工具。专为需要了解竞争对手自我展示方式(信息传递、价值主张、内容主题、定价)及其随时间演变情况的营销团队设计。
输出内容为营销简报,而非信号信息流。每一项洞察都应回答:“这对我们的信息传递和定位策略意味着什么?”
用户请求:$ARGUMENTS
参数解析——在执行任何操作前确定任务方向:
- 无参数 → 执行完整工作流(步骤2中确认范围)
- 竞品名称(例如:"Exa, Tavily")→ 仅调研指定竞品,跳过范围确认步骤
- "battlecard [competitor]" → 直接跳转至作战卡片生成环节(见下文),使用记忆中已有的快照数据
- "delta" / "what changed" → 强制启用差异模式,不受时间限制
执行任何命令前,请阅读了解Claude Code的约束条件(无Shell状态、不支持/、子代理权限、沟通风格)。
references/nimble-playbook.md&waitInstructions
操作说明
Step 0: Preflight
步骤0:预检查
Run the preflight pattern from (5 simultaneous Bash
calls: date calc, today, CLI check, profile load, index.md load).
references/nimble-playbook.mdFrom the results:
- CLI missing or API key unset → , stop
references/profile-and-onboarding.md - Profile exists → load prior data from two sources:
- — prior positioning snapshots (used for delta detection in Steps 4 + 5)
~/.nimble/memory/positioning/*.md - — business signals from competitor-intel runs (provides context for why positioning may have shifted, e.g., a funding round or leadership change that preceded a messaging pivot) Determine mode:
~/.nimble/memory/competitors/*.md - Full snapshot: first run OR no prior positioning data OR last run > 14 days ago
- Delta mode: last run < 14 days ago — only surface what changed
- Same-day repeat: if is today, check for existing report at
last_runs.competitor-positioning. If found, ask: "Already ran today. Run again for fresh data?" Don't silently re-run.~/.nimble/memory/reports/competitor-positioning-[today].md - Skip to Step 2
- No profile → Step 1
执行中的预检查流程(5个并行Bash调用:日期计算、今日日期、CLI检查、配置文件加载、index.md加载)。
references/nimble-playbook.md根据结果处理:
- CLI缺失或API密钥未设置 → 参考,停止操作
references/profile-and-onboarding.md - 配置文件已存在 → 从两个来源加载历史数据:
- — 过往定位快照(用于步骤4和5中的差异检测)
~/.nimble/memory/positioning/*.md - — 来自competitor-intel工具的商业信号(为定位变化提供背景信息,例如融资轮次或领导层变动引发的信息传递转向) 确定运行模式:
~/.nimble/memory/competitors/*.md - 完整快照模式:首次运行、无过往定位数据,或上次运行距今超过14天
- 差异模式:上次运行距今不足14天 — 仅展示变化内容
- 当日重复运行:若为今日,检查
last_runs.competitor-positioning是否存在现有报告。若存在,询问:“今日已运行过该工具。是否重新运行以获取最新数据?”请勿静默重新运行。~/.nimble/memory/reports/competitor-positioning-[today].md - 跳转至步骤2
- 无配置文件 → 执行步骤1
Step 1: First-Run Onboarding (2 prompts max)
步骤1:首次运行引导(最多2个提示)
This skill shares the competitor list from . If a profile already
exists with competitors, skip onboarding entirely.
competitor-intelIf no profile exists, follow for the full
onboarding flow. The profile and competitor list created here will be shared across
all business skills.
references/profile-and-onboarding.md本工具与共享竞品列表。若已有包含竞品的配置文件,直接跳过引导环节。
competitor-intel若无配置文件,请遵循中的完整引导流程。此处创建的配置文件和竞品列表将在所有商业工具中共享。
references/profile-and-onboarding.mdStep 2: Confirm Scope
步骤2:确认调研范围
If already specifies competitors, use those and skip this step.
$ARGUMENTSOtherwise, check how many competitors are in the profile:
-
4 or fewer → proceed with all, no confirmation needed
-
More than 4 → ask which to focus on (use AskUserQuestion):You have [N] competitors tracked. Which ones should I analyze?
- All [N] (~[3-5 × N] Nimble API credits, ~[N × 2] min)
- [Category A]: [names] (grouped by from profile)
category - [Category B]: [names]
- Let me pick — I'll list them
Accept natural language: "just the AI search ones" → resolve from profile categories.
This prevents wasted API credits and wall time on competitors the user doesn't care
about right now. Each competitor costs ~3-5 Nimble API credits (1 map + 3-4 extracts
- 2-3 searches).
若已指定竞品,直接使用指定竞品并跳过本步骤。
$ARGUMENTS否则,检查配置文件中的竞品数量:
-
4个及以下 → 直接调研所有竞品,无需确认
-
超过4个 → 询问用户聚焦哪些竞品(使用AskUserQuestion):您已跟踪[N]个竞品。请问需要分析哪些?
- 全部[N]个(约消耗[3-5 × N]个Nimble API credits,耗时约[N × 2]分钟)
- [类别A]:[名称列表](按配置文件中的分组)
category - [类别B]:[名称列表]
- 我来选择 — 我会列出具体名称
支持自然语言输入:例如“只分析AI搜索类竞品” → 根据配置文件中的类别自动匹配。此举避免浪费API credits和时间在用户当前不关心的竞品上。每个竞品约消耗3-5个Nimble API credits(1次map调用 + 3-4次extract调用 + 2-3次search调用)。
Step 3: WSA Discovery
步骤3:WSA发现
For each competitor domain and the user's domain, discover available WSAs:
bash
nimble agent list --search "{domain}" --limit 20Run one search per domain simultaneously. Filter for SERP/PDP WSAs, prefer
, validate with .
Cache discovered names + params. Pass them to competitor agents in Step 5 for
richer extraction. If no WSAs found, continue with .
managed_by: "nimble"nimble agent get --template-name {name}nimble search/extract/map针对每个竞品域名和用户自身域名,发现可用的WSA:
bash
nimble agent list --search "{domain}" --limit 20为每个域名并行执行一次搜索。筛选SERP/PDP类型的WSA,优先选择的WSA,通过验证。缓存发现的名称和参数。将其传递给步骤5中的竞品代理以获取更丰富的提取数据。若未找到WSA,继续使用。
managed_by: "nimble"nimble agent get --template-name {name}nimble search/extract/mapStep 4: Capture the User's Own Positioning (baseline)
步骤4:捕获用户自身定位(基准线)
Before analyzing competitors, capture the user's own positioning as a baseline for
the messaging matrix.
First, discover the site structure to find the right pages to extract:
nimble --transform "links.#.url" map --url "https://[company-domain]" --sitemap only --limit 200From the returned URLs, identify the features/product page and pricing page (look
for paths containing , , , , ).
/features/product/platform/pricing/plansThen extract the key pages simultaneously (homepage + whichever pages map found):
- → Homepage messaging, tagline, hero copy, CTAs
nimble extract --url "https://[company-domain]" --format markdown - → Features page structure and emphasis (skip if map found no match)
nimble extract --url "[features-page-url]" --format markdown - → Pricing structure and tier naming (skip if map found no match)
nimble extract --url "[pricing-page-url]" --format markdown
If a page extraction returns garbage, note "page not accessible" and continue —
partial baseline is better than none.
分析竞品前,先捕获用户自身的定位作为信息传递矩阵的基准线。
首先,发现网站结构以确定需要提取的页面:
nimble --transform "links.#.url" map --url "https://[company-domain]" --sitemap only --limit 200从返回的URL中,识别功能/产品页面和定价页面(查找包含、、、、路径的页面)。
/features/product/platform/pricing/plans然后并行提取关键页面(首页 + map工具找到的相关页面):
- → 首页信息传递内容、标语、核心文案、CTA
nimble extract --url "https://[company-domain]" --format markdown - → 功能页面结构和重点(若map工具未找到匹配页面则跳过)
nimble extract --url "[features-page-url]" --format markdown - → 定价结构和层级命名(若map工具未找到匹配页面则跳过)
nimble extract --url "[pricing-page-url]" --format markdown
若页面提取返回无效内容,标注“页面无法访问”并继续 — 部分基准数据总比没有好。
Step 5: Parallel Research Per Competitor (sub-agents)
步骤5:竞品并行调研(子代理)
Read for the full agent prompt template.
Follow the sub-agent spawning rules from
(bypassPermissions, batch max 4, explicit Bash instruction, fallback on failure).
references/positioning-agent-prompt.mdreferences/nimble-playbook.mdCall estimation & Scaled Execution: Before launching agents, estimate total API
calls: ~1 map + 3 extractions + 3 searches per competitor = ~7 × N calls (plus baseline
from Step 3). For 2+ competitors (14+ calls), tell agents to use for
page extractions instead of individual calls. See the Scaled Execution pattern in
for tier selection.
extract-batchreferences/nimble-playbook.mdFor each competitor in scope, spawn a general-purpose sub-agent with
and inline the prompt from
. Customize the prompt with each competitor's
name, domain, start-date, previous positioning snapshot from memory (loaded in
Step 0), and any discovered WSA names from Step 3 for richer data access.
mode: "bypassPermissions"references/positioning-agent-prompt.mdDo NOT use — that agent is scoped for raw data gathering
and explicitly forbids analysis, but this skill requires interpretive work (identifying
audience signals, comparing positioning snapshots, assessing structure implications).
agents/nimble-researcher.mdEach agent handles the complete research cycle for one competitor:
- to discover the site's actual page structure
nimble map - Extract homepage, features, and pricing pages (using discovered URLs)
- Search for and extract recent blog posts (2-3 deep dives)
- Analyze social proof (case studies, testimonials)
- Compare against previous snapshot for changes
The agent returns a structured positioning snapshot — see the prompt template for the
full output format. No separate blog extraction step is needed; agents handle it.
If an agent's blog extraction was thin (< 2 posts extracted), optionally extract
additional posts from the main context using URLs from the agent's search results.
Fallback: If an agent fails entirely, run extractions directly from the main context
using the same prompt template steps.
阅读获取完整的代理提示模板。遵循中的子代理生成规则(bypassPermissions、批量最大4个、明确Bash指令、失败时降级处理)。
references/positioning-agent-prompt.mdreferences/nimble-playbook.md调用估算与规模化执行:启动代理前,估算总API调用次数:每个竞品约1次map调用 + 3次提取调用 + 3次搜索调用 = 约7 × N次调用(加上步骤3的基准调用)。针对2个及以上竞品(14次及以上调用),告知代理使用进行页面提取,而非单独调用。参考中的规模化执行模式选择层级。
extract-batchreferences/nimble-playbook.md针对每个目标竞品,生成一个通用型子代理,设置,并嵌入中的提示模板。根据每个竞品的名称、域名、起始日期、记忆中加载的过往定位快照(步骤0中加载)以及步骤3中发现的WSA名称自定义提示,以获取更丰富的数据访问权限。
mode: "bypassPermissions"references/positioning-agent-prompt.md请勿使用 — 该代理仅用于原始数据收集,明确禁止分析,但本工具需要解释性工作(识别受众信号、对比定位快照、评估结构影响)。
agents/nimble-researcher.md每个代理负责单个竞品的完整调研周期:
- 使用发现网站实际页面结构
nimble map - 提取首页、功能页和定价页(使用发现的URL)
- 搜索并提取近期博客文章(深入分析2-3篇)
- 分析社交证明(案例研究、客户证言)
- 与过往快照对比找出变化
代理返回结构化的定位快照 — 查看提示模板获取完整输出格式。无需单独的博客提取步骤;代理会自行处理。
若代理提取的博客内容不足(提取的文章少于2篇),可根据代理搜索结果中的URL,从主上下文额外提取更多文章。
降级方案:若代理完全失败,直接从主上下文使用相同的提示模板步骤执行提取操作。
Step 6: Analysis & Output
步骤6:分析与输出
Frame everything for a marketing team. Use terms they work with: messaging
hierarchy, share of voice, battlecard inputs, content calendar implications.
When analyzing blog content from agent results, look for:
- Recurring narratives — what story is this company telling repeatedly?
- Audience targeting — are posts aimed at developers, executives, practitioners?
- Competitive mentions — do they name competitors or position against categories?
- SEO patterns — what keywords do titles and headings target?
- Content maturity — original research, thought leadership, or generic how-tos?
Full snapshot mode (first run or > 14 days since last):
-
TL;DR for Marketing — 3-5 key positioning insights the marketing team should act on, each with a specific implication (e.g., "Competitor X shifted tagline from developer-focused to enterprise — consider whether our messaging still differentiates")
-
Messaging Matrix — build a comparison table with rows for Tagline, Primary CTA, Value Props, Target Audience, and Pricing Model across all competitors including your company. Use verbatim quotes for taglines and CTAs.
-
Per Competitor — Positioning Profile:
- Site structure signals (what pages exist/don't exist, subdomains)
- Homepage messaging breakdown (tagline, hero, CTAs, value props)
- Features page analysis (what they emphasize, differentiation claims)
- Pricing positioning (model, tier strategy, enterprise signals)
- Content strategy (blog themes, cadence, audience, content types)
- Social proof strategy (who they showcase, what outcomes they highlight)
-
Content Gap Analysis — what competitors are publishing that you're not:
- Topics they cover that you don't
- Content formats they use (case studies, benchmarks, ROI calculators)
- Audience segments they address in content
-
Positioning White Space — messaging angles no competitor has claimed strongly:
- Unclaimed value props
- Underserved audience segments
- Narrative gaps
-
Recommended Actions — specific, actionable next steps for the marketing team (e.g., "Draft counter-messaging for Competitor X's new enterprise positioning", "Prioritize case studies targeting [segment] — 3 competitors already own this space")
Delta mode (last run < 14 days) — changes only:
-
What Changed — per competitor, before/after for each shift:
- "Tagline: '[old]' → '[new]'"
- "New feature category added: [name]"
- "Pricing model shifted from [old] to [new]"
- "New blog theme emerging: [topic] (3 posts in last 2 weeks)"
-
Nothing Changed — list competitors with no positioning shifts
-
Marketing Implications — what the changes mean for your team's priorities
Core rules:
- Every claim must link to the source page.
- Deduplicate against — in delta mode, only surface genuinely new changes.
~/.nimble/memory/positioning/*.md - Say "no positioning changes detected" rather than padding with fluff.
- Use verbatim quotes for taglines, CTAs, and value props — don't paraphrase.
WSA enrichment: If WSAs were discovered in Step 3, agents should use them
alongside / for richer page data.
nimble mapnimble extract所有内容均面向营销团队呈现。使用营销团队常用术语:信息传递层级、话语权份额、作战卡片输入、内容日历影响。
分析代理返回的博客内容时,重点关注:
- 重复叙事 — 该公司反复传递的核心故事是什么?
- 受众定位 — 文章针对开发者、高管还是从业者?
- 竞品提及 — 他们是否点名竞品或针对品类进行定位?
- SEO模式 — 标题和副标题瞄准哪些关键词?
- 内容成熟度 — 原创研究、思想领导力内容还是通用指南?
完整快照模式(首次运行或上次运行距今超过14天):
-
营销团队速览 — 3-5个营销团队应采取行动的关键定位洞察,每个洞察附带具体影响(例如:“竞品X的标语从面向开发者转向面向企业 — 需考量我们的信息传递是否仍具备差异化”)
-
信息传递矩阵 — 创建对比表格,行维度包括标语、核心CTA、价值主张、目标受众、定价模型,涵盖所有竞品及用户自身公司。标语和CTA使用原文引用。
-
单个竞品定位档案:
- 网站结构信号(存在/缺失的页面、子域名)
- 首页信息传递拆解(标语、核心文案、CTA、价值主张)
- 功能页分析(他们强调的内容、差异化主张)
- 定价定位(模型、层级策略、企业级信号)
- 内容策略(博客主题、发布频率、受众、内容类型)
- 社交证明策略(展示的客户群体、强调的成果)
-
内容差距分析 — 竞品发布但用户未发布的内容:
- 他们覆盖但用户未覆盖的主题
- 他们使用但用户未使用的内容格式(案例研究、基准数据、ROI计算器)
- 他们在内容中针对但用户未覆盖的受众群体
-
定位空白区域 — 尚无竞品强势占据的信息传递角度:
- 未被主张的价值主张
- 服务不足的受众群体
- 叙事空白
-
建议行动 — 针对营销团队的具体、可执行的下一步措施(例如:“针对竞品X新的企业定位起草反制信息”、“优先制作面向[群体]的案例研究 — 已有3个竞品占据该领域”)
差异模式(上次运行距今不足14天)— 仅展示变化:
-
变化内容 — 每个竞品的各项变化前后对比:
- “标语:'[旧内容]' → '[新内容]'”
- “新增功能类别:[名称]”
- “定价模型从[旧模型]转向[新模型]”
- “出现新的博客主题:[主题](近2周发布3篇文章)”
-
无变化竞品 — 列出未发生定位变化的竞品
-
营销影响 — 这些变化对团队优先级的意义
核心规则:
- 所有主张必须链接至来源页面。
- 与去重 — 在差异模式下,仅展示真正的新变化。
~/.nimble/memory/positioning/*.md - 若未检测到定位变化,直接说明“未检测到定位变化”,无需冗余内容。
- 标语、CTA和价值主张使用原文引用 — 请勿意译。
WSA增强:若步骤3中发现WSA,代理应结合/使用WSA以获取更丰富的页面数据。
nimble mapnimble extractStep 7: Save & Update Memory
步骤7:保存与更新记忆
Make all Write calls simultaneously:
-
Report →(save the full briefing, not a summary — this is the local source of truth)
~/.nimble/memory/reports/competitor-positioning-[date].md -
Per competitor → save positioning snapshot tousing the format in
~/.nimble/memory/positioning/[name].md. Append a dated entry to the History section so future runs can detect what changed and when. Addreferences/positioning-snapshot-format.mdcross-references to link positioning snapshots to competitor intel files.[[competitors/name]] -
Profile → updatein
last_runs.competitor-positioning~/.nimble/business-profile.json -
Follow the wiki update pattern from: update
references/memory-and-distribution.mdrows for all affected entity files, append aindex.mdentry for this run.log.md
同时执行所有写入操作:
-
报告 →(保存完整简报,而非摘要 — 这是本地的可信数据源)
~/.nimble/memory/reports/competitor-positioning-[date].md -
单个竞品 → 将定位快照保存至,使用
~/.nimble/memory/positioning/[name].md中的格式。在历史部分添加带日期的条目,以便后续运行检测变化及时间。添加references/positioning-snapshot-format.md交叉引用,将定位快照与竞品情报文件关联。[[competitors/name]] -
配置文件 → 更新中的
~/.nimble/business-profile.jsonlast_runs.competitor-positioning -
遵循中的维基更新模式:更新所有受影响实体文件的
references/memory-and-distribution.md行,在index.md中添加本次运行的条目。log.md
Step 8: Share & Distribute
步骤8:分享与分发
Always offer distribution — do not skip this step. Follow
for connector detection, sharing flow, and
source links enforcement. Marketing teams especially benefit from shared Notion pages
they can reference in positioning workshops and content planning sessions.
references/memory-and-distribution.md务必提供分发选项 — 请勿跳过本步骤。遵循中的连接器检测、分享流程和来源链接强制要求。营销团队尤其受益于可在定位研讨会和内容规划会议中参考的共享Notion页面。
references/memory-and-distribution.mdBattlecard Generation
作战卡片生成
Triggered by argument or as a follow-up request.
"battlecard [competitor]"Inputs: Read the competitor's positioning snapshot from
and the user's own baseline from the most
recent report. If no snapshot exists (or it's stale > 14 days), run Steps 4-5 for
that competitor first, then return here.
~/.nimble/memory/positioning/[name].mdOutput format:
undefined由参数或后续请求触发。
"battlecard [competitor]"输入:从读取竞品定位快照,从最新报告读取用户自身基准线。若快照不存在(或已过期超过14天),先针对该竞品执行步骤4-5,再返回本环节。
~/.nimble/memory/positioning/[name].md输出格式:
undefinedBattlecard: [Your Company] vs [Competitor]
作战卡片:[你的公司] vs [竞品]
As of [date]
更新日期:[日期]
Competitor Overview
竞品概述
- Tagline: [verbatim]
- Primary CTA: [verbatim]
- Target audience: [who their messaging speaks to]
- Pricing model: [type and entry price if known]
- 标语:[原文引用]
- 核心CTA:[原文引用]
- 目标受众:[其信息传递针对的群体]
- 定价模型:[类型及已知入门价格]
Their Key Claims
竞品核心主张
[List each value prop / differentiator they emphasize, verbatim with source URL]
[列出他们强调的每个价值主张/差异化点,原文引用并附带来源URL]
Our Counter-Positioning
我方反制定位
[For each claim above: our response, proof points, and messaging angle]
[针对上述每个主张:我方回应、证据要点、信息传递角度]
Feature Comparison
功能对比
| Capability | Us | Them | Advantage |
|---|
| 能力 | 我方 | 竞品 | 优势方 |
|---|
Where They Win (acknowledge honestly)
竞品优势(如实承认)
[Areas where their positioning is stronger or they have genuine advantages]
[他们定位更强或具备真正优势的领域]
Where We Win
我方优势
[Our unique advantages, with evidence]
[我方独特优势,附证据]
Objection Handling
异议处理
| Prospect Says | Respond With |
|---|
| 客户疑问 | 我方回应 |
|---|
Recommended Talking Points
推荐沟通要点
[3-5 concise talking points for sales/marketing conversations]
---[3-5个供销售/营销沟通使用的简洁要点]
---Step 9: Follow-ups
步骤9:后续操作
- Generate battlecard for a competitor → runs Battlecard Generation above
- Draft counter-messaging for a specific competitor claim → suggest alternative angles and proof points
- Content calendar comparison → map your publishing against competitors' cadence
- Go deeper on a competitor → extract additional pages (about, careers, partners, case studies)
- Track a new competitor → update , create positioning snapshot
competitors - Skip a competitor → update
preferences.skip_competitors - "Looks good" → done
Sibling skill suggestions:
Next steps:
- Run
for business signals (funding, hiring, product launches)competitor-intel- Run
for a full 360 profile on any competitorcompany-deep-dive- Run
if you're meeting with someone at a competitormeeting-prep
- 生成作战卡片针对某竞品 → 执行上述作战卡片生成环节
- 起草反制信息针对某竞品的特定主张 → 建议替代角度和证据要点
- 内容日历对比 → 将我方发布节奏与竞品对比
- 深入分析某竞品 → 提取更多页面(关于我们、招聘、合作伙伴、案例研究)
- 跟踪新竞品 → 更新,创建定位快照
competitors - 跳过某竞品 → 更新
preferences.skip_competitors - "看起来不错" → 操作完成
关联工具建议:
下一步建议:
- 运行
获取商业信号(融资、招聘、产品发布)competitor-intel- 运行
获取任意竞品的全方位档案company-deep-dive- 若要与竞品人员会面,运行
meeting-prep
Agent Teams Mode (Dual-Mode)
代理团队模式(双模式)
Check at startup:
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSTeam mode (flag set):
- Use the tool with
Agentparameter so teammates are addressablename: - Teammates can use to share cross-competitor patterns they discover (e.g., "two competitors both shifted to usage-based pricing this month")
SendMessage - After all competitor teammates return, spawn a Marketing Analyst teammate with all findings as input, focused solely on content gap analysis and positioning white space — this separates data collection from strategic analysis
- Lead synthesizes the final cross-validated marketing briefing
Solo mode (flag not set):
- Standard fire-and-forget sub-agents (no , no
SendMessage)name: - All analysis happens in the main context after agents return
启动时检查:
echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS团队模式(已设置标志):
- 使用工具并指定
Agent参数,以便团队成员可被寻址name: - 团队成员可使用分享他们发现的跨竞品模式(例如:“两个竞品本月均转向基于使用量的定价模式”)
SendMessage - 所有竞品团队成员返回结果后,生成一个营销分析师团队成员,将所有发现作为输入,专注于内容差距分析和定位空白区域 — 这将数据收集与战略分析分离
- 主导者综合最终的交叉验证营销简报
单模式(未设置标志):
- 使用标准的一次性子代理(无,无
SendMessage)name: - 所有分析在代理返回结果后于主上下文完成
Error Handling
错误处理
See for the standard error table (missing API key, 429,
401, empty results, extraction garbage). Skill-specific errors:
references/nimble-playbook.md- Search 500: Retry once without flag. If still failing, retry with a simplified query (shorter terms, no date filter). Log the failure but don't skip the competitor.
--focus - Search timeout: Retry once, then skip that call and continue — consistent with the playbook's timeout policy.
- Page extraction fails (404/garbage): The map step should prevent most 404s by discovering actual URLs first. If extraction still fails, note "page not accessible" and continue — partial data is better than no data.
- Map returns empty: Some sites block sitemap access. Fall back to extracting the homepage directly and guessing common paths (/features, /pricing, /blog).
- Empty blog results: Some companies don't blog. Note "no active blog detected" and focus on page-based positioning instead.
参考中的标准错误表(缺失API密钥、429错误、401错误、空结果、提取无效内容)。本工具特定错误处理:
references/nimble-playbook.md- 搜索500错误:不带标志重试一次。若仍失败,使用简化查询(更短术语、无日期筛选)重试。记录失败但不跳过该竞品。
--focus - 搜索超时:重试一次,然后跳过该调用并继续 — 与操作手册中的超时策略一致。
- 页面提取失败(404/无效内容):map步骤应通过先发现实际URL避免大多数404错误。若提取仍失败,标注“页面无法访问”并继续 — 部分数据总比没有好。
- Map返回空结果:部分网站阻止站点地图访问。降级方案为直接提取首页并猜测常见路径(/features、/pricing、/blog)。
- 博客结果为空:部分公司不运营博客。标注“未检测到活跃博客”并专注于基于页面的定位分析。",