Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

deep-code-analyzer

简体中文 | English

带质检工序的流水线式源码考察队 —— 对任意项目(开源或私有)进行系统化深度考察,产出结构化架构文档与工程风险 / 源码缺陷 / 设计问题评估。

版本:v2.6.2语言:中文 / English形态:META-SKILL(Skill 元技能)


简介

deep-code-analyzer 是一套可移植的源码深度考察流程协议。它以「流水线 + 显式状态机 + 契约驱动」的方式,把一个 AI 代理(或一组代理)组织成一支只分析、不修改的考察队,对任意代码库执行:

  1. 全景扫描 → 模块映射 → 数据流追踪 → 模式提取

  2. (经人工确认后)目标深挖 / 功能复现 / 缺陷扫描

  3. 报告组装 → (可选)实测验证

所有评估结论以源码证据为锚:可复核的结论标注置信度,无法复核的标注 unverified,禁止输出与证据脱节的个人偏好。


边界卡与反模式 FAQ

首次使用前必读——避免踩坑。

| ✅ 你可以 | ❌ 你不可以 |

|-----------|-------------|

| 读项目代码、文档、配置文件 | 直接修改、删除、重写项目中的任何代码 |

| 分析架构、追踪数据流、提取设计模式 | 执行项目的编译、运行、测试、部署 |

| 评估工程风险、扫描源码缺陷、给出改进建议 | 把建议直接落地为代码改动(可输出方案,执行交由用户) |

| 为指定模块 + 相关 docs 分析并输出修改方案参考 | 代替用户做决策——所有关键节点必须经过确认 |

| 生成架构分析报告、功能复现指南、迁移方案 | 跳过人工介入点——S4 完成后必须停止等待确认 |

常见踩坑

| 踩坑 | 正确做法 |

|------|----------|

| "帮我优化一下这段代码" → 直接修改 | 本技能不直接改代码,但链路是:定位问题(附源码证据)→ 给出修改方案 → 询问"是否按此方案修改",执行交由用户或编码模式 |

| "运行一下这个项目看看效果" → 尝试执行 | 回答"我只分析不执行,这是项目的入口文件与启动方式…你可以自行运行" |

| 以为 S1-S4 跑完就自动出报告了 | S4 完成后强制停止等待确认,不点"跳过"不会自动往下走——这是设计,不是卡住 |

| 想改代码但不熟悉源码,不知从哪下手 | 选阶段选择框的 ⑤ 修改参考:指定要改的模块,先对该模块 + 相关 docs 分析,输出修改方案参考 |


阶段选择(需求不明确时)

  • 需求明确(点名算法名/功能名/缺陷目标)→ 直接聚焦模式(S1 快速全景 → 直达 S5/S6/S6B)。

  • 需求不明确(只说"分析这个项目")→ S1 全景扫描完成后,展示项目卡片,给出阶段选择框,由用户决定后续方向:

【阶段选择 · S1 完成】已产出项目全景卡片。请选择后续阶段(可多选,回复编号或文字即可):

① 继续全景链路:S2 模块映射 → S3 数据流 → S4 模式提取(跑完在 S4 介入点再次停止)

② 直接深挖目标:____(可指定,如"缓存机制")→ S5

③ 复现功能:____(可指定)→ S6

④ 源码缺陷扫描 → S6B

⑤ 修改参考:指定要改的模块,先对该模块 + 相关 docs 分析,输出修改方案参考 → S5 聚焦 + 修改参考输出

⑥ 跳过深挖,直接交付报告 → S7


设计哲学:六条铁律

| # | 铁律 | 含义 |

|---|------|------|

| 1 | 正交解耦 | Meta 层只管流程(S1→S8),Atom 层只管执行(每一步只做一个操作) |

| 2 | 显式状态机 | 所有流转必须有可枚举的定量闸门(覆盖率 ≥ 80%、环节 ≥ 5、模式 ≥ 3、子章节 ≥ 7),禁止「然后 / 接着 / 差不多」 |

| 3 | 契约驱动 | 原子技能间只通过 schemas/context.md 定义的 Context 传递数据,禁止依赖隐式记忆 |

| 4 | 有界执行 | 每阶段重试 ≤ 2 次、全流程总轮次 ≤ 24、深挖 / 复现循环 ≤ 3 轮、缺陷扫描循环 ≤ 2 轮 |

| 5 | 复核后落档 | 任何关键结论写入产出文档前,必须完成至少一次针对原始源码的独立取证复核;无法复核的必须显式标注 unverified |

| 6 | Docs 优先 | 存在文档目录时,先读文档建立框架认知(三级分层、预算受控),以文档声明结构为"预期基线"解剖源码;文档与源码不符处为高价值异常信号 |


工作流程(8 阶段流水线)


