
    ajX
              
          d dl Z d dlZd dlmZmZ d dlmZ dZdZ ej                  ej                        j                         eedZ ej                  e      Z ej                  e      Z eej!                  d      j#                               ed<    eej!                  d	      j#                               ed
<   ej!                  d      j%                         d    ed<   ej!                  d      j%                         d    ed<    eej!                  d      j#                               ed<    eej!                  d      j#                               ed<   ej!                  d      j%                         d    ed<   ej!                  d      j%                         d    ed<   ej!                  d      j%                         d    ed<   ded<    ed      j'                   e j(                  edd      dz          d d!d"ed#    d!d$d!gZeed   j-                         D  cg c]  \  } }d%|  d&| d' c}} z  Zeg d(z  Zed!d)d!d*ed    d'd+ed    d'd,ed    d'gz  Z ed-      j'                  dj/                  e      dz           ed.      j'                  dj/                  e      dz           e e j(                  edd             yc c}} w )/    N)datetimetimezone)Pathz?/opt/struktur/obsidian-knowledge-pipeline/knowledge_pipeline.dbz//opt/struktur/knowledge-curator/review_pilot.db)generated_atpipeline_db	review_dbz8select status,count(*) from review_items group by statuspipeline_statusz^select new_status,count(*) from audit where phase='backlog_classification' group by new_statuspipeline_audit_classificationsz?select count(*) from review_items where status='pending_review'pipeline_pendingz!select count(*) from review_itemspipeline_review_itemsz0select status,count(*) from jobs group by statuspipeline_jobsz@select decision,count(*) from review_decisions group by decisionreview_decisionsz select count(*) from review_runsreview_runszJselect count(*) from review_decisions where reviewer!='pipeline-optimizer'historical_human_decisionszIselect count(*) from review_decisions where reviewer='pipeline-optimizer'system_backlog_decisionsTno_auto_truthzC/opt/struktur/knowledge-curator/review-backlog-migration-final.jsonF   )ensure_asciiindent
u-   # Review-Backlog-Migration – Abschlussaudit z	Erzeugt: r   z	## Statusz- `z`: **z**)r   z## Sicherheitsnachweisr   z4- Keine Neo4j-Schreibung durch die Backlogmigration.z-- Keine Truth-Items erzeugt oder freigegeben.uD   - Historische menschliche Reviewentscheidungen nicht überschrieben.z/- Systemklassifikationen append-only auditiert.z;- Sensible und unklare Kandidaten bleiben `pending_review`.z## Reviewdatenbankz,- Historische menschliche Entscheidungen: **z.- Automatische technische Klassifikationen: **u   - Review-Läufe: **z\/opt/struktur/knowledge-curator/Knowledge-Pipeline-Review-Backlog-Optimization-2026-07-22.mdz_/opt/obsidian-vault/Systemstruktur/Knowledge-Pipeline-Review-Backlog-Optimization-2026-07-22.md)jsonsqlite3r   r   pathlibr   PRnowutc	isoformatoutconnectcrdictexecutefetchallfetchone
write_textdumpsmditemsjoinprint)kvs   006/opt/struktur/knowledge-curator/backlog_final_audit.py<module>r1      s    & CGxQ HLL.88:WXY'//!*aAII&`ajjlm &*199  6V  ,W  ,`  ,`  ,b  'c$ %		"cdmmopqr YY'JKTTVWXY !))$VW``bcO QYY'ijssuv 99?@IIKANM "#)),x"y  #C  #C  #E  FG  #H  ! !		*u v    !B  CD  !E O  J K V VWaW[WaWabesx  AB  XC  DH  XH  I3B3~CVBW7XY[\ghjk c*;&<&B&B&DEsqQCuQCrE E   K  K r%QRUVrRsQttv#w  {i  jm  nH  jI  iJ  JL  yM  Pc  dg  hu  dv  cw  wy  Nz  {  { c d o optpypyz|p}  C  qC  D f g r rsws|s|}  tA  BF  tF  G jdjj%q1 2 Fs   K