更新openspec
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 4m48s

This commit is contained in:
2026-01-27 10:03:49 +08:00
parent 477a9fc98d
commit 5a179ba16b
27 changed files with 2537 additions and 710 deletions

View File

@@ -1,5 +1,5 @@
---
name: OPSX: Archive
name: "OPSX: Archive"
description: Archive a completed change in the experimental workflow
category: Workflow
tags: [workflow, archive, experimental]
@@ -7,7 +7,7 @@ tags: [workflow, archive, experimental]
Archive a completed change in the experimental workflow.
**Input**: Optionally specify `--change <name>` after `/opsx:archive`. If omitted, MUST prompt for available changes.
**Input**: Optionally specify a change name after `/opsx:archive` (e.g., `/opsx:archive add-auth`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
**Steps**
@@ -46,38 +46,20 @@ Archive a completed change in the experimental workflow.
**If no tasks file exists:** Proceed without task-related warning.
4. **Check if delta specs need syncing**
4. **Assess delta spec sync state**
Check if `specs/` directory exists in the change with spec files.
Check for delta specs at `openspec/changes/<name>/specs/`. If none exist, proceed without sync prompt.
**If delta specs exist, perform a quick sync check:**
**If delta specs exist:**
- Compare each delta spec with its corresponding main spec at `openspec/specs/<capability>/spec.md`
- Determine what changes would be applied (adds, modifications, removals, renames)
- Show a combined summary before prompting
a. **For each delta spec** at `openspec/changes/<name>/specs/<capability>/spec.md`:
- Extract requirement names (lines matching `### Requirement: <name>`)
- Note which sections exist (ADDED, MODIFIED, REMOVED)
**Prompt options:**
- If changes needed: "Sync now (recommended)", "Archive without syncing"
- If already synced: "Archive now", "Sync anyway", "Cancel"
b. **Check corresponding main spec** at `openspec/specs/<capability>/spec.md`:
- If main spec doesn't exist → needs sync
- If main spec exists, check if ADDED requirement names appear in it
- If any ADDED requirements are missing from main spec → needs sync
c. **Report findings:**
**If sync needed:**
```
⚠️ Delta specs may not be synced:
- specs/auth/spec.md → Main spec missing requirement "Token Refresh"
- specs/api/spec.md → Main spec doesn't exist yet
Would you like to sync now before archiving?
```
- Use **AskUserQuestion tool** with options: "Sync now", "Archive without syncing"
- If user chooses sync, execute `/opsx:sync` logic
**If already synced (all requirements found):**
- Proceed without prompting (specs appear to be in sync)
**If no delta specs exist:** Proceed without sync-related checks.
If user chooses sync, execute `/opsx:sync` logic. Proceed to archive regardless of choice.
5. **Perform the archive**
@@ -102,7 +84,7 @@ Archive a completed change in the experimental workflow.
- Change name
- Schema that was used
- Archive location
- Spec sync status (synced / not synced / no delta specs)
- Spec sync status (synced / sync skipped / no delta specs)
- Note about any warnings (incomplete artifacts/tasks)
**Output On Success**
@@ -139,12 +121,12 @@ All artifacts complete. All tasks complete.
**Change:** <change-name>
**Schema:** <schema-name>
**Archived to:** openspec/changes/archive/YYYY-MM-DD-<name>/
**Specs:** ⚠️ Not synced
**Specs:** Sync skipped (user chose to skip)
**Warnings:**
- Archived with 2 incomplete artifacts
- Archived with 3 incomplete tasks
- Delta specs were not synced (user chose to skip)
- Delta spec sync was skipped (user chose to skip)
Review the archive if this was not intentional.
```
@@ -170,6 +152,6 @@ Target archive directory already exists.
- Use artifact graph (openspec status --json) for completion checking
- Don't block archive on warnings - just inform and confirm
- Preserve .openspec.yaml when moving to archive (it moves with the directory)
- Quick sync check: look for requirement names in delta specs, verify they exist in main specs
- Show clear summary of what happened
- If sync is requested, use /opsx:sync approach (agent-driven)
- If delta specs exist, always run the sync assessment and show the combined summary before prompting