openspec-propose

Par chorus-aidlc · chorus

Proposez un nouveau changement avec tous les artefacts générés en une seule étape. À utiliser quand l'utilisateur veut décrire rapidement ce qu'il souhaite construire et obtenir une proposition complète avec design, spécifications et tâches prêtes à l'implémentation.

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

Proposer une nouvelle modification - créer la modification et générer tous les artefacts en une seule étape.

Je créerai une modification avec des artefacts :

  • proposal.md (quoi et pourquoi)
  • design.md (comment)
  • tasks.md (étapes de mise en œuvre)

Quand prêt à implémenter, exécutez /opsx:apply


Entrée : La requête de l'utilisateur doit inclure un nom de modification (kebab-case) OU une description de ce qu'il souhaite construire.

Étapes

  1. Si aucune entrée claire fournie, demander ce qu'il souhaite construire

    Utiliser l'outil AskUserQuestion (question ouverte, sans options prédéfinies) pour demander :

    "Quelle modification souhaitez-vous réaliser ? Décrivez ce que vous voulez construire ou corriger."

    À partir de leur description, dériver un nom en kebab-case (ex. : "ajouter authentification utilisateur" → add-user-auth).

    IMPORTANT : Ne pas procéder sans comprendre ce que l'utilisateur souhaite construire.

  2. Créer le répertoire de modification

    openspec new change "<name>"

    Cela crée une modification échafaudée à openspec/changes/<name>/ avec .openspec.yaml.

  3. Obtenir l'ordre de création des artefacts

    openspec status --change "<name>" --json

    Parser le JSON pour obtenir :

    • applyRequires : tableau des IDs d'artefacts nécessaires avant la mise en œuvre (ex. : ["tasks"])
    • artifacts : liste de tous les artefacts avec leur statut et dépendances
  4. Créer les artefacts en séquence jusqu'à être prêt pour l'application

    Utiliser l'outil TodoWrite pour suivre la progression à travers les artefacts.

    Boucler à travers les artefacts dans l'ordre des dépendances (artefacts sans dépendances en attente d'abord) :

    a. Pour chaque artefact qui est ready (dépendances satisfaites) :

    • Obtenir les instructions :
      openspec instructions <artifact-id> --change "<name>" --json
    • Le JSON des instructions inclut :
      • context : Contexte du projet (contraintes pour vous - N'PAS inclure dans la sortie)
      • rules : Règles spécifiques à l'artefact (contraintes pour vous - N'PAS inclure dans la sortie)
      • template : La structure à utiliser pour votre fichier de sortie
      • instruction : Guidance spécifique au schéma pour ce type d'artefact
      • outputPath : Où écrire l'artefact
      • dependencies : Artefacts complétés à lire pour le contexte
    • Lire les fichiers de dépendances complétées pour le contexte
    • Créer le fichier d'artefact en utilisant template comme structure
    • Appliquer context et rules comme contraintes - mais ne PAS les copier dans le fichier
    • Afficher un bref progrès : "Créé <artifact-id>"

    b. Continuer jusqu'à ce que tous les artefacts applyRequires soient complets

    • Après avoir créé chaque artefact, réexécuter openspec status --change "<name>" --json
    • Vérifier que chaque ID d'artefact dans applyRequires a status: "done" dans le tableau artifacts
    • Arrêter quand tous les artefacts applyRequires sont terminés

    c. Si un artefact nécessite une entrée utilisateur (contexte peu clair) :

    • Utiliser l'outil AskUserQuestion pour clarifier
    • Puis continuer avec la création
  5. Afficher le statut final

    openspec status --change "<name>"

Sortie

Après la réalisation de tous les artefacts, résumer :

  • Nom et emplacement de la modification
  • Liste des artefacts créés avec brèves descriptions
  • Ce qui est prêt : "Tous les artefacts créés ! Prêt pour la mise en œuvre."
  • Prompt : "Exécutez /opsx:apply ou demandez-moi d'implémenter pour commencer à travailler sur les tâches."

Directives de création d'artefacts

  • Suivre le champ instruction depuis openspec instructions pour chaque type d'artefact
  • Le schéma définit ce que chaque artefact doit contenir - le suivre
  • Lire les artefacts de dépendances pour le contexte avant de créer de nouveaux
  • Utiliser template comme structure pour votre fichier de sortie - remplir ses sections
  • IMPORTANT : context et rules sont des contraintes pour VOUS, pas du contenu pour le fichier
    • Ne PAS copier les blocs <context>, <rules>, <project_context> dans l'artefact
    • Ceux-ci guident ce que vous écrivez, mais ne doivent jamais apparaître dans la sortie

Garde-fous

  • Créer TOUS les artefacts nécessaires pour la mise en œuvre (tels que définis par apply.requires du schéma)
  • Toujours lire les artefacts de dépendances avant d'en créer un nouveau
  • Si le contexte est critiquement peu clair, demander à l'utilisateur - mais préférer prendre des décisions raisonnables pour maintenir l'élan
  • Si une modification avec ce nom existe déjà, demander si l'utilisateur souhaite la continuer ou en créer une nouvelle
  • Vérifier que chaque fichier d'artefact existe après écriture avant de procéder au suivant

Skills similaires