DOC-03 / Synedre
The Conduct
Sequential orchestration of Synedre's workflows — every complex task is a traced representation, mixing AI agents and deterministic automata.
The founding triptych
Three roles, three natures, a single traced sequence.
AGENT
The Agent thinks
Creative, contextual reasoning, judgement. The AI agent mobilises its 4-dimension cognitive frame to decide.
AUTOMATON
The Automaton executes
Deterministic, reproducible plumbing. The Python script does its job, captures its logs, returns its exit code.
CONDUCT
The Conduct orchestrates
Ordered sequence of cues, traced end to end. The Director raises the curtain, executes, closes the curtain.
The Conduct orders without dictating the outcome: its cues are fixed, but an agent cue keeps its judgement.
Theatre vocabulary
Inspired by the stagehands of the Roaring Twenties — Folies Bergère, Casino de Paris. The conduct book lists every cue in order.
The Conduct
Definition of a named workflow — ordered sequence of cues, persisted and versioned.
The Cue
A unitary typed step — either an agent cue (reasoning) or an automaton cue (execution).
The Representation
A traced execution of a conduct, with timestamp, duration, status and structured logs.
The Director
The orchestrator agent (Atlas) that reads the conduct and executes the cues sequentially.
Curtain call
Representation completed successfully. All cues have passed.
Stage stop
Representation interrupted by a failed cue. The trace remains for audit.
SYSTEM / Orchestration
The Orchestration
How an intent becomes a delivery. Five sequential phases, a chain of responsibility traced end to end.
the Founder
Directs & Decides
Atlas — Orchestrator
Analyses the task, dispatches agents, synthesises reports.
Context
Data, monitoring, vision
Framing
Strategy, ROI, Compliance
Execution
15 domain agents
Validation
12 post-commit agents
Post-Ship
Infra, docs, after deploy
Health
Wi WinnicottFull session

