Add implementation plan and phase progress tracker
12-phase plan derived from the spec, plus a durable progress tracker (model-per-phase, resume-after-reset protocol, commit conventions). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
# Прогресс реализации SelfPost
|
||||
|
||||
Живой трекер фаз. **Переживает `/clear`** — читается первым при возобновлении работы.
|
||||
План фаз: [implementation-plan.md](implementation-plan.md). ТЗ: [specification.md](specification.md).
|
||||
|
||||
## Как возобновить после сброса контекста
|
||||
|
||||
1. Прочитать этот файл (текущая фаза, статус, что сделано, что дальше).
|
||||
2. Прочитать соответствующую фазу в `implementation-plan.md`.
|
||||
3. При необходимости — детали в `specification.md`.
|
||||
4. Продолжить с пункта «Следующий шаг».
|
||||
|
||||
## Рекомендуемая модель по фазам
|
||||
|
||||
| Фаза | Модель | Почему |
|
||||
|---|---|---|
|
||||
| 0 — каркас + спайк milter | **Opus** | архитектура + главный технический риск (7.3) |
|
||||
| 1 — Docker/supervisord/обёртка | **Opus** | тонкая логика холодного старта сокетов |
|
||||
| 2 — SQLite/setup-link/auth | **Opus** | безопасность 7.6 (крипто-токен, сессии, bcrypt) |
|
||||
| 3 — домены + OpenDKIM | **Opus** | генерация конфигов + exec-safety (7.6.3–4) |
|
||||
| 4 — приложения + SASL + sender_login_maps | **Opus** | риск open relay / привязки отправителя |
|
||||
| 5 — полный Postfix | **Opus** | самый чувствительный тракт доставки |
|
||||
| 6 — journal-milter | **Opus** | наивысший риск (баг ломает релей) |
|
||||
| 7 — UI мониторинга | **Sonnet** | шаблоны/CRUD, рутинно |
|
||||
| 8 — rate limit L2 | **Opus** | логика лимитов в milter |
|
||||
| 9 — бэкап/restore/экспорт | **Opus** | целостность данных, версионирование |
|
||||
| 10 — деплой + docs | **Sonnet** | compose-файлы и документация |
|
||||
| 11 — security-проход | **Opus** | аудит соответствия 7.6 |
|
||||
|
||||
Правило: безопасность / инфра / риск-критичное → **Opus**; UI / документация / бойлерплейт → **Sonnet**; тривиальная механика → **Haiku**.
|
||||
|
||||
## Коммиты
|
||||
|
||||
Коммит на **каждом осмысленном шаге** (не каждое сохранение файла, но и не только конец фазы): рабочий под-функционал, зелёная сборка, конец фазы. Минимум — один коммит на закрытую фазу + промежуточные на связные под-шаги. Ветка `main` (если пользователь не попросит отдельную). Push/PR — только по явной команде. Сообщение коммита завершается трейлером `Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>`.
|
||||
|
||||
## Протокол закрытия фазы
|
||||
|
||||
Перед `/clear` в конце каждой фазы Claude:
|
||||
1. Обновляет этот файл: статус фазы → ✅, заполняет «Сделано» и «Следующий шаг».
|
||||
2. Проверяет критерии «Готово, когда…» из плана.
|
||||
3. Пишет одну строку в журнал ниже.
|
||||
4. Делает финальный коммит фазы.
|
||||
5. Явно говорит: «Фаза N закрыта — можно `/clear`, следующая фаза N+1 на модели X».
|
||||
|
||||
---
|
||||
|
||||
## Текущее состояние
|
||||
|
||||
- **Текущая фаза:** 0 (ещё не начата)
|
||||
- **Модель:** Opus
|
||||
- **Статус:** план и решения утверждены; инфраструктура workflow настроена
|
||||
- **Следующий шаг:** начать Фазу 0 — `go mod init codeberg.org/mix/selfpost`, структура каталогов, `LICENSE` (AGPL-3.0), скелет README, сборка с ldflags-версией; затем спайк go-milter на `selfpost.mixfed.ru`.
|
||||
|
||||
## Утверждённые решения
|
||||
|
||||
- Module path: `codeberg.org/mix/selfpost`
|
||||
- SQLite: `modernc.org/sqlite` (чистый Go, без cgo)
|
||||
- milter: `github.com/emersion/go-milter` (проверить совместимость в Фазе 0)
|
||||
- Структура: стандартная Go-раскладка (`cmd/`, `internal/`)
|
||||
- Front-end: `html/template` + вендоренный HTMX
|
||||
- Коммиты — только по явной команде пользователя (ТЗ 12.1)
|
||||
|
||||
## Журнал фаз
|
||||
|
||||
_(пока пусто — заполняется по мере закрытия фаз)_
|
||||
Reference in New Issue
Block a user