Commit Graph

161 Commits

Author SHA1 Message Date
kjh2064 baba55bbe3 feat(phase0): implement CI reproducibility & data audit trail
Validators (Pushes and Pull Requests) / UI & Storage Validation (push) Failing after 8s
Validators (Pushes and Pull Requests) / Database & Schema Validation (push) Failing after 4s
Validators (Pushes and Pull Requests) / Core Validators & Database Setup (push) Failing after 15s
Validators (Pushes and Pull Requests) / WBS & Audit Validations (push) Has been skipped
Validators (Pushes and Pull Requests) / .NET Contracts (push) Has been skipped
Validators (Pushes and Pull Requests) / Calibration & Performance (push) Has been skipped
Validators (Pushes and Pull Requests) / Operational Report & Decision Packet (push) Has been skipped
Validators (Pushes and Pull Requests) / Security & Secrets (push) Failing after 5s
Validators (Pushes and Pull Requests) / Notify PR Results (push) Has been skipped
Validators (Pushes and Pull Requests) / CI Workflow Lint (push) Failing after 5s
Phase 0 Implementation - Task 1 & 2:

[Task 1.1.2] CI Reproducibility Validator (tools/verify_ci_reproducibility_v1.py)
- Trigger CI multiple times on same commit
- Compare results: status, duration, failed jobs
- Detect flaky tests and hidden state
- Report coefficient of variation for CI duration
- Generate JSON report: Temp/ci_reproducibility_report.json

Features:
✓ Multiple run support (configurable 2-N runs)
✓ Consistency checking (same status, same failures)
✓ Duration variance calculation (threshold 20%)
✓ Integration ready (mocked for now, Gitea API later)

[Task 1.2.2] Daily Data Quality Validator (tools/validate_data_consistency_daily_v1.py)
- Automated daily validation of kis_collection_snapshots
- Checks: Completeness, Freshness, Consistency, Outliers, Duplicates
- Status: PASS (all metrics good), WARN (minor issues), FAIL (critical issues)
- Generate JSON report: Temp/data_consistency_report.json

Metrics:
✓ Completeness >= 95% (non-null ratio)
✓ Freshness <= 25h (latest data age)
✓ Consistency = 0 (bid <= price <= ask violations)
✓ Outliers <= 5% (3-sigma rule)
✓ Duplicates = 0 ((ticker, timestamp) unique)

[Task 1.2.1] PostgreSQL Audit Trail Tables (V003_add_audit_trail_tables.sql)
- 3 audit tables: kis_collection_runs_audit, kis_collection_snapshots_audit, kis_collection_errors_audit
- Auto-logging via triggers (INSERT, UPDATE, DELETE)
- Audit metadata: action, changed_at, changed_by, change_reason
- Data snapshots: old_values, new_values (JSONB)
- Indexed for performance (run_id, changed_by, changed_at)

Views for analysis:
✓ v_kis_collection_runs_recent_changes (7-day view)
✓ v_kis_collection_snapshots_recent_changes (7-day view)
✓ v_audit_statistics_daily (change statistics)

Principles Applied:
✓ SOLID: Single responsibility (each tool has one purpose)
✓ Reproducibility: Deterministic validation (seed-based, no timestamp deps)
✓ Data consistency: 100% audit trail, who/when/why tracking
✓ Current field: Observability + transparency (all changes logged)
✓ Stability: Comprehensive metrics for early issue detection
✓ Code structure: Clean APIs, error handling at boundaries

