webnovel-learn
Installation
SKILL.md
/webnovel-learn
Project Root Guard(必须先确认)
- 必须在项目根目录执行(需存在
.webnovel/state.json) - 使用统一入口解析项目根,避免写错目录:
export WORKSPACE_ROOT="${CLAUDE_PROJECT_DIR:-$PWD}"
export SCRIPTS_DIR="${CLAUDE_PLUGIN_ROOT:?}/scripts"
export PROJECT_ROOT="$(python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${WORKSPACE_ROOT}" where)"
目标
- 提取可复用的写作模式(钩子/节奏/对话/微兑现等)
- 追加到
.webnovel/project_memory.json
输入
/webnovel-learn "本章的危机钩设计很有效,悬念拉满"
输出
{
"status": "success",
"learned": {
"pattern_type": "hook",
"description": "危机钩设计:悬念拉满",
"source_chapter": 100,
"learned_at": "2026-02-02T12:00:00Z"
}
}
执行流程
- 读取
"$PROJECT_ROOT/.webnovel/state.json",获取当前章节号(progress.current_chapter) - 解析用户输入,归类 pattern_type(hook/pacing/dialogue/payoff/emotion/format/other)
- 必须调用脚本写入,不得手写或拼接 JSON:
python -X utf8 "${SCRIPTS_DIR}/webnovel.py" --project-root "${PROJECT_ROOT}" project-memory add-pattern \
--pattern-type "{pattern_type}" \
--description "{用户输入或提炼后的完整描述}" \
--category "{分类,可空}" \
--importance "{high|medium|low}"
脚本会自动读取/初始化 .webnovel/project_memory.json,并用 JSON 序列化写回,自动转义英文双引号、换行等字符。
约束
- 不删除旧记录,仅追加
- 避免完全重复的 description(可去重)
- 禁止使用
Write或手工编辑.webnovel/project_memory.json
去重规则
- 追加前扫描已有
patterns数组 - 若存在
pattern_type+description完全相同的记录,跳过并告知用户 - 部分相似不去重,由用户判断
成功标准
project_memory.json存在且格式合法- 新 pattern 已追加到
patterns数组 - 输出包含
status: success和完整learned对象
失败恢复
| 故障 | 恢复方式 |
|---|---|
project_memory.json 不存在 |
自动初始化 {"patterns": []} 后继续 |
| JSON 解析失败 | 不写入脏数据,告知用户文件损坏并建议手动修复 |
state.json 缺失导致无法获取章节号 |
使用 source_chapter: null,不阻断 |
| 用户输入无法归类 | 使用 pattern_type: "other",不阻断 |
Related skills
More from lingfengqaq/webnovel-writer
webnovel-write
产出可发布章节,完整执行上下文→起草→审查→润色→提交→备份。
224webnovel-plan
基于总纲生成卷纲、时间线和章纲,并把新增设定增量写回现有设定集。
150webnovel-query
查询项目设定、角色、力量体系、势力、伏笔等信息。支持紧急度分析与金手指状态查询。
113webnovel-resume
Recovers interrupted webnovel tasks with precise workflow state tracking. Detects interruption point and provides safe recovery options. Activates when user wants to resume or /webnovel-resume.
89