Answer deep technical questions about open-source software by analyzing source code and DeepWiki documentation.
Install
mkdir -p .claude/skills/opensourcefaq && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/17083" && unzip -o skill.zip -d .claude/skills/opensourcefaq && rm skill.zipInstalls to .claude/skills/opensourcefaq
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
解答与开源产品有关的深度技术问题,输出图文并茂的 Markdown 技术文章。触发条件:用户提出与开源项目(如 PostgreSQL、Redis、Kafka、Kubernetes、ClickHouse、Flink 等)相关的技术问题,并提供源码目录或 URL、deepwiki repo 名称。即使用户只说"帮我解答这个开源问题"或"分析一下这个项目的某个机制",也应使用本 skill。输出文章保存到项目 markdown/ 目录,要求直击问题、图文并茂、有实操细节和原理分析。Key capabilities
- →Rephrase and analyze technical questions
- →Search source code for relevant implementations
- →Browse DeepWiki for project overviews and concepts
- →Query DeepWiki for precise answers to sub-questions
- →Search web articles for supplementary information
- →Generate detailed Markdown articles with diagrams and code examples
How it works
This skill answers deep technical questions about open-source projects by following a structured process: confirming input, analyzing the question, preparing materials from source code, DeepWiki, and web searches, then writing a Markdown article with diagrams and code, and finally verifying its correctness.
Inputs & outputs
When to use opensourcefaq
- →Analyze source code mechanism
- →Explain internal project architecture
- →Troubleshoot open-source project issues
About this skill
Open Source FAQ Skill
深度解答开源项目技术问题,输出可发布级别的 Markdown 技术文章。
输入规范
| 字段 | 说明 | 示例 |
|---|---|---|
| 问题 | 要解答的技术问题 | "PostgreSQL 为什么用 B-Tree 而不是 LSM-Tree?" |
| 源码目录 / URL | 涉及的开源项目本地路径或 GitHub URL(可多个) | /mnt/user-data/uploads/postgres/ 或 https://github.com/postgres/postgres |
| deepwiki reponame | deepwiki 中的 repo 标识,用于拉取结构化文档 | postgres/postgres |
解答流程(严格按顺序执行)
Phase 0 — 确认输入
在开始前,检查用户是否提供了以下内容:
- 明确的技术问题
- 源码目录或 GitHub URL(至少一个)
- deepwiki reponame(强烈建议提供;如未提供,尝试从 URL 推断)
如有缺失,简短追问,不要跳过。
Phase 1 — 问题描述与分析
1.1 问题描述
用自己的语言重新表述问题,明确:
- 问题的技术背景(版本、场景)
- 核心疑问是什么(行为/性能/架构/API 语义)
- 预期解答的粒度(原理级 / 源码级 / 实操级)
1.2 问题分析
拆解问题为若干子问题,例如:
- 涉及哪些核心模块/子系统?
- 需要理解哪些数据结构或算法?
- 有哪些已知假设可能影响答案?
列出解答路线图(bullet),以便后续按图索骥。
Phase 2 — 准备素材
2.1 搜索源码
优先级:源码 > 文档 > 网络文章
根据问题分析,定位以下内容:
a. 核心实现文件(.c/.go/.java/.rs 等)
b. 相关头文件 / 接口定义
c. 单元测试 / 集成测试(揭示预期行为)
d. 官方文档文件(.md / .rst / doc/ 目录)
e. 变更记录(CHANGELOG / git log 关键 commit)
源码搜索策略:
- 若提供本地路径:使用
grep -rn,find,cat等工具直接读取 - 若提供 GitHub URL:使用
web_fetch拉取关键文件;对大型仓库,优先拉取README、顶层目录结构,再按需深入 - 重点关注:函数调用链、关键数据结构、注释中的设计说明
2.2 浏览 DeepWiki 综述
调用 deepwiki:read_wiki_structure 获取项目的文档主题列表,识别与问题相关的章节。
再调用 deepwiki:read_wiki_contents 阅读相关章节,提取:
- 架构概述
- 核心概念定义
- 模块关系图
2.3 DeepWiki 精准问答
调用 deepwiki:ask_question,将问题的子问题逐一提问,获取上下文关联的深度回答。
每次提问后,记录:
- 关键结论
- 涉及的源码位置(文件名 + 行号)
- 与其他子问题的关联
2.4 搜索网络文章
使用 web_search 搜索相关文章,严格过滤:
✅ 保留:
- 官方博客 / release notes
- 知名技术博客(作者可信)
- 版本匹配(与用户关注版本一致)
- 发布时间在项目相关版本发布后
❌ 丢弃:
- 内容与当前版本不符(API 已变更)
- 没有源码引用的纯经验文章
- 内容与源码搜索结论相矛盾
- SEO 农场内容 / 无实质信息
对每篇保留文章,记录:来源、版本、核心观点、是否已被源码验证。
Phase 3 — 撰写 Markdown 文章
文章必须图文并茂,包含 text、mermaid、svg 三种图表形式中的至少两种。
文章结构模板
# [问题标题]
> 关键词:[项目名] · [版本] · [技术领域]
## TL;DR
(3-5 句话给出核心结论,让读者知道看完能得到什么)
## 背景与问题定义
(问题的技术背景、为什么这个问题值得深入研究)
## 原理分析
(核心机制的深度解析,配合 mermaid 流程图 / 架构图)
## 源码走读
(关键代码片段 + 注释,直接引用文件路径和行号)
## 实操演练
(模拟环境构建 + 数据生成 + 验证步骤,确保可复现)
## 边界条件与常见误区
(what-if 分析,反直觉的地方)
## 拓展思考
(举一反三:相关问题、对比其他项目的实现、延伸阅读)
## 参考资料
(源码文件、文档链接、网络文章,注明版本)
图表规范
mermaid 使用场景:
- 流程图(代码执行路径、请求生命周期)
- 时序图(组件间交互)
- 状态机(对象生命周期)
- 类图(数据结构关系)
SVG 使用场景:
- 内存布局图(展示数据结构在内存中的排列)
- 对比图(两种方案的 side-by-side 对比)
- 性能曲线示意图
代码块规范:
- 明确标注语言(
c,go, ```sql 等) - 在注释中标注文件路径和行号
- 超过 30 行的代码块要加折叠说明
实操演练规范
每个实操场景必须包含:
### 环境准备
(Docker / 本地安装命令,版本要求)
### 数据生成
(建表 SQL / 数据生成脚本,确保能复现问题场景)
### 验证步骤
(具体命令 + 预期输出,让读者知道"对了"是什么样子)
### 结果解读
(输出意味着什么,如何与原理对应)
Phase 4 — 验证文章正确性
在输出最终文章前,必须完成验证。
4.1 源码交叉验证
对文章中每一个"原理陈述",确认:
- 有对应源码佐证(文件 + 行号)
- 源码版本与文章描述的版本匹配
- 没有与源码矛盾的表述
4.2 DeepWiki 验证
将文章核心结论作为问题,再次询问 deepwiki:ask_question,确认:
- DeepWiki 的回答与文章结论一致
- 如有出入,更新文章(以源码为准,DeepWiki 为辅)
4.3 代码示例验证
对文章中的代码示例:
- 语法正确(无明显拼写 / 语法错误)
- 逻辑与原理描述一致
- 实操命令在指定环境中可执行(如有本地环境可验证则执行验证)
4.4 最终 Checklist
[ ] 问题被直接回答(TL;DR 清晰)
[ ] 原理有源码支撑
[ ] 图表至少 2 种(mermaid + svg 或 mermaid + text diagram)
[ ] 实操可复现(环境 + 数据 + 命令完整)
[ ] 没有过期/错误的技术描述
[ ] 参考资料完整且版本明确
[ ] 文章保存到 markdown/ 目录
输出规范
- 文件路径:
markdown/<问题关键词-项目名>.md(英文小写,连字符分隔) - 文件编码:UTF-8
- 图表:mermaid 代码块用
```mermaid,SVG 直接嵌入<svg>标签 - 代码引用:优先引用原始源码,不要改写意思
注意事项
- 版本敏感:开源项目实现随版本变化大,每次引用源码必须注明版本/commit
- 多项目问题:若问题涉及多个项目(如 Kafka + Flink),分别建立素材池后综合分析
- 避免过度概括:宁可说"在 X 版本中,Y 模块的实现是...",也不要说"X 总是..."
- 实操优先:每个原理点尽量配一个可验证的实操步骤
- 中文优先:文章默认用中文撰写,代码注释可用英文
When not to use it
- →When explicit technical questions, source code directory/URL, or DeepWiki repo name are not provided
Limitations
- →The skill requires a clear technical question, source code directory/URL, and DeepWiki repo name.
- →Web search results are strictly filtered, discarding content that is outdated, unverified, or promotional.
- →The skill prioritizes source code over DeepWiki and web articles for verification.
How it compares
This workflow provides a complete, source-grounded approach to answering open-source technical questions, integrating source code analysis, structured documentation (DeepWiki), and web research to produce verified, publishable Markdown
Compared to similar skills
opensourcefaq side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| opensourcefaq (this skill) | 0 | 4mo | No flags | Advanced |
| fact-check | 7 | 7mo | Review | Intermediate |
| agent-researcher | 4 | 6mo | Review | Intermediate |
| react-expert | 8 | 6mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
fact-check
leonardomso
Verify technical accuracy of JavaScript concept pages by checking code examples, MDN/ECMAScript compliance, and external resources to prevent misinformation
agent-researcher
ruvnet
Agent skill for researcher - invoke with $agent-researcher
react-expert
reactjs
Use when researching React APIs or concepts for documentation. Use when you need authoritative usage examples, caveats, warnings, or errors for a React feature.
cartographer
kingbootoshi
Maps and documents codebases of any size by orchestrating parallel subagents. Creates docs/CODEBASE_MAP.md with architecture, file purposes, dependencies, and navigation guides. Updates CLAUDE.md with a summary. Use when user says "map this codebase", "cartographer", "/cartographer", "create codebase map", "document the architecture", "understand this codebase", or when onboarding to a new project. Automatically detects if map exists and updates only changed sections.
research-reviewer
galz10
Expertise in reviewing technical research for objectivity, evidence, and completeness. Use to ensure the "Documentarian" standard is met.
sleap-support
talmolab
Handle SLEAP GitHub support workflow for issues and discussions. Use when the user says "support", provides a GitHub issue/discussion number like "#2512", or asks to investigate a user report from talmolab/sleap. Scaffolds investigation folders, downloads posts with images, analyzes problems, and drafts friendly responses.