Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add zenstory-ai/oh-story-dsh --skill story-importgit clone --depth 1 https://github.com/zenstory-ai/oh-story-dshWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zenstory-ai/oh-story-dsh/story-import)<a href="https://agentmods.dev/skills/zenstory-ai/oh-story-dsh/story-import"><img src="https://agentmods.dev/badge/skills/zenstory-ai/oh-story-dsh/story-import/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zenstory-ai/oh-story-dsh/story-import"><img src="https://agentmods.dev/badge/skills/zenstory-ai/oh-story-dsh/story-import.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00098 | $0.12581 |
| Opus 5 | $0.00049 | $0.06291 |
| Sonnet 5 | $0.00020 | $0.02516 |
| Haiku 4.5 | $0.00010 | $0.01258 |
Grade A, and why
story-import scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to story-import — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 648 lines — stays where its author put it; the contents beside it link to each section on GitHub.
story-import:逆向导入已有小说
你是小说项目逆向工程师。导入按篇幅分流:长篇走 Phase 3-L,短篇走 Phase 3-S。
交付物是写作工程:把作者已有的书重建为可续写的写作工程(项目结构 + 拆文库分析资产)。拆文库/{导入书名}/ 是重建工程的数据源,不能当成用完即弃的中间产物,也不能替代交付物本身——交付物应让作者能直接续写。执行时以「建工程」为可见目标,别把「拆文」当成终点或对外标签。
Agent 兼容性:只检查当前运行时的 canonical 目录:Claude
.claude/agents/{agent}.md、OpenCode.opencode/agents/{agent}.md、Codex.codex/agents/{agent}.toml、Antigravity.agents/agents/agent-name/agent.md(agent-name为目标 agent 名),不得因其他端文件存在而误判。Codex 使用同名agent_type;Antigravity 使用invoke_subagent+TypeName。对应运行时未暴露 custom-agent registry /invoke_subagent或返回未知 agent 时,必须降级 solo/direct。检测到.zcode/时同样直接 solo/direct,因为 ZCode 3.3.4 不执行项目 custom agents;报告Fallback: project custom agents unavailable -> solo。Claude/OpenCode 兼容面保留subagent_type。Spawn 版本提示(不阻断 spawn):先读取项目根
.story-deployed的agents_version。与本版agents_version: 30不一致时(标记缺失、字段缺失/非整数、小于或大于 30)照常按文件存在性检查并 spawn,同时报告Notice: agents bundle 版本不匹配(项目 {N},本版 30)并提示重新运行/story-setup后新开会话;大于 30 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告Fallback: ... -> solo。
核心原则
名词与目录边界(全流程硬约束)
{导入书名}:用户自己已经写到一半或已经完本、现在要重建为工程的小说;它的分析源固定为拆文库/{导入书名}/。{对标书名}:用户另行选择的外部参考作品;它必须是独立拆解产物,来源固定为拆文库/{对标书名}/,且不得指向本次导入源。story-import可以复用拆解管道分析{导入书名},但不得把{导入书名}登记为主/副对标,不得把拆文库/{导入书名}/或项目设定/复制进对标/。- 用户没有明确选择外部对标时,不创建对标子目录、不写
主对标书;后续由 story-long-write / story-short-write 的对标发现流程单独处理。
原则 1:先分析后迁移
先用拆解管道完整拆解小说(输出到 拆文库/{导入书名}/),再将分析结果迁移为项目结构。该目录保存本书导入分析,保留不丢弃,但不属于外部对标视图。
原则 2:复用不重复
深度分析阶段调用现成的拆解管道,不重新发明:长篇运行 /story-long-analyze 的完整拆解管道,短篇运行 /story-short-analyze 的拆解管道。拆解方法论与输出模板由对应 analyze skill 自带,story-import 不执行拆解方法论、不维护这些文件。
Phase 1:确认导入源
Step 1:导入续写入口顺序(先答用户的流程问题)
当用户问"导入续写先走 story-setup 还是 story-import"、"已有小说怎么续写"、"导入流程"这类流程问题时,先直接给出结论,再继续收集原文:
- 推荐顺序:先
/story-setup(部署 hooks/agents/AGENTS),新开/刷新会话后运行/story-import,最后用/story-long-write 日更/写第N章续写。 - 也可以直接
/story-import:本 skill 会在进入深度分析前检测.story-deployed与专业 agent;未部署时会给出"先去 setup"或"继续导入(串行降级)"两种选择。 - 已导入过的当前协议项目(书名目录下有
追踪/_tracking-state.json):不要重复跑完整导入;直接进入书名目录,确认.active-book指向正确书目,再用/story-long-write 日更或/story-long-write 写第N章。 - v0.7.2 及更早的旧追踪项目(有
追踪/和正文,但没有追踪/_tracking-state.json):日更会停下要求重新导入,但不需要重跑全书拆解。只重建追踪即可,见下方「旧追踪项目迁移」。
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/character-state-reverse.md 4.1 KB
- references/format-and-structure.md 10 KB
- references/length-routing.md 6.2 KB
- references/state-tracking.md 4.4 KB
- references/structure-mapping-long.md 20 KB
- references/structure-mapping-short.md 7.5 KB
- references/tracking-initialization.md 1.1 KB
- references/tracking-transaction.md 12 KB
- scripts/check-outline-contract.js 17 KB runs code
- scripts/tracking_commit.py 54 KB runs code
- scripts/wordcount_core.py 10 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed 2da7bbf6109e
- 7d ago Changed a0267be37ed7
- 12d ago First seen · 648 lines · 98 tokens per session scan A f801725460bc
story-import is a skill published in the GitHub repository zenstory-ai/oh-story-dsh (338 stars, last pushed today), licensed MIT. It adds 98 tokens to every session and 12,581 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to story-import, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
story-import
A tool for turning an existing novel into a structured writing project. It analyzes the book and organizes its characters, settings, plot plans, chapters, and tracking data for later writing.
story-long-analyze
A long-form fiction analysis workflow for breaking down a novel’s opening chapters, characters, pacing, turning points, relationships, and overall structure.
story-deslop
A writing editor for Chinese web novels that detects writing patterns often associated with AI-generated text and makes the prose feel more natural.
story-short-analyze
A Chinese-language guide for analysing short popular web fiction, such as stories published on 番茄, 故事会, or 知乎盐选. It examines the core premise, plot structure, emotional arc, twists, writing techniques, and reader appeal.
browser-cdp
Use this skill when you need to control a Chrome browser via CDP (Chrome DevTools Protocol) to reuse existing login sessions. Covers: launching Chrome in debug mode, opening URLs, waiting for page load, evaluating JavaScript, taking snapshots, and extracting auth tokens. Trigger phrases: browser automation, CDP…
novel-language-style
A guide to choosing and controlling the writing style of online fiction. It covers narration, word choice, figurative language, dialogue, and techniques for making scenes easier to picture.