Communitygithub.com

adamjali/explain

对 GitHub 仓库、实时网站/产品、竞争对手、数据产品、算法/计算器、概念或任何主题进行全面的深度解释。它会并行派出研究和探索代理,为实时产品驱动真实浏览器,将计算器逆向工程为可运行的验证代码,并保存完整的文档集。

explain 是什么?

这是一个功能强大的 AI 代理技能,旨在为开发者提供对任何主题的彻底、多模式解释。它能够智能路由到两种操作模式:模式 A 适用于代码仓库、概念和文档,涉及研究、克隆和探索;模式 B 则针对实时网络产品、竞争对手、计算器和整体技术格局,使用真实浏览器进行深度侦察、逆向工程和可视化捕获。该技能的核心优势在于其结构化的执行流程,包括自动对话式输入收集、预定义阶段(如并行网络研究和代码库探索)以及通过工作流工具实现的弹性执行。它特别擅长通过生成可运行的 TypeScript 参考实现并针对权威基准进行验证,来破解算法和计算器。最终输出始终是全面的:通过在对话中显示执行摘要和文件索引,同时将完整的文档集保存到磁盘,将视觉丰富的解释与持久化工件相结合,并附带清理选项。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/adamjali/claude-skills/tree/HEAD/plugins/explain

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

技能工作原理

两种模式,根据主题自动路由(见路由表):

  • 模式 A — 仓库 / 概念 / 文档(廉价路径):研究 → 克隆(如果是仓库)→ 探索 → 综合 → 输出。松散的并行代理即可。
  • 模式 B — 实时网络产品 / 竞争对手 / 数据产品 / 算法 / 格局(完整流程):侦查 → 确认 → 工作流编排的深度侦察 → 真实浏览器捕获 → 逆向工程为验证代码 → 综合。请阅读 @references/competitor-teardown.md 并遵循之。

主题类型路由

主题信号模式主轴
GitHub 仓库github.comA克隆 + 探索代理
概念 / 技术无 URLA研究者代理
文档 / 静态网站URL,信息性A研究者 + WebFetch
实时产品 / 应用 / SaaS / 竞争对手URL 是产品;"competitor/teardown/vs us/how do they"B浏览器 + 工作流 + 每主题模式
计算器 / 估值器 / 预测器 / 定价 / 排名需要破解的公式/算法B实时探测网格 → 可运行参考实现 → 验证
整个格局"find all the others / everyone in this space"B命名空间发现 → 分解 YES 集

决胜规则:如果一个 URL 既是产品又有文档,默认为 B —— 侦察步骤成本低廉,如果没有什么可分解,会降级到 A。

执行规则

  1. 正确的规模工具:模式 A = 并行的 Task/Agent 调用。模式 B = 在 3 个以上主题或多阶段工作时,使用 Workflow 工具(流水线、结构化输出模式、恢复)。
  2. 先打基础,再确认:模式 B 在昂贵投入之前,会进行一个廉价的侦察步骤 + 确认关卡(范围 + 侦察边界 + 浏览器)—— 除非用户已经说了 "full shebang / go deep / everything."
  3. 针对任何计算器/算法,逆向工程为可运行、已验证的代码;与权威基准进行对比,而不是竞争对手自己的说法。
  4. 视觉丰富:每个主要概念都配有图表或表格。
  5. 双重输出:在对话中显示执行摘要 + 文件索引;将完整的文档集保存到 ~/.claude/explanations/<date>_<slug>/。
  6. 弹性:繁重的模式 B 研究以后台工作流方式运行;增量持久化工件;在截断时恢复(resumeFromRunId)。
  7. 清理:完成后提供删除克隆仓库/保存文件的选项。

模式 B 侦察边界(重要 —— 在任何实时探测前阅读)

