# Muggles
**Repository Path**: sinall/muggles
## Basic Information
- **Project Name**: Muggles
- **Description**: 专为固定价格 (Fixed Price) 外包打造的 AI Agent 技能库。拒绝不可控的“魔法”,只做严守合同范围、确保确定性交付的务实工匠。
- **Primary Language**: Shell
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 1
- **Created**: 2026-03-19
- **Last Updated**: 2026-09-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Muggles · 麻瓜
[English](README.en.md) | 中文
**麻瓜**(Muggles)是面向 FP 项目的 AI 交付与研发 Harness。它保留需求评估、工作量、管理表和设计文档等可复用 Skills,并为 OpenCode、Codex、Claude Code 提供统一规则、工作区初始化、持久项目上下文和确定性验证。
## 为什么需要 Muggles?
FP 外包项目有大量重复性文档工作:评估工作量、生成管理表、编写设计文档、制作测试用例……这些工作格式固定、依赖模板,但手动操作耗时且容易出错。
麻瓜把这些重复工作封装为 **可复用的 AI 技能**,每个技能都是确定性的——相同的输入,永远得到相同的输出。不多不少,与合同承诺完全一致。
AI Agent CLI 对话是 Muggles 的主要用户入口。Muggles 优先提供自然语言提示词,用户通过提示词调用 Skill;Skill 负责收集输入、预览变更、取得确认、调用确定性内部执行器并解释结果。命令和脚本是确定性内部执行器和手工故障兜底,不是普通用户的首要操作方式。
## 从交付件到开发
Muggles 将 FP 前期和研发实施连接为一条可审查的链路:
```text
SoW / 需求清单
→ 项目评估、工作量和管理表
→ 需求与设计交付件
→ 人工确认的开发输入
→ 有效项目上下文与 Coding Agent
→ 编码、构建、测试和验证
→ 测试及最终交付件
```
设计类 Skill 生成的文档是后续开发的重要输入,但不会自动成为“已经实现”的事实;当前源码、真实构建和测试结果仍用于最终验证。
## 技能矩阵
### 项目交付技能
按项目交付流程合并为一张技能矩阵;表内分为编排技能和原子技能两组:
#### 编排技能(一键生成全套交付件)
[deliverable-suite](./skills/deliverable-suite/SKILL.md):编排所有原子技能,基于 SoW 生成完整项目交付件包。
#### 原子技能(可独立使用)
| 阶段 | 技能名称 | 功能 | 类型 | 状态 |
| 评估 | evaluating-projects | 基于 SoW/RFP 生成人力模型 Excel、HTML 项目评估、风险/AI 分析和答疑问题 | 项目级 ×1 | 🧪 已引入 |
| 需求 | workload-estimation | 处理需求列表 Excel,自动计算规模、人天、人月等指标 | 项目级 ×1 | ✅ 已完成 |
| 管理 | project-management-excel | 从需求列表生成项目综合管理表(基于模板填充) | 项目级 ×1 | ✅ 已完成 |
| 设计 | module-design | 从需求列表生成模块设计文档(基于模板填充) | 按需求 ×N | ✅ 已完成 |
| 设计 | interface-design | 接口描述文档生成 | 按需求 ×N | 📋 规划中 |
| 测试 | test-design | 测试设计文档生成 | 按需求 ×N | 📋 规划中 |
| 测试 | test-case-generator | 测试用例生成 | 按需求 ×N | 📋 规划中 |
| 测试 | test-report | 测试报告生成 | 项目级 ×1 | 📋 规划中 |
| 质量 | quality-plan | 质量策划报告生成 | 项目级 ×1 | 📋 规划中 |
### FP 人力招聘技能
[招聘 Skill 使用指南:从简历提取到跟踪表维护](./skills/openharmony-recruiting/README.md)。
[openharmony-recruiting](./skills/openharmony-recruiting/SKILL.md):管理 OpenHarmony C/C++、ArkTS
招聘 JD 与典型画像,依据简历填写高/中/低匹配度及判断口径,并生成保留人工记录的新版本跟踪表。
HR 仅提供简历时,可直接获得文本形式的候选人资料、匹配度和判断依据,无需明细表。
招聘资料保存在招聘工作目录,无需先配置源码工作区;团队默认 JD 与规则随 Skill 维护。
```text
请使用 openharmony-recruiting Skill,按当前 JD 评估简历,排除归档候选人,
填写匹配度(AI)和判断口径(AI),在原目录生成新的 V 版 Excel。
```
### 研发支撑技能
这些 Skill 服务于源码开发流程,不直接生成项目交付件:
## 项目专用技能
以下 Skill 随 Muggles 提供,包含特定项目的验收要求和流程约定。
仅在对应项目内使用,不作为所有项目的通用开发流程。
| 技能分组 | 适用项目 | 内容 |
|---|---|---|
| [三方库质量加固相关 Skills](./docs/third-party-quality-hardening-skills.md) | 开源三方库鸿蒙化开发与质量加固 | 三方库质量加固实施、PR 检视与团队检查清单 |
## 应用场景
Muggles 支持 FP 项目交付、研发实施和人力招聘:
| 场景 | 项目阶段 | 主要产出 |
|---|---|---|
| FP 人力招聘 | 团队建设与人员补充 | 招聘 JD、初筛依据和面试跟踪表 |
| FP 交付件生成 | 项目前期与交付准备 | 项目评估、工作量、管理表、设计文档 |
| 客户项目需求开发 | 研发实施 | OpenSpec 需求基线、代码实现、构建测试与验证结论 |
前一场景产生的需求和设计交付件经过人工确认后,可以作为后一场景的开发输入。
### 场景一:FP 交付件生成
以一个 FP 项目为例,Muggles 可以这样帮你:
**方式一:一键生成全套交付件(推荐)**
1. **准备好 SoW**(工作任务书 Word + Excel 需求清单)
2. **使用 `deliverable-suite`** → 自动按顺序调用所有原子技能,生成完整交付件包
3. **AI 自动填充** → 模块设计、测试设计等需要智能生成的部分由 AI 逐个完成
**方式二:按需生成单个交付件**
1. **收到 SoW/RFP,需要项目前期评估** → 使用 `evaluating-projects` 生成 HTML 项目评估报告和可编辑的人力模型 Excel,包含风险清单与答疑问题
2. **收到需求列表 Excel** → 使用 `workload-estimation` 自动计算规模、人天、人月,生成带公式的工作效率表
3. **需要综合管理表** → 使用 `project-management-excel` 基于模板自动生成管理表,将需求数据批量填入
4. **需要模块设计文档** → 使用 `module-design` 从需求列表自动生成每个需求的模块设计 Markdown 文档
5. **后续(规划中)** → 测试用例、验收文档……逐步覆盖整个交付流程
> 注:`evaluating-projects` 暂不依赖 `workload-estimation` 的人月结果;HTML 与人力模型采用同一评估口径,工作量和人员结构结论仍需基于 SoW 内容人工复核。
### 场景二:客户项目需求开发
使用 Muggles 开发 OpenHarmony、FP 等客户项目的具体需求时,先判断当前属于需求首版开发,还是在已确认基线上的实现迭代。
#### 需求首版开发:OpenSpec 工作流
正式需求第一次开发时,使用 OpenSpec 建立可追踪的需求基线:
设计文档硬门禁先于所有开发活动:必须在客户项目目录找到与需求编号对应、内容完整且可读取的设计文档,并由人明确确认它是当前有效版本。门禁失败时停止,不开展需求分析、OpenSpec、实施计划或源码和测试修改。
```mermaid
%%{init: {"flowchart": {"nodeSpacing": 48, "rankSpacing": 18}}}%%
flowchart LR
S1["① 分析需求
• 验证已批准设计
• 阅读正式需求
• 检查当前源码"]
S2["② 建立需求基线
• Proposal / Spec 制品
• Design / Tasks 清单
• 明确验收条件"]
S3["③ 确认并实施
• 人工确认范围
• Apply 实施任务
• 跟踪完成状态"]
S4["④ 验证和归档
• OpenSpec 校验
• 构建测试验证
• 自审并归档"]
S1 ---> S2 ---> S3 ---> S4
style S1 text-align:left,text-anchor:start
style S2 text-align:left,text-anchor:start
style S3 text-align:left,text-anchor:start
style S4 text-align:left,text-anchor:start
```
> 明确的人工确认点:进入“③ 确认并实施”前,由人确认需求理解、验收条件、仓库范围和实施计划。
OpenSpec 负责首版需求基线。先建立正式需求、设计、参考实现、源码和代码索引之间的证据链,再由人确认范围和计划并授权实施。
首版实现必须使用 OpenSpec;OpenSpec 不可用、初始化失败或 proposal 创建失败时停止,不降级到直接开发。代码阅读优先用 CodeGraph 缩小源码和调用链范围,CodeGraph 不可用时允许降级到 `rg`、Git 和直接源码阅读,并记录降级原因。
#### 既有实现迭代:多轮协作流程
既有实现迭代同样先通过设计文档硬门禁。在不改变需求基线的前提下,问题修复、实现优化、测试补充和文档完善采用三轮协作,不强制为每次调整新建 OpenSpec change:
```mermaid
%%{init: {"flowchart": {"nodeSpacing": 56, "rankSpacing": 18}}}%%
flowchart LR
R1["① 分析问题
• 复现和定位
• 评估影响范围
• 确定验证方法"]
R2["② 确认计划并调整
• 人工确认范围
• 实施优化或修补
• 分阶段验证"]
R3["③ 自审和收口
• 检查代码差异
• 构建测试验证
• 整理完成结论"]
R1 ---> R2 ---> R3
style R1 text-align:left,text-anchor:start
style R2 text-align:left,text-anchor:start
style R3 text-align:left,text-anchor:start
```
> 如果既有实现迭代改变了需求范围、接口、验收标准或架构决策,应停止当前调整,返回“需求首版开发”流程,更新或新建 OpenSpec change。
通用术语、参数化话术和多仓库边界参见 [客户项目需求开发指南](CONSUMER-PROJECT-REQUIREMENT-DEVELOPMENT.md)。
## 安装 Muggles 插件
### 前置条件
- Python 3.8+
- Git
- Linux 或 macOS 的 x86_64/aarch64 环境
- OpenCode、Codex、Claude Code 中至少一种 AI Agent CLI
Muggles 主要在 AI Agent CLI 内使用。每个 Agent 需要分别安装一次插件;普通使用者无需克隆
Muggles 仓库、创建 Skill 软链接或配置额外的 `PATH`。
当前尚未发布稳定版本,安装和升级均使用 `master` 开发通道。团队试用稳定后再发布带版本标签的正式版。
### 在 AI Agent CLI 中安装(推荐)
在目标 Agent 的新会话中发送一句话:
```text
请按 https://gitee.com/sinall/muggles/blob/master/INSTALL.md 的安装说明安装 Muggles 插件。
```
Agent 会读取文档并按对应平台的步骤完成安装。安装完成后新建会话生效。
如果 Agent 无法读取文档,可按下方对应平台的命令手工安装。
### 命令行安装(手工/恢复)
#### OpenCode
```bash
opencode plugin "muggles@git+https://gitee.com/sinall/muggles.git#master" --global
```
该命令会维护全局 `opencode.json`。等价配置如下,主要用于排障:
```json
{
"plugin": [
"muggles@git+https://gitee.com/sinall/muggles.git#master"
]
}
```
保留文件中已有的模型、Provider 和其他插件配置。详细迁移与排障说明参见
[OpenCode 安装指南](.opencode/INSTALL.md)。
#### Codex
```bash
codex plugin marketplace add https://gitee.com/sinall/muggles.git --ref master
codex plugin add muggles@muggles
```
安装后启动 Codex 并新建会话。也可以在 Codex 的 `/plugins` 中查看、启用或卸载插件。
#### Claude Code
```bash
claude plugin marketplace add https://gitee.com/sinall/muggles.git
claude plugin install muggles@muggles
```
或使用 `--marketplace` 临时指定来源(不永久注册 marketplace):
```bash
claude plugin install muggles --marketplace https://gitee.com/sinall/muggles.git
```
### 升级 Muggles
需要升级时,在当前 Agent 中直接说:
```text
请用当前 AI Agent CLI 的插件管理器更新 Muggles 插件到最新版本。
```
Agent 应使用原生插件命令更新,不要手动克隆或替换文件。完成后新建会话生效。
**Claude Code**:由于 marketplace 目录不会自动同步远程,更新前需先重新添加 marketplace 刷新目录,再更新插件:
```bash
claude plugin marketplace add https://gitee.com/sinall/muggles.git
claude plugin update muggles@muggles
```
## 开始使用 Muggles
### 快速开始:首次配置
以下流程从 Muggles 插件安装完成后的新 Agent 会话开始。开始前请确认:
- 已安装 OpenCode、Codex 或 Claude Code 中至少一种 AI Agent CLI,并按上文安装 Muggles。
- 已确定项目名称、项目资料根目录以及需要关联的源码目录;纯资料项目可不关联源码。
- 如使用 OpenHarmony Repo,源码应已检出;Muggles 不负责下载源码。
插件安装或升级不会创建 `~/.muggles`;该目录只会在项目配置获得确认并正式写入时创建。
#### 1. 准备目录并启动 Agent
```bash
DELIVERY_WORKSPACE=/path/to/delivery/projects
PROJECT_NAME=OpenHarmony开源合作共建项目
SOURCE_WORKSPACE=/path/to/openharmony
mkdir -p "$DELIVERY_WORKSPACE/$PROJECT_NAME/SoW"
cp /path/to/工作任务书.docx "$DELIVERY_WORKSPACE/$PROJECT_NAME/SoW/"
cp /path/to/工作任务书.xlsx "$DELIVERY_WORKSPACE/$PROJECT_NAME/SoW/"
cd "$DELIVERY_WORKSPACE/$PROJECT_NAME"
# 选择一个已安装的 AI Agent CLI:opencode、codex 或 claude
CODING_AGENT=codex
"$CODING_AGENT"
```
`SOURCE_WORKSPACE` 用于确认源码位置,首次配置时把它告诉 Agent;无需在当前 Shell 中导出给
Muggles。
#### 2. 初始化项目配置
在新会话中发送:
```text
使用 configuring-muggles 初始化项目配置。
项目名是 OpenHarmony开源合作共建项目,
项目资料根目录是 /path/to/delivery/projects/OpenHarmony开源合作共建项目,
源码位于 /path/to/openharmony。
产品名是 ipcamera_hispark_taurus,
已确认的构建命令是 ./build.sh --product-name ipcamera_hispark_taurus --ccache。
请从 Repo manifest 中列出仓库并让我选择,先预览完整配置,待我确认后再写入;此次不初始化工具。
```
Agent 会通过 `repo list` 读取 manifest 中的仓库名,询问本项目允许操作哪些仓库,并展示
完整 JSON;普通源码目录可直接按绝对路径关联。产品名和构建命令没有经过项目确认时省略。
确认后,Muggles 才会创建 `~/.muggles/config.json`。配置操作不会初始化 OpenSpec、
创建交付件目录或索引源码;如需初始化缺失的 CodeGraph 或 OpenSpec,应单独预览并确认。
#### 3. 验证项目上下文
```text
使用 configuring-muggles 显示当前有效项目上下文,并检查各仓库及 CodeGraph 状态。
```
确认输出中的项目、交付目录、源码目录和仓库范围正确后,再开始交付或开发工作。
#### 4. 可选:初始化源码工作区规则
如果希望在 OpenHarmony 根目录写入公共 Agent 规则,可以发送:
```text
使用 Muggles 初始化当前 OpenHarmony 源码工作区规则,先预览将要写入的规则,待我确认后再应用。
```
该操作与创建 `~/.muggles/config.json` 无关,可以跳过。Agent 会解析已安装的 Muggles
插件位置,预览公共规则和 OpenHarmony 通用规则的写入计划;已有不同文件不会被静默覆盖。
##### 手工兜底
仅当 Agent 无法执行源码工作区初始化时,才在 OpenHarmony 根目录手工运行:
```bash
python3 "/bootstrap.py" workspace init \
--workspace "$PWD" \
--check
```
检查输出后移除 `--check` 再执行。
#### 5. 开始第一个任务
配置验证完成后,可以直接使用以下提示词:
- **生成全套交付件**:`使用 deliverable-suite 生成所有交付件。`
- **建立首版实现基线**:`使用 Muggles 分析 RM.001,并按 OpenSpec 建立首版实现基线。`
- **开始既有实现迭代**:`显示当前有效项目上下文,然后分析 RM.001,并给出实施计划。`
三种 CLI 使用同一批 Muggles Skills、Python 脚本和 `just` 命令。
### 日常启动
首次配置完成后,可以从交付目录或源码目录启动 Agent。
#### 客户项目目录启动
适合处理 SoW、需求、设计、项目管理和交付件:
```bash
cd /path/to/delivery/projects/OpenHarmony开源合作共建项目
codex
```
#### OpenHarmony 源码目录启动
适合编码、构建和测试,可以从 OpenHarmony 根目录或 Repo 子仓库启动:
```bash
cd /path/to/openharmony
codex
```
进入会话后先发送:
```text
使用 configuring-muggles 显示当前有效项目上下文。
```
可以直接说“本会话切到项目 A,开始 RM.048”“清除当前需求”或“显示当前项目和需求”。
Muggles 按真实会话 ID 保存项目及可选需求:明确指定 > 已保存会话项目 > 首次绑定时的
`active_project`。当前目录不覆盖选择;切换项目清空旧需求,其他会话修改全局默认不会影响本会话。
“把全局默认项目改成 B”只影响后续首次绑定。
Claude Code 可通过“使用 configuring-muggles,在状态栏显示当前项目和需求”启用原生显示:
启动时未绑定的会话自动采用 `active_project`;恢复已有会话则保留其项目和需求。
```text
Muggles · 项目A · RM.048
```
Codex/OpenCode 可读写同一会话状态,并在对话中显示;本版尚未接入它们的自定义常驻栏。
获取不到真实会话 ID 时会明确提示,不能把全局默认冒充会话项目。
详见[会话上下文与状态显示](skills/configuring-muggles/references/session-context.md)。
### 交付工作区
每个项目有独立的资料根目录;它们可以集中存放,也可以分散在不同位置。以下仅为集中存放示例:
```text
/ ← 交付工作区
├── / ← 当前客户项目
│ ├── SoW/ ← 客户输入
│ │ ├── XXX项目-工作任务书.docx
│ │ └── XXX项目-工作任务书.xlsx
│ ├── openspec/ ← 首版需求基线和变更记录
│ ├── 需求与设计/ ← 已确认的需求和设计输入
│ ├── 项目管理/ ← 内部管理文档(Skill 输出)
│ └── 交付件/ ← 客户交付文档
└── / ← 其他客户项目
```
项目资料根目录保存 SoW、需求与设计、项目管理资料和交付件,源码通过独立绝对路径关联。
SoW 和参考资料目录名不强制;`交付件/`、`openspec/` 的位置固定在各项目根目录下。
### 持久项目上下文
Muggles 将本机项目配置保存在 `~/.muggles/config.json`。首次配置应使用快速开始中的
`configuring-muggles` 流程;必要时也可以手动编辑:
```json
{
"schema_version": 2,
"active_project": "OpenHarmony开源合作共建项目",
"projects": {
"OpenHarmony开源合作共建项目": {
"root": "/path/to/delivery/projects/OpenHarmony开源合作共建项目",
"source": [
"/path/to/openharmony/components/repository-a",
"/path/to/openharmony/components/repository-b"
],
"product_name": "ipcamera_hispark_taurus",
"commands": {
"build": {
"cwd": "/path/to/openharmony",
"command": "./build.sh --product-name ipcamera_hispark_taurus --ccache"
}
}
},
"资料整理": {
"root": "/another/location/project-materials",
"source": []
}
}
}
```
项目名称独立于磁盘路径;每个项目有一个资料 `root` 和零到多个绝对路径 `source`。
源码目录可以是普通文件夹;不会递归把子仓库自动加入范围。项目之间无需共享父目录。
SoW 和参考资料在项目根目录内按现有习惯组织;`root/交付件` 固定用于交付输出,
仅在需要生成交付件时创建;`root/openspec` 用于需求规格与变更。无需另设“主要目录”。
旧版 schema v1 仍可读取。通过 `configuring-muggles` 预览并迁移为 v2,保留
`config.json.bak`;旧项目目录和已选仓库转换为绝对路径,不移动实际文件。
执行器应用迁移时携带预览的配置摘要;期间配置发生变化则重新预览,避免覆盖其他会话的修改。
升级 Muggles 时即使插件提交未变化也检查配置迁移,迁移在托管规则同步之前进行。
多个 `source` 目录不代表多个 OpenHarmony 工作区,规则只同步到已有托管或明确确认的根目录。
CodeGraph 遵循 convention:查找 `/.codegraph/codegraph.db`;
不存在时降级到 `rg`、Git 和直接源码阅读。
`product_name` 与 `commands` 是互相独立、可选的项目级构建上下文。当前支持 `build` 和 `test`,
每条命令显式声明绝对路径 `cwd`。迁移保留旧源码工作区作为命令工作目录,
即使它是已选仓库的父目录,也不扩大允许修改的源码范围。
构建命令按单行字符串保存;Muggles 使用 `shlex.split()` 校验参数,不通过 Shell 执行,
也不会在读取配置时自动运行命令。
## Muggles 维护与开发
### 维护者环境
只有开发 Muggles 本身时才需要源码仓库:
```bash
git clone https://gitee.com/sinall/muggles.git
cd muggles
python3 bootstrap.py --check
python3 bootstrap.py --yes
export PATH="$HOME/.local/bin:$PATH"
just doctor
just verify
```
Harness 核心只使用 Python 标准库。FP Excel/Word Skills 需要的 `openpyxl`、`python-docx` 按具体
Skill 安装。
### 开发指南
详见 [AGENTS.md](AGENTS.md)。简要流程:
1. 在 `skills/` 下创建目录,编写 `SKILL.md`
2. 测试技能(含验证清单)
3. 提交 Pull Request
完成修改前运行统一门禁:
```bash
just verify
```
## 文档
- [AGENTS.md](AGENTS.md) — AI Agent 开发指南(技能模板、代码规范、测试要求)
- [项目总览](docs/project-overview.md) — 技能体系、开发原则
- [团队使用指南](docs/team-guide.md) — FP 到研发的统一流程和边界
- [模板体系设计](docs/template-system.md) — 多层级模板架构
- [协作指南](docs/collaboration-guide.md) — Git 工作流、PR 流程
- [技能开发规范](docs/skill-development.md) — 开发流程与规范
- [测试指南](docs/testing-guide.md) — 本地测试各 skill 的方法
- [模板使用说明](templates/README.md) — 模板查找与占位符
- [变更日志](CHANGELOG.md) — 版本历史
## 资源
- [OpenCode 文档](https://opencode.ai/docs/) — 平台文档
- [Superpowers 框架](https://github.com/obra/superpowers) — 开发方法论
## 许可证
Apache License 2.0,详见 [LICENSE](LICENSE)。整合前 Muggles 代码的 MIT 许可声明保存在 [LICENSES/MIT.txt](LICENSES/MIT.txt)。
---
*麻瓜——拒绝魔法,拥抱确定性。*