Explorar el Código

docs(write): 统一Step3自动审查路由与checker输出契约

lingfengQAQ hace 3 meses
padre
commit
86edb7bff0

+ 1 - 1
.claude/agents/consistency-checker.md

@@ -12,7 +12,7 @@ tools: Read, Grep, Bash
 
 ## Scope
 
-**Input**: Chapter range (e.g., "1-2", "45-46")
+**Input**: Single chapter or chapter range (e.g., `45` / `"45-46"`)
 
 **Output**: Structured report on setting violations, power-level conflicts, and logical inconsistencies.
 

+ 1 - 1
.claude/agents/continuity-checker.md

@@ -12,7 +12,7 @@ tools: Read, Grep
 
 ## Scope
 
-**Input**: Chapter range (e.g., "1-2", "45-46")
+**Input**: Single chapter or chapter range (e.g., `45` / `"45-46"`)
 
 **Output**: Continuity analysis covering scene transitions, plot threads, foreshadowing, and logical flow.
 

+ 12 - 26
.claude/agents/high-point-checker.md

@@ -17,7 +17,7 @@ tools: Read, Grep, Bash
 
 ## Scope
 
-**Input**: Chapter range (e.g., "1-2", "45-46")
+**Input**: Single chapter or chapter range (e.g., `45` / `"45-46"`)
 
 **Output**: Structured report on cool-point density, type coverage, and execution quality.
 
@@ -199,32 +199,18 @@ Chapters {N} - {M}
 ```json
 {
   "agent": "high-point-checker",
-  "chapters": [45, 46],
-  "overall_pass": true,
-  "density": {
-    "total_coolpoints": 4,
-    "per_chapter_avg": 2.0,
-    "meets_baseline": true
-  },
-  "diversity": {
-    "distribution": {
-      "装逼打脸": 1,
-      "迪化误解": 2,
-      "身份掉马": 1
-    },
-    "dominant_type": null,
+  "chapter": 45,
+  "overall_score": 86,
+  "pass": true,
+  "issues": [],
+  "metrics": {
+    "cool_point_count": 2,
+    "cool_point_types": ["迪化误解", "身份掉马"],
+    "density_score": 8,
+    "type_diversity": 0.9,
+    "milestone_present": false,
     "monotony_risk": false
   },
-  "coolpoints": [
-    {
-      "chapter": 45,
-      "description": "主角随口评价被当做高人指点",
-      "mode": "迪化误解",
-      "grade": "A",
-      "structure_30_40_30": true,
-      "pressure_relief_ratio": "压3扬7"
-    }
-  ],
-  "recommendations": []
+  "summary": "爽点密度达标,类型分布健康,执行质量稳定。"
 }
 ```

+ 1 - 1
.claude/agents/ooc-checker.md

@@ -12,7 +12,7 @@ tools: Read, Grep
 
 ## Scope
 
-**Input**: Chapter range (e.g., "1-2", "45-46")
+**Input**: Single chapter or chapter range (e.g., `45` / `"45-46"`)
 
 **Output**: Character behavior analysis, OOC violations, and personality drift warnings.
 

+ 1 - 1
.claude/agents/pacing-checker.md

@@ -12,7 +12,7 @@ tools: Read, Grep, Bash
 
 ## Scope
 
-**Input**: Chapter range (e.g., "1-2", "45-46")
+**Input**: Single chapter or chapter range (e.g., `45` / `"45-46"`)
 
 **Output**: Strand distribution analysis, balance warnings, and pacing recommendations.
 

+ 2 - 1
.claude/agents/reader-pull-checker.md

@@ -29,6 +29,7 @@ tools: Read, Grep, Bash
   "chapter": 100,
   "overall_score": 85,
   "pass": true,
+  "issues": [],
   "hard_violations": [],
   "soft_suggestions": [
     {
@@ -41,7 +42,6 @@ tools: Read, Grep, Bash
       "allowed_rationales": ["TRANSITIONAL_SETUP", "CHARACTER_CREDIBILITY"]
     }
   ],
-  "issues": [],
   "metrics": {
     "hook_present": true,
     "hook_type": "渴望钩",
@@ -55,6 +55,7 @@ tools: Read, Grep, Bash
     "next_chapter_reason": "读者想知道云芝找萧炎什么事",
     "debt_balance": 0.0
   },
+  "summary": "硬约束通过,钩子强度偏弱,建议增强章末期待。",
   "override_eligible": true
 }
 ```

+ 9 - 0
.claude/references/checker-output-schema.md

@@ -2,6 +2,11 @@
 
 所有审查 Agent 应遵循此统一输出格式,便于自动化汇总和趋势分析。
 
+说明:
+- 单章写作场景默认使用 `chapter` 字段。
+- 若需要兼容区间统计,可在聚合层补充 `start_chapter/end_chapter`,不要求单个 checker 必填。
+- 允许扩展字段,但不得删除或替代本文件定义的必填字段。
+
 ## 标准 JSON Schema
 
 ```json
