Files
maraphon-app/plans/initial-implementation/PLAN.md
T
alexei.dolgolyov 070e34b911 feat(initial-implementation): phase 0 - scraping spike findings
Anonymous scraping confirmed feasible for marathonbet.by — site is fully SSR
(nginx), no Cloudflare or JS challenge. HttpClient + AngleSharp + Polly v8 is
sufficient; Playwright not required (kept as a future-flag).

Spike outputs:
- spike/SCRAPE_FINDINGS.md  — page rendering, URL templates, anti-bot, rate
  limits, recommended scraping strategy for Phase 3.
- spike/SCHEMA_DRAFT.md     — customer-spec field → DOM selector mapping for
  Match + Period-N scope across football/basketball/tennis (hockey TBD).

Phase 1+ handoff captured in subplan + CLAUDE.md. Critical Phase 8 finding:
no public results endpoint at /su/results — phase 8 must switch to polling
event-detail until eventJsonInfo.matchIsComplete=true (deviation flagged).

Reviewer notes addressed:
- Period market outcome codes corrected to RN_H/RN_D/RN_A (not 1/draw/3) and
  market name vocabulary clarified per-sport in SCHEMA_DRAFT §3.1.
- results-page.html capture added to file list with caveat about live-landing
  score-state and unsampled hockey selectors.
2026-05-05 01:04:03 +03:00

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 Done Pending review ⏭️ N/A (research)
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)