Files
Claude-Code-Workflow/.claude/skills/skill-generator/specs/reference-docs-spec.md
catlog22 b791c09476 docs: Add reference-docs-spec and optimize skill-generator for proper document organization
- Create specs/reference-docs-spec.md with comprehensive guidelines for phase-based reference document organization
- Update skill-generator's Mandatory Prerequisites to include new reference-docs-spec
- Refactor skill-md.md template to generate phase-based reference tables with 'When to Use' guidance
- Add generateReferenceTable() function to automatically create structured reference sections
- Replace flat template reference lists with phase-based navigation
- Update skill-generator's own SKILL.md to demonstrate correct reference documentation pattern
- Ensure all generated skills will have clear document usage timing and context
2026-01-29 15:28:21 +08:00

272 lines
7.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reference Documents Generation Specification
> **重要**: 本规范定义如何在生成的skill中组织和展现参考文档避免重复问题。
## 核心原则
### 1. 分阶段组织 (Phase-Based Organization)
参考文档必须按照skill的执行阶段组织而不是平铺列表。
**❌ 错误方式** (平铺列表):
```markdown
## Reference Documents
| Document | Purpose |
|----------|---------|
| doc1.md | ... |
| doc2.md | ... |
| doc3.md | ... |
```
**✅ 正确方式** (分阶段导航):
```markdown
## Reference Documents by Phase
### 📋 Phase 1: Analysis
执行Phase 1时查阅的文档
| Document | Purpose | When to Use |
|----------|---------|-------------|
| doc1.md | ... | 理解x概念 |
### ⚙️ Phase 2: Implementation
执行Phase 2时查阅的文档
| Document | Purpose | When to Use |
|----------|---------|-------------|
| doc2.md | ... | 实现y功能 |
```
### 2. 四个标准分组
参考文档必须分为以下四个分组:
| 分组 | 使用时机 | 内容 |
|-----|---------|------|
| **Phase N: [Name]** | 执行该Phase时 | 该阶段相关的所有文档 |
| **🔍 Debugging** | 遇到问题时 | 问题→文档映射表 |
| **📚 Reference** | 深度学习时 | 模板、原始实现、最佳实践 |
| (可选) **📌 Quick Links** | 快速导航 | 最常查阅的5-7个文档 |
### 3. 每个文档条目必须包含
```
| [path](path) | Purpose | When to Use |
```
**When to Use 列要求**:
- ✅ 清晰说明使用场景
- ✅ 描述解决什么问题
- ❌ 不要简单说 "参考" 或 "了解"
**良好例子**:
- "理解issue数据结构"
- "学习Planning Agent的角色"
- "检查implementation是否达到质量标准"
- "快速定位状态异常的原因"
**糟糕例子**:
- "参考文档"
- "更多信息"
- "背景知识"
### 4. 执行流程中嵌入文档指引
在"Execution Flow"部分每个Phase说明中应包含"查阅"提示:
```markdown
### Phase 2: Planning Pipeline
**查阅**: action-plan.md, subagent-roles.md
→ 具体流程说明...
```
### 5. 问题排查快速查询表
应包含常见问题到文档的映射:
```markdown
### 🔍 Debugging & Troubleshooting
| Issue | Solution Document |
|-------|------------------|
| Phase执行失败 | 查阅相应Phase文档 |
| 输出格式不符 | specs/quality-standards.md |
| 数据验证失败 | specs/schema-validation.md |
```
---
## 生成规则
### 规则 1: 文档分类识别
根据skill的phases自动生成分组
```javascript
const phaseEmojis = {
'discovery': '📋', // 收集、探索
'generation': '🔧', // 生成、创建
'analysis': '🔍', // 分析、审查
'implementation': '⚙️', // 实现、执行
'validation': '✅', // 验证、测试
'completion': '🏁', // 完成、收尾
};
// 为每个phase生成一个章节
phases.forEach((phase, index) => {
const emoji = phaseEmojis[phase.type] || '📌';
const title = `### ${emoji} Phase ${index + 1}: ${phase.name}`;
// 列出该phase相关的所有文档
});
```
### 规则 2: 文档到Phase的映射
在config中specs和templates应标注所属的phases
```json
{
"specs": [
{
"path": "specs/issue-handling.md",
"purpose": "Issue数据规范",
"phases": ["phase-2", "phase-3"], // 这个spec与哪些phase相关
"context": "理解issue结构和验证规则"
}
]
}
```
### 规则 3: 优先级和必读性
用视觉符号区分文档的重要性:
```markdown
| Document | When | Notes |
|----------|------|-------|
| spec.md | **执行前必读** | ✅ 强制前置 |
| action.md | 执行时查阅 | 操作指南 |
| template.md | 参考学习 | 可选深入 |
```
### 规则 4: 避免重复
- **Mandatory Prerequisites** 部分列出强制必读的P0规范
- **Reference Documents by Phase** 部分:列出所有文档 (包括强制必读的)
- 两个部分的文档可以重叠,但目的不同:
- Prerequisites强调"必须先读"
- Reference提供"完整导航"
---
## 实现示例
### Sequential Skill 示例
```markdown
## ⚠️ Mandatory Prerequisites (强制前置条件)
| Document | Purpose | When |
|----------|---------|------|
| [specs/issue-handling.md](specs/issue-handling.md) | Issue数据规范 | **执行前必读** |
| [specs/solution-schema.md](specs/solution-schema.md) | 解决方案结构 | **执行前必读** |
---
## Reference Documents by Phase
### 📋 Phase 1: Issue Collection
执行Phase 1时查阅的文档
| Document | Purpose | When to Use |
|----------|---------|-------------|
| [phases/actions/action-list.md](phases/actions/action-list.md) | Issue加载逻辑 | 理解如何收集issues |
| [specs/issue-handling.md](specs/issue-handling.md) | Issue数据规范 | 验证issue格式 ✅ **必读** |
### ⚙️ Phase 2: Planning
执行Phase 2时查阅的文档
| Document | Purpose | When to Use |
|----------|---------|-------------|
| [phases/actions/action-plan.md](phases/actions/action-plan.md) | Planning流程 | 理解issue→solution转换 |
| [specs/solution-schema.md](specs/solution-schema.md) | 解决方案结构 | 验证solution JSON格式 ✅ **必读** |
### 🔍 Debugging & Troubleshooting
| Issue | Solution Document |
|-------|------------------|
| Phase 1失败 | [phases/actions/action-list.md](phases/actions/action-list.md) |
| Planning输出不符 | [phases/actions/action-plan.md](phases/actions/action-plan.md) + [specs/solution-schema.md](specs/solution-schema.md) |
| 数据验证失败 | [specs/issue-handling.md](specs/issue-handling.md) |
### 📚 Reference & Background
| Document | Purpose | Notes |
|----------|---------|-------|
| [../issue-plan.md](../../.codex/prompts/issue-plan.md) | 原始实现 | Planning Agent system prompt |
```
---
## 生成算法
```javascript
function generateReferenceDocuments(config) {
let result = '## Reference Documents by Phase\n\n';
// 为每个phase生成一个章节
const phases = config.phases || config.actions || [];
phases.forEach((phase, index) => {
const phaseNum = index + 1;
const emoji = getPhaseEmoji(phase.type);
const title = phase.display_name || phase.name;
result += `### ${emoji} Phase ${phaseNum}: ${title}\n`;
result += `执行Phase ${phaseNum}时查阅的文档\n\n`;
// 找出该phase相关的所有文档
const docs = config.specs.filter(spec =>
(spec.phases || []).includes(`phase-${phaseNum}`) ||
matchesByName(spec.path, phase.name)
);
if (docs.length > 0) {
result += '| Document | Purpose | When to Use |\n';
result += '|----------|---------|-------------|\n';
docs.forEach(doc => {
const required = doc.phases && doc.phases[0] === `phase-${phaseNum}` ? ' ✅ **必读**' : '';
result += `| [${doc.path}](${doc.path}) | ${doc.purpose} | ${doc.context}${required} |\n`;
});
result += '\n';
}
});
// 问题排查部分
result += '### 🔍 Debugging & Troubleshooting\n\n';
result += generateDebuggingTable(config);
// 深度学习参考
result += '### 📚 Reference & Background\n\n';
result += generateReferenceTable(config);
return result;
}
```
---
## 检查清单
生成skill的SKILL.md时参考文档部分应满足
- [ ] 有明确的"## Reference Documents by Phase"标题
- [ ] 每个Phase都有对应的章节 (用emoji标识)
- [ ] 每个文档条目包含"When to Use"列
- [ ] 包含"🔍 Debugging & Troubleshooting"部分
- [ ] 包含"📚 Reference & Background"部分
- [ ] 强制必读文档用✅和**粗体**标记
- [ ] Execution Flow部分中有"→ **查阅**: ..."指引
- [ ] 避免过长的文档列表 (一个Phase最多5-8个文档)