指南
渲染输出
Markdown、HTML 站点、单个自包含页面、面向智能体的定位索引,以及 llms.txt——全部确定性,重跑零成本。
handbook render --work <workdir> [--title <t>] [--html] [--html-single] [--agent-site] [--llms-txt]不用 LLM。不联网。确定性。 同样的模型进来,逐字节相同的文件出去——所以它属 于 CI,每次提交都该跑。
五种输出
总是会写出。
<out>/
overview.md system prose + a mermaid stage map + "see also" links
index.md every stage, nested by depth, a paragraph each
<stage-id>.md one page per content-bearing stage
register.md the cross-stage state table (only when registers exist)阶段页面先给出该阶段的摘要和指向子阶段的链接,然后是它的文件——按 phase 2c 决定 的方式分组排序,每个文件渲染成一张文件卡片:用途、角色、生命周期、调用事实, deep 卡片还带逐函数注记。
两个值得了解的行为:
- 过期页面会被清理。 阶段 id 会在两次生成之间变化;每次渲染会先删除上一次渲染 的页面,因此改名后的阶段不会留下幽灵页面被 skill 打包器捡走。
- 每个阶段的寄存器小节是幂等的——只在标记不存在时才追加到标记之下。重复渲染 永远不会堆出重复内容。
链接到你的源码
handbook render --work $WORK --source-base-url https://github.com/me/repo/blob/main手册里的每个文件路径都会变成指向真实文件的链接。如果你希望手册引用的是生成它时的
那份代码,就把这个地址指向某个 tag 或 commit SHA,而不是 main。
不加这个标志,输出中完全不含任何外部 URL——对私有代码库来说,这正是合适的默 认值。
标题与语言
handbook render --work $WORK --title "Payments Service — Engineering Handbook"叙述语言在生成时就已固定(--narrate-lang),保存在 phase3/narration.json
中。渲染器从那里读取——每个标签、标题和表头都会相应地本地化。两种语言下的结构
完全一致,因此读取输出的工具不需要知道它是哪种语言。
把重新渲染变成习惯
渲染免费且确定性,所以把它接进 CI:
- run: handbook render --work work/api --title "API Handbook" --html --agent-site --llms-txt
- run: handbook skill --handbook work/api/handbook --out skills/api --name api \
--work work/api --source . --agent-dir work/api/handbook/agent
- run: handbook validate --skill skills/api --source .见 CI 集成。
发布 HTML 站点
输出是一个链接全为相对路径、不含外部资产的静态目录,所以任何静态托管都行:
# GitHub Pages
cp -R work/api/handbook/html/* docs-site/ && git add docs-site
# Netlify / Vercel / S3 / nginx
npx serve work/api/handbook/html把 llms.txt 放在站点根路径下,好让智能体能找到它。