Sonnet — да, для большинства, но не для всех. В AGENTS.md этих репо уже зашит принцип маршрутизации (Frontier / Mid / Routine, «сомневаешься — на тир выше»), и наш бэклог по нему раскладывается так:
Sonnet 5 — основная рабочая лошадка (7 задач). Это хорошо очерченные фичи по существующим паттернам, с тестами и подробными issue, где гочи уже прописаны:
- play#211 (меню+rename), #212 (запоминание выбора — гоча про forced-reset описана в issue), #213 (ссылки на профили), #215 (rematch с ботом), #216 (replay/copy link), #219 (wake-прогресс)
- play#214 и #218 — их UI-половины, когда разблокируются
Opus 5 / Fable — там, где архитектура, публичные контракты и blast radius (4-5 задач):
- api#290 — изменение live-wire. Это публичный протокол + замороженное зеркало
liveTypes.tsв клиенте, и именно на таком месте #279 уже ронял публичный Bot API (Circe-урок). Ровно категория «cross-repo contracts» из AGENTS.md. - api#291 — дизайн challenge/rematch-протокола (ADR). Неоднозначная задача, дешёвой моделью её не решить, только наплодить.
- api#292 — решения про идентичность/uniqueness — дизайн frontier, имплементация потом хоть Sonnet.
- play#217 (IA-хаб) — дизайн-проход на Opus/Fable, разводку маршрутов после решения можно отдать Sonnet.
- play#220 (Pages Function 404) — кода мало, но он встаёт в путь раздачи прода и взаимодействует с wrangler direct upload и preview-деплоями; цена ошибки — то самое «сайт не открывается». Я бы не экономил.
Haiku 4.5 — разве что на чисто механические кусочки (переименование строк в #211, доки), но выигрыш копеечный, проще всё мелкое оставить Sonnet.
Два практических замечания. Во-первых, это не выбор «одной модели на весь бэклог» — переключай в model-пикере приложения под конкретную сессию: пачку quick-wins прогнал на Sonnet, для api#290 открыл сессию на Opus/Fable. Во-вторых, у тебя есть страховочная сетка (тесты, svelte-check, CodeRabbit, твоё ревью), которая дёшево ловит промахи Sonnet на mid-задачах — но она не ловит плохие дизайн-решения, поэтому именно дизайн-задачи и wire-контракты тяни на верхний тир. И правило из твоего же AGENTS.md: сомневаешься между тирами — бери старший, время ревьюера дороже токенов.
Расклад по оставшемуся бэклогу (8 задач, из них 6 разблокированы):
Моя рекомендация — пара #215 + #216, начиная с #215 (Rematch с ботом). Аргументы:
- Это самый ощутимый для игрока пункт из всего оставшегося: один клик — и реванш с тем же ботом с теми же настройками. Особенно уместно теперь, когда #214 смёржен — партия заканчивается модалкой с рейтинг-дельтой, и «Rematch» — ровно то действие, которого там не хватает.
- #216 (Watch replay + Copy link) трогает ту же
GameEndModal— сделав их подряд (двумя маленькими PR на одной базе), не будем конфликтовать сами с собой. - Оба чисто клиентские, протокол не нужен.
Дальше по убыванию:
| Задача | Комментарий |
|---|---|
| #219 wake-прогресс на карточке | S, чистая презентация — идеальный кандидат для параллельной Sonnet-сессии, с 216 не пересекается |
| #227 (твоя) copy про рейтинг за sign-in | S, тоже независима |
| api#291 протокол challenge/rematch (ADR) | Дизайн-задача, мой профиль (Fable); разблокирует #218 и HvH-реванш. Результат — ADR в dicechess-docs + разбивка на issues |
| #217 IA-хаб | Крупнее, design-first; я бы делал после того, как модалка и карточки доведены, — хаб перraspределяет входы, и лучше, чтобы «внутренности» уже были в финальном виде |
| api#292 display-names ботов | Мелкая, но трогает публичный Bot API — уместнее в связке с ownership-milestone (api#239) |
Скажи «бери 215» — начну в свежем worktree (там же потом #216 второй веткой). Если хочешь параллелить — #219 и #227 можно смело отдать Sonnet-сессиям, они ни с чем не пересекаются.