diff --git a/docs/plans/NEO-145-implementation-plan.md b/docs/plans/NEO-145-implementation-plan.md index 140b34b..11747a8 100644 --- a/docs/plans/NEO-145-implementation-plan.md +++ b/docs/plans/NEO-145-implementation-plan.md @@ -48,9 +48,16 @@ Fail-fast startup load of `content/contracts/*_contract_templates.json` with **C ## Acceptance criteria checklist -- [ ] Host exits on invalid contract catalog or broken encounter refs at startup. -- [ ] Registry resolves template metadata by id. -- [ ] `dotnet test` covers loader gates. +- [x] Host exits on invalid contract catalog or broken encounter refs at startup. +- [x] Registry resolves template metadata by id. +- [x] `dotnet test` covers loader gates. + +## Implementation reconciliation (shipped) + +- **Contract catalog:** `Game/Contracts/` loader, catalog, `IContractTemplateRegistry`, `PrototypeE7M4ContractCatalogRules` (roster, freeze, cross-ref, band caps synced to `PROTOTYPE_E7M4_*`), DI + `Program.cs` load order (after quest catalog). +- **Config:** `ContentPathsOptions` `ContractsDirectory` / `ContractTemplateSchemaPath`; `InMemoryWebApplicationFactory` pins repo `content/contracts`. +- **Tests:** `ContractTemplateCatalogLoaderTests`, `ContractTemplateRegistryTests`, host boot via `Host_ShouldResolveContractCatalogFromDi` (839 tests green). +- **Docs:** `server/README.md` contract catalog section. ## Technical approach