1实现原理 · 为什么它能做到
定位为 exploit 阶段:素材堆固定不变,skill 的任务是选定一条路径并逐 beat 开采素材。
skills/in-progress/writing-beats/SKILL.md
The user has passed (or will pass) a markdown file of raw material. This is **exploit**: the exploring is done, the pile is fixed. Commit to a path through it and mine the pile to fill each beat.
explore/exploit 两分法贯穿本仓库 writing 三件套:writing-fragments 是 explore,writing-beats/writing-shape 是 exploit。
交互算法 = choose-your-own-adventure 节拍旅程:先定 prerequisites → 给 2-3 个候选起始 beat 让用户选 → 只写那一拍 → 重读磁盘 → 再给 2-3 个候选 next beats → 循环到自然结尾。
skills/in-progress/writing-beats/SKILL.md
Once the user picks a starting beat, write **only that beat** to the article file. A beat may be one sentence or several paragraphs, whatever that beat naturally is. Stop there.
step 4 续:'Re-read the article file from disk. Then offer 2–3 candidate **next beats**: different directions the journey could pivot to from where the article now stands.'——每步用户选路,agent 只写被选中的一拍。
grounding 约束引擎:每个概念在某个 beat 使用前必须已 grounded(读者自带 = prerequisite,或前文 beat 引入);候选 beat 的可达性由已 grounded 集合决定。
skills/in-progress/writing-beats/SKILL.md
Every **concept** has to be **grounded** before a beat can lean on it: the audience either walked in knowing it or met it in an earlier beat. A beat that reaches for an ungrounded concept loses the reader; that is the one move the journey can't make. The unit is the concept, not the word for it: a beat can lean on an idea the reader lacks even with no jargon in sight.
操作化:'Keep a running list of what's grounded so far, and update it each time a beat lands.' grounding 单元是概念而非术语词。
节奏纪律:一次只落一个 beat、绝不超前写;每次写前从磁盘重读文件,绝对保留用户编辑;用户可随时要求重写某一拍。
skills/in-progress/writing-beats/SKILL.md
Append one beat at a time. Never write ahead. Re-read the article file from disk before every write. Preserve user edits absolutely.
重读磁盘是把『用户可能手动改过文件』当默认事实处理,防止覆盖。
终点定义:旅程完成即止,而非素材耗尽——大部分素材堆本来就会有剩余碎片。
skills/in-progress/writing-beats/SKILL.md
The article ends when the journey is complete, not when the pile is empty. Most piles will have leftover fragments that don't make it in. That is fine; that is the point of having more raw material than you need.
素材是采石场('The pile is a quarry.'),可 paraphrase/split/recombine/quote。
2核心能力
01从素材生成多条候选起始 beat(不同切入点),标注各自 grounding 的新概念
02每步只写一拍、然后重读磁盘并给 2-3 个可达的下一个候选 beat
03grounding 运行清单:约束每拍只许用已 grounded 概念,落地新概念即解锁后续拍
04素材采石场式复用:paraphrase/split/recombine/quote 随意组合
05就地改拍支持:'rewrite that beat' 只动那一拍,其余不动
4管控建议与判定依据
建议配套管控措施
面向 Agent
限定工作目录
面向管理者
保留操作记录
判定依据(文件路径与关键语句摘要)
- 本地工作目录: 文件读写与工件输出: 用户指定的文章文件:每步追加一个 beat;用户要求时对特定 beat 就地编辑('rewrite that beat' in place)
审计说明: 。仅本地文件操作:读用户素材文件、向用户指定的文章文件追加 beat/就地编辑;无脚本、无网络外发、无凭证读取。注意点:写路径完全由用户指定('ask once and remember the path'),不会自选路径;模型生成的文字需用户审阅。
5第二遍独立确认
- [ok] choose-your-own-adventure 交互流程(候选拍 → 用户选 → 只写一拍 → 重读 → 再候选) — SKILL.md 步骤 1-5 逐字存在:'Write 2–3 candidate **starting beats**'、'write **only that beat**'、'Re-read the article file from disk. Then offer 2–3 candidate **next beats**'。
- [ok] grounding 机制(prerequisite/introduced + 运行清单 + 可达性) — Grounding 整节存在,含 'Keep a running list of what's grounded so far';候选拍可达性由 grounded 集决定。
- [ok] 只写一拍、不超前 — 'Append one beat at a time. Never write ahead.' 原文在。
- [ok] 每次写前重读磁盘、保留用户编辑 — 'Re-read the article file from disk before every write. Preserve user edits absolutely.' 原文在。
- [ok] 就地重写特定 beat — 'edit in place, leave the rest alone' 原文在。
- [ok] 文件写入范围 — 仅用户指定文章文件;'If the user did not say where to save the article, ask once and remember the path.' 无其它路径指令。
- [ok] 外部依赖为空 — token 扫描零命中;无 CLI/API/网络/包。
- [ok] 元数据 + beta 状态 — GitHub API MIT/257659/2026-09-04;本地 HEAD == 3cca18b;in-progress README 列为 beta。
6结论
适合: 适合手头有一堆素材(访谈/笔记/碎片)、想要一篇由『每步可转向』的节拍构成的交互式文章的写作者;尤其适合重视读者认知负担、愿意逐拍打磨的人。
不适合: 不适合想一口气拿成稿的用户(逐拍确认很慢);不适合素材仍需探索收集的阶段(那是 writing-fragments 的 explore 职责);不适合需要严格大纲/论证结构的论文式写作(本 skill 以旅程与节拍组织,不保证论证树完备)。
Install Agent-Ready
① Verified Mirror 2026-09-09
Option A · Direct DownloadDownload writing-beats.tar.gz
sha256:
Option B · Copy Guide for Agente5908f87db6a7beb…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② Upstream GitHub
GitHub Repo ↗
Pinned to commit 3cca18b368.