openspec-archive-change

Par chorus-aidlc · chorus

Archiver un changement terminé dans le workflow expérimental. À utiliser lorsque l'utilisateur souhaite finaliser et archiver un changement une fois l'implémentation terminée.

npx skills add https://github.com/chorus-aidlc/chorus --skill openspec-archive-change

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

  1. Si aucun nom de changement fourni, demander une sélection

    Exécutez openspec list --json pour 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.

  2. Vérifier l'état d'achèvement des artefacts

    Exécutez openspec status --change "<name>" --json pour vérifier l'achèvement des artefacts.

    Analysez le JSON pour comprendre :

    • schemaName : Le workflow utilisé
    • artifacts : Liste des artefacts avec leur statut (done ou 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
  3. 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.

  4. É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.

  5. Effectuer l'archivage

    Créez le répertoire d'archive s'il n'existe pas :

    mkdir -p openspec/changes/archive

    Gé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>
  6. 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

Skills similaires