Archiver un changement terminé dans le workflow expérimental.
Entrée : Spécifiez optionnellement un nom de changement. S'il est omis, vérifiez s'il peut être déduit du contexte de la conversation. Si vague ou ambigu, vous DEVEZ demander les changements disponibles.
Étapes
-
Si aucun nom de changement fourni, demander une sélection
Exécutez
openspec list --jsonpour obtenir les changements disponibles. Utilisez l'outil AskUserQuestion pour laisser l'utilisateur sélectionner.N'affichez que les changements actifs (non encore archivés). Incluez le schéma utilisé pour chaque changement si disponible.
IMPORTANT : Ne devinez PAS et ne présélectionnez PAS un changement. Laissez toujours l'utilisateur choisir.
-
Vérifier l'état d'achèvement des artefacts
Exécutez
openspec status --change "<name>" --jsonpour vérifier l'achèvement des artefacts.Analysez le JSON pour comprendre :
schemaName: Le workflow utiliséartifacts: Liste des artefacts avec leur statut (doneou autre)
Si des artefacts ne sont pas
done:- Afficher un avertissement listant les artefacts incomplets
- Utiliser l'outil AskUserQuestion pour confirmer que l'utilisateur veut procéder
- Procéder si l'utilisateur confirme
-
Vérifier l'état d'achèvement des tâches
Lisez le fichier des tâches (généralement
tasks.md) pour vérifier les tâches incomplètes.Comptez les tâches marquées avec
- [ ](incomplètes) vs- [x](complètes).Si des tâches incomplètes sont trouvées :
- Afficher un avertissement montrant le nombre de tâches incomplètes
- Utiliser l'outil AskUserQuestion pour confirmer que l'utilisateur veut procéder
- Procéder si l'utilisateur confirme
Si aucun fichier de tâches n'existe : Procéder sans avertissement lié aux tâches.
-
Évaluer l'état de synchronisation des delta specs
Vérifiez la présence de delta specs à
openspec/changes/<name>/specs/. S'il n'en existe pas, procédez sans demande de synchronisation.Si des delta specs existent :
- Comparez chaque delta spec avec son spec principal correspondant à
openspec/specs/<capability>/spec.md - Déterminez quels changements seraient appliqués (ajouts, modifications, suppressions, renommages)
- Afficher un résumé combiné avant de demander
Options de la demande :
- Si des changements sont nécessaires : « Synchroniser maintenant (recommandé) », « Archiver sans synchroniser »
- Si déjà synchronisé : « Archiver maintenant », « Synchroniser quand même », « Annuler »
Si l'utilisateur choisit de synchroniser, utilisez l'outil Task (subagent_type: "general-purpose", prompt: "Use Skill tool to invoke openspec-sync-specs for change '<name>'. Delta spec analysis: <inclure le résumé d'analyse des delta specs>"). Procédez à l'archivage quel que soit le choix.
- Comparez chaque delta spec avec son spec principal correspondant à
-
Effectuer l'archivage
Créez le répertoire d'archive s'il n'existe pas :
mkdir -p openspec/changes/archiveGénérez le nom cible en utilisant la date actuelle :
YYYY-MM-DD-<change-name>Vérifiez si la cible existe déjà :
- Si oui : Échouer avec une erreur, suggérer de renommer l'archive existante ou d'utiliser une date différente
- Si non : Déplacer le répertoire de changement vers l'archive
mv openspec/changes/<name> openspec/changes/archive/YYYY-MM-DD-<name> -
Afficher le résumé
Affichez un résumé d'achèvement de l'archivage incluant :
- Nom du changement
- Schéma utilisé
- Emplacement d'archive
- Si les specs ont été synchronisées (le cas échéant)
- Note sur les avertissements éventuels (artefacts/tâches incomplets)
Sortie En Cas De Succès
## Archivage Terminé
**Changement :** <change-name>
**Schéma :** <schema-name>
**Archivé vers :** openspec/changes/archive/YYYY-MM-DD-<name>/
**Specs :** ✓ Synchronisés avec les specs principaux (ou « Aucune delta spec » ou « Synchronisation ignorée »)
Tous les artefacts sont complets. Toutes les tâches sont complètes.
Garde-fous
- Demandez toujours la sélection du changement s'il n'est pas fourni
- Utilisez le graphe d'artefacts (openspec status --json) pour vérifier l'achèvement
- Ne bloquez pas l'archivage sur les avertissements - informez et confirmez simplement
- Préservez .openspec.yaml lors du déplacement vers l'archive (il se déplace avec le répertoire)
- Affichez un résumé clair de ce qui s'est passé
- Si la synchronisation est demandée, utilisez l'approche openspec-sync-specs (pilotée par agent)
- Si des delta specs existent, exécutez toujours l'évaluation de synchronisation et affichez le résumé combiné avant de demander