
# 质量检查清单（Checklist）

生成或执行质量检查清单，支持两种模式：

## 🎯 支持的检查类型

### 第一类：规格质量检查（问题生成式）
验证规划文档本身的质量（类似"需求的单元测试"）：

- `大纲质量` - 检查 outline.md 的完整性、清晰度、一致性
- `角色设定` - 检查 spec/knowledge/characters.md
- `世界观` - 检查 spec/knowledge/world-setting.md 及相关文档
- `创作计划` - 检查 creative-plan.md / specification.md
- `伏笔管理` - 检查 spec/tracking/plot-tracker.json 的伏笔定义

### 第二类：内容验证检查（结果报告式）
扫描已写章节，验证实际内容：

- `世界观一致性` - 扫描章节内容，检查世界观描述矛盾
- `情节对齐` - 对比进度与大纲，检查情节发展
- `数据同步` - 验证所有 tracking JSON 文件的同步性
- `时间线` - 检查时间事件的逻辑连续性
- `写作状态` - 检查写作准备度和任务状态

## 用户输入

```text
$ARGUMENTS
```

## 执行流程

### 1. 识别检查类型

根据用户输入，确定检查类型（规格质量 vs 内容验证）：

**关键词映射**：
- "大纲"、"质量" → 规格质量类：大纲质量
- "角色"、"设定" → 规格质量类：角色设定
- "世界观" + "质量/完整性/规格" → 规格质量类：世界观
- "世界观" + "一致性/检查/扫描" → 内容验证类：世界观一致性
- "创作计划"、"规划" → 规格质量类：创作计划
- "伏笔" → 规格质量类：伏笔管理
- "情节"、"对齐"、"进度" → 内容验证类：情节对齐
- "数据"、"同步"、"一致性" → 内容验证类：数据同步
- "时间线"、"时间" → 内容验证类：时间线
- "写作状态"、"准备" → 内容验证类：写作状态

如果用户输入不明确，询问选择。

### 2. 执行对应的检查逻辑

#### 规格质量类检查（生成问题式 Checklist）

执行类似 spec-kit 的需求质量验证逻辑：

##### 2.1 大纲质量检查

**目标**：验证 outline.md 是否具备良好的完整性、清晰度和一致性。

**读取文件**：
- `outline.md` 或 `stories/*/outline.md`
- `spec/tracking/plot-tracker.json`（如果存在）

**生成检查项维度**：

**完整性 (Completeness)**：
- 是否为每个主要情节节点定义了触发条件和结果？
- 是否明确每个卷/章的故事目标？
- 是否覆盖所有主要角色的成长弧？
- 是否定义了主要冲突的升级路径？
- 是否明确故事的高潮和结局？

**清晰度 (Clarity)**：
- 情节节点的触发条件是否具体可验证？
- 章节分配是否有明确的依据（如字数、情节密度）？
- 角色动机是否用具体事件量化？
- 场景描述是否避免模糊词汇（"某个地方"、"一段时间"）？

**一致性 (Consistency)**：
- 情节线索前后是否矛盾？
- 角色行为是否符合设定？
- 时间跨度是否合理？
- 世界观规则是否与大纲描述一致？

**可测量性 (Measurability)**：
- 章节分配是否合理可行（如每章2000-4000字）？
- 伏笔回收时机是否明确（章节号或章节范围）？
- 角色成长是否有明确的里程碑？

**覆盖范围 (Coverage)**：
- 是否考虑了所有主要场景类型（冲突、日常、转折）？
- 是否覆盖了所有主要角色的戏份？
- 是否包含必要的伏笔铺设和回收？

**输出格式示例**：
```markdown
# 大纲质量检查清单
**创建时间**: 2025-10-11
**检查对象**: outline.md
**检查维度**: 完整性、清晰度、一致性、可测量性、覆盖范围

## 完整性 (Completeness)

- [ ] CHK001 是否为每个主要情节节点定义了触发条件和结果？ [Spec §大纲3.2]
- [ ] CHK002 是否明确每个卷/章的故事目标？ [Gap]
- [ ] CHK003 是否覆盖所有主要角色的成长弧？ [Spec §大纲5.1]

## 清晰度 (Clarity)

- [ ] CHK004 情节节点的触发条件是否具体可验证？ [Ambiguity, Spec §大纲3.2]
- [ ] CHK005 章节分配是否有明确的依据？ [Clarity]

## 一致性 (Consistency)

- [ ] CHK006 情节线索前后是否矛盾？ [Consistency]
- [ ] CHK007 世界观规则是否与大纲描述一致？ [Consistency, vs §世界观]

## 可测量性 (Measurability)

- [ ] CHK008 章节分配是否合理可行（如每章2000-4000字）？ [Measurability]
- [ ] CHK009 伏笔回收时机是否明确（章节号或范围）？ [Gap]

## 覆盖范围 (Coverage)

- [ ] CHK010 是否考虑了所有主要场景类型？ [Coverage]
- [ ] CHK011 是否包含必要的伏笔铺设和回收？ [Coverage, Gap]

## 使用说明

勾选已验证项：`[x]`
标记问题项：`[!]` 并在下方记录具体问题
```

##### 2.2 角色设定检查

