SuperAPI AI 工具集

webnovel-learn

写作与研究

查看项目

更新于 10-15 18:03

技能介绍

webnovel-learn 是一个面向网文写作的技能,用于把当前会话中出现的、可复用的成功写作模式沉淀到项目记忆中,方便后续写作复用。

用途

该技能的核心目标是从当前会话提取可复用的写作模式(如钩子、节奏、对话、微兑现等),并追加到 .webnovel/project_memory.json。它适合在写作过程中发现某种写法有效后,将其记录为可复用的经验。

主要能力

  • 提取写作模式:从用户输入的经验文本中提炼模式;若用户输入为空,则取本次对话中用户认可的写法。
  • 模式归类:将模式归类为 hook、pacing、dialogue、payoff、emotion、format 或 other,无法归类时使用 other。
  • 写入项目记忆:调用 project-memory add-pattern 将模式写入 .webnovel/project_memory.json,支持指定 pattern_type、description、category(可空)和 importance(high/medium/low)。
  • 去重保护:追加前扫描已有 patterns,若 pattern_type 与 description 完全相同则跳过并告知用户,部分相似不去重。
  • 章节号关联:读取 .webnovel/state.json 的 progress.current_chapter 作为当前章节号;缺失时使用 source_chapter: null,不阻断流程。

使用方式

该技能需在项目根目录执行,且项目需存在 .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)"

随后读取 "$PROJECT_ROOT/.webnovel/state.json" 的 progress.current_chapter 作为当前章节号,解析用户输入(/webnovel-learn 后的经验文本;为空则取本次对话中用户认可的写法),归类 pattern_type,再调用 project-memory add-pattern 写入:

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}"

约束

  • 不删除旧记录,仅追加。
  • 追加前扫描已有 patterns;pattern_type + description 完全相同则跳过并告知用户,部分相似不去重。
  • 禁止使用 Write 或手工编辑 .webnovel/project_memory.json。

成功标准

project_memory.json 存在且格式合法,新 pattern 已追加到 patterns 数组;输出包含 status: success 和完整 learned 对象。

失败恢复

  • project_memory.json 不存在:脚本自动初始化 {"patterns": []} 后继续。
  • JSON 解析失败:不写入脏数据,告知用户文件损坏并建议手动修复。
  • state.json 缺失无法取章节号:用 source_chapter: null,不阻断。

适用场景

适用于网文写作项目中,需要把会话中验证有效的写作经验沉淀为项目记忆的场景,尤其是钩子、节奏、对话、微兑现等写作技巧的积累。

限制

必须在项目根目录执行,且需存在 .webnovel/state.json;写入必须通过脚本完成,不能手工编辑 project_memory.json;去重仅针对 pattern_type 与 description 完全相同的记录,部分相似不会去重。