mirror of
https://github.com/Fission-AI/OpenSpec.git
synced 2026-09-14 20:16:53 +08:00
810f12fd43
Add $ARGUMENTS placeholder to the /openspec:archive slash command to allow explicit change ID specification, improving safety and matching CLI behavior. Changes: - Add $ARGUMENTS to archive command frontmatter in OpenCode configurator - Update archive command template with argument validation steps - Add rewriteArchiveFile method to handle managed section updates - Update AGENTS.md documentation for archive command usage This change makes it possible for users to run `/openspec:archive <change-id>` instead of relying on context inference, reducing the risk of archiving the wrong change.
35 lines
2.0 KiB
Markdown
35 lines
2.0 KiB
Markdown
# CLI Update Specification Delta
|
|
|
|
## MODIFIED Requirements
|
|
|
|
### Requirement: Slash Command Updates
|
|
The update command SHALL refresh existing slash command files for configured tools without creating new ones, and ensure the OpenCode archive command accepts change ID arguments.
|
|
|
|
#### Scenario: Updating slash commands for OpenCode
|
|
- **WHEN** `.opencode/command/` contains `openspec-proposal.md`, `openspec-apply.md`, and `openspec-archive.md`
|
|
- **THEN** refresh each file using shared templates
|
|
- **AND** ensure templates include instructions for the relevant workflow stage
|
|
- **AND** ensure the archive command includes `$ARGUMENTS` placeholder in frontmatter for accepting change ID arguments
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: Archive Command Argument Support
|
|
The archive slash command template SHALL support optional change ID arguments for tools that support `$ARGUMENTS` placeholder.
|
|
|
|
#### Scenario: Archive command with change ID argument
|
|
- **WHEN** a user invokes `/openspec:archive <change-id>` with a change ID
|
|
- **THEN** the template SHALL instruct the AI to validate the provided change ID against `openspec list`
|
|
- **AND** use the provided change ID for archiving if valid
|
|
- **AND** fail fast if the provided change ID doesn't match an archivable change
|
|
|
|
#### Scenario: Archive command without argument (backward compatibility)
|
|
- **WHEN** a user invokes `/openspec:archive` without providing a change ID
|
|
- **THEN** the template SHALL instruct the AI to identify the change ID from context or by running `openspec list`
|
|
- **AND** proceed with the existing behavior (maintaining backward compatibility)
|
|
|
|
#### Scenario: OpenCode archive template generation
|
|
- **WHEN** generating the OpenCode archive slash command file
|
|
- **THEN** include the `$ARGUMENTS` placeholder in the frontmatter
|
|
- **AND** wrap it in a clear structure like `<ChangeId>\n $ARGUMENTS\n</ChangeId>` to indicate the expected argument
|
|
- **AND** include validation steps in the template body to check if the change ID is valid
|