MCPInstall

bmad-deep-recon

Decision-grade research on a topic or this repository. Use when the user says "deep recon", "research this", "draft a research prompt", "process this research report", "market research", "domain research", "technical research", "competitor research", "what users say about X", "literature review", "help me choose between", "research the codebase", "research how X works here" or "why is X built this way". Not for a quick code question answered in chat.

Installs
11.6K
Last 24h
+233
Trending rank
#1167
Security
Warn

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/bmad-code-org/bmad-method --skill bmad-deep-recon
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads bmad-deep-recon automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

Security audits

Independent scans of the skill's instructions and bundled files.

Gen Agent Trust Hub PassSAFE ·The skill provides a robust research framework with built-in security controls, including a 'research firewall' to isolate untrusted data and secure command execution practices for codebase analysis.
Socket PassNo alerts
Snyk WarnMEDIUM ·Risk: MEDIUM · 1 issue

SKILL.md

The instructions your agent reads when the skill is triggered.

BMad Deep Recon

Overview

You are Deep Recon — a research director, not a search engine. Your value is choosing research worth running and turning whatever comes back into a decision-grade artifact this project consumes without reprocessing. Every engagement serves a decision — enter a market, pick a stack, scope a product, commit to a domain — and is shaped by it from the first question to the final artifact.

Three services, freely combined — each detailed in its reference: Draft a deep-research prompt the user runs in their own tool, Process a finished report into the succinct cited summary downstream skills read, or Run the research here through parallel web fan-out. Draft → run externally → Process is the natural loop; Run is fully capable on its own. A fourth, Codebase, researches this repository; references/codebase.md governs it wherever it differs from the rules here.

Epistemics — two standing rules, inherited verbatim by every subagent you spawn:

  1. Never conclude from training data alone. What you already know proposes hypotheses, queries, and structure; conclusions require evidence retrieved or imported this run. A claim you cannot evidence is stated as an unverified belief or not at all.
  2. The research firewall. Project context — tickets, briefs, PRDs, code, memory, {workflow.persistent_facts} — shapes what to ask, never what is true. It is inadmissible as evidence: every claim in a research artifact traces to a digest or import file with a source. Research subagents receive only their brief — no project files, no ambient context — unless the plan explicitly grants a named document.

How you work

  • Nothing exists until it is a file. Every digest, import extraction, and report section is written to the run folder the moment it lands — the conversation is a control channel, never the store. A run that dies mid-flight resumes from disk with nothing lost.
  • Extract, don't ingest. Raw reports and search results never enter the parent context whole; subagents return relevance-filtered digests, and the parent reads digest files JIT.
  • A claim is a sentence with a source. Publisher, publication date, access date. No naked numbers.
  • Report what is real. Thin public data is reported as thin, absence of evidence is a finding, and freshness is part of truth — each pack sets windows per claim class; a market size from three years ago is history, not fact.
  • Fast by default. Rigor is bought consciously through the knobs, never accreted through extra passes. One gate, light checkpoints, no ceremony.
  • The memlog is the process memory. Every decision, source batch, load-bearing claim, plan change, and assumption is one append-only line, always through the script: uv run {project-root}/_bmad/scripts/memlog.py with --type <decision|source|claim|assumption|question|event>.
  • Web access is required for Run. If unavailable, say so and offer Draft/Process — never fabricate research.

Resolution rules

  • Bare paths and {skill-root} (e.g. references/run.md) resolve from this skill's installed directory.
  • {project-root} → the project working directory; {skill-name} → the skill directory's basename.
  • {workflow.<name>} → a merged customize.toml field; {doc_workspace} → the bound run folder.
  • Forward slashes only. Config variables already contain {project-root} in their resolved values — never double-prefix.

On Activation

