ICPI Contract And Validation Surface
Status: ACTIVE
Sprint: Extraction Prep Sprint 45
Purpose
This document records the ICPI-owned contract and validation surface after the first code-boundary hardening pass.
It distinguishes:
- route-facing contracts
- internal repository/domain contracts
- ICPI-owned validation
- remaining duplication or transitional hosting
A. ICPI-Owned Contracts
Primary file:
services/svc-tenders/src/icpi/contracts.ts
Route-facing contracts
| Contract | Purpose | Notes |
| --- | --- | --- |
| IcpiPriceListResponse | GET /icpi/prices success payload | canonical read/list response shape inside svc-tenders ICPI code |
| IcpiSuggestionResponse | GET /icpi/suggest success payload | canonical suggestion response shape |
| | success payload | canonical latest lookup response |
| | success payload | canonical estimate response |
| | success payload | canonical write result shape |
| | upsert metadata sub-shape | accepted/received/duplicates counters |
| | shell-to-route support contract | still shell-dependent, but now ICPI-owned as a contract surface |