- HTML 64.8%
- Python 33.3%
- PowerShell 1.6%
- JavaScript 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Laptop session work synced through the tree: D32 (the API taken up for one display use, consultant untouched), the Week 1 data snapshot as overwritten by the broken live-page ingest, session log, CLAUDE.md caution, the executed API agreement in reference/. Housecleaning Batch A: plans/next_session.md rewritten for 09-13 (ingest fixes first, Week 2 calendar, D32 stated), SPEC scope line updated. Co-Authored-By: Claude Fable 5.1 <[email protected]> |
||
| agent | ||
| archive | ||
| data | ||
| design | ||
| logs | ||
| plans | ||
| reference | ||
| .gitignore | ||
| board_v4.csv | ||
| CLAUDE.md | ||
| DECISIONS.md | ||
| install_draft_task.ps1 | ||
| install_weekly_task.ps1 | ||
| league_config.yaml | ||
| README.md | ||
| requirements.txt | ||
| run_weekly_plan.ps1 | ||
| runbook.md | ||
| SPEC.md | ||
| start_draft.ps1 | ||
| STATUS.md | ||
Fantasy Football — the draft package, and the season that follows
Status → next lives in STATUS.md. Settled design: SPEC.md.
Why: DECISIONS.md (append-only; D26–D28 are the 2026 draft-day decisions).
What happened in 2026 and what to fix first in 2027: archive/draft_2026_postmortem.md.
What this is
A live-draft co-pilot for Phil's Yahoo league (750741; 12 teams, 15 rounds, snake, standard scoring with the league's own modifiers). It builds a draft board from this league's exact scoring, watches the live draft room through a dedicated Chrome, models what every other seat still needs, recommends the pick — and, since the 2026 draft, makes the pick on Phil's standing authorization (D28). On 2026-09-06 it drafted all 15 picks from seat 4, 2–4 seconds per turn, 14 of them its own first choice, and graded the result first of twelve by the league's projections.
The in-season weekly consultant (D30) is built: python -m agent.season.plan --refresh
snapshots the league through the signed-in Chrome, blends three weekly projection sources,
and renders the Set-your-team plan (lineup with lock times and pivots, conservative waiver
advice, notes, matchup). Ask for it in casual language (the fantasy-week skill) or let the
Sunday 08:40 task email it. Plan and gates: plans/season_plan.md.
Read order for a cold start
- This file.
SPEC.md— the four parts (board, reader, console, hands), the browser contract, the invariants. Ten minutes.runbook.md— how to run a draft day, assisted mode first. The one-page checklist is at the top.DECISIONS.mdD26–D28 and the post-mortem — only if you need to know why something is the way it is.
The 2026 planning corpus (archive/2026/: the structural and strategic plans, the opponent
model spec and review, the research files) is the evidence base. It is not required reading to
operate the package; it is required reading before changing the engine.
The 2027 draft-day checklist (short form; the runbook has the long one)
Weeks before
league_config.yaml: re-read every setting from the league page. Scoring, roster, clock, waiver type, draft time. It changed twice in 2026 between the first read and draft day.python -m agent.board→board_v4.csv;python -m agent.prerank→ pastedata/prerank_export.txtinto Yahoo's pre-draft rankings (the machine-dies-anyway floor).python -m agent.replay(24 synthetic drafts, roster legality and composition) andpython -m agent.replay_views(the seam harness) must be clean.
The night before, on the home PC
.\start_draft.ps1once: the debug Chrome (%LOCALAPPDATA%\fantasy_draft_chrome) must be signed in to Yahoo. A fresh profile triggers a 2FA challenge — never on draft morning.- Two mocks in draft-day configuration (unattended console +
agent.operator), 12-team rooms only. Yahoo rewrites the client each August: every selector fact is a hypothesis until a mock proves it. data/seats.jsonmust end withmy_slot: null.install_draft_task.ps1for the T−28 launch.- Arm the session wake-ups (a one-shot cron before the task, a persistent watcher on the room tab) and a phone alarm as the human backup.
Draft morning
- The task opens the room and starts the console. Verify: exactly one
/draftclient/tab, the console attached,my_slotset from the header, Autodraft off. python -m agent.pick "<top player>" --dry-runagainst the real room before pick 1.python -m agent.operatorin the background, a Monitor on its log. Report every pick.- Phil can override any turn by naming a player.
Layout
agent/ the package: board → reader → console/engine → hands (see SPEC §1)
agent/season/ the weekly consultant: ingest → projections → lineup/waivers → plan (D30)
data/ board inputs, captures, seats.json, shots/ (git-ignored), the live logs
archive/ the post-mortem, superseded scripts, the 2026 planning corpus (archive/2026/)
plans/ season_plan.md (the weekly consultant); next_session.md (pick-up brief)
start_draft.ps1 the launcher (attended / -Unattended / -SelfTest)
install_draft_task.ps1 the T−28 scheduled task (one-shot; remove after the draft)
run_weekly_plan.ps1 / install_weekly_task.ps1 the Sunday 08:40 plan email (the floor)
league_config.yaml the league, as read from Yahoo -- the single source of scoring truth
Machine-local, never synced: .venv (rebuild from requirements.txt), data/cache,
data/shots, the Chrome profile, %USERPROFILE%\.fantasy_draft\ (tokens).
Sensitivity
None. No financial, medical or family data. Yahoo OAuth / Home Control tokens are machine-local secrets; the tree holds pointers only.