竞争侦察在公共表面上合法且正常。完整规则见 @references/competitor-teardown.md。不变量:

  • 允许:公共页面/资源、公共 OpenAPI//docs、公共 JS 包、一个适度的礼貌网格(约 15-40,低速率)对公共端点的普通用户级请求以推导公式、header 指纹识别、WHOIS/DNS。
  • 绝不:破解 CAPTCHA/机器人挑战、绕过认证、批量收集整个数据集(仅限样本)、压力测试、或调用管理/变异/破坏性端点(记录下来,不要调用它们)。观察暴露点;绝不利用它们。绝不在竞争对手的表单中提交用户的真实数据。如果不确定,就不要做 —— 并说明原因。

输入采集关卡

无上下文处理程序

如果 $ARGUMENTS 为空: → 使用 AskUserQuestion:

  • header: "Explain"
  • question: "你想让我解释什么?"
  • options:
    • "GitHub 仓库" - 从 GitHub 分析代码库
    • "网站或文档" - 理解一个网站、文档或 API
    • "竞争对手 / 实时产品 / 格局" - 分解一个实时产品,逆向工程一个计算器,或映射整个竞争空间(模式 B)
    • "概念或技术" - 解释一个概念、框架或工具

然后进行上下文分析。

上下文分析

分析 $ARGUMENTS 以提取:

  • 类型:GitHub 仓库、网站、概念或其他
  • URL/主题:要解释的具体内容
  • 隐含目标:学习如何使用?评估?理解架构?贡献?

自动检测类型:

  • 包含 github.com → GitHub 仓库(模式 A)
  • 模式 B 信号 → "competitor", "teardown", "reverse-engineer", "vs us", "how do they", "find all the others", 或者一个指向产品/应用/计算器的 URL → 模式 B
  • 包含 http(信息性/文档)→ 网站(模式 A)
  • 其他情况 → 概念(模式 A)

初始问题

仅对真正的信息缺口使用 AskUserQuestion(最多 2-3 个问题):

目标(如果不明确):

  • "你的目标是什么?" 选项:
    • "理解它是如何工作的" - 架构、流程、实现
    • "评估是否采用" - 优缺点、替代方案、是否适合我的用例
    • "学习如何使用它" - 设置、API、入门
    • "学习如何贡献" - 代码库结构、开发工作流

焦点(如果主题宽泛):

  • "有什么特别关注的焦点?" 选项:
    • "全部" - 全面综合分析
    • "仅架构" - 高层结构和模式
    • "特定功能" - 一个特定方面(请指定)

背景(如果有帮助):

  • "你的技术背景?" 选项:
    • "非技术" - 从基本原理出发,使用类比解释
    • "有技术背景,但对该领域不熟悉" - 跳过基础,专注于细节
    • "专家" - 深入技术细节,假设具备相关知识

决策关卡

得到答案后,使用 AskUserQuestion(模式 A):

  • question: "准备好开始深度探索了吗?"
  • options:
    • "是,开始" - 开始多阶段分析
    • "还有更多问题" - 我有需要澄清的地方
    • "让我添加一些上下文" - 我想补充细节

模式 B 以此关卡 B2 取代该关卡(快照 + 范围 + 侦察边界 + 开始/深度/浏览器)—— 不要同时问两者;B2 是分解任务的唯一权威关卡。

流程

模式选择

运行 <intake_gate>,然后根据主题类型表进行路由。模式 B(实时产品 / 竞争对手 / 数据产品 / 计算器 / 格局)→ 加载 @references/competitor-teardown.md 并遵循其侦查 → 确认 → 深入 → 综合流程(骨架如下)。模式 A(仓库 / 概念 / 文档)→ 执行下方阶段 1-7。

模式 B — 实时产品 / 竞争对手 / 数据产品分解

