From 301867d0eef1d4261d72baecb55e130988bb9191 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Fri, 24 Apr 2026 09:31:51 +0900 Subject: [PATCH] =?UTF-8?q?feat(db):=20migration=20153=20=E2=80=94=20analy?= =?UTF-8?q?ze=5Fevents=20shadow=20=EC=BB=AC=EB=9F=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ALTER TABLE analyze_events ADD COLUMN IF NOT EXISTS 로 10개 shadow 컬럼: subject_domain, risk_flags[], high_impact_task, escalated_to_26b, escalation_reasons[], confidence, policy_violation, policy_violation_ids[], shadow_would_route_to, policy_version. + 2 partial index: - idx_analyze_events_shadow_ts (shadow_would_route_to IS NOT NULL) - idx_analyze_events_policy_violation (policy_violation=true) 전부 nullable, 기본값 NULL. 아무도 쓰지 않음 — PR-B 의 DBShadowLogger 가 writer 추가 예정. 번호 153: 152 는 `feat(category): law` 가 점유 (e88640d). BEGIN/COMMIT 없음 (CLAUDE.md: _run_migrations 단일 outer 트랜잭션). answerability / new_facts_count 는 PR-B 의 migration 154+ 가 소유. plan: ~/.claude/plans/wise-gliding-hippo.md Co-Authored-By: Claude Opus 4.7 (1M context) --- migrations/153_analyze_events_shadow.sql | 29 ++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 migrations/153_analyze_events_shadow.sql diff --git a/migrations/153_analyze_events_shadow.sql b/migrations/153_analyze_events_shadow.sql new file mode 100644 index 0000000..4dd9f35 --- /dev/null +++ b/migrations/153_analyze_events_shadow.sql @@ -0,0 +1,29 @@ +-- 153_analyze_events_shadow.sql +-- AI Policy Layer (PR-A) — shadow 관측용 컬럼만 추가. 아무도 쓰지 않음. +-- PR-B 가 DBShadowLogger 구현 후 writer 추가 예정. +-- +-- plan: ~/.claude/plans/wise-gliding-hippo.md +-- axis 원칙: feedback_category_vs_ai_domain_axis.md (subject_domain 은 정책 축, +-- documents.category 매칭 키로 쓰지 않음) +-- +-- 주의: _run_migrations 는 단일 outer 트랜잭션으로 실행됨 — BEGIN/COMMIT 금지. + +ALTER TABLE analyze_events + ADD COLUMN IF NOT EXISTS subject_domain TEXT, + ADD COLUMN IF NOT EXISTS risk_flags TEXT[], + ADD COLUMN IF NOT EXISTS high_impact_task BOOLEAN, + ADD COLUMN IF NOT EXISTS escalated_to_26b BOOLEAN, + ADD COLUMN IF NOT EXISTS escalation_reasons TEXT[], + ADD COLUMN IF NOT EXISTS confidence REAL, + ADD COLUMN IF NOT EXISTS policy_violation BOOLEAN, + ADD COLUMN IF NOT EXISTS policy_violation_ids TEXT[], + ADD COLUMN IF NOT EXISTS shadow_would_route_to TEXT, + ADD COLUMN IF NOT EXISTS policy_version TEXT; + +CREATE INDEX IF NOT EXISTS idx_analyze_events_shadow_ts + ON analyze_events (created_at) + WHERE shadow_would_route_to IS NOT NULL; + +CREATE INDEX IF NOT EXISTS idx_analyze_events_policy_violation + ON analyze_events (created_at) + WHERE policy_violation = true;