mcpField
B
beads-docs

beads-docs

github.com/gastownhall开发28.3k129 次安装今天更新
代码仓库

关于 beads-docs

beads-docs 是用于编写 beads 用户文档的技能,面向文档作者和审阅者。它规范术语、结构、示例、图示、生成内容和验证流程,帮助文档与所描述的产品保持一致。

主要功能

  1. 01采用 beads 的规范术语
  2. 02按明确目的组织页面
  3. 03优先使用示例、表格和图示
  4. 04在源文件中修改生成内容
  5. 05按规定检查验证文档

适用场景

  1. 01撰写 beads 用户指南页面
  2. 02检查文档术语是否一致
  3. 03调整图示和文档结构
  4. 04完成前检查文档

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gastownhall/beads --skill beads-docs

安装后在 Claude Code 中输入/beads-docs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
simplification.md
terminology.md
verification.md

详细介绍

编写 beads 文档

这是 docs/ 的统一风格指南,适用于 beads 用户文档;这些文档以 Mintlify 网站形式发布。目标是:先说明动机,再引入术语;在各处始终用相同方式表达相同内容;通过图片和代码片段展示概念,而不是堆砌大段文字;并始终与代码保持一致。创建、编辑或审阅任何页面时,都要遵循此指南。

docs/ 面向 beads 的用户——安装 bd、跟踪工作并进行同步的人类或 Agent。面向贡献者的内容位于 engdocs/ 和 AGENTS.md,遵循不同的规则(可以按字面描述实现)。本指南中提到“文档”时,指的是 docs/。

1. 规范模型

Beads 是一个具有依赖关系的 issue 图,并在其上提供工作流层。始终以一致的方式介绍它,并链接到规范概念页面——docs/core-concepts/index.md,而不是重复解释。

概念作用核心要点
bead(issue)工作单元一个经过跟踪的事项,包含哈希 ID(bd-a1b2)、类型、状态和优先级;“bead”和“issue”指的是同一事物
依赖关系排序blocks 边会让 Agent 看不到 bead,直到其阻塞项关闭;parent-child、related、discovered-from 用于组织事项,但不会造成阻塞
就绪工作bd ready 的计算结果没有未关闭阻塞项的开放 bead,排除 in_progress、blocked、deferred 和 hooked 状态的 bead——可认领工作的前沿
formula工作流来源定义步骤 DAG 的 TOML/JSON 文件;bd cook 会将其编译为 proto
proto工作流模板带有 template 标签且包含 {{variables}} 的模板 epic;不是实际工作
molecule已实例化的工作流从 proto 倒出的实际 bead(bd mol pour);持久存在
wisp临时 molecule相同的实例化形式,但生命周期是临时的(bd mol wisp);由 bd purge 清除
gate异步等待阻塞工作流步骤,直到由人类、计时器、GitHub 运行/PR 或跨 rig bead 将其关闭
同步跨机器传输通过 git 远程上的 refs/dolt/data 进行 Dolt 推送/拉取;.beads/issues.jsonl 是被动导出文件,绝不是数据库
联邦跨仓库同步在不同仓库/组织之间以点对点方式共享 bead

需要牢记的流程:formula → (cook) → proto → (pour) → molecule 或 → (wisp) → wisp。Gate 会暂停 molecule 步骤;bd ready 会显示可认领的步骤;同步会在机器之间传输整个图。

经常被页面写错的存储事实:嵌入式模式(默认的 bd init)将数据存储在 .beads/embeddeddolt/;服务端模式(bd init --server)使用 .beads/dolt/。切勿将 .beads/dolt/ 描述为通用数据路径。

跨项目术语(beads ↔ Gas City)。 同属一个项目系列的 Gas City 项目也使用 molecule、formula、wisp 和 gate 这些词,但两套文档对它们的用法不同:Gas City 文档将 molecule/wisp 视为 v1 实现细节(绝不作为用户概念),而 Gas City 的 formula 是由编排器跨 Agent 运行的编排方法。在 beads 中,molecule/wisp/proto 是用户概念,而 formula 是用于 cook 并生成 proto 的 TOML 源文件。切勿将 Gas City 的定义套用到 beads 页面(反之亦然);如果页面需要衔接两个项目,必须明确说明所指的是哪个项目中的含义。

2. 必需术语

使用左栏中的术语;不要使用右栏中的术语(注明的情况除外)。关于叙述文本与字面名称的完整更名规则,请参阅 references/terminology.md。