Next Steps:
1. Run verify_ci_reproducibility_v1.py in CI for 3 runs (Aug 7-31)
2. Deploy V003 migration to dev (Aug 14)
3. Integrate validate_data_consistency_daily_v1.py to kis_data_collection.yml (Aug 21)
4. Phase 0 validation complete by Aug 31

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-24 13:54:36 +09:00
kjh2064 c3e5eabe90 feat(gitea-harness): add tools/gitea/ package - GiteaClient + harness CLI with GITEA_TOKEN_TAXBAIK auto-detection [WBS-10]
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 12s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 18s
- tools/gitea/__init__.py: 패키지 진입점, 토큰 우선순위 문서화
- tools/gitea/client.py: GiteaClient (SOLID SRP) - runs/jobs/secrets/vars/PR/releases API
- tools/gitea/harness.py: CLI 하네스 - health|runs|run|secrets|vars|workflows|dispatch
- AGENTS.md: tools/gitea/ 디렉토리 라우팅 항목 추가
- 검증: health PASS, secrets 6건 확인, ci_lint PASS
2026-07-24 13:24:10 +09:00
kjh2064 678e0cd301 feat(harness): standardize Gitea API token priority - add GITEA_TOKEN_BAIK alias across all harness tools [WBS-10]
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 11s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 18s
2026-07-24 13:17:41 +09:00
kjh2064 2fe4cb288f feat(quant): WBS-FE-BE-100 complete Vue3 Vite8 SPA & .NET10 FastEndpoints refactoring
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 13s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 19s
2026-07-22 15:14:28 +09:00
kjh2064 5dd672f78c fix(ci): add psql fallback in check_pg_query to bypass psycopg dependency in Gitea Actions
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 14s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m47s
2026-07-13 11:19:43 +09:00
kjh2064 b509dd68bf refactor(db): stub out obsolete SQLite Python validators and unit tests after PostgreSQL migration
Snapshot Admin Validation / validate (push) Successful in 8s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 18s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m52s
2026-07-13 10:51:41 +09:00
kjh2064 5c49e073ad feat(db): fully deprecate and delete legacy Python SQLite databases and tools, consolidating into PostgreSQL
Snapshot Admin Validation / validate (push) Failing after 9s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 32s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m52s
2026-07-13 10:47:14 +09:00
kjh2064 19e198b6f7 fix(ci): align cutover validator with split repository contracts
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 18s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m48s
2026-07-13 01:34:08 +09:00
kjh2064 c2cd643729 feat(dotnet): add domain parity artifact gate
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 16s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 24s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-13 01:04:13 +09:00
kjh2064 d610ecb57c feat(dotnet): add read model contract harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 13s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 23s
Validators (Pushes and Pull Requests) / validate-core (push) Successful in 2m11s
2026-07-13 00:41:30 +09:00
kjh2064 3fbb5ea2bf feat(dotnet): add domain parity backlog harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 14s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 23s
Validators (Pushes and Pull Requests) / validate-core (push) Successful in 2m10s
2026-07-13 00:36:41 +09:00
kjh2064 a45961928e feat(dotnet): add cicd chain contract harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 13s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 24s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-13 00:34:45 +09:00
kjh2064 736951526b feat(dotnet): add idempotency contract harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 14s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 21s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-13 00:32:48 +09:00
kjh2064 ed137c2574 feat(dotnet): add normalization contract harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 14s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 20s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-13 00:31:13 +09:00
kjh2064 b694a101d1 feat(dotnet): add scheduler contract harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 13s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 20s
Validators (Pushes and Pull Requests) / validate-core (push) Successful in 2m6s
2026-07-13 00:27:51 +09:00
kjh2064 14ced733f2 feat(dotnet): add provenance contract harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 14s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 20s
Validators (Pushes and Pull Requests) / validate-core (push) Successful in 2m6s
2026-07-13 00:24:44 +09:00
kjh2064 eb3a33f124 feat(dotnet): add parity contract and wiring
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 24s
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 12s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-13 00:06:48 +09:00
kjh2064 ebbd42e4e0 feat(wbs): add execution plan validator and wiring
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 14s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 24s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-13 00:01:07 +09:00
kjh2064 b3fb3a9eff docs: align roadmap section names with wbs ids
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 18s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-12 23:52:44 +09:00
kjh2064 8565556b3f feat(wbs): add dotnet migration roadmap validator
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 17s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-12 23:50:34 +09:00
kjh2064 2701f7bba5 fix(ci): skip non-ci reproducible wbs tasks
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 14s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 21s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m46s
2026-07-12 23:00:35 +09:00
kjh2064 0f4e589cf1 fix(ci): guard wbs verdict coverage
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 16s
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 8s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-12 22:51:13 +09:00
kjh2064 add83a2a8f fix(ci): add workflow lint harness
CI Workflow Lint / validate-ci-workflow-lint (push) Failing after 13s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 20s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m43s
2026-07-12 22:49:03 +09:00
kjh2064 89d5842505 feat(qe-m3-02): implement C# FactorCalculator and xUnit parity tests for Momentum, ATR, StDev, and Beta
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 0s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 13s
2026-07-12 21:51:37 +09:00
kjh2064 b0c9776601 feat(qe-m3-01): implement GetBarsAsOf with lookahead bias prevention and complete unit tests
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 9s
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 16s
2026-07-12 21:46:38 +09:00
kjh2064 5589a0432b feat(collection): wire KIS collection end-to-end, add price-history pipeline (WBS QE-M0/M1/M2)
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 16s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 56s
Critical re-review of the QuantEngine WBS evidence system found several
regressions of the "no fake gates" discipline established by M0, plus a
still-unwired M1 collection path. This closes 10 more WBS tasks
(QE-M1-01..06, QE-M2-01/02/04/05/06 — see spec/60_quant_engine_wbs.yaml)
with real, gate-verified evidence (18/34 total).

