armelhbobdad/bmad-module-skill-forge
GitHub: armelhbobdad/bmad-module-skill-forge
一个将代码仓库转化为经过 AST 验证、版本锁定、可溯源的 Agent 技能包的 BMad 模块,主打零幻觉的技能编译能力。
Stars: 4 | Forks: 1

# Skill Forge (SKF)
**Agent Skill Compiler — AST 验证,版本锁定,零幻觉**
[](https://github.com/armelhbobdad/bmad-module-skill-forge/actions/workflows/quality.yaml)
[](https://www.npmjs.com/package/bmad-module-skill-forge)
[](https://opensource.org/licenses/MIT)
[](https://github.com/bmad-code-org/BMAD-METHOD)
[](https://armelhbobdad.github.io/bmad-module-skill-forge/)
*将代码仓库、文档和开发者交流转化为符合 [agentskills.io](https://agentskills.io) 标准的 agent skills,并提供 AST 支持的溯源能力。*
SKF 是一个独立的 BMAD 模块,提供单一专家 agent(Ferris,Skill Architect & Integrity Guardian)以及涵盖源码分析、skill 简报、AST 支持的编译、完整性测试和生态就绪导出的十种工作流,覆盖渐进式能力层级(Quick/Forge/Deep)。
## 为什么选择 SKF
- 带有行级溯源的 AST 验证指令 —— 杜绝幻觉指导
- 渐进式能力模型,适应开发者的当前水平
- 全生命周期:发现、简报、编译、测试、审计、更新、导出
- 版本锁定的 skills,追踪源码变更并检测漂移
- 零幻觉容忍 —— 每条指令均可追溯至代码
## BMad 如何运作
BMad 之所以有效,是因为它将庞大、模糊的工作转化为**可重复的工作流**。每个工作流被分解为具有清晰指令的小步骤,因此 AI 每次都遵循相同的路径。它还使用**共享知识库**(标准和模式),确保输出一致而非随机。简而言之:**结构化步骤 + 共享标准 = 可靠结果**。
## SKF 如何融入其中
SKF 像专家融入团队一样接入 BMad。它使用同样的分步工作流引擎和共享标准,但专注于 skill 编译和质量保证。这意味着您将获得**基于证据的 agent skills**、**AST 验证的指令**以及**漂移检测**,并与 BMad 流程的其余部分保持一致。
## 架构与流程
BMad 是一个小型的 **agent + workflow 引擎**。没有外部编排器 —— 一切都通过结构化指令在 LLM 上下文窗口内运行。
### 构建块
每个工作流目录包含这些文件,每个文件都有特定职责:
| File | 作用 | 加载时机 |
|---------------------------|---------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|
| `forger.agent.yaml` | 专家角色 —— 身份、原则、关键动作、触发菜单 | 最先 —— 始终在上下文中 |
| `workflow.md` | 人类可读入口点 —— 目标、模式菜单 (Create/Edit/Validate)、路由到第一步 | 其次 —— 展示模式选择 |
| `steps-c/*.md` | **Create** 步骤 —— 主执行流程,4-9 个顺序文件 | 逐个加载 (即时) |
| `data/*.md` | 工作流特定参考数据 —— schemas、启发式规则、规则、模式 | 步骤按需读取 |
| `templates/*.md` | 带有占位符变量的输出骨架 —— 步骤填充这些内容以生成最终工件 | 步骤生成输出时读取 |
| `skf-knowledge-index.csv` | 知识片段索引 —— id、名称、标签、层级、文件路径 | 步骤读取以决定加载哪些片段 |
| `knowledge/*.md` | 8 个可复用片段 —— 横切原则和模式 (例如,`zero-hallucination.md`, `confidence-tiers.md`) | 当步骤指示时选择性地读入上下文 |
```
flowchart LR
U[User] --> A[Agent Persona]
A --> W[Workflow Entry: workflow.md]
W --> S[Step Files: steps-c/]
S --> K[Knowledge Fragments
skf-knowledge-index.csv → knowledge/*.md]
S --> D[Data & Templates
data/*.md, templates/*.md]
S --> O[Outputs: skills/reports
when a step writes output]
```
### 运行时如何工作
1. **触发** —— 用户输入 `@Ferris CS` (或模糊匹配如 `create-skill`)。`forger.agent.yaml` 中的 agent 菜单将触发器映射到工作流路径。
2. **Agent 加载** —— `forger.agent.yaml` 将角色(身份、原则、关键动作)注入上下文窗口。边车文件 (`forge-tier.yaml`, `preferences.yaml`) 被加载以保持持久状态。
3. **工作流加载** —— `workflow.md` 展示模式选择并路由到第一个步骤文件。
4. **逐步执行** —— 只有当前步骤文件在上下文中 (即时加载)。每个步骤明确指定下一个步骤。LLM 读取、执行、保存输出,然后加载下一步。未来步骤永远不会被预加载。
5. **知识注入** —— 步骤查询 `skf-knowledge-index.csv` 并根据标签和相关性从 `knowledge/` 选择性加载片段。横切原则(零幻觉、置信度层级、溯源)仅在步骤指示时加载 —— 不预加载。
6. **数据注入** —— 步骤根据需要读取 `data/*.md` 文件(schemas、启发式规则、提取模式)。这是刻意的上下文工程:只有与当前步骤相关的数据进入上下文窗口。
7. **模板** —— 当步骤产生输出(例如,skill 简报或测试报告)时,它读取模板文件并用计算结果填充占位符。模板提供一致的结构;步骤提供内容。
8. **进度追踪** —— 每个步骤追加到带有状态追踪的输出文件。恢复模式读取此状态并路由到下一个未完成的步骤。
### Ferris 操作模式
Ferris 在四种工作流驱动的模式下运行(模式由运行中的工作流决定,而非对话状态):
| Mode | Workflows | 行为 |
|---------------|----------------|-------------------------------------------------------------|
| **Architect** | AN, BS, SF | 探索性、组装 —— 发现结构和范围 |
| **Surgeon** | CS, QS, SS, US | 精确、保留 —— 带溯源地提取和编译 |
| **Audit** | AS, TS | 审判性、评分 —— 评估质量并检测漂移 |
| **Delivery** | EX | 打包、生态就绪 —— 捆绑以供分发 |
## 安装
需要 [Node.js](https://nodejs.org/) >= 22。
根据您的设置,有三种安装 SKF 的方法。
### 方法 1:独立安装(推荐用于尝试 SKF)
```
npx bmad-module-skill-forge install
```
独立安装 SKF。您将被提示输入项目名称、输出文件夹以及要配置的 IDE。安装程序生成 IDE 特定的命令文件(例如 `.claude/commands/`, `.cursor/commands/`),以便工作流出现在您 IDE 的命令面板中。
### 方法 2:在 BMad Method 安装期间作为自定义模块安装
```
npx bmad-method install
```
当被提示 **“Add custom modules from your computer?”** 时,选择 Yes 并提供 SKF `src/` 文件夹的路径(先克隆此仓库):
```
Path to custom module folder: /path/to/bmad-module-skill-forge/src/
```
这会将 BMad 核心 + SKF 一起安装,包含完整的 IDE 集成、清单和帮助目录。当您想要完整的 BMad 开发工作流时,这是最佳选择。
### 方法 3:将 SKF 添加到现有的 BMad 项目
如果您已经安装了 BMad,可以通过在同一目录中运行独立安装程序来随后添加 SKF:
```
npx bmad-module-skill-forge install
```
安装程序检测现有的 `_bmad/` 目录并将 SKF 安装在您当前模块的旁边。将为 SKF 工作流生成 IDE 命令文件。
## 快速开始
1. **设置您的 forge:** `@Ferris SF` —— 检测工具,设置您的层级 (Quick/Forge/Deep)
2. **快速 skill(最快):** `@Ferris QS
` —— 从包名快速生成 skill
3. **完整 skill:** `@Ferris BS` 然后 `@Ferris CS` —— 先简报后编译,以获得最高质量
4. **Stack skill:** `@Ferris SS` —— 包含集成模式的整合项目堆栈 skill
5. **导出:** `@Ferris EX` —— 打包以供分发,更新 CLAUDE.md
## 工作流
| Trigger | Command | 用途 |
| --- | --- | --- |
| SF | `skf_setup_forge` | 初始化 forge 环境,检测工具,设置层级 |
| AN | `skf_analyze_source` | 发现在大型仓库中要构建 skill 的内容 |
| BS | `skf_brief_skill` | 通过引导式发现设计 skill 范围 |
| CS | `skf_create_skill` | 从简报编译 skill(支持 --batch) |
| QS | `skf_quick_skill` | 从包名或 GitHub URL 快速生成 skill |
| SS | `skf_create_stack_skill` | 包含集成模式的整合项目堆栈 skill |
| US | `skf_update_skill` | 智能重新生成,保留 \[MANUAL\] 部分 |
| AS | `skf_audit_skill` | skill 与当前源码之间的漂移检测 |
| TS | `skf_test_skill` | 认知完整性验证 —— 导出前的质量门 |
| EX | `skf_export_skill` | 打包以供分发,注入到 CLAUDE.md/AGENTS.md |
## 渐进式能力模型
| Tier | Tools | 能力 |
| --- | --- | --- |
| **Quick** | gh + skill-check | 源码读取 + spec 验证 |
| **Forge** | + ast-grep | 结构真相,T1 置信度 |
| **Deep** | + QMD | 知识搜索,时间溯源 |
`setup-forge` 工作流检测可用的工具并将层级写入 `forge-tier.yaml`。所有后续工作流根据检测到的层级调整其行为。
## 知识库
SKF 依赖于精心策划的 skill 编译知识库:
- 索引:`src/knowledge/skf-knowledge-index.csv`
- 片段:`src/knowledge/`
工作流仅加载当前任务所需的片段,以保持专注和合规。
## 配置
SKF 变量在 `src/module.yaml` 中定义,并在安装期间提示:
| Variable | 用途 | 默认值 |
|------------------------|------------------------------------------------------------------------------------------------------|-----------------------------|
| `skills_output_folder` | 生成的 skills 保存位置 | `{project-root}/skills` |
| `forge_data_folder` | 工作区工件存储位置 | `{project-root}/forge-data` |
| `tier_override` | 强制指定层级用于比较或测试(在 `_bmad/_memory/forger-sidecar/preferences.yaml` 中) | `~` (自动检测) |
运行时配置(工具检测、层级、并行设置)由 `forge-tier.yaml` 中的 `setup-forge` 工作流管理。
## 模块结构
```
src/
├── module.yaml
├── module-help.csv
├── README.md
├── docs/
│ ├── getting-started.md
│ ├── agents.md
│ ├── workflows.md
│ └── examples.md
├── agents/
│ └── forger.agent.yaml
├── forger/
│ ├── forge-tier.yaml
│ ├── preferences.yaml
│ └── README.md
├── knowledge/
│ ├── skf-knowledge-index.csv
│ └── *.md (8 fragments)
└── workflows/
└── skillforge/
├── setup-forge/
├── analyze-source/
├── brief-skill/
├── create-skill/
├── quick-skill/
├── create-stack-skill/
├── update-skill/
├── audit-skill/
├── test-skill/
└── export-skill/
```
## 许可证
MIT License —— 详情见 [LICENSE](LICENSE)。
**Skill Forge (SKF)** —— 一个独立的 [BMad](https://github.com/bmad-code-org/BMAD-METHOD) 模块,用于 agent skill 编译。
[](https://github.com/armelhbobdad/bmad-module-skill-forge/graphs/contributors)
有关贡献者信息,请参阅 [CONTRIBUTORS.md](CONTRIBUTORS.md)。标签:Agent Skills, AI代理, AST抽象语法树, BMAD模块, DLL 劫持, DNS解析, Integrity Testing, MITM代理, RAG, 代码分析, 代码溯源, 凭证管理, 大语言模型, 威胁情报, 安全可观测性, 开发者工具, 开源项目, 技能编译器, 数据清洗, 数据管道, 文档生成, 版本控制, 知识库构建, 自定义脚本, 软件工程, 防御加固, 零幻觉