关于 flow
Flow 是面向团队的项目上下文对齐技能,用于维护产品文档。它只更新受变更影响的根目录文件,并明确设置与实现工作的边界。
主要功能
- 01变更后对齐项目上下文
- 02读取现有根目录文档
- 03仅更新受影响的章节
- 04定义 Flow 区块行为
- 05区分文档对齐与实现
适用场景
- 01行为变更后同步产品文档
- 02保持项目术语一致
- 03按需设置 Flow 模式
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gaboesquivel/ flow-skills --skill flow安装后在 Claude Code 中输入/flow确认已加载。
附带文件agents/openai.yamllib/flow-block.mjs
详细介绍
Flow
保留意图,以适配你所在的项目。当工作改变了产品的定位、行为、构建方式或团队对重要概念的命名时,应同步更新项目的根上下文。
此技能不会运行其他技能,也不授权任何实现工作(决策 0024)。它不是项目初始化。
产品归属
- 采用方项目:
PRODUCT.md是该项目的产品身份。只更新受变更影响的部分。 - 此 flow-skills 仓库:
PRODUCT.md是 Flow 的方法论身份。仅当该身份发生变化时才编辑它。不要将它复制到其他仓库。
不要用 Flow 的标语、使命、原则或战略链替换项目的产品身份。
flow start 和“启动项目”不是此技能。可选的 start 技能(决策 0010)包含此设置,以及从 flow-next 或 flow-mono 引导生成模板(决策 0026);写入前会确认模板、名称和目标位置。如果有人要求在不使用 start 的情况下搭建仓库,请停止,不要创建初始目录树、指令文件片段或带有 Flow 品牌标识的 PRODUCT.md。
调用方式
当用户要求更新或同步文档时,宿主可以匹配此技能。这不是始终启用的钩子,也不能确定每个宿主都会执行。已确认的可移植行为范围更窄:用户提出要求或调用 /flow 时,此技能才会运行;或者在使用 build 和 review 技能时,这些技能会应用相同的对齐规则。不要仅因元数据允许宿主推荐此技能,就声称已执行对齐。
流程
- 存在时,读取
PRODUCT.md、DESIGN.md、GLOSSARY.md和ARCHITECTURE.md;使用并行工具调用,而不是启动工作者(扇出规则:write-agentsWorkers)。仅当相关的docs/specs/和docs/decisions/记录有助于明确对齐范围时,才读取它们。 - 只更新受变更影响的部分,每个根文件仅安排一位写入者。每项事实只保留一个权威出处;与其重复不难重新查找的细节,不如链接到规范、决策或代码。
- 仅当根文件能承载有关当前项目的有意义内容时才创建。不要搭建空目录树、Flow 方法论样板或平行跟踪目录(不设 PRD/PDR/ADR 目录)。
Flow 区块
“Set up Flow here”会让项目启用 Flow 模式(决策 0020)。本节是该区块的唯一权威定义;start 在引导完成后会写入相同的区块。删除该区块即可退出。
询问。 先读取任何现有区块。如果缺少 Delivery: 或其值为 unset,且请求中未指定,则在写入前询问一次:pull requests 还是 local(决策 0030),并按照 build 的 Delivery mode 部分所述给出建议;该部分负责规定此规则以及每种模式的作用。如果 build 不可用,则不提供建议直接询问。除非用户指定新值,否则保留已记录的值,因此重新运行时若已有该值,无需询问。设置时不询问探索深度(决策 0036);下次写入时会删除遗留的 Process: 行。
写入时使用此技能的 lib/flow-block.mjs:node <skill-dir>/lib/flow-block.mjs <absolute-project-path> [local|pull-request]。该辅助程序负责布局和区块规则:区块所在文件、@AGENTS.md 导入、标记、短语表(PHRASES)、保留已记录的值、将过时区块从被忽略的 AGENTS.md 移出,以及拒绝格式错误的标记或符号链接、项目外文件或共享指令文件。绝不触碰标记和该导入行以外的文本。
没有 Node 时的后备方案: 如果 AGENTS.md 存在且未被 Git 忽略(git check-ignore -q AGENTS.md),则将区块放入其中;否则放入 CLAUDE.md,必要时创建该文件。如果 AGENTS.md 存在或被忽略,则在已有的 CLAUDE.md 第一行添加 @AGENTS.md。在 和 之间写入一个区块,其中包含 Delivery: 行、辅助程序的短语表以及指向此技能的说明。原位替换现有区块,并删除其他任何行(例如已停用的 Deploy: 或 Process:)。如果区块写入 CLAUDE.md,而被忽略的 AGENTS.md 中已有区块,则除非用户指定新值,否则沿用其中的 Delivery: 值,然后仅从 AGENTS.md 中删除该区块。如果标记不匹配或重复,或指令文件是符号链接、解析后位于项目外,或 CLAUDE.md 与 AGENTS.md 实为同一文件,则停止并报告。
目标。 设置定义与 start 相同的目标。写入区块后,如果缺少 PRODUCT.md 或其中没有产品简述(问题、目标人群、风险最高的假设、主要指标和终止标准、核心用户旅程),则将 explore 作为下一步并等待。
报告辅助程序的输出:区块所在文件(Wrote 或 Unchanged)、移出的任何过时区块、任何添加的导入或拒绝,以及布局(区块所在文件、Git 是否跟踪该文件、现有哪些导入)。展示区块并转达任何警告。
边界
- 不要编辑采用者的
AGENTS.md、CLAUDE.md、.cursorrules或其他类似指令文件中 Flow 区块和@AGENTS.md导入以外的内容;只有在用户提出请求或start完成已确认的引导后(决策 0020),才写入区块。 - 不要要求安装、初始化或先前调用过该技能。
- 不要把对齐修改视为实现无关代码的许可。对于获授权的实现和测试,如果已安装
build技能,则调用它。 - 不要在此处创建
docs/specs/或docs/decisions/记录;只有在有必要创建持久且范围明确的产物时,才使用to-spec或明确的决策流程。 - 只有在用户提出请求或设置时发现没有目标(见 Flow 区块)时,才提及其他技能(
to-spec、domain-modeling、review等),然后等待。
完成
说明哪些根目录文件发生了更改,以及它们现在体现的是谁的产品。注明尚未解决的假设,以及用户是否可能希望通过其他技能创建规格说明或决策记录。