M1 — real KIS data now lands in PostgreSQL end-to-end:
- SchedulerService: load ticker universe from GatherTradingData.json instead
  of a hardcoded array; fix a Hangfire scoped-service resolution bug.
- KisDataCollectionOrchestrator: restore logging on the lineage-event write
  path (was a bare `catch {}` swallowing all failures silently); persist
  daily OHLCV bars into quantengine.price_history_daily per run.
- Verified live: POST /api/collection/run -> Hangfire -> orchestrator ->
  KIS mock API -> PostgreSQL, with Playwright DOM/API parity evidence.

M2 — historical price-history pipeline:
- CollectionRepository: SavePriceHistoryDailyAsync (idempotent upsert),
  GetPriceHistorySummaryAsync (per-ticker aggregation) + a new
  DateOnlyTypeHandler registered globally, since Dapper has no built-in
  System.DateOnly support in either direction (write threw
  NotSupportedException, read threw a constructor-mismatch
  InvalidOperationException — found by exercising both paths live).
- tools/validate_price_history_integrity_v1.py: gap-freeness (vs KIS
  trading calendar) + price-sanity gate over collected history.
- Admin Collection page: new "히스토리 현황" summary table +
  GET /api/collection/history-summary, with Playwright evidence.

Governance/gate fixes:
- validate_market_time_series_schema_v1.py mislabeled its own output
  "runtime_database_query": "DATA_GATED" despite never opening a DB
  connection (pure file/regex check) — relabeled "check_scope":
  "STATIC_STRUCTURAL_ONLY" and wired the node into the release DAG so it
  isn't only reachable from ci.yml, matching every other validator.
  Live-data authority for the same claim stays with QE-M2-01's pg_query
  gate (spec/60), documented in spec/64.
- Fixed a WBS log_pattern check (QE-M1-06) that couldn't match its own
  multi-line target; loosened two depends_on edges (QE-M1-05/06,
  QE-M2-04/05) that encoded "needs X verified" when the real requirement
  was only "needs X's code merged."
- Discovered and fixed admin-pages.spec.ts logging in with the wrong
  seeded password (admin/admin instead of admin/quant123!, per CLAUDE.md)
  — every test in that suite had been silently failing at the login step.

