Task: Let a definition select its step chain
Table of Contents
This page documents a task in the Run an example bundle through the compute grid from a report definition story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
A definition cannot choose what it runs: the chain is fixed in report_execution_workflow.hpp and the trigger hard-codes its type, so every definition gathers and assembles before it submits. Give the definition a carrier and register a shorter chain that starts from a bundle that already exists.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Run an example bundle through the compute grid from a report definition |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-09-28 |
3. Acceptance
- The chain a definition selects is the one that runs.
- A definition on the shorter chain completes without gathering trades or market data and without assembling a bundle.
- A step result is addressed by the name of the step that produced it, and a builder that cannot find or read what it consumes stops the run rather than yielding an empty field.
4. Plan
(Implementation strategy. Written when work starts; key decisions
are distilled into the parent story's * Decisions at close, but the
plan itself stays — it is the historical record of what we did.)
5. Notes
6. Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario)
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 |
|---|---|
| #2289 | [reporting] Select a report's phases from its run configuration |
8. Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| #2289 | [reporting] Select a report's phases from its run configuration |
9. Result
Closed without its own change, because PR #2289 delivered the whole of its goal under the sibling story Run a full report: scheduling, reporting and compute, as task Add the run configuration and address phase results by role.
What that change put in place, against this task's acceptance:
report_definitioncarriespre_processing,prepared_input_keyandpost_processing, and the trigger validates the codes and copies them into the run request, so the chain a definition selects is the one that runs.- One registered definition builds either chain.
executeis the seven steps this story's analysis recorded;substitutereplaces the four pre-processing steps withresolve_prepared_input, so a run starts from an archive that already exists and gathers nothing. - Step results moved from positions to names. That went further than this task asked: it removed the positional remap this task's acceptance was written around, and a builder that cannot find or read what it consumes now throws instead of yielding an empty field.
The premise this task was written on, that shortening the chain is a positional remap, is therefore obsolete rather than wrong. The work remaining on the story is the reporting to compute handoff, retrieval, and the ACME fixture; the analysis that established which of those are still needed is Does reporting use what the workflow engine guarantees?.