mirror of
https://github.com/Fission-AI/OpenSpec.git
synced 2026-09-14 20:16:53 +08:00
63b8a3e9f9
* feat: add argument support to archive slash command 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. * refactor: improve archive slash command argument handling instructions Update the archive slash command template to provide clearer guidance on how to handle change IDs from arguments versus conversation context. The new instructions better distinguish between explicit argument-provided IDs and contextual references, and provide more explicit failure modes.
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
|