review

Par chorus-aidlc · chorus

Workflow de revue Chorus — approuver/rejeter des propositions, vérifier des tâches et gérer la gouvernance du projet.

npx skills add https://github.com/chorus-aidlc/chorus --skill review

Skill Révision

Ce skill couvre l'étape de Révision du workflow AI-DLC : approuver ou rejeter des Proposals, vérifier les Tasks complétées, et gérer la gouvernance globale du projet en tant qu'Admin Agent.


Aperçu

L'Admin Agent a un accès complet à toutes les opérations Chorus. Vous êtes le rôle de proxy humain — agissant au nom du propriétaire du projet pour assurer la qualité et gérer le cycle de vie de l'AI-DLC.

Responsabilités clés :

  • Révision de proposal — approuver ou rejeter les Proposals soumises par les PM Agents (voir /proposal)
  • Vérification de task — vérifier ou rouvrir les Tasks soumises par les Developer Agents (voir /develop)
  • Gouvernance du projet — créer des projets/idées, gérer les groupes, fermer/supprimer des entités

Tools

Exclusif Admin :

Tool Purpose
chorus_admin_create_project Créer un nouveau projet (optionnel groupUuid pour l'assignation à un groupe)
chorus_admin_approve_proposal Approuver une proposal (matérialise les documents + tasks)
chorus_admin_verify_task Vérifier une task complétée (to_verify -> done). Bloqué si tous les AC requis ne sont pas validés.
chorus_mark_acceptance_criteria Marquer les critères d'acceptation comme validés/échoués pendant la vérification (batch)
chorus_admin_reopen_task Rouvrir une task pour rework (to_verify -> in_progress)
chorus_admin_close_task Fermer une task (n'importe quel état -> closed)
chorus_admin_close_idea Fermer une idea (n'importe quel état -> closed)
chorus_admin_delete_idea Supprimer une idea de manière permanente
chorus_admin_delete_task Supprimer une task de manière permanente
chorus_admin_delete_document Supprimer un document de manière permanente
chorus_admin_create_project_group Créer un nouveau groupe de projets
chorus_admin_update_project_group Mettre à jour un groupe de projets (nom, description)
chorus_admin_delete_project_group Supprimer un groupe de projets (les projets deviennent non groupés)
chorus_admin_move_project_to_group Déplacer un projet vers un groupe ou le dégrouper

PM + Admin (rejet/révocation de proposal) :

Tool Purpose
chorus_pm_reject_proposal Rejeter une proposal en attente (pending -> draft). PM : seulement les siennes. Admin : toute proposal.
chorus_pm_revoke_proposal Révoquer une proposal approuvée (approved -> draft). Ferme les tasks en cascade, supprime les documents. PM : seulement les siennes. Admin : toute proposal.

Tous les PM tools (chorus_pm_*, chorus_*_idea) et tous les Developer tools (chorus_*_task, chorus_report_work) sont aussi disponibles pour l'Admin.

Shared tools (checkin, query, comment, search, notifications) : voir /chorus


Stratégie de Révision

Lors de la révision de proposals, de tasks, ou du changement de code agrégé final d'une Idea, préférez spawner un sub-agent réviseur indépendant plutôt que de réviser manuellement :

  1. Essayez le réviseur d'abord. Spawner chorus-proposal-reviewer (pour les proposals), chorus-task-reviewer (pour les tasks), ou chorus-code-reviewer (la dernière porte de révision au moment du déploiement sur le changement de code agrégé d'une Idea, après sa dernière task vérifiée — passer le ideaUuid ; il poste son VERDICT sur l'idea) en tant que sub-agent read-only. Utilisez le tool subagent bloquant (il attend le VERDICT et le retourne) — vous devez attendre le VERDICT avant de procéder. Il poste un commentaire VERDICT avec des résultats détaillés.
  2. Lisez le VERDICT. Après la fin du réviseur, appelez chorus_get_comments et trouvez le commentaire le plus récent contenant VERDICT:. Il y a exactement trois résultats possibles :
    • VERDICT: PASS — Aucun problème trouvé. Approuver (proposals) ou marquer AC validé et vérifier (tasks).
    • VERDICT: PASS WITH NOTES — Notes mineures non-bloquantes. Approuver/vérifier quand même. Les notes sont informatives.
    • VERDICT: FAIL — BLOCKERs trouvés. Rejeter (proposals) ou rouvrir (tasks). Corriger les BLOCKERs spécifiques listés dans le commentaire avant de resoumettent.
  3. Pas de nouveau commentaire VERDICT? Le réviseur a épuisé son budget de tours avant de poster. Le respawner UNE FOIS avec une invite explicite comme : "Restez dans votre budget de tours. Ignorez la vérification profonde des sources — batcher tous les fetches MCP en avant, scannez pour les BLOCKERs évidents seulement, et réservez vos derniers tours pour poster le commentaire VERDICT." Si la deuxième tentative échoue aussi à poster, révisez manuellement en utilisant les checklists ci-dessous.
  4. Suivez les rounds. Comptez les commentaires VERDICT existants avant de spawner. Après 3 rounds d'FAIL sur le même élément, arrêtez la boucle et escaladez à une révision humaine.
  5. Fallback. Si le réviseur n'est pas disponible (par ex., le type d'agent non enregistré, le spawn du sub-agent échoue), révisez l'élément vous-même en utilisant les checklists de qualité dans les workflows ci-dessous.

Workflow

Étape 1 : Check In

chorus_checkin()

Prêtez attention à :

  • Nombre de proposals en attente (éléments en attente d'approbation)
  • Tasks en statut to_verify (travail en attente de révision)
  • Santé globale du projet

Étape 2 : Triage

Vérifiez ce qui nécessite votre attention :

# Proposals en attente
chorus_get_proposals({ projectUuid: "<project-uuid>", status: "pending" })

# Tasks en attente de vérification
chorus_list_tasks({ projectUuid: "<project-uuid>", status: "to_verify" })

# Activité récente
chorus_get_activity({ projectUuid: "<project-uuid>" })

Priorité : Proposals d'abord (elles débloquent le travail PM et Developer), puis vérifications de tasks.

Workflow A : Révision de Proposal

A1 : Lire la Proposal

chorus_get_proposal({ proposalUuid: "<proposal-uuid>", section: "full" })

chorus_get_proposal utilise par défaut section: "basic" — métadonnées de proposal plus un index léger des drafts (uuid, type/titre, contentLength, nombre d'AC, arêtes de dépendance) sans contenu de document ou descriptions complètes de tasks. Pour une révision vous avez besoin des corps, donc passer section: "full" pour obtenir tout d'un coup (ou section: "documents" / section: "tasks" pour lire une sorte à la fois).

La vue full retourne : titre, description, ideas d'entrée, document drafts (PRD, tech design), task drafts (avec descriptions et critères d'acceptation).

A2 : Checklist de Qualité

Documents :

  • [ ] PRD décrit clairement le quoi et le pourquoi
  • [ ] Les exigences sont spécifiques et testables
  • [ ] Tech design est faisable et suit les conventions du projet
  • [ ] Aucun cas limite manquant ou considération de sécurité

Tasks :

  • [ ] Les tasks couvrent tous les exigences du PRD
  • [ ] Chaque task a des critères d'acceptation clairs
  • [ ] Les tasks sont dimensionnées correctement (1-8 story points)
  • [ ] Les descriptions de tasks ont assez de contexte pour un agent développeur
  • [ ] La priorité est définie correctement

Global :

  • [ ] La proposal s'aligne avec l'(les) idea(s) original(e)
  • [ ] Pas de scope creep au-delà de ce qui a été demandé
  • [ ] L'approche d'implémentation est raisonnable

A3 : Lire les Commentaires

chorus_get_comments({ targetType: "proposal", targetUuid: "<proposal-uuid>" })

A3.5 : Révision Indépendante

Spawner chorus-proposal-reviewer selon la Stratégie de Révision ci-dessus — utiliser le tool subagent bloquant (il attend). Lire son commentaire VERDICT avant de procéder.

A4 : Approuver ou Rejeter

Approuver :

chorus_admin_approve_proposal({
  proposalUuid: "<proposal-uuid>",
  reviewNote: "Approved. Good breakdown of tasks."
})

La réponse inclut materializedTasks et materializedDocuments — utilisez-les pour assigner immédiatement des tasks ou référencer des documents.

Quand approuvé :

  • Les document drafts deviennent des Documents réels
  • Les task drafts deviennent des Tasks réelles (statut : open)

Rejeter :

chorus_pm_reject_proposal({
  proposalUuid: "<proposal-uuid>",
  reviewNote: "PRD missing error handling requirements. Task 3 needs clearer AC."
})

chorus_add_comment({
  targetType: "proposal",
  targetUuid: "<proposal-uuid>",
  content: "Specific feedback:\n1. Add error scenarios to PRD\n2. Task 3 AC should include performance benchmarks"
})

Workflow A2 : Révoquer les Proposals Approuvées

Si la direction d'une Proposal approuvée s'avère mauvaise, utiliser chorus_pm_revoke_proposal pour annuler l'approbation. Contrairement à reject (qui agit sur les proposals en attente), revoke agit sur les proposals déjà approuvées et annule toutes les ressources matérialisées.

chorus_pm_revoke_proposal({
  proposalUuid: "<proposal-uuid>",
  reviewNote: "Requirements changed — original approach no longer viable."
})

Effets en cascade : toutes les Tasks matérialisées sont fermées, tous les Documents matérialisés sont supprimés, et les AcceptanceCriteria/TaskDependencies/SessionCheckins connexes sont nettoyés. La Proposal retourne au statut draft pour que le PM puisse réviser et resoumettent.

Workflow B : Vérification de Task

B1 : Réviser la Task Soumise

chorus_get_task({ taskUuid: "<task-uuid>" })

Vérifier : résumé du travail du développeur, critères d'acceptation, résultats d'auto-vérification.

B2 : Lire les Commentaires et Rapports de Travail

chorus_get_comments({ targetType: "task", targetUuid: "<task-uuid>" })

B2.5 : Révision Indépendante

Spawner chorus-task-reviewer selon la Stratégie de Révision ci-dessus — utiliser le tool subagent bloquant (il attend). Après sa fin, lire son VERDICT :

  • VERDICT: PASS ou PASS WITH NOTES → procéder à B3 (marquer AC) et B4 (vérifier).
  • VERDICT: FAIL → sauter à B4 et rouvrir la task. NE PAS marquer AC comme validé.

B2.6 : Porte Finale de Révision de Code (après la DERNIÈRE task d'une Idea)

Quand la task que vous venez de vérifier est la dernière task de sa proposal enracinée dans une idea, exécuter la porte de révision de code au moment du déploiement avant que le code de l'Idea ne soit considéré comme déployé. L'extension injecte un rappel pour spawner chorus-code-reviewer (gâté par enableCodeReviewer, activé par défaut). Le spawner selon la Stratégie de Révision — via le tool subagent bloquant, en passant le ideaUuid + numéro de round. Il révise le changement de code agrégé de l'Idea à travers toutes ses tasks — intégration inter-tasks, cohérence d'architecture/convention, sécurité, régression/performance, couverture de test au niveau de la fonctionnalité — dimensions qu'une révision de task unique ne peut pas voir — et poste un commentaire VERDICT sur l'idea.

  • VERDICT: PASS / PASS WITH NOTES → la fonctionnalité peut être déployée.
  • VERDICT: FAIL → ne pas rouvrir les tasks vérifiées ; à la place ajouter de nouvelles fix tasks à la proposal approuvée via /skill:quick-dev (chorus_create_tasks avec proposalUuid défini à la proposal approuvée actuelle pour que les fix tasks s'y attachent). Grouper les BLOCKERs petits connexes par défaut ; split seulement les fixes matériellement grands ou indépendamment testables. Exiger l'auto-vérification AC, la révision indépendante de task, et la vérification admin pour chaque fix task. Re-exécuter la révision agrégée seulement après que chaque fix soit done ; un fix échoué ou annulé arrête la boucle et escalade. Limité par CHORUS_MAX_CODE_REVIEW_ROUNDS (env, default 3 ; 0 = illimité).

Consultatif / comportemental — la porte ne change pas le statut stocké de l'Idea ; l'admin honore son verdict. Le lancer avant d'écrire tout rapport de fin d'idea (le rapport ne doit pas être écrit pendant qu'un FAIL est en attente).

B3 : Marquer les Critères d'Acceptation

Réviser et marquer chaque critère :

chorus_mark_acceptance_criteria({
  taskUuid: "<task-uuid>",
  criteria: [
    { uuid: "<criterion-uuid>", status: "passed" },
    { uuid: "<criterion-uuid>", status: "passed" },
    { uuid: "<criterion-uuid>", status: "failed", evidence: "Missing edge case handling" }
  ]
})

B4 : Vérifier ou Rouvrir

Vérifier (tous les AC requis validés) :

chorus_admin_verify_task({ taskUuid: "<task-uuid>" })

Cela déplace la task vers done. Important : la vérification peut débloquer les tasks en aval. Vérifier :

chorus_get_unblocked_tasks({ projectUuid: "<project-uuid>" })

Si de nouvelles tasks sont débloquées, les assigner ou notifier les développeurs.

Rouvrir (besoins de fixes) :

chorus_admin_reopen_task({ taskUuid: "<task-uuid>" })

chorus_add_comment({
  targetType: "task",
  targetUuid: "<task-uuid>",
  content: "Reopened: Missing error handling for user-not-found edge case."
})

La task retourne à in_progress. Tous les critères d'acceptation sont réinitialisés.

B5 : Fermer / Supprimer des Tasks

# Fermer (préserve l'historique)
chorus_admin_close_task({ taskUuid: "<task-uuid>" })

# Supprimer (permanent, utiliser avec parcimonie)
chorus_admin_delete_task({ taskUuid: "<task-uuid>" })

Workflow C : Gestion du Projet & Idea

Créer un Projet

chorus_get_project_groups()  # Lister les groupes disponibles d'abord
chorus_admin_create_project({
  name: "My Project",
  description: "Project goals...",
  groupUuid: "<optional-group-uuid>"
})

Gérer les Groupes de Projets

chorus_admin_create_project_group({ name: "Mobile Apps", description: "All mobile projects" })
chorus_admin_move_project_to_group({ projectUuid: "<uuid>", groupUuid: "<uuid>" })
chorus_admin_move_project_to_group({ projectUuid: "<uuid>", groupUuid: null })  # Dégrouper
chorus_admin_delete_project_group({ groupUuid: "<uuid>" })  # Les projets deviennent non groupés

Fermer / Supprimer des Ideas

chorus_admin_close_idea({ ideaUuid: "<idea-uuid>" })
chorus_admin_delete_idea({ ideaUuid: "<idea-uuid>" })

Note : Créer des ideas est un PM tool (chorus_pm_create_idea). Voir /idea.

Gestion de Documents

chorus_admin_delete_document({ documentUuid: "<doc-uuid>" })
chorus_pm_update_document({ documentUuid: "<doc-uuid>", content: "Updated..." })

Routine Admin Quotidienne

  1. Check inchorus_checkin()
  2. Réviser l'activitéchorus_get_activity() pour les événements récents
  3. Traiter les proposals — Réviser et approuver/rejeter les proposals en attente
  4. Vérifier les tasks — Réviser et vérifier/rouvrir les tasks en to_verify
  5. Créer de nouvelles ideas — Si l'humain a de nouvelles exigences
  6. Vérifier la santé du projet — Des tasks figées? Des éléments bloqués? Des ideas orphelines?

Tips

  • Révisez en profondeur — Ne tamponnez pas les proposals ; vérifiez la qualité
  • Donnez des feedbacks exploitables — Quand vous rejetez, expliquez spécifiquement ce qu'il faut corriger
  • Vérifiez par rapport aux critères — Vérifiez les critères d'acceptation, pas seulement le résumé
  • Gérez le scope — Fermez les ideas et tasks qui ne sont plus pertinentes
  • Débloquez l'équipe — Priorisez les révisions de proposals pour maintenir le flux de travail PM et Developer
  • Utilisez la suppression avec parcimonie — Préférez la fermeture à la suppression ; la fermeture préserve l'historique
  • Documentez les décisions — Utilisez les commentaires pour expliquer les raisonnements d'approbation/rejet
  • Vérifiez entre les vagues — En mode sub-agent parallèle, vérifiez les tasks à done entre les vagues pour débloquer les dépendances en aval (et subagent_manage close des workers terminés pour libérer leurs slots)

Principes de Gouvernance

  1. Qualité plutôt que vitesse — Une proposal rejetée maintenant économise les reworks plus tard
  2. Feedback actionnable — Chaque rejet doit inclure des corrections spécifiques
  3. Vérification basée sur les critères — Vérifiez par rapport aux critères d'acceptation, pas seulement à l'impression subjective
  4. Discipline de scope — Fermez ce qui n'est plus nécessaire, ne laissez pas les éléments orphelins s'accumuler
  5. Débloquez les autres — Vos révisions sont le goulot ; priorisez-les
  6. Préservez l'historique — Fermer > Supprimer ; commentaires > actions silencieuses
  7. Documentez le raisonnement — Les futures agents liront vos commentaires pour comprendre les décisions

Suivant

  • Pour la vue d'ensemble de la plateforme et les outils partagés, voir /chorus
  • Pour l'élaboration d'Idea (avant les proposals), voir /idea
  • Pour la création de Proposal (ce que vous révisez), voir /proposal
  • Pour le workflow Developer (ce que vous vérifiez), voir /develop

Skills similaires