Review: Live strategy dashboard
Verdict: READY
Re-review: Previous review incorrectly flagged arch-frontend and arch-app as missing. Both confirmed to exist. Verdict upgraded from NEEDS_REFINEMENT to READY.
Template Completeness
- [x] Type -- Feature
- [x] Lineage -- references parent #6, dependencies #4 and #1
- [x] Repo -- ldraney/kalshi-assistant
- [x] User Story -- As a Kalshi trader, I want a real-time dashboard...
- [x] Context -- explains dashboard purpose, Turbo Streams approach, traffic expectations
- [x] File Targets -- 3 create targets, 2 do-not-touch entries
- [x] Feature Flag -- mobile_live_dashboard, global, disabled by default
- [x] Acceptance Criteria -- 4 When/Then criteria
- [x] Test Expectations -- unit + integration tests with run command
- [x] Constraints -- Turbo Streams, mobile perf, Rails patterns, edge cases
- [x] Checklist -- standard 3-item checklist
- [x] Related -- project, parent, and dependency references
Traceability
- [x] story:app-experience label -- "App Experience" story
- [x] story note verified -- found in project-kalshi-assistant user-stories section (key: app-experience, role: Consumer)
- [x] arch:frontend label -- "Frontend: kalshi-assistant"
- [x] arch note verified -- arch-frontend (id 2343) exists in pal-e-docs, status active, project kalshi-assistant
- [x] arch:app label -- "Application Domain: Kalshi Assistant"
- [x] arch note verified -- arch-app (id 2349) exists in pal-e-docs, status active, project kalshi-assistant
- [x] Forgejo issue -- ldraney/kalshi-assistant#16, state: open
File Targets
- [x] app/controllers/dashboard_controller.rb -- to be created; follows Rails convention; parent directory will exist after #1 (Rails scaffold)
- [x] app/views/dashboard/ -- to be created; standard Rails view directory
- [x] app/channels/dashboard_channel.rb -- to be created; Action Cable channel for Turbo Streams
- [x] Do-not-touch: app/services/watchdog_service.rb (from #4) -- correctly scoped out
- [x] Do-not-touch: app/controllers/trades_controller.rb (separate ticket) -- correctly scoped out
Note: No app/ directory exists yet. This is expected -- the Rails scaffold (#1) must complete first. All file targets are new files to create, following standard Rails conventions.
Repo Placement
OK. Issue filed in ldraney/kalshi-assistant; all work targets the same repo. Single-repo scope.
Dependencies
- #1 (Rails app scaffold) -- in todo column. Hard dependency: provides app/ directory structure and base controller patterns. Must complete before this ticket starts.
- #4 (Watchdog) -- in todo column. Data dependency: watchdog generates the strategy status data displayed on the dashboard. Must complete before dashboard can show real watchdog data.
- #6 (Mobile app parent) -- in backlog. This is the parent decomposition issue; not a blocking dependency.
- Credential UI (child of #6) -- referenced in Lineage; not a direct blocker for dashboard functionality.
Dependencies are correctly documented in the Lineage section. Sprint ordering (sprint:4) aligns with dependency chain (#1 sprint:1, #4 sprint:3).
Acceptance Criteria
4 criteria, all in When/Then format. Each is agent-verifiable:
- AC1: Active positions with market prices -- verifiable via controller test and integration test
- AC2: Watchdog trigger status display -- verifiable via integration test with mock data
- AC3: Real-time updates via Turbo Streams -- verifiable via Action Cable integration test
- AC4: P&L display (unrealized + realized) -- verifiable via unit test on calculation logic
Test expectations include specific test file paths and a run command. Complete and testable.
Blast Radius
Minimal. Greenfield feature in a repo with no existing application code. No downstream consumers affected. Dashboard reads from services defined in other tickets (#4 watchdog, #2 market scanner) but does not modify them.
Decomposition Assessment
No decomposition needed.
- 3 file targets in 1 repo -- under threshold (max 3 across 2+ repos)
- 4 acceptance criteria -- under threshold (max 5)
- 2 story points -- fits single agent pass well under 5-minute estimate
Recommendation
No action needed. Scope is solid, traceability is complete (including backing notes for both arch labels and user story), template is fully populated, and the ticket fits in a single agent pass.