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.
2.0 KiB
2.0 KiB
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/containsopenspec-proposal.md,openspec-apply.md, andopenspec-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
$ARGUMENTSplaceholder 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:archivewithout 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
$ARGUMENTSplaceholder 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