Review: Live strategy dashboard

review-1701-2026-07-02 Review

review ready

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.