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

4.3 KiB
Raw Blame History

Feature: Initial Implementation (maraphon-app)

Branch: feature/initial-implementation Base branch: main Created: 2026-05-05 Status: 🟡 In Progress Strategy: Big Bang Mode: Automated Execution: Orchestrator Implementer models: Sonnet 4.6 (backend) · Opus (frontend, with frontend-design skill) Reviewer model: Sonnet 4.6

Summary

Build the maraphon-app end-to-end: a Blazor Hybrid (.NET 8 + WPF) sports-betting odds analyzer that scrapes marathonbet.by, persists snapshots in SQLite, exports to Excel matching the customer spec, and detects coefficient-flip anomalies. Architecture is Clean Architecture with all UI in a Razor Class Library so the host can later swap to ASP.NET Core Blazor Server with no UI rewrite. RU + EN localization, every variable parameter configurable.

Build & Test Commands

  • 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

Big Bang strategy: Build/tests are NOT run for intermediate phases (Phases 08). The full build + test suite must pass at Phase 9 before final review. An exception: a dotnet build compile-only smoke check is allowed after each phase to catch syntax/type errors early — this is faster than running tests and consistent with Big Bang ("we don't run tests until the end").

Phases

  • Phase 0: Scraping spike (research, throwaway) [domain: backend] → subplan
  • Phase 1: Solution skeleton + Domain model [domain: backend] → subplan
  • Phase 2: Infrastructure — Storage [domain: backend] → subplan
  • Phase 3: Infrastructure — Scraping [domain: backend] → subplan
  • Phase 4: Application layer + Background workers [domain: backend] → subplan
  • Phase 5: Blazor Hybrid host + Theme + i18n [domain: frontend] → subplan
  • Phase 6: Event browsing UI [domain: frontend] → subplan
  • Phase 7: Anomaly detection [domain: fullstack] → subplan
  • Phase 8: Results loader [domain: fullstack] → subplan
  • Phase 9: Packaging + polish (final phase — full build + tests required) [domain: fullstack] → subplan

Parallelization Plan (Orchestrator mode)

Round Phases Notes
1 Phase 0 Spike — gating research, no parallelism
2 Phase 1 Domain — must finish before Phases 2/3/5
3 Phases 2, 3, 5 in parallel Storage, Scraping, UI Shell — disjoint files
4 Phase 4 Application + Workers — depends on 2 + 3
5 Phase 6 Event UI — depends on 4 + 5
6 Phase 7 Anomaly detection — depends on 6
7 Phase 8 Results loader — depends on 6
8 Phase 9 Packaging — final, runs full build + tests

Phase Progress Log

Phase Domain Status Review Build Committed
Phase 0: Scraping spike backend Not Started
Phase 1: Solution + Domain backend Not Started
Phase 2: Storage backend Not Started ⏭️ Big Bang
Phase 3: Scraping backend Not Started ⏭️ Big Bang
Phase 4: Application + Workers backend Not Started ⏭️ Big Bang
Phase 5: Host + Theme + i18n frontend Not Started ⏭️ Big Bang
Phase 6: Event browsing UI frontend Not Started ⏭️ Big Bang
Phase 7: Anomaly detection fullstack Not Started ⏭️ Big Bang
Phase 8: Results loader fullstack Not Started ⏭️ Big Bang
Phase 9: Packaging + polish fullstack Not Started

Final Review

  • Comprehensive code review (final-reviewer agent)
  • Security review (auth N/A, but covers scraping HttpClient, file I/O, user input)
  • Full build passes
  • Full test suite passes
  • User merge approval
  • Merged to main

Amendment Log

(empty)