docs(state): record 04-01 completion and advance to plan 02

Mark CLI-02 complete, log scaffolding registry and leaf-check
decisions, and move Phase 4 progress to 1/4 plans.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jakub Zych
2026-09-18 13:42:34 +02:00
parent 6ce67a5d5b
commit e7dba5c4fb
3 changed files with 20 additions and 16 deletions

View File

@@ -22,7 +22,7 @@ Requirements for v1 (the Płytarium port). Each maps to roadmap phases. "User" b
### Console and scaffolding (CLI) ### Console and scaffolding (CLI)
- [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 - [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 - [x] **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-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` - [ ] **CLI-04**: Plugins register recurring commands (daily or interval) that a scheduler runs in-process or via `summer schedule:run`
- [ ] **CLI-05**: Płytarium commands are ported: oauth-client (create, list without reprinting secrets, add redirect URIs, set scope ceiling), prune-notifications, reindex with drop-old-index flag - [ ] **CLI-05**: Płytarium commands are ported: oauth-client (create, list without reprinting secrets, add redirect URIs, set scope ceiling), prune-notifications, reindex with drop-old-index flag
@@ -164,7 +164,7 @@ Which phases cover which requirements. Updated during roadmap creation.
| KERN-08 | Phase 1 | Complete | | KERN-08 | Phase 1 | Complete |
| KERN-09 | Phase 1 | Complete | | KERN-09 | Phase 1 | Complete |
| CLI-01 | Phase 1 | Complete | | CLI-01 | Phase 1 | Complete |
| CLI-02 | Phase 4 | Pending | | CLI-02 | Phase 4 | Complete |
| CLI-03 | Phase 5 | Pending | | CLI-03 | Phase 5 | Pending |
| CLI-04 | Phase 11 | Pending | | CLI-04 | Phase 11 | Pending |
| CLI-05 | Phase 14 | Pending | | CLI-05 | Phase 14 | Pending |

View File

@@ -155,7 +155,7 @@ Plans:
**Wave 1** **Wave 1**
- [ ] 04-01-PLAN.md — Generate compiling plugin artifacts, registry and model import checks - [x] 04-01-PLAN.md — Generate compiling plugin artifacts, registry and model import checks
**Wave 2** *(blocked on Wave 1 completion)* **Wave 2** *(blocked on Wave 1 completion)*
@@ -367,7 +367,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
| 1. Framework kernel foundation | 4/4 | Complete | 2026-09-16 | | 1. Framework kernel foundation | 4/4 | Complete | 2026-09-16 |
| 2. API parity harness bootstrap | 5/5 | Complete | 2026-09-17 | | 2. API parity harness bootstrap | 5/5 | Complete | 2026-09-17 |
| 3. First vertical slice — genres end to end | 4/4 | Complete | 2026-09-17 | | 3. First vertical slice — genres end to end | 4/4 | Complete | 2026-09-17 |
| 4. CLI scaffolding, i18n and mail | 0/TBD | Not started | - | | 4. CLI scaffolding, i18n and mail | 1/4 | In Progress| |
| 5. Data layer full fidelity | 0/TBD | Not started | - | | 5. Data layer full fidelity | 0/TBD | Not started | - |
| 6. HTTP routing, auth groups and rate limiting | 0/TBD | Not started | - | | 6. HTTP routing, auth groups and rate limiting | 0/TBD | Not started | - |
| 7. User plugin and authentication | 0/TBD | Not started | - | | 7. User plugin and authentication | 0/TBD | Not started | - |

View File

@@ -3,14 +3,14 @@ gsd_state_version: 1.0
milestone: v1.0 milestone: v1.0
milestone_name: milestone milestone_name: milestone
status: executing status: executing
stopped_at: Phase 4 context gathered stopped_at: Completed 04-01-PLAN.md
last_updated: "2026-09-18T11:24:07.910Z" last_updated: "2026-09-18T11:42:23.658Z"
last_activity: 2026-09-18 -- Phase 4 planning complete last_activity: 2026-09-18
progress: progress:
total_phases: 15 total_phases: 15
completed_phases: 3 completed_phases: 3
total_plans: 17 total_plans: 17
completed_plans: 13 completed_plans: 14
percent: 20 percent: 20
--- ---
@@ -21,16 +21,16 @@ progress:
See: .planning/PROJECT.md (updated 2026-09-16) See: .planning/PROJECT.md (updated 2026-09-16)
**Core value:** An existing WinterCMS-shaped app can be ported plugin by plugin to a single Go binary without its frontend noticing: the PHP version's API contract is the acceptance test. **Core value:** An existing WinterCMS-shaped app can be ported plugin by plugin to a single Go binary without its frontend noticing: the PHP version's API contract is the acceptance test.
**Current focus:** Phase 4 — cli scaffolding, i18n and mail **Current focus:** Phase 04 — cli-scaffolding-i18n-and-mail
## Current Position ## Current Position
Phase: 4 Phase: 04 (cli-scaffolding-i18n-and-mail) — EXECUTING
Plan: Not started Plan: 2 of 4
Status: Ready to execute Status: Ready to execute
Last activity: 2026-09-18 -- Phase 4 planning complete Last activity: 2026-09-18
Progress: [██████████] 100% Progress: [████████░░] 82%
## Performance Metrics ## Performance Metrics
@@ -58,6 +58,7 @@ Progress: [██████████] 100%
| Phase 03 P03-02 | 5 min | 2 tasks | 8 files | | Phase 03 P03-02 | 5 min | 2 tasks | 8 files |
| Phase 03 P03-03 | 8 min | 2 tasks | 17 files | | Phase 03 P03-03 | 8 min | 2 tasks | 17 files |
| Phase 03 P03-04 | 15 min | 2 tasks | 15 files | | Phase 03 P03-04 | 15 min | 2 tasks | 15 files |
| Phase 04 P01 | 11 min | 3 tasks | 14 files |
## Accumulated Context ## Accumulated Context
@@ -101,6 +102,9 @@ Recent decisions affecting current work:
- [Phase 03]: Phase 3 gate inlines TestParitySynthetic and CLI record/replay; PHP --fresh-php stays the Phase 2 sign-off because four wishlist album_count routes currently fail on live PHP — check-phase2.sh --fresh-php reports 150/154 on wishlist album_count expected 1 vs live 2. Phase 3 did not change PHP, tide, or those fixtures, so the Phase 3 gate must not fail on that drift. - [Phase 03]: Phase 3 gate inlines TestParitySynthetic and CLI record/replay; PHP --fresh-php stays the Phase 2 sign-off because four wishlist album_count routes currently fail on live PHP — check-phase2.sh --fresh-php reports 150/154 on wishlist album_count expected 1 vs live 2. Phase 3 did not change PHP, tide, or those fixtures, so the Phase 3 gate must not fail on that drift.
- [Phase 03]: testcontainers-go v0.44.0 is the STACK-named test dependency for framework lagoon isolation tests, matching the app TestMain — DATA-01 isolation tests need a real ICU pl-PL Postgres. The app already used testcontainers; the framework module now pins the same STACK versions so lagoon tests do not share the app TestMain. - [Phase 03]: testcontainers-go v0.44.0 is the STACK-named test dependency for framework lagoon isolation tests, matching the app TestMain — DATA-01 isolation tests need a real ICU pl-PL Postgres. The app already used testcontainers; the framework module now pins the same STACK versions so lagoon tests do not share the app TestMain.
- [Phase 03]: High-severity T-03-01 through T-03-04 and T-03-06 are closed with failing-when-broken tests; token issuing remains test-only until Phase 7 — Roadmap required a security review of the JWT guard. 03-SECURITY-REVIEW.md maps each threat to a passing test; minting tokens through a production API is out of this slice. - [Phase 03]: High-severity T-03-01 through T-03-04 and T-03-06 are closed with failing-when-broken tests; token issuing remains test-only until Phase 7 — Roadmap required a security review of the JWT guard. 03-SECURITY-REVIEW.md maps each threat to a passing test; minting tokens through a production API is out of this slice.
- [Phase 04]: registry.gen.go is regenerated by scanning Code generated by summer make files, not by rewriting plugin.go — D-12: handwritten plugin.go stays byte-identical; existing plugins get a one-time accessor hint
- [Phase 04]: make:model table names are vendor_plugin_plural_snake with explicit gormigrate CREATE/DROP TABLE — D-13: timestamps on the model; --no-migration omits only the create-table file
- [Phase 04]: models sibling-import check runs in build.App before go build and reports plugin ID, file, and import — D-11: limited to classes/controllers/console/jobs/middleware/updates of the same plugin module
### Pending Todos ### Pending Todos
@@ -122,6 +126,6 @@ Items acknowledged and carried forward from previous milestone close:
## Session Continuity ## Session Continuity
Last session: 2026-09-18T00:14:26.005Z Last session: 2026-09-18T11:42:10.258Z
Stopped at: Phase 4 context gathered Stopped at: Completed 04-01-PLAN.md
Resume file: .planning/phases/04-cli-scaffolding-i18n-and-mail/04-CONTEXT.md Resume file: None