Files
maraphon-app/plans/initial-implementation/CONTEXT.md
T

4.1 KiB

Feature Context: Initial Implementation

Configuration

  • Development mode: Automated
  • Execution mode: Orchestrator
  • Strategy: Big Bang
  • Build: dotnet build Marathon.sln
  • Test: dotnet test Marathon.sln
  • Lint: dotnet format Marathon.sln --verify-no-changes
  • Run: dotnet run --project src/Marathon.Hosts.WpfBlazor
  • Implementer models: Sonnet 4.6 (backend), Opus (frontend)
  • Reviewer model: Sonnet 4.6

Customer Constraints

  • Source: marathonbet.by — anonymous scraping (no login). ToS risk acknowledged by customer.
  • Output: Excel files matching customer's wide-column spec (Bet_Match_Win_1, Bet_Period-1_Win_Fora_2_Value, etc.) with date-range filenames.
  • Storage: customer accepted SQLite-with-Excel-export instead of Excel-as-database (decided 2026-05-05).
  • UI tech: Blazor Hybrid (changed from initial WPF assumption — better for web migration).
  • Locale: RU + EN.
  • Scope: analyze-only initially; design IBetPlacer extension point for future betting.
  • Configurability: every variable parameter (polling, concurrency, retry, UA, retention, thresholds, locale) goes in appsettings.json + Settings UI page.

Current State

Repo just initialized. Single main commit with .gitignore + README.md + CLAUDE.md. Working on feature/initial-implementation branch. No source code yet — Phase 0 starts with scraping research, no implementation.

Temporary Workarounds

(none yet)

Cross-Phase Dependencies

  • Phase 1 (Domain) is the foundation; all later phases reference domain types.
  • Phase 2 (Storage) & Phase 3 (Scraping) depend only on Phase 1 — can run in parallel.
  • Phase 4 (Application + Workers) depends on Phase 2 + Phase 3.
  • Phase 5 (UI Shell) depends on Phase 1 only — can run in parallel with 2/3.
  • Phase 6 (Event Browsing UI) depends on Phase 4 + Phase 5.
  • Phase 7 (Anomaly) depends on Phase 4 (snapshot storage) + Phase 6 (UI patterns).
  • Phase 8 (Results) depends on Phase 6.
  • Phase 9 (Packaging) is final — runs full build + test suite.

Deferred Work

  • Bet placing (explicit out-of-scope; design extension point only).
  • Authenticated scraping (anonymous now; IOddsScraper impl is swappable).
  • Multi-bookmaker support (only marathonbet.by; abstraction allows future expansion).
  • PostgreSQL backend (SQLite for now; IRepository<T> abstraction allows swap).

Failed Approaches

(none yet — phases not started)

Review Findings Log

(populated by reviewers)

Phase Execution Log

Phase Agent Model Test Writer Parallel Notes
Phase 0 phase-implementer Sonnet 4.6 ⏭️ Skipped (research only) Throwaway probe; outputs SCRAPE_FINDINGS.md only
Phase 1 phase-implementer Sonnet 4.6 ⏭️ Skipped (Big Bang)
Phase 2 phase-implementer Sonnet 4.6 ⏭️ Skipped (Big Bang) With 3 + 5
Phase 3 phase-implementer Sonnet 4.6 ⏭️ Skipped (Big Bang) With 2 + 5
Phase 4 phase-implementer Sonnet 4.6 ⏭️ Skipped (Big Bang)
Phase 5 phase-implementer-frontend Opus ⏭️ Skipped (Big Bang) With 2 + 3 Uses frontend-design skill
Phase 6 phase-implementer-frontend Opus ⏭️ Skipped (Big Bang) Uses frontend-design skill
Phase 7 phase-implementer (split if needed) Sonnet/Opus ⏭️ Skipped (Big Bang) UI portion uses Opus
Phase 8 phase-implementer (split if needed) Sonnet/Opus ⏭️ Skipped (Big Bang) UI portion uses Opus
Phase 9 phase-implementer Sonnet 4.6 Final phase tests Full build + test enforced

Environment & Runtime Notes

  • Windows 10, PowerShell 5.1 default shell, Bash also available.
  • git configured globally; remote origin = https://git.dolgolyov-family.by/alexei.dolgolyov/maraphon-app.git.
  • Note: home directory (C:\Users\Alexei) is itself a git repo (likely accidental). The maraphon-app local .git overrides it for this directory tree.
  • .NET SDK assumed installed; if Phase 1 fails on dotnet --version, install or document in CONTEXT.md.

Implementation Notes

(populated as we work)