Forge

Projet Test Specification

Déployé
Agent

Projet de test créé pour valider le fonctionnement de bout en bout de l'agent SPECIFICATION. Idée fictive : un outil qui génère automatiquement des changelogs à partir des commits Git.

Source de l'idée : Créé manuellement pour tester specification-agent

Voir le dépôt de code

Pipeline

Idée
Recherche
Spécification
Design
Backlog
Développement
Revue de code
8Déploiement
9Marketing
10Maintenance

13/13 tickets terminés

Critères de validation : Verifier la qualite des PR ouvertes par l agent DEVELOPMENT et leur revue par l agent REVIEW.

Intervention manuelle

Optionnel : les agents avancent sans attendre ce clic. Utilise ceci seulement pour corriger une décision d'agent.

Projet Test Specification (générateur de changelog automatique)

Problème et solution

Les équipes dev négligent souvent la rédaction de leurs changelogs : c'est perçu comme une corvée manuelle, source de changelogs incomplets ou mal rédigés. L'agent RESEARCH a validé la demande (concurrents GitSaga et AutoChangelog identifiés, discussion Hacker News active confirmant le besoin, aucun obstacle de faisabilité bloquant). La solution consiste en un outil qui lit automatiquement l'historique de commits Git d'un dépôt et en génère un changelog structuré, sans rédaction manuelle au moment de chaque release.

Fonctionnalités du MVP

  • Connexion à un dépôt Git (via URL publique ou token d'accès pour dépôt privé) et lecture de l'historique de commits entre deux tags/versions.
  • Extraction automatique (via LLM) des changements notables à partir des messages de commit, classés en catégories (Fonctionnalités, Corrections, Autres).
  • Génération d'une page de changelog en Markdown, versionnée par tag/release.
  • Interface web minimale pour déclencher une génération, visualiser le changelog généré et l'éditer manuellement avant publication.
  • Publication d'une page changelog publique (URL dédiée par projet) accessible sans authentification.
  • Gestion d'un seul dépôt par compte utilisateur en v1 (pas de multi-repos).

Hors périmètre (v1)

  • Intégration multi-repos ou multi-organisations.
  • Déclenchement automatique à chaque merge/release (webhook GitHub), en v1 génération à la demande uniquement.
  • Personnalisation avancée du template de changelog (thèmes, branding client).
  • Facturation / abonnement (le modèle de revenu par nombre de repos/seats n'est pas implémenté en v1, uniquement un usage gratuit à valider).
  • Support d'autres plateformes que GitHub (GitLab, Bitbucket).

Modèle de données

EntitéChamps principauxNotes
Userid, email, motDePasseHash, githubTokenAuthentification simple, un seul token GitHub par utilisateur
Repositoryid, userId, url, nomComplet (owner/repo)Un seul repo actif par utilisateur en v1
Changelogid, repositoryId, tagRange (ex. v1.0.0..v1.1.0), contenuMarkdown, statut (BROUILLON, PUBLIE), createdAtUne entrée par génération
ChangelogEntryid, changelogId, categorie (FEATURE, FIX, AUTRE), texte, commitShaLignes individuelles composant le changelog, éditables

Flux utilisateur principaux

  1. L'utilisateur connecte son compte GitHub (token) et sélectionne un dépôt.
  2. Il choisit une plage de tags/versions, ou depuis le dernier changelog généré.
  3. L'outil récupère les commits de la plage, les envoie à un LLM pour extraction/classification, puis affiche un brouillon de changelog.
  4. L'utilisateur relit, édite si besoin, et publie la page de changelog.
  5. La page publique du changelog est accessible via une URL dédiée, consultable par les utilisateurs externes du produit.

Risques techniques et dépendances

  • Dépendance à une API LLM tierce pour l'extraction des changements : coût par génération et qualité variable si les messages de commit sont mal nommés, risque déjà identifié en RESEARCH, à surveiller avec des cas réels lors du développement.
  • Dépendance à l'API GitHub, rate limiting, gestion des tokens d'accès privés, pour la lecture des commits/tags.
  • Pas de webhook en v1 : la fraîcheur du changelog dépend d'une action manuelle de l'utilisateur, à documenter clairement pour ne pas créer d'attente déçue.