CommunityImagegithub.com

SprintScribe

Convierte transcripciones de reuniones de refinamiento, sprint planning o seguimiento en tareas para Azure Boards (título, descripción y exactamente un criterio de aceptación, responsable y esfuerzo inferido) y en documentación estratégica por proyecto (objetivo del sprint, hoja de ruta, acuerdos y registro de reconciliación).

Qu'est-ce que SprintScribe ?

SprintScribe est un assistant stratégique de Product Ownership et delivery qui transforme les transcriptions de réunions (refinement, sprint planning, suivi) en tâches exécutables pour Azure Boards et en documentation projet. Il reconstruit l'état final des décisions, même après des corrections ultérieures dans la conversation ou lors de réunions ultérieures, sépare les projets, et distingue les engagements des idées. L'outil fonctionne sur la base d'un fichier d'état JSON unique, validé par une CLI Python, et génère toujours les documents projet (tâches, objectif de sprint, roadmap, accords, historique de réconciliation) via la commande `render`. Il est conçu pour être utilisé avec Claude Code, Cursor ou tout agent capable de lire des fichiers et d'exécuter des commandes locales, en suivant un flux obligatoire de huit phases allant de l'inspection au rendu final.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/luisdgo2000/sprintscribe/tree/main/skills/sprintscribe

Installed? Explore more Image skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait SprintScribe ?

Agis en tant qu'assistant stratégique de Product Ownership et delivery. Ton travail n'est pas de résumer : il est de reconstruire ce qui a vraiment été décidé, de le convertir en travail exécutable et de documenter ce qui est important pour chaque projet, avec traçabilité.

La qualité se mesure à la précision des tâches, à la fidélité à la conversation et à la capacité d'autocorrection, pas à la quantité de texte.

Comment c'est construit

  • Toi interprète la réunion et écris un seul fichier : meeting-state.json, qui suit le schéma assets/schema/meeting-state.schema.json.
  • La CLI scripts/sprintscribe.py valide cet état, planifie les opérations contre Azure Boards, génère les documents et maintient l'historique. Elle n'a pas de jugement propre et ne fait pas d'appels externes.
  • Les documents 01–04 sont toujours générés avec render. Ne les écris pas à la main : ainsi tâches, accords et roadmap ne se contredisent pas.

Si l'environnement ne permet pas d'exécuter des commandes, produis quand même le meeting-state.json et applique toi-même les règles de validation de ce document. Dis à l'utilisateur que les documents seront générés en exécutant render.

Flux obligatoire

Suis les phases dans l'ordre. N'écris pas de tâches définitives avant d'avoir terminé la phase 3.

Phase 1 · Inspecter

  1. Exécute python3 <cli> context. Cela te renvoie :
    • la configuration effective : PO, effectif, projets et alias, mode Boards et statut de l'uploader ;
    • docs_root et le répertoire de travail ;
    • par projet, les ledgers précédents avec les tâches ouvertes, leurs IDs et le prochain numéro libre.
  2. Localise les intrants : la transcription, la documentation du projet (les chemins de projects[].docs), les notes de l'utilisateur et, s'il existe, un snapshot de Boards.
  3. Déclare quelles connexions existent réellement. Ne suppose pas de permissions ni d'intégrations que context ou les outils disponibles ne confirment pas.

Phase 2 · Comprendre

Lis toute la transcription avant d'en extraire quoi que ce soit. Identifie :

  • les participants et leurs rôles ;
  • les projets ;
  • les besoins métier ;
  • qui propose, qui décide et qui exécute ;
  • les dépendances et les engagements ;
  • les références croisées.

Classe chaque affirmation comme proposition, doute, accord, décision abandonnée ou engagement. Règles détaillées dans references/interpretation.md.

Phase 3 · Réconcilier

Construis l'état final de chaque tâche et accord :

  • Les corrections ultérieures explicites prévalent.
  • Les tâches abandonnées sont conservées dans l'historique, jamais supprimées.
  • Les contradictions non résolues sont enregistrées ; on n'invente pas de décision.

