Provenance Manifesto
arrow_back Retour au blog

Créer un pipeline automatisé de traduction multilingue pour un blog Markdown avec les agents GitHub Copilot

Yauheni Kurbayeu

Table des matières

expand_more

Créer un pipeline automatisé de traduction multilingue pour un blog Markdown avec les agents GitHub Copilot

Author: Yauheni Kurbayeu
Published: Mar 20, 2026

Créer un pipeline automatisé de traduction multilingue pour un blog Markdown avec les agents GitHub Copilot


TL;DR

Ce guide montre comment transformer un blog simple basé sur Markdown en un pipeline de publication multilingue automatisé avec les agents GitHub Copilot, les Skills et les Hooks. Un agent orchestrateur principal coordonne des sous-agents spécifiques à chaque langue pour traduire le contenu, mettre à jour les résumés README localisés et générer des sorties cohérentes. Les Hooks imposent des garde-fous et de la journalisation, tandis qu’une Skill encapsule le workflow. Le résultat est un système reproductible, scalable et compatible avec la gouvernance, qui transforme les commits Git en pipeline de contenu orienté provenance.


Pourquoi cette approche

Je voulais un workflow où :

  • j’écris un seul article Markdown en anglais.
  • le système automatiquement :
    • extrait les métadonnées,
    • génère un TL;DR,
    • met à jour un README global,
    • traduit l’article en plusieurs langues,
    • met à jour les README localisés,
    • vérifie les résultats,
    • et produit un résumé.

En même temps, je voulais :

  • la reproductibilité (tout vit dans Git),
  • l’auditabilité (ce qui s’est passé, quand, et pourquoi),
  • et l’extensibilité (facile d’ajouter d’autres langues ou étapes plus tard).

Les agents GitHub Copilot ont fourni la bonne abstraction :

  • des Agents pour les rôles,
  • des Subagents pour la spécialisation en parallèle,
  • des Skills pour les workflows réutilisables,
  • des Hooks pour les garde-fous et le contrôle du cycle de vie.

Architecture finale

root/
├─ README.md
├─ my-article.md
├─ de/
│  └─ README.md
├─ fr/
│  └─ README.md
├─ es/
│  └─ README.md
├─ pl/
│  └─ README.md
├─ ru/
│  └─ README.md
└─ .github/
   ├─ copilot-instructions.md
   ├─ agents/
   │  ├─ article-orchestrator.agent.md
   │  ├─ translate-de.agent.md
   │  ├─ translate-fr.agent.md
   │  ├─ translate-es.agent.md
   │  ├─ translate-pl.agent.md
   │  └─ translate-ru.agent.md
   ├─ skills/
   │  └─ article-translation/
   │     └─ SKILL.md
   └─ hooks/
      ├─ hooks.json
      ├─ session_start.py
      ├─ pre_tool_guard.py
      ├─ post_tool_validate.py
      ├─ session_end.py
      └─ error_occurred.py

Étape 1 — Instructions au niveau du dépôt

Créez .github/copilot-instructions.md.

Ce fichier définit les règles globales du système.

Exemple

# Copilot Instructions

This repository processes English Markdown articles and produces:

- Root README summary
- Localized README summaries (de, fr, es, pl, ru)
- Translated article files

## Source rules

- Source article is a root-level `.md` file
- Ignore README.md and language folders

## Metadata extraction

Extract:
- title
- author
- date

Normalize date to dd.mm.yyy

## Output format

# Title
Author: Name
Date: dd.mm.yyy
**TL;DR summary**

## Translation rules

- Preserve markdown structure
- Preserve meaning
- Do not translate title/author/date in localized README
- Translate only TL;DR in localized README

Étape 2 — La Skill (le cerveau du workflow)

Créez :

.github/skills/article-translation/SKILL.md

C’est la logique de pipeline réutilisable.

Exemple

---
name: article-translation
description: Process markdown article and generate translations
---

1. Find source article
2. Extract metadata
3. Generate TL;DR
4. Update root README
5. Trigger subagents
6. Validate outputs

Étape 3 — Agent orchestrateur principal

Créez :

.github/agents/article-orchestrator.agent.md

Exemple

