Compétence Yolo
Pipeline IA-DLC entièrement automatisé. L'utilisateur fournit un prompt ; l'agent gère tout le cycle de vie : Idée -> Élaboration -> Proposition -> Revue -> Exécution -> Vérification -> Terminé.
Espace de noms des outils : Les outils Chorus sont exposés par le serveur MCP connecté sous un préfixe
mcp__chorus__sur dsh (par ex.mcp__chorus__chorus_pm_create_proposal). Les noms simples sont utilisés ci-dessous par souci de lisibilité — préfixez avecmcp__chorus__lors de l'invocation. Voirchoruspour la règle complète.
Adaptations dsh résumées (détails inline ci-dessous) : (1) l'élaboration s'auto-répond sans interaction utilisateur ; (2) les relecteurs s'exécutent inline après chaque envoi en chargeant le relecteur exact via l'outil
skilldans unsubagentau premier plan (run_in_background: false, attendre le verdict), avec un repli d'auto-revue en lecture seule ; (3) les sessions sont manuelles si vous dispatchez des sous-agents ; (4) l'exécution des tâches utilise des vagues séquentielles de l'agent principal.
Vue d'ensemble
yolo-chorus automatise le flux de travail IA-DLC complet. Vous fournissez une description en langage naturel de ce que vous voulez construire, et l'agent gère tout :
- Planification -- créer projet, idée, auto-élaboration, proposition avec docs et tâches
- Revue de proposition -- boucle adversariale proposition-relecteur
- Exécution -- exécution séquentielle et ordonnée par dépendances des tâches par l'agent principal
- Vérification -- boucle adversariale tâche-relecteur + vérification admin
- Rapport -- résumé d'achèvement
/yolo <prompt>
|
v
Projet + Idée + Élaboration (auto-répondue) + Proposition
|
v
Relecteur de proposition (inline, jusqu'à maxProposalReviewRounds)
|
v
Approbation Admin --> Les tâches se matérialisent
|
v
Exécution par vagues séquentielles (agent principal : boucle chorus_get_unblocked_tasks)
| (implémenter tâche + relecteur tâche par tâche)
v
Vérification Admin de chaque tâche --> débloquer la suivante
|
v
Terminé. Résumé du rapport.
Échappatoire : interrompez à tout moment. Toutes les entités créées (projet, idée, proposition, tâches) persistent dans Chorus. Reprenez manuellement via develop-chorus ou review-chorus.
Prérequis
La clé API a besoin de droits write + admin sur chaque ressource qu'elle touche :
| Besoin | Pourquoi |
|---|---|
idea: [write] |
Créer des idées, exécuter l'élaboration |
proposal: [write, admin] |
Créer des propositions ; les approuver |
task: [write, admin] |
Créer, exécuter, vérifier des tâches |
project: [write] |
Créer le projet s'il n'y en a aucun |
Vérifier au démarrage :
perms = chorus_checkin().agent.permissions
need = { idea: ["write"], proposal: ["write","admin"],
task: ["write","admin"], project: ["write"] }
for resource, actions in need:
missing = [a for a in actions if a not in (perms[resource] or [])]
if missing: ABORT "/yolo needs {resource}: {missing}. Use an Admin-preset API key."
Entrée
/yolo <prompt en langage naturel>
/yolo <prompt> --project <project-uuid>
<prompt>-- ce que vous voulez construire (devient le contenu de l'Idée)--project <uuid>-- optionnel ; utiliser un projet existant à la place d'en créer un nouveau
Flux de travail
Phase 1 : Planification
Étape 1.1 : Résoudre le projet
Analysez les arguments pour --project <uuid>.
Si --project est fourni :
chorus_get_project({ projectUuid: "<uuid>" })
Vérifiez qu'il existe et continuez.
S'il n'est pas fourni, recherchez d'abord un projet existant approprié :
# 1. Rechercher des projets correspondant au sujet du prompt
chorus_search({ query: "<key terms from prompt>", entityTypes: ["project"] })
# 2. Ou lister les projets récents pour trouver une correspondance
chorus_list_projects()
Examinez les résultats. Si un projet correspond clairement à l'intention de l'utilisateur (même sujet, actif, portée pertinente), utilisez-le. Si aucun projet approprié n'existe, créez-en un nouveau :
chorus_admin_create_project({
name: "<short title derived from prompt>",
description: "<1-2 sentence summary of the prompt>"
})
Étape 1.2 : Créer une idée
chorus_pm_create_idea({
projectUuid: "<project-uuid>",
title: "<concise title derived from prompt>",
content: "<full user prompt as-is>"
})
Puis la revendiquer :
chorus_claim_idea({ ideaUuid: "<idea-uuid>" })
Étape 1.3 : Auto-élaboration
En mode /yolo, l'agent génère des questions d'élaboration et y répond lui-même -- aucune interaction utilisateur du tout. Quand CHORUS_DAEMON_HEADLESS=1, ask_user_question est interdite, et yolo délibérément ne pose pas de question à l'utilisateur ; il s'auto-répond pour conserver une piste d'audit sans interrompre l'exécution.
L'auto-élaboration est toujours une boucle. Si répondre à vos propres questions met au jour une nouvelle question, contradiction ou lacune, revenez à
chorus_pm_start_elaborationpour une autre ronde auto-répondue avant de résoudre — ne forcez pas une résolution sur de l'ambiguïté non résolue. Il n'y a pas de gate humain dans YOLO, donc la boucle s'arrête sur votre jugement qu'aucun point matériel n'est laissé ouvert (cap de 10 rondes). Les étapes 1–2 constituent une ronde ; répétez-les au besoin, puis résolvez une fois à l'étape 3.
-
Générer et soumettre des questions :
chorus_pm_start_elaboration({ ideaUuid: "<idea-uuid>", depth: "standard", questions: [ { id: "q1", text: "<question about scope, architecture, etc.>", category: "functional", options: [ { id: "a", label: "<option A>" }, { id: "b", label: "<option B>" } ] } // ... 5-8 questions covering functional, technical, scope aspects ] }) -
Répondre immédiatement (l'agent sélectionne les meilleures options selon le prompt — aucun prompt utilisateur) :
chorus_answer_elaboration({ ideaUuid: "<idea-uuid>", roundUuid: "<round-uuid>", answers: [ { questionId: "q1", selectedOptionId: "a", customText: "Rationale: ..." }, // ... ] }) -
Résoudre — en mode YOLO l'agent résout l'élaboration de manière autonome, sans gate de confirmation humaine (l'exigence de confirmation humaine qui s'applique au flux interactif
idea-chorusest explicitement levée dans l'automationyolo-chorus) :chorus_pm_validate_elaboration({ ideaUuid: "<idea-uuid>" })chorus_pm_validate_elaborationnécessiteidea:admin.yolo-chorusmandate déjà une clé Admin-preset dans les Prérequis, ceci est donc satisfait. Pour ouvrir une autre ronde d'auto-élaboration au lieu de résoudre, appelez simplementchorus_pm_start_elaborationà nouveau.
Étape 1.4 : Créer une proposition
-
Détecter le mode OpenSpec (inline). Chargez la compétence
openspec-aware-choruset exécutez sa §1 détection en trois vérifications inline (CHORUS_OPENSPEC_MODE != "off", un répertoireopenspec/à la racine du projet, et la CLIopenspecsurPATH).Note dsh : il n'y a pas de hook Claude Code SessionStart pour précomputer
CHORUS_OPENSPEC_ACTIVE. Vous devez exécuter vous-même les trois vérifications, inline, ici. C'est obligatoire — yolo s'exécute sans surveillance, donc choisir silencieusement le mauvais mode est exactement le scénario d'échec que le contrat de détection existe pour prévenir.- Les trois vérifications passent → branche pilotée par spécifications (sous-étape 2a ci-dessous).
- Toute vérification échoue (ou
CHORUS_OPENSPEC_MODE=off) → branche libre (sous-étape 2b ci-dessous).
-
Créer le conteneur de proposition vide. En mode OpenSpec, la
descriptionDOIT contenir la ligne littéraleOpenSpec change slug: <slug>(utilisez le$SLUGque vous choisirez en 2a) ; en mode libre, omettez cette ligne.chorus_pm_create_proposal({ projectUuid: "<project-uuid>", title: "<feature name>", description: "<summary>\n\nOpenSpec change slug: <slug>", // Mode OpenSpec // description: "<summary>", // Mode libre inputType: "idea", inputUuids: ["<idea-uuid>"] })Puis branchez :
2a. Mode OpenSpec (les trois vérifications passent). Suivez
openspec-aware-chorus§3 de bout en bout :- Choisissez
$SLUG, exécutezopenspec new change "$SLUG"(§3.1–§3.2). - Créez
proposal.md,design.md, et unspecs/<capability>/spec.mdpar capacité localement sur disque (§3.3). ADDED Requirements uniquement ; repli par spécification à Markdown libre si MODIFIED/REMOVED est nécessaire. - Définissez les aides
json_encode_file,chorus_check_response(§3.4, §6). - Miroir chaque fichier local via
"$CHORUS_MCP_CALL" chorus_pm_add_document_draft "$PAYLOAD"(§3.6) — un appel par fichier, avec le type de document deopenspec-aware-chorus§5.
⛔ Ne pas invoquer
chorus_pm_add_document_draft/chorus_pm_update_document_draft/chorus_pm_update_documentdepuis le harness MCP avec un champcontentsaisi à la main dans cette branche. Retyper le corps markdown gaspille 20k+ tokens par proposition et casse l'égalité des octets avec les fichiers locaux. Voiropenspec-aware-chorus§2 Règle 1.Continuez ensuite à l'étape 3 (brouillons de tâches).
2b. Mode libre (toute vérification échoue). Ajoutez un brouillon de document de conception technique directement via MCP, contenu créé inline :
chorus_pm_add_document_draft({ proposalUuid: "<proposal-uuid>", type: "tech_design", title: "Tech Design: <feature>", content: "<markdown tech design covering architecture, data model, API, module contracts>" }) - Choisissez
-
Ajouter des brouillons de tâches de manière incrémentielle (utilisez le
draftUuidretourné pour l'enchaînement des dépendances).acceptanceCriteriaItemsest obligatoire sur chaque brouillon — au moins un critère non vide, ou l'appel est rejeté :# Première tâche result1 = chorus_pm_add_task_draft({ proposalUuid: "<proposal-uuid>", title: "<module name>", description: "<what to build, referencing tech design>", priority: "high", storyPoints: 3, acceptanceCriteriaItems: [ { description: "<testable criterion>", required: true }, // ... ] }) # Deuxième tâche, dépend de la première chorus_pm_add_task_draft({ proposalUuid: "<proposal-uuid>", title: "<dependent module>", description: "...", priority: "medium", storyPoints: 2, acceptanceCriteriaItems: [...], dependsOnDraftUuids: ["<result1.draftUuid>"] }) -
Valider :
chorus_pm_validate_proposal({ proposalUuid: "<proposal-uuid>" })Corriger toute erreur, puis continuer.
-
Soumettre :
chorus_pm_submit_proposal({ proposalUuid: "<proposal-uuid>" })Procédez immédiatement à la Phase 2 et exécutez le relecteur de proposition inline — dsh n'a pas de hook PostToolUse pour vous le rappeler.
Phase 2 : Boucle de revue de proposition
Différence dsh : il n'y a pas de hook PostToolUse injectant un rappel « générer le relecteur ». Exécutez le relecteur inline, juste après
chorus_pm_submit_proposal.
Obtenez un VERDICT indépendant sur la proposition :
- Préféré — générer un sous-agent relecteur (au premier plan). Utilisez l'outil dsh
subagentpour générer un sous-agent avecrun_in_background: false(premier plan — l'appel attend et retourne le résultat inline ; la décision d'approbation/rejet dépend du verdict) dont la tâche lui dit d'appeler l'outilskillavecproposal-reviewer-chorus, puis de revoir la proposition. Le résultat autoritaire est le commentaire le plus récentVERDICT:sur la proposition. Définissezrun_in_background: true(un sous-agent continuable/d'arrière-plan dont vous collectez l'avis de règlement plus tard) uniquement quand vous voulez délibérément vous étendre et que vous n'avez pas besoin du verdict avant votre prochaine étape.Load and run the proposal-reviewer-chorus skill to review proposalUuid <uuid>. This is review round <N>. Read the proposal, its documents, the idea, and the elaboration; classify findings as BLOCKER/NOTE; post your VERDICT comment on the proposal when done. - Repli — le revoir vous-même. Si
subagentn'est pas disponible (p. ex. génération désactivée par politique), faites la revue vous-même en tant que passage focalisé et en lecture seule suivant la procédure de la compétenceproposal-reviewer-chorus(lire proposition + commentaires + idée + élaboration ; vérifier complétude doc, granularité tâche, couverture AC↔exigence, le DAG, et points d'intégration ; classer BLOCKER/NOTE) et enregistrez le résultat viachorus_add_commentfinissant par une ligneVERDICT:. Ne modifiez pas les brouillons lors du passage de revue.
Puis :
-
Lisez le VERDICT du relecteur :
chorus_get_comments({ targetType: "proposal", targetUuid: "<proposal-uuid>" })Cherchez le commentaire le plus récent contenant
VERDICT:. -
Agissez sur le VERDICT :
-
PASS ou PASS WITH NOTES --
chorus_admin_approve_proposal({ proposalUuid: "<proposal-uuid>", reviewNote: "PASS from reviewer. <brief summary of notes if any>" })Les tâches et documents se matérialisent automatiquement. Continuez à la Phase 3.
-
FAIL -- Lisez les BLOCKERs depuis le commentaire du relecteur. Puis :
chorus_pm_reject_proposal({ proposalUuid: "<proposal-uuid>", reviewNote: "FAIL from reviewer. Fixing BLOCKERs: <list>" })Révisez les brouillons (
chorus_pm_update_document_draft,chorus_pm_update_task_draft) pour traiter chaque BLOCKER, puis resoumettez :chorus_pm_submit_proposal({ proposalUuid: "<proposal-uuid>" })Après la resoumission, exécutez le relecteur inline à nouveau pour la Ronde 2 (idem ci-dessus).
-
-
Rondes max : Bouclez jusqu'à
maxProposalReviewRounds(depuis la config du plugin, par défaut 3). Si épuisé :STOP: "Proposal review failed after {maxRounds} rounds. Remaining BLOCKERs: <list>. Human review needed. Proposal UUID: <uuid>" -
Pas de nouveau commentaire VERDICT après le retour du relecteur généré ? Il a épuisé son budget de tours. Regénérez-le UNE FOIS avec un indice de budget concis : « Stay within turn budget. Skip deep source verification. Fetch proposal + comments + idea only, skim for obvious BLOCKERs, and post your VERDICT within the first 10 turns. » Si toujours pas de VERDICT, revenez à une revue manuelle et postez le VERDICT vous-même — le pipeline ne peut pas boucler indéfiniment sur un relecteur silencieux.
Phase 3 : Exécution des tâches (Vagues séquentielles)
Après approbation de la proposition, les tâches existent en statut open. Exécutez-les dans des vagues ordonnées par dépendances.
Différence dsh : dsh n'a pas de primitif Agent Teams /
TeamCreate. Exécutez les vagues séquentiellement en tant qu'agent principal : boulezchorus_get_unblocked_tasks, implémentez vous-même chaque tâche prête, vérifiez-la, puis boulez à nouveau pour la prochaine vague. N'appelez PASTeamCreate— elle n'existe pas sur dsh. (Sous le plugin Claude Code, chaque vague peut être dispatchée en parallèle viaTeamCreate; c'est une optimisation Claude-Code uniquement qui se dégrade à la boucle séquentielle ici.)
wave = 1
loop:
# 1. Trouver les tâches prêtes (toutes dépendances done/closed)
unblocked = chorus_get_unblocked_tasks({ projectUuid: "<project-uuid>" })
if no unblocked tasks and all tasks done/closed:
break # Tous complets
if no unblocked tasks and some tasks not done:
# Bloqué -- les tâches ont échoué la revue et ne peuvent pas continuer
break with escalation report
# 2. Implémenter chaque tâche débloquée, dans l'ordre, EN TANT QU'AGENT PRINCIPAL :
for each task in unblocked:
chorus_claim_task({ taskUuid: task.uuid })
chorus_update_task({ taskUuid: task.uuid, status: "in_progress" })
# ... lire tâche + proposition + documents projet pour le contexte,
# écrire code, exécuter tests ...
chorus_report_work({ taskUuid: task.uuid, report: "...", status: "to_verify" })
chorus_report_criteria_self_check({ taskUuid: task.uuid, criteria: [...] })
chorus_submit_for_verify({ taskUuid: task.uuid, summary: "..." })
# 3. Procéder à la Phase 4 (vérification) pour CETTE tâche avant de passer à la suivante.
wave += 1
Dispatch optionnel de sous-agent : si votre hôte dsh supporte les sous-agents workers génériques (pas Agent Teams), vous pouvez confier une tâche à la fois à un sous-agent. Parce qu'il n'y a pas de hook SubagentStart, le prompt du worker doit inclure explicitement les instructions de session manuelles — voir
develop-chorus« Optional: sub-agent dispatch ». L'agent principal possède toujours la revue + vérification. Ceci ne change pas la structure séquentielle, vague après vague ci-dessus.
Phase 4 : Vérification
Après que chaque tâche soit soumise (Phase 3 étape 3), vérifiez-la avant de continuer :
for the just-submitted task:
# 1. Vérifier le statut de la tâche
task = chorus_get_task({ taskUuid: "<task-uuid>" })
if task.status != "to_verify":
# l'implémentation peut avoir échoué ; traiter ou ignorer
continue
# 2. Exécuter le relecteur de tâche INLINE (pas de hook sur dsh) :
# - Préféré : utiliser l'outil subagent pour générer un sous-agent avec run_in_background:false (premier plan, attendre le verdict) dont la
# tâche dit : « Call the skill tool with task-reviewer-chorus, verify taskUuid
# <uuid> (round <N>), and post the VERDICT comment. » Laissez-le finir, puis
# lisez le commentaire VERDICT le plus récent sur la tâche.
# - Repli (subagent non disponible) : la revoir vous-même en tant que passage focalisé en lecture seule
# suivant la procédure task-reviewer-chorus (lire tâche + proposition + docs + code,
# exécuter tests en lecture seule, classer les résultats BLOCKER/NOTE) et poster le VERDICT via
# chorus_add_comment.
# 3. Lire VERDICT du relecteur de tâche
comments = chorus_get_comments({ targetType: "task", targetUuid: "<task-uuid>" })
# Trouver le commentaire le plus récent contenant « VERDICT: »
# 4. Agir sur VERDICT — trois résultats possibles :
if VERDICT is "PASS":
chorus_mark_acceptance_criteria({
taskUuid: "<task-uuid>",
criteria: [
{ uuid: "<ac-uuid>", status: "passed", evidence: "<from reviewer>" },
// ...
]
})
chorus_admin_verify_task({ taskUuid: "<task-uuid>" })
# La tâche est maintenant « done » -- débloque les dépendants pour la prochaine vague
if VERDICT is "PASS WITH NOTES":
chorus_mark_acceptance_criteria({ ... })
chorus_admin_verify_task({ taskUuid: "<task-uuid>" })
if VERDICT is "FAIL":
# BLOCKERs trouvés. Ne VÉRIFIEZ PAS. Réouvrez pour révision.
chorus_admin_reopen_task({ taskUuid: "<task-uuid>" })
# Corriger les BLOCKERs lors d'une future passe (la tâche revient à in_progress/open)
Après vérification des tâches de la vague, revenez à la boucle de Phase 3 pour lever les tâches nouvellement débloquées. Souvenez-vous : seul done (pas to_verify) débloque les dépendants.
Rondes max par tâche : Suivi par maxTaskReviewRounds depuis la config du plugin (par défaut 3). Si une tâche a été réouverte maxRounds fois, ignorez-la et signalez l'escalade humaine :
ESCALATE: "Task '{title}' failed review after {maxRounds} rounds.
Last BLOCKERs: <list>. Manual intervention needed.
Task UUID: <uuid>"
Continuez avec les tâches restantes -- n'arrêtez pas tout le pipeline pour une tâche bloquée.
Pas de nouveau commentaire VERDICT après le retour du relecteur de tâche généré ? Il a épuisé son budget de tours. Regénérez-le UNE FOIS avec un indice de budget concis : « Stay within turn budget. Skip deep verification. Fetch task/proposal/comments, run only the core tests, and post your VERDICT within the first 12 turns. » Si toujours pas de VERDICT, revenez à une revue manuelle et postez le VERDICT vous-même — ne bouclez pas indéfiniment.
Phase 4.5 : Gate de revue de code (obligatoire pré-livraison)
Une fois que chaque tâche de la proposition de l'idée est vérifiée (done) — la Phase 3 ne trouve plus de tâches débloquées et aucune ne reste non-terminale — exécutez le gate final de revue de code au moment de la livraison avant le rapport d'achèvement de Phase 5b. Il examine le changement de code agrégé de l'Idée entière sur toutes les tâches (pas une seule tâche) et poste son verdict sur l'idée. Inline (pas de hook sur dsh), même mécanisme que Phase 4 :
- Préféré — générer un sous-agent relecteur (au premier plan). Utilisez
subagentpour générer un sous-agent avecrun_in_background: false(premier plan — l'appel attend et retourne le verdict inline ; la décision de livraison en dépend ; ne détachez PAS — définissezrun_in_background: trueuniquement pour délibérément vous étendre) dont latasklui dit d'appeler l'outilskillaveccode-reviewer-choruset de le suivre contre l'idée. Exemple de prompt de tâche :Load and run the code-reviewer-chorus skill to review the aggregate code for ideaUuid <uuid> (round <N>); post your VERDICT comment on the idea when done. - Repli — le revoir vous-même. Si
subagentn'est pas disponible, effectuez la revue en tant que passage focalisé en lecture seule suivant la procédurecode-reviewer-chorus(lire l'idée, ses propositions approuvées + documents + tâches ; inférer le diff agrégé des rapports de tâches +git log/diff; revoir intégration inter-tâches, architecture, sécurité, régression, couverture au niveau de la fonctionnalité ; exécuter la compilation/test du projet) et postez le commentaireVERDICT:sur l'idée vous-même.
Agissez sur le VERDICT :
- PASS / PASS WITH NOTES — la fonctionnalité est autorisée à être livrée. Continuez à Phase 5 / 5b.
- FAIL — ne livrez PAS. Lisez les BLOCKERs, puis corrigez-les via le flux quick-dev (
quick-dev-chorus) : appelezchorus_create_tasksavecproposalUuiddéfini à la proposition approuvée actuelle pour que les tâches de correction s'y attachent — ne rouvrez pas les tâches déjà vérifiées ni n'appliquez des corrections non suivies. Groupez les petits BLOCKERs liés dans une tâche cohésive unique par défaut ; divisez uniquement les corrections matériellement grandes ou indépendamment testables. Pilotez chaque tâche de correction à travers Phase 3 → Phase 4, incluant vérification AC auto-contrôle, revue de tâche indépendante, et vérification admin. Réexécutez le gate uniquement après que chaque tâche de correction soit avec succèsdone; une tâche de correction échouée ou annulée, arrêtez la boucle automatique et escaladez. Boucle bornée parmaxCodeReviewRounds(par défaut 3 ; 0 = illimité).
ESCALATE: "Idea '{title}' failed code review after {maxCodeReviewRounds} rounds.
Last BLOCKERs: <list>. Manual intervention needed. Idea UUID: <uuid>"
Pas de commentaire VERDICT après le retour du relecteur de code ? Il a épuisé son budget de tours (plus grand que celui du relecteur de tâche car il examine la fonctionnalité entière). Regénérez UNE FOIS avec un indice de budget concis ; si toujours silencieux, revenez à une passe manuelle en lecture seule et postez le VERDICT vous-même.
Le gate est comportemental comme les deux autres relecteurs : son verdict est consultatif et ne change pas le statut stocké de l'Idée ; l'orchestrateur le respecte. Il s'exécute avant le rapport d'achèvement pour que le rapport ne soit jamais écrit quand un FAIL est en attente.
Phase 5 : Rapport
Après achèvement de toutes les vagues, sortez un résumé markdown :
## /yolo Complete
**Project:** <project-name> (<project-uuid>)
**Proposal:** <proposal-title> (<proposal-uuid>)
**Idea:** <idea-title> (<idea-uuid>)
### Tasks
| Task | Status | Review Rounds |
|------|--------|---------------|
| <title> | done | 1 |
| <title> | done | 2 |
| <title> | ESCALATED | 3 (max) |
### Summary
- Total tasks: N
- Completed: X / N
- Escalated: Y (need human review)
- Waves executed: W
Phase 5b : Rapport d'achèvement de l'idée (obligatoire)
Une exécution réussie de yolo-chorus termine toujours l'Idée — appelez chorus_create_report une fois avec proposalUuid défini à la dernière proposition vérifiée. Le paramètre content porte le modèle de section ; suivez-le. Surfacez le documentUuid retourné dans le résumé de Phase 5. Ignorer c'est violer le protocole.
Ordre : écrivez le rapport d'achèvement uniquement après que le gate de revue de code Phase 4.5 retourne PASS / PASS WITH NOTES — jamais quand un code-review FAIL est en attente.
Archive OpenSpec : si vous avez exécuté en mode OpenSpec (branche d'étape 1.4 2a), la dernière tâche vérifiée déclenche aussi le flux d'archive. dsh n'a pas de hook PostToolUse pour vous le rappeler — après vérification de la tâche finale, exécutez
openspec-aware-chorus§3.9 vous-même (openspec archive <slug> --yes, puis miroir chaqueopenspec/specs/<capability>/spec.mdémis via §3.8).
Gestion des erreurs
| Scénario | Action |
|---|---|
| Permissions manquantes au démarrage | Arrêtez avec message listant les paires resource/action manquantes (voir Prérequis). Recommandez une clé API Admin-preset. |
| Création de projet échoue | Rapportez l'erreur, suggérez à l'utilisateur de créer le projet manuellement et de réessayer avec --project |
| Relecteur de proposition FAIL après maxRounds | Arrêtez le pipeline, signalez les BLOCKERs persistants, suggérez une revue manuelle |
| Relecteur de tâche FAIL après maxRounds | Signalez la tâche comme nécessitant escalade, continuez avec autres tâches |
| Implémentation de tâche échoue / pas d'envoi | Enregistrez l'erreur, ignorez la tâche, repérez-la à la prochaine vague si possible |
Sous-agent relecteur non disponible (subagent désactivé) |
Exécutez la revue vous-même en tant que passage focalisé en lecture seule suivant la compétence proposal-reviewer-chorus ou task-reviewer-chorus, puis postez le VERDICT |
| Interrompu | Toutes les entités persistent dans Chorus. L'utilisateur peut reprendre via develop-chorus ou review-chorus |
Conseils
- Gardez le prompt initial détaillé -- plus vous fournissez de contexte, meilleure est la qualité de la proposition auto-générée
- Le relecteur de proposition est votre gate de qualité -- s'il continue à FAILer, le prompt peut être trop vague
- Surveillez le nombre de vagues -- si les tâches continuent à être réouvertes, considérez l'arrêt et la revue manuelle du feedback
- Toute piste d'audit est conservée : Q&A élaboration, VERDICTs relecteurs, rapports de travail. Vérifiez l'interface Chorus pour l'historique complet
- Pour les petites/tâches simples, considérez
quick-dev-chorusà la place -- elle saute les frais généraux Idée->Proposition - Les sous-agents (si vous en dispatchez) partagent votre clé API ; assurez-vous qu'elle a les permissions listées dans Prérequis avant de commencer
Suivant
- Pour revoir manuellement les propositions :
review-chorus - Pour développer manuellement les tâches :
develop-chorus - Pour créer rapidement des tâches autonomes :
quick-dev-chorus - Pour aperçu de plateforme :
chorus