Change checklist and limits
Use this checklist while reviewing a change. It describes current contracts and known boundaries, not an unverified list of defects.
Contracts to preserve
- Check the server actor and row scope for every new read or write. Add denied-role and cross-scope examples when access behavior changes.
- Keep snapshot, projection, derived events, and save-side touches in the append transaction. Cover stale versions and request retries when changing persistence.
- Distinguish UUID identity from display review number and business identity. Exercise duplicate numbers across FFYs and import refresh.
- New facts need compatible defaults for old snapshots. Check computation and validation revision invalidation, received copies, and restore behavior.
- Keep list responses bounded. If a new field needs snapshot JSON, explicitly select only the values that screen needs.
- Change the live report projection and the backfill together. Verify FNS and EPP eligibility separately.
- A policy rule belongs in shared domain code and tests. A UI blocker provides feedback; it cannot replace server enforcement.
Known limits
| Area | Current boundary |
|---|---|
| Workflow | Supervisor approval/routing of non-drops raises PEC_ROUTING_PENDING until management supplies the defect map. Seed fixtures can represent later states. |
| Calculation | Current v4 includes self-employment losses, education net, and proration. Implemented coverage is not certification of all SNAP policy. |
| Policy | Published amount tables are insert-only. apply_rules updates calc/check IDs but does not select a newly published amount table. |
| Documents | Header/type/size checks are not a full PDF parser or records-management system. Upload and metadata save are separate; orphan bytes can remain. |
| Integration | FNS TSV generation does not submit to a portal; EPP handoff does not write an external database. |
| Notes | Note types and commands remain, but the live workspace has no general notes editor. The old deferred notes files referenced by earlier wiki pages are absent. |
| Operations preview | Static explanatory cards, not live operational counts. |
| Persistence | No automatic conflict merge, browser-crash recovery, or snapshot retention job is implemented. |
Research before extending
Use the knowledge register for unresolved policy and evidence; use BIS input mapping for the confirmed file layout. Do not infer new operational authority from synthetic fixtures. For implementation work, start with the focused check matrix and the system page for the affected path.