@@ -38,6 +43,10 @@
 | `metrics` | object | ✅ | Agent 特定指标 |
 | `summary` | string | ✅ | 简短总结 |
 
+扩展字段约定(可选):
+- 可附加 checker 私有字段(如 `hard_violations`、`soft_suggestions`、`override_eligible`)。
+- 私有字段用于增强解释,不用于替代 `issues`。
+
 ## 问题严重度定义
 
 | severity | 含义 | 处理方式 |

+ 96 - 0
.claude/skills/webnovel-write/references/step-3-review-gate.md

@@ -0,0 +1,96 @@
+# Step 3 Review Gate
+
+## 调用约束(硬规则)
+
+- 必须使用 `Task` 调用审查 subagent,禁止主流程直接内联“自审结论”。
+- 审查任务可并行发起,必须在全部返回后统一聚合。
+- `overall_score` 必须来自聚合结果,不可主观估分。
+- 单章写作场景下,统一传入:`{chapter, chapter_file, project_root}`。
+
+## 审查路由模式
+
+- 标准/`--fast`:`auto` 路由(核心 3 个 + 条件命中)。
+- `--minimal`:固定核心 3 个(不启用条件审查器)。
+
+核心审查器(始终执行):
+- `consistency-checker`
+- `continuity-checker`
+- `ooc-checker`
+
+条件审查器(仅 `auto` 命中时执行):
+- `reader-pull-checker`
+- `high-point-checker`
+- `pacing-checker`
+
+## Auto 路由判定信号
+
+输入信号来源:
+1. Step 1.5 合同(是否过渡章、追读力设计、核心冲突)。
+2. 本章正文(战斗/反转/高光/章末未闭合问题等信号)。
+3. 大纲标签(关键章/高潮章/卷末章/转场章)。
+4. 最近章节节奏(连续主线、情感线断档、世界观线断档)。
+
+路由规则:
+- `reader-pull-checker`:当满足任一条件时启用
+  - 非过渡章;
+  - 有明确未闭合问题/期待锚点;
+  - 用户显式要求“追读力审查”。
+- `high-point-checker`:当满足任一条件时启用
+  - 关键章/高潮章/卷末章;
+  - 正文出现战斗、反杀、打脸、身份揭露、大反转等高光信号。
+- `pacing-checker`:当满足任一条件时启用
+  - 章号 >= 10;
+  - 最近章节存在明显节奏失衡风险;
+  - 用户显式要求“节奏审查”。
+
+## Task 调用模板(示意)
+
+```text
+selected = ["consistency-checker", "continuity-checker", "ooc-checker"]
+
+if mode != "minimal":
+  if trigger_reader_pull: selected.append("reader-pull-checker")
+  if trigger_high_point: selected.append("high-point-checker")
+  if trigger_pacing: selected.append("pacing-checker")
+
+parallel Task(agent, {chapter, chapter_file, project_root}) for agent in selected
+```
+
+## 输出契约(统一)
+
+每个 checker 返回值必须遵循 `.claude/references/checker-output-schema.md`:
+- 必含:`agent`、`chapter`、`overall_score`、`pass`、`issues`、`metrics`、`summary`
+- 允许扩展字段(如 `hard_violations`、`soft_suggestions`),但不得替代必填字段
+
+聚合输出最小字段:
+- `chapter`(单章)
+- `start_chapter`、`end_chapter`(单章时二者都等于 `chapter`)
+- `selected_checkers`
+- `overall_score`
+- `severity_counts`
+- `critical_issues`
+- `issues`(扁平化聚合)
+- `dimension_scores`(按已启用 checker 计算)
+
+## 汇总输出模板
+
+```text
+审查汇总 - 第 {chapter_num} 章
+- selected_checkers: {list}
+- critical issues: {N}
+- high issues: {N}
+- overall_score: {score}
+- 可进入润色: {是/否}
+```
+
+## 审查指标落库(必做)
+
+```bash
+python -m data_modules.index_manager save-review-metrics --data '{...}' --project-root "${PROJECT_ROOT}"
+```
+
+## 进入 Step 4 前闸门
+
+- `overall_score` 已生成。
+- `save-review-metrics` 已成功。
+- 审查报告中的 `issues`、`severity_counts` 可被 Step 4 直接消费。

+ 20 - 0
.claude/skills/webnovel-write/references/step-5-debt-switch.md

