Story: Test the tenor rule before saving it
Table of Contents
This page documents a story in Sprint 28. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
A person authoring a tenor's resolution reads the date it produces before they write it, against the draft they have typed rather than the row the server still holds. The arithmetic is the engine's, reached over the wire, so what the step shows is what the saved rule will do.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 28 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-17 |
3. Acceptance
- The tenor journey carries a test step where a horizon, an optional spot date and a calendar are set, and the date the drafted rule resolves to is shown.
- The step names the anchor it counted from, the date before the roll, the adjusted date, the roll rule and the calendar; a rule the server declines shows the step that refused, the dates counted and the row at fault, without losing the form.
- A refdata operation resolves a rule supplied inline, so the answer describes the draft and not the saved row; it is served by the pure engine and carries the same structured refusal.
- The step is covered by tests on both sides of the wire, and the journey's rail, i18n and existing steps are unchanged in behaviour.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Scaffold story: Test the tenor rule before saving it | DONE | 2026-10-17 | 2026-10-17 | Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR. |
| Build the draft-rule resolve step | DONE | 2026-10-17 | 2026-10-17 | Initial task for: Test the tenor rule before saving it |