← NimbleCONTENT HISTORY

Update to Nimble

Snapshot Sep 30, 2026 · 22:54 UTC · version 1.7.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "company-deep-dive",
  "description": "Use this skill ANY TIME the user asks about a specific company. Triggers:\n\"tell me about [company]\", \"research [company]\", \"what does [company] do\",\n\"who is [company]\", \"look up [company]\", \"company deep dive\", \"due diligence\non [company]\", \"background on [company]\", \"dig into [company]\", \"analyze\n[company]\", or evaluating a company for investment, partnership, or sales.\nMUST be used instead of answering from memory — fetches real-time web data\n(funding, leadership changes, product launches, news) your training data\nlacks. Use even for well-known companies.\n\nProduces a sourced 360° report covering funding, leadership, product/tech,\nmarket position, news, and strategic outlook with dates and URLs.\n\nDo NOT use for multi-company competitor monitoring (use competitor-intel)\nor meeting prep with attendees (use meeting-prep).\n",
  "included_files": [
    {
      "relative_path": "references/dimension-agent-prompt.md",
      "size_in_bytes": 5089
    },
    {
      "relative_path": "references/memory-and-distribution.md",
      "size_in_bytes": 22058
    },
    {
      "relative_path": "references/nimble-playbook.md",
      "size_in_bytes": 37015
    },
    {
      "relative_path": "references/profile-and-onboarding.md",
      "size_in_bytes": 9344
    }
  ],
  "skill_md_contents": "---\nname: company-deep-dive\ndescription: |\n  Use this skill ANY TIME the user asks about a specific company. Triggers:\n  \"tell me about [company]\", \"research [company]\", \"what does [company] do\",\n  \"who is [company]\", \"look up [company]\", \"company deep dive\", \"due diligence\n  on [company]\", \"background on [company]\", \"dig into [company]\", \"analyze\n  [company]\", or evaluating a company for investment, partnership, or sales.\n  MUST be used instead of answering from memory — fetches real-time web data\n  (funding, leadership changes, product launches, news) your training data\n  lacks. Use even for well-known companies.\n\n  Produces a sourced 360° report covering funding, leadership, product/tech,\n  market position, news, and strategic outlook with dates and URLs.\n\n  Do NOT use for multi-company competitor monitoring (use competitor-intel)\n  or meeting prep with attendees (use meeting-prep).\nallowed-tools:\n  - Bash(nimble:*)\n  - Bash(date:*)\n  - Bash(cat:*)\n  - Bash(mkdir:*)\n  - Bash(python3:*)\n  - Bash(echo:*)\n  - Bash(jq:*)\n  - Bash(ls:*)\n  - Read\n  - Write\n  - Edit\n  - Glob\n  - Grep\n  - Agent\n  - AskUserQuestion\nmetadata:\n  author: Nimbleway\n  version: 1.6.1\n  category: business-research\n---\n\n# Company Deep Dive\n\n360° company research powered by Nimble's web data APIs.\n\nUser request: $ARGUMENTS\n\n**Before running any commands**, read `references/nimble-playbook.md` for Claude Code\nconstraints (no shell state, no `&`/`wait`, sub-agent permissions, communication style).\n\n---\n\n## Instructions\n\n### Step 0: Preflight\n\nFollow the transport selection + standard preflight from `references/nimble-playbook.md` — pick CLI or MCP at session start, then run the standard preflight calls (date calc, today, profile, memory index) in parallel.\n\nFrom the results:\n- CLI missing or API key unset → `references/profile-and-onboarding.md`, stop\n- Tag all `nimble` CLI calls: `nimble --client-source nimble-agent-skills <subcommand>`. MCP requests are attributed at the transport level — see `references/nimble-playbook.md`.\n- Profile exists → note it for context (company name helps frame the research). Read\n  `~/.nimble/memory/companies/index.md` to check if the target company already has\n  prior research. Follow `[[path/entity]]` cross-references to load related context.\n  - **Prior research exists:** Load it. Run in **refresh mode** — focus on what's new\n    since the last report date. Tell the user: \"I have prior research on [Company]\n    from [date]. Refreshing with latest data.\"\n  - **No prior research:** Run in **full mode** — comprehensive across all dimensions.\n- No profile → that's fine. Company deep dive doesn't require onboarding (unlike\n  competitor-intel). Proceed directly to Step 1.\n\n### Step 1: Identify Target Company\n\nParse the target company from `$ARGUMENTS` or the user's message.\n\n**If clear** (e.g., \"research Stripe\", \"tell me about Datadog\"):\n- Extract the company name\n- Run two Bash calls simultaneously to confirm identity:\n  - `nimble search --query \"[Company] official site\" --max-results 3 --search-depth lite`\n  - `nimble search --query \"[Company] company overview\" --max-results 5 --search-depth lite`\n- Confirm briefly: \"Researching **[Company]** ([domain])...\"\n\n**If ambiguous** (e.g., \"research Mercury\" — could be bank, auto, or other):\n- Ask one clarifying question with the top candidates\n\n**If missing** — ask: \"Which company would you like me to research?\"\n\n**Scope selection** — if the user hasn't specified depth, default to **full deep dive**.\nIf they say \"quick overview\", \"brief\", or \"summary\", run a **quick mode** that skips\nthe Deep Extraction step and produces a shorter report.\n\n### Step 2: WSA Discovery\n\nDiscover available WSAs for the target company's domain. Run both searches\nsimultaneously:\n\n```bash\nnimble extract:templates list --limit 100  # then filter items for \"{company-domain}\"\n```\n\n```bash\nnimble extract:templates list --limit 100  # then filter items for \"{company-name}\"\n```\n\nFrom the results, filter for WSAs with `entity_type` matching SERP or PDP, and\nprefer `managed_by: \"nimble\"`. Validate each with\n`nimble extract:templates get --extract-template-name {name}`, then cache discovered WSA names + params\nfor the run. Pass them to dimension agents in Step 3 for enrichment alongside\n`nimble search`. If no WSAs found, continue with `nimble search` alone.\n\n### Step 3: Parallel Research Across Dimensions (sub-agents)\n\nRead `references/dimension-agent-prompt.md` for the full agent prompt template.\nFollow the sub-agent spawning rules from `references/nimble-playbook.md`\n(bypassPermissions, batch max 4, explicit Bash instruction, fallback on failure).\n\nSpawn `nimble-researcher` agents (`agents/nimble-researcher.md`) with\n`mode: \"bypassPermissions\"`. Each agent researches one dimension of the company.\nPass discovered WSA names from Step 2 to each agent so they can use them for\nenrichment alongside `nimble search`.\n\n**Important:** The Nimble API has a 10 req/sec rate limit per API key. With each agent\nrunning 4-5 searches in parallel, limit concurrent agents to 2 per batch to stay under\nthe limit. Run overview searches in their own phase, not alongside agent batches.\n\n**Call estimation & Scaled Execution:** Before launching agents, estimate total API\ncalls: 2 overview searches + ~5 searches per agent × 5 agents = ~27 calls. Each agent\nshould use `extract-batch` or `agent run-batch` for 11+ calls instead of individual\ncalls. See the Scaled Execution pattern in `references/nimble-playbook.md` for tier\nselection.\n\n**Phase A — Overview searches** (run directly, before agents):\n\n- `nimble search --query \"about\" --include-domain '[\"[domain]\"]' --max-results 3 --search-depth lite`\n- `nimble search --query \"[Company] Wikipedia OR Crunchbase OR Pitchbook\" --max-results 5 --search-depth lite`\n\nThese give foundational context (founding date, HQ, employee count, mission) that\nframes all dimensional findings.\n\n**Phase B — Batch 1** (2 agents simultaneously):\n\n| Agent | Dimension | Focus |\n|-------|-----------|-------|\n| 1 | **Funding & Financials** | Funding rounds, valuation, revenue signals, investors, financial health |\n| 2 | **Product & Technology** | Products, tech stack, recent launches, engineering blog, open-source |\n\n**Phase C — Batch 2** (2 agents simultaneously):\n\n| Agent | Dimension | Focus |\n|-------|-----------|-------|\n| 3 | **Leadership & Team** | Founders, C-suite, key hires, departures, team size, culture signals |\n| 4 | **Recent News & Events** | Press coverage, announcements, partnerships, awards, conferences |\n\n**Phase D — Batch 3** (1 agent):\n\n| Agent | Dimension | Focus |\n|-------|-----------|-------|\n| 5 | **Market Position** | Competitors, market share, positioning, analyst coverage, customer reviews |\n\n**Refresh mode adjustment:** If prior research exists, pass the known facts to each\nagent as context so they focus on what's new. Agents should use `--start-date` to\nfilter for recent data only.\n\n**Fallback:** If any agent fails or returns empty, run those dimension searches\ndirectly from the main context. Don't leave gaps in the report.\n\n### Step 4: Deep Extraction\n\nFrom all agents' results, identify the **top 5-8 most informative URLs** across\ndimensions. Prioritize:\n- Funding announcements with specific amounts\n- Official product/feature pages\n- Executive interviews, podcast appearances, or conference talks\n- In-depth analyst or journalist profiles\n- The company's own about/team page\n\nMake one Bash call per URL, all simultaneously:\n\n`nimble extract --url \"https://...\" --format markdown`\n\nFor extraction failures, follow the fallback in `references/nimble-playbook.md`.\n\n**Quick mode:** Skip this step entirely. Report from search snippets only.\n\n**WSA enrichment:** If WSAs were discovered in Step 2, use them here for richer\nextraction on key URLs before falling back to `nimble extract`.\n\n### Step 5: Synthesize Report\n\nStructure the output as a **360° Company Report**:\n\n```\n# [Company Name] — Deep Dive\n*As of [today's date]*\n\n## Quick Assessment\n[2-3 sentence verdict: what this company is, where they stand, and the one thing\nthat matters most right now. This is the \"if you read nothing else\" paragraph.]\n\n## Company Overview\n- Founded: [year] | HQ: [location] | Employees: [estimate]\n- Domain: [domain] | Industry: [industry]\n- Mission/focus: [one line]\n\n## Funding & Financials\n[Latest round, total raised, key investors, valuation signals, revenue indicators.\nEvery claim dated and sourced.]\n\n## Leadership & Team\n[Founders, C-suite, notable recent hires or departures. Executive perspectives\non company direction — direct quotes when available from interviews or talks.]\n\n## Product & Technology\n[Core products, recent launches, tech stack signals, engineering culture,\nopen-source contributions. What they're building and how.]\n\n## Market Position\n[Key competitors, differentiation, market share signals, analyst perspectives,\ncustomer sentiment from reviews (G2/Capterra/Reddit).]\n\n## Recent News & Events\n[Chronological, most recent first. Each entry dated with source.]\n\n## Strategic Outlook\n[Synthesis across all dimensions: where the company is heading, key risks,\ngrowth signals, and strategic bets. This is insight, not summary.]\n\n## Sources\n[Numbered list of all URLs cited in the report]\n```\n\n**Core rules:**\n- Every factual claim must have a date and source URL.\n- Lead with the Quick Assessment — most readers stop there.\n- Say \"no public data found\" for a dimension rather than speculating.\n- Distinguish between confirmed facts and inferred signals.\n- Executive quotes add credibility — include direct quotes from interviews,\n  earnings calls, or conference talks when found.\n- In refresh mode: lead with \"What's New Since [last date]\" before the full sections.\n\n### Step 6: Save to Memory\n\nMake all Write calls simultaneously:\n\n- Report → `~/.nimble/memory/reports/company-deep-dive-[date].md`\n- Company profile → `~/.nimble/memory/companies/[company-name-slug].md`\n  (use the format in `references/memory-and-distribution.md`). Add `[[path/entity]]`\n  cross-references for key people discovered (e.g., `[[people/jane-smith]]`),\n  competitors in the same space (e.g., `[[competitors/widgetco]]`), and any other\n  related entities.\n- If profile exists → update `last_runs.company-deep-dive` in\n  `~/.nimble/business-profile.json`\n- Follow the wiki update pattern from `references/memory-and-distribution.md`: update\n  `index.md` rows for all affected entity files, append a `log.md` entry for this run.\n\nThe company profile in `companies/` should contain structured key facts (overview,\nfinancials, leadership, products) that can be loaded by future runs of any skill\nthat needs context on this company.\n\n### Step 7: Share & Distribute\n\n**Always offer distribution — do not skip this step.** Follow\n`references/memory-and-distribution.md` for connector detection, sharing flow, and\nsource links enforcement.\n\n### Step 8: Follow-ups\n\n- **Go deeper** on a dimension → focused searches on that topic\n- **Compare with another company** → side-by-side analysis\n- **\"What about [specific topic]?\"** → targeted search + extraction\n- **\"Looks good\"** → done\n\n**Sibling skill suggestions:**\n\n> **Next steps:**\n> - Run `competitor-intel` to track this company as a competitor over time\n> - Run `meeting-prep` if you're meeting with someone at this company\n> - Run `competitor-positioning` to analyze their messaging vs yours\n\n---\n\n## Agent Teams Mode (Dual-Mode)\n\nCheck at startup: `echo $CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`\n\n**Team mode** (flag set): Spawn 3 **teammates** instead of sub-agents. Each teammate\ncovers related dimensions and can message the others to cross-check findings.\n\n| Teammate | Dimensions | Cross-checks with |\n|----------|-----------|-------------------|\n| **Financials & News** | Funding, revenue, recent news, events | Market (valuation vs positioning) |\n| **Product & Leadership** | Products, tech stack, founders, key hires | Financials (pivots vs funding) |\n| **Market** | Competitors, positioning, reviews, analysts | Product (differentiation claims) |\n\nLead (you): Create shared tasks, wait for all teammates to complete, then synthesize\nthe final report. When a teammate finds a claim that another should verify (e.g., a\nfunding amount that implies a valuation), it posts a task for the relevant teammate.\n\n**Solo mode** (flag not set): Standard sub-agent flow from Step 3.\n\n---\n\n## What This Skill Is NOT\n\n- **Not competitor monitoring.** For tracking multiple competitors over time, use\n  `competitor-intel`. This skill goes deep on ONE company.\n- **Not meeting prep.** For researching people you're meeting with, use `meeting-prep`.\n  This skill researches companies, not individuals.\n- **Not financial advice.** This is intelligence gathering from public sources, not\n  investment analysis or due diligence certification.\n- **Not real-time monitoring.** This produces a point-in-time report. For ongoing\n  tracking, run it again later or use `competitor-intel` with the company added.\n\n---\n\n## Error Handling\n\nSee `references/nimble-playbook.md` for the standard error table (missing API key, 429,\n401, empty results, extraction garbage). Skill-specific errors:\n\n- **Search 500:** Retry once without `--focus` flag. If still failing, retry with a\n  simplified query (shorter terms, no date filter). Log the failure but don't skip\n  the dimension.\n- **Search timeout:** Retry once, then skip that call and continue — consistent with\n  the playbook's timeout policy.\n- **Company not found:** Retry with domain, alternative names, or parent company\n- **Empty results for a dimension:** Note \"No public data found\" — don't speculate\n"
}

SHA-256: 288f2534a613cd6e7fbe20df7151ee8ddb3e9336eeb2f056e7af26d0df0017a7