The Liturgy of the Hours
155 Automata · 7 castes
127 scheduled · 28 on-demand
The Agents think. The Automata execute.
Renoir
Stage Director of Automata
Vigies
Surveillance
32 scripts
Horlogers
Monitoring
26 scripts
Oracles
Foresight
26 scripts
Tisserands
Internal linking
23 scripts
Bâtisseurs
Infrastructure
19 scripts
Scribes
Authoring
8 scripts
Cellériers
Housekeeping / accounts
6 scripts
Unclassified
Awaiting classification
15 scripts
Verified delivery
Clean code, consistent design, production verified.
The advisers summoned at each cue, and their director, are introduced in the Council.
What runs with no one there
The liturgy of the hours
95 runs at a fixed hour, 52 at every hour. A conduct is invoked; an automaton sets off on its own.
| Hour | Office | What sets off | Nature | Where | Live | Cause of death | What it does |
|---|---|---|---|---|---|---|---|
| 00 h | Matins | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automatonBâtisseurs | synedre | live | — | 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 | automatonVigies | synedre | live | — | 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 | automatonBâtisseurs | vaisseau-mère | stopped | 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 | stopped | 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 | automatonScribes | vaisseau-mère | stopped | 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 | automatonOracles | vaisseau-mère | live | — | 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 | automatonTisserands | vaisseau-mère | live | — | 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 | automatonScribes | vaisseau-mère | stopped | 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 | automatonVigies | vaisseau-mère | stopped | — cause undocumented | 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 | automatonNon classés | vaisseau-mère | live | — | — undocumented | |
| Standup matinal du Fondateur (run 2026-06-16).synedre/ac_standup_digest.py | automatonOracles | vaisseau-mère | live | — | 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 | automatonCellériers | vaisseau-mère | stopped | — cause undocumented | 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 | automatonTisserands | vaisseau-mère | stopped | 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 | automatonVigies | vaisseau-mère | stopped | — cause undocumented | Vigies (jeudi 2h) : audit sécurité dépendances npm + pip (CVE, versions obsolètes). | ||
| + 1 counted, unnamed | |||||||
| 03 h | Lauds | Classifie le billing_mode des automates.synedre/ac_automate_billing_scan.py | skillCellériers | vaisseau-mère | disabled | — | 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 | conductNon classés | synedre | disabled | — | 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 | conductNon classés | synedre | disabled | — | 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 | disabled | — | Agrégat quotidien des réactions. | ||
| Supervision de fraîcheur netlinking (chantiersynedre/ac_netlinking_supervisor.py | automatonTisserands | vaisseau-mère | live | — | 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 | automatonScribes | synedre | believes it is alive | — | 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 | conductNon classés | vaisseau-mère | disabled | — | 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 | conductNon classés | vaisseau-mère | disabled | — | 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 | disabled | — | 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 | conductOracles | vaisseau-mère | disabled | — | Consolidation onirique mémoire (RAG/pgvector). | ||
| 05 h | Bilan de santé de Shyrkasynedre/ac_conscience_health.py | metaskillHorlogers | vaisseau-mère | believes it is alive | — | 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 | automatonHorlogers | synedre | live | — | 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 | automatonHorlogers | vaisseau-mère | live | — | « 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 | conductNon classés | vaisseau-mère | live | — | — undocumented | ||
| ac_wayback_archive | automatonNon classés | vaisseau-mère | live | — | — undocumented | ||
| 06 h | Prime | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automatonBâtisseurs | synedre | live | — | 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 | automatonCellériers | vaisseau-mère | live | — | Émission des factures/avoirs récurrents (abonnements ac_subscription) à échéance. | ||
| Sync Bancairesynedre/ac_bank_sync.py | automatonCellériers | vaisseau-mère | live | — | 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 | automatonHorlogers | vaisseau-mère | live | — | 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 | automatonHorlogers | vaisseau-mère | live | — | Rotation des fichiers .log dans automation/ (évite croissance illimitée) | ||
| + 2 counted, unnamed | |||||||
| 07 h | ac_blog_queue_watchsynedre/ac_blog_queue_watch.py | automatonNon classés | vaisseau-mère | live | — | — undocumented | |
| ac_glm_autonomy_heartbeatsynedre/ac_glm_autonomy_heartbeat.py | automatonNon classés | vaisseau-mère | live | — | — undocumented | ||
| Pousse la liturgie des heures vers synedre.com.synedre/ac_liturgie_sync_public.py | automatonNon classés | synedre | live | — | — internal description | ||
| Scanner de leads entrants depuis les bookings Calendly.synedre/ac_lead_scan.py | automatonTisserands | vaisseau-mère | live | — | — internal description | ||
| Vigie de COUVERTURE SEO (source FR) multi-tenant.synedre/ac_seo_coverage.py | automatonVigies | vaisseau-mère | live | — | — internal description | ||
| + 2 counted, unnamed | |||||||
| 08 h | Automate FinOps AE (Pacioli), chantier #212.synedre/ac_pacioli_automate.py | automatonCellériers | vaisseau-mère | live | — | — internal description | |
| ac_fiscal_seuils_watchsynedre/ac_fiscal_seuils_watch.py | automatonNon classés | vaisseau-mère | live | — | — undocumented | ||
| Digest SEO bi-hebdo Gauss (chantier #213).synedre/ac_gauss_seo_digest.py | automatonOracles | vaisseau-mère | live | — | 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 | automatonVigies | T-019 | live | — | 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) | automatonHorlogers | vaisseau-mère | stopped | — cause undocumented | Prépare le Daily Meet avant l'arrivée du Fondateur (8 checks) | ||
| + 1 counted, unnamed | |||||||
| 09 h | Terce | ac_blog_relais_publicationsynedre/ac_blog_relais_publication.py | automatonNon classés | T-019 | live | — | — undocumented |
| ac_netlinking_outreachsynedre/ac_netlinking_outreach.py | automatonNon classés | vaisseau-mère | live | — | — undocumented | ||
| Refresh quotidien de mv_cicatrices_kpi.synedre/ac_cicatrices_kpi_refresh.py | automatonOracles | vaisseau-mère | live | — | Chantier #148 autonomie-apprentissage / tâche #1351. | ||
| Re-snapshot contenu synedre.comsynedre/ac_synedre_content_snapshot.py | automatonTisserands | synedre | live | — | — internal description | ||
| Détecte les commentaires qui mentent sur le code vivant.synedre/ac_audit_comment_drift.py | automatonVigies | vaisseau-mère | live | — | 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 | automatonNon classés | synedre | live | — | — internal description | |
| Sentinelle d'intégrité doctrine ↔ enforcement (chantier #428).synedre/ac_audit_doctrine.py | automatonVigies | vaisseau-mère | live | — | Rend la règle « 1 doctrine = 1 hook » ([[feedback_doctrine_requires_enforcement_hook]]) VÉRIFIABLE en continu. Croise TROIS registres : | ||
| Génération Dictionnaire | automatonScribes | vaisseau-mère | stopped | — cause undocumented | Génération termes dictionnaire technique | ||
| Pipeline Centaure (Humain + IA) : génération d'articles blog | automatonScribes | vaisseau-mère | stopped | — cause undocumented | Pipeline Centaure (Humain + IA) : génération d'articles blog | ||
| Veille compétitive Synedre vs frameworks multi-agents concurrents | automatonVigies | synedre | stopped | — cause undocumented | Veille compétitive Synedre vs frameworks multi-agents concurrents | ||
| 11 h | Les garde-fous éteints « en attendant » quisynedre/ac_audit_extinctions_conditionnelles.py | automatonNon classés | vaisseau-mère | live | — | 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 | stopped | É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) | automatonOracles | vaisseau-mère | stopped | — cause undocumented | Rapport quotidien envoyé par email à 7h (Paris) | ||
| Audit schéma DB vs convention §NAMING | automatonVigies | vaisseau-mère | stopped | — cause undocumented | 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 | Sext | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automatonBâtisseurs | synedre | live | — | 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 | automatonVigies | vaisseau-mère | live | — | — internal description | ||
| Invariant DB-live « tout agent_codenamesynedre/ac_audit_agent_codename_naming.py | automatonVigies | vaisseau-mère | live | — | 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 | automatonVigies | synedre | live | — | 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 | automatonVigies | vaisseau-mère | live | — | 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 | automatonVigies | vaisseau-mère | live | — | 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 | stopped | É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 | automatonHorlogers | vaisseau-mère | stopped | É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 | automatonOracles | vaisseau-mère | live | — | Réindexation pgvector des contenus. | |
| Vigie rétroactive : aucun échappement SQL maison quisynedre/ac_audit_sql_escape.py | automatonVigies | vaisseau-mère | live | — | 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 | automatonScribes | vaisseau-mère | stopped | 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 counted, unnamed | |||||||
| 15 h | None | Capteur de récidive de cicatrices (miss du recall).synedre/ac_cicatrice_repeat_detect.py | automatonOracles | vaisseau-mère | live | — | 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 | automatonVigies | vaisseau-mère | live | — | 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 | automatonVigies | vaisseau-mère | stopped | — cause undocumented | 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 | automatonNon classés | vaisseau-mère | live | — | 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 | automatonVigies | vaisseau-mère | live | — | 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 | automatonTisserands | vaisseau-mère | stopped | — cause undocumented | Synchronise ps_ac_universal_faq → faq-data.json pour Nuxt SSR | ||
| 17 h | Cron stub qui rafraîchitsynedre/ac_chantier_outcome_kpi_refresh.py | automatonOracles | vaisseau-mère | live | — | 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 | automatonHorlogers | vaisseau-mère | stopped | — cause undocumented | Health check infrastructure au démarrage de session | ||
| Hygiène Blog | automatonVigies | vaisseau-mère | stopped | — cause undocumented | Vérification qualité articles blog | ||
| 18 h | Vespers | Auto-réparation doc gatée (Shyrka)synedre/ac_doc_autofix.py | automatonBâtisseurs | synedre | live | — | 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 | automatonVigies | synedre | live | — | 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 | automatonVigies | vaisseau-mère | live | — | 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 | automatonHorlogers | vaisseau-mère | stopped | — cause undocumented | Brossage de dents du Synedre : nettoyage profils et fichiers 2x/jour | ||
| ac_nightingalesynedre/ac_nightingale.py | automatonTisserands | vaisseau-mère | stopped | Remplacé par la surveillance à deux rythmes des demandes clients — découverte continue, alertes deux fois par jour. 2026-07-31 | — undocumented | ||
| + 1 counted, unnamed | |||||||
| 19 h | Revue Élagage Cicatrices (Renoir)synedre/ac_elagage_review.py | automatonNon classés | vaisseau-mère | live | — | 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 | automatonNon classés | vaisseau-mère | live | — | — internal description | ||
| Scanner de leads entrants depuis les bookings Calendly.synedre/ac_lead_scan.py | automatonTisserands | vaisseau-mère | live | — | — internal description | ||
| Cache local des images Instagram (URL CDN expire ~24h)synedre/archive/ac_instagram_image_cache.py | automatonVigies | vaisseau-mère | stopped | Emporté par la refonte du stockage des publications Instagram. 2026-05-03 | — internal description | ||
| 20 h | Purge et rétention des events sy_agent_event (chantier #544,synedre/ac_event_retention.py | automatonHorlogers | vaisseau-mère | live | — | 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 | automatonVigies | vaisseau-mère | stopped | 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 counted, unnamed | |||||||
| 21 h | Compline | ac_cover_nightlysynedre/ac_cover_nightly.py | automatonNon classés | vaisseau-mère | believes it is alive | — | — undocumented |
| Collecteur quotidien des métriques memory/ et MEMORY.md.synedre/ac_memory_metrics.py | automatonHorlogers | vaisseau-mère | live | — | 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 | automatonOracles | vaisseau-mère | live | — | Phase UI-10.5 chantier synedre-os-cockpit. Pattern Hermes "autonomous skill creation". | ||
| Pipeline maillage interne SEOsynedre/archive/ac_maillage.py | automatonTisserands | vaisseau-mère | stopped | 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 | automatonNon classés | vaisseau-mère | believes it is alive | — | 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 | automatonBâtisseurs | vaisseau-mère | live | — | 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 | automatonVigies | vaisseau-mère | live | — | 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 | stopped | — cause undocumented | Moteur d'entraînement spartiate du Synedre (épreuves agents) | ||
| 23 h | Pipeline cicatrices unifiésynedre/archive/ac_cicatrice.py | automatonOracles | vaisseau-mère | stopped | 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 | automatonVigies | vaisseau-mère | stopped | — cause undocumented | Vérification santé Matomo analytics | ||
| ∞ | Every hour | Organe de Délibération | skillOracles | vaisseau-mère | believes it is alive | — | 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 | disabled | — | 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). | conductNon classés | synedre | disabled | — | 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. | conductNon classés | vaisseau-mère | disabled | — | 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 | disabled | — | — internal description | ||
| Automate cron : aligne mot-à-mot la bibliothèque en tâche de fond. | automatonBâtisseurs | vaisseau-mère | live | — | 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). | automatonBâtisseurs | vaisseau-mère | live | — | — internal description | ||
| Rejeu premium des tâches haute-altitude basculées (travail | automatonBâtisseurs | vaisseau-mère | live | — | 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 | live | — | Lanceur de sessions Atlas autonomes. | ||
| Worker daemon Phase UI-2 chantier synedre-os-cockpit. | metaskillBâtisseurs | vaisseau-mère | live | — | 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é. | automatonCellériers | vaisseau-mère | live | — | 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 | automatonCellériers | vaisseau-mère | live | — | — internal description | ||
| Alerte si /tmp/atlas-inbox-poll.lock > 10min | automatonHorlogers | vaisseau-mère | live | — | ac_atlas_lock_watchdog.sh — alerte si /tmp/atlas-inbox-poll.lock > 10min | ||
| Autonomie tick — seeder quotidien des chantiers mode_auto (autonomie-v2 #178). | automatonHorlogers | vaisseau-mère | live | — | 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". | automatonHorlogers | vaisseau-mère | live | — | — internal description | ||
| Génère un rapport de monitoring JSON complet. | automatonHorlogers | vaisseau-mère | live | — | 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). | automatonHorlogers | vaisseau-mère | live | — | 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. | automatonHorlogers | vaisseau-mère | live | — | 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. | automatonHorlogers | vaisseau-mère | live | — | 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. | automatonHorlogers | vaisseau-mère | live | — | 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 | automatonNon classés | vaisseau-mère | live | — | — undocumented | ||
| Audit de READINESS (complétude autonomie) des chantiers. | skillNon classés | vaisseau-mère | live | — | 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 | automatonNon classés | vaisseau-mère | live | — | 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 | automatonNon classés | vaisseau-mère | live | — | 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 | automatonNon classés | vaisseau-mère | live | — | 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). | automatonNon classés | vaisseau-mère | live | — | 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. | automatonNon classés | vaisseau-mère | live | — | Chantier #1574 permanence-vocale-ia. | ||
| La relève des messages vocaux est-elle vivante ? | automatonNon classés | vaisseau-mère | live | — | ac_permanence_vm_lock_watchdog.sh — la relève des messages vocaux est-elle vivante ? | ||
| Le poll Renoir est-il vivant ? | automatonNon classés | vaisseau-mère | live | — | ac_renoir_lock_watchdog.sh — le poll Renoir est-il vivant ? | ||
| Pousse les skills PUBLIABLES de ac_hub vers le VPS synedre. | automatonNon classés | synedre | live | — | — internal description | ||
| Releve de boite cloisonnee | automatonNon classés | vaisseau-mère | live | — | 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. | automatonNon classés | vaisseau-mère | live | — | Chantier #1571 renoir-dispatch-vigies, travail #1988 (triage-trois-niveaux), critère 4 seul. | ||
| Vigie des 500 d'API sur toute la flotte Nuxt. | automatonNon classés | vaisseau-mère | live | — | — internal description | ||
| Alerte fondateur sur accumulation proposals pending. | automatonOracles | vaisseau-mère | live | — | 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 | automatonOracles | vaisseau-mère | live | — | 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). | automatonOracles | vaisseau-mère | live | — | 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. | automatonOracles | vaisseau-mère | live | — | 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. | automatonOracles | vaisseau-mère | live | — | 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). | automatonOracles | vaisseau-mère | live | — | À 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). | ||
| ═══════════════════════════════════════════════════════════════════════════ | automatonOracles | vaisseau-mère | live | — | ═══════════════════════════════════════════════════════════════════════════ | ||
| Régénération profonde autonome (Shyrka) | conductScribes | synedre | live | — | 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. | automatonTisserands | vaisseau-mère | live | — | Exporte les tokens MCP du .env racine dans l'environnement du shell. | ||
| Fetch + scan des MÉDIAS ENTRANTS WhatsApp | automatonTisserands | vaisseau-mère | live | — | — internal description | ||
| Poll inbox Atlas | automatonTisserands | vaisseau-mère | live | — | Déclencheur Atlas sur emails entrants. | ||
| Remonte le statut SEO MANUEL posé depuis le hub | automatonTisserands | vaisseau-mère | live | — | 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. | automatonTisserands | vaisseau-mère | live | — | 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. | automatonTisserands | vaisseau-mère | live | — | — internal description | ||
| Sync inbox IMAP | automatonTisserands | vaisseau-mère | live | — | Synchronisation des emails entrants OVH. | ||
| Synedre/ac_nightingale_escalate.py — Relance escaladante jusqu'au forward vers Atlas. | automatonTisserands | vaisseau-mère | live | — | 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. | automatonVigies | vaisseau-mère | live | — | 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 | conduct | in-house | 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 | conduct | in-house | 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 | automatonOracles | vaisseau-mère | stopped | — cause undocumented | Synchronisation des rendez-vous Calendly vers la DB | ||
| Cover Generator Cron | automatonScribes | vaisseau-mère | stopped | — cause undocumented | 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 | stopped | — cause undocumented | Génération descriptions produit via Claude CLI (polling queue) | ||
| Modération IA des commentaires blog (agent Socrate) | automatonScribes | vaisseau-mère | stopped | — cause undocumented | Modération IA des commentaires blog (agent Socrate) | ||
| Orchestrateur de publication sociale automatisée (LinkedIn, X, FB, IG) | automatonScribes | vaisseau-mère | stopped | — cause undocumented | Orchestrateur de publication sociale automatisée (LinkedIn, X, FB, IG) | ||
| Redaction IA Cron | automatonScribes | vaisseau-mère | stopped | — cause undocumented | Traite ps_ac_redaction_queue : Claude CLI redige articles blog + FAQ | ||
| Traitement des revues doc externes (regard des autres) | skillScribes | vaisseau-mère | stopped | — cause undocumented | 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 | automatonScribes | vaisseau-mère | stopped | — cause undocumented | 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 | automatonTisserands | vaisseau-mère | stopped | Coupé pendant un réimport sélectif de catalogue — la reprise est un geste décidé, pas un redémarrage automatique. 2026-08-06 | — undocumented | ||
| AC Uptime Monitor — clients prod | automatonVigies | vaisseau-mère | stopped | — cause undocumented | 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 | automatonVigies | vaisseau-mère | stopped | — cause undocumented | Détecte les concepts utilisés dans les articles mais absents du dictionnaire | ||
| Surveillance emails clients en temps réel, détection P0 | automatonVigies | vaisseau-mère | stopped | — cause undocumented | Surveillance emails clients en temps réel, détection P0 | ||
| + 7 counted, unnamed | |||||||
17 runs carry a name tied to one client: counted here, not named. Once those automata take a tenant as an argument instead of being written for a single one, they will show up on their own.
81 operational conducts
Each conduct is a versioned file: the exact procedure, the guardrails, the order of moves. 105 are written, re-read from the repository every fifteen minutes.
Filter by tag
aides-foyer
After-school care, childcare arrangements and benefits for the household children: what they are entitled to, what is being overpaid, what remains to be checked. When Alex asks what the household can claim, or prepares a new school year.
Updated — 26 Aug 2026
apprendre
Drafts a post-project lesson via Montessori: analyses the agent flow (tasks, iterations, scars, logs) and extracts 5 fixed sections. Draft as output, Alex reviews before promotion.
Updated — 26 Aug 2026
audit-api-guards
Audits the authentication guards on API routes: which writes are reachable without credentials, and which guards exist but guard nothing. Replays the 2026-08-17 inventory (79 bare routes + 7 bypassable guards). Run it before opening a route to the public, after adding an endpoint, or whenever security is in doubt.
Updated — 26 Aug 2026
audit-conduite
Retroactive audit of the canonical conduct format: scans type:conduite skills and flags incomplete frontmatter, missing Partition/Garde-fous, over-long description, over-heavy body. Read-only.
Updated — 26 Aug 2026
audit-doc
Python docstring debt audit over synedre/: measures coverage (module / public def / model) by exact AST. Non-blocking mirror of the docstring-required hook. Read-only.
Updated — 26 Aug 2026
audit-doctrine
Doctrine ↔ enforcement audit: cross-checks ps_ac_doctrine against the hooks actually present and their settings.json wiring. Detects orphan doctrines, dormant hooks, unguarded debt. Read-only.
Updated — 26 Aug 2026
audit-forum-seo
Audits a forum's SEO declaration chain: sitemap, robots.txt, thread coverage, URL health, Search Console. Read-only, exit 0 healthy / 1 anomaly.
Updated — 26 Aug 2026
audit-hard-floor
Anti-rot audit of the immutable P0 whitelist (hard_floor_p0.yaml): checks that every path and section of the manifest still exists. Catches the drift when a P0 file is renamed.
Updated — 26 Aug 2026
audit-i18n-slugs
i18n SEO audit of synedre.com: EN↔FR key parity, EN slugs actually written in English, consistency of the map. Run it before any deploy touching pages, i18n or routing.
Updated — 26 Aug 2026
audit-lexicon
Anti-drift audit of the sy_lexicon lexical registry: missing DB CHECKs, diverging code enums, forbidden synonyms in Drizzle. Read-only, exit 0 healthy / 1 drift.
Updated — 26 Aug 2026
audit-modules
Anti-drift audit of CodeMyShop modules (community + enterprise): manifest, edition ↔ location, table regime, idempotent install.sql, vertical placement. Read-only.
Updated — 26 Aug 2026
audit-sql-escape
Retroactive watch over hand-rolled SQL escaping: detects any backslash doubling against a PostgreSQL target (silent corruption) and measures manual-escaping debt with a ratchet. Read-only, exact AST.
Updated — 26 Aug 2026
bank
Reads bank accounts and transactions: balances, unreconciled entries, sync health. Read-only through the ac_bank façade — the sync runs on cron, and restarting it needs Alex's go-ahead.
Updated — 26 Aug 2026
boucles-client
Client email loops left open (message received without a reply), and reply drafts on demand. Nothing is sent: drafts wait for Alex's review.
Updated — 26 Aug 2026
browser
Drives a real Chrome browser (OMEN box, bucéphale) from the mothership: navigate, click, fill in, capture. For sites with no API, or shielded by anti-bot protection.
Updated — 31 Aug 2026
budget-foyer
Works out the HOUSEHOLD monthly budget: actual spending per category against the caps, gaps, projections. When Alex asks how much it costs per month, or prepares a split between parents.
Updated — 26 Aug 2026
chantier
Steering of Synedre chantiers (1 chantier = N works): dashboard, drill-down to work then task, atomic creation with skeleton. Use it whenever a chantier is opened, tracked or moved forward. `--auto` mode, post-explode audit, `--auto-run` and CLI verbs in references/.
Updated — 26 Aug 2026
chantier-audit
READINESS audit of chantiers: spots the ones too vague to be finished autonomously, scores them, enriches them (--enrich), disarms those armed by mistake. Feeds the hard auto_arm gate.
Updated — 26 Aug 2026
chantier-live
Starts a project NOW and drives it through to done with no intervention, following the flow in the terminal. Ends with the preprod review file. For when waiting for the night autonomy window is not an option.
Updated — 26 Aug 2026
cicatrices-publish
Publishes the curated PUBLIC scars of synedre.com: selection, P0 sanitisation, adversarial review by Mitnick, deploy plus leak scan. Never a client name, an IP or a secret exposed.
Updated — 26 Aug 2026
clone
Parity loop between a tenant's staging and its LIVE site: lists the missing features, seeds the trivial DB sections, opens a chantier for the rest. ⚠️ Nothing to do with /clone-site.
Updated — 26 Aug 2026
clone-site
Generates the "access & server details" intake protocol needed to clone a client's existing site. ⚠️ Nothing to do with /clone (staging ↔ live parity for a tenant already in place).
Updated — 26 Aug 2026
cmd-une-ligne
When a command has to be typed by Alex directly: make it copyable in a single gesture — one line, under the terminal width, arguments derived rather than spelled out. As soon as you write "paste this" or offer a leading exclamation mark.
Updated — 26 Aug 2026
cocon-linkmap-audit
Audits the internal linking of a tenant's category semantic cocoons (upward breadcrumb, downward subcategoryPills, sibling cross-links, orphan id_category_default). Read-only, fixes nothing.
Updated — 26 Aug 2026
colis-non-recu
Claiming an Amazon parcel marked "delivered" (or even "handed to the recipient") but never received: evidence gathering, the support path all the way to live chat, refund. Drives the authenticated Chrome on bucéphale.
Updated — 26 Aug 2026
compta
Sole-trader bookkeeping in one move: bank import → invoice reconciliation → categorisation → report. Run it when Alex pastes a bank dump, or for a single step on its own.
Updated — 26 Aug 2026
compta-perso
Enters a HOUSEHOLD expense or invoice into the household books: nursery, school, energy, health. Business accounting stays on its own side — never the other way round. As soon as a personal invoice arrives by email, through a portal, or on paper.
Updated — 26 Aug 2026
context-status
State of the current session's context: tokens spent, green/amber/red zone, and what to change in your method before saturation. Use it when a session drags on, or before committing to a large piece of work.
Updated — 26 Aug 2026
crawlers
Analyses bot hits (bot-hits.json) and produces a report: crawlers seen, frequency, targeted paths, anomalies. To understand who crawls a site, and at what pace.
Updated — 26 Aug 2026
deploy
Puts one of the house sites online (synedre-os, codemyshop, alexandrecarette) or a tenant staging: pre-flight, return to trunk, deploy, live proof. Use it whenever something has to be published. ⚠️ A client's PRODUCTION goes through ./ship, never through here.
Updated — 26 Aug 2026
dictionnaire
Adds terms to the published technical dictionary, with definitions written for the head of a small business rather than for an engineer. Argument: the words to add.
Updated — 26 Aug 2026
doc-tech
Generates or refreshes a piece of technical documentation (subsystem, module, folder, harness). write→verify→fix orchestration across agents. --refresh for stale pages. Never commits without an OK.
Updated — 26 Aug 2026
facture
Creates, lists, renders the PDF and sends an invoice or a quote through the ac_invoicing façade. Handles recurring subscriptions too. The issuer is always the sole trader; show before send is mandatory.
Updated — 26 Aug 2026
fenetre-autonomie
Drives the TIME WINDOW of night-time autonomy, day by day. Shows and edits start-to-end, enables or disables a given day. Source sy_autonomy_window. To change or shift the schedule.
Updated — 26 Aug 2026
forum-article
Draws an article out of an already-published forum thread: final thesis, support verified turn by turn, draft handed back to Alex. Never published.
Updated — 26 Aug 2026
forum-lecon
A lesson in dialogue played by 4 agents (veille asks, academy explains, dialogue contradicts, dg arbitrates), then published on synedre.com/forum/dialogues. For a public teaching thread grown from a question. Options --source/--counterpoint/--epreuve detailed in references/. Never ./ship.
Updated — 26 Aug 2026
graver-victoire
Records a victory in ps_ac_cicatrices (kind=victory) — the counterpart of the scar. Captures what worked and why, so it can be replayed rather than rediscovered.
Updated — 26 Aug 2026
handoff
Finds and shows the session handoff for the current directory, even one already picked up by another session. The safety net for when the SessionStart auto-resume has missed it. --reset makes it eligible for auto-resume again.
Updated — 26 Aug 2026
hierarchie-categories
Puts a tenant's category URLs into a hierarchy: moves internal links from the flat slug to the nested path rebuilt from ps_category, with systematic 301s. Idempotent, tenant-agnostic.
Updated — 26 Aug 2026
host
Audit and maintenance of a host (mothership, tenant, IP): `infra` for load/disk/SSL/containers, `secu` for UFW/SSH/fail2ban/headers, `backups` for dump freshness and integrity, `upgrade` for a non-interactive APT. With no section given, all three audits run. Returns the fixes as exact commands.
Updated — 26 Aug 2026
htpasswd
(Re)generates the nginx Basic Auth of a tenant staging (login=alex/password=alex by default). Auto-detects the VPS and the .htpasswd file, reloads nginx, then checks it live.
Updated — 26 Aug 2026
idee
Records a brainstorm idea in the /hub/brainstorm registry (table sy_brainstorm). Use it when Alex wants to note down a lead without opening a chantier.
Updated — 26 Aug 2026
inbox
Searches or reads incoming email (ps_ac_inbox_emails) through the Nuxt TS façade. Two fallbacks included: direct OVH IMAP if the façade is down, and lookup by sender plus time.
Updated — 26 Aug 2026
integration-maquette
Turns a Figma mock-up into a previewable homepage VARIANT, without touching the live site. Chain: figma → plan → Alex CHECKPOINT → DRAFT variant → staging deploy → preview link.
Updated — 26 Aug 2026
mac
Drives Alex's Mac through computer-use from the mothership (native SSH, no VNC): eyes (screenshot) and hands (cliclick/osascript). Reserved for STRICTLY graphical tasks.
Updated — 26 Aug 2026
malt
Fetches the latest prospect conversations from Alexandre's Malt account: assignments received, unread messages. Read-only — no reply is ever sent without explicit validation.
Updated — 27 Aug 2026
marque-depot
Files a European Union trade mark with the EUIPO, then keeps its deadlines: form pre-filled in the browser, payment by bank transfer, D+21 reminder, opposition watch. To invoke once a filing decision is made and it is time to act.
Updated — 26 Aug 2026
memoire
Semantic recall through pgvector RAG over memory/ + brain/ + ps_ac_{cicatrices,doctrine,chantier}. Finds the relevant notes even when the exact slug is unknown.
Updated — 26 Aug 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.
Updated — 26 Aug 2026
meta-forum-source
End-to-end sourced forum thread, with no human review: collects an author's corpus, puts it through two gates (mechanical, then an adversarial juror), plays the dialogued lesson on that text and publishes it. Orchestrates /corpus and /forum-lecon. Never ./ship, never --force-publish.
Chains
/sources-ouvrage/forum-lecon
Updated — 26 Aug 2026
monitoring-live
LIVE tracking of an autonomous chantier while it runs: watch the execution stream, spot a drift or a runaway, cut early. To OBSERVE during, not to judge after — the verdict belongs to QA.
Updated — 26 Aug 2026
negociation
Loads the context of a sales negotiation (sy_negociation) — the counterpart of /chantier for the lead → deal pipeline. Argument -id <id>, <id>, or empty for the list.
Updated — 26 Aug 2026
notes-atomiques
Splits a monolithic document into atomic notes filed into the Obsidian Vault, without touching the source. Argument: the path of the file to break apart.
Updated — 26 Aug 2026
page-iso-figma
Renders a CMS PAGE identical to a Figma mock-up, content 100 % in the database (ps_cms + cs_page_section + cs_page_block), zero tenant .vue. For a content page — the homepage belongs to /integration-maquette.
Updated — 26 Aug 2026
parcours-client
Replays a shop's purchase funnel in a REAL browser, from the home page to the order summary, stopping before payment. To be run after every delivery touching catalogue, cart, checkout or emails.
Updated — 26 Aug 2026
perso-3d
Generates a coloured 3D character (GLB) from a 2D turnaround character sheet. Chain: crop → Hunyuan3D-2mv → colorize → draco GLB. ⚠️ The mesh goes through a third-party HF Space.
Updated — 26 Aug 2026
persona
Drift of the agent personas against the current stack: with no argument, an audit of the 30 agents (PrestaShop/MariaDB/Nuxt 3 mentions in the job_* fields, snapshot in sy_personas_drift_history); with `<codename> --fix`, a mistral LLM refresh plus a 3-way diff validated by Alex.
Updated — 26 Aug 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.
Updated — 26 Aug 2026
propal-verif
Automatic QA of a commercial proposal email before it goes out: spawns a team of Synedre agents who review the substance, the price, the tone and the legal risk. Never sends.
Updated — 26 Aug 2026
protection-majeur
To invoke when Alex wants to process the correspondence of an adult-protection file: new messages to sort, facts to extract, procedures to update, admissibility to state, sibling summary to draft. The only point of the file where an LLM steps in — never on a cron.
Updated — 26 Aug 2026
publish
Publishes a blog article on alexandrecarette.fr: writing under the editorial charter, FAQ, SEO metadata, going live and checking the URL. Argument: the topic.
Updated — 26 Aug 2026
qa-responsive
Checks how a tenant renders on mobile, tablet and desktop — replayable DOM measurements breakpoint by breakpoint, then an eye on what measurement cannot see. Argument: the tenant, optionally a route.
Updated — 26 Aug 2026
reponse-client-annotee
Answering a client by SHOWING them: a capture of the delivered page, areas boxed and captioned, then an email through the façade. To announce a go-live or settle a visual doubt. Nothing is sent without Alex's "valide".
Updated — 26 Aug 2026
revue-agents
Opens the Revue de la Place des Armes: each agent on duty presents itself before the Founder and delivers its report. Use it for an overall view of the state of the Synedre.
Updated — 26 Aug 2026
run
Opens a scoped Synedre RUN (sy_run), the default route for light work. Loads its perimeter from the database. ⚠️ Nothing to do with the harness's native /run (the app launcher).
Updated — 26 Aug 2026
scan-attachment
Antivirus scan of an email attachment BEFORE it is ever opened (ClamAV plus per-type heuristics). A blocking prerequisite: no incoming attachment is read without a clean verdict. Argument: a file, a folder, or --id <email>.
Updated — 26 Aug 2026
seo-audit
SEO audit of a tenant: i18n coverage (slug, name, metadata, H1 per language) plus the technical sentinel (404/5xx sweep, 28-day Search Console health, alert/warn/ok verdict). Argument: the tenant enrolled in sy_seo_sentinel_target, or empty for every active tenant.
Updated — 26 Aug 2026
seo-coverage
Multi-tenant watch over French SEO coverage: shows, per site and per page type, the holes in meta_title, meta_description, h1 and short description. Read-only, generates nothing.
Updated — 26 Aug 2026
seo-meta
Audits and repairs the SEO metadata of a tenant's categories (titles and descriptions), with ac_seo_optimizer as the single engine. Hand-written content is never overwritten. Every language, idempotent.
Updated — 26 Aug 2026
seo-orphelines
Multi-tenant watch for orphan URLs: probes what Google knows (not the sitemap) and follows redirects, to find indexed URLs answering 404, or 301-into-404. Read-only by default, idempotent.
Updated — 26 Aug 2026
sign-pdf
Applies Alex's scanned handwritten signature to a PDF (the equivalent of a signature stamp). To sign a quote, a contract or an administrative document.
Updated — 26 Aug 2026
simplifier-interface-dense
Audits and simplifies a DENSE interface (too many badges, colours, too much vocabulary per row). Captures the page, applies the 4 principles, proposes an ideal row and a single lexicon.
Updated — 26 Aug 2026
soulseek
Searching and downloading music on the Soulseek network (SlskNet) through the slskd daemon on bucéphale, then bringing it back to the mothership. To find a track or album unavailable on streaming or for direct purchase. Never autonomously: downloads happen on Alex's explicit order only.
Updated — 26 Aug 2026
sources-ouvrage
Collects and sorts the sources of a book or a thesis BEFORE a forum thread: verified attribution, counter-expertise included. Never plays the thread itself — /meta-forum-source takes over.
Updated — 26 Aug 2026
status
State of the system AND audit of the site: git, containers, production/staging HTTP, logs, database; the `site` argument runs a full audit of alexandrecarette.fr (key pages, robots/sitemap/JSON-LD, TTFB, security headers, score out of 100). At the start of a session, after an incident, or to audit the site.
Updated — 26 Aug 2026
ton-client
Loads a client's TONE file (register, form of address, profile, levers, things to avoid). Source sy_client.tone_of_voice, then sy_negociation, then a fallback to premium-artisan formal address.
Updated — 26 Aug 2026
traiter-demande
Handles a request from the client project tracker: injects the item's context, checks its real status, carries it out if needed (edit → commit → deploy), then updates the status.
Updated — 26 Aug 2026
tuto-mcp
Generates a per-tenant tutorial email showing the client how to fill in their own pages through THEIR Claude wired over MCP. Tone-aware, real examples read from the database, MCP-write guardrail.
Updated — 26 Aug 2026
url-change
Changing a LIVE URL (slug/link_rewrite rename, re-parenting, domain, localised route) in a fixed sequence: 301 verified, images checked, caches purged. Use it whenever an indexed public URL is renamed, moved or redirected.
Updated — 26 Aug 2026
urssaf
FinOps dashboard for the sole-trader business: revenue, URSSAF contributions, provisions, micro-BNC thresholds, flat-rate withholding. Indicative figures, to be confirmed with the accountant. Argument: the month.
Updated — 26 Aug 2026
wukong-post
Brings Sun Wukong into a forum thread to let it breathe: a single appearance, funny and signed, when someone mistakes power for authority. The right to appear belongs to the Director, never to the character. IGNORE|DRAFT|POST contract, 金箍 blocking before publication.
Updated — 26 Aug 2026
24 conducts are not shown: their procedure names a client, a domain or a machine. Nothing is sorted by hand — an automated check re-reads every conduct every fifteen minutes and pulls any that names a third party. A conduct that picks up a client name disappears from here on its own.
Proprietary concept
What is filed is not the idea of writing a procedure — that is as old as the trade. It is the mechanism: an ordered sequence of typed steps, some handed to an agent, others to a deterministic script, run by a single orchestrator and traced step by step. Claim 9 of the Synedre OS Soleau envelope, filed with INPI on 7 April 2026.
DSO number: DSO2026012576 · Depositor: Alexandre Carette EI · SIREN 510 903 594