完整行动手册见 references/competitor-teardown.md。骨架:

  • B0 基础:检查记忆 + ~/.claude/explanations/ 中的先前分析;进行扩展,而不是重做。
  • B1 侦查:每个目标一个轻量级被动侦察代理(WebFetch + headers + WebSearch)→ 基础快照 + 需要浏览器做什么。
  • B2 确认关卡:呈现快照 + 范围 + 侦察边界(<scope_boundary>);使用 AskUserQuestion 询问开始/深度/浏览器 —— 仅在用户已说 "go deep / full shebang" 时跳过。
  • B3 深度侦察(工作流):每个主题一个结构化代理,全部共享每主题模式(参考文件中)。默认使用 pipeline();将大型输出拆分到磁盘。
  • B4 浏览器(Claude-in-Chrome):捕获加载时网络、渲染 SPA、跨输入网格对估值器进行实时探测、安全标头、付费墙/认证副本 —— 在边界内(无 CAPTCHA/认证绕过、无变异端点、绝不提交用户数据)。边进行边持久化捕获。
  • B5 逆向工程:每个计算器 → 可运行的 TypeScript 参考实现 → 与实时网格验证 → 与权威基准对比。
  • B6 命名空间(如果问 "any others?"):DNS+curl+搜索候选域名、分类、查找运营商集群、标记防御性购买域名、仅分解真正独特的 YES 集。
  • B7 综合:扇出综合代理 → DETAILED-<slug>.md ×N + ESTIMATORS.md + COMPARISON.md(包括数据完整性 + 运营商集群部分)+ REPLICATION-BLUEPRINT.md + ARCHITECTURE.md + NAMESPACE.md + SOURCES-*.md + SUMMARY.md(执行摘要 + 文件索引)。然后执行阶段 7 输出/清理。

模式 A — 仓库 / 概念 / 文档

阶段 1:并行网络研究(5 个研究者代理)

在一条消息中启动所有:

Task(subagent_type="general-purpose", prompt="研究 [主题]:它是什么?谁做的?什么时候?为什么?")
Task(subagent_type="general-purpose", prompt="研究 [主题]:技术栈、架构、关键技术")
Task(subagent_type="general-purpose", prompt="研究 [主题]:文章、评论、社区讨论、观点")
Task(subagent_type="general-purpose", prompt="研究 [主题]:替代方案、比较、何时使用与何时不用")
Task(subagent_type="general-purpose", prompt="研究 [主题]:文档、教程、入门指南")

阶段 2:克隆仓库(如果是 GitHub)

REPO_DIR=~/.claude/explanations/$(date +%Y%m%d_%H%M%S)_$(basename [URL] .git)
git clone [URL] $REPO_DIR
cd $REPO_DIR

阶段 3:并行代码库探索(6 个探索代理)

在一条消息中启动所有,设置 thoroughness="very thorough":

Task(subagent_type="Explore", prompt="架构:整体结构、模块、它们如何关联")
Task(subagent_type="Explore", prompt="入口点:主要文件、CLI、API 端点、如何启动")
Task(subagent_type="Explore", prompt="核心逻辑:关键算法、模式、抽象")
Task(subagent_type="Explore", prompt="配置:设置、环境、扩展点")
Task(subagent_type="Explore", prompt="依赖:关键包、集成、外部服务")
Task(subagent_type="Explore", prompt="测试与质量:测试模式、覆盖率、CI/CD")

阶段 4:并行 Claude Code 上下文(2-3 个通用代理)

如果与 Claude/AI/代理相关:

Task(subagent_type="general-purpose", prompt="解释相关的 Claude Code 概念以理解此内容")
Task(subagent_type="general-purpose", prompt="如果适用,与 Claude 工具/SDK 进行比较")

阶段 5:中间检查(如果复杂)

如果发现复杂性,使用 AskUserQuestion:

  • "我发现 [X]。你想让我专注于任何特定方面吗?"
  • 基于发现的选项

阶段 6:综合

将所有发现结合成全面的解释,包括:

  1. 开场类比(非技术性比较)
  2. 它是什么(1-2 句话)
  3. 架构图(ASCII)
  4. 工作原理(分步说明并附图)
  5. 关键组件表(名称、用途、工作原理)
  6. 特别之处(差异化因素)
  7. 能力列表(它能做什么)
  8. 比较表(与替代方案比较)
  9. 技术深度探索(实现细节)
  10. 陷阱与注意事项

