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.
git clone --depth 1 https://github.com/wordflowlab/novel-writer-skillsWrote 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/commands/wordflowlab/novel-writer-skills/specify)<a href="https://agentmods.dev/commands/wordflowlab/novel-writer-skills/specify"><img src="https://agentmods.dev/badge/commands/wordflowlab/novel-writer-skills/specify/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/commands/wordflowlab/novel-writer-skills/specify"><img src="https://agentmods.dev/badge/commands/wordflowlab/novel-writer-skills/specify.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.00011 | $0.06365 |
| Opus 5.5 | $0.00004 | $0.02546 |
| Sonnet 5.5 | $0.00002 | $0.01273 |
| Haiku 4.5 | $0.00001 | $0.00636 |
Grade A, and why
specify 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 2mo ago.
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.
How it starts
The opening of the file, as written. The whole thing — 663 lines — stays where its author put it; the contents beside it link to each section on GitHub.
用户输入:$ARGUMENTS
目标
像产品规格书(PRD)一样定义故事,明确"要创造什么"而非"如何创造"。支持渐进式规格定义,从一句话到完整规格,循序渐进。输出带有 [需要澄清] 标记的规格,为后续澄清步骤留出空间。
渐进式规格层级
根据用户输入的详细程度,自动判断并生成相应层级的规格:
Level 1 - 一句话故事(Logline):
- 30字以内的核心创意
- 示例:"一个失忆的黑客发现自己活在虚拟世界中"
- 适用:初期灵感阶段
Level 2 - 一段话概要(Premise):
- 100-200字的故事梗概
- 包含:主角、冲突、目标、障碍
- 适用:创意验证阶段
Level 3 - 一页纸大纲(One-Page Spec):
- 包含:概要、主角、主要冲突、三幕结构
- 简化版规格(约500字)
- 适用:快速原型阶段
Level 4 - 完整规格(Full Specification):
- 包含完整九章规格内容
- 详细的线索管理、成功标准等
- 适用:正式创作准备阶段
执行步骤
0. 判断规格层级
根据用户输入自动判断层级:
input_length = len($ARGUMENTS)
existing_spec = check_if_exists()
if existing_spec:
# 已有规格,执行升级或修改
level = get_current_level(existing_spec)
action = "upgrade" or "modify"
elif input_length < 50:
# 一句话输入 → Level 1
target_level = 1
elif input_length < 300:
# 一段话输入 → Level 2
target_level = 2
elif input_length < 1000:
# 简要描述 → Level 3
target_level = 3
else:
# 详细描述 → Level 4
target_level = 4
决策逻辑:
- 如果已存在规格文件,询问用户是"升级层级"还是"修改内容"
- 如果是新故事,根据输入长度自动选择层级
- 生成规格后,提示用户如何扩展到下一层级
1. 初始化故事规格
运行 {SCRIPT} 获取路径信息:
- 解析 JSON 获取
STORY_NAME和SPEC_PATH - 如果是新故事,创建规格文件
- 如果已存在,准备更新或升级
2. 检查宪法合规性
如果存在 memory/constitution.md:
- 加载宪法原则
- 确保规格符合宪法价值观
- 在规格中引用相关原则
3. 创建故事规格文档
根据判断的层级生成相应规格:
Level 1 规格模板(一句话故事)
# 故事规格书
## 元数据
- 故事名称:[名称]
- 版本:1.0.0-L1(一句话)
- 创建日期:[YYYY-MM-DD]
- 当前层级:Level 1
- 作者:[作者名]
## 一句话故事(Logline)
[30字以内的核心创意]
**示例**:
- "一个失忆的黑客发现自己活在虚拟世界中"
- "普通高中生获得预知未来的能力,但每次使用都会缩短寿命"
- "退役特工为了救女儿,必须完成一次不可能的任务"
## 核心元素识别
基于这句话,识别以下核心元素:
- **主角**:[谁]
- **困境/冲突**:[面临什么问题]
- **目标**:[想要达成什么]
- **障碍/代价**:[阻碍是什么]
## 下一步
✅ **Level 1 规格已完成**
**扩展建议**:
1. 将一句话扩展为一段话(100-200字)
2. 运行 `/specify` 命令,输入扩展的段落
3. 系统将自动升级到 Level 2
**扩展提示**:
- 加入主角的背景和动机
- 明确主要冲突的起因
- 暗示故事的走向和结局可能性
Level 2 规格模板(一段话概要)
# 故事规格书
## 元数据
- 故事名称:[名称]
- 版本:1.1.0-L2(一段话)
- 创建日期:[YYYY-MM-DD]
- 当前层级:Level 2
- 作者:[作者名]
## 一句话故事(Logline)
[从Level 1继承,或新提取]
## 一段话概要(Premise)
[100-200字的故事梗概,包含主角、冲突、目标、障碍]
**示例结构**:
{主角背景}在{起始情境}下,发现/遭遇{核心冲突}。为了{目标},他/她必须{行动},但{主要障碍}使得{困难/代价}。最终{暗示结局走向}。
## 核心要素
### 主角设定
- **身份**:[职业/年龄/背景]
- **性格特点**:[2-3个关键词]
- **核心欲望**:[想要什么]
- **致命弱点**:[阻碍他的是什么]
### 核心冲突
- **外部冲突**:[与什么对抗]
- **内部冲突**:[内心挣扎是什么]
- **冲突起因**:[为什么现在爆发]
### 故事走向
- **起点**:[故事从哪里开始]
- **中点**:[预计的转折点]
- **终点**:[可能的结局方向]
## 类型初步定位
- **主类型**:[玄幻/都市/历史/科幻等]
- **子类型**:[具体流派]
- **参考作品**:类似[作品名]的[某个特点]
## 下一步
✅ **Level 2 规格已完成**
**扩展建议**:
1. 将概要扩展为一页纸大纲(约500字)
2. 增加三幕结构、主要角色、关键场景
3. 运行 `/specify` 命令,输入扩展内容
4. 系统将自动升级到 Level 3
**扩展提示**:
- 明确三幕结构的分界点
- 增加2-3个主要配角
- 列出5-10个关键场景
- 思考世界观的基本设定
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.
- 2mo ago First seen · 663 lines · 11 tokens per session scan A cf3e3ab3526d
specify is a command published in the GitHub repository wordflowlab/novel-writer-skills (271 stars, last pushed 1y ago), licensed MIT. It adds 11 tokens to every session and 6,365 once invoked, about $0.0000 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
specify compared with commands from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| specifywordflowlab/novel-writer-skills | Command | 271 | 1y ago | MIT | A | 11 | Claude Code |
| checklistgithub/spec-kit | Command | 148k | yesterday | MIT | A | 13 | Claude Code |
| clarifygithub/spec-kit | Command | 148k | yesterday | MIT | A | 27 | Claude Code |
| specifygithub/spec-kit | Command | 148k | yesterday | MIT | A | 13 | Claude Code |
| analyzegithub/spec-kit | Command | 148k | yesterday | MIT | A | 26 | Claude Code |
| convergegithub/spec-kit | Command | 148k | yesterday | MIT | A | 35 | Claude Code |
| implementgithub/spec-kit | Command | 148k | yesterday | MIT | A | 14 | Claude Code |