Deferred: QE-M2-03 (2-year backfill) — the KIS mock/VTS token endpoint
started returning 403 after the first successful call this session; looks
like a token-issuance rate limit or credential issue on KIS's side, not a
code defect. Backfilling at scale right now would just generate more 403s,
so left QE-M2-03 PENDING pending KIS account/console verification.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 21:07:53 +09:00
kjh2064 f9a0ba3690 chore(spec): deprecate redundant schema-model generation layer
schemas/generated/(174) + src/quant_engine/models/generated/(347) duplicated
the existing runtime/python/core/formulas/generated/ formula-stub system with
a generic metadata wrapper carrying no real computation, validated only by a
file-count gate (validate_schema_model_generation_v1.py). Remove the
generator scripts, generated files, and CI/DAG wiring; keep
schemas/generated/gas_adapter_contract.schema.json, which serves an
unrelated GAS-adapter contract check.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-12 21:07:20 +09:00
kjh2064 7db7f74713 fix: treat paired missing packet metrics honestly
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Successful in 14s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 1m35s
2026-07-12 12:49:34 +09:00
kjh2064 92efa934a2 fix: restore authoritative database connection setting
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 15s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 54s
2026-07-12 12:22:17 +09:00
kjh2064 cc001fa263 test: verify market time series schema contract
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 15s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 54s
2026-07-12 12:20:44 +09:00
kjh2064 606664404b chore: protect external runtime connection settings
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 16s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 54s
2026-07-12 12:19:34 +09:00
kjh2064 34991eca2d ci: enforce schema model evidence generation
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 16s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 55s
2026-07-12 12:13:02 +09:00
kjh2064 a9b8f46187 feat: complete dotnet formula and platform cutover gates
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 16s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 54s
2026-07-12 12:08:03 +09:00
kjh2064 eb48b7eb07 feat: add dotnet postgres json cutover gate
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 17s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 56s
2026-07-12 12:01:09 +09:00
kjh2064 6fb43fb411 test: validate normalized learning store contract
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 15s
Validators (Pushes and Pull Requests) / validate-core (push) Has been cancelled
2026-07-12 11:51:31 +09:00
kjh2064 6e20a924db fix: make snapshot web smoke test clean-checkout safe
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 12s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 53s
2026-07-12 11:37:18 +09:00
kjh2064 42d45e85fb ci: validate main pushes automatically
Validators (Pull Requests Only) / validate-core (push) Failing after 8s
Validators (Pull Requests Only) / validate-ui-and-storage (push) Has been skipped
2026-07-12 11:03:52 +09:00
kjh2064 e7d1069222 feat: add quant engine WBS verification harness 2026-07-12 10:58:22 +09:00
kjh2064 96cc7fcf71 ci: Gitea Actions CI/CD 파이프라인 근본적 개선 (신뢰성/속도/관찰성)
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 9s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build & Deploy to Production (push) Has been cancelled
## 개선 사항

### 1. 신뢰성 향상 (Reliability)
- 타임아웃 확대: 15분 → 30분 (네트워크 지연/재시도 대응)
- 자동 롤백 구현: 헬스체크 3회 실패 시 이전 버전으로 자동 복구
  * 배포 중단 없이 즉시 이전 버전 복구
  * Telegram 알림 포함

### 2. 검증 강화 (Verification)
- 데이터베이스 연결성 검증 추가
- 서비스 재시작 후 상태 확인 강화
- Favicon 검증을 선택적/경고로 변경 (실제 기능 검증 우선)

### 3. 관찰성 개선 (Observability)
- 배포 스크립트 개선:
  * 배포 이력을 /home/kjh2064/.config/quantengine_deploy_history.log에 기록
  * 타임스탬프, 커밋, 이전 버전 정보 저장
  * 배포 성공/실패 상태 추적

### 4. 롤백 정보 보존
- 각 배포 시점의 이전 버전 정보 기록
- 빠른 수동 롤백 가능성 제공

## 아키텍처 원칙
- **한 번 빌드, 여러 번 배포**: 빌드 아티팩트 안정성
- **자동 실패 대응**: 수동 개입 최소화
- **명확한 성공 기준**: 헬스체크 3회 기준 (네트워크 지연 고려)
- **배포 추적성**: 언제, 어떤 버전을 배포했는지 기록