S1 全景扫描 → S2 模块映射 → S3 数据流追踪 → S4 模式提取

    │

    ├──【人工介入点】范围与深度确认(必须停止等待)

    │

    ├─→ S5 目标深挖(可循环 ≤ 3 轮)

    ├─→ S6 功能复现(可循环 ≤ 3 轮)

    ├─→ S6B 缺陷扫描(可选分支,默认不执行)

    │

    └─→ S7 报告组装与交付

           └─→(可选)S8 实测验证(能力驱动,命令白名单)

| 阶段 | 名称 | 关键流转闸门 |

|------|------|------------|

| S1 | 项目全景扫描 | 产出项目卡片:技术栈 + 项目类型 + 入口点 + 设计原则(四必填)+ docs_map(Docs 优先侦察) |

| S2 | 模块映射 | 模块清单覆盖率 ≥ 80% 一级源码承载目录,每模块含一句话职责 + 入口路径;以 docs_map 声明的模块为预期基线对照 |

| S3 | 数据流追踪 | 数据流图 ≥ 5 环节,每环节假设-验证 + 置信度,假设表 ≥ 3 条已闭合 |

| S4 | 设计模式提取 | 提取 ≥ 3 个模式/亮点/约定,每条带统一证据格式 + 置信度 |

| S5 | 目标深挖 | 符号追踪表 + 调用链 + 状态机图 + 复杂度分析 + 替代方案对比 + 配置速查 |

| S6 | 功能复现 | 功能定位 + 依赖链 + 分步拆解 + 数据契约 + 边界条件 + 代码骨架 + 配置速查 |

| S6B | 缺陷扫描 | 每条含 文件:行号 + 类型 + 证据 + 级别(P0-P3) + 置信度 |

| S7 | 报告组装 | 必填章节全覆盖 + 图存在性硬闸门 + 关键数字带 origin 标注 |

| S8 | 实测验证 | 命令白名单(只读/基准类),任何写操作命令拒绝执行 |


三种执行模式

  • 全量模式(默认):按 S1→S7 顺序执行。

  • 聚焦模式:用户首条消息即明确指定深挖 / 复现 / 缺陷扫描目标时,先执行 S1 最低限度全景(仅技术栈 + 入口点),随后直接跳转对应阶段(跳转前向用户确认一次)。

  • 恢复模式:存在 _context_checkpoint.json 时,读取 checkpoint 重建 Context,从下一个未完成阶段继续,不重跑已完成阶段


关键机制

人工介入点(S4 之后强制停止)

S4 完成后必须停止并向用户展示 Stage 1-4 初步全景分析结果,收集四个方向的指令:


① 深挖目标(预填 [必挖] / [CANDIDATE] 候选)→ S5

② 复现功能:____ → S6

③ 源码缺陷扫描(默认不执行,省 token)→ S6B

④ 跳过,直接交付报告 → S7

  • [必挖] 强制消费:至少 1 条 [必挖] 异常信号必须进入 S5,或由用户显式跳过并记录理由。

  • 无响应处理:用户 3 轮未回复 → 默认跳过 S5/S6/S6B,未确认项写入 human_decisions.pending_confirmations 后进入 S7,不报错、不无限等待;交付时提醒可补做项,回复「深挖 <目标>」「复现 <功能>」「扫描缺陷」即可从 checkpoint 续跑。

Context 持久化契约(断点恢复)

  • 每阶段结束后,将 stage_outputs + human_decisions + metadata 写入 output_dir/_context_checkpoint.json(覆盖写,UTF-8)。

  • checkpoint 是跨会话恢复的唯一事实来源;对话上下文只是缓存。

Docs 优先侦察

项目存在文档目录(docs/documentation/ 等)时,S1 先读文档建立框架认知,再解剖源码:

| 层级 | 内容 | 读取方式 |

|------|------|----------|

| L1 必读 | 文档目录树(2 层)+ 根级索引(index.mdREADME.mdSUMMARY.md 等) | 全读(小文件) |

| L2 按需精读 | 架构 / 设计 / 规范类 + 入门 / 指南类 | 按相关性精读 |

| L3 标题扫描 | API / 参考 / 变更日志类 | 仅列文件名 + 首行标题 |

  • 读取预算硬上限:L2 + L3 合计 ≤ 10 个文件;单文档 > 400 行只读前 400 行 + 章节标题

  • 产物 docs_map:文档结构树 + 声明技术栈 + 声明模块(S2 预期基线)+ 架构概念 + 术语表 + 漂移信号

  • 漂移检测:文档声明但源码缺失的模块 → [必挖] 异常信号;源码存在但文档未提及的一级目录 → [可选] 信号

采样三档(控制 Token 消耗)