@@ -0,0 +1,20 @@
+# Step 5 Debt Switch
+
+## 默认策略
+
+- 债务利息默认关闭。
+- 只有两种情况允许开启:
+  - 用户明确要求开启;
+  - 项目已显式启用债务追踪。
+
+## 执行命令
+
+```bash
+python -m data_modules.index_manager accrue-interest --current-chapter {chapter_num} --project-root "${PROJECT_ROOT}"
+```
+
+## 执行后要求
+
+- 在 Step 5 输出中标注本次是否执行了利息计算。
+- 若执行,输出结果摘要:处理债务数、累计利息、是否出现逾期。
+- 若未执行,明确标注 `debt_interest: skipped (default off)`。

+ 8 - 181
.claude/skills/webnovel-write/references/workflow-details.md

@@ -1,186 +1,13 @@
-# Webnovel Write - Workflow Details
+# Workflow Details (Deprecated)
 
-## Contents
-- 模式与步骤映射
-- Step 1.5 章节设计
-- Step 2B 风格适配器
-- Step 3 审查模板(按模式)
-- Step 4 润色执行细则(含 Phase 1)
-- Step 5 债务与利息开关
+本文件已拆分为按步骤单文件,主流程不再直接引用。
 
-## 模式与步骤映射
+请改为按 Step 加载以下文件:
 
-- 标准模式:Step 1 → 1.5 → 2A → 2B → 3 → 4 → 5 → 6
-- `--fast`:Step 1 → 1.5 → 2A → 3 → 4 → 5 → 6(跳过 Step 2B)
-- `--minimal`:Step 1 → 1.5 → 2A → 3(3个基础审查)→ 4 → 5 → 6
+- Step 1.5:`references/step-1.5-contract.md`
+- Step 3:`references/step-3-review-gate.md`
+- Step 5:`references/step-5-debt-switch.md`
 
 说明:
