Help us improve
Share bugs, ideas, or general feedback.
From story-import
Deploys web novel writing tool infrastructure (hooks, rules, agents, CLAUDE.md) to a user project directory. Merges configs without overwriting. Activated via /story-setup or writing project setup requests.
npx claudepluginhub worldwonderer/oh-story-claudecode --plugin story-importHow this skill is triggered — by the user, by Claude, or both
Slash command
/story-import:story-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
你是写作基础设施部署器。将网文写作工具集的全套基础设施(hooks、rules、agents、CLAUDE.md)部署到用户项目目录。
UPGRADING.mdreferences/agent-references/anti-ai-writing.mdreferences/agent-references/banned-words.mdreferences/agent-references/character-basics.mdreferences/agent-references/character-design-methods.mdreferences/agent-references/character-relations.mdreferences/agent-references/dialogue-mastery.mdreferences/agent-references/emotional-arc-design.mdreferences/agent-references/emotional-methods.mdreferences/agent-references/format-and-structure.mdreferences/agent-references/genre-catalog.mdreferences/agent-references/genre-core-mechanics.mdreferences/agent-references/genre-readers.mdreferences/agent-references/genre-writing-formulas.mdreferences/agent-references/hooks-chapter.mdreferences/agent-references/hooks-suspense.mdreferences/agent-references/opening-design.mdreferences/agent-references/outline-conflict.mdreferences/agent-references/outline-methods.mdreferences/agent-references/outline-rhythm.mdSets up a new fiction writing project with structured markdown folders for story bible, characters, worldbuilding, plot, scenes, continuity, glossary, and chapters.
Initializes web novel projects via phased interactions collecting genre, characters, worldbuilding, and constraints; generates state.json, settings, outlines, and idea bank for direct planning/writing.
Guides long-form web novel creation from outline to chapters including world-building character development and plot management via /story-long-write
Share bugs, ideas, or general feedback.
你是写作基础设施部署器。将网文写作工具集的全套基础设施(hooks、rules、agents、CLAUDE.md)部署到用户项目目录。
执行铁律:不覆盖用户已有配置,合并而非替换。
.story-deployed)
追踪/ 子目录的目录,或用户自定义结构)
.claude/settings.local.json 是否存在
.active-book 文件是否存在
使用 AskUserQuestion 确认部署位置后,依次执行。
| Source path | Target path | Owner class | Merge mode | Validation check |
|---|---|---|---|---|
skills/story-setup/references/templates/CLAUDE.md.tmpl | CLAUDE.md | user+managed | marker/section merge | contains story skill routing sections |
skills/story-setup/references/templates/hooks/ | .claude/hooks/ | story-setup managed | recursive replace | session-*.sh, detect-story-gaps.sh, validate-story-commit.sh, lib/common.sh, lib/sentinel.sh exist |
skills/story-setup/references/templates/rules/*.md | .claude/rules/*.md | story-setup managed | replace | every rule contains paths frontmatter |
skills/story-setup/references/templates/agents/*.md | .claude/agents/*.md | story-setup managed | replace | 7 agent files exist |
skills/story-setup/references/agent-references/*.md | .claude/skills/story-setup/references/agent-references/*.md | story-setup managed | replace | every story-setup/references/agent-references/*.md reference resolves |
skills/story-setup/references/templates/settings-hooks.json | .claude/settings.local.json | user+managed | merge by hook command | hook JSON valid and registered commands deduped |
skills/story-setup/references/templates/上下文.md.tmpl | {书名}/追踪/上下文.md | user state | create only if absent | never overwrite existing writing context |
| generated sentinel | .story-deployed | story-setup managed | replace | contains agents_version, setup_skill_version, target_cli, resolver_strategy, references_dir |
skills/story-setup/references/templates/CLAUDE.md.tmplCLAUDE.md(如已存在,按「CLAUDE.md 合并策略」处理)skills/story-setup/references/templates/hooks/ 复制到用户项目 .claude/hooks/lib/,其中:
lib/common.sh 提供 project_root、discover_active_book、discover_all_bookslib/sentinel.sh 提供 .story-deployed 字段读取.claude/hooks/*.sh 设置执行权限(chmod +x);lib/*.sh 由 hook source,不要求可执行位skills/story-setup/references/templates/rules/ 下所有 .md 文件.claude/rules/ 目录skills/story-setup/references/templates/agents/ 下所有 .md 文件.claude/agents/ 目录UPGRADING.md 的版本检测结果重新部署memory、skills、disallowedTools)应被忽略。若目标工具报 frontmatter 错误,保留 name、description、tools 三项,删除不支持字段后再部署。story-setup/references/agent-references/*.md 这一本 skill 内复制路径;不要跨 skill 引用其他 skill 的 references。若全局安装路径不同,优先用项目内 .claude/skills/ 或 skills/ 作为规范路径前缀,其次用工具的 skill 搜索能力,不要假定固定绝对路径。skills/story-setup/references/agent-references/ 下所有 .md 复制到项目内 .claude/skills/story-setup/references/agent-references/skills/ 目录,也可以同步复制到 skills/story-setup/references/agent-references/ 作为 fallback,但不得只复制 fallback 而遗漏 .claude/skills/ 主路径story-setup/references/agent-references/<file>.md,源包与目标包都必须存在 <file>.mdskills/story-setup/references/templates/上下文.md.tmpl{书名}/追踪/ 已存在时,创建缺失的 {书名}/追踪/上下文.md追踪/ 目录兼容性说明:
settings-hooks.json中 PreToolUse 的if字段使用 Claude Code hook 条件语法,需要运行环境支持 hook-level if。若目标工具不支持该字段,hook 脚本本身仍会自检并 advisory-only 退出;部署时可删除该if字段并保留 matcher + command。
skills/story-setup/references/templates/settings-hooks.json.claude/settings.local.json(如存在).claude/settings.local.json.story-deployed 文件(sentinel file)key: value 格式,hook 用 references/templates/hooks/lib/sentinel.sh 读取):
deployed_at: <date -u +"%Y-%m-%dT%H:%M:%SZ">
agents_version: 10
setup_skill_version: 1.1.1
target_cli: claude-code
resolver_strategy: project-local-skill-reference
references_dir: .claude/skills/story-setup/references/agent-references
.story-deployed 已存在但无 agents_version 或版本 < 10,提示用户重新运行 story-setup 以更新 hooks/agents/rules/reference bundle(具体变更见 UPGRADING.md).claude/settings.local.json 中的 hooks 字段是否正确.claude/hooks/ 下的脚本是否存在且有执行权限.claude/hooks/lib/common.sh 与 .claude/hooks/lib/sentinel.sh 是否存在.claude/rules/ 下的规则文件是否存在且包含 paths frontmatter.claude/agents/ 下的 7 个 agent 定义文件是否存在.claude/skills/story-setup/references/agent-references/ 下 reference 文件完整story-setup/references/agent-references/<file>.md 都能解析到 deployed bundle.story-deployed 是否存在且包含时间戳、agents_version: 10、setup_skill_version: 1.1.1、target_cli、resolver_strategy、references_dir/story-long-write 或 /story-short-write| 占位符 | 替换规则 | 示例 |
|---|---|---|
{项目名} | 用户项目名称或目录名 | 《剑来》、《暗卫》 |
{书名} | 书名目录名(与目录一致) | 与 {项目名} 相同,或用户自定义 |
{目标平台} | 目标发布平台 | 起点、番茄、晋江、知乎盐言 |
{作者名} | 用户笔名或昵称 | 未指定时用「作者」 |
替换时去掉花括号。如果用户未指定项目名,用当前目录名。未指定的占位符保留原样不替换。
用户已有 CLAUDE.md 时,按 marker/section 合并:
## 标题切分为 section maphooks 注册合并按 command 字段去重:
.claude/settings.local.json(如存在),提取 hooks 部分settings-hooks.json 模板,提取要注册的 hooks.story-deployed 不存在 → 全新安装,Phase 2 全部执行.story-deployed 存在且 agents_version: 10 → 提示已部署,AskUserQuestion 确认是否重新部署.story-deployed 存在但 agents_version < 10 → 提示需要更新,重新执行 Phase 2 覆盖 agents/hooks/rules/reference bundle,CLAUDE.md 和 settings.local.json 走合并策略| 文件 | 用途 |
|---|---|
| references/templates/CLAUDE.md.tmpl | 项目根 CLAUDE.md 模板 |
| references/templates/hooks/ | 6 个 hook 脚本模板 + lib/common.sh/lib/sentinel.sh |
| references/templates/rules/ | 4 条 path-scoped 规则模板 |
| references/templates/agents/ | 7 个 agent 定义模板(story-architect, character-designer, narrative-writer, consistency-checker, story-researcher, story-explorer, chapter-extractor) |
| references/agent-references/ | Agent 模板自带的参考资料副本;部署到 .claude/skills/story-setup/references/agent-references/,避免跨 skill references |
| references/templates/settings-hooks.json | hooks 注册 JSON 片段 |
| references/templates/上下文.md.tmpl | 写作上下文模板 |
流水线: 部署 位置: 初始化(最前置)
| 时机 | 跳转到 | 命令 |
|---|---|---|
| 部署完成,开始写作 | story-long-write / story-short-write | /story-long-write 或 /story-short-write |
| 导入已有小说做拆解 | story-import | /story-import |
| 需要浏览器登录态(扫榜/拆文取原文) | browser-cdp | /browser-cdp |