使用此术语不使用此术语备注
bead / issue将“task”“ticket”“TODO item”用作单元名称两种说法都正确,可以互换;介绍其概念时优先使用 bead,与 CLI 输出或标志一致时使用 issue(bd create、“issue types”)。“task”是一种 issue 类型,绝不能作为通用单元名称。
ready work将“unblocked queue”“available tasks”“the ready set”用作正式术语说明 bd ready 返回的内容:没有未关闭阻塞项的未关闭 bead。
proto将“template”用作表示该概念的名词template 仅作为 proto 所带的字面标签名称保留。
molecule在叙述中使用“mol”mol 是命令字面名称(bd mol pour);该概念称为 molecule。
formula将 formula 与 molecule/proto 混为一谈formula 是文件;制作会生成 proto;倾倒会生成实际工作项。
gate“barrier”“checkpoint”“lock”Gate 是带有类型(human、timer、gh:run、gh:pr、bead)的异步等待条件。
sync = Dolt 推送/拉取将导出/导入称为同步工作流通过 refs/dolt/data 执行 bd dolt push / bd dolt pull。.beads/issues.jsonl 是供查看器和数据交换使用的被动导出文件。
embedded mode / server mode将“local mode”“daemon mode”用于存储模式Embedded 是默认模式;数据位于 .beads/embeddeddolt/。Server mode 连接到 dolt sql-server;数据位于 .beads/dolt/。
federation将“multi-repo sync”作为独立功能名称Federation 是跨仓库点对点共享功能。
hash ID“random ID”“UUID”诸如 bd-a1b2 的 ID 是基于内容生成的哈希,并会自适应调整长度以避免冲突。

3. 内容原则

  • 先说明动机,再讲机制。 页面开头先说明它要解决的问题, 然后介绍解决方案,最后讲解机制。绝不要以术语介绍开篇。
  • 文档不是项目历史。 不要出现 internal/* 包路径,不要写 “this was removed in vX”,也不要在面向用户的页面上设置“(v0.20.1+)”之类的版本门槛——beads 是 1.x 产品,1.0 之前的历史考据应放在 engdocs/ 或 CHANGELOG 中。
  • 先讲价值。 Beads 的价值在于为编码 Agent 提供持久、能识别依赖关系的记忆——工作图谱的存续时间长于会话,因此 Agent 即使丢失上下文也能继续工作。与 GitHub Issues、Jira、 Markdown TODO 列表的比较,是吸引新用户的最佳方式;已有此类内容的页面应尽早保留。
  • 一个具体示例胜过三句抽象描述。 断言某项功能时,应展示一个 bd 调用及其输出。

4. 信息架构

导航位于 docs/docs.json:Getting Started、Core Concepts、 Architecture、Workflows、Recovery、Multi-Agent、Integrations、Community 和 Reference;生成的 CLI Reference 嵌套在 Reference 下,作为一个折叠子组。

  • 每个分区都必须有索引/Overview 页面,用一两句话介绍该分区,然后列出每个子页面,并附上一句话准确摘要和链接。
  • 一页只讲一个目的。试图兼顾教学和规范说明的页面两者都做不好——应拆分并互相链接。
  • 概念内容统一放在 core-concepts/index;不要在其他页面重新阐述模型,而应链接到该页面。
  • 仓库结构图应放在 README 中,而不是 docs/ 中。

5. 文案准则——删减冗词,突出重点

大多数冗长内容都是把信息放在了不合适的载体上。将其移到成本更低的载体上,然后删掉没有实际作用的内容。每个页面都必须独立完整——初次访问的读者需要一行背景说明,而不是依赖前一个页面。

转换(将负担从文案中移走):

  • 关系或流程 → 图表(mermaid 可原生渲染;更丰富的图表使用 Excalidraw 流程——参见 §7)。
  • 并列选项、字段或比较 → 表格。
  • “你运行 X,它会执行 Y”这类叙述 → 带注释的 CLI 代码片段(展示命令及其输出,并为值得关注的行添加注释)。
  • 边缘情况和深层机制 → <Accordion>,或参考页面。页面上保留 80% 的常见情况。

删除(这些负担本来就是多余的):铺垫式开场白(“在本节中,我们将……”)、层层保留措辞(“通常/一般来说/在大多数情况下”)、重复陈述、复述代码片段已展示的内容,以及用形容词代替证据。

进行有意的简化时,请遵循 references/simplification.md——逐页迭代流程,以及确保删减不失真的两道护栏:遗漏检查(绝不删除只在此处出现的事实)和事实核查(删减后的文案必须与代码保持一致)。

6. 强调与格式

  • 粗体仅在术语首次出现时用于标记术语。斜体用于标记属性或对比。每段约标记 1–2 处;不要再次强调已介绍的术语;同一短语不要同时使用两种格式。
  • 正文中不要使用 # H1——frontmatter 中的 title 就是 H1。使用 ##/###。
  • 链接使用根相对路径且不带扩展名(/getting-started/quickstart)。 指向站点外部的链接(engdocs/、仓库文件)使用完整的 GitHub URL。
  • Mintlify 会将 .md 解析为 MDX:不要使用 HTML 注释(改用 {/* … */}),尖括号占位符(如 <id>)必须放在反引号或代码围栏内。
  • 谨慎使用 Mintlify 组件(<Note>、<Tip>、<Warning>、<Accordion>)——重复使用会削弱效果。