-- `--minimal` 不运行 `reader-pull-checker`、`high-point-checker`、`pacing-checker`。
-- `--minimal` 不生成追读力专项结论,但仍应生成 `overall_score` 供 Step 5 使用。
-
-## Step 1.5 章节设计(标准/关键章建议执行)
-
-加载参考:
-```bash
-cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/style-variants.md"
-cat "${CLAUDE_PLUGIN_ROOT}/references/reading-power-taxonomy.md"
-cat "${CLAUDE_PLUGIN_ROOT}/references/genre-profiles.md"
-cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/writing/genre-hook-payoff-library.md"
-```
-
-输出结构(必须覆盖 Scene–Sequel 最小闭环):
-- 目标(20字以内)
-- 阻力(20字以内)
-- 代价(20字以内)
-- 本章变化(30字以内,优先可量化变化:关系/资源/风险/地位/能力)
-- 未闭合问题(建议 30 字以内;与钩子类型/强度策略一致,位置可在后段或章末)
-- 核心冲突一句话
-- 开头类型(冲突/悬疑/动作/对话/氛围)
-- 情绪节奏(低→高/高→低/低→高→低/平稳)
-- 信息密度(low/medium/high)
-- 是否过渡章(true/false)
-- 追读力设计:钩子类型/强度、微兑现清单、爽点模式
-
-差异化检查:
-- 钩子类型优先避免与最近 3 章重复
-- 开头类型优先避免与最近 3 章重复
-- 爽点模式优先避免与最近 5 章过度重复
-
-题材快速调用(电竞/直播文/克苏鲁):
-- 先从 `genre-hook-payoff-library.md` 选 1 条期待锚点(优先章末,也可后段)。
-- 再选 1-2 条微兑现,优先与本章核心冲突同方向。
-- 若连续两章使用同类型钩子,建议在“对象/代价/结果”至少变更一项。
-
-如必须重复,记录 Override 理由并给出差异化执行方式。
-
-## Step 2B 风格适配器(`--fast` / `--minimal` 可跳过)
-
-```bash
-cat "${CLAUDE_PLUGIN_ROOT}/skills/webnovel-write/references/style-adapter.md"
-```
-
-目标:不改剧情事实,只提升网文口感与张力。
-
-执行清单(网文增强):
-- 保证章首 300 字内交代“目标 + 阻力”。
-- 按章型安排 1-3 次微兑现,避免机械等间距。
-- 章内至少出现 1 次可量化变化(关系/资源/风险/地位)。
-- 后段或章末设置期待锚点,优先“选择钩/危机钩”,并与下章目标可衔接。
-- 直播/电竞题材增加“外部反馈(弹幕/舆论/比分)→ 主角决策”链路。
-
-## Step 3 审查模板(按模式)
-
-调用约束:
-- 必须使用 `Task` 工具调用审查 subagent,禁止主流程直接给出“审查结论”。
-- 审查阶段先并行调用,再聚合结果;`overall_score` 必须来自聚合结果。
-
-Task 调用模板(示意):
-```text
-Task("consistency-checker", {chapter, chapter_file, project_root})
-Task("continuity-checker", {chapter, chapter_file, project_root})
-Task("ooc-checker", {chapter, chapter_file, project_root})
-Task("reader-pull-checker", {chapter, chapter_file, project_root})   # minimal 跳过
-Task("high-point-checker", {chapter, chapter_file, project_root})    # 可选
-Task("pacing-checker", {chapter, chapter_file, project_root})        # 可选
-```
-
-审查汇总表格:
-```text
-┌─────────────────────────────────────────────────┐
-│ 审查汇总 - 第 {chapter_num} 章                  │
-├──────────────────────┬───────────┬──────────────┤
-│ Agent                │ 结果      │ 关键问题数   │
-├──────────────────────┼───────────┼──────────────┤
-│ consistency-checker  │ PASS/FAIL │ {N}          │
-│ continuity-checker   │ PASS/FAIL │ {N}          │
-│ ooc-checker          │ PASS/FAIL │ {N}          │
-│ reader-pull-checker* │ PASS/FAIL │ {N}          │
-│ high-point-checker** │ PASS/FAIL │ {N}          │
-│ pacing-checker**     │ PASS/FAIL │ {N}          │
-├──────────────────────┴───────────┴──────────────┤
-│ critical issues: {N} | high issues: {N}         │
-│ 是否可进入润色: {是/否}                          │
-└─────────────────────────────────────────────────┘
-```
-
-标注说明:
-- `*` 标准模式启用;`--minimal` 不启用。
-- `**` 关键章/卷末/用户明确要求时启用。
-
-审查指标 JSON(标准/fast):
-```json
-{
-  "start_chapter": {chapter_num},
-  "end_chapter": {chapter_num},
-  "overall_score": 48,
-  "dimension_scores": {
-    "爽点密度": 8,
-    "设定一致性": 7,
-    "节奏控制": 7,
-    "人物塑造": 8,
-    "连贯性": 9,
-    "追读力": 9
-  },
-  "severity_counts": {"critical": 1, "high": 2, "medium": 3, "low": 1},
-  "critical_issues": ["设定自相矛盾"],
-  "report_file": "",
-  "notes": ""
-}
-```
-
-审查指标 JSON(`--minimal`):
-```json
-{
-  "start_chapter": {chapter_num},
-  "end_chapter": {chapter_num},
-  "overall_score": 52,
-  "dimension_scores": {
-    "设定一致性": 8,
-    "人物塑造": 7,
-    "连贯性": 8
-  },
-  "severity_counts": {"critical": 0, "high": 1, "medium": 2, "low": 1},
-  "critical_issues": [],
-  "report_file": "",
-  "notes": "minimal mode without reader-pull/high-point/pacing"
-}
-```
-
-保存审查指标:
-```bash
-python -m data_modules.index_manager save-review-metrics --data '{...}' --project-root "."
-```
-
-## Step 4 润色执行细则(含 Phase 1)
-
-第一优先级(必须先做):
-- 修复审查报告中的 `critical`。
-- 修复 `high`,如无法修复必须记录 deviation。
-
-第二优先级(网文化分层规则):
-- Hard:本章存在明确推进点;关键对话可判定意图;抽象判断转为行为表达。
-- Soft:开头建议前 200-400 字进入冲突;局面变化保持脉冲;后段或章末有期待锚点。
-- Style:避免连续大段纯解释,避免机械收尾与机械打点。
-
-第三优先级(Phase 1:Anti-AI + No-Poison):
-- 词库采用“抽样检查”而非全量扫描,至少覆盖章首/章中/章末。
-- 禁止三段式说明句(首先/其次/最后)。
-- 对话去说明书化,保留试探/回避/施压等意图。
-- 检查 5 类毒点红线(降智推进/强行误会/圣母无底线/工具人配角/双标裁决)。
-- 不得破坏“大纲即法律 / 设定即物理”。
-
-润色完成清单:
-- [ ] critical 已修复
-- [ ] high 已修复或记录 deviation
-- [ ] 网文化分层规则已校验
-- [ ] Phase 1 抽样检查已完成
-- [ ] 未触发毒点红线或已补充代价说明
-
-## Step 5 债务与利息开关
-
-- 默认不计算利息。
-- 仅在“开启债务追踪”或用户明确要求时执行:
-
-```bash
-python -m data_modules.index_manager accrue-interest --current-chapter {chapter_num} --project-root "."
-```
+- Step 2B 请读取 `references/style-adapter.md`
+- Step 4 请读取 `references/polish-guide.md` 与 `references/writing/typesetting.md`