关于 factory-product
factory-product 用于编排产品决策技能,以创建、完善并分析一致的 PRD.md,适合定义产品需求的团队。它根据新项目、现有代码库或已有 PRD 选择流程,并在决策环节设置人工审批关卡。
主要功能
- 01协调产品生命周期技能
- 02按项目和 PRD 状态选择流程
- 03生成并维护 PRD.md
- 04检查 PRD 与 PDR 的一致性
- 05设置人工审批关卡
适用场景
- 01为新产品定义需求
- 02从现有代码库反向整理 PDR 草稿
- 03发现现有 PRD 中的偏差
- 04根据已接受的决策更新 PRD
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ tikalk/ adlc-team-skills --skill factory-product安装后在 Claude Code 中输入/factory-product确认已加载。
附带文件workflow.yml
详细介绍
factory-product
在工厂运行期间 — 请先阅读
设置了 ADLC_RUN_ID 时,工作流引擎会无人值守地运行此步骤,随后进入一个关卡。请严格执行以下操作:
- 开始:
bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/run-branch.sh— 在 Windows 上使用pwsh {REPO_ROOT}/.agents/skills/factory-mission/scripts/powershell/run-branch.ps1(每个辅助脚本在scripts/powershell/下都有对应的 PowerShell 版本;在 Windows 上请用它替代 bash 脚本) - 运行 DAG 为此问题解析出的生命周期步骤。每个更改了文件的步骤之后:使用
commit-step.sh,并列出它写入、移动或删除的所有路径。 - 返回之前,务必: 运行
open-mr.sh,然后向ADLC_STEP_OUTPUT写入一行conclusion。无论结果如何,都要执行此操作,即使没有任何更改。 - 绝不请求批准或等待答复。引擎在此步骤之后设置的关卡就是审批;在此处提问会导致步骤结束,且没有任何内容发布。
只有此编排器可以提交、推送并创建 MR,而且只能通过这些辅助脚本;product-* 技能绝不执行这些操作。详情请参阅:分支运行、步骤提交和草稿 MR。
此技能的作用
factory-product 编排产品决策生命周期。它协调各个产品相关技能(product-init、product-specify、product-clarify、product-implement、product-analyze),以维护位于 docs/adlc/product/PRD.md 的一致 PRD.md(共享布局)。
它遵循 factory-mission/references/executor.md 中的共享执行器引擎契约,作为 Kind-A DAG 编排器运行。
适用场景
- 你想端到端地启动、完善或分析产品需求与决策(PDR)。
- 你想通过有引导、设有验收关卡且经过验证的产品定义流程,并设置恢复检查点。
不适用场景:
- 执行软件实现任务(请改用
factory-mission)。 - 创建架构决策记录(请改用
factory-architect)。
生命周期 DAG 与步骤解析
factory-product 实现了一个固定的命名技能 DAG(fixed 步骤解析):
Greenfield 路线(空项目的默认路线)
specify(generate阶段)-> 调用product-specify,协作整理.adlc/drafts/pdr/中的 PDR 草稿。clarify⭐(clarify阶段)-> 调用product-clarify,执行交互式质量检查,并将 PDR 标记为已接受(人工签核关卡)。implement(build阶段)-> 调用product-implement,将已接受的 PDR 编译到docs/adlc/product/PRD.md,并将其转存到docs/adlc/memory/pdr/。analyze(analyze阶段)-> 调用product-analyze,验证 PRD/PDR 的一致性,并输出按严重程度排序的报告。
Brownfield 路线(代码已存在但没有 PDR 时的默认路线)
init(generate阶段)-> 调用product-init,从现有代码库逆向生成 PDR 草稿。clarify⭐ →implement→analyze(与 Greenfield 路线相同)。
刷新路线(PRD.md 和 memory PDR 均已存在时的默认路线)
analyze(analyze阶段)-> 先运行 product-analyze,检测偏差。clarify⭐ →implement→analyze(偏差修正循环)。
共享执行器覆盖项
factory-product 对共享执行器引擎基元的覆盖如下:
- 发布目标:固定为
local。输出写入docs/adlc/memory/pdr/和docs/adlc/product/PRD.md。如果已集成 tracker,还会发布一条tracker完成摘要评论。 - 输出类型:步骤使用以下
output_type赋值:specify/init→draft(PDR 草稿保留在.adlc/drafts/pdr/,不会发布到评论总线)clarify⭐ →decision(已接受/已拒绝的 PDR 列表会发布到评论总线)implement→artifact-ref(PRD.md 路径引用会发布,内容保留在磁盘上)analyze→findings(按严重程度排序的一致性报告会发布到评论总线)
- 纠正循环:如果
analyze返回CRITICAL或HIGH一致性错误,执行器会路由回clarify,并在reads_from中包含 analyze 标记。clarify会从 PR/MR/issue 评论总线(或本地回退位置)读取 findings。循环受max_corrections限制(默认值为 2);若超出限制,编排器会暂停,等待人工审查。 - 监督默认值:
hybrid。clarify⭐(用于 PDR 审批)和最终PRD.md审查时,会强制设置人工审核关卡。 - 预检:在开始 Phase 0 之前,验证工作区中是否已安装
product-*生命周期技能。
运行分支、分步提交和草稿 MR
需要:factory-mission 技能(提供运行辅助脚本):adlc-cli skills add tikalk/adlc-team-skills --skill factory-mission
在工厂运行中(由工作流引擎设置 ADLC_RUN_ID),此编排器——且只有它,绝不能是 product-* 生命周期技能——负责提交、推送运行分支并创建草稿 MR,且始终通过以下三个辅助脚本完成:
- 在第一步之前:
bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/run-branch.sh——在项目根目录检出factory/intent/<repo>-<iid>(取自ADLC_ISSUE_REF),并复用现有分支或从origin继续。与另一个 intent 通道及重新分派共享此分支。 - 每一步之后(
specify/init、clarify、implement、analyze修复):bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/commit-step.sh --orchestrator factory-product --step <step> --output-type <draft|decision|artifact-ref|findings> --summary "<one line, no issue text>" --records <IDs> -- <paths the step wrote>传入该步骤写入、移动或删除的所有路径(也包括已提升草稿的旧路径;辅助脚本也会提交允许列表内的删除),且路径只能位于生命周期写入允许列表中(.adlc/drafts/pdr/、docs/adlc/memory/pdr/、docs/adlc/product/PRD.md、.adlc/product/sections/、.adlc/product/state.json)。它会输出sha: <sha>或sha: none;将该sha写入该步骤的总线标记(总线传递的是指针,而不是内容)。绝不要暂存.adlc/workflows/**。 - 返回之前,务必执行:
bash {REPO_ROOT}/.agents/skills/factory-mission/scripts/bash/open-mr.sh——仅推送运行分支,查找或创建一个草稿 MR(使用合并提交,不 squash;里程碑/指派人按照 MR 归属决策设置),并将mr_url写入ADLC_STEP_OUTPUT,以便引擎的门控步骤添加链接(context.link)。无论结果如何,都要调用它——即使没有提交任何内容(sha: none,仅执行了 analyze):如果运行分支上没有提交,它不会创建任何内容,门控步骤也会显示没有内容需要审查。同时,在同一个 JSON 对象中写入单行conclusion(门控步骤的 intent 结论规则)。 在工厂运行中,此步骤之后引擎的门控步骤就是审批:不要自行请求审批(不要询问“是否批准implement?”)——完成 issue 所需的步骤,运行open-mr.sh,说明结论并返回。
在工厂运行之外,除非用户选择启用(在 .adlc/init-options.json 中设置 adlc.commit_steps: true,或向此技能传入 --commit 并由你转发给 commit-step.sh),否则辅助脚本不会执行任何操作;没有 ADLC_RUN_ID 时,run-branch.sh 和 open-mr.sh 绝不会执行。辅助脚本以非零状态码退出(路径被拒绝、缺少提交者身份、跟踪器范围不符)时,必须停止运行并报告问题,不要绕过限制。