Skip to content
Agentmart
Submit a tool

webnovel-plan

基于总纲生成卷纲、时间线和章纲,并把新增设定增量写回现有设定集。

Skill by ricky-theseus

IndexedGPL-3.0★ 76
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/ricky-theseus-webnovel-plan

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

基于总纲生成卷纲、时间线和章纲,并把新增设定增量写回现有设定集。

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/webnovel-plan

Tools it pre-approves 5

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read
  • Write
  • Edit
  • Bash
  • AskUserQuestion

What's inside

Skill name
webnovel-plan
Description
基于总纲生成卷纲、时间线和章纲,并把新增设定增量写回现有设定集。
License
GPL-3.0
Allowed tools
Read, Write, Edit, Bash, AskUserQuestion
Instructions
296 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves any shell command

Agent Skills spec issues

  • name: "webnovel-plan" does not match folder "plan"

Files (7)

  • SKILL.md
  • chapter-types-and-rhythm.md · references/
  • chapter-planning.md · references/outlining/
  • conflict-design.md · references/outlining/
  • genre-volume-pacing.md · references/outlining/
  • outline-structure.md · references/outlining/
  • plot-frameworks.md · references/outlining/

SKILL.md (first lines)

# Outline Planning

主 agent 职责:基于总纲增量细化卷纲/时间线/章纲,把新增设定写回设定集,并刷新 Story System 写作合同。不重做全局故事,不重写整份总纲或设定集。

## 执行原则

1. 只做增量补齐,不重写整份总纲或设定集。
2. 先锁定卷级节奏,再批量拆章。
3. 时间线是硬约束,所有章纲必须带时间字段。
4. 若发现总纲与设定冲突,先阻断,再等用户裁决。
5. 优先级链:用户明确要求 > 总纲核心冲突与卷末高潮 > 时间线硬约束 > skill 默认流程 > reference 建议。

## 阻断条件

- 项目根不合法或总纲缺失。
- 总纲缺少卷名 / 章节范围 / 核心冲突 / 卷末高潮 → 阻断并请求用户补全。
- Step 2 / Step 8 发现设定冲突 → 标记 `BLOCKER`,等待用户裁决。
- 批量拆章时时间回跳且未标注闪回 → 阻断当前批次。
- Step 9 验证失败 → 只重做失败批次,不覆盖整卷。

## 环境准备

```bash
export WORKSPACE_ROOT="${CLAUDE_PROJECT_DIR:-${OPENCODE_PROJECT_DIR:-$PWD}}"
export CLAUDE_PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-${OPENCODE_PLUGIN_ROOT:-}}"
export SKILL_ROOT="${CLAUDE_PLUGIN_ROOT}/skills/webnovel-plan"
export SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT}/scripts"
export PROJECT_ROOT="$(python "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" where)"

python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" placeholder-scan --format text
```

规划开始 / 结束都运行 `placeholder-scan`;plan 阶段发现占位先警告并补齐相关文件,进入写章前不得保留当前章相关实体的 `[待...]` / `暂名` / `{占位}`。

## 读取策略(按阶段触发,不预读全部 reference)

每个 reference 只在对应 Step 触发时读取,且优先区段读:先用 `Grep` 匹配 `^#{2,4} ` 定位标题锚点行号,再用 `Read` 的 offset/limit 取目标段。

| 触发 | 读取方式 | 文件 |
|------|---------|------|
| Step 4 | 全文 | `${SKILL_ROOT}/../../templates/output/大纲-卷节拍表.md` |
| Step 5 | 全文 | `${SKILL_ROOT}/../../templates/output/大纲-卷时间线.md` |
| Step 6 always | 区段 | `${SKILL_ROOT}/../../references/genre-profiles.md`(仅当前 genre 的 `### 2.x` 段) |
| Step 6 always | 全文 | `${SKILL_ROOT}/../../references/shared/strand-weave-pattern.md` |
| 章纲拆分 always | 区段 | `${SKILL_ROOT}/../../references/outlining/plot-signal-vs-spoiler.md` |
| Step 6 需要爽点 | 区段 | `${SKILL_ROOT}/../../references/shared/cool-points-guide.md` |
| Step 6/7 需要冲突 | 区段 | `${SKILL_ROOT}/references/outlining/conflict-design.md` |
| Step 6/7 特定节奏 | 区段 | `${SKILL_ROOT}/references/outlining/genre-volume-pacing.md` |
| Step 6 章节类型/节奏 | 区段 | `${SKILL_ROOT}/references/chapter-types-and-rhythm.md` |
| Step 7 追读力分析 | 区段 | `${SKILL_ROOT}/../../references/reading-power-taxonomy.md` |
| Step 7 章纲细化 + 节点规范 | 区段 | `${SKILL_ROOT}/references/outlining/chapter-planning.md` |

