tasks — spec-059 (свитки/заклинания)
Легенда: ⬜ todo · 🔨 в работе (агент) · ✅ done · 🧪 нужен тест
Этап 1 — база заклинаний
- ✅ T1.1 Мигр. 130: node_type
spell(апгрейд легаси) + категорияscroll— на проде - ✅ T1.2 TS-сидеры: NODE_TYPES += spell, DEFAULT_ITEM_CATEGORIES += scroll
- ✅ T1.3
maxSpellLevel(partyLevel)в party-level.ts - 🔨 T1.4 Скрапер
scripts/scrape_dndsu_spells.py(агент a19dc38) - 🔨 T1.5 Smoke-run скрапера (агент)
- 🔨 T1.6 Codegen
scripts/spells-dndsu-codegen.ts(агент) - 🔨 T1.7 Прогон →
dndsu_spells.json→ сид-миграции 140+ (агент) - ⬜ T1.8 Десктоп:
spells/[id]/page.tsx+ edition-toggle + список (отложено — display) - ⬜ T1.9 Десктоп-редиректы catalog → /spells (отложено)
- ⬜ T1.10 /tg:
lib/queries/spells-tg.tsвики-рендер (отложено — display; поиск уже есть в scribe-tg) - ⬜ T1.11 /tg:
spell-app.tsxстатблок + тоггл 2014/2024 (отложено — display)
Этап 2 — свитки (Party-акт)
- ✅ T2.1
lib/scribe-settings.ts(таблица+parse+scribeRowFor+SpellLevelKey) - ✅ T2.2
lib/scribe.ts(pure часы: порог Σ≥норма) - ✅ T2.3 Мигр. 132:
scribe_runs+ RLS — на проде - ✅ T2.4
lib/campaign.ts: регистрация scribe_settings + spell_settings - ✅ T2.5
app/actions/scribe.ts::runScribe+createScrollItem - ✅ T2.6
lib/queries/scribe-tg.ts(settings/searchSpellsTg/scrollHoldings/runs) - 🔨 T2.7 /tg:
scribe-screen.tsx(агент a2bd685) → интеграция в party-tab (я) - ⬜ T2.8 Настройки:
updateScribeSettings+ editor + Section - ✅ T2.9 Лента: mode 'scribe' в 'craft'
- ✅🧪 T2.10 scribe-settings.test.ts ✅ · ledger-scribe-format.test ⬜
Этап 3 — переподготовка (PC-глагол)
- ✅ T3.1
lib/spell-settings.ts+ parse + регистрация - ✅ T3.2
runReprep(getMembership+isPcOwner, level-гейт, PC/общак) - 🔨 T3.3 /tg:
ReprepSheetв spell-sheets.tsx (агент a2359ee) → регистрация в action-hub (я) - ✅ T3.4 Лента: тип 'reprep' (авто-резолв actorPcId)
- ⬜ T3.5 Настройки: spell-settings-editor + Section
- ✅🧪 T3.6 spell-settings.test.ts ✅ · ledger-reprep-format.test ⬜
Этап 4 — копирование (PC-глаголы)
- ✅ T4.1
runCopySpellscroll-to-book (расход свитка) в spell-verbs.ts - ✅ T4.2
runCopySpellbook-to-book (нарратив) - 🔨 T4.3 /tg:
CopySheetв spell-sheets.tsx (агент a2359ee) → регистрация (я) - ✅ T4.4 Лента: тип 'copy' (copyMode, scrollConsumed)
- ⬜ T4.5 🧪 ledger-copy-format.test.ts
Финал
- ✅ V1 typecheck + Next build чистые
- ✅ V2 vitest: 608 тестов зелёные (30 новых 059)
- ✅ V3 схема-миграции 130+132 в ветке; 544 заклинания (все офиц. dnd.su, обе
редакции) на проде — сид-миграции вынесены из ветки (регенерятся скрапером;
python scrape_dndsu_spells.py && npx tsx spells-dndsu-codegen.ts --emit-migrations) - ✅ V4 ux-auditor (2 MAJOR + 3 MINOR починены)
- ✅ V5 self adversarial-review (2 находки починены: settings-clobber + стейл-поиск)
- ⬜ V6 /ultrareview (Andrey, локальная ветка) → PR + merge
Состояние: ФИЧА ПОСТРОЕНА. Все этапы (база заклинаний + 4 глагола + настройки +
UI + вики-рендер) готовы, интегрированы, typecheck/build/608-тестов зелёные,
ux-аудит + self-review пройдены. Осталось: /ultrareview Andrey → PR → merge.
Все 8 этап-1 вики-таск (T1.8–1.11) закрыты вики-агентом (десктоп-страницы +
/tg spell-app + редиректы). Хвост: предсуществующий settings-clobber в 4 старых
actions — задача task_a15c2308.