| name | docify |
| description | Generate and maintain business knowledge documents from codebase. Supports ingest (create/update docs) and lint (detect inconsistency and fix) operations. Triggers: 业务知识地图、生成业务文档、ingest domain knowledge、lint 业务知识、docify. |
Docify
从代码库自动生成并维护业务知识文档。支持 ingest(生成/更新文档)和 lint(检查一致性并修复)两种操作模式。graphify 仅作为可选的辅助验证工具。
核心产出:
- 业务知识地图:分析业务功能构成及模块间关联,概括各模块的业务职责
- 业务知识详情:详细介绍每个业务模块/域的业务流程与规则
业务模块五维形态法
| 类型 | 英文名 | 定义 | 核心问题 | 文件命名 |
|---|
| Entity — 业务实体 | Entity | 业务对象、术语、状态机、实体间关系 | 是什么? | entity-{name}.md |
| Rule — 系统规则 | Rule | 条件判断逻辑、计算方式、约束条件、触发机制 | 怎么算? | rule-{name}.md |
| Flow — 操作流程 | Flow | 用户可执行的完整操作序列、端到端业务过程 | 怎么做? | flow-{name}.md |
| UI — 界面功能 | UI | 用户可见的页面、功能模块、信息展示、交互说明 | 在哪看? | ui-{name}.md |
| Metric — 数据指标 | Metric | 数据指标定义、计算口径、效果评估标准 | 怎么衡量? | metric-{name}.md |
边界模糊时的决策规则:
- Flow vs UI:有明确的步骤推进和状态变化 → Flow;纯信息展示或单页交互 → UI
- Entity vs Rule:描述"有哪些种类/状态/类型" → Entity;描述"在什么条件下发生什么" → Rule
- Rule vs Metric:描述"怎么算"(公式、算法) → Rule;描述"算什么"(指标含义、口径) → Metric
两种操作模式
ingest — 生成/更新业务知识
从零生成或全量更新 docs/domain-knowledge/ 下的所有业务知识文档。
完整步骤见 references/ingest-workflow.md。
关键内容规范文件:
references/common.md — 所有类型文档的通用规范(读者定位、语言规范、深度规范、表达规范、自审清单)
references/type-entity.md — Entity 文档的必含章节与必答问题
references/type-rule.md — Rule 文档的必含章节与必答问题
references/type-flow.md — Flow 文档的必含章节与必答问题
references/type-ui.md — UI 文档的必含章节与必答问题
references/type-metric.md — Metric 文档的必含章节与必答问题
lint — 检查一致性并修复
检测已有文档与代码现状的差异,输出报告,用户确认后自动修复。
完整步骤见 references/lint-workflow.md。
graphify 集成(可选辅助)
graphify 定位为可选的辅助验证工具,不是前置依赖。
主路径:Agent 直接通过目录扫描和源码阅读识别业务模块。graphify 仅在有 graphify-out/ 时用于辅助验证模块边界。
输入路径(<path>)确定优先级:
- 自动推断:检查
graphify-out/ 中已有分析结果涉及的最长公共路径前缀
- 默认值:若无法推断,默认使用
packages/
- 用户覆盖:Skill 触发时若用户显式指定了路径,优先使用用户输入
⚠️ 关键警示:
- 社区名称 ≠ 业务模块名:
GRAPH_REPORT.md 中的社区名是算法自动生成的标签,不得直接作为业务模块名
- 社区边界 ≠ 业务边界:必须以目录结构和源码内容为准
错误处理
| 场景 | 处理策略 |
|---|
graphify-out/ 不存在 | 不终止流程,继续基于目录扫描和源码阅读执行主路径 |
graphify update 失败 | 报告错误详情,询问是否基于现有 graphify-out/ 继续 |
graphify query/explain 返回空结果 | 降级为 Agent 直接读取源码 |
| 模块涉及文件过多(>10 个) | 仅读取 GRAPH_REPORT 标记的 god nodes 对应文件,其余忽略 |
| 生成文档后用户不确认提交 | 保留已写入的文件,由用户自行决定后续操作 |
.last-manifest.json 不存在(lint 时) | 提示用户先运行一次 ingest 建立基线,或仅做结构差异检测 |