docs(phase-4): evolve PROJECT.md after phase completion

This commit is contained in:
Jakub Zych
2026-09-18 14:23:56 +02:00
parent d08675aaff
commit e5f90c57c5

View File

@@ -19,7 +19,7 @@ Validated in Phase 1: Framework kernel foundation
- [x] A single `summer` binary boots an application from layered YAML config via koanf (base + env overlays + per-plugin namespaces + environment variables), the layering design carried over from summer-compass (HOCON syntax itself is not used: no maintained Go parser exists)
- [x] Plugins are Go modules registered at build time through a generated import list; `summer make:plugin` scaffolds one and `summer build` rebuilds the binary; a dev watch loop rebuilds on change
- [x] A typed in-process event bus lets plugins subscribe to each other's events
- [x] Console command framework with registration, dispatch and rich output (spinners, progress, tables, prompts), the design carried over from summer-bonfire; `summer make:plugin` / `plugin:add` shipped in Phase 1 (model, controller, migration, command, job scaffolds remain for Phase 4)
- [x] Console command framework with registration, dispatch and rich output (spinners, progress, tables, prompts), the design carried over from summer-bonfire; `summer make:plugin` / `plugin:add` shipped in Phase 1; model, migration, command, job, and admin-controller scaffolds shipped in Phase 4
Validated in Phase 2: API parity harness bootstrap
@@ -33,13 +33,17 @@ Validated in Phase 3: First vertical slice — genres end to end
- [x] Plugins register named middleware and `net/http` ServeMux route groups with typed integer params; JWT-guarded `GET /_fonoteka/api/v1/genres` returns seeded Genre rows from Postgres
- [x] That genres route passes the Phase 2 PHP fixture replay: corpus 154 recorded, 1 passing, 153 pending (pending never counts as a Go pass); `scripts/check-phase3.sh` is the sign-off gate
Validated in Phase 4: CLI scaffolding, i18n and mail
- [x] Scaffolding commands `make:plugin`, `make:model`, `make:migration`, `make:command`, `make:job`, and `make:admin-controller` emit compiling, vet-clean Winter-shaped stubs wired through `registry.gen.go`
- [x] i18n with CLDR plurals and namespaced keys (`vendor.plugin::group.key`), pl and en, loaded from per-plugin per-locale YAML, the design carried over from summer-phrasebook
- [x] Plugins register mail templates and layouts by dotted name with the per-locale suffix convention; html/template + Goldmark render through memory, log, and SMTP (go-mail) drivers; `scripts/check-phase4.sh` is the sign-off gate
### Active
Framework kernel
- [ ] Plugins declare models, migrations, routes, console commands, jobs, event listeners, admin controllers and navigation through one plugin descriptor, and can extend other plugins' models through ordinary Go interfaces and events
- [ ] Scaffolding commands for model, controller, migration, command, job
- [ ] i18n with CLDR plurals and namespaced keys (`vendor.plugin::group.key`), pl and en, the design carried over from summer-phrasebook
- [ ] YAML `rules:` validation mapped onto go-playground/validator with translated messages
Data layer
@@ -160,4 +164,4 @@ This document evolves at phase transitions and milestone boundaries.
4. Update Context with current state
---
*Last updated: 2026-09-17 after Phase 3 completion*
*Last updated: 2026-09-18 after Phase 4 completion*