Files
EmailBill/.opencode/skills/openspec-ff-change/SKILL.cn.md
SunCheng 51172e8c5a
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 4m27s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
fix
2026-02-11 13:00:01 +08:00

4.1 KiB

name, description, license, compatibility, metadata
name description license compatibility metadata
openspec-ff-change Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually. MIT Requires openspec CLI.
author version generatedBy
openspec 1.0 1.1.1

快速完成 artifact 创建 - 一次性生成开始实现所需的所有内容。

输入: 用户的请求应该包含变更名称 (kebab-case) 或对他们想要构建的内容的描述。

步骤

  1. 如果未提供明确输入,询问他们想要构建什么

    使用 AskUserQuestion 工具 (开放式,无预设选项) 询问:

    "你想要处理什么变更?描述你想要构建或修复的内容。"

    从他们的描述中,导出 kebab-case 名称 (例如: "add user authentication" → add-user-auth)。

    重要: 不要在不了解用户想要构建什么的情况下继续。

  2. 创建变更目录

    openspec new change "<name>"
    

    这将在 openspec/changes/<name>/ 创建一个脚手架变更。

  3. 获取 artifact 构建顺序

    openspec status --change "<name>" --json
    

    解析 JSON 以获取:

    • applyRequires: 实现前需要的 artifact ID 数组 (例如: ["tasks"])
    • artifacts: 所有 artifacts 的列表及其状态和依赖关系
  4. 按顺序创建 artifacts 直到准备好应用

    使用 TodoWrite 工具跟踪 artifacts 的进度。

    按依赖顺序循环 artifacts (没有待处理依赖关系的 artifacts 优先):

    a. 对于每个 ready 状态的 artifact (依赖关系已满足):

    • 获取指令:
      openspec instructions <artifact-id> --change "<name>" --json
      
    • 指令 JSON 包括:
      • context: 项目背景 (对你的约束 - 不要包含在输出中)
      • rules: Artifact 特定规则 (对你的约束 - 不要包含在输出中)
      • template: 用于输出文件的结构
      • instruction: 此 artifact 类型的 schema 特定指导
      • outputPath: artifact 写入位置
      • dependencies: 要读取以获取上下文的已完成 artifacts
    • 读取任何已完成的依赖文件以获取上下文
    • 使用 template 作为结构创建 artifact 文件
    • contextrules 作为约束应用 - 但不要将它们复制到文件中
    • 显示简短进度: "✓ 已创建 "

    b. 继续直到所有 applyRequires artifacts 完成

    • 创建每个 artifact 后,重新运行 openspec status --change "<name>" --json
    • 检查 applyRequires 中的每个 artifact ID 在 artifacts 数组中的 status: "done"
    • 当所有 applyRequires artifacts 都完成时停止

    c. 如果 artifact 需要用户输入 (上下文不清楚):

    • 使用 AskUserQuestion 工具澄清
    • 然后继续创建
  5. 显示最终状态

    openspec status --change "<name>"
    

输出

完成所有 artifacts 后,总结:

  • 变更名称和位置
  • 创建的 artifacts 列表及简短描述
  • 准备就绪的内容: "所有 artifacts 已创建!准备实现。"
  • 提示: "运行 /opsx-apply 或要求我实现以开始处理任务。"

Artifact 创建指南

  • 遵循每个 artifact 类型的 openspec instructions 中的 instruction 字段
  • Schema 定义了每个 artifact 应该包含什么 - 遵循它
  • 在创建新 artifacts 之前读取依赖 artifacts 以获取上下文
  • 使用 template 作为输出文件的结构 - 填充其部分
  • 重要: contextrules 是对你的约束,而不是文件的内容
    • 不要将 <context>, <rules>, <project_context> 块复制到 artifact 中
    • 这些指导你写什么,但永远不应该出现在输出中

防护机制

  • 创建实现所需的所有 artifacts (由 schema 的 apply.requires 定义)
  • 在创建新 artifact 之前始终读取依赖 artifacts
  • 如果上下文严重不清楚,询问用户 - 但更倾向于做出合理决策以保持势头
  • 如果已存在同名变更,建议继续该变更
  • 在继续下一个之前验证每个 artifact 文件是否存在