MBT v1 sub-card grooming pass — 2026-05-02 (UTC)
Epic: #256 — Securities-only MBT v1 launch Bot: raxx-ops-bot Issues scanned: 5 (#257, #258, #259, #260, #261) All five promoted: needs-grooming -> groomed
Per-issue findings
#257 — ENABLE_OPTIONS_BACKTEST gate
- Atomicity: pass
- Clear goal: pass
- Acceptance criteria: pass
- Parent epic: pass (#256)
- Labels: partial — added
priority:high;size:sflagged as potentially tight (backend middleware + env override + frontend branch point + two unit tests is likely 1.5–2 days); recommend confirming with implementer before sprint kick-off - Key implementation note confirmed:
DEFAULT_SETTINGSinbackend_v2/api/routes/settings.pyhas nofeature_flagskey today — clean extension. Flag reads viaGET /api/settingsunderfeature_flags.ENABLE_OPTIONS_BACKTEST; no new endpoint. Env override:os.environ.get("ENABLE_OPTIONS_BACKTEST", "false").lower() == "true". - Dependency arrow: #257 -> {#258, #260, #261, #266}
#258 — Backtest / Backtesting page polish
- Atomicity: pass
- Clear goal: pass
- Acceptance criteria: pass
- Parent epic: pass (#256, #79)
- Labels: added
priority:medium; size:m confirmed - Note: options-backtest "coming soon" panel integration depends on #257 merging first; develop against local flag stub in the interim
#259 — Historical Data page polish
- Atomicity: pass
- Clear goal: pass
- Acceptance criteria: pass
- Parent epic: pass (#256, #78)
- Labels: added
priority:medium; size:s confirmed - Note: no dependency on #257 — Historical Data page has no options-backtest entry point
#260 — Dashboard data wiring
- Atomicity: pass (after scope correction)
- Clear goal: pass
- Acceptance criteria: pass (though some criteria are broader than actual scope)
- Parent epic: pass (#256, #78)
- Labels: corrected size:m -> size:s (PM confirmation); added
priority:medium - Body correction needed (human action required): the body describes a broad stub-widget audit across all Dashboard widgets. Verified against
frontend/trademaster_ui/src/pages/Dashboard.js: actual scope is twois_mockreferences only — line 140 (inline message) and lines 282–284 (conditional badge). Reporter should update body before the card is dispatched. Grooming comment on the issue explains the specific lines.
#261 — SetupWizard polish
- Atomicity: pass
- Clear goal: pass
- Acceptance criteria: pass (8 criteria)
- Parent epic: pass (#256, #78)
- Labels: added
priority:medium; size:m confirmed - Pre-task decision needed: wizard step-state persistence strategy (component state vs. localStorage) should be decided and documented before PR opens, not mid-PR
Label changes applied
| Issue | Removed | Added |
|---|---|---|
| #257 | needs-grooming | groomed, priority:high |
| #258 | needs-grooming | groomed, priority:medium |
| #259 | needs-grooming | groomed, priority:medium |
| #260 | needs-grooming, size:m | groomed, priority:medium, size:s |
| #261 | needs-grooming | groomed, priority:medium |
Dispatch wave summary (PM-proposed)
- Wave 0: #257 (feature gate — blocks options-panel integration in #258, #260, #261, #266)
- Wave 1 (parallel, dispatched): #264 (Settings), #262 (Trading), #263 (StrategyComparison) — ux-polisher running now
- Wave 2 (after Wave 0 + Wave 1 merge): #258, #259, #260, #261
- Wave 3: #265, #266
Human decisions needed
- #260 body: reporter should narrow the acceptance criteria to match actual scope (two
is_mockreferences inDashboard.js) before the card is dispatched to a developer. As-written the body could mislead a developer into a broader audit. See issue comment for specifics. - #257 size: confirm
size:svssize:mwith the implementer. Current body scope (backend middleware + env override + frontend panel + unit tests) is likely 1.5–2 days.