blog
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
Claude Code
$ npx -y skills add Chorus-AIDLC/Chorus --skill openspec-apply-change --agent claude-code
Codex
$ npx skills add Chorus-AIDLC/Chorus --skill openspec-apply-change -a codex -y
Cursor
$ npx skills add Chorus-AIDLC/Chorus --skill openspec-apply-change -a cursor -y
Gemini CLI
$ npx skills add Chorus-AIDLC/Chorus --skill openspec-apply-change -a gemini-cli -y
GitHub Copilot
$ npx skills add Chorus-AIDLC/Chorus --skill openspec-apply-change -a github-copilot -y
OpenCode
$ npx skills add Chorus-AIDLC/Chorus --skill openspec-apply-change -a opencode -y
Windsurf
$ npx skills add Chorus-AIDLC/Chorus --skill openspec-apply-change -a windsurf -y
name: openspec-apply-change description: Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks. license: MIT compatibility: Requires openspec CLI. metadata: author: openspec version: "1.0" generatedBy: "1.3.1"
Implement tasks from an OpenSpec change.
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
**Steps**
1. **Select the change**
If a name is provided, use it. Otherwise:
Always announce: "Using change: <name>" and how to override (e.g., `/opsx:apply <other>`).
2. **Check status to understand the schema**
openspec status --change "<name>" --json
Parse the JSON to understand:
3. **Get apply instructions**
openspec instructions apply --change "<name>" --json
This returns:
**Handle states:**
4. **Read context files**
Read every file path listed under `contextFiles` from the apply instructions output. The files depend on the schema being used:
5. **Show current progress**
Display:
6. **Implement tasks (loop until done or blocked)**
For each pending task:
**Pause if:**
7. **On completion or pause, show status**
Display:
**Output During Implementation**
## Implementing: <change-name> (schema: <schema-name>) Working on task 3/7: <task description> [...implementation happening...] ✓ Task complete Working on task 4/7: <task description> [...implementation happening...] ✓ Task complete
**Output On Completion**
## Implementation Complete **Change:** <change-name> **Schema:** <schema-name> **Progress:** 7/7 tasks complete ✓ ### Completed This Session - [x] Task 1 - [x] Task 2 ... All tasks complete! Ready to archive this change.
**Output On Pause (Issue Encountered)**
## Implementation Paused **Change:** <change-name> **Schema:** <schema-name> **Progress:** 4/7 tasks complete ### Issue Encountered <description of the issue> **Options:** 1. <option 1> 2. <option 2> 3. Other approach What would you like to do?
**Guardrails**
**Fluid Workflow Integration**
This skill supports the "actions on a change" model:
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev…
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after…
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the…
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to…
Guide for modifying the Chorus plugin (Claude Code, Codex/TRAE CLI, OpenClaw, Kiro, Pi, dsh, and Hermes ports), updating skill…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration