Review: Spike: Multi-sport expansion -- does the late-game edge work beyond baseball?

review-1849-2026-07-10 Review

review ready

Verdict: READY

Template Completeness

  • [x] Type -- Spike
  • [x] Lineage -- Follows Spike #11, establishes volume motivation (3.3 trades/day vs 14+ target)
  • [x] Repo -- ldraney/botfire
  • [x] Question -- 7 sub-questions covering price bands, timing, risk params, time windows, volume, seasonal availability, sample size
  • [x] Deliverables -- 3 deliverables: analysis doc, follow-up tickets, or no-action rationale
  • [x] Time-box -- 3 hours
  • [x] Related -- 4 related items (project-botfire, #11, #12, #14)

Traceability

  • [x] story:bot-strategy label -- present on board item
  • [x] story note verified -- found in project-botfire user-stories section. Entry: "As a bot operator, I want to identify and exploit profitable trading conditions so that my automated bots generate consistent positive P&L."
  • [x] arch:bots label -- present on board item
  • [x] arch note verified -- arch-bots note exists ("Architecture: BotFire Bot Engine", status=active)
  • [x] Forgejo issue -- ldraney/botfire#18, state: open

File Targets

  • [x] docs/multi-sport-analysis.md -- spike deliverable (to be created). Docs directory exists at /home/ldraney/botfire/docs/ with existing bot docs. Correct placement.
Note: Spike issues produce docs, not code. No existing file targets to verify.

Repo Placement

OK. Issue specifies ldraney/botfire, Forgejo issue filed on ldraney/botfire. Single-repo spike -- no cross-repo concerns.

Dependencies

  • Spike #11 (Live Edge deep dive, item #1845) -- COMPLETED (in qa column). This spike follows it. No blocker.
  • Issue #12 (Evening filter, item #1846) -- PR #16 merged, in qa. Related (sport-specific hours may differ) but not a blocker.
  • Issue #14 (Ceiling 89c, item #1848) -- PR #15 merged, in qa. Related (sport-specific bands may differ) but not a blocker.
  • No items block this spike. No undocumented dependencies found.

Acceptance Criteria

Deliverables are clear and agent-verifiable:
  • docs/multi-sport-analysis.md exists with per-sport sections -- verifiable via file check
  • Follow-up tickets created on Forgejo for viable sports -- verifiable via API
  • If no viable sports, docs file contains rationale -- verifiable via content check

Blast Radius

Low blast radius. The codebase already has multi-sport infrastructure baked in:
  • game_phase.rb -- already handles baseball, basketball, football, hockey, soccer with sport-specific "nearly over" and "about to settle" logic
  • scanner.rb -- DEFAULT_SPORTS already includes all 5 sport types
  • bot.rb -- SPORT_TYPES constant already lists all 5 sports; watched_sports defaults to all
  • bot_engine.rb -- already filters by watched_sports, active hours are per-bot configurable
  • portfolio_grouper.rb -- already groups positions by sport_type
  • live-edge.md -- already documents game phase filters for all 5 sports
This spike is research-only (no code changes). Follow-up feature tickets would likely involve trigger configuration changes (sport-specific thresholds, time windows) rather than structural code changes.

Decomposition Assessment

No decomposition needed. Single cohesive investigation producing one analysis doc. File target count: 1 (docs/multi-sport-analysis.md). Deliverables: 3 (all part of the same analysis flow). Time-box: 3 hours. Fits comfortably in a single agent pass.

Recommendation

No action needed. Scope is solid, all traceability legs verified, template is complete, and the spike is well-bounded.