---
name: article-orchestrator
tools: ['agent', 'read', 'search', 'edit']
agents: ['translate-de', 'translate-fr', 'translate-es', 'translate-pl', 'translate-ru']
---

Use article-translation skill.

1. Find article
2. Extract metadata
3. Generate TL;DR
4. Update README.md
5. Run subagents
6. Verify outputs
7. Write translation-summary.md

C’est votre tour de contrôle.


Étape 4 — Sous-agents de langue

Chaque langue a son propre agent.

Exemple : translate-de.agent.md

---
name: translate-de
user-invocable: false
---

Translate article into German.

Create:
- /de/README.md
- /de/<article>.md

Rules:
- keep title unchanged
- keep Author and Date unchanged
- translate TL;DR only in README
- preserve markdown

Répétez pour FR, ES, PL, RU.


Étape 5 — Hooks (garde-fous et cycle de vie)

Créez :

.github/hooks/hooks.json

Exemple

{
  "version": 1,
  "hooks": {
    "sessionStart": [{ "bash": { "run": "python3 .github/hooks/session_start.py" } }],
    "preToolUse": [{ "bash": { "run": "python3 .github/hooks/pre_tool_guard.py" } }],
    "postToolUse": [{ "bash": { "run": "python3 .github/hooks/post_tool_validate.py" } }],
    "sessionEnd": [{ "bash": { "run": "python3 .github/hooks/session_end.py" } }],
    "errorOccurred": [{ "bash": { "run": "python3 .github/hooks/error_occurred.py" } }]
  }
}

Objectif

  • preToolUse → empêcher les modifications non sûres
  • postToolUse → valider les sorties
  • sessionEnd → notifier la fin
  • errorOccurred → journaliser les échecs

Étape 6 — Exécuter le pipeline

Option 1 — Manuel

copilot

Puis :

Use article-orchestrator to process my-article.md

Option 2 — Déclenchement sur commit Git

Ajoutez un pre-commit ou une GitHub Action :

on push:
  - "*.md"

Déclenchez :

copilot -p "Run article-orchestrator on new article"

Étape 7 — Exemple de sortie

Après exécution :

README racine

# My Article
Author: John Doe
Date: 10.03.2026
**TL;DR Short summary**

README allemand

# My Article
Author: John Doe
Date: 10.03.2026
**TL;DR Kurze Zusammenfassung**

Fichier traduit

/de/my-article.md

Étape 8 — Ce que GPT m’a aidé à faire

Ce système n’a pas été construit manuellement depuis zéro.

GPT m’a aidé pour :

  • concevoir l’architecture
  • définir les rôles des agents
  • écrire toutes les configurations d’agents
  • concevoir skills et hooks
  • créer des garde-fous
  • générer un bundle de dépôt prêt à l’emploi
  • affiner les bonnes pratiques basées sur la documentation Copilot

Le changement clé permis par GPT :

D’« scripts qui traduisent des fichiers »
à « des agents qui coordonnent la transformation des connaissances »


Étape 9 — Enseignements clés

1. Git devient un système d’événements

commit → agent → transformation → commit

2. Les agents sont meilleurs que les scripts

  • plus faciles à étendre
  • plus faciles à raisonner
  • plus proches de la façon dont les humains pensent

3. La provenance est intégrée

À chaque étape :

  • qui a déclenché
  • ce qui a changé
  • quelle sortie a été produite

Étape 10 — Prochaines étapes

Vous pouvez étendre cela vers :

  • traduction basée sur les diffs
  • scoring qualité IA
  • optimisation SEO par langue
  • pipelines de publication
  • ingestion dans un graphe de provenance

Réflexions finales

C’est plus que de la traduction.

C’est un système d’exploitation du contenu :

  • déterministe
  • explicable
  • extensible

Et cela s’étend naturellement vers :

  • les systèmes de connaissance
  • la provenance des décisions
  • des workflows natifs IA

Vous voulez l’améliorer ?

Si vous voulez, je peux vous aider à :

  • ajouter une traduction incrémentale (uniquement les paragraphes modifiés)
  • intégrer votre moteur de blog (Astro, Jekyll)
  • ajouter des notifications Slack/e-mail
  • transformer cela en architecture prête pour un SaaS
arrow_back Retour au blog