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:

  1. 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.
  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.
  3. 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.
  4. 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.
  5. 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_live marker are retired. The sandbox, the draft state 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.

Emacs 29.3 (Org mode 9.6.15)