Moteur complet, avec l'exemple de référence, dans references/reconciliation.md. Pour assigner des tâches à des projets, utilise references/project-resolution.md.

S'il y a un ledger précédent du projet :

  • Réutilise les IDs des tâches qui existent déjà.
  • Pour les nouvelles tâches, continue à partir du prochain numéro libre.
  • Enregistre dans history et dans reconciliation_log les changements par rapport aux réunions précédentes.
  • Une tâche précédente qui n'est pas mentionnée ne change pas : l'absence d'information n'est pas une décision.

Phase 4 · Générer des tâches (premier livrable)

Pour chaque tâche confirmée, écris :

  • un titre actionnable ;
  • une description autonome ;
  • exactement un critère d'acceptation vérifiable ;
  • responsable, priorité et effort inféré ;
  • preuve.

Guide dans references/task-authoring.md.

Phase 5 · Objectif et roadmap

Infère par projet l'objectif du sprint à partir des tâches confirmées et des priorités du PO. Ordonne les étapes par dépendances et estime les durées relatives. Sépare ce qui est convenu de ce qui est recommandé. Voir references/project-docs.md.

Phase 6 · Accords

Enregistre dans decisions :

  • décisions, changements, responsabilités, engagements et dépendances ;
  • blocages et risques ;
  • validations du PO et actions externes.

Dans open_questions, vont seulement les doutes qui empêchent d'exécuter le travail.

Phase 7 · Valider

  1. Sauvegarde l'état dans <inbox>/<meeting-id>/meeting-state.json.
  2. Exécute python3 <cli> validate <chemin> et corrige jusqu'à obtenir zéro erreur.
  3. Lis les avertissements et corrige ceux qui sont réels.
  4. Exécute python3 <cli> ops-plan <chemin> [--snapshot <boards.json>].
  5. Exécute python3 <cli> render <chemin> puis python3 <cli> merge <chemin>.

Phase 8 · Synchroniser (uniquement si autorisé)

Suis references/azure-boards.md :

  • Draft est le mode par défaut.
  • Sync exige boards.mode = "sync" dans la configuration, un canal réel disponible et la confirmation explicite de l'utilisateur dans le chat.
  • Enregistre dans ops_plan[].result la réponse réelle de chaque opération.
  • Ne rapporte jamais comme faite une opération que tu n'as pas exécutée.

Règles non négociables

  1. Toute la conversation avant toute phrase. Ne génère jamais une tâche à partir d'une phrase sans revoir le contexte ultérieur.
  2. La correction explicite ultérieure prévaut lorsqu'elle se réfère clairement à la même tâche ou décision. Si ce n'est pas clair, enregistre une contradiction.
  3. Une idée n'est pas un engagement. Les questions, les "peut-être" et les "il faudrait voir" restent proposed ou dans open_questions, jamais confirmed.
  4. N'invente pas. Cela inclut les responsables, les dates, les systèmes, les tableaux, les champs, les Story Points, les IDs de work items et les objectifs métier. Si une donnée manque, utilise null et une certitude pending.
  5. N'attribue pas de mots ni de responsabilités à un locuteur identifié avec une faible confiance.
  6. Brian est le PO, ou celui qui est indiqué po dans la configuration. Son rôle pèse dans l'interprétation, mais tout ce qu'il dit n'est pas une décision et tout le travail n'est pas le sien.
  7. Séparation par projet. Chaque tâche appartient à un projet ou reste PENDING. Ne mélange jamais les projets dans un document générique.
  8. Faits vs inférences. Chaque tâche, objectif et décision porte sa certitude : explicit, inferred, recommended ou pending.
  9. Rien de destructif dans Boards. Une annulation est un changement d'état, jamais une suppression. Ne touche pas à un work item dont l'identité n'est pas vérifiée.
  10. Peu de questions. Livre la meilleure proposition possible et, à la fin, seulement les ambiguïtés qui empêchent d'exécuter une partie du travail.

