create-github-action-workflow-specification

Par github · awesome-copilot

Créez une spécification formelle pour un workflow GitHub Actions CI/CD existant, optimisée pour la consommation par IA et la maintenance du workflow.

npx skills add https://github.com/github/awesome-copilot --skill create-github-action-workflow-specification

Créer une spécification GitHub Actions Workflow

Créez une spécification complète pour le workflow GitHub Actions : ${input:WorkflowFile}.

Cette spécification sert de spécification pour le comportement, les exigences et les contraintes du workflow. Elle doit être indépendante de l'implémentation, en se concentrant sur ce que le workflow accomplit plutôt que sur comment il est implémenté.

Exigences optimisées pour l'IA

  • Efficacité en tokens : Utiliser un langage concis sans sacrifier la clarté
  • Données structurées : Tirer parti des tableaux, listes et diagrammes pour l'information dense
  • Clarté sémantique : Utiliser une terminologie précise et cohérente
  • Abstraction d'implémentation : Éviter les syntaxes, commandes ou versions d'outils spécifiques
  • Maintenabilité : Concevoir pour des mises à jour faciles à mesure que le workflow évolue

Modèle de spécification

Enregistrer sous : /spec/spec-process-cicd-[nom-workflow].md

---
title: Spécification CI/CD Workflow - [Nom du Workflow]
version: 1.0
date_created: [YYYY-MM-DD]
last_updated: [YYYY-MM-DD]
owner: DevOps Team
tags: [process, cicd, github-actions, automation, [domaine-tags]]
---

## Aperçu du Workflow

