DOC-03 / Synedre
La Conduite
L'orchestration séquentielle des workflows de Synedre — chaque tâche complexe est une représentation tracée, mêlant agents IA et automates déterministes.
Le triptyque fondateur
Trois rôles, trois natures, une seule séquence tracée.
AGENT
L'Agent pense
Raisonnement créatif, contextuel, jugement. L'agent IA mobilise son cadre cognitif à 4 dimensions pour décider.
AUTOMATE
L'Automate exécute
Plomberie déterministe, reproductible. Le script Python fait sa tâche, capture ses logs, retourne son code de sortie.
CONDUITE
La Conduite orchestre
Séquence ordonnée de cues, tracée de bout en bout. Le Régisseur lève le rideau, exécute, ferme le rideau.
La Conduite ordonne sans imposer le résultat : ses cues sont fixés, mais un cue d’agent garde son jugement.
Le vocabulaire du théâtre
Inspiré du métier de régisseur des Années Folles — Folies Bergère, Casino de Paris. Le cahier de conduite liste chaque cue dans l'ordre.
La Conduite
Définition d'un workflow nommé — séquence ordonnée de cues, persistée et versionnée.
Le Cue
Une étape unitaire, typée — soit un cue d'agent (raisonnement), soit un cue d'automate (exécution).
La Représentation
Une exécution tracée d'une conduite, avec horodatage, durée, statut et logs structurés.
Le Régisseur
L'agent orchestrateur (Atlas) qui lit la conduite et exécute les cues séquentiellement.
Rideau
Représentation terminée avec succès. Tous les cues sont passés.
Arrêt de plateau
Représentation interrompue par un cue en échec. La trace reste pour audit.
SYSTÈME / Orchestration
L’orchestration
Comment une intention devient une livraison. Cinq phases séquentielles, une chaîne de responsabilités tracée de bout en bout.
le Fondateur
Dirige & Décide
Atlas — Orchestrateur
Analyse la tâche, dispatche les agents, synthétise les rapports.
Contexte
Données, veille, vision
Cadrage
Stratégie, ROI, Conformité
Exécution
15 agents métier
Validation
12 agents post-commit
Post-Ship
Infra, docs, après deploy
Santé
Wi WinnicottToute la session