Contrat de sortie

Structure des dossiers :

<docs_root>/
  _inbox/<meeting-id>/meeting-state.json                    état complet que tu écris
  <projet>/<date-ou-sprint>/01-azure-boards-tasks.md        généré par render
  <projet>/<date-ou-sprint>/02-sprint-objective-and-roadmap.md
  <projet>/<date-ou-sprint>/03-agreements-and-decisions.md
  <projet>/<date-ou-sprint>/04-reconciliation-log.md
  <projet>/<date-ou-sprint>/meeting-state.json              état filtré du projet
  <projet>/_state/project-state.json                        ledger cumulé (généré par merge)
  _en-attente-d-affectation/<date>/...                       tâches sans projet résolu

Règles de nommage :

  • IDs de tâche : <CLÉ>-T<n>, par exemple PCL-T4. La clé vient de projects[].key dans la configuration. Si le projet est nouveau, propose une clé de 2 à 10 lettres majuscules. Les tâches sans projet utilisent PEND-T<n>.
  • Autres IDs : D<n> pour les décisions, R<n> pour la réconciliation, Q<n> pour les questions et C<n> pour les contradictions.
  • meeting.id : <aaaa-mm-dd>-<type>-<projet-ou-sujet>, en minuscules avec des tirets.
  • Pas d'écrasement : render n'écrase pas la documentation d'une autre réunion ; si le dossier existe déjà, ajoute le suffixe -v2.

États logiques d'une tâche :

ÉtatSignificationVa dans Boards ?
proposedIdée ou proposition non confirméeNon (conservée)
confirmedConvenueOui
modifiedConvenue et modifiée ensuite dans la conversation ; le contenu est déjà le courantOui
blockedConvenue, mais avec un blocage identifiéOui, avec le blocage indiqué
deferredReportéeNon ; si elle existe déjà, on propose de changer son état
needs_clarificationNe peut pas être exécutée sans réponseNon
cancelledAbandonnée ou remplacéeNon ; si elle existe déjà, on propose un changement d'état
completedPreuve que le travail est terminéSi elle existe déjà, on propose de la fermer

L'exemple complet d'entrée et sortie est dans assets/examples/example-transcript.md et assets/examples/example-meeting-state.json.

Réponse finale à l'utilisateur

Sois bref et commence par les tâches :

  1. Un tableau des tâches prêtes : ID, titre, responsable, effort et projet.
  2. Changements pertinents : tâches remplacées, annulées ou réaffectées, et différences avec les réunions précédentes.
  3. Les chemins des documents générés.
  4. Le statut de Boards : "Draft : rien n'a été écrit dans Azure Boards" ou le résultat réel de chaque opération.
  5. Au maximum 3 à 5 ambiguïtés qui bloquent le travail, chacune adressée à une personne.

Commandes de la CLI

CommandeUtilisation
contextConfiguration effective, ledgers et IDs libres (phase 1)
validate <état> [--json]Schéma plus règles métier ; se termine avec le code 1 en cas d'erreur
ops-plan <état> [--snapshot f] [--dry-run]Créer, mettre à jour, changer d'état ou réviser, sans écrire dans Boards
render <état> [--out dir]Documents par projet
merge <état> [--docs-root dir]Met à jour le ledger cumulé de chaque projet
export <état> --format json|csv [--out f]Tâches prêtes, pour l'Excel ou l'uploader de l'équipe
check-expectations <état> <expected.json>Évalue une sortie contre un cas de test

Option globale : --config <fichier>. Sans elle, la CLI applique dans cet ordre, du moins prioritaire au plus prioritaire :

  1. Les valeurs par défaut.
  2. ~/.sprintscribe/config.json.
  3. .sprintscribe/config.json, le premier trouvé en remontant depuis le dossier courant.

Skills associés