gh-create-issue

Par cherryhq · cherry-studio

À utiliser quand l'utilisateur souhaite créer une issue GitHub pour le dépôt courant. Doit lire et suivre le format du template d'issue du dépôt.

npx skills add https://github.com/cherryhq/cherry-studio --skill gh-create-issue

Créer une Issue GitHub

Utilisez cette compétence quand l'utilisateur demande de créer une issue. Vous devez respecter le format de modèle d'issue du repository.

Workflow

Étape 1 : Déterminer le type de modèle

Analysez la demande de l'utilisateur pour déterminer le type d'issue :

  • Si l'utilisateur décrit un problème, une erreur, un crash ou quelque chose qui ne fonctionne pas -> Bug Report
  • Si l'utilisateur demande une nouvelle fonctionnalité, une amélioration ou un support supplémentaire -> Feature Request
  • Si l'utilisateur pose une question ou a besoin d'aide -> Questions & Discussion
  • Sinon -> Others

En cas de doute, demandez à l'utilisateur quel modèle utiliser. Ne passez pas par défaut à « Others » de votre propre initiative.

Étape 2 : Lire le modèle sélectionné

  1. Lisez le fichier de modèle correspondant depuis le répertoire .github/ISSUE_TEMPLATE/.
  2. Identifiez les champs obligatoires (validations.required: true), le préfixe de titre (title) et les labels (labels, s'il y en a).

Étape 3 : Collecter les informations

En fonction du modèle sélectionné, demandez à l'utilisateur uniquement les informations requises. Respectez les champs obligatoires du modèle et les contraintes d'options (par exemple, les choix de Platform et Priority).

Étape 4 : Construire et prévisualiser le contenu de l'issue

Créez un fichier temporaire et écrivez le contenu de l'issue :

  • Utilisez issue_body_file="$(mktemp /tmp/gh-issue-body-XXXXXX).md"
  • Utilisez exactement le préfixe de titre du modèle sélectionné.
  • Remplissez le contenu en suivant la structure et l'ordre des sections du modèle.
  • Appliquez les labels exactement comme définis par le modèle.
  • Conservez tous les labels s'il y en a plusieurs.
  • Si le modèle n'a pas de labels, n'ajoutez pas de labels personnalisés.

Prévisualisez le contenu du fichier temporaire. Affichez le chemin du fichier (par ex. /tmp/gh-issue-body-XXXXXX.md) et demandez une confirmation avant de créer. Ignorez cette étape si l'utilisateur indique explicitement qu'aucune prévisualisation/confirmation n'est nécessaire (par exemple, pour les workflows d'automatisation).

Étape 5 : Créer l'issue

Utilisez la commande gh issue create pour créer l'issue.

Utilisez un fichier temporaire unique pour le body :

issue_body_file="$(mktemp /tmp/gh-issue-body-XXXXXX).md"
cat > "$issue_body_file" <<'EOF'
...contenu de l'issue construit à partir du modèle sélectionné...
EOF

Créez l'issue en utilisant les valeurs du modèle sélectionné :

gh issue create --title "<title_avec_préfixe_du_modèle>" --body-file "$issue_body_file"

Si le modèle sélectionné inclut des labels, ajoutez un --label par label :

gh issue create --title "<title_avec_préfixe_du_modèle>" --body-file "$issue_body_file" --label "<label_1_du_modèle>" --label "<label_2_du_modèle>"

Si le modèle n'a pas de labels, ne passez pas --label.

Vous pouvez utiliser --template comme point de départ (utilisez exactement le nom du modèle du repository) :

gh issue create --template "<nom_du_modèle>"

Utilisez le flag --web pour ouvrir la page de création dans le navigateur quand un formatage complexe est nécessaire :

gh issue create --web

Nettoyez le fichier temporaire après création :

rm -f "$issue_body_file"

Notes

  • Vous devez lire les fichiers de modèle sous .github/ISSUE_TEMPLATE/ pour vous assurer que vous suivez le format correct.
  • Traitez les fichiers de modèle comme la seule source de vérité. Ne codez pas en dur les préfixes de titre ou les labels dans cette compétence.
  • Le titre doit être clair et concis, évitez les termes vagues comme « une suggestion » ou « bloqué ».
  • Fournissez autant de détails que possible pour aider les développeurs à comprendre et à résoudre l'issue.
  • Si l'utilisateur ne spécifie pas de type de modèle, demandez-lui d'en choisir un d'abord.

Skills similaires