La Liturgie des Heures
155 Automates · 7 castes
127 planifiés · 28 à la demande
Les Agents pensent. Les Automates exécutent.
Renoir
Metteur en Scène des Automates
Vigies
Surveillance
32 scripts
Horlogers
Monitoring
26 scripts
Oracles
Anticipation
26 scripts
Tisserands
Maillage
23 scripts
Bâtisseurs
Infrastructure
19 scripts
Scribes
Création
8 scripts
Cellériers
Intendance / comptes
6 scripts
Non classés
En attente de classement
15 scripts
Livraison vérifiée
Code propre, design cohérent, production vérifiée.
Les conseillers convoqués à chaque cue, et leur régisseur, sont présentés dans le Conseil.
Ce qui part sans personne
La liturgie des heures
95 déclenchements à heure fixe, 52 à toute heure. Une conduite s'invoque ; un automate, lui, part de lui-même.
| Heure | Office | Ce qui part | Nature | Où | Actif | Cause de la mort | Ce que ça fait |
|---|---|---|---|---|---|---|---|
| 00 h | Matines | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automateBâtisseurs | synedre | en vol | — | Phase 3 #182 : corrige SEULE les dead-refs déménagés sans ambiguïté dans harness/*.md (1 commit/run, réversible, capé). JAMAIS code/CLAUDE.md/--activate. active=0 = kill-switch. |
| Miroir de Shyrka — drift doc↔codesynedre/ac_doc_drift_watch.py | automateVigies | synedre | en vol | — | Veille nocturne read-only : mesure l'écart entre la doc (proprioception) et le code (corps réel). Écrit sy_doc_drift + 1 ligne backlog. Chantier #182 Phase 0. | ||
| Cœur du Synedre : orchestre 13 agents, checks et heartbeats toutes les 5 minsynedre/archive/ac_agents_reactor.py | automateBâtisseurs | vaisseau-mère | éteint | Mort en production sans bruit — ses treize surveillances ont été reprises par des automates dédiés. 2026-05-03 | Cœur du Synedre : orchestre 13 agents, checks et heartbeats toutes les 5 min | ||
| Boucle Ouroboros informationnelle : GSC → Content Intelligence → contenusynedre/archive/ac_ouroboros.py | metaskillOracles | vaisseau-mère | éteint | Mort en production sans bruit — constaté lors d'un balayage de la flotte. 2026-05-03 | Boucle Ouroboros informationnelle : GSC → Content Intelligence → contenu | ||
| Synchronisation des covers blog (injection covers manquantes)synedre/archive/ac_cover_sync.py | automateScribes | vaisseau-mère | éteint | Mort en production sans bruit — constaté lors d'un balayage de la flotte. 2026-05-03 | Cron horaire batch catch-up : scan TOUS articles sans cover et fixe (filet de sécurité si coverwatch rate). | ||
| 01 h | Relève hebdomadaire d'UN concurrent, de bout en bout.synedre/ac_etbcompare_weekly.py | automateOracles | vaisseau-mère | en vol | — | Enchaîne les trois gestes qui n'ont de valeur qu'ensemble : scraping du concurrent → étiquetage des natures → synchronisation PrestaShop. | |
| Synchronisation des avis Google Business Profilesynedre/ac_google_reviews_sync.py | automateTisserands | vaisseau-mère | en vol | — | Flow : 1. Lecture/config des Place IDs depuis ps_ac_business (ou lookup auto) 2. Pour chaque établissement configuré : a. GET place/details → name, rating, user_ratings_total, reviews (≤5) b. UPSERT vaisseau_mere_ac.ps_ac_reviews via SSH + psql c. UPDATE vaisseau_mere_ac.ps_ac_business (total_rating, total_reviews) | ||
| Pont PHP → Python pour la génération automatique de coverssynedre/archive/ac_coverwatch.py | automateScribes | vaisseau-mère | éteint | Absorbé par le générateur de couvertures, qui traite désormais sa file lui-même. 2026-05-02 | Cron */5 event-driven : poll ps_ac_cms_extra.generate_cover=1 (flag posé par hook PHP) puis lance ac_coverinject. | ||
| Audit qualité + résolution automatique des pages publiques | automateVigies | vaisseau-mère | éteint | — cause non documentée | Worker invoqué par ac_audit (façade) ET ac_pipeline. Qualité technique des pages publiques. | ||
| 02 h | ac_seo_queue_feedersynedre/ac_seo_queue_feeder.py | automateNon classés | vaisseau-mère | en vol | — | — non documenté | |
| Standup matinal du Fondateur (run 2026-06-16).synedre/ac_standup_digest.py | automateOracles | vaisseau-mère | en vol | — | Un seul email à 04h30 locale (02h30 UTC), AVANT le bloc profond 5h-8h. Agrège les signaux de la nuit et les ROUTE : pour chaque email client / item, une étiquette pré-calculée run | chantier | draft | noise + une justif d'une ligne. But : faire du triage matinal un acte de DÉCISION (cocher/corriger), pas une re-lecture. Réduit la charge cognitive d'un Fondateur mono-focus. | ||
| Décotes DLC Autosynedre/ac_cron_expiry_discounts.py | automateCellériers | vaisseau-mère | éteint | — cause non documentée | Synchronise ps_specific_price pour les lots en fenêtre DLC 0-14j. Idempotent. Consommé par feature food-expiry (module ac_expiry). | ||
| Génère les sitemaps XML (produits, catégories, CMS, pages spéciales)synedre/archive/ac_sitemap.py | automateTisserands | vaisseau-mère | éteint | Porté en TypeScript — la reconstruction du maillage interne est passée au moteur du site. 2026-05-03 | Génère les sitemaps XML (produits, catégories, CMS, pages spéciales) | ||
| Audit de sécurité des dépendances npm et pip | automateVigies | vaisseau-mère | éteint | — cause non documentée | Vigies (jeudi 2h) : audit sécurité dépendances npm + pip (CVE, versions obsolètes). | ||
| + 1 compté, non nommé | |||||||
| 03 h | Laudes | Classifie le billing_mode des automates.synedre/ac_automate_billing_scan.py | skillCellériers | vaisseau-mère | désactivé | — | Remplit sy_automates.billing_mode par analyse STATIQUE du code de chaque script (non-LLM — grep, aucun appel modèle). Catégories = MODE de facturation, pas le modèle (le modèle est dans la colonne cli_model) : |
| Automate de mise à jour de la documentation publique synedre.com.synedre/ac_doc_publish.py | conduiteNon classés | synedre | désactivé | — | Principe FERME : assainissement + staging automatisés. Publication GATÉE par un humain. Cet automate ne touche JAMAIS sy_doc_chapter (le live) de lui-même (hors --activate qui est un geste humain délibéré). | ||
| Automate de staging des cicatrices publiques.synedre/ac_cicatrices_publish.py | conduiteNon classés | synedre | désactivé | — | Principe FERME : assainissement + staging automatisés. Publication GATÉE par un humain. Cet automate ne rend JAMAIS rien public seul (insère active=0). | ||
| Résumé réactions /joursynedre/ac_daily_react_summary.py | skillNon classés | vaisseau-mère | désactivé | — | Agrégat quotidien des réactions. | ||
| Supervision de fraîcheur netlinking (chantiersynedre/ac_netlinking_supervisor.py | automateTisserands | vaisseau-mère | en vol | — | NON-LLM, cron-safe (doctrine [[feedback_no_llm_in_cron_use_ondemand]]) : ce script ne parle PAS à Semrush et ne relance PAS de scan lui-même. Le MCP Semrush est authentifié en session interactive — absent en headless/cron (cf Workflow tool : "interactively-authenticated MCP servers may be absent in headless/cron runs"). Un vrai scan exige donc une session Claude vivante (skill /netlinking). | ||
| 04 h | Régénération doc gatée (Shyrka)synedre/ac_doc_regen_cycle.py | automateScribes | synedre | se croit vivant | — | Phase 1 #182 : QUOTIDIEN — drift→re-staging gaté→gate Mitnick→draft Alex SI écart change. Stop au staging, --activate JAMAIS auto. | |
| Audit de pertinence + RÉCONCILIATION de statut des chantiers.synedre/ac_chantier_relevance_audit.py | conduiteNon classés | vaisseau-mère | désactivé | — | Pour chaque chantier actif (archived_at IS NULL, status NOT IN {done,cancelled}) : 1. Heuristiques cheap (sans LLM) : - Toutes les tâches sont done/cancelled (≥1 done) → verdict 'done' - status='test' → verdict 'done' (fait, attend review/ship Alex) 2. | ||
| Autonomous skill creation (Hermes pattern).synedre/ac_skill_proposal_detector.py | conduiteNon classés | vaisseau-mère | désactivé | — | Travail #130 self-improving-memory. Architecture : "agent détecte un pattern récurrent dans `sy_tache_iteration` → propose nouvelle skill → fondateur valide via /hub/skills/proposals → promote vers `sy_skill`". | ||
| Moteur d'optimisation SEO multilingue PAR PAGE (chantiersynedre/ac_seo_optimizer.py | skillNon classés | vaisseau-mère | désactivé | — | Pour chaque page d'entité (product/category/cms/special) × langue active, la spine exécute : snapshot (backup) → audit multi-dimensions → remédiation gatée → QA → statut (done) OU rollback (si QA KO). « 1 page faite à fond avant la suivante » (doctrine Alex). | ||
| Rêve nocturnesynedre/ac_dream.py | conduiteOracles | vaisseau-mère | désactivé | — | Consolidation onirique mémoire (RAG/pgvector). | ||
| 05 h | Bilan de santé de Shyrkasynedre/ac_conscience_health.py | metaskillHorlogers | vaisseau-mère | se croit vivant | — | Phase 2 #182 : agrège proprioception(doc)+dette(backlog)+apprentissage(KPI)+automates(cron) en 1 verdict nocturne → sy_conscience_health + report ps_ac_daily_meet. Read-only. | |
| Battement de conscience de Shyrkasynedre/ac_conscience_tick.py | automateHorlogers | synedre | en vol | — | Phase 4 #182 : orchestrateur unique — percevoir→soigner(Winnicott)→régénérer profond(gaté Mitnick)→proposer. Lock anti-runaway + kill-switch. Cron quotidien. | ||
| Le scanner d'entropie du Synedre (chantier #209 « L'Élagueur »).synedre/ac_elagueur.py | automateHorlogers | vaisseau-mère | en vol | — | « Apprendre à Shyrka à se laver toute seule. » L'Ouroboros a une bouche (chaque session ajoute) ; ce module lui donne un intestin : il détecte des classes typées de crasse, les consigne dans vaisseau_mere_ac.sy_cruft_candidate, ET AGIT sur les classes dont l'innocuité est PROUVÉE à l'instant du geste. | ||
| ac_netlinking_discover_contactssynedre/ac_netlinking_discover_contacts.py | conduiteNon classés | vaisseau-mère | en vol | — | — non documenté | ||
| ac_wayback_archive | automateNon classés | vaisseau-mère | en vol | — | — non documenté | ||
| 06 h | Prime | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automateBâtisseurs | synedre | en vol | — | Phase 3 #182 : corrige SEULE les dead-refs déménagés sans ambiguïté dans harness/*.md (1 commit/run, réversible, capé). JAMAIS code/CLAUDE.md/--activate. active=0 = kill-switch. |
| Facturation Récurrentesynedre/ac_invoicing_recurring.py | automateCellériers | vaisseau-mère | en vol | — | Émission des factures/avoirs récurrents (abonnements ac_subscription) à échéance. | ||
| Sync Bancairesynedre/ac_bank_sync.py | automateCellériers | vaisseau-mère | en vol | — | Synchronisation quotidienne des transactions bancaires via providers (Powens pour BoursoBank). | ||
| Hygiène des profils Chrome de la box bucéphale.synedre/ac_bucephale_tab_hygiene.py | automateHorlogers | vaisseau-mère | en vol | — | Rend MÉCANIQUE la doctrine écrite dans `documentation/BUCEPHALE_CHROME_RUNBOOK.md` §6, qui n'existait jusqu'ici que sous forme de prose — et qui a donc été violée deux fois en huit jours. | ||
| Rotation des fichiers .log dans automation/ (évite croissance illimitée)synedre/ac_log_rotate.py | automateHorlogers | vaisseau-mère | en vol | — | Rotation des fichiers .log dans automation/ (évite croissance illimitée) | ||
| + 2 comptés, non nommés | |||||||
| 07 h | ac_blog_queue_watchsynedre/ac_blog_queue_watch.py | automateNon classés | vaisseau-mère | en vol | — | — non documenté | |
| ac_glm_autonomy_heartbeatsynedre/ac_glm_autonomy_heartbeat.py | automateNon classés | vaisseau-mère | en vol | — | — non documenté | ||
| Pousse la liturgie des heures vers synedre.com.synedre/ac_liturgie_sync_public.py | automateNon classés | synedre | en vol | — | — description interne | ||
| Scanner de leads entrants depuis les bookings Calendly.synedre/ac_lead_scan.py | automateTisserands | vaisseau-mère | en vol | — | — description interne | ||
| Vigie de COUVERTURE SEO (source FR) multi-tenant.synedre/ac_seo_coverage.py | automateVigies | vaisseau-mère | en vol | — | — description interne | ||
| + 2 comptés, non nommés | |||||||
| 08 h | Automate FinOps AE (Pacioli), chantier #212.synedre/ac_pacioli_automate.py | automateCellériers | vaisseau-mère | en vol | — | — description interne | |
| ac_fiscal_seuils_watchsynedre/ac_fiscal_seuils_watch.py | automateNon classés | vaisseau-mère | en vol | — | — non documenté | ||
| Digest SEO bi-hebdo Gauss (chantier #213).synedre/ac_gauss_seo_digest.py | automateOracles | vaisseau-mère | en vol | — | Couche de LIVRAISON sur la sentinelle SEO existante (ac_seo_sentinel.py). NE duplique PAS le moteur SEO. Lit uniquement : - vaisseau_mere_ac.sy_seo_health_history (snapshots sentinelle) - vaisseau_mere_ac.ps_ac_gsc_data (GSC granulaire — vide à ce jour) | ||
| Garde-fou Ads #2 (chantier #380synedre/ac_audit_lead_capture_divergence.py | automateVigies | T-019 | en vol | — | Distinct du garde-fou #1 (ac_audit_conversion_coverage.py, statique — vérifie que le CODE est câblé) : celui-ci est un moniteur RUNTIME — vérifie que l'attribution est RÉELLEMENT captée sur les leads récents d'un tenant. | ||
| Prépare le Daily Meet avant l'arrivée du Fondateur (8 checks) | automateHorlogers | vaisseau-mère | éteint | — cause non documentée | Prépare le Daily Meet avant l'arrivée du Fondateur (8 checks) | ||
| + 1 compté, non nommé | |||||||
| 09 h | Tierce | ac_blog_relais_publicationsynedre/ac_blog_relais_publication.py | automateNon classés | T-019 | en vol | — | — non documenté |
| ac_netlinking_outreachsynedre/ac_netlinking_outreach.py | automateNon classés | vaisseau-mère | en vol | — | — non documenté | ||
| Refresh quotidien de mv_cicatrices_kpi.synedre/ac_cicatrices_kpi_refresh.py | automateOracles | vaisseau-mère | en vol | — | Chantier #148 autonomie-apprentissage / tâche #1351. | ||
| Re-snapshot contenu synedre.comsynedre/ac_synedre_content_snapshot.py | automateTisserands | synedre | en vol | — | — description interne | ||
| Détecte les commentaires qui mentent sur le code vivant.synedre/ac_audit_comment_drift.py | automateVigies | vaisseau-mère | en vol | — | Pattern trouvé 3× le 2026-07-19 (session budget/model-tiering) : - « Rollback assuré par bin/ship-health-check.sh » → jamais appelé - « Palier géré côté worker/recommended_model » → jamais lu - « 0 ref » d'un scanner zombie → fichier réellement importé | ||
| 10 h | Pousse les garde-fous PUBLIABLES vers le VPS synedre.synedre/ac_system_hook_sync_public.py | automateNon classés | synedre | en vol | — | — description interne | |
| Sentinelle d'intégrité doctrine ↔ enforcement (chantier #428).synedre/ac_audit_doctrine.py | automateVigies | vaisseau-mère | en vol | — | Rend la règle « 1 doctrine = 1 hook » ([[feedback_doctrine_requires_enforcement_hook]]) VÉRIFIABLE en continu. Croise TROIS registres : | ||
| Génération Dictionnaire | automateScribes | vaisseau-mère | éteint | — cause non documentée | Génération termes dictionnaire technique | ||
| Pipeline Centaure (Humain + IA) : génération d'articles blog | automateScribes | vaisseau-mère | éteint | — cause non documentée | Pipeline Centaure (Humain + IA) : génération d'articles blog | ||
| Veille compétitive Synedre vs frameworks multi-agents concurrents | automateVigies | synedre | éteint | — cause non documentée | Veille compétitive Synedre vs frameworks multi-agents concurrents | ||
| 11 h | Les garde-fous éteints « en attendant » quisynedre/ac_audit_extinctions_conditionnelles.py | automateNon classés | vaisseau-mère | en vol | — | POURQUOI CE MODULE EXISTE (incident fondateur 2026-08-07) Le cron `ac_bucephale_system_health` était éteint depuis le 01/08, au motif que `ac_cron_wrapper` compterait ses WARN comme des crashs. | |
| Veille Newsletterssynedre/archive/ac_veille_newsletters.py | skillNon classés | vaisseau-mère | éteint | Évincé lors de la bascule des tâches Python vers le moteur du site. 2026-05-03 | Front 4 Marco Polo : veille newsletters email (Medium, IndieHackers). Collecte quotidienne 5h UTC + synthèse IA samedi 6h30 UTC. | ||
| Rapport quotidien envoyé par email à 7h (Paris) | automateOracles | vaisseau-mère | éteint | — cause non documentée | Rapport quotidien envoyé par email à 7h (Paris) | ||
| Audit schéma DB vs convention §NAMING | automateVigies | vaisseau-mère | éteint | — cause non documentée | Scan quotidien ps_ac_* : détecte violations règles 2/6/7/9/11/12 (pluriel, i18n, JSON métier, doublons). Chaque violation -> INSERT ps_ac_backlog debt_archi P0 (dédup). | ||
| 12 h | Sexte | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automateBâtisseurs | synedre | en vol | — | Phase 3 #182 : corrige SEULE les dead-refs déménagés sans ambiguïté dans harness/*.md (1 commit/run, réversible, capé). JAMAIS code/CLAUDE.md/--activate. active=0 = kill-switch. |
| Gate flotte : alerte si une box tenant prod n'asynedre/ac_audit_fleet_hardening.py | automateVigies | vaisseau-mère | en vol | — | — description interne | ||
| Invariant DB-live « tout agent_codenamesynedre/ac_audit_agent_codename_naming.py | automateVigies | vaisseau-mère | en vol | — | Né de la cicatrice #2231 (dette systémique nickname vs codename) : ps_ac_agents porte DEUX noms par entité — `codename` technique (orchestrator/backend) et `nickname` d'affichage (Atlas/Turing). 27 tables référencent un champ `agent_codename` qui mélange silencieusement les deux, SANS FK ni CHECK. | ||
| Miroir de Shyrka — drift doc↔codesynedre/ac_doc_drift_watch.py | automateVigies | synedre | en vol | — | Veille nocturne read-only : mesure l'écart entre la doc (proprioception) et le code (corps réel). Écrit sy_doc_drift + 1 ligne backlog. Chantier #182 Phase 0. | ||
| Vigie de la page visite du Pape Léon XIV à Metz (28/09/2026).synedre/ac_pape_metz_watch.py | automateVigies | vaisseau-mère | en vol | — | Léa veut 4 places (2 adultes + 2 enfants). Au 22/06/2026 la page officielle https://metz.catholique.fr/pape-metz/ dit noir sur blanc : « À ce stade, inutile d'écrire pour demander à réserver une place. » Les modalités de participation y apparaîtront « dès que le programme officiel sera connu ». | ||
| 13 h | Sentinelle anti-mort-silencieuse des hooks (chantier #421).synedre/ac_audit_hooks_db.py | automateVigies | vaisseau-mère | en vol | — | Un hook câblé qui tape une DB morte fail-open → il tourne « à vide » sans erreur. C'est ainsi que l'injection de cicatrices est restée éteinte après la mort de MariaDB, laissant passer une confabulation. Cette sentinelle empêche que ça se reproduise. | |
| Épreuve automatique pour les agents non testés depuis 7+ jourssynedre/archive/ac_drill_auto.py | metaskillBâtisseurs | vaisseau-mère | éteint | Évincé lors de la bascule des tâches Python vers le moteur du site. 2026-05-03 | Épreuve automatique pour les agents non testés depuis 7+ jours | ||
| Teste que le dernier backup est valide et restaurablesynedre/archive/ac_backup_test.py | automateHorlogers | vaisseau-mère | éteint | Évincé lors de la bascule des tâches Python vers le moteur du site. 2026-05-03 | Teste que le dernier backup est valide et restaurable | ||
| 14 h | Sync embeddingssynedre/ac_embedding_sync.py | automateOracles | vaisseau-mère | en vol | — | Réindexation pgvector des contenus. | |
| Vigie rétroactive : aucun échappement SQL maison quisynedre/ac_audit_sql_escape.py | automateVigies | vaisseau-mère | en vol | — | CLASSE DE BUG COUVERTE Un réflexe MariaDB — « protéger » l'antislash en le doublant — appliqué à une base PostgreSQL, où l'antislash d'un littéral est DÉJÀ littéral (standard_conforming_strings = on). Doubler n'y protège rien : ça AJOUTE un antislash. Les colonnes étant TEXT, PG ne valide rien et la corruption s'accumule sans un bruit. | ||
| Fetch newsletter Medium (IMAP → JSON articles IA)synedre/archive/ac_email_fetcher.py | automateScribes | vaisseau-mère | éteint | Maillon d'une chaîne morte — archivé avec le script qu'il alimentait. 2026-05-03 | Connexion IMAP Medium, extraction articles IA/ML/LLM en JSON | ||
| + 1 compté, non nommé | |||||||
| 15 h | None | Capteur de récidive de cicatrices (miss du recall).synedre/ac_cicatrice_repeat_detect.py | automateOracles | vaisseau-mère | en vol | — | Prérequis au bornage du contexte injecté (feedback_glm_zai_context_cost) : on ne peut réduire ce qui est injecté SANS risque qualité que si un capteur détecte les miss du recall — les cas où une cicatrice pertinente existait mais n'a pas été servie, et l'erreur s'est reproduite. |
| Audit périodique des cicatrices P0/P1 sans dent.synedre/ac_audit_unguarded_scars.py | automateVigies | vaisseau-mère | en vol | — | Chantier #380 (scar-to-guardrail-engine) : « aucune leçon P0/P1 sans garde-fou qui la rend impossible à refaire ». Ce script liste les cicatrices severity IN ('critical','high') avec guardrail_status='todo' — celles qui n'ont ni check mécanique (guardrail_status='enforced') ni justification explicite de non-mécanisabilité (guardrail_status='vigilance'). | ||
| Automate anti-hallucination : vérification des faits dans les articles | automateVigies | vaisseau-mère | éteint | — cause non documentée | Automate anti-hallucination : vérification des faits dans les articles | ||
| 16 h | Santé SYSTÈME de la box OMEN bucéphale.synedre/ac_bucephale_system_health.py | automateNon classés | vaisseau-mère | en vol | — | Complément de `ac_bucephale_chrome_health` (qui ne regarde QUE les 2 Chrome CDP). Ici on surveille le SOCLE : pilote GPU, kernel/reboot en attente, mémoire, swap, disque, thermique. Cf [[reference_omen_pc_browser_ai_box]]. | |
| Audit de couverture SEO i18n MULTI-TENANT × MULTI-LANGUE.synedre/ac_audit_seo_i18n.py | automateVigies | vaisseau-mère | en vol | — | Pour chaque tenant enrôlé (sy_seo_sentinel_target.enabled) × chaque langue active (ps_lang du tenant, hors FR) × chaque (entité, champ SEO), compte les 3 défauts : • manquant : pas de ligne traduite / champ vide • dupliqué : même valeur partagée par >1 entité active (signature corruption import ; catégories groupées par (parent,valeur) — sous-cat légitime sous N piliers) • français : la valeur… | ||
| Synchronise ps_ac_universal_faq → faq-data.json pour Nuxt SSR | automateTisserands | vaisseau-mère | éteint | — cause non documentée | Synchronise ps_ac_universal_faq → faq-data.json pour Nuxt SSR | ||
| 17 h | Cron stub qui rafraîchitsynedre/ac_chantier_outcome_kpi_refresh.py | automateOracles | vaisseau-mère | en vol | — | Ce que ce script FAIT (MVP, honnête sur son périmètre) : - Liste les chantiers actifs (archived_at IS NULL) avec outcome_kpi renseigné et outcome_reached_at encore NULL (KPI pas encore confirmé atteint). | |
| Health check infrastructure au démarrage de session | automateHorlogers | vaisseau-mère | éteint | — cause non documentée | Health check infrastructure au démarrage de session | ||
| Hygiène Blog | automateVigies | vaisseau-mère | éteint | — cause non documentée | Vérification qualité articles blog | ||
| 18 h | Vêpres | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automateBâtisseurs | synedre | en vol | — | Phase 3 #182 : corrige SEULE les dead-refs déménagés sans ambiguïté dans harness/*.md (1 commit/run, réversible, capé). JAMAIS code/CLAUDE.md/--activate. active=0 = kill-switch. |
| Miroir de Shyrka — drift doc↔codesynedre/ac_doc_drift_watch.py | automateVigies | synedre | en vol | — | Veille nocturne read-only : mesure l'écart entre la doc (proprioception) et le code (corps réel). Écrit sy_doc_drift + 1 ligne backlog. Chantier #182 Phase 0. | ||
| Vigie de la page visite du Pape Léon XIV à Metz (28/09/2026).synedre/ac_pape_metz_watch.py | automateVigies | vaisseau-mère | en vol | — | Léa veut 4 places (2 adultes + 2 enfants). Au 22/06/2026 la page officielle https://metz.catholique.fr/pape-metz/ dit noir sur blanc : « À ce stade, inutile d'écrire pour demander à réserver une place. » Les modalités de participation y apparaîtront « dès que le programme officiel sera connu ». | ||
| Brossage de dents du Synedre : nettoyage profils et fichiers 2x/jour | automateHorlogers | vaisseau-mère | éteint | — cause non documentée | Brossage de dents du Synedre : nettoyage profils et fichiers 2x/jour | ||
| ac_nightingalesynedre/ac_nightingale.py | automateTisserands | vaisseau-mère | éteint | Remplacé par la surveillance à deux rythmes des demandes clients — découverte continue, alertes deux fois par jour. 2026-07-31 | — non documenté | ||
| + 1 compté, non nommé | |||||||
| 19 h | Revue Élagage Cicatrices (Renoir)synedre/ac_elagage_review.py | automateNon classés | vaisseau-mère | en vol | — | Revue périodique Article 25 : pilote la machine ac_elagage (backfill/acquired/dead), remonte les plaies non cicatrisées (resolved=0 ET recall>=50) à l'humain, verse en mémoire longue. Déterministe, zéro LLM. Chantier #1578. | |
| Vigie « le tag de mesure est-il RÉELLEMENT servi,synedre/ac_tag_coverage_sentinel.py | automateNon classés | vaisseau-mère | en vol | — | — description interne | ||
| Scanner de leads entrants depuis les bookings Calendly.synedre/ac_lead_scan.py | automateTisserands | vaisseau-mère | en vol | — | — description interne | ||
| Cache local des images Instagram (URL CDN expire ~24h)synedre/archive/ac_instagram_image_cache.py | automateVigies | vaisseau-mère | éteint | Emporté par la refonte du stockage des publications Instagram. 2026-05-03 | — description interne | ||
| 20 h | Purge et rétention des events sy_agent_event (chantier #544,synedre/ac_event_retention.py | automateHorlogers | vaisseau-mère | en vol | — | La denylist (ac_event_persistor, tâche #123842) arrête l'hémorragie à l'écriture. Ce module soigne l'existant : purge par lots + rétention continue par ancienneté. | |
| Link Doctorsynedre/archive/ac_link_doctor.py | automateVigies | vaisseau-mère | éteint | Porté en TypeScript — la reconstruction du maillage interne est passée au moteur du site. 2026-05-03 | Scan 404 liens internes et externes | ||
| + 2 comptés, non nommés | |||||||
| 21 h | Complies | ac_cover_nightlysynedre/ac_cover_nightly.py | automateNon classés | vaisseau-mère | se croit vivant | — | — non documenté |
| Collecteur quotidien des métriques memory/ et MEMORY.md.synedre/ac_memory_metrics.py | automateHorlogers | vaisseau-mère | en vol | — | Collecte : - Nombre de fichiers .md dans memory/ - Taille totale (Ko) - Nombre de lignes de MEMORY.md - Liens morts / orphelins (via detect_dead_links.py) | ||
| Détecte les patterns récurrents dans sy_tache_iterationsynedre/ac_pattern_detector.py | automateOracles | vaisseau-mère | en vol | — | Phase UI-10.5 chantier synedre-os-cockpit. Pattern Hermes "autonomous skill creation". | ||
| Pipeline maillage interne SEOsynedre/archive/ac_maillage.py | automateTisserands | vaisseau-mère | éteint | Porté en TypeScript — la reconstruction du maillage interne est passée au moteur du site. 2026-05-03 | Façade orchestrateur subprocess (pattern accepté) : enchaîne linkmap + dict_linkinject + academy_linkinject. Workers gardent leur identité CLI. | ||
| 22 h | ac_translate_blog_nightlysynedre/ac_translate_blog_nightly.py | automateNon classés | vaisseau-mère | se croit vivant | — | Traduit chaque nuit les articles de blog qui manquent dans les langues actives du tenant. Lit les langues en base, ne traduit jamais vers la langue source, refuse une sortie qui n'est pas dans la langue attendue, et prend un dump de ps_cms_lang avant d'écrire. | |
| Auto-armement des chantiers prioritaires — gaté par l'audit de pertinence.synedre/ac_chantier_auto_arm.py | automateBâtisseurs | vaisseau-mère | en vol | — | Arbitrage Alex 2026-07-17 (chantier autonomie-nuit-reelle #464) : « auto-armer les P0 du périmètre autorisé », puis « il faut quand même vérifier si les chantiers sont toujours d'actualité ». | ||
| Sentinelle anti-dérive du système de modules CodeMyShop.synedre/ac_module_audit.py | automateVigies | vaisseau-mère | en vol | — | Vérifie que la DOCTRINE module ↔ CODE ne dérive pas, sur toute la flotte `codemyshop/{community,enterprise,core}/modules/`. Symétrique des autres audits (ac_taxonomy_sentinel, ac_lexicon_audit) : DRY-RUN strict, lecture seule, exit 0 sain / 1 drift, email d'alerte auto sur drift. | ||
| Moteur d'entraînement spartiate du Synedre (épreuves agents)synedre/ac_drill.py | metaskillBâtisseurs | vaisseau-mère | éteint | — cause non documentée | Moteur d'entraînement spartiate du Synedre (épreuves agents) | ||
| 23 h | Pipeline cicatrices unifiésynedre/archive/ac_cicatrice.py | automateOracles | vaisseau-mère | éteint | Mort en production sans bruit — constaté lors d'un balayage de la flotte. 2026-05-03 | Façade orchestrateur subprocess (pattern accepté) : commande all = harvest + sync. Workers gardent leur identité CLI. | |
| Matomo Check | automateVigies | vaisseau-mère | éteint | — cause non documentée | Vérification santé Matomo analytics | ||
| ∞ | À toute heure | Organe de Délibération | skillOracles | vaisseau-mère | se croit vivant | — | Moteur de confrontation multi-agents (sy_deliberation*). Kill-switch : active=0 désactive instantanément. Contrat sécurité : aucune écriture hors sy_deliberation*, aucune action déclenchée. |
| Composition du brouillon de réponse WhatsApp (Turing, | skillNon classés | vaisseau-mère | désactivé | — | Calque de synedre/ac_atlas_reply_compose.py (compose_client_reply) mais côté AMONT : déclenché sur un message ENTRANT (ps_ac_inbox_whatsapp, direction='in'), rédige un brouillon tone-aware et l'écrit sur la même ligne (draft_text / draft_model / draft_status='drafted'). | ||
| Traitement des revues doc externes (chantier #192). | conduiteNon classés | synedre | désactivé | — | Feature « Le regard des autres » : dépile les reviews soumises par l'humain-centaure (réponse d'un modèle externe portée depuis l'extérieur du pipeline), les évalue via un claude -p sandboxé anti-injection, et — si le verdict est valide — SIGNALE la régén au tick (DÉCOUPLÉ 2026-06-07, plus de deep_regen inline). | ||
| Worker async Atlas : enrichit les events négo non traités. | conduiteNon classés | vaisseau-mère | désactivé | — | Pour chaque sy_negociation_event WHERE atlas_processed_at IS NULL : 1. Charge le contexte négo (qualif_json, chantier lié, 5 derniers events). 2. Spawne Atlas via node-pty ([[feedback_agent_invocation_node_pty]] — JAMAIS claude -p). 3. Parse la réponse : QUALIF_DELTA + PROPOSED_ACTIONS. 4. Persiste atlas_extraction_json + atlas_processed_at. 5. | ||
| Worker HÔTE qui draine la queue sy_brainstorm_job. | skillScribes | vaisseau-mère | désactivé | — | — description interne | ||
| Automate cron : aligne mot-à-mot la bibliothèque en tâche de fond. | automateBâtisseurs | vaisseau-mère | en vol | — | Alex veut que la synchro karaoké soit bonne D'OFFICE quand il joue un morceau — pas un bouton à cliquer. Ce script balaie la bibliothèque soulseek, cherche les paroles synchronisées (lrclib.net) des pistes pas encore alignées, et lance l'alignement mot-à-mot WhisperX (bucéphale, cf `ac_lyrics_align.py`) pour celles qui en ont. | ||
| Orbite QA — auto-clôture des chantiers en phase test (chantier #435 / T1, Turing). | automateBâtisseurs | vaisseau-mère | en vol | — | — description interne | ||
| Rejeu premium des tâches haute-altitude basculées (travail | automateBâtisseurs | vaisseau-mère | en vol | — | Quand le forfait Claude est épuisé, run_with_failover bascule TOUT sur une marque de secours et flague replay_on_reset=1 les tâches HAUTE-ALTITUDE (sy_chantier_tache, cf _flag_replay_if_high_altitude). Cet automate les rejoue sur Claude (premium) une fois le forfait réinitialisé. | ||
| Spawn Atlas | metaskillBâtisseurs | vaisseau-mère | en vol | — | Lanceur de sessions Atlas autonomes. | ||
| Worker daemon Phase UI-2 chantier synedre-os-cockpit. | metaskillBâtisseurs | vaisseau-mère | en vol | — | Pick une (ou N) sy_task_exec WHERE status='pending' ORDER BY date_add LIMIT N, mark running, spawn process selon template, stream stdout vers output_log, mark completed/failed selon exit code. | ||
| Cost Alert — Vérifie le cumul mensuel API Anthropic vs budget configuré. | automateCellériers | vaisseau-mère | en vol | — | Si le cumul dépasse 80 % du budget mensuel (sy_cost_budget), envoie un email d'alerte interne UNE seule fois par mois via le flag alerted_at. | ||
| Relevé périodique du forfait Z.ai (GLM), via scraping du | automateCellériers | vaisseau-mère | en vol | — | — description interne | ||
| Alerte si /tmp/atlas-inbox-poll.lock > 10min | automateHorlogers | vaisseau-mère | en vol | — | ac_atlas_lock_watchdog.sh — alerte si /tmp/atlas-inbox-poll.lock > 10min | ||
| Autonomie tick — seeder quotidien des chantiers mode_auto (autonomie-v2 #178). | automateHorlogers | vaisseau-mère | en vol | — | Le worker (ac_task_worker) self-chaîne DANS un travail (maybe_chain_next_auto_task), mais rien n'AMORCE le pipeline : un travail mode_auto avec des tâches todo et aucun run jamais créé reste dormant. Ce tick comble le cold-start : pour chaque chantier mode_auto, il seed un `sy_task_exec` pending pour la prochaine tâche ÉLIGIBLE de chaque travail actif sans run en cours. | ||
| Garde-fou cache SWR ↔ Redis partagé — détecte le "dump pm2 à env nu". | automateHorlogers | vaisseau-mère | en vol | — | — description interne | ||
| Génère un rapport de monitoring JSON complet. | automateHorlogers | vaisseau-mère | en vol | — | Collecte 17 sections (infra, SSL, backups, HTTP, automates, SEO, bots, etc.) et écrit le résultat dans core/server/data/monitoring-data.json + .docker-app/server/data/monitoring-data.json. | ||
| Runaway Detector — Auto-pause des tâches bloquées (>3h sans update ou >150k tokens). | automateHorlogers | vaisseau-mère | en vol | — | Détecte les tâches status='doing' qui dépassent les seuils de sécurité : - date_upd plus ancienne de 3h (tâche silencieuse / bloquée) - actual_tokens > 150 000 (consommation excessive) | ||
| SRE Alert — Alertes email pour échecs rollback et cicatrices critiques. | automateHorlogers | vaisseau-mère | en vol | — | Surveille sy_lovelace_review_run (NO_GO + rollback_done) et ps_ac_cicatrices (critical/high non résolues), envoie une alerte email interne via ac_email_client. | ||
| Synchronise sy_automates avec le crontab réel. | automateHorlogers | vaisseau-mère | en vol | — | Problème (chantier visibilité crons, 2026-07-22) : la colonne ps_ac_automates.schedule est un label manuel qui dérive du crontab réel (NULL pour 44/75 recurring → faux « cron manquant »). Alex veut que l'UI reflète la vérité du crontab vivant, pas un label qui pourrit. | ||
| Tick orchestrateur des OBJECTIFS autonomes. | automateHorlogers | vaisseau-mère | en vol | — | Miroir de ac_autonomie_tick, un cran au-dessus : là où le tick chantier seede des tâches, le tick objectif DÉCOMPOSE des buts et SUIT leur avancement. Il n'exécute rien lui-même — l'exécution des chantiers engendrés reste au pipeline existant (auto_arm → ac_autonomie_tick → worker → QA → auto_ship). | ||
| ac_worker_watchdog | automateNon classés | vaisseau-mère | en vol | — | — non documenté | ||
| Audit de READINESS (complétude autonomie) des chantiers. | skillNon classés | vaisseau-mère | en vol | — | ORTHOGONAL à ac_chantier_relevance : - relevance → « ce chantier est-il encore d'actualité / déjà fait ? » - readiness → « ce chantier est-il COMPLET et exécutable en autonomie ? » | ||
| Audit zombies active↔crontab | automateNon classés | vaisseau-mère | en vol | — | Vigie FinOps (non-LLM, lecture seule) : détecte sy_automates.active=1 absent du crontab (zombie) et crons actifs non enregistrés en DB (orphelin). Alerte seule — jamais d'activation/désactivation auto (décision humaine). */30 min via wrapper. Axe 3 FinOps #505. | ||
| Drain unifié des erreurs cron connues (chantier | automateNon classés | vaisseau-mère | en vol | — | LA MOITIÉ MANQUANTE DE REPAIR_MAP. ``ac_cron_wrapper.py`` ne répare qu'INTRA- CYCLE : au moment exact où un cron crashe. Les erreurs accumulées dans ps_ac_cron_errors ne sont JAMAIS re-scrubbées. Mesuré le 2026-08-13 : 3280 lignes (auto_fixed=0 AND retry_success=0 AND deactivated=0), dont 31 module_missing réparables par un fix EXISTANT mais jamais rejoué hors-cycle. | ||
| Détecteur de silence des crons (Renoir, chantier | automateNon classés | vaisseau-mère | en vol | — | L'AUTRE MOITIÉ du battement. `ac_cron_beat.py` PROUE qu'un cron a tourné en écrivant `sy_cron_heartbeat.last_beat_at` ; ce module LIT ce registre et déclare mort tout cron dont le silence dépasse son `max_silence_s`. Sans lui, la table est un cimetière que personne ne visite : un cron qui meurt en silence y reste muet pour toujours. | ||
| Harness de falsification pour stratégies crypto (paper trading). | automateNon classés | vaisseau-mère | en vol | — | Ce module ne trade pas et ne le fera jamais. Il répond à UNE question, mécaniquement : « cette stratégie a-t-elle un edge, après frictions, sur des données que personne ne connaissait à l'avance ? » Tant que la réponse n'est pas un oui mesuré, aucun capital réel n'a de raison d'exister. | ||
| Ingestion des messages laissés sur la messagerie. | automateNon classés | vaisseau-mère | en vol | — | Chantier #1574 permanence-vocale-ia. | ||
| La relève des messages vocaux est-elle vivante ? | automateNon classés | vaisseau-mère | en vol | — | ac_permanence_vm_lock_watchdog.sh — la relève des messages vocaux est-elle vivante ? | ||
| Le poll Renoir est-il vivant ? | automateNon classés | vaisseau-mère | en vol | — | ac_renoir_lock_watchdog.sh — le poll Renoir est-il vivant ? | ||
| Pousse les skills PUBLIABLES de ac_hub vers le VPS synedre. | automateNon classés | synedre | en vol | — | — description interne | ||
| Releve de boite cloisonnee | automateNon classés | vaisseau-mère | en vol | — | Ingestion deterministe d'une boite privee vers un schema separe et chiffre. Zero LLM, zero emission : ce script ne sait pas envoyer. Les pieces jointes passent un gate antivirus avant toute lecture, et la base refuse de les reputer sures autrement. | ||
| Renoir Escalade — un incident déclenché passe la main à Atlas. | automateNon classés | vaisseau-mère | en vol | — | Chantier #1571 renoir-dispatch-vigies, travail #1988 (triage-trois-niveaux), critère 4 seul. | ||
| Vigie des 500 d'API sur toute la flotte Nuxt. | automateNon classés | vaisseau-mère | en vol | — | — description interne | ||
| Alerte fondateur sur accumulation proposals pending. | automateOracles | vaisseau-mère | en vol | — | Seuil : si >= PENDING_THRESHOLD proposals en status='pending' au moment du check, envoie un email récapitulatif (1× max par heure — cool-down via state file). | ||
| Angles morts doc de Shyrka | automateOracles | vaisseau-mère | en vol | — | Phase 5 #182 : détecteur de complétude — corps(façades+tables sy/cs) − couverture(harness) = angles morts, regroupés par famille → sy_doc_coverage + dimension couverture du bilan. Read-only. Tourné par ac_conscience_tick. | ||
| Indexe le brain/ Zettelkasten dans sy_brain_note (PG). | automateOracles | vaisseau-mère | en vol | — | Source de vérité : `/home/ubuntu/brain/{permanent,inbox,moc,daily,fleeting}/*.md`. Sync incrémental : compare mtime fichier vs DB, UPSERT si différent. Supprime les rows dont le path n'existe plus. | ||
| Indexe les sessions Claude Code (.jsonl) dans sy_claude_session. | automateOracles | vaisseau-mère | en vol | — | Walk `~/.claude/projects/*/` (filtrable via --project), parse first+last line de chaque .jsonl pour extraire metadata (timestamp, session_id, git_branch, version, first_prompt, last_prompt, message_count), UPSERT. | ||
| Indexe les skills .claude/skills/<name>/SKILL.md dans sy_skill. | automateOracles | vaisseau-mère | en vol | — | Phase UI-5 chantier synedre-os-cockpit. Pattern décalqué de ac_brain_index.py. | ||
| Le MOTEUR de la boucle d'auto-optimisation (#550, étape 2). | automateOracles | vaisseau-mère | en vol | — | À la clôture d'un chantier `auto_analyse=true`, on relit son flux (sy_agent_event) et ses runs (sy_task_exec), on détecte les FRICTIONS de workflow, et on alimente le backlog AGRÉGÉ `sy_workflow_optimization` — 1 ligne par pattern, cross-chantier, priorisé par impact_score. C'est l'automatisation de l'analyse manuelle qui a produit les fixes du 2026-07-21 (cold-start, retry, budget, search_path). | ||
| ═══════════════════════════════════════════════════════════════════════════ | automateOracles | vaisseau-mère | en vol | — | ═══════════════════════════════════════════════════════════════════════════ | ||
| Régénération profonde autonome (Shyrka) | conduiteScribes | synedre | en vol | — | Phase 4 #182 : spawn Claude headless → réécrit chapitre doc dérivé → commit → stage → gate Mitnick → activate public auto. active=0 = kill-switch (OFF à la livraison, 1ère mise à feu = geste Alex). | ||
| Exporte les tokens MCP du .env racine dans l'environnement du shell. | automateTisserands | vaisseau-mère | en vol | — | Exporte les tokens MCP du .env racine dans l'environnement du shell. | ||
| Fetch + scan des MÉDIAS ENTRANTS WhatsApp | automateTisserands | vaisseau-mère | en vol | — | — description interne | ||
| Poll inbox Atlas | automateTisserands | vaisseau-mère | en vol | — | Déclencheur Atlas sur emails entrants. | ||
| Remonte le statut SEO MANUEL posé depuis le hub | automateTisserands | vaisseau-mère | en vol | — | Chantier #348 (« statut SEO manuel », option A avec sync). Le hub permet à un employé de marquer à la main qu'une entité (produit/catégorie/cms/blog) est déjà optimisée SEO + par quelle source (api/cli/mcp/mixte) — cf `codemyshop/core/server/api/bo/seo-status.{get,post}.ts`. Ce flag vit dans la DB du tenant (`cs_seo_status`), pas dans le hub central. | ||
| Réconcilie le dossier Sent → ps_ac_inbox_emails. | automateTisserands | vaisseau-mère | en vol | — | PROBLÈME (cicatrice 2026-07-10) : une réponse envoyée à un client ne mettait pas à jour l'email ENTRANT correspondant. `ps_ac_inbox_emails.status` restait 'new' même après une vraie réponse → le scan de standup affichait « NON traité » à tort (un flag secondaire pris pour la réalité, alors que la vérité = le dossier Sent). | ||
| Sync bidirectionnelle cs_client_request ↔ sy_chantier_tache. | automateTisserands | vaisseau-mère | en vol | — | — description interne | ||
| Sync inbox IMAP | automateTisserands | vaisseau-mère | en vol | — | Synchronisation des emails entrants OVH. | ||
| Synedre/ac_nightingale_escalate.py — Relance escaladante jusqu'au forward vers Atlas. | automateTisserands | vaisseau-mère | en vol | — | Chantier #767. `ac_nightingale.py` DÉTECTE les boucles ouvertes et envoie un digest 2×/j ; ce module les POURSUIT. Le digest est une photo — il alerte sans rien refermer, et le nombre de fuites monte cycle après cycle. Ici, chaque demande client non traitée relance Alexandre avec un ton qui s'aggrave, jusqu'à ce qu'elle soit prise en charge. | ||
| Detecteur de tâches bloquées + auto-spawn Atlas. | automateVigies | vaisseau-mère | en vol | — | Scanne toutes les tâches status='iterating' depuis > STUCK_DELAY_MIN minutes, compte les tentatives déjà effectuées (sy_atlas_email source_type='stuck_task'), insère une row sy_atlas_email et déclenche bin/spawn-fix-worker.py en subprocess détaché si attempts_done < MAX_ATTEMPTS. | ||
| chantier-live | conduite | maison | liturgie.etat_undefined | — | Lance un chantier MAINTENANT et le mène jusqu'à done sans intervention, en suivant le flux au terminal. Se termine par le dossier de review preprod. Quand on ne veut pas attendre la fenêtre d'autonomie nocturne. | ||
| chantier-live | conduite | maison | liturgie.etat_undefined | — | Lance un chantier MAINTENANT et le mène jusqu'à done sans intervention, en suivant le flux au terminal. Se termine par le dossier de review preprod. Quand on ne veut pas attendre la fenêtre d'autonomie nocturne. | ||
| Synchronisation des rendez-vous Calendly vers la DB | automateOracles | vaisseau-mère | éteint | — cause non documentée | Synchronisation des rendez-vous Calendly vers la DB | ||
| Cover Generator Cron | automateScribes | vaisseau-mère | éteint | — cause non documentée | Traite la queue ps_ac_covergen_queue : genere covers blog (Pexels/Unsplash) et SCP vers VPS tenant | ||
| Génération descriptions produit via Claude CLI (polling queue) | skillScribes | vaisseau-mère | éteint | — cause non documentée | Génération descriptions produit via Claude CLI (polling queue) | ||
| Modération IA des commentaires blog (agent Socrate) | automateScribes | vaisseau-mère | éteint | — cause non documentée | Modération IA des commentaires blog (agent Socrate) | ||
| Orchestrateur de publication sociale automatisée (LinkedIn, X, FB, IG) | automateScribes | vaisseau-mère | éteint | — cause non documentée | Orchestrateur de publication sociale automatisée (LinkedIn, X, FB, IG) | ||
| Redaction IA Cron | automateScribes | vaisseau-mère | éteint | — cause non documentée | Traite ps_ac_redaction_queue : Claude CLI redige articles blog + FAQ | ||
| Traitement des revues doc externes (regard des autres) | skillScribes | vaisseau-mère | éteint | — cause non documentée | Chantier #192 : dépile au max 1 review submitted/run — spawn claude -p sandbox anti-injection, parse verdict sélectif, déclenche deep_regen --no-activate si overall_valid=true. active=0 = kill-switch (livré DÉSARMÉ, armer après QA). Cap : 1 deep_regen / slug / 24h. Lock /tmp/ac_doc_external_review.lock. | ||
| Écriture descriptions produit directement en DB via Claude CLI | automateScribes | vaisseau-mère | éteint | — cause non documentée | DÉSACTIVÉ 2026-04-08 — doublon de ac_productgenius (race condition queue : pas de claim/lock dans ps_ac_product_ai_queue). productgenius respecte le contrat module ac_smartproducts via API. | ||
| ac_scrap_mister_turbo_cron | automateTisserands | vaisseau-mère | éteint | Coupé pendant un réimport sélectif de catalogue — la reprise est un geste décidé, pas un redémarrage automatique. 2026-08-06 | — non documenté | ||
| AC Uptime Monitor — clients prod | automateVigies | vaisseau-mère | éteint | — cause non documentée | Check HTTP des sites clients en production toutes les 3 min, alerte email après 2 fails consécutifs (=6min de prod down). Source: ps_ac_client_vps WHERE purpose=production AND active=1. | ||
| Détecte les concepts utilisés dans les articles mais absents du dictionnaire | automateVigies | vaisseau-mère | éteint | — cause non documentée | Détecte les concepts utilisés dans les articles mais absents du dictionnaire | ||
| Surveillance emails clients en temps réel, détection P0 | automateVigies | vaisseau-mère | éteint | — cause non documentée | Surveillance emails clients en temps réel, détection P0 | ||
| + 7 comptés, non nommés | |||||||
17 déclenchements portent un nom lié à un client : ils sont comptés mais pas nommés ici. Le jour où ces automates seront paramétrés par tenant plutôt qu'écrits pour un seul, ils apparaîtront d'eux-mêmes.
81 conduites opérationnelles
Chaque conduite est un fichier versionné : la procédure exacte, les garde-fous, l'ordre des gestes. 105 sont écrites, relues toutes les quinze minutes depuis le dépôt.
Filtrer par tag
aides-foyer
Périscolaire, modes de garde et aides pour les enfants du foyer : ce à quoi il a droit, ce qu'il paie trop, ce qui reste à vérifier. Quand Alex demande « qu'est-ce qu'on peut prendre » ou prépare une rentrée.
Mise à jour — 26 août 2026
apprendre
Drafte une leçon post-chantier via Montessori : analyse le flux des agents (tasks, iterations, cicatrices, logs) et extrait 5 sections fixes. Draft en sortie, review Alex avant promotion.
Mise à jour — 26 août 2026
audit-api-guards
Audite les gardes d'authentification des routes API : quelles écritures sont atteignables sans identifiant, et quelles gardes existent mais ne gardent rien. Rejoue l'inventaire du 2026-08-17 (79 routes nues + 7 gardes contournables). À lancer avant d'ouvrir une route au public, après un ajout d'endpoint, ou sur doute de sécurité.
Mise à jour — 26 août 2026
audit-conduite
Audit du format canonique des conduites : frontmatter incomplet, Partition/Garde-fous absents, description trop longue, corps trop lourd. Lecture seule.
Mise à jour — 26 août 2026
audit-doc
Audit dette docstring Python synedre/ : mesure la couverture (module / def publique / modèle) par AST exacte. Miroir non-bloquant du hook docstring-required. Lecture seule.
Mise à jour — 26 août 2026
audit-doctrine
Audit doctrine ↔ enforcement : croise ps_ac_doctrine avec les hooks présents et leur câblage settings.json. Détecte doctrines orphelines, hooks dormants, dette non gardée. Lecture seule.
Mise à jour — 26 août 2026
audit-forum-seo
Audit de la chaîne de déclaration SEO d'un forum : sitemap, robots.txt, couverture des fils, santé des URLs, Search Console. Lecture seule, exit 0 sain / 1 anomalie.
Mise à jour — 26 août 2026
audit-hard-floor
Audit anti-rot de la whitelist P0 immuable (hard_floor_p0.yaml) : vérifie que chaque path et section du manifest existe encore. Détecte le drift quand un fichier P0 est renommé.
Mise à jour — 26 août 2026
audit-i18n-slugs
Audit SEO i18n de synedre.com : parité des clés EN↔FR, slugs EN réellement en anglais, cohérence de la map. À lancer avant tout deploy touchant pages, i18n ou routing.
Mise à jour — 26 août 2026
audit-lexicon
Audit anti-dérive du registre lexical sy_lexicon : CHECK DB manquants, enums code divergents, synonymes interdits dans Drizzle. Lecture seule, exit 0 sain / 1 drift.
Mise à jour — 26 août 2026
audit-modules
Audit anti-dérive des modules CodeMyShop (community + enterprise) : manifest, edition ↔ emplacement, régime des tables, install.sql idempotent, placement vertical. Lecture seule.
Mise à jour — 26 août 2026
audit-sql-escape
Vigie des échappements SQL maison : détecte tout doublement d'antislash sur PostgreSQL (corruption silencieuse) et mesure la dette avec un cliquet. Lecture seule.
Mise à jour — 26 août 2026
bank
Consulte les comptes et transactions bancaires : soldes, opérations non rapprochées, santé du sync. Lecture seule via la façade ac_bank — le sync tourne en cron, le relancer demande l'accord d'Alex.
Mise à jour — 26 août 2026
boucles-client
Boucles email clients restées ouvertes (message reçu sans réponse), et drafts de réponse à la demande. Aucun envoi : les drafts attendent la relecture d'Alex.
Mise à jour — 26 août 2026
browser
Pilote un vrai navigateur Chrome (box OMEN bucéphale) depuis la mothership : naviguer, cliquer, remplir, capturer. Pour les sites sans API, ou protégés anti-bot.
Mise à jour — 31 août 2026
budget-foyer
Calculer le budget mensuel du FOYER : dépenses réelles par poste face aux plafonds, écarts, projections. Quand Alex demande « ça coûte combien par mois » ou prépare une répartition entre parents.
Mise à jour — 26 août 2026
chantier
Pilotage des chantiers Synedre (1 chantier = N travaux) : tableau de bord, drill-down, création atomique avec squelette. Dès qu'on ouvre, suit ou fait avancer un chantier.
Mise à jour — 26 août 2026
chantier-audit
Audit de READINESS des chantiers : détecte ceux trop vagues pour être finis en autonomie, score, enrichit (--enrich), désarme les armés à tort. Alimente le gate dur d'auto_arm.
Mise à jour — 26 août 2026
chantier-live
Lance un chantier MAINTENANT et le mène jusqu'à done sans intervention, en suivant le flux au terminal. Se termine par le dossier de review preprod. Quand on ne veut pas attendre la fenêtre d'autonomie nocturne.
Mise à jour — 26 août 2026
cicatrices-publish
Publie les cicatrices PUBLIQUES curées de synedre.com : sélection, assainissement P0, revue adverse Mitnick, deploy + scan de fuite. Jamais de nom client, IP ou secret exposé.
Mise à jour — 26 août 2026
clone
Boucle de parité preprod ↔ site LIVE d'un tenant : liste les features manquantes, seed les sections DB triviales, ouvre un chantier pour le reste. ⚠️ Rien à voir avec /clone-site.
Mise à jour — 26 août 2026
clone-site
Génère le protocole d'intake « accès & infos serveur » pour cloner le site existant d'un client. ⚠️ Rien à voir avec /clone (parité preprod ↔ live d'un tenant déjà en place).
Mise à jour — 26 août 2026
cmd-une-ligne
Quand une commande doit être tapée par Alex lui-même : la rendre copiable d'un seul geste — une ligne, sous la largeur du terminal, arguments dérivés plutôt qu'énumérés. Dès qu'on écrit « colle ça » ou qu'on propose un `!`.
Mise à jour — 26 août 2026
cocon-linkmap-audit
Audite le maillage interne des cocons catégorie d'un tenant : breadcrumb, subcategoryPills, cross-liens, id_category_default orphelin. Lecture seule, ne corrige rien.
Mise à jour — 26 août 2026
colis-non-recu
Réclamer un colis Amazon marqué « livré » (voire « remis en main propre ») mais jamais reçu : constat de preuve, parcours SAV jusqu'au chat, remboursement. Pilote le Chrome authentifié de bucéphale.
Mise à jour — 26 août 2026
compta
Compta AE en un geste : import bancaire → rapprochement factures → catégorisation → rapport. À lancer quand Alex colle un dump bancaire, ou pour une étape seule.
Mise à jour — 26 août 2026
compta-perso
Entrer une dépense ou une facture du FOYER dans la base du foyer : crèche, école, énergie, santé. Le professionnel reste de son côté — jamais l'inverse. Dès qu'une facture personnelle arrive par mail, par portail ou en papier.
Mise à jour — 26 août 2026
context-status
État du contexte de la session : tokens consommés, zone verte/orange/rouge, et quoi changer avant la saturation. Quand la session traîne ou avant un gros travail.
Mise à jour — 26 août 2026
crawlers
Analyse les hits de bots (bot-hits.json) et génère un rapport : crawlers vus, fréquence, chemins visés, anomalies. Pour comprendre qui crawle un site et à quel rythme.
Mise à jour — 26 août 2026
deploy
Met en ligne un site de la maison ou une preprod tenant : pré-vol, retour sur le tronc, deploy, preuve live. ⚠️ La PROD d'un client passe par ./ship, jamais ici.
Mise à jour — 26 août 2026
dictionnaire
Ajoute des termes au dictionnaire technique publié, avec des définitions écrites pour un dirigeant de PME et non pour un ingénieur. Argument : les mots à ajouter.
Mise à jour — 26 août 2026
doc-tech
Génère ou rafraîchit une doc technique (sous-système, module, dossier, harness). Orchestration write→verify→fix par agents. --refresh pour les pages périmées. Ne committe jamais sans OK.
Mise à jour — 26 août 2026
facture
Crée, liste, génère le PDF et envoie une facture ou un devis via la façade ac_invoicing. Gère aussi les abonnements récurrents. Émetteur toujours l'AE ; show before send obligatoire.
Mise à jour — 26 août 2026
fenetre-autonomie
Pilote la FENÊTRE HORAIRE de l'autonomie de nuit, jour par jour. Affiche/modifie start→end, active ou coupe un jour. Source sy_autonomy_window. Pour changer ou décaler les horaires.
Mise à jour — 26 août 2026
forum-article
Tire un article d'un fil de forum déjà publié : thèse finale, adossement vérifié tour par tour, brouillon remis à Alex. Jamais de publication.
Mise à jour — 26 août 2026
forum-lecon
Leçon dialoguée jouée par 4 agents puis publiée sur synedre.com/forum/dialogues. Pour un fil public pédagogique depuis une question. Jamais ./ship.
Mise à jour — 26 août 2026
graver-victoire
Grave une victoire dans ps_ac_cicatrices (kind=victory) — symétrique de la cicatrice. Capture ce qui a marché et pourquoi, pour le rejouer plutôt que le redécouvrir.
Mise à jour — 26 août 2026
handoff
Retrouve et affiche le handoff de session du répertoire courant. Le filet quand l'auto-reprise du SessionStart a raté. --reset le rend à nouveau éligible.
Mise à jour — 26 août 2026
hierarchie-categories
Hiérarchise les URLs catégorie d'un tenant : passe les liens internes du slug plat au chemin nested reconstruit depuis ps_category, avec 301 systématiques. Idempotent, tenant-agnostique.
Mise à jour — 26 août 2026
host
Audit et maintenance d'un host (mothership, tenant, IP) : volets `infra`, `secu`, `backups`, `upgrade` ; sans volet = les trois audits. Rend les correctifs en commandes exactes.
Mise à jour — 26 août 2026
htpasswd
(Re)génère le Basic Auth nginx d'une preprod tenant (login=alex/password=alex par défaut). Auto-détecte le VPS et le fichier .htpasswd, reload nginx, vérifie en live.
Mise à jour — 26 août 2026
idee
Crée une idée de brainstorm dans le registre /hub/brainstorm (table sy_brainstorm). À utiliser quand Alex veut consigner une piste sans ouvrir de chantier.
Mise à jour — 26 août 2026
inbox
Cherche ou lit les emails reçus (ps_ac_inbox_emails) via la façade TS Nuxt. Inclut deux secours : IMAP direct OVH si la façade est down, et recherche par expéditeur+heure.
Mise à jour — 26 août 2026
integration-maquette
Transforme une maquette Figma en VARIANTE de homepage previewable, sans toucher au live. Chaîne figma → plan → CHECKPOINT Alex → variante DRAFT → deploy preprod → lien de preview.
Mise à jour — 26 août 2026
mac
Pilote le Mac d'Alex en computer-use depuis la mothership (SSH natif, pas de VNC) : yeux (screenshot) et mains (cliclick/osascript). Réservé aux tâches STRICTEMENT graphiques.
Mise à jour — 26 août 2026
malt
Récupère les dernières conversations prospect du compte Malt d'Alexandre : missions reçues, messages non lus. Lecture seule — aucune réponse n'est envoyée sans validation explicite.
Mise à jour — 27 août 2026
marque-depot
Déposer une marque de l'Union européenne à l'EUIPO puis en tenir les échéances : formulaire pré-rempli au navigateur, paiement par virement, rappel J+21, veille opposition. À invoquer quand un dossier de dépôt est arbitré et qu'il faut passer à l'acte.
Mise à jour — 26 août 2026
memoire
Recall sémantique via pgvector RAG sur memory/ + brain/ + ps_ac_{cicatrices,doctrine,chantier}. Trouve les notes pertinentes même si le slug exact n'est pas connu.
Mise à jour — 26 août 2026
merci-facteur
Poster une lettre papier — recommandé avec AR, suivi ou simple — depuis un PDF déjà signé. Dès qu'un courrier a besoin d'une preuve de date opposable et pas seulement d'un email.
Mise à jour — 26 août 2026
meta-forum-source
Fil de forum sourcé de bout en bout, sans relecture : corpus, deux gates, leçon dialoguée, publication. Orchestre /sources-ouvrage et /forum-lecon. Jamais ./ship ni --force-publish.
Enchaîne
/sources-ouvrage/forum-lecon
Mise à jour — 26 août 2026
monitoring-live
Suivi LIVE d'un chantier autonome en cours : voir le flux d'exécution, repérer une dérive ou un emballement, couper tôt. Pour OBSERVER pendant, pas pour juger après — le verdict appartient à la QA.
Mise à jour — 26 août 2026
negociation
Charge le contexte d'une négociation commerciale (sy_negociation), symétrique de /chantier pour le pipeline lead → deal. Argument -id <id>, <id>, ou vide pour la liste.
Mise à jour — 26 août 2026
notes-atomiques
Découpe un document monolithique en notes atomiques versées au Vault Obsidian, sans toucher à la source. Argument : le chemin du fichier à éclater.
Mise à jour — 26 août 2026
page-iso-figma
Rend une PAGE CMS iso à une maquette Figma, contenu 100 % en base, zéro .vue tenant. Pour une page de contenu — la homepage relève de /integration-maquette.
Mise à jour — 26 août 2026
parcours-client
Rejoue le tunnel d'achat d'une boutique dans un VRAI navigateur, de l'accueil au récapitulatif, et s'arrête avant le paiement. À jouer après chaque livraison qui touche catalogue, panier, checkout ou emails.
Mise à jour — 26 août 2026
perso-3d
Génère un personnage 3D coloré (GLB) depuis un character sheet 2D turnaround. Chaîne crop → Hunyuan3D-2mv → colorize → GLB draco. ⚠️ Le mesh passe par un Space HF tiers.
Mise à jour — 26 août 2026
persona
Drift des personas agents vs stack actuelle : sans argument, audit des 30 agents ; avec `<codename> --fix`, refresh LLM + 3-way diff validé par Alex.
Mise à jour — 26 août 2026
plan-editorial
Composer un mois de sujets de blog adossés à l'existant publié et aux requêtes réelles de la Search Console, puis les mettre en file après validation. À invoquer quand la file de rédaction se vide, ou avant d'ouvrir une campagne de contenu.
Mise à jour — 26 août 2026
propal-verif
QA automatique d'une proposition commerciale email avant envoi : spawn une équipe d'agents Synedre qui relisent le fond, le prix, le ton et le risque juridique. Jamais d'envoi.
Mise à jour — 26 août 2026
protection-majeur
À invoquer quand Alex veut traiter le courrier du dossier de protection d'un majeur : nouveaux messages à classer, faits à extraire, démarches à mettre à jour, recevabilité à dire, récapitulatif fratrie à drafter. Le seul point du dossier où un LLM intervient — jamais en cron.
Mise à jour — 26 août 2026
publish
Publie un article de blog sur alexandrecarette.fr : rédaction sous charte éditoriale, FAQ, meta SEO, mise en ligne et vérification de l'URL. Argument : le sujet.
Mise à jour — 26 août 2026
qa-responsive
Contrôle le rendu d'un tenant sur mobile, tablette et desktop — mesures DOM rejouables palier par palier, puis un œil sur ce que la mesure ne voit pas. Argument : le tenant, éventuellement une route.
Mise à jour — 26 août 2026
reponse-client-annotee
Répondre à un client en lui MONTRANT : capture de la page livrée, zones encadrées, puis email via la façade. Aucun envoi sans le « valide » d'Alex.
Mise à jour — 26 août 2026
revue-agents
Lance la Revue de la Place des Armes : chaque agent du jour se présente devant le Fondateur et rend son rapport. À utiliser pour un point d'ensemble sur l'état du Synedre.
Mise à jour — 26 août 2026
run
Ouvre un RUN scopé Synedre (sy_run), la voie par défaut pour l'unité légère. Charge le périmètre depuis la DB. ⚠️ Rien à voir avec le /run natif du harness (lanceur d'app).
Mise à jour — 26 août 2026
scan-attachment
Scan antivirus d'une pièce jointe AVANT toute ouverture. Pré-requis bloquant : aucune PJ entrante n'est lue sans verdict clean. Argument : fichier, dossier ou --id <email>.
Mise à jour — 26 août 2026
seo-audit
Audit SEO d'un tenant : couverture i18n par langue + sentinelle technique (404/5xx, Search Console 28j, verdict alert/warn/ok). Argument : le tenant, ou vide pour tous.
Mise à jour — 26 août 2026
seo-coverage
Vigie de couverture SEO FR multi-tenant : montre par site et par type de page les trous sur meta_title, meta_description, h1 et description courte. Lecture seule, ne génère pas.
Mise à jour — 26 août 2026
seo-meta
Audite et remédie les meta SEO des catégories d'un tenant (titles + descriptions), moteur unique ac_seo_optimizer. Contenu fait main jamais réécrit. Toutes langues, idempotent.
Mise à jour — 26 août 2026
seo-orphelines
Vigie des URLs orphelines multi-tenant : sonde ce que Google connaît (pas le sitemap) et suit les redirections, pour trouver les indexées qui répondent 404. Lecture seule.
Mise à jour — 26 août 2026
sign-pdf
Appose la signature manuscrite scannée d'Alex sur un PDF (équivalent d'un tampon-signature). Pour signer un devis, un contrat ou un document administratif.
Mise à jour — 26 août 2026
simplifier-interface-dense
Audite et simplifie une interface DENSE (trop de badges, couleurs, vocabulaire par ligne). Capture la page, applique les 4 principes, propose une ligne idéale et un lexique unique.
Mise à jour — 26 août 2026
soulseek
Recherche et télécharge de la musique via le réseau Soulseek (daemon slskd de bucéphale). Pour un morceau introuvable en streaming. Jamais en autonome : sur ordre explicite d'Alex.
Mise à jour — 26 août 2026
sources-ouvrage
Collecte et trie les sources d'un ouvrage ou d'une thèse AVANT un fil de forum : attribution vérifiée, contre-expertise incluse. Ne joue jamais le fil — /meta-forum-source enchaîne.
Mise à jour — 26 août 2026
status
État du système ET audit du site : git, conteneurs, prod/preprod, logs, DB ; argument `site` = audit complet alexandrecarette.fr. En début de session ou après un incident.
Mise à jour — 26 août 2026
ton-client
Charge le dossier TON d'un client (registre, appellation, profil, leviers, à-éviter). Source sy_client.tone_of_voice, puis sy_negociation, puis fallback vouvoiement premium-artisan.
Mise à jour — 26 août 2026
traiter-demande
Traite une demande du suivi projet client : injecte le contexte de l'item, vérifie son statut réel, la réalise si besoin (edit → commit → deploy), puis met à jour le statut.
Mise à jour — 26 août 2026
tuto-mcp
Génère un email-tutoriel par tenant montrant au client comment compléter ses pages via SON Claude branché en MCP. Tone-aware, exemples réels lus en DB, garde-fou MCP-write.
Mise à jour — 26 août 2026
url-change
Changement d'URL VIVANTE (slug, re-parenting, domaine, route localisée) en séquence figée : 301 vérifiée, images contrôlées, caches purgés. Dès qu'on renomme une URL indexée.
Mise à jour — 26 août 2026
urssaf
Dashboard FinOps de l'auto-entreprise : CA, URSSAF, provisions, seuils micro-BNC, versement libératoire. Chiffres indicatifs à valider avec le comptable. Argument : le mois.
Mise à jour — 26 août 2026
wukong-post
Fait surgir Sun Wukong dans un fil de forum : intervention unique et signée, quand quelqu'un confond puissance et autorité. Contrat IGNORE|DRAFT|POST, 金箍 bloquant avant publication.
Mise à jour — 26 août 2026
24 conduites ne sont pas montrées : leur procédure cite un client, un domaine ou une machine. Le tri n’est pas fait à la main — un contrôle automatique relit chaque conduite toutes les quinze minutes et retire celle qui nomme un tiers. Une conduite qui se salit disparaît d’ici sans que personne n’intervienne.
Concept propriétaire
Ce qui est déposé n'est pas l'idée d'écrire une procédure — elle est vieille comme le métier. C'est le dispositif : une séquence ordonnée d'étapes typées, les unes confiées à un agent, les autres à un script déterministe, exécutées par un même orchestrateur et tracées étape par étape. Revendication 9 de l'enveloppe Soleau Synedre OS, déposée à l'INPI le 7 avril 2026.
Numéro DSO : DSO2026012576 · Déposant : Alexandre Carette EI · SIREN 510 903 594