CSV 创作参考用检索读,不 `cat` 整表:

```bash
python -X utf8 "${SCRIPTS_DIR}/reference_search.py" --skill plan --table 爽点与节奏 --query "{卷级核心冲突}" --genre "${GENRE}"
python -X utf8 "${SCRIPTS_DIR}/reference_search.py" --skill plan --table 桥段套路 --query "{卷级核心冲突}" --genre "${GENRE}"
python -X utf8 "${SCRIPTS_DIR}/reference_search.py" --skill plan --table 命名规则 --query "角色命名" --genre "${GENRE}"
```

## 执行流程

### Step 1:加载项目数据并确认前置条件

```bash
# 项目配置/投影状态(兼容读取,不作为写后事实真源)
cat "$PROJECT_ROOT/.webnovel/state.json"

# 总纲(全局蓝图);确认卷名/章节范围/核心冲突/卷末高潮,不足则阻断
cat "$PROJECT_ROOT/大纲/总纲.md"

# 题材(来自 init 配置快照,后续 CSV 检索和裁决匹配依赖此值);写后主链真源仍是 .story-system/
GENRE="$(python -X utf8 -c "import json; s=json.load(open('${PROJECT_ROOT}/.webnovel/state.json',encoding='utf-8')); pi=s.get('project_info',{}); print(pi.get('genre') or s.get('project',{}).get('genre',''))")"
```

按需读取设定集:`设定集/世界观.md`、`设定集/力量体系.md`、`设定集/主角卡.md`、`设定集/反派设计.md`、`.webnovel/idea_bank.json`。

**跨卷状态读取**(已有已完成卷,即 `.webnovel/summaries/` 下有文件时必须执行):

```bash
# 最近 5 章摘要
for ch in $(seq $((START_CH - 5)) $((START_CH - 1))); do
  cat "$PROJECT_ROOT/.webnovel/summaries/ch$(printf '%04d' $ch).md" 2>/dev/null
done

# 核心角色当前状态 / 核心关系当前状态 / 活跃伏笔(跨卷未回收)
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" knowledge query-entity-state --entity "{protagonist_id}" --at-chapter {上一卷最后章}
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" knowledge query-relationships --entity "{protagonist_id}" --at-chapter {上一卷最后章}
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" memory-contract get-open-loops
```

### Step 2:补齐设定基线

让设定集从骨架进入"可规划、可写作"。增量补齐,不清空、不重写整文件;发现冲突先列出并阻断。

- `设定集/世界观.md`:世界边界、社会结构、关键地点用途。
- `设定集/力量体系.md`:境界链、限制、代价与冷却。
- `设定集/主角卡.md`:欲望、缺陷、初始资源与限制。
- `设定集/反派设计.md`:小/中/大反派层级与镜像关系。

### Step 3:选择目标卷并确认范围

确认卷名、章节范围、核心冲突,以及是否有特殊要求(视角、情感线、题材偏移)。

### Step 4:生成卷节拍表

加载模板 `${SKILL_ROOT}/../../templates/output/大纲-卷节拍表.md`。

硬要求:必须填写中段反转,确无则写"无(理由:...)";危机链至少 3 次递增;卷末新钩子必须能落到最后一章的章末未闭合问题。

输出文件:`大纲/第{volume_id}卷-节拍表.md`

### Step 5:生成卷时间线表

加载模板 `${SKILL_ROOT}/../../templates/output/大纲-卷时间线.md`。

硬要求:必须明确时间体系与本卷时间跨度;有倒计时事件时列出并标记 D-N。

输出文件:`大纲/第{volume_id}卷-时间线.md`

From ricky-theseus/DaisyWriter, GPL-3.0.

More from ricky-theseus/DaisyWriter

Signals

Stars
76
Forks
5
Open issues
0
Last commit (this folder)
Jul 8, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
GPL-3.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from ricky-theseus

Cite this page

webnovel-plan skill. Agent Mart. https://agentmart.dev/skills/ricky-theseus-webnovel-plan (last updated 2026-10-24)