Files
SunCheng 0d649b76a2
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 23s
Docker Build & Deploy / Deploy to Production (push) Successful in 8s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
feat: 添加调试信息面板,优化主题色彩和底部导航栏布局
2026-02-11 14:42:46 +08:00

4.3 KiB

name, description, license, compatibility, metadata
name description license compatibility metadata
openspec-apply-change 从 OpenSpec 变更中实施任务。当用户想要开始实施、继续实施或执行任务时使用。 MIT Requires openspec CLI.
author version generatedBy
openspec 1.0 1.1.1

从 OpenSpec 变更中实施任务。

输入:可选地指定变更名称。如果省略,则检查是否可以从对话上下文推断。如果模糊或不明确,您必须提示用户选择可用的变更。

步骤

  1. 选择变更

    如果提供了名称,则使用它。否则:

    • 如果用户提到了变更,则从对话上下文推断
    • 如果只存在一个活动变更,则自动选择
    • 如果不明确,运行 openspec list --json 获取可用变更并使用 AskUserQuestion 工具让用户选择

    始终宣布:"使用变更: <名称>" 以及如何覆盖(例如 /opsx-apply <其他>)。

  2. 检查状态以了解 schema

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

    解析 JSON 以了解:

    • schemaName: 正在使用的工作流(例如 "spec-driven")
    • 哪个 artifact 包含任务(对于 spec-driven 通常是 "tasks",其他情况请检查状态)
  3. 获取应用说明

    openspec instructions apply --change "<name>" --json
    

    这将返回:

    • 上下文文件路径(因 schema 而异 - 可能是 proposal/specs/design/tasks 或 spec/tests/implementation/docs)
    • 进度(总数、已完成、剩余)
    • 带状态的任务列表
    • 基于当前状态的动态指令

    处理状态:

    • 如果 state: "blocked"(缺少 artifacts): 显示消息,建议使用 openspec-continue-change
    • 如果 state: "all_done": 祝贺,建议归档
    • 否则: 继续实施
  4. 读取上下文文件

    读取应用说明输出中 contextFiles 列出的文件。 文件取决于使用的 schema:

    • spec-driven: proposal、specs、design、tasks
    • 其他 schemas: 遵循 CLI 输出中的 contextFiles
  5. 显示当前进度

    显示:

    • 正在使用的 Schema
    • 进度: "已完成 N/M 个任务"
    • 剩余任务概览
    • 来自 CLI 的动态指令
  6. 实施任务(循环直到完成或阻塞)

    对于每个待处理任务:

    • 显示正在处理哪个任务
    • 进行所需的代码更改
    • 保持更改最小且专注
    • 在任务文件中标记任务完成: - [ ]- [x]
    • 继续下一个任务

    暂停如果:

    • 任务不清楚 → 请求澄清
    • 实施揭示设计问题 → 建议更新 artifacts
    • 遇到错误或阻塞 → 报告并等待指导
    • 用户中断
  7. 完成或暂停时,显示状态

    显示:

    • 本次会话完成的任务
    • 总体进度: "已完成 N/M 个任务"
    • 如果全部完成: 建议归档
    • 如果暂停: 解释原因并等待指导

实施期间的输出

## 正在实施: <change-name> (schema: <schema-name>)

正在处理任务 3/7: <任务描述>
[...正在实施...]
✓ 任务完成

正在处理任务 4/7: <任务描述>
[...正在实施...]
✓ 任务完成

完成时的输出

## 实施完成

**变更:** <change-name>
**Schema:** <schema-name>
**进度:** 7/7 个任务完成 ✓

### 本次会话已完成
- [x] 任务 1
- [x] 任务 2
...

所有任务完成! 准备归档此变更。

暂停时的输出(遇到问题)

## 实施已暂停

**变更:** <change-name>
**Schema:** <schema-name>
**进度:** 已完成 4/7 个任务

### 遇到的问题
<问题描述>

**选项:**
1. <选项 1>
2. <选项 2>
3. 其他方法

您想怎么做?

护栏

  • 持续处理任务直到完成或阻塞
  • 开始前始终读取上下文文件(从应用说明输出中)
  • 如果任务不明确,在实施前暂停并询问
  • 如果实施揭示问题,暂停并建议更新 artifact
  • 保持代码更改最小且限定在每个任务范围内
  • 完成每个任务后立即更新任务复选框
  • 遇到错误、阻塞或不清楚的需求时暂停 - 不要猜测
  • 使用 CLI 输出中的 contextFiles,不要假设特定文件名

流畅工作流集成

此技能支持"对变更的操作"模型:

  • 可以随时调用: 在所有 artifacts 完成之前(如果存在任务)、部分实施后、与其他操作交错进行
  • 允许更新 artifact: 如果实施揭示设计问题,建议更新 artifacts - 不是阶段锁定,灵活工作