andreagrandi / andreagrandi/draftomen

Support Premier, Traditional, and Pick-Two drafts

Aperta
#257 0 commenti 1 reazione 0 assegnatari Vedi su GitHub
draftomen enhancement size: XL
Lingua principale
Python
Stelle
0
Fork
0
Merge medio
1h 23m
PR unite (30g)
181

Descrizione

## Problem

Draft Omen currently recognizes only `QuickDraft_*` bot-draft events, models one selected card per pick, and assumes three 14-pick packs and 42 selected cards. Private real-log discovery shows that Premier and Traditional drafts use human-draft messages, while Pick-Two uses 21 logical picks with two selected cards per pick. The app therefore cannot detect, parse, persist, score, replay, audit, or present these formats correctly.

The private corpus contains two verified Premier logs, two verified Pick-Two logs, and one verified Traditional Draft log. Traditional support will use that format-verified sample plus the observed shared human-draft protocol, without asserting unobserved Traditional-specific payload differences.

## Proposed change

Generalize the draft format/rules model, human-draft parser, logical-pick persistence, live scoring context, tools, and both user interfaces. Preserve Quick Draft behavior. Use explicit event metadata for format detection and treat payload shape only as validation/fallback evidence.

Keep every raw `Player.log` private under `.git/private/player-logs/`. Commit only hand-authored synthetic fixtures and schema-level documentation with no player-identifying data or copied raw log excerpts.

Historical context: #4, #6, #10, #22, #115, and #181.

## Plan

1. Detect draft formats and define format rules.
2. Represent and persist multi-card logical picks.
3. Parse human-draft picks and completion.
4. Propagate format through live scoring and ratings.
5. Update replay, audit, and backtest contracts.
6. Present multi-format drafts in TUI and watch mode.
7. Present multi-format drafts in the desktop GUI.
8. Prove all formats through end-to-end regression workflows.
9. Document supported formats and private-log handling.

## Acceptance Criteria

- [ ] Quick, Premier, Traditional, and Pick-Two drafts are detected from event metadata.
- [ ] Premier and Traditional retain one selected card per logical pick.
- [ ] Pick-Two retains both selected cards in one logical pick and uses 21-pick progression.
- [ ] Unknown, incomplete, and truncated human-draft messages do not crash the live workflow.
- [ ] Format-specific ratings/progress reach the live session and user-facing adapters.
- [ ] Replay, audit, backtest, TUI/watch, and Qt/QML handle the generalized contracts.
- [ ] Existing Quick Draft behavior remains covered and unchanged.
- [ ] Automated synthetic fixtures cover all four formats, and local end-to-end checks exercise the private real logs.
- [ ] No raw `Player.log`, player identifier, or wholesale raw-log excerpt is published to GitHub.
- [ ] All native child issues are merged and closed, then the epic is audited against these criteria before closure.

## Scope notes

No Sealed, Cube, constructed Standard, Arena input automation, OCR, gameplay automation, or combinatorial two-card recommendation optimizer. Pick-Two may rank the available cards individually; pair-optimization is separate product work.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.