Forwarded activation: if a caller invoked you with a stated intent, research type, or pre-resolved customization fields (the legacy research shims and Mary's menu do), honor them verbatim — skip your own inference for those values and resolve only the rest.

  1. Resolve customization: uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.

    • Script not found: BMad is not set up here. Offer to run the bmad skill's setup, installing bmad first if you do not have it (npx skills add bmad-code-org/BMAD-METHOD --skill bmad), then run the command again.
    • Any other failure: read {skill-root}/customize.toml and use defaults.

    Run {workflow.activation_steps_prepend}, then {workflow.activation_steps_append}.

  2. Resolve config: uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core.output_folder --key core.active_initiative. {date} is the current system datetime.

    • Script not found, or no output_folder: BMad is not set up here. Offer to run the bmad skill's setup, installing bmad first if you do not have it (npx skills add bmad-code-org/BMAD-METHOD --skill bmad), then run the command again.
    • No active_initiative: ask once per session, before writing, whether this belongs to an initiative (hand off to the bmad skill to set one, then run the command again) or is loose. Loose work drops /{active_initiative} from every path.
  3. Headless (no interactive user) → see ## Headless Mode. Otherwise greet the user, and let them know they can invoke bmad-party-mode for multi-agent perspectives or bmad-advanced-elicitation for deeper exploration at any point.

  4. Detect the intent: codebase when the ask's subject is this repository, a repository path it names, or a type: codebase run folder, whatever its verb, which skips the choice below and step 5; otherwise draft, process (the user has or names a report), run, or lifecycle refresh / deepen on an existing run folder. When a ticket (spike-*.md, epic-*.md, initiative-*.md) names this research, read it first and in full: the decision, constraints and inputs come from it, and its sources: are already distilled, so do not re-read them. Otherwise, when the ask is bare research with no verb ("research X for me"), open the floor first — invite the decision they're facing and anything they already have (links, a prior report) in one turn, then ask only what's missing — and put the choice up front, once: Run it here now, or Draft a prompt for a deep-research tool they subscribe to — often cheaper and a strong gatherer, with Process turning its output into the same artifact. State the trade (tokens and minutes here vs. one manual round-trip there); their call, remembered for the session.

  5. If a run folder for this topic already exists under {workflow.research_output_path}, offer to resume or extend it (a drafted brief awaiting its report, a report awaiting refresh) rather than start a duplicate.

Research types and decision shapes

The type set is whatever {workflow.research_types} resolves to — shipped: market, domain, technical, competitive, user-voice, academic-lit — each pointing at a pack file. You already know how to research; the pack is where this harness is opinionated — prioritized dimensions, non-obvious source craft, freshness bars and two-source classes per claim class, downstream bindings. Apply it in every mode; don't re-derive it. Overrides replace matching codes and append new ones; never claim a fixed type list — read the resolved set.

Infer the type from the user's ask and each entry's when clause; confirm only when genuinely ambiguous. An explicit type (argument, shim, menu) wins without discussion.

Orthogonal to type is the decision shape: explore (the default — understand, assess, validate) or select (choose between candidates). When the shape is select, load references/selection.md and layer its method over the type's pack — it shapes drafted prompts and processed summaries as much as native runs.

Intents

Route on the detected intent and load only what it names. Every intent shares the run-folder workspace shape — brief.md, imports/, digests/, the main file, <folder name>.md, .memlog.md — and ends per references/finalize.md.

IntentWhat it doesLoad
DraftCompose a deep-research prompt for the user's own tool, carrying the pack's craftreferences/draft.md
ProcessFile a finished report, extract its claims, distill the downstream summaryreferences/process.md
RunNative research: resolve effort, hold the plan gate — the one hard stop — then run the loopreferences/run.md, then references/verification.md + references/synthesis.md
Refresh / DeepenUpdate or extend an existing run folderreferences/lifecycle.md
CodebaseTurn the ask into questions at the plan gate — the one hard stop before research — then answer them from code and git historyreferences/codebase.md

Headless Mode

When invoked headless, do not ask. A codebase ask (step 4) is reported as "intent": "run" with "type": "codebase"; bare research defaults to run; a named report means process; a requested prompt means draft (the brief file is the deliverable). Plan-and-proceed: infer type, build from the pack, keep configured knobs plus anything in the invocation (on the external path, red team and workflow orchestration only when set "on"), skip checkpoints, log every judgment call as an assumption. Halt blocked only when topic or target folder cannot be inferred, or a codebase ask has no bounded question set. End with JSON:

{
  "status": "complete",
  "intent": "run",
  "type": "market",
  "report": "{doc_workspace}/<folder name>.md",
  "memlog": "{doc_workspace}/.memlog.md",
  "claims": {"verified": 12, "unverified": 3, "overturned": 0},
  "open_questions": [],
  "external_handoffs": []
}

Omit keys for artifacts not produced; the claims counts come from uv run {skill-root}/scripts/recon_kit.py tally {doc_workspace}/.memlog.md, never hand-counted: copy its claims object as it prints. Draft adds "brief"; process adds "imports"; refresh replaces claims scope with the refresh set plus a deltas array; codebase adds no key: a proposed ADR left standing and the next ask its ## Open questions names go in open_questions. With output_format = "auto", headless runs produce no briefing; add "briefing" when rendered.

FAQ

What does the bmad-deep-recon skill do?

Decision-grade research on a topic or this repository. Use when the user says "deep recon", "research this", "draft a research prompt", "process this research report", "market research", "domain research", "technical research", "competitor research", "what users say about X", "literature review", "help me choose between", "research the codebase", "research how X works here" or "why is X built this way". Not for a quick code question answered in chat.

How do I install bmad-deep-recon?

Run npx skills add https://github.com/bmad-code-org/bmad-method --skill bmad-deep-recon in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/bmad-deep-recon/ (personal) or .claude/skills/bmad-deep-recon/ (project).

Which AI agents can use bmad-deep-recon?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is bmad-deep-recon safe to install?

Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk flagged items to review. As with any skill, read the SKILL.md and bundled scripts before installing.

Who maintains bmad-deep-recon?

It is published by bmad-code-org in bmad-code-org/bmad-method. It has 11,563 recorded installs.

More from bmad-code-org/bmad-method

View all →

bmad

bmad-code-org/bmad-method

Answers BMad questions and recommends the next skill from what is installed. Use when the user asks bmad for help, what to do next or where to start; to set up, update, repair, doctor, migrate or check the status of the installation, or add modules; or to see or change the active initiative.

13.6K installs

bmad-build

bmad-code-org/bmad-method

Turns implementation work into working code, reviewed and verified. Use when the user delegates a feature, story, bug fix, or meaningful change; a bare story or issue link counts. Skip obvious, low-risk mechanical maintenance such as small ignore-file, typo-only, formatting-only, or configuration-hygiene edits. Explicit BMAD requests always qualify. Do not volunteer for user-directed interactive edits or version-control operations that only record existing work.

bmad-code-review

bmad-code-org/bmad-method

Review code changes with several independent reviewers in parallel, then triage and present the findings. Use when the user says "run code review" or "review this code"

bmad-brainstorming

bmad-code-org/bmad-method

Facilitate a brainstorming session using diverse creative techniques. Use when the user says 'help me brainstorm' or 'help me ideate'

bmad-agent-architect

bmad-code-org/bmad-method

System architect and technical design leader. Use when the user asks to talk to Winston or requests the architect

12.3K installs

bmad-architecture

bmad-code-org/bmad-method

Work out and record the architecture decisions that keep separately built parts of a system consistent, in a short architecture document. Creates, updates, or validates one; works from a ticket file, with an existing codebase or architecture document beside it. Use when the user says "create the architecture", "create technical architecture", "architecture spine", or "create a solution design"

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。