Files
kami d26f20c316 docs(dox): build out the DOX AGENTS.md hierarchy
Root Child DOX Index assembled, plus a per-module AGENTS.md across the tree
(core/*, infrastructure/*, apps/*, testing/*, and docs/examples/frontend/etc),
each following the DOX section shape: Purpose, Ownership, Local Contracts,
Work Guidance, Verification, Child DOX Index.
2026-06-28 20:43:27 +04:00

31 lines
1.2 KiB
Markdown

# testing/projections
## Purpose
Verifies that reducers and projectors rebuild state correctly from event sequences. Covers: `DefaultSessionReducer`, `OrchestrationReducer`/`Projector`, `InferenceReducer`/`Projector`, `ArtifactReducer`, `ContextReducer`/`Projector`, `RouterProjector`, `DecisionJournalProjector`, `SessionProjector`, `ProjectMemoryDistiller`, and `PreemptSteeringJournal`.
## Ownership
Tests in this submodule. Production modules exercised: `core:events`, `core:sessions`, `core:transitions`, `core:context`, `core:inference`, `core:kernel`, `core:artifacts`, `core:router`, `core:journal`.
## Local Contracts
- Projections must be rebuilt from events only — no test may assert on a persisted State object.
- Reducers are pure functions: same events → same state, always. Tests must verify this property explicitly (run twice, compare).
- Any new reducer or projector added to a `core:*` module needs a corresponding test here.
## Work Guidance
- Suspend tests use `runBlocking { ... }`.
- Keep event sequences in tests minimal — use `testing:fixtures` builders rather than raw event construction.
## Verification
```
./gradlew :testing:projections:test --rerun-tasks
```
## Child DOX Index
No child AGENTS.md (leaf module).