**读取文件**：
- `spec/knowledge/characters.md`
- `spec/tracking/character-state.json`
- `spec/tracking/relationships.json`

**生成检查项维度**：

**完整性**：
- 主要角色是否定义了基本信息（姓名、年龄、身份、外貌）？
- 是否定义了角色的核心动机和目标？
- 是否定义了角色的性格特征和行为模式？
- 是否定义了角色的背景故事？
- 是否定义了角色的能力和局限？

**清晰度**：
- 角色动机是否具体可验证（非"想要成功"而是"想通过科举改变家族命运"）？
- 性格特征是否通过具体行为体现？
- 角色目标是否可量化或有明确的达成标准？

**一致性**：
- 角色设定与大纲中的行为是否一致？
- 不同文档中的角色描述是否一致？
- 角色关系定义是否对称（A对B的关系 vs B对A的关系）？

**可测量性**：
- 角色成长是否有明确的阶段划分？
- 角色能力变化是否可追踪？

##### 2.3 世界观检查

**读取文件**：
- `spec/knowledge/world-setting.md`
- `spec/knowledge/locations.md`
- `spec/knowledge/culture.md`
- `spec/knowledge/rules.md`

**生成检查项维度**：

**完整性**：
- 是否定义了核心世界观规则（魔法体系、科技水平、社会结构）？
- 是否定义了主要地点及其特征？
- 是否定义了文化风俗、语言、传统？
- 是否定义了时代背景和历史脉络？

**清晰度**：
- 世界观规则是否明确无歧义？
- 地理位置、距离、方位是否清晰？
- 特殊术语是否有明确定义？

**一致性**：
- 不同文档中的世界观设定是否一致？
- 世界观规则是否存在内部矛盾？
- 与大纲描述是否一致？

**覆盖范围**：
- 是否覆盖了故事涉及的所有地点？
- 是否定义了所有出现的特殊规则或能力？

##### 2.4 创作计划检查

**读取文件**：
- `creative-plan.md` 或 `specification.md`
- `tasks.md`

**生成检查项维度**：

**完整性**：
- 是否定义了创作目标和里程碑？
- 是否明确了创作流程和步骤？
- 是否定义了质量标准？

**清晰度**：
- 任务划分是否清晰具体？
- 时间安排是否合理？
- 验收标准是否明确？

**一致性**：
- 计划是否与大纲规模匹配？
- 任务是否涵盖所有规划内容？

##### 2.5 伏笔管理检查

**读取文件**：
- `spec/tracking/plot-tracker.json`
- `outline.md`

**生成检查项维度**：

**完整性**：
- 是否记录了所有规划的伏笔？
- 每个伏笔是否定义了铺设章节和回收章节？
- 是否定义了伏笔的类型和重要性？

**清晰度**：
- 伏笔内容描述是否清晰？
- 回收方式是否明确？

**可测量性**：
- 回收时机是否有明确的章节号或范围？
- 是否定义了铺设密度（避免过多未回收伏笔）？

**一致性**：
- 伏笔是否与大纲情节匹配？
- planted 和 resolved 字段是否一致？

#### 内容验证类检查（执行脚本生成报告）

这些检查需要扫描实际写作内容，调用对应的 bash 脚本：

##### 2.5 世界观一致性检查

执行命令：
```bash
bash .specify/scripts/bash/check-world.sh --checklist
```

如果脚本不存在，提示用户该功能正在开发中。

##### 2.6 情节对齐检查

执行命令：
```bash
bash .specify/scripts/bash/check-plot.sh --checklist
```

##### 2.7 数据同步检查

执行命令：
```bash
bash .specify/scripts/bash/check-consistency.sh --checklist
```

##### 2.8 时间线检查

执行命令：
```bash
bash .specify/scripts/bash/check-timeline.sh check --checklist
```

##### 2.9 写作状态检查

执行命令：
```bash
bash .specify/scripts/bash/check-writing-state.sh --checklist
```

### 3. 输出 Checklist

**保存位置**：`spec/checklists/`

**文件命名规则**：
- 规格质量类：`[类型]-quality.md`（如 `outline-quality.md`）
- 内容验证类：`[类型]-[日期].md`（如 `world-consistency-20251011.md`）

**输出格式**：使用 `.specify/templates/checklist-template.md` 作为模板。

### 4. 报告结果

输出：
- Checklist 文件路径
- 检查项总数
- 检查类型和范围
- 如何使用 checklist 的说明

## 示例用法

```bash
# 规格质量检查
/checklist 大纲质量
/checklist 角色设定
/checklist 世界观

# 内容验证检查
/checklist 世界观一致性
/checklist 情节对齐
/checklist 数据同步
```

## 注意事项

1. **规格质量类 checklist**：用于写作前的规划验证，发现文档本身的质量问题
2. **内容验证类 checklist**：用于写作后的内容检查，发现实际产出的问题
3. 两类 checklist 互补，建议：规划阶段使用第一类，写作阶段使用第二类
4. 所有 checklist 保存在 `spec/checklists/` 目录，便于追踪历史检查记录

## 向后兼容说明

旧命令 `/world-check` 和 `/plot-check` 仍然可用，但推荐使用统一的 `/checklist` 命令。
