# TASK 3.2: Add Curated Validation and Smoke Checks

## Summary

Add validation that proves synthetic KDS rows loaded into Redshift `curated` are visible through the phase-1 runtime contract.

Validation must query:

- `curated.kds_orders`
- `curated.kds_items`
- `curated.kds_item_bumps`

## Dependencies

- TASK 3.1 (CLI command for synthetic KDS sync)

## Files to Create

### 1. Curated validation service or command path

Create validation logic equivalent to:

- `SyntheticKdsFeedValidator`
- `ValidateSyntheticKdsCuratedAsync`

Exact names may differ.

The validation may be integrated into the feed result or exposed as a separate command option.

## Files to Modify

### 2. Feed service and CLI output

Extend the feed service and CLI command so validation results are visible after a sync run.

## Required Behavior

Validation must:

- resolve the same tenant Redshift database used by the feed,
- query `curated.kds_orders`,
- query `curated.kds_items`,
- query `curated.kds_item_bumps`,
- confirm all three tables return rows after source data exists,
- confirm item rows can join to order rows by `order_guid`,
- confirm item bump rows can join to item rows by `item_guid`,
- confirm delete-state columns remain available because this branch uses a source-mirror contract.

Recommended checks:

- count orders,
- count items,
- count item bumps,
- count items with a matching order,
- count item bumps with a matching item.

## Acceptance Criteria

- [x] Validation queries `curated.kds_orders`
- [x] Validation queries `curated.kds_items`
- [x] Validation queries `curated.kds_item_bumps`
- [x] Validation confirms the mirrored tables return rows after feed execution
- [x] Validation confirms item rows join to orders by `order_guid`
- [x] Validation confirms item bump rows join to items by `item_guid`
- [x] Validation confirms source-mirror delete-state columns remain available
- [x] CLI output includes validation summary
- [x] Solution builds without errors

## Notes

- This is a smoke validation, not a full evaluation framework.
- Query the source-mirror KDS `curated` tables for success criteria.
- Do not switch anomaly detector runtime behavior here.
