@@ -84,7 +84,7 @@ The spec defines a **deployable reference implementation** for retailers to inge
8484| Connector contracts | ` PIMConnectorBase ` , ` DAMConnectorBase ` + 7 other ABCs in ` integrations/contracts.py ` | ** Good** — Need concrete implementations |
8585| Connector registry | ` ConnectorRegistry ` in ` integrations/registry.py ` | ** Good** — Runtime registry with health monitoring |
8686| App factory | ` build_service_app() ` in ` app_factory.py ` | ** Strong** — Standard service bootstrap |
87- | Consistency validation | ` product-management-consistency-validation ` agent | ** Weak ** — Only checks 4 fields (name, price sign, currency, image); no completeness scoring |
87+ | Consistency validation | ` product-management-consistency-validation ` agent | ** Implemented ** — Schema-driven completeness scoring, gap reporting, and enrichment trigger integration (PR # 123 ) |
8888| Product enrichment | ` ecommerce-product-detail-enrichment ` agent | ** Wrong target** — Enriches PDP display, not PIM attributes |
8989| Product schemas | ` CatalogProduct ` , ` ProductContext ` in ` schemas/product.py ` | ** Partial** — Missing style/variant split, provenance, share policy |
9090| IaC | Full Bicep stack: AKS, ACR, Cosmos DB, Event Hubs, Redis, Storage, APIM, Key Vault, App Insights, VNet, AI Foundry | ** Strong** — All infra provisioned; Cosmos containers empty, Service Bus absent |
@@ -120,7 +120,7 @@ Latest on `origin/main`: commit `74d56c6` — "Fix APIM routing, postdeploy hook
120120| G1 | §3.1 Core Data Plane | No Cosmos DB containers for product graph, candidates, schemas, audit. Cosmos container array is ` [] ` in Bicep. | ** CRITICAL** |
121121| G2 | §7 Data Model | No ` ProductStyle ` , ` ProductVariant ` , ` TruthAttribute ` , ` ProposedAttribute ` models. Only flat ` CatalogProduct ` . | ** CRITICAL** |
122122| G3 | §3.1 Ingestion | No ingestion service. PIM/DAM connector ABCs exist but no concrete connectors or scheduled pull. | ** CRITICAL** |
123- | G4 | §3.1 Completeness Engine | No completeness scoring. Existing validation checks 4 fields. No category schema definitions . | ** CRITICAL ** |
123+ | G4 | §3.1 Completeness Engine | ** Resolved in PR # 123 ** — weighted completeness scoring, schema-driven gap analysis, and Event Hub enrichment trigger are implemented . | ** CLOSED ** |
124124| G5 | §3.1 Enrichment Orchestrator | No PIM enrichment agent. Existing enrichment targets e-commerce PDP, not product graph. | ** CRITICAL** |
125125| G6 | §3.1 HITL Workflow | Zero implementation. No approval endpoints, no review queue, no UI. | ** CRITICAL** |
126126| G7 | §8 Category Schemas | No ` /schemas/ ` directory. No category-level required attributes or validation rules. | ** CRITICAL** |
@@ -186,20 +186,21 @@ GapReport — entityId, missingKeys[], invalidKeys[], completenessScore
186186** Add** : Optional parameter to register truth-layer specific middleware (audit logging, provenance tracking).
187187** Add** : Truth-layer Event Hub consumer groups and lifespan helpers for job topics.
188188
189- ### 4.7 ` apps/product-management-consistency-validation/ ` — MAJOR REFACTOR
190-
191- ** Current** : Checks 4 fields (name, price, currency, image).
192- ** Target** : Becomes the ** Completeness Engine** (§3.1.3, §8). Must:
193- - Load category schemas from Cosmos ` schemas ` container
194- - Compute ` missing = required - truthAttributesPresent `
195- - Compute ` invalid = truthAttributesFailValidation `
196- - Generate ` GapReport ` with ` completenessScore `
197- - Publish enrichment job events to Event Hub
198-
199- Keep existing MCP tools and add new ones:
200- - ` /product/completeness/check ` — full gap analysis
201- - ` /product/completeness/score ` — score-only endpoint
202- - ` /product/completeness/batch ` — batch job trigger
189+ ### 4.7 ` apps/product-management-consistency-validation/ ` — COMPLETED (PR #123 )
190+
191+ Delivered capabilities:
192+ - Added schema-driven completeness engine (` completeness_engine.py ` ) with:
193+ - weighted scoring (` 0.0 ` –` 1.0 ` )
194+ - nested field-path evaluation
195+ - per-field gap typing (` missing ` , ` invalid ` )
196+ - enrichable gap extraction
197+ - Added completeness job consumer (` event_consumer.py ` ) for ` completeness-jobs ` .
198+ - Added enrichment trigger publishing to ` enrichment-jobs ` when:
199+ - completeness score is below ` COMPLETENESS_THRESHOLD `
200+ - enrichable gaps exist.
201+ - Added Cosmos-backed completeness storage adapter with in-memory fallback for local/test.
202+ - Preserved backward compatibility of existing validator pathways.
203+ - Added unit and integration test coverage for scoring and event flow.
203204
204205### 4.8 ` apps/product-management-acp-transformation/ ` — EXTEND
205206
0 commit comments