每个新的或修改的 lesson 在提交 PR 前,按此清单逐项检查。 合并门禁:所有 Must 项通过 + 至少 4 个 Should 项通过。
- 标题:英文,kebab-case 文件名,4-120 字符,准确描述问题
- Frontmatter:JSON 格式,包含
title、domain、tags、status、confidence、created、source - Problem 段落:明确描述症状和场景,不模糊
- Root Cause 段落:给出技术根因,不跳过
- Solution 段落:步骤化,带命令/配置/代码
- Verification 段落:有可执行的验证步骤(命令、测试、预期输出)
- 代码块:标注语言(
```python、```bash、```yaml) - 路径:用
<placeholder>而非硬编码绝对路径 - 文件编码:UTF-8,无 BOM
- 行尾:LF(Unix),非 CRLF
- 命令可复现:所有命令行参数、配置项在标准环境下可运行
- 引用存在:引用的文件、URL、issue、PR 均可访问
- 无敏感信息:无 API key、token、密码、内网 IP
- Tags 完整:3-10 个 tag,每个 >= 2 字符,小写
- Domain 明确:属于
rag/devops/fanuc/network/feishu/tts/mcp/agent-network/marketing/audio之一 - Notes 段落:包含边界条件、注意事项、相关 lessons 引用
- related lessons:引用其他 lesson 时用相对路径
- 适用环境说明:若与环境相关,标注
platform:wsl/platform:linux/platform:docker等 - 来源标注:
source字段填写贡献者标识而非泛称 - 无超长行:每行 <= 120 字符(代码块除外)
- 英文用语:术语统一(如 "root cause" 不混用 "reason")
当 Quality Score 算法上线后,CI 会自动评分。当前人工预检可参考:
| 维度 | 权重 | 说明 |
|---|---|---|
root_cause_clarity |
0.5 | 根因是否明确、有技术细节 |
verify_completeness |
0.3 | 验证步骤是否可独立重复 |
domain_coverage |
0.2 | 是否涵盖多环境/多版本 |
| Score | = 0.5×clarity + 0.3×completeness + 0.2×coverage |
Score < 0.6 → 需标记 needs-review,不应合并。
1. 从 TEMPLATE.md 复制模板
2. 填写全部 Must 字段
3. 运行 python3 -c "import json; json.load(open('your-lesson.md'))" 校验 frontmatter
4. 在本地跑一次 search_knowledge.py 确认能被检索到
5. 对照上表逐项打勾
6. 提交 PR
| 等级 | 条件 | 动作 |
|---|---|---|
| ✅ approve | Must 全过 + Should >= 5 | 可直接合并 |
| 👀 needs-fix | 1-2 个 Must 未过 | 要求修改后重新 review |
| ❌ reject | >= 3 个 Must 未过,或包含敏感信息 | 关闭 PR 并说明原因 |