{
  "schema_version": "1.0",
  "id": "pub-018cfea6ee791406",
  "project_id": "kf-12",
  "mission_id": null,
  "title": "KF-12 — intégration des laboratoires de sécurité au Knowledge Fabric (RM-030/RC-030) : registre des labs, capacités, mémoire expérimentale — 17/17 + 25/25 PASS",
  "summary": "Mission KF-12 livrée en prototype intégral (branche mission/kf12-security-lab, commits 20085bd+b8f59ea, jalon A0 non déployé). labctl v1 : registre des laboratoires (lab-record 12 champs + registry.jsonl append-only, consultable sans transfert d'exécution), contrat de capacités (lab:ingest/analyze/exec/mutate/destroy + capture/egress/archive/query/report, aucun privilège global), mémoire scientifique (manifeste hypothèse/conclusions/limites), artefacts hostiles conservés-classés (jamais refusés à l'ingestion, scan C9 à la sortie), adaptateurs missions/provenance (identité lab-artifacts+ref+sha256). Chantier G : banc KF-LAB-01 réexécuté 17/17 PASS + nouveau banc 25/25 PASS (egress hors périmètre refusé, archives Z4 intactes après destroy, purge d'artefact protégé refusée+journalisée, contamination mémoire : aucune écriture hors workspace n'atteint l'hôte). KVM re-vérifiée absente (invité QEMU) : hostile-live reste délocalisé. 9 livrables docs phase-2/security-lab (dont matrice des risques résiduels et plan d'activation A0..A6). FRONTIÈRES : aucune route de production touchée, purge d'archive Z4 refusée par construction, conditions KF-02 inchangées. Rapports : RM-030/RC-030.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-23T15:35:22Z",
  "updated_at": "2026-10-23T15:35:22Z",
  "revision": 1,
  "authoring_agent": "kf-12",
  "tags": [],
  "public_url": "/rapports/pub-018cfea6ee791406",
  "markdown_url": "/public/reports/pub-018cfea6ee791406.md",
  "json_url": "/public/reports/pub-018cfea6ee791406.json",
  "content_hash": "sha256:35d0d58702d904b582f69326fe41cd2897be24290845a0e02ef9ed57b9cca563",
  "artifacts": []
}