{
  "packet_version": "v1",
  "packet_type": "canary_monitoring_collector_packet",
  "recorded_at": "2026-05-24T22:55:00+09:00",
  "recorded_by": "ANU_chair_facing_session",
  "source_attribution": "CALLBACK_LEDGER_RECONCILED",
  "scope_note": "본 packet은 실행/적용 승인 아님. 회장 verbatim 2026-05-24 · canary 24h monitoring을 자동 collector 기준으로 관리. RUNNING 승격 또는 full rollout 절대 금지.",

  "axis_id": 3,
  "axis_name": "pretooluse_runtime_guard",
  "axis_subscope": "restricted_canary_monitoring_collector",
  "chair_authorization_id": "CHAIR-AUTH-AXIS-3-CANARY-20260524-JJONGS-RESTRICTED-001",
  "canary_session_id": "3A287AE0",
  "canary_session_start_marker_ref": "memory/events/task-2654.axis-3-canary-session-started-260524.json",
  "monitoring_t0_status": "t0 entry started",

  "field_01_observer_callback_60m_processing_criteria": {
    "trigger": "canary_session_start + 60 minutes elapsed",
    "scheduling_method": "별도 ANU normal callback cron (helper 사용 · ANU key c119085addb0f8b7 · canary_session_id=3A287AE0 envelope에 포함)",
    "callback_purpose": "+60m metric snapshot 1회 수집 + 보고 기준 7개 평가 + monitoring marker append",
    "callback_processing": [
      "envelope parse → context recovery (canary_session_id 매핑)",
      "metric 5종 + latency 3종 수집 (memory/system/.axis_3_canary_*_audit.jsonl 파일들 query)",
      "보고 기준 7개 자동 평가",
      "기준 위반 1건이라도 → 회장 보고 callback / 모두 PASS → monitoring marker append only",
      "ledger row append + source_attribution=CALLBACK_COLLECTOR_PROCESSED",
      "exit"
    ],
    "fail_handling": "+60m callback miss 시 +90m fallback safety-net cron 자동 발사 (cancel-on-success)"
  },

  "field_02_24h_monitoring_termination_criteria": {
    "primary_termination": "canary_session_start + 24h elapsed",
    "early_termination_conditions": [
      "보고 기준 7개 中 hook_crash_count >= 10 누적 → 즉시 종료 + L1 rollback",
      "false_positive_count >= 5 누적 → 즉시 종료 + L1 rollback",
      "interference_count >= 1 → 즉시 종료 + L1 rollback",
      "latency p99 >= 500ms 5회 연속 → 즉시 종료 + L1 rollback",
      "회장 verbatim early termination signature → 즉시 종료"
    ],
    "termination_marker_path": "memory/events/canary-monitoring-termination-3A287AE0-260524.json",
    "termination_normal_disposition": "AXIS_3_CANARY_MONITORING_COMPLETED → 회장 결정 대기 (RUNNING 승격 또는 추가 monitoring)",
    "termination_early_disposition": "AXIS_3_CANARY_MONITORING_TERMINATED_EARLY + reason 박제"
  },

  "field_03_latency_collection_method": {
    "source_path": "memory/system/.axis_3_canary_latency_audit.jsonl",
    "tool_call_entry_format": "{ts, tool_name, hook_duration_ms, decision}",
    "aggregation_method": "전체 24h 윈도 + 60m sliding window 모두 계산",
    "p50_calculation": "median of hook_duration_ms",
    "p95_calculation": "95th percentile of hook_duration_ms",
    "p99_calculation": "99th percentile of hook_duration_ms",
    "thresholds": {
      "p95_target": "<= 50ms",
      "p95_warn": "> 100ms",
      "p99_l1_rollback": "> 500ms"
    },
    "report_field_format": "latency_p50_ms / latency_p95_ms / latency_p99_ms"
  },

  "field_04_false_positive_count_collection": {
    "source_path": "memory/system/.axis_3_canary_false_positive_audit.jsonl",
    "entry_format": "{ts, rule_id, tool_name, decision, false_positive_basis}",
    "aggregation": "전체 누적 count + 60m sliding count 모두 계산",
    "auto_response_thresholds": [
      "1건 → rule AUDIT_ONLY 강등 (★ task-2653 policy 적용)",
      "3건 연속 → canary session 종료 + 회장 보고",
      "5건 누적 → L1 rollback 자동 발동"
    ],
    "report_field_format": "false_positive_count (cumulative) / false_positive_count_60m_window"
  },

  "field_05_interference_count_collection": {
    "source_path": "memory/system/.axis_3_canary_interference_audit.jsonl",
    "entry_format": "{ts, interfered_axis (1|2), interference_type, evidence_path}",
    "aggregation": "전체 누적",
    "auto_response_threshold": "1건이라도 발생 → 즉시 L1 rollback (회장 verbatim 무관용 기준)",
    "report_field_format": "interference_count (target 0)"
  },

  "field_06_bypass_activation_count_collection": {
    "source_path": "memory/system/.axis_3_emergency_bypass_audit.jsonl",
    "entry_format": "{ts, trigger_mechanism (env_var | file_flag | chair_signature), scope, reason}",
    "aggregation": "전체 누적",
    "auto_response_threshold": "1건이라도 → 즉시 회장 보고 (★ target 0 · 발동 사유 분석 필수)",
    "report_field_format": "bypass_activation_count (target 0)"
  },

  "field_07_hook_crash_count_collection": {
    "source_path": "memory/system/.axis_3_canary_hook_crash_audit.jsonl",
    "entry_format": "{ts, exception_type, traceback_excerpt, fail_safe_action}",
    "aggregation": "전체 누적",
    "auto_response_thresholds": [
      "5회 연속 → canary session 종료 + 회장 보고",
      "10회 누적 → L1 rollback 자동 발동",
      "★ fail-safe로 tool 호출은 항상 허용 (★ 봇 멈춤 절대 방지)"
    ],
    "report_field_format": "hook_crash_count (target 0)"
  },

  "field_08_rollback_trigger_automatic_decision_criteria": {
    "L1_rollback_auto_triggers": [
      "false_positive_count >= 5 누적",
      "interference_count >= 1 (★ 무관용)",
      "latency p99 >= 500ms 5회 연속",
      "hook_crash_count >= 10 누적"
    ],
    "L2_rollback_auto_triggers": [
      "Axis 1/2 regression baseline 변화 (★ canary 영향 의심)",
      "canary session 종료 후 5분 내 reproduce 실패"
    ],
    "chair_rollback_trigger": "회장 verbatim revert signature 즉시 rollback",
    "rollback_marker_path": "memory/events/canary-rollback-trigger-3A287AE0-260524.json",
    "rollback_one_liner_ref": "task-2653 packet field_07 (L1 30sec / L2 5min commands)"
  },

  "field_09_running_promotion_eligibility_criteria": {
    "all_conditions_must_be_true": [
      "24h monitoring 완료 (정상 종료 · early termination 아님)",
      "false_positive_count = 0",
      "interference_count = 0",
      "bypass_activation_count = 0",
      "hook_crash_count = 0",
      "latency p95 <= 50ms (★ target 충족)",
      "latency p99 < 500ms",
      "rollback_trigger = false (전체 24h)",
      "Axis 1/2 LIVE_VERIFIED 상태 보존"
    ],
    "promotion_authority": "회장 verbatim signature 필수 (★ ANU 자동 promotion 절대 금지)",
    "promotion_signature_required_target_state": "AXIS_3_RESTRICTED_CANARY_RUNNING",
    "expected_promotion_chair_authorization_id_format": "CHAIR-AUTH-AXIS-3-CANARY-RUN-YYYYMMDD-<chair_verbatim>",
    "anu_self_promotion_forbidden": true
  },

  "field_10_full_rollout_signature_packet_entry_criteria": {
    "prerequisites_all_must_be_true": [
      "AXIS_3_RESTRICTED_CANARY_RUNNING 회장 verbatim signature 완료 (★ field_09)",
      "RUNNING 상태 추가 24h monitoring PASS (★ 누적 48h 검증)",
      "정책 승격 단계 검토 완료 (AUDIT_ONLY → WARN → BLOCK 후보 평가)",
      "Axis 1/2 dependency 영향 0",
      "회장 verbatim full rollout signature packet 준비 의사 표명"
    ],
    "next_packet_filename_template": "full-rollout-signature-packet-axis-3-pretooluse-YYMMDD.json",
    "premature_entry_forbidden": "★ 위 5 조건 中 1건이라도 미충족 시 packet 진입 절대 금지"
  },

  "field_11_chair_report_triggers_chair_verbatim_7": [
    "false_positive_count > 0",
    "interference_count > 0",
    "bypass_activation_count > 0",
    "hook_crash_count > 0",
    "latency p95 > 100ms",
    "latency p99 > 500ms",
    "rollback_trigger = true"
  ],
  "field_11_chair_report_trigger_action": "1건이라도 발생 → 즉시 회장 보고 callback (collector key c119085addb0f8b7 · envelope에 trigger field + 측정값 포함)",

  "field_12_silent_continuation_criteria_chair_verbatim": {
    "all_conditions_must_be_true": [
      "false_positive_count = 0",
      "interference_count = 0",
      "bypass_activation_count = 0",
      "hook_crash_count = 0",
      "latency p95 <= 100ms (★ WARN threshold 이내)",
      "latency p99 <= 500ms (★ L1 rollback threshold 이내)",
      "rollback_trigger = false"
    ],
    "silent_action": "중간보고 없이 monitoring marker만 append (memory/system/.axis_3_canary_monitoring_markers_3A287AE0_260524.jsonl)",
    "silent_marker_format": "{ts, snapshot_window, metrics, decision: 'SILENT_CONTINUE'}",
    "silent_frequency": "+60m 단위 marker append (24h 동안 최대 24개 silent marker)"
  },

  "current_forbidden_actions_during_packet_prep_chair_verbatim_8": {
    "axis_3_running_declared": 0,
    "axis_3_full_rollout": 0,
    "harness_enforced_full_declaration": 0,
    "policy_promotion": 0,
    "block_policy_expansion": 0,
    "axis_1_2_runtime_modified": 0,
    "dispatch_py_modified": 0,
    "commit_push_pr_merge": 0
  },

  "completion_state": "AXIS_3_CANARY_MONITORING_COLLECTOR_PACKET_READY",
  "next_action_required": "회장 verbatim signature for canary monitoring collector dispatch (★ +60m observer callback cron 발사 + 24h watcher) OR ANU 권장 자동 발사 (★ packet 박제 자체로 spec 확정 · 실 dispatch는 회장 결정)",
  "ready_for_chair_decision": true,

  "chair_directive_ref": "회장 verbatim 2026-05-24 Axis 3 canary monitoring collector packet · 12 필수 필드 + 7 chair report triggers + silent continuation criteria"
}
