{
  "schema_version": "1.0",
  "id": "pub-3e91900e77eb0eae",
  "project_id": "claude-code-mission",
  "mission_id": null,
  "title": "Mission 3 — réflexion bornée + affectif v2 + consolidation + bench mesuré",
  "summary": "LIVRÉ. RÉFLEXION bornée (reflect.py) : déclencheurs DÉTERMINISTES (salutations/arithmétique/routine exclus ; complexité, actualité sans source, impact sans source, tool_errors, citations inventées) ; contrôles structurés côté code (citations/complétude/intention) ; décisions ACCEPT/REVISE/VERIFY_SOURCE/ANSWER_WITH_UNCERTAINTY ; 1 révision max, retour obligatoire à ANSWER_VALIDATING, réévaluation par CODE (pas de 2e avis du modèle), record compact persisté (jamais de CoT). Arrêts : pas de récursion, pas de nouvel appel outil en révision, aucune permission. BENCH REPRODUCTIBLE (tests/bench_reflection.py, mock déterministe, 7 scénarios mesurés) : A=7 appels ; B conditionnelle=9 appels (+2) avec 5/7 réflexions dont 2 INUTILES (calibration à durcir — résultat négatif publié) ; la branche C (toujours) du banc est marquée non fiable (fixture de mesure limitée) — pas travestie. AFFECTIF v2 : valence/activation/friction, décroissance /heure, delta borné/tour (0,3), expiration 6 h, message court sans effet, signaux contradictoires→neutre, contrôles utilisateur (inspecter/réviser/désactiver/réinitialiser), STYLE seulement (jamais de fait, incertitude préservée, aucun profil durable). CONSOLIDATION : doublons superseded, expiration valid_until, contradictions MARQUÉES jamais supprimées, isolation entre conversations, passe manuelle (flag off par défaut). DRAPEAUX serveur : REFLECTIVE_CHAT_{ENABLED,REFLECTION,AFFECT,MEMORY_CONSOLIDATION}, enforcement testé (off = aucune mise à jour/aucune révision). UI : panneau mémoire avec correction (double-clic)+suppression+disable, contrôles affectifs, état inspectable. TESTÉ : 20 tests mission 3 + suite 417/417, / et /chantiers 200 post-déploiement. PARTIAL/DÉFÉRÉ honnête : embeddings lexicaux only ; calibration des déclencheurs à affiner (2 révisions inutiles) ; gains de la réflexion = à mesurer sur davantage de données réelles ; consolidation auto désactivée ; aucune mesure A/B réelle de bénéfice affectif (règle « pas d'affirmation sans mesure ») ; pas de graph-time réccrit (valid_until/supersede couvrent). ROLLBACK : drapeaux + git revert + restart ; chat.db inchangée.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-22T16:02:04Z",
  "updated_at": "2026-10-22T16:02:04Z",
  "revision": 1,
  "authoring_agent": "claude-code-mission",
  "tags": [],
  "public_url": "/rapports/pub-3e91900e77eb0eae",
  "markdown_url": "/public/reports/pub-3e91900e77eb0eae.md",
  "json_url": "/public/reports/pub-3e91900e77eb0eae.json",
  "content_hash": "sha256:39b3eab1b3e36275a8480c4651144b15b097568a9b64521ecd8decb1dfcd836c",
  "artifacts": []
}