**Objectif** : [Une phrase décrivant l'objectif principal du workflow]
**Événements de déclenchement** : [Lister les conditions de déclenchement]
**Environnements cibles** : [Portée environnementale]

## Diagramme de flux d'exécution

```mermaid
graph TD
    A[Trigger Event] --> B[Job 1]
    B --> C[Job 2]
    C --> D[Job 3]
    D --> E[End]

    B --> F[Parallel Job]
    F --> D

    style A fill:#e1f5fe
    style E fill:#e8f5e8

Jobs et dépendances

Nom du Job Objectif Dépendances Contexte d'exécution
job-1 [Objectif] [Prérequis] [Runner/Environnement]
job-2 [Objectif] job-1 [Runner/Environnement]

Matrice d'exigences

Exigences fonctionnelles

ID Exigence Priorité Critères d'acceptation
REQ-001 [Exigence] Haute [Critères testables]
REQ-002 [Exigence] Moyenne [Critères testables]

Exigences de sécurité

ID Exigence Contrainte d'implémentation
SEC-001 [Exigence de sécurité] [Description contrainte]

Exigences de performance

ID Métrique Cible Méthode de mesure
PERF-001 [Métrique] [Valeur cible] [Comment mesurer]

Contrats entrée/sortie

Entrées

# Variables d'environnement
ENV_VAR_1: string  # Objectif : [description]
ENV_VAR_2: secret  # Objectif : [description]

# Déclencheurs de repository
paths: [liste de filtres de chemin]
branches: [liste de patterns de branche]

Sorties

# Sorties de job
job_1_output: string  # Description : [objectif]
build_artifact: file  # Description : [type contenu]

Secrets et variables

Type Nom Objectif Portée
Secret SECRET_1 [Objectif] Workflow
Variable VAR_1 [Objectif] Repository

Contraintes d'exécution

Contraintes runtime

  • Timeout : [Temps d'exécution maximal]
  • Concurrence : [Limites d'exécution parallèle]
  • Limites de ressources : [Contraintes mémoire/CPU]

Contraintes environnementales

  • Exigences du runner : [Besoins OS/matériel]
  • Accès réseau : [Besoins de connectivité externe]
  • Permissions : [Niveaux d'accès requis]

Stratégie de gestion des erreurs

Type d'erreur Réponse Action de récupération
Échec de build [Réponse] [Étapes de récupération]
Échec de test [Réponse] [Étapes de récupération]
Échec de déploiement [Réponse] [Étapes de récupération]

Portes de qualité

Définitions des portes

Porte Critères Conditions de contournement
Qualité du code [Normes] [Quand autorisé]
Scan sécurité [Seuils] [Quand autorisé]
Couverture de test [Pourcentage] [Quand autorisé]

Monitoring et observabilité

Métriques clés

  • Taux de succès : [Pourcentage cible]
  • Temps d'exécution : [Durée cible]
  • Utilisation des ressources : [Approche monitoring]

Alerting

Condition Sévérité Cible de notification
[Condition] [Niveau] [Qui/Où]

Points d'intégration

Systèmes externes

Système Type d'intégration Échange de données Exigences SLA
[Système] [Type] [Format de données] [Exigences]

Workflows dépendants

Workflow Relation Mécanisme de déclenchement
[Workflow] [Type] [Comment déclenché]

Conformité et gouvernance

Exigences d'audit

  • Journaux d'exécution : [Politique de rétention]
  • Portes d'approbation : [Approbations requises]
  • Contrôle des changements : [Processus de mise à jour]

Contrôles de sécurité

  • Contrôle d'accès : [Modèle de permission]
  • Gestion des secrets : [Politique de rotation]
  • Scan de vulnérabilité : [Fréquence de scan]

Cas limites et exceptions

Matrice de scénarios

Scénario Comportement attendu Méthode de validation
[Cas limite] [Comportement] [Comment vérifier]

Critères de validation

Validation du workflow

  • VLD-001 : [Règle de validation]
  • VLD-002 : [Règle de validation]

Benchmarks de performance

  • PERF-001 : [Critères de benchmark]
  • PERF-002 : [Critères de benchmark]

Gestion des changements

Processus de mise à jour

  1. Mise à jour de spécification : Modifier d'abord ce document
  2. Révision et approbation : [Processus d'approbation]
  3. Implémentation : Appliquer les changements au workflow
  4. Tests : [Approche de validation]
  5. Déploiement : [Processus de release]

Historique des versions

Version Date Changements Auteur
1.0 [Date] Spécification initiale [Auteur]

Spécifications connexes

  • [Lien vers specs de workflows connexes]
  • [Lien vers specs d'infrastructure]
  • [Lien vers specs de déploiement]

## Instructions d'analyse

Lors de l'analyse du fichier de workflow :

1. **Extraire l'objectif principal** : Identifier l'objectif métier primaire
2. **Mapper le flux de jobs** : Créer un graphe de dépendances montrant l'ordre d'exécution
3. **Identifier les contrats** : Documenter les entrées, sorties et interfaces
4. **Capturer les contraintes** : Extraire les timeouts, permissions et limites
5. **Définir les portes de qualité** : Identifier les points de validation et approbation
6. **Documenter les chemins d'erreur** : Mapper les scénarios d'échec et récupération
7. **Abstraire l'implémentation** : Se concentrer sur le comportement, pas la syntaxe

## Directives de diagramme Mermaid

### Types de flux
- **Séquentiel** : `A --> B --> C`
- **Parallèle** : `A --> B & A --> C; B --> D & C --> D`
- **Conditionnel** : `A --> B{Decision}; B -->|Yes| C; B -->|No| D`

### Styles
```mermaid
style TriggerNode fill:#e1f5fe
style SuccessNode fill:#e8f5e8
style FailureNode fill:#ffebee
style ProcessNode fill:#f3e5f5

Workflows complexes

Pour les workflows avec 5+ jobs, utiliser les subgraphes :

graph TD
    subgraph "Build Phase"
        A[Lint] --> B[Test] --> C[Build]
    end
    subgraph "Deploy Phase"  
        D[Staging] --> E[Production]
    end
    C --> D

Stratégies d'optimisation des tokens

  1. Utiliser des tableaux : Information dense en format structuré
  2. Abréviations cohérentes : Définir une fois, utiliser partout
  3. Points de liste : Éviter les paragraphes en prose
  4. Blocs de code : Données structurées plutôt que narrative
  5. Références croisées : Lier plutôt que répéter l'information

Concentrez-vous sur la création d'une spécification qui sert à la fois de documentation et de modèle pour les mises à jour du workflow.

Skills similaires