阶段 7:输出

在对话中显示

完整的格式化解释,包含所有视觉元素。

保存到文件
OUTPUT_DIR=~/.claude/explanations/$(date +%Y%m%d_%H%M%S)_[topic-slug]
mkdir -p $OUTPUT_DIR

# 保存文件:
# $OUTPUT_DIR/SUMMARY.md - 快速参考(30 秒版本)
# $OUTPUT_DIR/DETAILED.md - 完整分析
# $OUTPUT_DIR/ARCHITECTURE.md - 所有图表
# $OUTPUT_DIR/COMPARISON.md - 替代方案分析
后续跟进

显示后,询问:

  • "你想深入探索哪个方面?"
  • "对我解释的内容有什么问题吗?"
  • 鼓励后续问题
清理

使用 AskUserQuestion 进行清理(如果两者都适用,则合并):

如果克隆了仓库:

  • question: "删除克隆的仓库?"
  • options:
    • "是,删除" - 自动移除 $REPO_DIR
    • "不,保留" - 显示路径:"仓库保留在:$REPO_DIR"

如果是:rm -rf $REPO_DIR 如果否:显示路径以供手动访问

始终(解释文件):

  • question: "删除保存的解释文件?"
  • options:
    • "是,删除" - 自动移除 $OUTPUT_DIR
    • "不,保留" - 显示路径:"解释文件保存在:$OUTPUT_DIR"

如果是:rm -rf $OUTPUT_DIR 如果否:显示路径以供手动访问

综合问题(如果同时有仓库和文件):

  • question: "分析完成。你想清理什么?"
  • options:
    • "删除仓库和解释文件"
    • "仅删除仓库,保留解释文件"
    • "仅删除解释文件,保留仓库"
    • "全部保留"

根据选择执行删除,并显示任何保留项的路径。

标准图表格式

架构:

┌─────────────┐     ┌─────────────┐
│  组件      │────►│  组件      │
└─────────────┘     └─────────────┘

流程:

开始 → 步骤 1 → 步骤 2 → 决策?
                            ├─ 是 → 路径 A
                            └─ 否 → 路径 B

比较表:

| 方面 | 选项 A | 选项 B | 胜出者 |
|-------------|----------|----------|--------|
| 速度 | 快 | 慢 | A |

组件分解:

┌──────────────────────────────────────┐
│              系统名称                │
├──────────────────────────────────────┤
│ ┌────────┐ ┌────────┐ ┌────────┐    │
│ │模块 A  │ │模块 B  │ │模块 C  │    │
│ └───┬────┘ └───┬────┘ └───┬────┘    │
│     └──────────┴──────────┘         │
│              共享层                 │
└──────────────────────────────────────┘

成功标准

两种模式:

  • 在开始前询问了澄清性问题 / 打好了基础;路由到正确的模式
  • 对每个主要概念都生成了可视化图表;包含了可重现的技术深度
  • 在对话中显示了执行摘要,并同时将文档集保存到了文件
  • 提供了后续跟进 + 清理选项;尊重了用户的保留/删除选择

模式 B(实时产品 / 竞争对手 / 数据产品 / 格局)还需满足:

  • 执行了侦察步骤 + 确认关卡(或尊重了明确的 "go deep" 指令)并声明了侦察边界
  • 严格遵守边界:没有 CAPTCHA/认证绕过、没有批量收集、没有调用变异/管理端点、从未提交用户数据;观察暴露点但未加以利用
  • 一旦有 3 个以上主题/多阶段,就使用带共享每主题模式的工作流工具;持久化工件;对截断具有弹性(恢复)
  • 对每个计算器进行了实时探测,并输出了 N/N 验证过、与观察输出一致、并与权威基准对比过的可运行参考实现
  • 对于格局分析:发现了完整的命名空间,对每个进行了分类,找到了运营商集群,标记了防御性购买域名,仅分解了独特的域名
  • 综合报告包括数据完整性部分 + 运营商集群...

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能