7. 图表

Mermaid 围栏代码可原生渲染——绘制图表和流程图时优先使用。要制作更丰富的图表,请使用 Excalidraw 流程:在 docs/diagrams/excalidraw/ 下编写 .excalidraw 源文件,使用 make diagrams-excalidraw 渲染(源文件和渲染后的 .svg 均需提交),嵌入 /diagrams/excalidraw-rendered/<name>.svg 并添加描述性替代文本,同时保持标签简短(两行的“名称/角色”胜过塞在框内的一整句话)。以下两点务必遵守:

  • 将每个渲染后的图表栅格化并检查——文本溢出和布局问题在文本差异中不可见。
  • **无法通过差异审查图表和图片。**渲染后交由维护者批准,再进行提交。

8. 在源文件中编辑生成的内容

切勿手动编辑生成的文件。生成的内容包括:

  • docs/cli-reference/*.md 和 docs/docs.json 中的 CLI Reference 页面数组——bd 会将与供应商无关的页面(通过 bd help --docs-root,从 cmd/bd/*.go 中的 Cobra 命令字符串生成)输出到未提交的暂存树中,随后 tools/docsmint 会将其后处理为已提交的 Mintlify 格式。bd 本身绝不会输出 Mintlify(或任何站点生成器)的特定内容;这部分由 docsmint 负责。
  • docs/CLI_REFERENCE.md——由 bd help --docs-root 直接输出的单文件参考文档。

要更改其中任何文件的措辞,请编辑 Go 源代码(Short:、Long:、Example: 字符串),然后运行 ./scripts/generate-cli-docs.sh(该脚本会运行两个阶段)。要更改 Mintlify 页面格式本身(注释标记、链接样式、导航),请编辑 tools/docsmint 及其测试。漂移检查机制(generate-cli-docs.sh --check、PR CI 中的 scripts/check-cli-docs-drift.sh,以及 docs-autofix 机器人)会因任何手动编辑而失败或自动修复。

文档描述的是固定版本,而非 main。 docs/cli-docs.pin 指定了整套文档所针对的发布标签;流水线会从该标签构建 bd 并根据该标签进行验证,因此,在 main 上对 Go 源代码的修改只有在更新固定版本(发布时,并随后重新生成文档)后才会反映到已提交的文档中。手写页面遵循同一政策:记录固定版本的功能,绝不记录仅存在于 main 中的功能。请参阅 engdocs/decisions/2026-07-17-docs-release-pin.md。

9. 完成前先验证

运行 references/verification.md 中的检查。简要列表:bazel test //test/docsync:docsync_test --config=ci(导航↔文件同步 + 链接规范)、./scripts/generate-cli-docs.sh --check(确保生成的文档为最新)、./scripts/check-doc-freshness.sh(Last reviewed 标记),以及通过 make docs-dev(或 ./mint.sh dev)在 localhost:3000 上实时预览。

移动或删除页面时:在 docs/docs.json 的 redirects 数组中添加重定向,在整个仓库中改写所有指向该页面的链接(README、engdocs/、examples/、npm-package/、插件资源——使用 grep 搜索,不要猜),并检查 bd 是否会输出旧路径(如果会,请修复 Go 源代码并重新生成——绝不要使用指向旧页面的占位页面;决策 6 涵盖了带重定向的旧路由)。

10. 审查与提交规范

  • 作者提交 → 维护者审查 → 获得明确批准后提交。 这一点对于图表和图片尤为重要,因为它们无法通过文本差异进行审查。
  • 按受众分组提交:用户文档(docs/)、贡献者文档(engdocs/、AGENTS.md)以及生成器/Go 更改分别提交。
  • 根据 AGENTS.md,将文档工作记录为 bd 问题。

评论

支持 Markdown