资讯动态

OpenSpec 变更提案生成工作流:GoFrame 仓库 openspec-propose 技能详解

发布时间:2026/10/2 2:11:19 来源:尧图企业网站定制
Web框架后端CLI【免费下载链接】gfA powerful framework for faster, easier, and more efficient project development.项目地址https://gitcode.com/GitHub_Trending/gf/gf点击查看免费下载本篇技术指南围绕 GoFramegithub.com/gogf/gf/v2仓库中.agents/skills/openspec-propose/SKILL.md这一 AI Agent 技能展开完整讲解如何使用openspecCLI 在一步之内创建一次变更change并生成全部规格化产物proposal、design、tasks使变更达到可实施apply-ready状态。读完本文你将掌握 OpenSpec 提案技能的输入规范、五步执行流程、status/instructions命令的 JSON 数据结构、产物创建准则与护栏guardrails并能将其嵌入到 GoFrame 项目探索 → 提案 → 实施 → 评审 → 归档的 SDDSpec-Driven Development开发工作流中。技能定位与元数据openspec-propose是存放在.agents/skills/openspec-propose/SKILL.md下的 Agent 技能文件其核心职责是当用户快速描述想要构建的内容后一次性生成一份包含设计、规格与任务的完整提案直接交付实施。该技能文件自带 frontmatter 元数据为 Agent 与工具链提供结构化信息字段值含义nameopenspec-propose技能唯一标识供 Agent 运行时按名调用description一次生成全部产物的提案技能触发该技能的语义描述licenseMIT技能内容采用的开源许可证compatibilityRequires openspec CLI运行前提宿主机必须安装openspec命令行工具metadata.authoropenspec技能作者metadata.version1.0技能版本号metadata.generatedBy1.2.0生成该技能所使用的 OpenSpec CLI 版本技能文件正文明确了它的产物模型一次提案会生成三类 artifacts分别回答做什么与为什么怎么做与按什么步骤做三个问题proposal.mdwhat why变更目标与理由design.mdhow技术方案设计tasks.mdimplementation steps实施任务清单。当所有产物就绪后工作流会提示用户运行/opsx:apply进入实施阶段——在 GoFrame 仓库中该斜杠命令的对应提示词文件位于.agents/prompts/opsx/apply.md而提案命令本身的提示词版本记录在.agents/prompts/opsx/propose.md。输入规范变更名与需求描述技能对输入有明确约定用户的请求必须包含一个 kebab-case 形式的变更名change name或者一段描述想要构建内容的文字。两种输入形式对应两种处理路径直接给出变更名沿用该名称例如/opsx:propose add-user-auth给出描述性文字Agent 需要从中推导出 kebab-case 名称例如 add user authentication 推导为add-user-auth。如果两者都没有提供技能强制要求使用开放式open-ended、无预设选项的提问工具AskUserQuestion tool向用户确认What change do you want to work on? Describe what you want to build or fix.并明确规定不得在未理解用户构建意图前继续执行后续步骤。这条输入门槛与探索技能.agents/skills/openspec-explore/SKILL.md的定位形成衔接探索模式负责发散思考与澄清需求提案技能则要求需求已经收敛到可命名、可描述的程度。五步执行流程技能正文将提案生成组织为五个递进步骤下面逐一拆解其命令、数据结构与判断逻辑。步骤一创建变更目录变更名确定后执行脚手架命令openspec new change name该命令会在openspec/changes/name/下创建变更骨架目录其中包含.openspec.yaml配置文件。目录名即 kebab-case 变更名后续所有产物文件都写入该目录。在 GoFrame 仓库的协作约定中见 AGENTS.md 的 Development Workflow Rules任何非平凡变更都必须先经过该流程登记openspec/changes/下的变更目录是后续所有工具操作的唯一事实来源。步骤二获取产物构建顺序脚手架创建完成后通过带--json的 status 命令读取依赖图openspec status --change name --json解析返回的 JSON 需要关注两个关键字段字段类型含义applyRequires数组进入实施阶段前必须完成的 artifact ID 列表例如[tasks]artifacts数组全部产物的清单每个元素包含 artifact 的 ID、状态ready/done等与依赖关系该命令的作用是确定产物的拓扑构建顺序只有依赖满足ready的 artifact 才能被创建因此 Agent 需要循环处理无待处理依赖的产物而不是按固定顺序盲目生成。步骤三按依赖顺序循环生成产物这是整个技能的核心环节。Agent 应使用任务跟踪工具TodoWrite tool记录产物进度然后循环执行对每个处于ready状态的 artifact获取其创建指令openspec instructions artifact-id --change name --json解析指令 JSON其字段结构如下字段用途context项目背景作为 Agent 的约束条件不得写入产物文件rulesartifact 专属规则同为 Agent 约束不得写入产物文件template产物文件必须遵循的结构骨架instruction针对该 artifact 类型的 schema 级编写指引outputPath产物文件的写入路径dependencies需要先阅读的已完成产物列表先读取所有已完成依赖文件获取上下文再以template为结构创建产物文件同时将context与rules作为编写约束应用——但绝不复制到文件中。每完成一个产物输出一句简短进度Created 。步骤四确认 apply-ready 状态每创建一个产物后都要重新运行openspec status --change name --json检查applyRequires中的每个 artifact ID 是否都在artifacts数组中标记为status: done。只有当全部applyRequires产物完成时才停止循环——这意味着产物创建并非越多越好而是以 schema 定义的实施前置条件为准。循环期间若某个产物因上下文不清晰而需要用户输入则调用提问工具澄清后继续体现优先做出合理决策以保持节奏的原则。步骤五展示最终状态全部产物完成后运行不带--json的状态命令输出人类可读结果openspec status --change name随后按固定格式向用户总结变更名称与位置已创建的产物清单及各产物简要说明就绪声明All artifacts created! Ready for implementation.下一步引导Run/opsx:applyor ask me to implement to start working on the tasks.。产物创建准则技能对产物文件的编写提出四条硬性准则遵循openspec instructions返回的instruction字段——每个 artifact 类型的 schema 定义了其应有的内容按 schema 编写在创建新产物前先阅读依赖产物获取上下文保证产物之间的信息连贯以template作为产物文件的结构骨架逐段填充其章节context与rules是约束条件而非内容素材context、rules、project_context等块只能指导编写过程绝不能出现在产物文件中。这四条准则保证了产物文件只包含规格内容不混入 Agent 内部的系统提示与项目背景从而让proposal.md、design.md、tasks.md保持纯净、可评审、可归档。护栏Guardrails技能末尾定义了五条执行护栏用于约束 Agent 行为边界完整创建必须创建 schema 的apply.requires所定义的全部实施所需产物不允许只生成部分产物依赖优先创建新产物前必须阅读依赖产物澄清与推进平衡上下文严重不清晰时才询问用户但倾向于做出合理决策以保持推进势头同名冲突处理若同名变更已存在需询问用户是继续该变更还是新建一个写后验证每个产物文件写入后需验证文件确实存在再进入下一个产物的创建。这五条护栏与 GoFrame 仓库在 AGENTS.md 中强调的变更视为 active 直至归档规则互为补充提案阶段保证产物完整归档阶段保证变更闭环。在 GoFrame 仓库 SDD 工作流中的位置从仓库根目录的 AGENTS.md 可以看到GoFrame 项目采用 SDDSpec-Driven Development并用 OpenSpec 驱动实施openspec-propose技能是整条流水线的中间枢纽前置阶段/opsx:explore对应.agents/prompts/opsx/explore.md与技能.agents/skills/openspec-explore/SKILL.md以思考伙伴姿态完成需求探索明确后才进入提案本技能将探索结论固化为openspec/changes/name/下的proposal.md、design.md、specs/与tasks.md后置阶段/opsx:apply按tasks.md逐项实施完成后必须触发/gf-review技能评审用户确认本轮迭代无遗留问题后再执行/opsx:archive归档详见.agents/prompts/opsx/archive.md。值得注意的是.agents/prompts/opsx/propose.md与本 SKILL.md 内容几乎一致但前者是斜杠命令提示词prompt后者是 Agent 技能skill二者面向不同的调用入口技能文件中出现的/opsx:apply、/opsx:continue等命令也都有对应的仓库提示词文件可供查阅例如 apply.md。此外仓库约定新迭代文档proposal.md、design.md、tasks.md及增量规格一律使用英文撰写这与产物文件的纯净性要求共同构成了可长期维护的变更档案。小结openspec-propose技能的本质是把一次变更从想法到可实施提案这一过程标准化为可复现的五步流程询问或推导变更名 →openspec new change建立目录 →openspec status --json读取产物依赖图 → 按依赖顺序用openspec instructions --json生成各产物 → 校验 apply-ready 并展示总结。配合 GoFrame 仓库的探索、实施、评审、归档命令它构成了一个完整、可审计、可归档的规格驱动开发闭环对于希望为 AI Agent 编写类似技能、或理解 OpenSpec 工具链产物机制的开发者这份技能文件是一个结构清晰、可直接借鉴的范本。赞分享Web框架后端CLI【免费下载链接】gfA powerful framework for faster, easier, and more efficient project development.项目地址https://gitcode.com/GitHub_Trending/gf/gf点击查看免费下载相关推荐Databasus 仓库的 OpenSpec 变更提案技能openspec-propose 工作流全解Databasus 仓库的 OpenSpec 变更提案技能openspec propose 工作流全解 本文围绕 Databasus 仓库 .agents/数据库灾备基于 OpenSpec CLI 的 Halo 仓库变更提案流程openspec-propose 技能实战指南基于 OpenSpec CLI 的 Halo 仓库变更提案流程openspec propose 技能实战指南 OpenSpec 是一套以 spec规格说明后端前端CMSFleet 仓库的 OpenSpec 变更提案实战用 openspec-propose 一步生成 proposal / design / tasksFleet 仓库的 OpenSpec 变更提案实战用 openspec propose 一步生成 proposal / design / tasks open后端前端企业应用运维网络安全上一篇3 步上手 Open-Meteo免费天气 API 如何查预报、历史数据与空气质量下一篇终极指南用OpenCore Legacy Patcher让老款Mac焕发新生创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