docs(phase-01): complete phase execution

This commit is contained in:
Jakub Zych
2026-09-16 14:46:25 +02:00
parent 7bb1b3a76d
commit 3ad9904fe8
4 changed files with 49 additions and 44 deletions

View File

@@ -9,19 +9,19 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
### Kernel and plugins (KERN)
- [ ] **KERN-01**: Application boots from layered YAML config via koanf (base files, env overlay directory, per-plugin namespace, environment variables) with dot-path access and typed section loading
- [ ] **KERN-02**: A plugin implements one required interface (ID, Requires, Register, Boot); Register runs for all plugins before any Boot, and order follows a topological sort of Requires
- [ ] **KERN-03**: Plugins opt into capabilities through small optional interfaces (models, migrations, routes, middleware, commands, jobs, listeners, admin controllers, navigation, permissions, schedule, mail templates, config, lang) discovered by type assertion
- [ ] **KERN-04**: Plugins are Go modules in a go.work workspace that self-register in init(); `summer build` regenerates the blank-import list and rebuilds the binary; `summer plugin:add` wires a new module in
- [ ] **KERN-05**: A plugin can check at boot whether an optional plugin is registered and skip its integration without a hard import (replaces PHP class_exists guards)
- [ ] **KERN-06**: A typed event bus offers three primitives: fire-and-forget, fire-and-collect (listener return values merged into one payload), fire-until-handled; plugins listen on other plugins' events
- [ ] **KERN-07**: Per-request state (user, organization, active collection, locale) travels in context.Context; no package-level globals hold request state
- [ ] **KERN-08**: A service registry (backpack) lets a plugin publish a service (job manager, authorizer registry, credential resolver) that other plugins resolve by interface
- [ ] **KERN-09**: A dev watch loop rebuilds and restarts the binary on source change
- [x] **KERN-01**: Application boots from layered YAML config via koanf (base files, env overlay directory, per-plugin namespace, environment variables) with dot-path access and typed section loading
- [x] **KERN-02**: A plugin implements one required interface (ID, Requires, Register, Boot); Register runs for all plugins before any Boot, and order follows a topological sort of Requires
- [x] **KERN-03**: Plugins opt into capabilities through small optional interfaces (models, migrations, routes, middleware, commands, jobs, listeners, admin controllers, navigation, permissions, schedule, mail templates, config, lang) discovered by type assertion
- [x] **KERN-04**: Plugins are Go modules in a go.work workspace that self-register in init(); `summer build` regenerates the blank-import list and rebuilds the binary; `summer plugin:add` wires a new module in
- [x] **KERN-05**: A plugin can check at boot whether an optional plugin is registered and skip its integration without a hard import (replaces PHP class_exists guards)
- [x] **KERN-06**: A typed event bus offers three primitives: fire-and-forget, fire-and-collect (listener return values merged into one payload), fire-until-handled; plugins listen on other plugins' events
- [x] **KERN-07**: Per-request state (user, organization, active collection, locale) travels in context.Context; no package-level globals hold request state
- [x] **KERN-08**: A service registry (backpack) lets a plugin publish a service (job manager, authorizer registry, credential resolver) that other plugins resolve by interface
- [x] **KERN-09**: A dev watch loop rebuilds and restarts the binary on source change
### Console and scaffolding (CLI)
- [ ] **CLI-01**: The `summer` binary (cobra) discovers commands registered by plugins and offers rich output (spinner, progress bar, table, prompts) with non-TTY degradation, following the summer-bonfire design
- [x] **CLI-01**: The `summer` binary (cobra) discovers commands registered by plugins and offers rich output (spinner, progress bar, table, prompts) with non-TTY degradation, following the summer-bonfire design
- [ ] **CLI-02**: Scaffolding commands generate a plugin, model, migration, command, job and admin controller with stubs that compile
- [ ] **CLI-03**: Migration commands run up, status, and roll back the last migration of a named plugin
- [ ] **CLI-04**: Plugins register recurring commands (daily or interval) that a scheduler runs in-process or via `summer schedule:run`
@@ -154,16 +154,16 @@ Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|-------------|-------|--------|
| KERN-01 | Phase 1 | Pending |
| KERN-02 | Phase 1 | Pending |
| KERN-03 | Phase 1 | Pending |
| KERN-04 | Phase 1 | Pending |
| KERN-05 | Phase 1 | Pending |
| KERN-06 | Phase 1 | Pending |
| KERN-07 | Phase 1 | Pending |
| KERN-08 | Phase 1 | Pending |
| KERN-09 | Phase 1 | Pending |
| CLI-01 | Phase 1 | Pending |
| KERN-01 | Phase 1 | Complete |
| KERN-02 | Phase 1 | Complete |
| KERN-03 | Phase 1 | Complete |
| KERN-04 | Phase 1 | Complete |
| KERN-05 | Phase 1 | Complete |
| KERN-06 | Phase 1 | Complete |
| KERN-07 | Phase 1 | Complete |
| KERN-08 | Phase 1 | Complete |
| KERN-09 | Phase 1 | Complete |
| CLI-01 | Phase 1 | Complete |
| CLI-02 | Phase 4 | Pending |
| CLI-03 | Phase 5 | Pending |
| CLI-04 | Phase 11 | Pending |