Skip to content
Open

Work #84

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
"description": "Marketplace for installing the webnovel-writer plugin."
},
"owner": {
"name": "lingfengQAQ"
"name": "yangda611"
},
"plugins": [
{
"name": "webnovel-writer",
"description": "长篇网文创作系统(skills + agents + data chain + RAG)",
"version": "6.0.0",
"author": {
"name": "lingfengQAQ"
"name": "yangda611"
},
"source": "./webnovel-writer",
"category": "productivity",
"homepage": "https://github.com/lingfengQAQ/webnovel-writer"
"homepage": "https://github.com/yangda611/webnovel-writer"
}
]
}
84 changes: 84 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,90 @@ RERANK_API_KEY=your_rerank_api_key
/webnovel-review 1-5 # 审查第 1-5 章
```

## 命令总览(更新)

> 你可以只记住两层命令:
> 1) Claude Code 插件命令(`/webnovel-*`)
> 2) 统一 CLI 命令(`python .../webnovel.py <subcommand>`)

### A. Claude Code 插件命令(面向日常创作)

| 命令 | 作用 | 常见用法 |
|---|---|---|
| `/webnovel-init` | 初始化书项目目录、设定模板、状态文件 | `/webnovel-init` |
| `/webnovel-plan [卷号]` | 生成卷级规划和章节大纲 | `/webnovel-plan 1` |
| `/webnovel-write [章号]` | 执行完整写作链:上下文→起草→审查→提交 | `/webnovel-write 35` |
| `/webnovel-review [范围]` | 对已有章节做质量审查 | `/webnovel-review 31-35` |
| `/webnovel-query [关键词]` | 查询角色/伏笔/状态等运行时信息 | `/webnovel-query 萧炎` |
| `/webnovel-learn [内容]` | 抽取经验写入项目记忆 | `/webnovel-learn "这章危机钩有效"` |
| `/webnovel-dashboard` | 启动只读可视化面板 | `/webnovel-dashboard` |

### B. 统一 CLI 子命令(面向运维与自动化)

统一入口:

```bash
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" <子命令> [参数]
```

| 子命令 | 作用 |
|---|---|
| `preflight` | 校验脚本、项目根、主链健康状态 |
| `where` / `use` | 查看/绑定当前项目根目录 |
| `story-system` | 生成或刷新 Story System 合同(master/volume/chapter/review) |
| `review-pipeline` | 处理 reviewer JSON,生成报告并写审查指标 |
| `chapter-commit` | 提交章节事实并触发 projection(state/index/summary/memory/vector) |
| `orchestrate` | 批量自动编排(write/heal/nightly),减少手工逐条命令执行 |
| `rag` | 向量检索与索引管理(如按章索引、统计) |
| `index/state/entity/context/style` | 各类数据模块运维入口 |
| `status/update-state/backup/archive` | 状态巡检、手工更新、备份与归档 |
| `memory` / `memory-contract` / `project-memory` | 长期记忆查询、合同管理、项目记忆管理 |
| `story-events` | 查询章节事件或查看事件链健康 |
| `extract-context` | 提取指定章节上下文 |
| `master-outline-sync` | 卷规划后写回总纲锚点 |

`orchestrate` 示例:

```bash
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate write --chapters 1-20 --auto-vector-heal
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate heal --chapters 1-200 --json-report-out ".webnovel/reports/heal.json"
```

实体脏数据(如拼音/英文 snake_case)扫描与标记:

```bash
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" entity-clean --mark-invalid --format json --chapter 100
```

### Claude Code 插件内一键修复(推荐)

如果你在 **Claude Code 对话框内** 操作,优先用插件命令(不需要手动拼 Python 命令):

```bash
/webnovel-review 1-100
```

先对 1-100 章做一次总审查,确认阻断项和偏纲章段。

然后在 Claude Code 中执行(同一项目会话内):

```bash
/webnovel-write 100
```

用于重跑第 100 章完整链(上下文→起草/修复→审查→提交→投影)。
如果你要批量修复多章,建议在 Claude Code 中让助手按章循环执行 `/webnovel-write N`,每 10 章做一次 `/webnovel-review A-B` 复核。

坏章定点修复示例(15/91/92/94):

```bash
/webnovel-write 15
/webnovel-write 91
/webnovel-write 92
/webnovel-write 94
/webnovel-review 1-100
```

### 6) 可视化面板(可选)

```bash
Expand Down
125 changes: 125 additions & 0 deletions docs/guides/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,24 @@
/webnovel-review 45
```

### `/webnovel-delete [范围]`

删除指定章节,并同步清理正文、commit、事件、摘要、索引、向量、长期记忆、角色图鉴和关系图谱等派生数据。

```bash
/webnovel-delete 3
/webnovel-delete 1,3,5-7
```

### `/webnovel-rewrite [范围]`

重写指定章节:先执行旧数据清理,再按 `/webnovel-write` 主链逐章重新创作。

```bash
/webnovel-rewrite 12
/webnovel-rewrite 12-15
```

### `/webnovel-query [关键词]`

查询角色、伏笔、节奏、状态等运行时信息。
Expand Down Expand Up @@ -138,6 +156,113 @@ python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJE
| `backup` | 备份管理 |
| `archive` | 归档管理 |
| `extract-context` | 提取章节上下文(`--chapter N --format json`) |
| `delete-chapters` | 重写前清理旧章节并重建 read-model(`--chapters 1,3,5-7 --mode rewrite`) |
| `delete` | 精确删除章节及其相关数据(`1,3,5-7 --dry-run/--yes`) |
| `orchestrate` | 批量自动编排(`write/heal/nightly`),按章节范围自动执行检查与修复 |

`orchestrate` 示例:

```bash
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate write --chapters 1-20 --auto-vector-heal
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate heal --chapters 1-200 --fail-fast
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate nightly --chapters 50-80 --json-report-out ".webnovel/reports/nightly.json"
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate autofix --bad-chapters 15,91,92,94 --auto-vector-heal --entity-clean --sync-outline-volumes 2,3 --json-report-out ".webnovel/reports/autofix.json"
```

### 100 章后偏纲的完整修复链(推荐顺序)

当你已经写到 100 章并发现“正文偏离大纲”,建议按下列顺序执行,保证大纲/向量/关系链/实体/事件都被重建与校验:

```bash
# 0) 环境与主链预检
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" preflight --format json

