Retour aux articles • IA • • 4 min de lecture

gstack : découper ses PR en briques

Utiliser gstack pour découper le code généré par l'IA en Pull Requests atomiques empilées (Stacked PRs) et orchestrer un sprint complet du plan au déploiement.

gstack : découper ses PR en briques

Lorsque l’on confie une fonctionnalité complète à un agent de codage IA (Claude Code, Cursor, Antigravity), le piège classique n’est plus la vitesse d’écriture du code, mais le mur de la revue de code. Un agent peut générer en dix minutes une Pull Request monolithique de 1 800 lignes touchant à la fois au schéma de base de données, au backend API, à l’interface utilisateur et aux tests. Face à un tel bloc, la revue humaine devient superficielle (« LGTM ») et le moindre bug oblige à annuler (revert) toute la fonctionnalité.

C’est exactement ce problème que résout gstack (garrytan/gstack) en combinant deux disciplines : le découpage systématique en Stacked PRs (Pull Requests empilées) et l’orchestration d’un sprint logiciel multi-rôles.

Architecture & Flux : gstack : Stacked PRs & Sprints IA

1. Pourquoi les « Stacked PRs » changent tout avec un agent IA

Au lieu de pousser une seule branche géante vers main, l’approche Stacked PRs consiste à empiler de petites branches atomiques qui dépendent les unes des autres :

  1. PR #1 : Fondations & Modèle de données (~100-150 lignes) : uniquement la migration ou les structures de données et leurs tests unitaires. Zéro impact sur l’interface existante.
  2. PR #2 : Logique Métier & Endpoint API (~150-200 lignes) : branchée par-dessus la PR #1, elle implémente le service backend et les garde-fous de sécurité.
  3. PR #3 : Interface & Intégration (~150 lignes) : branchée par-dessus la PR #2, elle câble le composant visuel et les tests de bout en bout.
Critère d’ingénieriePR Monolithique IA (~1 500 lignes)Stacked PRs avec gstack (3 x ~150 lignes)
Temps de revue cognitive45 min à 1 h (fatigue visuelle élevée)< 10 minutes par tranche (contexte isolé)
Taux de détection des bugs subtilsFaible (noyés dans le volume de diff)Élevé (chaque couche est vérifiée séparément)
Blocage en attente de validationTotal (impossible d’avancer sans merger)Nul (on code la PR #2 pendant la revue de PR #1)
Précision du Rollback en productionBrutal (tout le lot est annulé)Chirurgical (seule la couche fautive est annulée)

2. Les rôles de sprint intégrés dans gstack

Au-delà de l’empilement Git, gstack transforme l’agent IA en une véritable équipe produit virtuelle grâce à des commandes spécialisées qui forcent l’agent à changer de casquette à chaque étape du cycle :

  • /plan-ceo-review : challenge la valeur produit et élague les fonctionnalités superflues avant d’investir du temps d’ingénierie ;
  • /plan-eng-review : verrouille l’architecture technique, les flux de données, les cas limites (edge cases) et le découpage en tranches atomiques ;
  • /review : inspecte chaque tranche de la pile à la recherche de failles de sécurité, de régressions ou de fuites de ressources ;
  • /qa : lance un vrai navigateur headless (Playwright) pour tester l’application réelle, vérifier les formulaires et capturer les preuves visuelles ;
  • /ship : synchronise la pile de branches, exécute la suite de tests complète, met à jour le changelog et ouvre/fusionne les Pull Requests dans l’ordre.

3. Intégration dans mon workflow Homelab & Cloud

Dans mon écosystème, gstack intervient juste après la phase de questionnement architectural (Grill Me) et en complément du cycle TDD de Superpowers :

  1. /grill-me élimine les angles morts de conception ;
  2. /plan-eng-review (gstack) découpe la solution en 2 ou 3 tranches indépendantes ;
  3. Chaque tranche est codée en mode minimaliste (Ponytail) avec son test anti-régression et validée via /qa avant d’être poussée via /ship.
CommandeDescription
`/plan-ceo-review`
Évaluer la pertinence produit et supprimer les fonctionnalités non essentielles (YAGNI).
`/plan-eng-review`
Valider l'architecture, les diagrammes d'état et découper le travail en Stacked PRs.
`/review`
Auditer le diff de la branche courante (sécurité, concurrence, régressions).
`/qa`
Exécuter les tests de bout en bout dans un navigateur réel et vérifier le rendu.
`/ship`
Rebaser la pile de branches, vérifier les tests et publier la Pull Request.

4. Dépôt GitHub Officiel