## 다음 단계 (Phase 2-3)
- 빌드/배포 분리 (별도 워크플로우)
- Gitea Releases로 빌드 아티팩트 발행
- E2E 로그인 테스트 추가
- 배포 이력 데이터베이스 기록

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-11 18:12:32 +09:00
kjh2064 a5493142f9 docs/tools: Gitea token home & PR harness 검증 도구 개선
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 13s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Deploy to Production / Build & Deploy to Production (push) Failing after 2m27s
- docs/GITEA_TOKEN_HOME.md: 토큰 홈 설정 문서 업데이트
- docs/GITEA_TOKEN_HOME_RUNBOOK.md: 런북 보완
- docs/GITEA_VARIABLES_FAILURE_ANALYSIS.md: 실패 분석 문서 수정
- docs/GITEA_VARIABLES_RUNBOOK.md: 변수 런북 수정
- tools/validate_gitea_pr_harness_v1.py: PR 하네스 검증 스크립트 개선
- tools/validate_gitea_token_home_v1.py: 토큰 홈 검증 스크립트 개선
2026-07-06 17:15:21 +09:00
kjh2064 e97397ddbf Disable antiforgery on auth and add quantengine migration tools
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 4s
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 8s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
2026-07-01 14:17:53 +09:00
kjh2064 6ed3de2749 Separate QuantEngine database deployment
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 6s
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 11s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
2026-07-01 13:55:03 +09:00
kjh2064 90bbb1860d feat(web): add auth and fix deployment checks
Quant Engine CI/CD Pipeline / validate-core (push) Failing after 9s
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 6s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (push) Has been skipped
Snapshot Admin Deployment / build-and-deploy (push) Failing after 2m30s
Deploy to Production / Build & Deploy to Production (push) Failing after 3m49s
2026-07-01 13:02:10 +09:00
kjh2064 e4290ef3c6 feat(ui): 모든 중요 페이지에 [Authorize] 인가 가드 적용하여 보안 강화 2026-07-01 11:27:50 +09:00
kjh2064 99c4885692 deploy workflow and docs
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 4s
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Failing after 6s
Quant Engine CI/CD Pipeline / validate-core (pull_request) Failing after 2m16s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been skipped
2026-06-26 18:07:13 +09:00
kjh2064 e0508324e5 docs: .NET 렌더러 운영 상태와 검증 기준 정리
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (push) Failing after 3s
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Failing after 4s
Quant Engine CI/CD Pipeline / validate-core (pull_request) Failing after 2m17s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been skipped
- 운영 상태 문서와 README를 .NET canonical renderer 기준으로 정리했습니다.
- 레거시 렌더러 비운영 선언과 감사/검증기 경로를 통일했습니다.
- 운영 보정 로직의 데이터 소스 반영을 정리했습니다.
2026-06-26 14:18:48 +09:00
kjh2064 9e6e2ded2f feat: .NET 운영 리포트 렌더러와 CI 경로 전환
- operational_report.json/md와 final_decision_packet_v4 생성 경로를 .NET으로 전환했습니다.
- CI, 운영 게이트, 릴리스 DAG, 대시보드의 운영 진입점을 새 경로로 정렬했습니다.
- legacy Python 렌더러는 비운영으로 명시했습니다.
2026-06-26 14:18:03 +09:00
kjh2064 8f13bb4a48 feat: postgres history-first 계약과 적재 경로 추가
- PostgreSQL history contract와 schema/validator를 추가했습니다.
- .NET history store, snapshot reader, repository, migration을 연결했습니다.
- history-first 운영 모델 문서와 daily signal tracking 문구를 정리했습니다.
2026-06-26 14:17:04 +09:00
kjh2064 a1bbeb99a6 chore: 최상위 룰 매니페스트 파일을 spec/ 폴더로 정리하고 도구 경로 참조 수정
WBS-9.3 - NULL Policy CI Gate / NULL Policy Validation (pull_request) Failing after 4s
Quant Engine CI/CD Pipeline / validate-core (pull_request) Failing after 2m18s
Quant Engine CI/CD Pipeline / validate-ui-and-storage (pull_request) Has been skipped
2026-06-26 11:40:51 +09:00
kjh2064 23ba556c17 chore: 시놀로지(Synology) 전용 파일 및 참조 폐기
서버가 시놀로지에서 클라우드(hz-prod-01, 178.104.200.7)로 이전됨에 따라
시놀로지 전용 문서 11개와 스크립트 3개를 삭제하고 AGENTS.md 참조를 정리한다.

삭제된 문서:
- docs/SYNOLOGY_ACT_RUNNER_REFACTOR_PR_BODY.md
- docs/SYNOLOGY_KIS_COLLECTION_SETUP.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_COMMIT_MESSAGE_TEMPLATE.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_DEPLOYMENT_CHECKLIST.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_DEPLOYMENT_CHECKLIST_FILLED.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_EVIDENCE_TEMPLATE.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_FINAL_EXECUTION_ONE_PAGER.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_FINAL_PREFLIGHT_10.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_FIREWALL_PROXY_COPYPASTE.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_FIREWALL_PROXY_TABLE.md
- docs/SYNOLOGY_SNAPSHOT_ADMIN_POC.md

삭제된 스크립트:
- tools/re_register_act_runner_synology.sh
- tools/run_snapshot_admin_synology.sh
- tools/start_act_runner_synology.sh

수정:
- AGENTS.md: Synology CI 참조를 클라우드 서버(hz-prod-01)로 교체
2026-06-26 11:11:38 +09:00