business-knowledge-workflow
SKILL.md
业务知识获取与 Skill 文档编写工作流
本 Skill 描述了从外部文档(如 iWiki)获取业务知识,结合代码分析,最终沉淀为高质量 Skill 文档的完整工作流。
触发条件
当用户需要:
- 熟悉一个新的业务模块或子系统
- 从 iWiki 或其他文档系统获取业务知识
- 将文档内容与实际代码进行交叉验证
- 生成或重构模块架构文档
- 将业务知识沉淀为可复用的 Skill
核心工作流
┌─────────────────────────────────────────────────────────────────┐
│ 业务知识获取工作流 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 阶段 1:文档获取 阶段 2:代码验证 阶段 3:知识沉淀 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ iWiki 搜索 │───────▶│ 代码定位 │───────▶│ 文档重构 │ │
│ │ 文档阅读 │ │ 交叉验证 │ │ Skill 编写 │ │
│ │ 结构提取 │ │ 补充细节 │ │ 质量审查 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
阶段 1:文档获取
1.1 使用 iWiki MCP 工具搜索
工具:iWiki.searchDocument
参数:query = "模块名称 + 关键词"
搜索策略:
| 场景 | 搜索词示例 |
|---|---|
| 了解模块架构 | Buildless 架构设计 |
| 了解具体功能 | Buildless 任务调度 |
| 了解数据模型 | Buildless Redis 存储 |
1.2 获取文档内容
工具:iWiki.getDocument
参数:docId = 搜索结果中的文档 ID
关键提取项:
- 背景与目标
- 核心概念/术语
- 架构设计图
- 流程说明
- 数据模型
- 配置说明
1.3 构建知识框架
从文档中提取并整理:
## 初步知识框架
### 核心概念
- 概念 A:xxx
- 概念 B:xxx
### 架构要点
- 组件关系
- 数据流向
### 待验证问题
- [ ] 代码中是否如此实现?
- [ ] 是否有遗漏的细节?
阶段 2:代码验证
2.1 定位核心代码
根据文档中的类名、方法名、配置项定位代码:
工具:search_content / search_file
策略:
1. 搜索核心类名 → 找到入口
2. 搜索关键方法 → 理解流程
3. 搜索配置项 → 确认参数
示例搜索序列:
# 1. 找核心服务类
search_content: "class BuildLessStartDispatcher"
# 2. 找核心方法
search_content: "fun canDispatch"
# 3. 找配置项
search_content: "dispatch.buildless"
2.2 交叉验证
将文档描述与实际代码对照:
| 文档描述 | 代码验证 | 结果 |
|---|---|---|
| Redis Key 格式 | 检查实际 Key 定义 | ✅ 一致 / ⚠️ 有差异 |
| 流程步骤 | 检查方法调用链 | ✅ 一致 / ⚠️ 有差异 |
| 数据模型 | 检查实体类定义 | ✅ 一致 / ⚠️ 有差异 |
2.3 补充代码细节
文档通常缺失的内容:
- 异常处理逻辑
- 边界条件判断
- 性能优化细节
- 依赖注入关系
- 配置默认值
补充方式:
// 从代码中提取关键逻辑
data class CodeInsight(
val className: String,
val keyMethod: String,
val businessLogic: String,
val edgeCases: List<String>
)
阶段 3:知识沉淀
3.1 文档重构原则
精简原则:
| 原则 | 说明 |
|---|---|
| 去重 | 相同内容只保留一处 |
| 聚合 | 分散的相关内容合并 |
| 分层 | 概述 → 详情 → 代码 |
| 表格化 | 列表内容转表格 |
结构模板:
# 模块名称
## 概述
一句话说明 + 核心特点表格
## 架构设计
一图说明 + 组件表格
## 核心流程
流程图 + 阶段说明表
## 数据模型
ER 图 + 字段表格
## 配置参考
配置项表格
## 代码索引
文件路径表格
3.2 重构检查清单
- 无重复内容(同一概念只出现一次)
- 无冗余流程图(合并相似图示)
- 代码示例精简(只保留关键逻辑)
- 表格优于长文本
- 层次清晰(可快速定位)
3.3 生成 Skill 文档
按照 skill-writer 规范创建:
---
name: module-name-architecture
description: 模块描述。当用户需要了解 xxx、开发 xxx 功能时使用。
---
工具使用速查
iWiki MCP 工具
| 工具 | 用途 | 常用参数 |
|---|---|---|
searchDocument |
搜索文档 | query |
getDocument |
获取内容 | docId |
getSpacePageTree |
获取目录 | spaceKey, parentId |
metadata |
获取元数据 | docId |
代码分析工具
| 工具 | 用途 | 示例 |
|---|---|---|
search_content |
搜索代码内容 | 类名、方法名、字符串 |
search_file |
搜索文件名 | *.kt, *Service.kt |
read_file |
读取文件 | 查看完整实现 |
list_files |
列出目录 | 了解模块结构 |
实战案例:Buildless 模块
第一步:iWiki 文档获取
1. searchDocument("Buildless 无编译构建机")
2. getDocument(docId) → 获取 2000+ 行原始文档
3. 提取核心概念:容器池、任务队列、DeferredResult
第二步:代码交叉验证
1. search_content("BuildLessStartDispatcher") → 入口类
2. search_content("BuildLessTaskResource") → API 定义
3. search_content("dispatch.buildless") → 配置项
4. read_file 逐个验证文档描述
第三步:文档重构
原文档:~2100 行,存在以下问题:
- Redis Key 说明重复 3 处
- 任务流程重复描述
- 代码片段分散
重构后:~500 行,改进:
- 合并重复内容
- 统一流程描述
- 表格化配置和索引
质量标准
文档质量指标
| 指标 | 标准 |
|---|---|
| 篇幅精简率 | ≥ 50%(相比原始文档) |
| 重复内容 | 0 处 |
| 流程图数量 | ≤ 3 个核心图 |
| 代码示例 | 只保留关键逻辑 |
| 表格占比 | ≥ 30% |
Skill 验证清单
- frontmatter 格式正确
- description 包含触发词
- 内容结构清晰
- 与代码一致
- 可独立理解
常见问题
Q1:文档与代码不一致怎么办?
以代码为准,在文档中标注差异:
> ⚠️ **注意**:iWiki 文档描述为 xxx,但实际代码实现为 yyy
Q2:文档内容过多如何处理?
采用分层策略:
- SKILL.md 放核心内容(概述、流程、配置)
- reference/ 目录放详细内容(完整数据模型、所有配置项)
Q3:如何判断哪些内容该保留?
保留标准:
- 理解模块必需的概念
- 开发时需要查阅的信息
- 排查问题需要的线索
删除标准:
- 重复出现的内容
- 过于细节的实现
- 已过时的描述
输出成果
完成本工作流后,将产出:
- 架构 Skill 文档:模块的核心知识沉淀
- reference 补充文档(可选):详细参考信息
- 代码索引:关键文件路径清单
相关 Skill
skill-writer:Skill 编写规范00-bkci-global-architecture:全局架构概览- 各模块架构 Skill(29-xx 系列):具体模块参考
Weekly Installs
14
Repository
tencentblueking/bk-ciFirst Seen
4 days ago
Installed on
claude-code8
gemini-cli8
windsurf7
opencode7
codex7
antigravity7