---
milestone: v2.0
audited: 2026-03-24T07:20:00Z
status: tech_debt
scores:
  requirements: 11/13
  phases: 5/5
  integration: 4/5
---

# Milestone Audit: v2.0 — Seeder as Sole REST Owner + Microsecond Alignment

## Phase Summary

| Phase | Name                            | Status        | Plans                |
| ----- | ------------------------------- | ------------- | -------------------- |
| 1     | Pre-Migration Prerequisites     | Complete      | 3/3                  |
| 2     | Kintsugi Parquet-Only Migration | Complete      | 3/3                  |
| 3     | Kintsugi OOM Hardening          | Complete      | 4/4                  |
| 4     | Microsecond Data Layer          | Complete      | 2/2                  |
| 5     | Microsecond ClickHouse Rebuild  | Code-complete | 3/4 (05-04 deferred) |

## Requirements Coverage

| REQ-ID   | Phase | Status    | Evidence                                                                                  |
| -------- | ----- | --------- | ----------------------------------------------------------------------------------------- |
| INFRA-01 | 1     | satisfied | Kintsugi filters out forex symbols                                                        |
| INFRA-02 | 1     | satisfied | Rate limit budget reallocated                                                             |
| INFRA-03 | 1     | satisfied | Parquet coverage audited + seeder sprint                                                  |
| KPAQ-01  | 2     | satisfied | REST fallback stripped from kintsugi                                                      |
| KPAQ-02  | 2     | satisfied | deferred_cache_miss sentinel (-2)                                                         |
| KPAQ-03  | 2     | satisfied | Always 64 Parquet workers                                                                 |
| KPAQ-04  | 3     | satisfied | Arrow zero-copy + allocator purge + GC discipline                                         |
| USEC-01  | 4     | satisfied | Seeder writes 16-digit us timestamps                                                      |
| USEC-02  | 4     | satisfied | 39K Parquet files reseeded ms→us                                                          |
| USEC-04  | 4     | satisfied | Rust processor us-native                                                                  |
| USEC-05  | 5     | satisfied | Python DAY_US, Pandera schemas, 14 tests migrated                                         |
| USEC-03  | 5     | partial   | Schema DDL updated in code; CH column rename deferred to 05-04 maintenance window         |
| USEC-06  | 5     | deferred  | Full 35M bar rebuild requires planned maintenance window (stop services + rebuild + swap) |

## Tech Debt

1. **USEC-03/USEC-06**: ClickHouse column rename (`_ms` → `_us`) and full bar rebuild deferred. The system works correctly — us-scale values stored in `_ms`-named columns. Column rename is cosmetic. Rebuild needed to convert 35.4M existing ms-scale bars to us-scale.

2. **SQL queries use `_ms` column names**: All CH-facing Python code intentionally kept `_ms` references to match live schema. Will be batch-updated when 05-04 executes the rename.

3. **7 skills have `_ms` SQL references**: odb-ship, odb-telemetry, bulk-backfill, etc. — intentionally left to match live schema. Batch-update after 05-04.

## Integration Assessment

- Parquet ticks: us-native (all 40 symbols) ✅
- Rust processor: us-native ✅
- Python contracts: DAY_US, schemas updated ✅
- ClickHouse queries: working (us values in \_ms columns) ✅
- Services (sidecar, kintsugi, heartbeat): all healthy on bigblack ✅
- Cross-service: no REST API calls from kintsugi (Parquet-only) ✅
- Exness seeder: running autonomously on 15-min timer ✅

## Verdict

**tech_debt** — 11/13 requirements satisfied. 2 deferred (USEC-03 column rename, USEC-06 full rebuild) are operational steps requiring a planned maintenance window. The system is functionally correct and running in production.
