Task: Deep refinement 1 — 2026-08-05
Table of Contents
This page documents a task in the Backlog deep refinement story. It captures the goal, current status, acceptance, and any notes or results.
Goal
(Describe what user-visible-or-internal change this task produces.)
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Backlog deep refinement |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Next deep run should focus on next-bucket deduplication and staleness. |
| Last touched | 2026-08-06 |
Acceptance
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.)
Notes
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 |
|---|---|---|
PRs
| PR | Title |
|---|---|
Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
Result
Run on 2026-08-05 (completed 2026-08-06)
First deep backlog refinement run. Processed all ~130 individual inbox captures, triaged them into next/deferred/discarded, consolidated 20 related captures into 6 grouped captures, and moved 8 BACKLOG story folders from inbox to next. A light spot-check of next and deferred was made but a full audit of those buckets was not done — deferred to a future run.
Before / after
| Bucket | Before | After | Notes |
|---|---|---|---|
| inbox | 130+ | 6 | 0 individual captures remain; 6 STARTED story folders left in place (actively worked on) |
| next | 249 | ~370 | Net growth from inbox triage + consolidations |
| deferred | 201 | ~215 | Net growth from selective deferral of long-horizon captures |
Captures discarded (resolved by sprint 25 work)
| Capture | Resolved by |
|---|---|
| Flaky nightly-only test: mint_token TTL | Hotfix: JWT TTL — DONE 2026-08-04 |
| FX Spot Monitor stuck pending | FX Spot wire-codec root cause — DONE 2026-08-04 |
| ores.iam tests fail on main | Stale — captured 2026-07-30, predates IAM work; if still reproducible needs fresh repro steps |
| calendar_rules FK references nonexistent id column | Already fixed on main — line 96 now reads code = NEW.calendar_code |
| ccache stale objects on codegen rename | Resolved by migration to btrfs — per user confirmation |
Duplicates merged / consolidated
| Kept | Absorbed | Notes |
|---|---|---|
| Commission remaining ores.qt components into codegen | 7× commission_qt_*_codegen stories (admin, analytics, compute, marketdata, synthetic, trading, workspace) | All seven were near-identical stories carried from Sprint 24. Consolidated into one capture with component list. |
| Add CLI, HTTP, shell, and Wt layer generation to codegen | 9× per-entity-per-layer captures (CLI/HTTP/shell/Wt for contact_type, purpose_type, business_centre; CRM topology combined) | Root cause is codegen has no profiles for these layers. Per-entity captures are placeholder symptoms. This capture notes the gap and says to split into per-layer stories. |
| qa-validation-runner-followups | 4× QA Runner captures (auto-crop, delayed screenshot, unsaved warning, multi-client ownership) | Related improvements to the same widget. |
| business-unit-ui-followups | 3× business unit captures (centre combo, badges, live refresh) | Related UI gaps on the same entity. |
| junction-codegen-template-followups | 4× junction codegen captures (path/namespace, timestamp, messaging service, eventing) | Related codegen template bugs for junction entities. |
| ir-curve-followups | 2× IR curve captures (seed data incompatible, index family combo) | Related IR curve bugs surfaced during sprint 25 work. |
Bucket moves
All ~115 remaining individual inbox captures moved to next. Story folders:
| Capture | From | To | Why |
|---|---|---|---|
| calendar-list-pagination-followups | inbox | next | BACKLOG story, ready for sprint planning |
| commission_remaining_dq_entities | inbox | next | BACKLOG story |
| extend-oresmd-full-quote-type-coverage | inbox | next | BACKLOG story, big feature |
| offload-services-to-wsl-host-cutover | inbox | next | BACKLOG story, big infrastructure |
| rate-display-conventions | inbox | next | BACKLOG story |
| refdata-composite-entity-audit | inbox | next | BACKLOG story |
| retire_per_entity_history_dialogs | inbox | next | BACKLOG story — Phase C rollout blocker |
| trade_blotter | inbox | next | BACKLOG story — depends on workspaces |
Deferred (selected — not exhaustive):
| Capture | From | To | Why |
|---|---|---|---|
| Calendar-aware term structure date preview | inbox | deferred | Depends on business-day calendars which don't exist yet |
| Cross-platform service-install generators | inbox | deferred | Windows/macOS deployment is long-horizon |
| Formalize codegen knobs as feature model | inbox | deferred | Major MASD/MDE design work, long-horizon |
| GPU-batched stochastic processes | inbox | deferred | Research investigation |
| In-app bug report feature | inbox | deferred | Major feature, big scope |
| revisit_atomic_shared_ptr | inbox | deferred | Waiting on macOS libc++ to implement C++20 atomic<shared_ptr<T>> |
Sprint 25 candidates flagged
Approximately 25 captures were explicitly flagged as sprint-aligned during triage. Strongest candidates:
- Codegen drift resolution: compound-key is_uuid, codegen RLS policy facet, codegen history-provider registrar, codegen NATS subject constants, refdata generated code stale vs templates, dynamic combo codegen drift, pagination-knob fragility, junction codegen template follow-ups, tenant_type has_tenant_id drift, history field mapper date mismatch, history mapper provenance fields, compound-key batch test gap, shared entity lookup tie-break, nullable validation not guarded
- IR curves: expand stochastic IR process types, IR curve follow-ups, validator missing nullable-tenant pattern
- Drift consolidation: fix component_overview.org drift, enforce component-level includes, fix validate_docs.sh warnings, SQL reachability validation, tag-based heading dispatch, codegen key columns doc update, unify duplicate HTTP clients
- Controller decommission follow-up: drop controller service tables
Paperwork bugs found
None caused by this run. Pre-existing (from sprint audit):
- 4 sprint stories have table state ≠ file state (BACKLOG vs STARTED)
- 11 closed documents have non-empty Now fields
Skill bug found and fixed
The agile-refine-backlog skill's Step 7a scaffolded the deep-refinement
story into doc/agile/product_backlog/ as a "standing home" — but
stories being worked on belong in a sprint, not the product backlog.
Fixed the skill to scaffold into the current sprint instead, matching
the sprint-health-review pattern it modeled itself on. Story moved to
doc/agile/versions/v0/sprint_25/backlog_deep_refinement/.
Compass limitation found
compass capture file <slug> discarded --reason "..." accepts a reason
flag but does not store it in the discarded file or in discarded.org.
The reason is printed to stdout and lost. This means discarded captures
have no inline explanation of why they were discarded — a gap for
future runs to be aware of. Manually editing each discarded file to
add a reason line is possible but was not done in this run given the
volume.
Summary
First deep refinement run: 130+ inbox captures triaged (0 individual captures remain), 8 BACKLOG story folders moved to next, 5 captures discarded as resolved, 20 consolidated into 6 grouped captures, ~10 captures deferred as genuinely long-horizon. Net inbox → next flow was the bulk of the work — most captures are valid, actionable ideas. Biggest finding: the backlog has accumulated ~370 next-bucket captures (well over the ≤20 heuristic), and a full audit of next and deferred was not attempted in this run. Next deep run should focus on deduplication and staleness in the next bucket specifically. The 25 sprint-aligned captures identified here are good input for the next sprint planning session.