用途
sap-object-documenter 用于为大量自定义 ABAP 对象一次性生成稳定的、以包为范围的 Markdown 文档。它与 explain-abap-code 互为补充:后者面向单个对象进行交互式解释,而本技能适合一次性为多个对象生成书面文档,例如在入职时初始化 docs/ 目录,或在团队交接前生成知识转移材料。
主要能力
- 枚举范围:支持通过包(如 Z_SALES_EXTENSIONS)、对象列表(逗号分隔),或类型加前缀(如“记录所有 Z* 类”触发 SAPSearch)来确定要文档化的对象。
- 逐个对象读取源码与元数据:并行执行 SAPRead(源码)与 SAPContext(依赖),对类额外读取方法签名列表,对 CDS 视图额外读取字段列表。
- 风格分类:对类和程序运行 SAPLint 并解读结果,分类为 Modern(大量现代模式、云就绪风格)、Classic(大量经典模式)或 Mixed(两者并存)。
- 依赖归纳:SAPContext 支持 CLAS、INTF、PROG、FUNC、DDLS(BTP 下为 CLAS、INTF、DDLS);对不支持的类型改用正则扫描源码列出明显调用方/依赖,并标注置信度下降。
- 可选业务上下文:对名称或结构涉及 SAP 应用组件(FI、SD、MM 等)的对象,可通过 mcp-sap-docs 查询补充组件描述。
- 输出 Markdown:对象数不超过 30 时生成单文件(含总览表与逐对象章节);超过 30 时改为每个对象一个文件并生成 README 索引。每个对象的规范字段包括类型、包、风格、用途、最近更改与当前传输。
- 写入磁盘并输出简短汇总,包括各风格数量统计以及行数最多的对象提示。
使用方式
用户提供包、对象列表或类型加前缀,可选提供输出路径(默认 docs/custom-code/<package_or_group>.md)以及单文件或每对象一文件(对象超过 30 个时默认为每对象一文件)。技能会按步骤枚举范围、读取源码与元数据、可选进行风格分类和业务上下文查询,最后写出 Markdown 并汇报。若范围内对象超过 100 个,会停止并要求用户收窄范围。
适用场景
- 新开发人员了解某个自定义代码包。
- 咨询交接前,将机构知识固化为文档。
- 迁移前记录既有代码现状。
- 合规/审计留痕(部分组织要求逐对象文档)。
- 初始化知识库或仓库 wiki。
限制与注意事项
- 不做代码生成,仅读取与总结。
- 不翻译业务逻辑:用途行来自命名、类头注释和测试类名;若这些缺失,会明确说明。
- 不能替代良好的代码注释,输出质量取决于源码命名。
- 不做跨对象整合,不提供包级架构描述。
- 仅面向 Z/Y 自定义代码;SAP 交付代码应直接使用 mcp-sap-docs。
- 若目标是代码质量分析,应改用 migrate-custom-code。
- 单个对象场景建议使用 explain-abap-code,更快且可交互。
- 传输历史不完整:完整传输历史无法从旧版 history 动作获取;最近更改与当前传输行来自 ARC-1 的版本与当前分配 API。