Prepared by raxx-pm-bot. For Kristerpher's review before dispatch.
| Epic | Sub-cards filed? | Groomed + ready-for-dev? | One-day slice available? | Blockers |
|---|---|---|---|---|
| #85 Options chain viewer + iron condor builder | None | No (epic only, needs-grooming) | No | Architecture not scoped; no sub-cards exist |
| #90 In-window trade simulator | None | No (epic only, needs-grooming) | No | Depends on #85 Phase 2 as prerequisite |
| #183 Multi-tenant Alpaca | None | No (design research, not implementation) | No | Open design questions unresolved; regulatory flags |
| #245 Trade-Lifecycle Assistant | None | No (blocked label; architect design required first) |
No | Architecture doc required before any dev cards |
| #256 Securities-only MBT v1 | 10 sub-cards (#257–#266) | Partial — 5 groomed, 5 need-grooming; 3 ready-for-dev | Yes | #197 attorney sign-off (launch gate only, not dispatch gate) |
| #270 Market Calendar Service | None filed yet (epic names 9 sub-cards) | No (sub-cards described but not yet created as issues) | No | Sub-cards not filed; grooming pass needed first |
| #469 Onboarding Wizard | Sub-cards referenced but not found as open issues | No | No | Q1/Q2 open questions unresolved (trial vs paywall, plan names) |
| #495 Hybrid broker model | None | No (aggregator vendor choice unresolved) | No | Which aggregator to evaluate first — operator decision |
Verdict: Only #256 MBT v1 has groomed, sized, dispatch-ready sub-cards today. Every other epic either lacks sub-cards, has unresolved architecture, or is blocked on an operator decision.
Complete the MBT v1 sub-card set so that at end of day Kristerpher can walk through the full Antlers application as a first-time user and find zero stub copy, zero broken states, and a working options feature gate — putting MBT v1 into legal-review-and-ship posture.
At end of day, Kristerpher can:
frontend/trademaster_ui/ in a browser pointed at backend_v2/ENABLE_OPTIONS_BACKTEST=false in envdocs/qa/mbt-v1-launch-checklist.md (from #265) and verify all seven user flows are documented with a sign-off rowgetraxx.com feature list accurately describes the MBT v1 scope (#266 — can run in parallel or follow-on)The parent epic #256 stays open until attorney sign-off (#197) lands. But after today's sprint, every technical card in the milestone is merged — nothing left to build, only legal to clear.
| Card | Title | Size | Label status | Agent |
|---|---|---|---|---|
| #257 | Add ENABLE_OPTIONS_BACKTEST feature gate — backend guard + frontend coming-soon panel |
s | needs-grooming | feature-developer (after groomer pass) |
/api/settings sufficient or does a new /api/feature-flags endpoint need to be added?).Decision needed before dispatch: Does /api/settings already expose feature flags, or does #257 need to add a new /api/feature-flags endpoint? Answer determines scope size. Current card says "new endpoint or equivalent" — groomer should lock this.
| Card | Title | Size | Label status | Agent |
|---|---|---|---|---|
| #264 | Polish Settings page — feature-flag read-only state, broker-mode switcher, credential UX | s | groomed | ux-polisher |
| #262 | Polish StrategyComparison page — copy, states, horizontal-scroll at mobile | s | groomed | ux-polisher |
| #263 | Polish Trading page — options trading and screening UX, paper-mode indicator, error states | m | groomed | ux-polisher |
s-size, fully groomed, ready-for-dev today. #263 is m but groomed — assign to a separate ux-polisher invocation so it can run in parallel with #264 and #262.| Card | Title | Size | Label status | Agent |
|---|---|---|---|---|
| #259 | Polish Historical Data page — copy, states, data-range note, responsive layout | s | needs-grooming | ux-polisher (after groomer pass) |
| #258 | Polish Backtest and Backtesting pages — copy, states, responsive layout | m | needs-grooming | ux-polisher (after groomer pass) |
| #261 | Polish SetupWizard — first-run flow, validation, credential confirmation, edge cases | m | needs-grooming | ux-polisher (after groomer pass) |
| #260 | Polish Dashboard — remove stub widgets, wire real data, per-widget states | m | needs-grooming | feature-developer (data wiring, not just polish) |
feature-developer, not ux-polisher. The other three are polish-only; after a quick groomer pass they are straightforward ux-polisher dispatches.| Card | Title | Size | Label status | Agent |
|---|---|---|---|---|
| #265 | MBT v1 launch checklist — E2E flow walkthrough, regression matrix, staging smoke test | s | groomed, ready-for-dev | feature-developer or Kristerpher self-executes |
| #266 | Update getraxx.com copy for MBT v1 — securities backtest, options coming soon | s | groomed, ready-for-dev | ux-polisher or marketing pass |
| Agent | Cards |
|---|---|
card-groomer (dispatch first) |
#257, #259, #258, #261 — grooming pass to clear needs-grooming before dev starts |
feature-developer |
#257 (Wave 0 gate), #260 (Dashboard data wiring) |
ux-polisher |
#264, #262, #263 (Wave 1, parallel), then #259, #258, #261 (Wave 2 after groomer) |
Kristerpher / ux-polisher |
#265 (launch checklist draft + self-sign-off), #266 (copy approval gate) |
curl/API:
curl -s http://localhost:5001/api/settings | jq '.feature_flags.ENABLE_OPTIONS_BACKTEST'
# expected: false
curl -s http://localhost:5001/api/backtest/options \
-H "Content-Type: application/json" \
-d '{"symbol":"SPY"}' | jq '.error'
# expected: "options_backtest_unavailable"
# status: 403
Click test (Kristerpher walks through):
Tests that pass:
scripts/ci/run_smoke.sh with ENABLE_OPTIONS_BACKTEST=false — greenfalse, passes through when truedocs/qa/mbt-v1-launch-checklist.md exists with all seven flow rows documented#257 scope ambiguity on the feature-flags endpoint. The card says "new /api/feature-flags endpoint or equivalent" — if developer chooses to add a new endpoint, it adds 30-60 min and may require coordination with #264 and #263. Mitigation: groomer locks the answer before #257 dispatches. Low risk if resolved upfront, high if not.
#260 Dashboard data wiring is underspecified. "Remove stub widgets, wire real data" could be 1 day or 3 depending on how many stub widgets exist and what backend endpoints they need. The card is m but has needs-grooming — if the groomer discovers it is actually l, it should be pulled from today's track and deferred. Mitigation: groomer scopes stub widget count explicitly before dev starts.
Alpaca paper intermittency for #263 Trading page test. The Trading card's own risks note Alpaca paper has intermittent options support. Testing may be flaky in staging. Mitigation: document known limitations in the PR; do not block merge on Alpaca intermittency as long as the UI surfaces the error gracefully.
Attorney sign-off (#197) is not in scope for today. MBT v1 cannot GA without it. This sprint clears every technical card; the timeline to close #197 is outside today's track. Risk: Kristerpher assumes technical completion = launch readiness. Mitigation: #265 launch checklist section 4 explicitly gates on #197; make sure Kristerpher reads that before calling MBT v1 shipped.
#266 getraxx.com copy lives in what repo? The card itself flags this as an open question. If getraxx.com is in a separate repo, the ux-polisher agent will need that repo's context before dispatch. Mitigation: Kristerpher confirms the repo before dispatching #266.
| Decision | Needed for | Options |
|---|---|---|
D1: Does /api/settings already surface feature flags, or does #257 need a new /api/feature-flags endpoint? |
#257 Wave 0 gate; affects #264 and #263 | (a) Reuse /api/settings — no new endpoint needed; (b) Add /api/feature-flags — clean separation, 30-60 min extra. Recommendation: (a) unless settings endpoint is already overloaded. |
| D2: How many stub widgets are on the Dashboard (#260)? | Whether #260 fits in one day | Groomer needs to read the current Dashboard component and enumerate stubs. If it is more than 3-4 stubs requiring new backend endpoints, #260 becomes a 2-day card and should be deferred to a follow-on day rather than held in today's sprint. |
| D3: What repo does getraxx.com live in? | #266 dispatch | If it is a separate repo, confirm before dispatching. If it is inside this monorepo, no issue. |
If bandwidth allows a parallel thread, the best use of remaining PM/groomer time today is a grooming-only pass on #270 Market Calendar Service — filing the 9 named sub-cards (MCS-1 through MCS-9) as proper issues so they are dispatch-ready for a future sprint. The epic body already has full specifications for each sub-card; this is transcription + acceptance-criteria hardening work, not design work.
Why this is a clean parallel: no decisions are needed. PR #269 locked all design decisions. PR #242 (grace-window) must land before MCS-7 but that does not block filing the other 8 cards today. The sub-cards are independent enough that a groomer + PM can produce them while the feature-developer and ux-polisher are executing the MBT v1 wave.
End-state for the secondary track: 9 new issues filed under #270, each with title / user story / acceptance criteria / risks / non-goals, groomed and sized per the epic's size guidance. The Market Calendar epic goes from "named but unactionable" to "ready to drop into a sprint any day this week."
Constraint: do not dispatch any MCS feature-developer cards today. The secondary track is grooming-only. Execution follows after #242 (grace-window) merges.
software-architect ADR pass, not a dev sprint.blocked label; architect design doc is prerequisite. Cannot dispatch feature-developer work.BrokerProvider abstraction (#495 sub-feature 1) could theoretically start today — it does not require aggregator selection — but it has no groomed issue yet and would require a new card before dispatch.