deep-research by feiskyer/claude-code-settings
npx skills add https://github.com/feiskyer/claude-code-settings --skill deep-research把"深度调研"当作一个可复用、可并行的生产流程来执行:主控负责澄清目标、拆解子目标、调度子进程、聚合与精修;子进程负责采集/抽取/局部分析并输出结构化 Markdown 素材;最终交付物必须是独立成品文件而不是聊天贴文。
关键约束(必须遵守)
--allowedTools 控制可用工具;仅在必要时启用网络等权限。firecrawl,其次 exa;确实无法满足时再考虑 WebFetch/WebSearch。claude -p 子进程;<3 个子目标时可由主进程直接执行,但仍需记录完整目录结构和原始数据。广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
claude -p 子进程,并为其分配合适权限(通过 --allowedTools 参数)。.research/<name>/aggregated_raw.md),在成品中仅吸收关键洞察/证据。根据子目标数量选择执行路径:
| 规模 | 子目标数 | 执行方式 | 目录要求 |
|---|---|---|---|
| 微型 | 1-2 | 主进程直接执行 | 仍需 raw/、logs/、final_report.md |
| 小型 | 3-5 | 启动子进程,串行或少量并行 | 完整目录结构 |
| 中型 | 6-15 | 并行子进程(默认 8 并发) | 完整目录结构 + 调度脚本 |
| 大型 | >15 | GNU Parallel + 分批调度 | 完整目录结构 + 多阶段调度 |
注意 :即使是微型任务,也必须:
raw/ 目录logs/dispatcher.log预执行规划与摸底(必做;主控亲自完成)
firecrawl,其次 exa;若都不可用,记录原因并选择替代方案(必要时再降级到 WebFetch/WebSearch)。初始化与总体规划
name(建议:<YYYYMMDD>-<短题>-<随机后缀>,全小写、短横线分隔、无空格)。.research/<name>/,并把所有 产物都保存到该目录下(子目录如 prompts/、logs/、child_outputs/、raw/、cache/、tmp/)。子目标识别
生成调度脚本
.research/<name>/run_children.sh),要求:
claude -p 调用,推荐要点:
推荐形式:claude -p "prompt" --allowedTools "Read,Write,Edit,Bash,WebFetch,WebSearch,mcp__firecrawl__*"(以 claude --help 为准)。
在 prompt 中声明:一切联网需求优先使用已安装 skills(技能优先);若必须走 MCP,则优先 firecrawl,其次 exa;确实没办法才用 WebFetch/WebSearch;不使用 plan 工具与"人工交互等待"。
非经用户要求不传模型参数。
为子输出指定落盘路径(例如 .research/<name>/child_outputs/<id>.md)。
设计子进程 Prompt
firecrawl → exa)→ WebFetch/WebSearch。printf/逐行写入注入变量,避免 Bash 3.2 在多字节字符场景下 cat <<EOF 截断变量的已知问题。.research/<name>/child_prompt_template.md)以便审计与复用。cat .research/<name>/prompts/<id>.md),确认变量替换正确、指令完整后再派发任务。并行执行与监控
tail -f .research/<name>/logs/<id>.log 追踪实时输出。程序化聚合(生成基础稿)
.research/<name>/aggregate.py)读取 .research/<name>/child_outputs/ 下所有 Markdown,按预设顺序聚合为初版主文档(例如 .research/<name>/final_report.md)。解读聚合结果并设计结构
.research/<name>/final_report.md 与关键子输出。.research/<name>/polish_outline.md),明确目标受众、章节顺序与每章核心论点。分章精修与出稿
.research/<name>/polished_report.md),按大纲逐章撰写;每写完一章立刻自查事实、引用与语言要求,必要时回溯子稿核实。落地交付
.research/<name>/);通过提供文件路径与必要摘要向用户回报,禁止在聊天中贴出完整成稿。.research/<name>/,避免覆盖旧文件。.research/<name>/raw/ 等缓存目录,后续处理优先读取本地缓存以减少重复请求。.research/<name>/tmp/、.research/<name>/raw/、.research/<name>/cache/ 等子目录,必要时在流程结束后按需清理。firecrawl,其次 exa;缺少 MCP 时再退回 WebFetch/WebSearch。# 基本非交互调用
claude -p "Your prompt here"
# 指定允许的工具(无需人工确认)
claude -p "Your prompt" --allowedTools "Read,Write,Edit,Bash"
# JSON 格式输出(便于脚本解析)
claude -p "Your prompt" --output-format json
# 流式 JSON 输出
claude -p "Your prompt" --output-format stream-json
# 继续上一次对话
claude -p "Follow up question" --continue
# 继续指定会话
claude -p "Follow up" --resume <session_id>
#!/bin/bash
# 子进程调度示例
prompt_file="$1"
output_file="$2"
log_file="$3"
# 读取 prompt 并执行
timeout 600 claude -p "$(cat "$prompt_file")" \
--allowedTools "Read,Write,Edit,Bash,Glob,Grep,WebFetch,WebSearch,mcp__firecrawl__firecrawl_scrape,mcp__firecrawl__firecrawl_search,mcp__firecrawl__firecrawl_map" \
--output-format json \
2>&1 | tee "$log_file" > "$output_file"
exit_code=${PIPESTATUS[0]}
echo "Exit code: $exit_code" >> "$log_file"
#!/bin/bash
# 并行执行多个子任务
max_parallel=8
research_dir=".research/$name"
# 使用 GNU Parallel(推荐)
cat "$research_dir/tasks.txt" | parallel -j $max_parallel \
"timeout 600 claude -p \"\$(cat $research_dir/prompts/{}.md)\" \
--allowedTools 'Read,Write,Edit,Bash,WebFetch,WebSearch' \
--output-format json > $research_dir/child_outputs/{}.json 2>&1"
# 或使用后台任务
for task_id in $(cat "$research_dir/task_ids.txt"); do
(
timeout 600 claude -p "$(cat "$research_dir/prompts/$task_id.md")" \
--allowedTools "Read,Write,Edit,Bash,WebFetch,WebSearch" \
--output-format json \
> "$research_dir/child_outputs/$task_id.json" 2>&1
) &
# 控制并行数量
while [ $(jobs -r | wc -l) -ge $max_parallel ]; do
sleep 1
done
done
wait # 等待所有后台任务完成
realpath/test -d 等确认关键路径(如 venv、资源目录)存在;必要时用 dirname "$0" 推导仓库根路径并通过参数传入,避免硬编码。.research/<name>/dispatcher.log;子任务单独写 .research/<name>/logs/<id>.log,失败时直接 tail 对应日志定位 MCP/调用细节。failed_ids 列表并在收尾阶段统一提示后续建议。.research/<name>/child_outputs/<id>.md 是否已合法存在;存在则跳过,减少配额消耗与重复访问。[来源](https://example.com)),避免把链接集中到段尾,便于即时查证。先思考再动手:追求有深度、有独立思考、超出预期的洞见(但不要在回答里提到"惊喜");揣摩用户为什么会问这个问题、背后的假设是什么、有没有更本质的问法;同时明确你的答案应满足的成功标准,再围绕标准组织内容。
保持协作:你的目标不是机械执行指令、也不是在信息不足时强行给出确定答案;而是与用户共同推进,逐步逼近更好的问题与更可靠的结论。
写作风格要求:
执行本技能时,在每一步输出清晰的决策与进度日志。
在提交最终报告前,必须核对以下清单:
.research/<name>/ 目录已创建logs/dispatcher.log 包含完整执行记录(非事后补写)raw/ 目录包含原始搜索/抓取结果prompts/、child_outputs/ 目录存在且有内容claude -p 子进程如有以下情况,应在报告中明确说明:
Weekly Installs
72
Repository
GitHub Stars
1.4K
First Seen
Jan 23, 2026
Security Audits
Installed on
claude-code62
gemini-cli61
codex60
cursor60
opencode60
github-copilot56
AI Elements:基于shadcn/ui的AI原生应用组件库,快速构建对话界面
69,600 周安装
可引用如下调用模板(仅演示参数,不涉及并行):
timeout 600 claude -p "$(cat "$prompt_file")" \
--allowedTools "Read,Write,Edit,Bash,Glob,Grep,WebFetch,WebSearch,mcp__firecrawl__firecrawl_scrape,mcp__firecrawl__firecrawl_search" \
--output-format json \
> "$output_file" 2>&1
若需要让子进程执行更多工具,在 --allowedTools 中追加对应工具名。
依据任务规模设置超时:小任务先给 5 分钟(timeout 300),较大任务可放宽到最多 15 分钟(timeout 900),通过外部 timeout 命令兜底。首次命中 5 分钟超时时,结合任务实际判断是否拆分/改参数再重试;15 分钟仍未完成则视为 prompt 或流程需要排查。
小规模任务(<8 个)用循环 + 后台任务(或队列控制)实现并行,避免命令行长度限制导致失败;大规模任务用 xargs/GNU Parallel,但必须先用小规模验证参数展开。默认并行 8 个,可按硬件或配额调整。
不要用"串行一个个跑"来替代并行;也不要用"主进程随便搜搜"等方式绕过既定流程。
捕获每个子进程退出码并写日志到运行目录;用 stdbuf -oL -eL claude -p … 2>&1 | tee .research/<name>/logs/<id>.log 等方式保证实时刷新,便于 tail -f 观察进度。