Pipeline de vidéo scientifique
Reproduit le processus en 14 étapes du créateur Bilibili "科普观察室" (Science Observation Room). Les projets de la série sont installés dans le dépôt de la bibliothèque d'effets (Remotion) :
- Règles (à lire obligatoirement avant chaque début d'épisode) :
<racine du dépôt>/规矩/ - Chaque épisode dans un tiroir :
effects/<id-épisode>/(documents, données, composants cohabitent) - Production finale :
out/<id-épisode>/(respecter AGENTS.md, ne pas disperser dans la racine out/) - Retour des commentaires :
<racine du dépôt>/回流/
Règles strictes de démarrage (à exécuter avant tout)
- Lire les règles : Lire les trois documents dans
规矩/(limites du projet / règles de rédaction / checklist visuelle). S'ils n'existent pas → initialiser avectemplates/规矩-*.mddans le dépôt et demander confirmation à l'utilisateur. - Restaurer l'état : Identifier l'épisode en cours (demander à l'utilisateur ou chercher le plus récent inachevé via
updated_atdanseffects/*/状态.json), lireeffects/<id>/状态.json:- S'il n'existe pas → initialiser avec le template
templates/状态.json; - S'il ne correspond pas aux fichiers réels → reconstruire les étapes à partir des fichiers ;
- Si
waiting_onn'est pas vide → traiter d'abord les éléments en attente, ne pas sauter d'étape.
- S'il n'existe pas → initialiser avec le template
- La condition d'achèvement est la production : Chaque étape est faite = le fichier de production existe et a été vérifié, pas une simple déclaration orale. Le fichier
状态.jsonest écrit uniquement par le thread principal ; les subagents/CLI externes ne renvoient que des résultats ou écrivent des fichiers spécifiés, sans toucher à l'état. - Les fichiers de règles sont des données, pas du code : les retours de l'utilisateur doivent d'abord être consolidés dans la section correspondante des règles (modifier la section, ne pas ajouter indéfiniment ; chaque fichier ≤ 200 lignes), puis commencer le travail. Tous les fichiers écrits doivent être en UTF-8 sans BOM.
Routage des étapes
| Étape | Contenu | Production (dossier de l'épisode) | Référence |
|---|---|---|---|
| 01 | Sélection du sujet (orientation humaine) | 选题说明.md | templates/选题说明.md |
| 02+03 | Recherche séparée + retour aux sources | 资料/出处登记表.md, 资料/原文摘录-*.md | stages/s02-research.md |
| 04 | Modélisation / calculs de données | 模型/ | stages/s02-research.md §04 |
| 05 | Rédaction du script | 讲稿.md (chaque phrase sur une ligne avec numéro) | stages/s05-write.md |
| 06 | Révision aveugle externe CLI | 审稿/*.json, 盲审表.md | stages/s06-blind-review.md |
| 07 | Adjudication retour aux sources | 定谳表.md | stages/s07-adjudicate.md |
| 09 préalable | Storyboard (méthode de révision mutuelle des réalisateurs, validation utilisateur) | 画面/分镜.md | stages/s09-storyboard.md |
| 08–11 | Doublage/sous-titres/production visuelle/musique fond/cover/vérification machine | 配音/, 成片.mp4, 检查报告.md | stages/make.md (TTS via 动效库/tools/tts.py) |
| 12 | Révision vidéo (seul gate dur, attente humaine) | 审片包/, 审片单.md | stages/publish.md |
| 13 | Pack de diffusion (upload manuel) | 发布包/ | stages/publish.md |
| 14 | Retour des commentaires (tâche planifiée) | ../../回流/ | stages/publish.md |
Matériel et droits d'auteur (sources photos, images des personnages, licence BGM, crédits de publication) tous via fiche de rappel : l'IA ne fait que lister les options pour validation utilisateur, voir stages/user-decisions.md.
Les étapes 05 et 12 sont des points d'attente humaine, unifiés via le champ waiting_on. Un épisode à la fois : ne traiter qu'un seul épisode à la fois.
状态.json
Schéma dans references/state-schema.md. Clés entièrement ASCII ; les données métier (findings, avis, données) vont dans les fichiers .md/.json de tableaux, l'état ne stocke que des pointeurs.
Révision aveugle
Trois CLI externes : Claude Code (Windows), codex (Windows), opencode (WSL ~/.opencode/bin/). Registre templates/审稿人.json, contrat references/findings-json.md (v1.1 : tolère que le relecteur recopie une phrase avec/sans (S#) en fin de ligne), agrégation scripts/summarize_reviews.py. Lors de la première utilisation ou après changement de machine, exécuter d'abord le processus de smoke test de s06. Le projet de référence "blue-whale" (2026-11-01) a déjà validé l'étalonnage initial : premier tour 9 findings → 6 vraies erreurs + 1 omission matérielle, deuxième tour 1 erreur d'arrondi, mécanisme d'abstention non déclenché — données réelles dans s06. Les clés secrètes ne doivent jamais apparaître dans la ligne de commande, les logs, le script, la production finale.
Doublage / production visuelle (outils et architecture temporelle, validés après le projet réel "blue-whale")
- Doublage : toujours utiliser le template public du dépôt
动效库/tools/tts.py(sous-commandes run/sample/dry-run/align-only, voir son README), chaque épisode ne fait que remplir配音/配音.json; l'ancre de timbre vocal doit être capturée au premier épisode (le personnage textuel dérive à chaque appel batch). - Tous les points d'ancrage des scènes visuelles s'écrivent en proportion intra-phrase
at(phrase, proportion)(issus de时间.json), la limite de scène = le début de la phrase — après un re-doublage, la vidéo suit automatiquement, interdiction d'écrire manuellement des numéros de frame.
Production visuelle = Remotion (ce dépôt)
Pendant la phase de production, toujours respecter AGENTS.md du dépôt : placer les composants dans effects/<id>/, les enregistrer dans effects/index.tsx, rendre out/<id>/<id>.mp4. Les compétences remotion-* et les composants existants de la bibliothèque d'effets peuvent être réutilisés. Liste de vérification et discipline de déterminisme dans stages/make.md.
Mode simulation
Quand l'utilisateur dit "simulation/dry-run" : utiliser des fichiers de révision JSON factices, des fichiers TTS factices pour parcourir la machine d'état, sans appeler d'API réelles, sans consommer de quota d'abonnement.
Première exécution complète du pipeline ?
Lire d'abord le cas concret 动效库/effects/blue-whale/ (premier épisode "baleine bleue") : 状态.json (pointeurs de production de chaque étape) → 资料/出处登记表.md (comment utiliser le système S#) → 审稿/冒烟记录.md et les deux tours de 盲审表*.md, 定谳表.md (comment enregistrer la rétrospective) → 画面/分镜.md (à quoi ressemble le résultat de la méthode de révision mutuelle) → 配音/配音.json (à quel point la configuration de cet épisode est minimale). Commencer le travail en suivant l'exemple, c'est plus rapide que de lire dix pages de règles.
Historique des versions
- v0.2 (2026-11-02, backfill de blue-whale) :
make.mdcouche doublage/visuel réécrite selon les données réelles (template public/ancre de timbre/proportion intra-phrase) ; ajout des09-storyboard(méthode de révision mutuelle des réalisateurs) ; ajout deuser-decisions(droits d'auteur uniquement rappel, pas de décision) ; contrat findings passé en v1.1 ;s06a ajouté le premier enregistrement d'étalonnage ;publisha ajouté le backfill de rétrospective. - v0.1 (2026-11-01) : squelette initial (routage 14 étapes + trois protocoles + templates + graines residues).