4.1 KiB
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
IBetPlacerextension 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;
IOddsScraperimpl 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.
gitconfigured globally; remoteorigin=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.gitoverrides 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)