| 采样档位 | 模块规模(文件数) | 采样策略 | 备注 |

| :--- | :--- | :--- | :--- |

| 低消耗 | ≤ 20 | 全读,不采样 | 上下文窗口压力小,保证完整性 |

| 中消耗 | 21 – 100 | 读取 min(15, max(5, ceil(n/10))) 个核心文件 | 动态采样,平衡覆盖率与 Token 开销 |

| 高消耗 | > 100 | 不进自动采样,标记 [CANDIDATE] 加入深挖候选池 | 由人工决策,防止无效 Token 浪费 |

来源可信度状态机

  • 仓库内已读 → repo_verified

  • 仓库内推断 → repo_inferred

  • 外部依赖已读(venv / node_modules 定位成功)→ external_read

  • 外部依赖未读 → external_unread必须附定位命令(如 pip show <pkg>),标记后跳过该模块继续

能力探测

S1 结束后探测宿主能力并写入 metadata.capabilities:能否执行命令、能否读仓库外依赖、能否统计 token、能否提供结构化交互组件——探测结果决定后续可选项(如仅当 can_execute_commands 为真才启用 S8 实测)。


目录结构


deep-code-analyzer/

├── SKILL.md                     # Meta 层主文件(流程编排 + 全局规则)

├── README.md                    # 本文档

├── atoms/                       # Atom 层:可独立执行的原子步骤

│   ├── 01-scan-landscape.md     # S1 项目全景扫描

│   ├── 02-map-modules.md        # S2 模块映射

│   ├── 03-trace-dataflow.md     # S3 数据流追踪

│   ├── 04-extract-patterns.md   # S4 设计模式与架构原则提取

│   ├── 05-deep-dive-target.md   # S5 目标深挖(可循环)

│   ├── 06-reproduce-feature.md  # S6 功能复现研究(可循环)

│   ├── 06b-scan-defects.md      # S6B 源码缺陷与工程风险扫描(可选)

│   ├── 07-assemble-report.md    # S7 报告组装与交付

│   └── 08-measure.md            # S8 实测验证(可选)

├── references/

│   ├── capabilities.md          # 12+1 维度能力覆盖检查清单

│   └── report-template.md       # 统一报告骨架模板

└── schemas/

    └── context.md               # Context 结构契约(跨原子唯一数据通道)


快速开始

作为 Skill 安装

将本目录放入宿主环境的技能目录(如 skills/deep-code-analyzer/),由宿主技能加载工具注册;若宿主环境的技能加载工具不可用,直接从技能安装目录读取 SKILL.mdatoms/schemas/references/ 下全部文件,按 Meta 层执行,流程不变。

触发方式

对任意 AI 代理说:

  • 「分析 XX 项目结构」

  • 「深挖 XX 算法/机制」

  • 「解析 XX 架构」

  • 「帮我理解 XX 代码库」

  • 「复现 XX 功能」

  • 「评估 XX 工程风险」

  • 「扫描 XX 源码缺陷」

环境适配

原子中提到的工具名均为功能性描述(枚举目录、读取文件内容、全文检索、跨文件跳转定位等),执行时映射到宿主环境提供的等价工具,不得因特定工具名不存在而中断流程。


报告交付形态

  • 默认为文件集README.md(架构全景图)、architecture-analysis.md(模块依赖关系图)、tech-stack.md(依赖拓扑图)+ 各专题文件,落盘于 <项目根>/<项目名>-analysis/

  • 三份基础文件各含 ≥ 1 张非空图(Mermaid 或 ASCII 形式)——图存在性是硬闸门。

  • 关键数字均带 origin 标注;报告章节树与 references/report-template.md 严格一致。


维护与回归验证

本技能自身任何结构性修改(采样规则、契约字段、原子结构)后,必须跑一轮回归验证:用 300–500 文件的开源小项目执行全量流程(或至少 S1–S4 + 一次 S5),对照验收清单逐条核对:

  • checkpoint 记账自检 gate 通过

  • 报告关键数字均带 origin 标注

  • 巨型模块出现在人工介入点候选池

  • 报告章节树与 references/report-template.md 一致

  • 外部依赖断头有定位命令或显式 external_unread

  • 无实测的性能/复杂度结论带 [推演] 标注

  • Docs 优先:有文档目录的项目 S1 产出 docs_map 且漂移信号进入异常信号池;无文档目录项目 docs_map=null 且不阻断流程

清单未全绿前不得视为改动生效。


许可证

本项目采用 MIT 许可证 开源。

你可以自由使用、修改和分发本项目的代码,但需保留原版权声明。

本项目按"原样"提供,作者不承担任何责任。

Copyright © 2026 QinLuza 魔法少女独断万古

About

带质检工序的流水线式源码考察队:META-SKILL 元技能

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors