Skip to content

Commit fef961f

Browse files
authored
fix: manually merge and archive four completed OpenSpec changes (#226)
Merged and archived four concurrent changes that modified the same specs: - add-cline-support: Added Cline AI tool configuration - add-crush-support: Added Crush AI tool configuration - add-factory-slash-commands: Added Factory Droid slash commands - add-archive-command-arguments: Added archive command argument support Changes to cli-init/spec.md: - Added Cline and CodeBuddy Code configuration scenarios - Added slash command scenarios for CodeBuddy Code, Cline, Crush, Factory Droid Changes to cli-update/spec.md: - Added update scenarios for CodeBuddy Code, Cline, Crush, Factory Droid - Added Archive Command Argument Support requirement - Modified OpenCode scenario to support $ARGUMENTS placeholder This required manual intervention to prevent data loss from OpenSpec's requirement-level replacement during archiving. The archive operations initially overwrote scenarios from earlier changes, requiring restoration of all missing content to preserve complete spec state. All four changes successfully archived to openspec/changes/archive/.
1 parent 3677e01 commit fef961f

File tree

24 files changed

+286
-67
lines changed

24 files changed

+286
-67
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ These tools have built-in OpenSpec commands. Select the OpenSpec integration whe
9191
| Tool | Commands |
9292
|------|----------|
9393
| **Claude Code** | `/openspec:proposal`, `/openspec:apply`, `/openspec:archive` |
94-
| **CodeBuddy** | `/openspec:proposal`, `/openspec:apply`, `/openspec:archive` (`.codebuddy/commands/`) |
94+
| **CodeBuddy Code (CLI)** | `/openspec:proposal`, `/openspec:apply`, `/openspec:archive` (`.codebuddy/commands/`) — see [docs](https://www.codebuddy.ai/cli) |
9595
| **Cursor** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` |
9696
| **Cline** | Rules in `.clinerules/` directory (`.clinerules/openspec-*.md`) |
9797
| **Factory Droid** | `/openspec-proposal`, `/openspec-apply`, `/openspec-archive` (`.factory/commands/`) |

openspec-parallel-merge-plan.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ _Outcome:_ We prevent data loss immediately while we work on a richer merge stor
4949
- On conflict, write conflict markers inside the change delta (similar to Git) and require the author to hand-edit before re-running validation.
5050
2. **Enrich validator messages.**
5151
- `openspec validate` should flag unresolved conflict markers or fingerprint mismatches so errors appear early in the workflow.
52-
3. **Improve diff tooling.**
53-
- Extend `openspec diff` to compare change deltas against the live spec and highlight pending merges.
54-
4. **Optional:** Offer a `--rewrite-scenarios` helper that merges bullet lists of scenarios to reduce manual editing noise.
52+
3. **Optional:** Offer a `--rewrite-scenarios` helper that merges bullet lists of scenarios to reduce manual editing noise.
5553

5654
_Outcome:_ Contributors can safely reconcile their work with the latest spec before archiving, restoring true parallel development.
5755

openspec/AGENTS.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ After deployment, create separate PR to:
9595
openspec list # List active changes
9696
openspec list --specs # List specifications
9797
openspec show [item] # Display change or spec
98-
openspec diff [change] # Show spec differences
9998
openspec validate [item] # Validate changes or specs
10099
openspec archive <change-id> [--yes|-y] # Archive after deployment (add --yes for non-interactive runs)
101100

@@ -448,7 +447,6 @@ Only add complexity with:
448447
```bash
449448
openspec list # What's in progress?
450449
openspec show [item] # View details
451-
openspec diff [change] # What's changing?
452450
openspec validate --strict # Is it correct?
453451
openspec archive <change-id> [--yes|-y] # Mark complete (add --yes for automation)
454452
```

openspec/changes/add-cline-support/specs/cli-init/spec.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

openspec/changes/add-crush-support/specs/cli-init/spec.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

openspec/changes/add-archive-command-arguments/proposal.md renamed to openspec/changes/archive/2025-10-22-add-archive-command-arguments/proposal.md

File renamed without changes.

openspec/changes/add-archive-command-arguments/specs/cli-update/spec.md renamed to openspec/changes/archive/2025-10-22-add-archive-command-arguments/specs/cli-update/spec.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ The update command SHALL refresh existing slash command files for configured too
1111
- **AND** ensure templates include instructions for the relevant workflow stage
1212
- **AND** ensure the archive command includes `$ARGUMENTS` placeholder in frontmatter for accepting change ID arguments
1313

14-
## ADDED Requirements
15-
1614
### Requirement: Archive Command Argument Support
1715
The archive slash command template SHALL support optional change ID arguments for tools that support `$ARGUMENTS` placeholder.
1816

openspec/changes/add-archive-command-arguments/tasks.md renamed to openspec/changes/archive/2025-10-22-add-archive-command-arguments/tasks.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,3 @@
1313
## 3. Update Documentation
1414
- [x] 3.1 Update AGENTS.md archive examples to show argument usage
1515
- [x] 3.2 Document that OpenCode now supports `/openspec:archive <change-id>`
16-
17-
## 4. Validation and Testing
18-
- [ ] 4.1 Run `openspec update` to regenerate OpenCode slash commands
19-
- [ ] 4.2 Manually test with OpenCode using `/openspec:archive <change-id>`
20-
- [ ] 4.3 Test backward compatibility (archive command without arguments)
21-
- [ ] 4.4 Run `openspec validate --strict` to ensure no issues

openspec/changes/add-cline-support/proposal.md renamed to openspec/changes/archive/2025-10-22-add-cline-support/proposal.md

File renamed without changes.
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
## MODIFIED Requirements
2+
### Requirement: AI Tool Configuration Details
3+
4+
The command SHALL properly configure selected AI tools with OpenSpec-specific instructions using a marker system.
5+
6+
#### Scenario: Configuring Claude Code
7+
8+
- **WHEN** Claude Code is selected
9+
- **THEN** create or update `CLAUDE.md` in the project root directory (not inside openspec/)
10+
- **AND** populate the managed block with a short stub that points teammates to `@/openspec/AGENTS.md`
11+
12+
#### Scenario: Configuring CodeBuddy Code
13+
14+
- **WHEN** CodeBuddy Code is selected
15+
- **THEN** create or update `CODEBUDDY.md` in the project root directory (not inside openspec/)
16+
- **AND** populate the managed block with a short stub that points teammates to `@/openspec/AGENTS.md`
17+
18+
#### Scenario: Configuring Cline
19+
20+
- **WHEN** Cline is selected
21+
- **THEN** create or update `CLINE.md` in the project root directory (not inside openspec/)
22+
- **AND** populate the managed block with a short stub that points teammates to `@/openspec/AGENTS.md`
23+
24+
#### Scenario: Creating new CLAUDE.md
25+
26+
- **WHEN** CLAUDE.md does not exist
27+
- **THEN** create new file with stub instructions wrapped in markers so the full workflow stays in `openspec/AGENTS.md`:
28+
```markdown
29+
<!-- OPENSPEC:START -->
30+
# OpenSpec Instructions
31+
32+
This project uses OpenSpec to manage AI assistant workflows.
33+
34+
- Full guidance lives in '@/openspec/AGENTS.md'.
35+
- Keep this managed block so 'openspec update' can refresh the instructions.
36+
<!-- OPENSPEC:END -->
37+
```
38+
39+
### Requirement: Slash Command Configuration
40+
The init command SHALL generate slash command files for supported editors using shared templates.
41+
42+
#### Scenario: Generating slash commands for Claude Code
43+
- **WHEN** the user selects Claude Code during initialization
44+
- **THEN** create `.claude/commands/openspec/proposal.md`, `.claude/commands/openspec/apply.md`, and `.claude/commands/openspec/archive.md`
45+
- **AND** populate each file from shared templates so command text matches other tools
46+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
47+
48+
#### Scenario: Generating slash commands for CodeBuddy Code
49+
- **WHEN** the user selects CodeBuddy Code during initialization
50+
- **THEN** create `.codebuddy/commands/openspec/proposal.md`, `.codebuddy/commands/openspec/apply.md`, and `.codebuddy/commands/openspec/archive.md`
51+
- **AND** populate each file from shared templates so command text matches other tools
52+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
53+
54+
#### Scenario: Generating slash commands for Cline
55+
- **WHEN** the user selects Cline during initialization
56+
- **THEN** create `.clinerules/openspec-proposal.md`, `.clinerules/openspec-apply.md`, and `.clinerules/openspec-archive.md`
57+
- **AND** populate each file from shared templates so command text matches other tools
58+
- **AND** include Cline-specific Markdown heading frontmatter
59+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
60+
61+
#### Scenario: Generating slash commands for Cursor
62+
- **WHEN** the user selects Cursor during initialization
63+
- **THEN** create `.cursor/commands/openspec-proposal.md`, `.cursor/commands/openspec-apply.md`, and `.cursor/commands/openspec-archive.md`
64+
- **AND** populate each file from shared templates so command text matches other tools
65+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
66+
67+
#### Scenario: Generating slash commands for OpenCode
68+
- **WHEN** the user selects OpenCode during initialization
69+
- **THEN** create `.opencode/commands/openspec-proposal.md`, `.opencode/commands/openspec-apply.md`, and `.opencode/commands/openspec-archive.md`
70+
- **AND** populate each file from shared templates so command text matches other tools
71+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
72+
73+
#### Scenario: Generating slash commands for Windsurf
74+
- **WHEN** the user selects Windsurf during initialization
75+
- **THEN** create `.windsurf/workflows/openspec-proposal.md`, `.windsurf/workflows/openspec-apply.md`, and `.windsurf/workflows/openspec-archive.md`
76+
- **AND** populate each file from shared templates (wrapped in OpenSpec markers) so workflow text matches other tools
77+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
78+
79+
#### Scenario: Generating slash commands for Kilo Code
80+
- **WHEN** the user selects Kilo Code during initialization
81+
- **THEN** create `.kilocode/workflows/openspec-proposal.md`, `.kilocode/workflows/openspec-apply.md`, and `.kilocode/workflows/openspec-archive.md`
82+
- **AND** populate each file from shared templates (wrapped in OpenSpec markers) so workflow text matches other tools
83+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage
84+
85+
#### Scenario: Generating slash commands for Codex
86+
- **WHEN** the user selects Codex during initialization
87+
- **THEN** create global prompt files at `~/.codex/prompts/openspec-proposal.md`, `~/.codex/prompts/openspec-apply.md`, and `~/.codex/prompts/openspec-archive.md` (or under `$CODEX_HOME/prompts` if set)
88+
- **AND** populate each file from shared templates that map the first numbered placeholder (`$1`) to the primary user input (e.g., change identifier or question text)
89+
- **AND** wrap the generated content in OpenSpec markers so `openspec update` can refresh the prompts without touching surrounding custom notes
90+
91+
#### Scenario: Generating slash commands for GitHub Copilot
92+
- **WHEN** the user selects GitHub Copilot during initialization
93+
- **THEN** create `.github/prompts/openspec-proposal.prompt.md`, `.github/prompts/openspec-apply.prompt.md`, and `.github/prompts/openspec-archive.prompt.md`
94+
- **AND** populate each file with YAML frontmatter containing a `description` field that summarizes the workflow stage
95+
- **AND** include `$ARGUMENTS` placeholder to capture user input
96+
- **AND** wrap the shared template body with OpenSpec markers so `openspec update` can refresh the content
97+
- **AND** each template includes instructions for the relevant OpenSpec workflow stage

0 commit comments

Comments
 (0)