Привязать все задачи к этапам разработки
This commit is contained in:
+14
-2
@@ -13,6 +13,7 @@ master tracks origin/master
|
||||
|
||||
- [`DEVELOPMENT_PLAN.md`](DEVELOPMENT_PLAN.md) — утверждённый GDD + TDD + production roadmap;
|
||||
- [`CURRENT_ROADMAP.md`](CURRENT_ROADMAP.md) — ближайшая последовательность работ для существующего vertical slice.
|
||||
- [`STAGE_REGISTRY.md`](STAGE_REGISTRY.md) — обязательная stage-классификация всех Beads от Prototype до Release Candidate.
|
||||
|
||||
## Структура backlog
|
||||
|
||||
@@ -22,9 +23,16 @@ master tracks origin/master
|
||||
- предметные задачи с acceptance criteria, приоритетами и зависимостями;
|
||||
- уже подтверждённые кодом и QA элементы закрыты с причиной.
|
||||
|
||||
На 18 августа 2026 года в snapshot находятся 72 beads: 22 закрыты, 6 находятся в работе и 44 открыты. Эти числа нельзя трактовать как точный процент готовности, потому что в базе смешаны эпики, features и задачи разного размера.
|
||||
На 18 августа 2026 года в snapshot находятся 78 beads. Эти числа нельзя
|
||||
трактовать как точный процент готовности, потому что в базе смешаны эпики,
|
||||
features и задачи разного размера.
|
||||
|
||||
Текущий gate — `goon-game-milestone-vslice`. Инженерный кандидат этапа 2 собран; незакрытые gates включают `goon-game-human-playtest` и performance/repetition criteria `goon-game-regression-10`. Задачи этапа 3 можно начинать параллельно, не объявляя внешний playtest завершённым.
|
||||
Текущий primary gate — Stage 5 и `goon-game-milestone-vslice`. Этапы 0–4
|
||||
не содержат незакрытых primary-задач. Stage 5 включает внешний
|
||||
`goon-game-human-playtest`, оставшийся performance/repetition criterion
|
||||
`goon-game-regression-10`, balance comprehension gate, art/audio, lifecycle,
|
||||
save migration и performance budget. Production content 55–70 уровней имеет
|
||||
primary Stage 6.
|
||||
|
||||
## Ежедневные команды
|
||||
|
||||
@@ -60,6 +68,7 @@ bd close goon-game-bot-framework --reason "Acceptance criteria выполнен
|
||||
```sh
|
||||
bd dep cycles
|
||||
bd export --output .beads/issues.jsonl
|
||||
./scripts/check-stage-assignments.sh
|
||||
```
|
||||
|
||||
Завершение сессии:
|
||||
@@ -81,3 +90,6 @@ git status --short --branch
|
||||
5. Не редактировать `.beads/issues.jsonl` вручную: source of truth — embedded Dolt в `.beads/embeddeddolt`.
|
||||
6. Git remote обязателен для исходников и JSONL snapshot; после каждого изменения backlog экспортировать JSONL, коммитить и делать push.
|
||||
7. `bd dolt push` публикует отдельную внутреннюю историю и выполняется только после явного разрешения владельца.
|
||||
8. Каждая Bead обязана иметь минимум один `stage-N`, ровно один
|
||||
`primary-stage-N` и совпадающую metadata `primary_stage`; новые задачи без
|
||||
этой классификации не должны попадать в commit.
|
||||
|
||||
+77
-6
@@ -6,7 +6,7 @@
|
||||
|
||||
## 1. Текущее состояние
|
||||
|
||||
Инженерная часть этапов 2–4 завершена:
|
||||
Этапы 0–4 завершены по primary-stage ownership:
|
||||
|
||||
- реализованы 10 последовательных уровней;
|
||||
- работают движение, прыжок и мобильное multitouch-управление;
|
||||
@@ -37,6 +37,11 @@
|
||||
|
||||
Performance-оговорка: исторический критерий этапа 1 «полный прогон до 5 минут» не выполнен на текущем throttled AVD. После расширения набора до 16 методов exact final matrix занимает `9:32.496`. Сокращать трёхкратные прохождения или скрывать нестабильность retries запрещено; оптимизация runner остаётся отдельной QA-задачей и не меняет доказанную проходимость.
|
||||
|
||||
`goon-game-regression-10` сохраняет вторичную связь со Stage 1, а
|
||||
`goon-game-level-balance` — со Stage 2. Их незавершённые performance и external
|
||||
comprehension gates имеют primary Stage 5, поэтому завершённые инженерные этапы
|
||||
не содержат скрытых открытых primary-задач.
|
||||
|
||||
## 2. Принципы разработки
|
||||
|
||||
1. Сначала acceptance-тест, затем исправление уровня.
|
||||
@@ -49,6 +54,13 @@ Performance-оговорка: исторический критерий этап
|
||||
|
||||
## 3. Этапы
|
||||
|
||||
### Этап 0. Prototype foundation — завершён
|
||||
|
||||
В этот исторический этап входят базовый Android APK, character/death/corpse,
|
||||
Canvas physics, camera, puzzle objects, hazards, HUD/multitouch, save, unit tests
|
||||
и greybox-набор из десяти уровней. Он сохраняется в registry, чтобы завершённые
|
||||
baseline-задачи также имели явного владельца по stage.
|
||||
|
||||
### Этап 1. Боты проходимости для уровней 1–10 — P0, 4–6 дней
|
||||
|
||||
Задачи:
|
||||
@@ -120,7 +132,7 @@ Performance-оговорка: исторический критерий этап
|
||||
- некорректный сигнал, дверь или объект отклоняется валидатором при сборке;
|
||||
- все существующие уровни после миграции проходят тех же ботов.
|
||||
|
||||
### Этап 5. Художественная и звуковая альфа — P1, 8–15 дней
|
||||
### Этап 5. Завершение Vertical Slice — P0/P1, 10–18 дней
|
||||
|
||||
Задачи:
|
||||
|
||||
@@ -129,15 +141,38 @@ Performance-оговорка: исторический критерий этап
|
||||
- добавить анимации движения, смерти, respawn и реакции механизмов;
|
||||
- добавить звуки управления, механизмов, результата и фоновую музыку;
|
||||
- предусмотреть независимые настройки музыки, эффектов и вибрации;
|
||||
- оптимизировать ресурсы для Android.
|
||||
- завершить lifecycle/process-death и versioned save migration;
|
||||
- доказать performance budget и три полных playability regression прогона;
|
||||
- провести внешний playtest уровней 1–10 без объяснений разработчика;
|
||||
- закрыть оставшийся comprehension/balance gate.
|
||||
|
||||
Критерии завершения:
|
||||
|
||||
- все игровые состояния визуально различимы без чтения внутренней логики;
|
||||
- звук не является единственным источником обязательной информации;
|
||||
- проект сохраняет стабильную частоту кадров на целевых устройствах.
|
||||
- progress восстанавливается после Activity/process recreation и обновления приложения;
|
||||
- `goon-game-milestone-vslice` принят вместе с performance и human-playtest gates.
|
||||
|
||||
### Этап 6. Техническая стабилизация — P0 перед внешней альфой, 4–7 дней
|
||||
### Этап 6. Production content — P1, несколько итераций
|
||||
|
||||
Задачи:
|
||||
|
||||
- спроектировать и произвести четыре мира и 55–70 уровней;
|
||||
- расширить hazards, corpse states и weighted physical objects;
|
||||
- завершить character state machine, CorpseManager и event-driven PuzzleSystem;
|
||||
- добавить challenges, collectibles и production progression;
|
||||
- расширить модульные варианты персонажей без нарушения анимационных контрактов;
|
||||
- проводить каждый уровень через JSON validator, solution graph, bot и level DoD.
|
||||
|
||||
Критерии завершения:
|
||||
|
||||
- все production-уровни проходят content pipeline и имеют versioned bot trace;
|
||||
- новые mechanics сначала обучаются отдельно и только затем комбинируются;
|
||||
- content не содержит blocker-softlocks и обязательных невосстановимых объектов;
|
||||
- принят `goon-game-milestone-production`.
|
||||
|
||||
### Этап 7. Техническая стабилизация и release engineering — P0, 4–8 дней
|
||||
|
||||
Задачи:
|
||||
|
||||
@@ -148,6 +183,7 @@ Performance-оговорка: исторический критерий этап
|
||||
- проверить обновление приложения поверх предыдущей версии и сохранность прогресса;
|
||||
- подготовить release build, отдельный application ID для тестового канала и закрыто хранимый keystore;
|
||||
- сформировать APK для прямой установки и AAB для Google Play Internal Testing.
|
||||
- зафиксировать gameplay analytics contract и crash/ANR reporting без персональных данных.
|
||||
|
||||
Критерии завершения:
|
||||
|
||||
@@ -156,7 +192,7 @@ Performance-оговорка: исторический критерий этап
|
||||
- release APK/AAB подписан, устанавливается и запускается на чистом устройстве;
|
||||
- debug-инструменты не попадают в публичную конфигурацию без необходимости.
|
||||
|
||||
### Этап 7. Закрытая альфа — 1–2 итерации по 5–7 дней
|
||||
### Этап 8. Закрытая альфа — 1–2 итерации по 5–7 дней
|
||||
|
||||
Задачи:
|
||||
|
||||
@@ -173,6 +209,36 @@ Performance-оговорка: исторический критерий этап
|
||||
- отсутствуют открытые блокирующие дефекты;
|
||||
- все значимые дефекты имеют решение или явно принятое продуктовое решение.
|
||||
|
||||
### Этап 9. Beta — 1–3 стабилизационные итерации
|
||||
|
||||
Задачи:
|
||||
|
||||
- объявить feature/content freeze;
|
||||
- выполнить широкую device, upgrade, save-migration и localization QA matrix;
|
||||
- исправлять blocker/critical/major defects без добавления новых mechanics;
|
||||
- повторять production bots, analytics и ручные smoke-сценарии на каждом кандидате.
|
||||
|
||||
Критерии завершения:
|
||||
|
||||
- beta QA matrix зелёная;
|
||||
- нет blocker и critical progression defects;
|
||||
- content, format/physics versions и save migrations заморожены для RC.
|
||||
|
||||
### Этап 10. Release Candidate
|
||||
|
||||
Задачи:
|
||||
|
||||
- собрать финальные signed APK/AAB из воспроизводимого commit;
|
||||
- проверить store metadata, privacy, analytics и crash reporting;
|
||||
- выполнить финальный полный regression, чистую установку и upgrade path;
|
||||
- зафиксировать известные ограничения и release decision.
|
||||
|
||||
Критерии завершения:
|
||||
|
||||
- `goon-game-milestone-rc` принят;
|
||||
- нет blocker/critical defects, все уровни проходимы;
|
||||
- release signatures, artifacts, remote commit и сохранность прогресса подтверждены.
|
||||
|
||||
## 4. Обязательный набор проверок каждого APK
|
||||
|
||||
Перед передачей тестировщикам должны выполняться:
|
||||
@@ -203,6 +269,11 @@ preview. Боты публикуют versioned trace с идентификато
|
||||
регрессий; неизменность gameplay подтверждена полным Android regression.
|
||||
Контракт и evidence находятся в [`STAGE4_CONTENT_FORMAT.md`](STAGE4_CONTENT_FORMAT.md)
|
||||
и [`STAGE4_QA_REPORT.md`](STAGE4_QA_REPORT.md). Следующая инженерная итерация —
|
||||
этап 5, самостоятельный художественный стиль, анимации и звук.
|
||||
этап 5, полное завершение Vertical Slice: самостоятельный art/audio pass,
|
||||
lifecycle/save/performance gates и внешний playtest.
|
||||
|
||||
Полный registry этапов 0–10 и правила машинной привязки каждой Bead находятся в
|
||||
[`STAGE_REGISTRY.md`](STAGE_REGISTRY.md). Production-задача четырёх миров и
|
||||
55–70 уровней имеет primary Stage 6 и не остаётся вне нумерованного roadmap.
|
||||
|
||||
Параллельно внешний QA должен выполнить `goon-game-human-playtest`: по две ручные сессии каждого уровня без подсказок разработчика. До получения этого протокола milestone Vertical Slice нельзя называть принятым внешними тестировщиками.
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
# Stage registry Project Sacrifice
|
||||
|
||||
Этот документ задаёт единую нумерацию выполнения полного production plan.
|
||||
Доменные EPIC продолжают отвечать на вопрос «какая система меняется», а stage —
|
||||
«в какой последовательности и каким gate работа принимается».
|
||||
|
||||
## Контракт привязки
|
||||
|
||||
Каждая обычная Bead, feature, bug, milestone и EPIC обязана иметь:
|
||||
|
||||
- минимум один label `stage-N`;
|
||||
- ровно один label `primary-stage-N`;
|
||||
- metadata `primary_stage=N`, совпадающую с primary label.
|
||||
|
||||
Дополнительные `stage-N` допустимы для сквозной работы. Primary stage определяет,
|
||||
какой gate отвечает за закрытие незавершённой задачи. Поэтому исторически начатая
|
||||
работа может относиться к раннему stage, но иметь более поздний primary stage,
|
||||
если её оставшийся acceptance gate выполняется позже.
|
||||
|
||||
## Нумерация
|
||||
|
||||
| Stage | Название | Основной результат | Тип |
|
||||
|---:|---|---|---|
|
||||
| 0 | Prototype foundation | Устанавливаемый greybox prototype и базовые systems | AFK, завершён |
|
||||
| 1 | Playability automation | Боты уровней 1–10 и единый regression runner | AFK |
|
||||
| 2 | Level correctness and balance | Устранённые softlocks, чистый restart, solution graphs | AFK |
|
||||
| 3 | Mobile UX and accessibility | Controls, onboarding/results, RU/EN, accessibility | AFK |
|
||||
| 4 | Content architecture and tools | Versioned JSON, validator/exporter, bot traces | AFK |
|
||||
| 5 | Vertical Slice completion | Art/audio vertical slice, lifecycle/save/perf и внешний playtest | HITL gate |
|
||||
| 6 | Production content | 4 мира, 55–70 уровней, полный набор mechanics/challenges | Mixed |
|
||||
| 7 | Stabilization and release engineering | Device/performance matrix, analytics/crash, signed APK/AAB | AFK/HITL |
|
||||
| 8 | Closed Alpha | Проверка продукта внешней alpha-группой | HITL |
|
||||
| 9 | Beta | Feature freeze, широкая QA-матрица и исправления | HITL |
|
||||
| 10 | Release Candidate | Финальный release gate без blocker/critical defects | HITL |
|
||||
|
||||
## Незавершённые сквозные gates
|
||||
|
||||
- `goon-game-regression-10` имеет `stage-1`, но primary Stage 5: runner создан,
|
||||
однако критерий трёх полных прогонов быстрее пяти минут ещё не доказан.
|
||||
- `goon-game-level-balance` имеет `stage-2`, но primary Stage 5: инженерные
|
||||
исправления сделаны, а внешний comprehension/playtest gate остаётся открытым.
|
||||
- `goon-game-human-playtest` относится к Stage 5 и не может быть закрыт ботами.
|
||||
- `goon-game-content-worlds` имеет primary Stage 6 и начинается после принятия
|
||||
`goon-game-milestone-vslice` Stage 5.
|
||||
|
||||
## Проверка
|
||||
|
||||
После любого изменения Beads выполнить:
|
||||
|
||||
```sh
|
||||
./scripts/check-stage-assignments.sh
|
||||
bd dep cycles
|
||||
bd export --output .beads/issues.jsonl
|
||||
```
|
||||
|
||||
Stage audit должен завершаться с `unassigned=0` и `invalidPrimary=0`.
|
||||
|
||||
Snapshot на 19 августа 2026 года:
|
||||
|
||||
| Primary stage | Всего Beads | Незакрыто |
|
||||
|---:|---:|---:|
|
||||
| 0 | 12 | 0 |
|
||||
| 1 | 4 | 0 |
|
||||
| 2 | 5 | 0 |
|
||||
| 3 | 5 | 0 |
|
||||
| 4 | 4 | 0 |
|
||||
| 5 | 15 | 15 |
|
||||
| 6 | 18 | 18 |
|
||||
| 7 | 9 | 9 |
|
||||
| 8 | 1 | 1 |
|
||||
| 9 | 1 | 1 |
|
||||
| 10 | 4 | 4 |
|
||||
|
||||
Всего: 78; непривязанных: 0; задач с некорректным primary stage: 0.
|
||||
Reference in New Issue
Block a user