Files
LumaWeb/planning/ATOMICITY.md
T
wt 54bfc0f34f
Foundation checks / foundation (push) Successful in 1m12s
initial commit
2026-10-14 17:47:38 +07:00

30 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Атомарность и контекст
В основе 22 последовательных этапа и 275 карточек, включая stage gates. Карточка реализации — один module/behavior/adapter или один UI component, контракт/research — один документ с focused spike, QA gate — проверка готовых artifacts, а не реализация всего этапа.
## Для небольшой модели
- Не читать tasks.json, все карточки и все specs подряд: использовать next/show/packet.
- Packet включает task outcome/scope/steps/acceptance, exact requirement text, относящиеся секции оригинальных документов и evidence paths прямых dependencies.
- Размер packet ограничен 48 000 символами; его превышение запрещает генерацию, а не обрезает требования.
- Максимум одного packet проверяется для всех карточек тестом. Остальной бюджет контекста отведён роли, contracts и небольшому исходному модулю.
- Один focused input/output, обычно 1–3 production files и focused tests. Scope patterns означают разрешение, не требование создать все перечисленные файлы/расширения.
- Shared interfaces читаются через реестр и accepted ADR; модель не изобретает API зависимости.
- Сложность crypto interoperability не устраняется размером карточки: использовать принятый backend/vector либо конкретный blocker.
## Когда split обязателен
Если outcome требует несколько несвязанных user flows, изменения многих shared modules, чтения всего приложения или packet+sources не помещаются в разумный бюджет — текущий агент оформляет атомарную remediation/decomposition proposal через escalate, блокирует original и заканчивает запуск. Отдельный новый orchestrator-агент работает только над назначенной remediation. Идентификатор старой задачи не переиспользуется, status history сохраняется. Принятая small-task карточка не означает, что любая LLM гарантированно правильно реализует её; correctness устанавливает focused test и review.
## Gates и coverage
Ссылка requirement в раннем этапе означает allocation/ограничение данного этапа, а не выполнение всей пользовательской функции. Gate подтверждает только deliverables своего этапа. Полная приёмка Web выполняется тематическими S21 reports и release readiness, которые сопоставляют все применимые requirements с реальными tests/evidence. Native-only требования явно excluded в requirements.json. UI Kit содержит также безномерные размеры/контракты; они включаются через ui_sections в feature packets, а не считаются покрытыми одним ID.
## Изменение длинного JSON
Использовать show --json и программную точечную правку объекта по ID, не отправлять весь planning/tasks.json в контекст. После изменения sync/validate/render. Изменение definitions в нескольких checkout одновременно требует coordinator; CLI state lock не является редакторским lock definitions.
## Автоматический blocker lifecycle
Original blocked → отдельная remediation → новый executor → новый reviewer → original todo/review → новая сессия. Все роли ограничены текущей карточкой. Reporter retired, bare unblock не разрешён. Максимум 3 уровня автоматического blocker nesting/6 remediation на root, затем внешний input. См. docs/AUTOMATION.md.