skills/tencentblueking/bk-ci/business-knowledge-workflow

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:文档内容过多如何处理?

采用分层策略:

  1. SKILL.md 放核心内容(概述、流程、配置)
  2. reference/ 目录放详细内容(完整数据模型、所有配置项)

Q3:如何判断哪些内容该保留?

保留标准

  • 理解模块必需的概念
  • 开发时需要查阅的信息
  • 排查问题需要的线索

删除标准

  • 重复出现的内容
  • 过于细节的实现
  • 已过时的描述

输出成果

完成本工作流后,将产出:

  1. 架构 Skill 文档:模块的核心知识沉淀
  2. reference 补充文档(可选):详细参考信息
  3. 代码索引:关键文件路径清单

相关 Skill

  • skill-writer:Skill 编写规范
  • 00-bkci-global-architecture:全局架构概览
  • 各模块架构 Skill(29-xx 系列):具体模块参考
Weekly Installs
14
First Seen
4 days ago
Installed on
claude-code8
gemini-cli8
windsurf7
opencode7
codex7
antigravity7