# 1) 批量修复链(审查 + commit + projection + 向量补偿)
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate heal --chapters 1-100 --auto-vector-heal --json-report-out ".webnovel/reports/heal-1-100.json"

# 2) 事件链健康(伏笔追踪/关系链基础)
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" story-events --health

# 3) 实体脏数据扫描并标记(拼音/英文 snake_case)
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" entity-clean --mark-invalid --format json --chapter 100

# 4) 关键观测(实体、关系、审查趋势)
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" index get-core-entities
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" index get-relationship-graph --format json
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" index get-review-trend-stats --last-n 20
```

说明:
- `orchestrate heal` 负责批量修复执行链。
- `story-events --health` 用于检查事件链断裂与健康状态。
- `entity-clean` 会抓出类似 `old_book_knock_mark` 这类脏实体并写入 `invalid_facts` 待处理。

### Claude Code 插件方式:检查与修复(无需手动找命令)

在 Claude Code 里建议按以下节奏执行:

```bash
/webnovel-review 1-100
```

先出总审查报告,定位偏纲、设定冲突、时间线冲突。

```bash
/webnovel-write 91
/webnovel-write 92
/webnovel-write 93
...
/webnovel-write 100
```

对问题章节逐章重跑完整链路(包含审查与提交流程),每批修复完成后再复查:

```bash
/webnovel-review 91-100
```

如需检查运行时数据一致性,再补一条:

```bash
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate heal --chapters 91-100 --auto-vector-heal
```

### 自动修复建议(指定坏章,如 15/91/92/94)

你这个想法非常好,推荐用“**坏章列表自动修复 + 全书连贯复核 + 大纲反写**”三段式:

1) 先审查定位:

```bash
/webnovel-review 1-100
```

2) 在 Claude Code 中按坏章列表循环触发子 agent(示例):

```bash
/webnovel-write 15
/webnovel-write 91
/webnovel-write 92
/webnovel-write 94
```

> `webnovel-write` 会自动调用 context/reviewer/data-agent 子链做修复与重提交。

3) 修完后做全书连贯复核(防止局部修复引发跨章断裂):

```bash
/webnovel-review 1-100
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" story-events --health
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" orchestrate heal --chapters 1-100 --auto-vector-heal --json-report-out ".webnovel/reports/continuity-1-100.json"
```

4) 最后做“大纲反写/校准”,保证后续生成不受旧偏差影响:

```bash
# 先确认受影响卷号,然后逐卷执行
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" master-outline-sync --volume 2 --format json
python -X utf8 "<CLAUDE_PLUGIN_ROOT>/scripts/webnovel.py" --project-root "<PROJECT_ROOT>" master-outline-sync --volume 3 --format json
```

### 长期记忆子命令

Expand Down
6 changes: 3 additions & 3 deletions webnovel-writer/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
"version": "6.0.0",
"description": "长篇网文创作系统(skills + agents + data chain + RAG)",
"author": {
"name": "lingfengQAQ"
"name": "yangda611"
},
"homepage": "https://github.com/lingfengQAQ/webnovel-writer",
"repository": "https://github.com/lingfengQAQ/webnovel-writer",
"homepage": "https://github.com/yangda611/webnovel-writer",
"repository": "https://github.com/yangda611/webnovel-writer",
"license": "GPL-3.0",
"keywords": [
"webnovel",
Expand Down
6 changes: 5 additions & 1 deletion webnovel-writer/agents/context-agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ model: inherit

# context-agent

> **虚构声明**:以下内容均为虚构历史小说创作,不涉及现实犯罪指导、现实伤害、违法操作或真实人物。请只进行文学创作,避免输出现实可执行的伤害、威胁、逃避法律、伪造证据等操作步骤。

## 1. 身份

你是写前组装员。先 research,再输出一份写作任务书给 Step 2。
Expand Down Expand Up @@ -115,6 +117,8 @@ python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "{project_root}" extr

任一 fail 回 D 重组:事实无冲突、时空有承接、能力有来源、动机不断裂、合同与任务书一致、时间正确、记忆未遗漏、节点不冲突、任务书可独立支撑起草、五段完整语气自然、角色动机非空、有差异化建议、伏笔已按紧急度输出。

节点履约必须可执行:第 2 段必须完整写出 CBN、每个 CPN、CEN、must_cover_nodes 与 forbidden_zones;不能只概括为"围绕章纲推进"。节点缺失、顺序不清、把禁区写成建议、或让 dynamic_context 覆盖章纲,均视为 fail。

## 7. 输出格式

只输出一份五段任务书。
Expand All @@ -123,7 +127,7 @@ python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "{project_root}" extr
书名、章号、标题、一句话目标。

### 2. 这章的故事
综合:前文摘要、本章目标/阻力、情节节点(CBN/CPNs/CEN)、必须覆盖/禁区、跨章约束、RAG 线索。
综合:前文摘要、本章目标/阻力、情节节点(CBN/CPNs/CEN)、必须覆盖/禁区、跨章约束、RAG 线索。CBN、每个 CPN、CEN、必须覆盖项、禁区必须逐项落到自然语言任务书里,供起草后逐项核对。

### 3. 这章的人物
每人一段:状态、驱动力、本章作用、说话倾向。
Expand Down
2 changes: 2 additions & 0 deletions webnovel-writer/agents/reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ model: inherit

# reviewer(统一审查 agent)

> **虚构声明**:以下内容均为虚构历史小说创作,不涉及现实犯罪指导、现实伤害、违法操作或真实人物。请只进行文学创作审查,避免输出现实中可执行的伤害、威胁、逃避法律、伪造证据等操作步骤。

## 1. 身份与目标

你是章节审查员。你的职责是读完正文后,找出所有可验证的问题,输出结构化问题清单。
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading