Task: Design: recover and re-validate the prior blotter/import analysis
Table of Contents
This page documents a task in the Trade Blotter story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
Re-familiarise with the prior analysis and turn it into a design that reflects where the codebase actually is today, before any implementation is scoped:
- Re-read Data Import Session and Workflow Partial-Success in full – it's detailed (Pending Book, is_live marker, pending FSM state, Data Import Session UI, ORE-examples directory analysis) and was never invalidated, just never built for Track 2.
- Re-read Workspace — Isolated Data Context Design's "Import Track Mapping" section and re-confirm exactly how Track 2 (production import -> Pending Book -> promoted to Live) relates to the workspace mechanism Track 1 already uses.
- Check what has moved since May 2026 (trade status FSM, workflow service, booking-adjacent code) that the original plan's "Files to Change" section may now be stale against.
- Reconcile with the Trade Blotter knowledge doc's target-state UI vision so the blotter and the import/promotion mechanism are one coherent design, not two independent plans bolted together.
- Decide whether the three loosely-related backlog captures (positions domain model, trade/instrument dialog split, trade-expiry workflow) fold into this story's scope or stay separate.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Trade Blotter |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-21 |
3. Acceptance
- Updated design note produced (either as a revision to the existing plan doc or a fresh one) covering: Pending Book schema/lifecycle, is_live marker mechanism, promotion-to-Live flow, and how it connects to the existing Track 1/workspace machinery.
- Explicit call on each of the three loosely-related backlog captures (in/out of this story's scope).
- Findings distilled into the parent story's
* Decisions; resulting implementation scope broken into new tasks under this story.
4. Plan
Check each claim of the May plans against the code. Write the result as an investigation under the story. Take the decisions into the story. Scaffold the implementation tasks.
5. Notes
The design is in Investigation: the blotter and import design.
The task asked for a design that connects the Pending Book to the workspaces. The workspaces no longer exist, so the design answers a different question: what does a real import use in place of the Pending Book. The answer is the authorisation queue.
I checked each statement about the code with a search of the tree. I did not run the import. I did not check that a second ORE import of the same files books no trade twice. The import task starts with that check.
6. Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
7. PRs
| PR | Title |
|---|---|
| #3617 | [agile] Design the blotter and import on the sandbox model |
8. Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | The commit removed the Status, Acceptance, Tasks and Decisions sections of the story. A bad edit broke the Goal paragraph. | story.org | Accept | Restored all sections with the new task rows. |
| 2 | The workspace plan gave the supersede date as 2026-10-05. | doc/plans/2026-05-17-workspace-design.org | Accept | Changed to 2026-10-21. |
| 3 | The sandbox page change, a failed row is reported and not stored, had no owner. | investigation_blotter_import_design.org | Accept | Added to the import task's acceptance. |
| 4 | The investigation mixed two spellings of the trade blotter filetag. | investigation_blotter_import_design.org | Accept | Kept the hyphen form. |
| 5 | The double-book check should be a gate in the import task. | task_import_real_deals_through_the_authorisation_queue.org | Accept | Stated first in its acceptance. |
| 6 | The plan STATUS lines were long. | doc/plans | Accept | Shortened to a pointer. |
| 7 | Uneven padding in a scaffolded table. | task_build_book_a_trade.org | Decline | Generator output. |
9. Result
The design is written. It is the investigation the blotter and import design.
- The Pending Book and the
is_livemarker are retired. The sandbox, thedraftstate and the operational authorisation status replace them. - The workspace dependency is gone. The story no longer waits.
- The partial-success part of the May plan is built.
- The open part is narrow: a real import must raise authorisation requests, and a row that fails must be reported and not stored.
- The three backlog captures each have a call. Positions and the trade-expiry workflow stay out. The dialog split is answered by the trade page.
- Seven implementation tasks are in the story, from the authorisation kind to the queue screen.