feat(conformance): wire cross-feature reader pattern into docs and schema
Add reads field to UseCaseManifest, update CLAUDE.md with Q0-Q3 rules, add ./reader subpath to AGENTS.md exports table, and cascade reader conventions through conformance quickref, adding-a-feature guide, and scaffolding guide. Moves gen reader from deferred to planned.
This commit is contained in:
@@ -29,7 +29,7 @@ per-use-case patterns below.
|
||||
|
||||
For any new use case, follow these four steps in order:
|
||||
|
||||
1. **Manifest entry** — declare the use case in `src/feature.manifest.ts` with its `mutates` flag and (initially empty) `audits` / `publishes` / `consumes` arrays.
|
||||
1. **Manifest entry** — declare the use case in `src/feature.manifest.ts` with its `mutates` flag and (initially empty) `audits` / `publishes` / `consumes` / `reads` arrays.
|
||||
2. **Contracts** — export `xInputSchema`, `xOutputSchema`, and the `IXUseCase` type alias from the use-case file. Factory body starts as `throw new Error("not implemented")`.
|
||||
3. **Tests (red)** — write the failing test that exercises the contract via the factory + a mock repository.
|
||||
4. **Implementation (green)** — fill the factory body until the tests pass.
|
||||
@@ -55,6 +55,7 @@ Every feature package owns:
|
||||
| `di/` | `symbols.ts` + `module.ts` + `container.ts` + `bind-production.ts` |
|
||||
| `integrations/api/` | `procedures.ts` (feature error map) + `router.ts` (uses `xProcedure.input(xInputSchema)`) |
|
||||
| `integrations/cms/` | Payload collection/global configs |
|
||||
| `integrations/readers/` | `I<Feature>Reader` interface + implementation (when feature exposes cross-feature queries) |
|
||||
| `ui/` | Query builders and future React components (behind `./ui` subpath) |
|
||||
| `__factories__/` | Test data factories |
|
||||
| `__contracts__/` | Contract suites shared by mock and real repository tests |
|
||||
|
||||
Reference in New Issue
Block a user