NYC
skills/smithery/ai/openspec-apply-change

openspec-apply-change

SKILL.md

实现 OpenSpec 变更中的任务。

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

步骤

  1. 选择变更

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

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

    始终宣布:“正在使用变更:”以及如何覆盖(例如,/opsx:apply <other>)。

  2. 检查状态以了解 Schema

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

    Parse the JSON to understand:

    • schemaName: The workflow being used (e.g., "spec-driven")
    • Which artifact contains the tasks (typically "tasks" for spec-driven, check status for others)
  3. 获取应用指令

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

    这返回:

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

    处理状态:

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

    阅读 apply instructions 输出中 contextFiles 列出的文件。 文件取决于正在使用的 Schema:

    • spec-driven: proposal, specs, design, tasks
    • Other schemas: follow the contextFiles from CLI output
  5. 显示当前进度

    显示:

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

    对于每个待处理任务:

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

    暂停如果:

    • 任务不清楚 → 询问澄清
    • 实现揭示了设计问题 → 建议更新产出物
    • 遇到错误或阻碍 → 报告并等待指导
    • 用户中断
  7. 完成或暂停时,显示状态

    显示:

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

实现期间的输出

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

正在处理任务 3/7:<task description>
[...正在进行实现...]
✓ 任务完成

正在处理任务 4/7:<task description>
[...正在进行实现...]
✓ 任务完成

完成时的输出

## 实现完成

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

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

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

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

## 实现暂停

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

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

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

您想怎么做?

护栏

  • 继续执行任务直到完成或受阻
  • 开始前始终阅读上下文文件(来自 apply instructions 输出)
  • 如果任务模棱两可,暂停并在实现前询问
  • 如果实现揭示了问题,暂停并建议更新产出物
  • 保持代码更改最小化并限定在每个任务范围内
  • 完成每个任务后立即更新任务复选框
  • 遇到错误、阻碍或不清楚的需求时暂停 - 不要猜测
  • 使用 CLI 输出中的 contextFiles,不要假设特定的文件名

流畅的工作流集成

此技能支持“变更上的操作”模型:

  • 可以随时调用:在所有产出物完成之前(如果存在任务),部分实现之后,与其他操作交错
  • 允许产出物更新:如果实现揭示了设计问题,建议更新产出物 - 不是阶段锁定的,流畅地工作
Weekly Installs
1
Repository
smithery/ai
First Seen
11 days ago
Security Audits
Installed on
claude-code1