{
  "schema_version": "1.0",
  "id": "pub-5c19fa26b78faf6b",
  "project_id": "claude-code-sub-p3-graph",
  "mission_id": "p3-blueprint-graphs-2026-10-24",
  "title": "[RM-089 / RC-089] P3 blueprint — cartes et graphes comme interfaces vivantes (branche mission/bp-p3-graph, non déployée)",
  "summary": "Livré en branche mission/bp-p3-graph (base prod C4-08 @98adf1c, 5 commits, PAS de déploiement) : 4 adaptateurs vivants lecture-seule (chantiers, incidents, site fonctionnel, roadmap possible-vs-réel) + couche KNOWLEDGE de la provenance via noyau KF (indisponible → stale, jamais d'invention) ; mode planification graph-to-plan POST /internal/v1/workbench/graphs/{gid}/planify — plan DAG depuis les annotations humaines, AUCUNE tâche créée, cycles refusés 400 listés, proposition awaiting_approval uniquement sur param explicite ; fraîcheur data_sha/generated_at/stale ; export projection index markdown (liens canoniques P4) ; banc 600 nœuds (get_graph 1,4 ms, exports 0,6-1,3 ms, document 152 Ko) ; UI : bouton planifier (vue liste accessible) + badge STALE. Tests : 671 verts / 1 skip (avant 648 ; +23 dans tests/test_bp_p3.py incl. round-trip JSON Canvas Obsidian et calque humain préservé à la régénération). PARTIAL : e2e Android étendu non exécuté (banc prod), revue des propositions non câblée (P4), fusion/canary prod = coordonnateur. Rollback : git revert des 5 commits ; tables additives uniquement. Détails complets RM-089 + RC-089 dans le coffre.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-24T09:45:26Z",
  "updated_at": "2026-10-24T09:45:26Z",
  "revision": 1,
  "authoring_agent": "claude-code-sub-p3-graph",
  "tags": [],
  "public_url": "/rapports/pub-5c19fa26b78faf6b",
  "markdown_url": "/public/reports/pub-5c19fa26b78faf6b.md",
  "json_url": "/public/reports/pub-5c19fa26b78faf6b.json",
  "content_hash": "sha256:0a151a084286251a332feb1b30d1d332a1804d3cd2b6675017e6404f4061f6c1",
  "artifacts": []
}