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/snakeying/TextumWrote 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/snakeying/textum/split-plan)<a href="https://agentmods.dev/commands/snakeying/textum/split-plan"><img src="https://agentmods.dev/badge/commands/snakeying/textum/split-plan/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/snakeying/textum/split-plan"><img src="https://agentmods.dev/badge/commands/snakeying/textum/split-plan.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.00000 | $0.01295 |
| Opus 5.5 | $0.00000 | $0.00518 |
| Sonnet 5.5 | $0.00000 | $0.00259 |
| Haiku 4.5 | $0.00000 | $0.00129 |
Grade A, and why
split-plan 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 1mo 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 — 82 lines — stays where its author put it; the contents beside it link to each section on GitHub.
阶段3a: Story 拆分规划(/split-plan)
读取:docs/PRD.md(只读) | 写入:docs/split-plan.yaml(纯 YAML;不包含 ```) | 模板:.claude/textum/split-plan-template.yaml | 可选输入:SPLIT_REPLAN_PACK
生成 split-plan 规划 pack;不生成 Story 文件。
最小读取范围(必须;避免通读)
- PRD:
5.1 功能清单、9.2 接口清单(必填)
硬约束(必须遵守)
N/A_STRICT 判定口径(权威;逐字一致;禁止改写):
-
定位 PRD 小节
### 9.2 接口清单(必填)的正文(标题行之后到下一同级小节标题之前) -
判定
N/A_STRICT = true当且仅当:正文去掉空行并 Trim 后仅剩 1 行且该行严格等于N/A -
只做规划:不生成任何 Story 文件(不写入
docs/story-*-*.md) -
输出必须严格按
.claude/textum/split-plan-template.yaml的 YAML 结构(字段齐全;不得额外加 Markdown 文本;不得额外加键) -
docs/split-plan.yaml中不得出现TBD -
编号必须为
Story 1..N连续:stories[].n连续,且stories[].story == "Story {n}"stories[].slug必须唯一且符合kebab-case
-
stories[].modules必须为M-xx数组;不得写模块名 -
stories[].prereq_stories必须为["Story 1", ...]数组(无依赖则空数组);且必须可执行(仅允许依赖更小编号) -
stories[].goal必须非空(不得为TBD)
模块有效性与 P0 覆盖(本阶段必须做)
从 PRD 5.1 功能清单 抽取:
P0_modules =所有priority == P0的M-xx集合All_modules =PRD 中出现的全部M-xx集合
校验(任一不满足即必须在本命令内修正后再写文件):
- 对每个 Story 的
modules[]:每个M-xx必须属于All_modules - 对
All_modules中每个M-xx:必须至少出现在 1 个 Story 的modules[] - 对
P0_modules中每个M-xx:必须至少出现在 1 个 Story 的modules[]
API 分配(如适用)
先按 N/A_STRICT 判断 PRD 是否无 API:
- 若
N/A_STRICT = true:PRD_HAS_API = false - 否则:
PRD_HAS_API = true,并从 PRD9.2抽取P_api = {API-###}集合
若 PRD_HAS_API = false:
api_assignments必须为空数组
若 PRD_HAS_API = true:
- 覆盖 + 唯一归属:
- 对
P_api中每个API-###:必须在api_assignments[].api中出现且仅出现 1 次 api_assignments[].story必须引用stories[].story中存在的 Story
- 对
阈值预检(仅确定信号;减少重规划)
仅对“每个 Story 分配了多少 API”做预检(按 api_assignments 计数;不预测 TBL/验收/功能点数量):
api_assigned(Story N) =api_assignments中story == "Story N"的行数- 目标:尽量让每个
api_assigned ≤ 3 - 若出现
api_assigned = 4–5:允许写入,但输出DECISION清单(见“输出规则”) - 若出现
api_assigned ≥ 6:不得写入;必须先拆分/重分配(增加 Story 或调整边界)直到消除
重规划模式(当提供 SPLIT_REPLAN_PACK)
目标:把 pack 标记的过大 Story 拆成更小的 Story,并更新 docs/split-plan.yaml 重新满足门禁。
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.
- 1mo ago First seen · 82 lines · 0 tokens per session scan A 14add513a9a4
split-plan is a command published in the GitHub repository snakeying/Textum (41 stars, last pushed 9mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,295 tokens. 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.
Other commands, from other repositories
statuswt
You are checking the status of all active worktree task files in the project.
checklist
Generate a custom checklist for the current feature based on user requirements.
clarify
Identify underspecified areas in the current feature spec by asking up to 5 highly targeted clarification questions and encoding answers back into the spec.
specify
Create or update the feature specification from a natural language feature description.
analyze
Perform a non-destructive cross-artifact consistency and quality analysis across spec.md, plan.md, and tasks.md after task generation.
converge
Assess the current codebase against the feature's spec, plan, and tasks, then append any remaining unbuilt work as new tasks to tasks.md so implement can complete it.