From 318bdf84ac53baa5b4d0a9551ff6320d23edc6fe Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Wed, 4 Feb 2026 13:04:19 +0100 Subject: [PATCH] docs: define v1 requirements 38 requirements across 7 categories: - Core Framework (9) - Admin Backend (7) - User & Auth (4) - Content Management (9) - Core Plugins (8) - Differentiators (2) - Infrastructure (4) Deferred to v2: API/headless, additional plugins, advanced features --- .planning/REQUIREMENTS.md | 126 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 .planning/REQUIREMENTS.md diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 0000000..c3e2d30 --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -0,0 +1,126 @@ +# Requirements: SummerCMS + +**Defined:** 2025-02-04 +**Core Value:** A CMF that enables rapid application development with the flexibility to support any use case, delivered with the performance and horizontal scaling that PHP cannot provide. + +## v1 Requirements + +Requirements for initial release. Each maps to roadmap phases. + +### Core Framework + +- [ ] **CORE-01**: Plugin system with discovery, lifecycle management, and dependency resolution +- [ ] **CORE-02**: Plugin extension API allowing plugins to extend each other (type-safe) +- [ ] **CORE-03**: Component system with reusable UI components +- [ ] **CORE-04**: Component HTMX handlers for data-attributes style interactions +- [ ] **CORE-05**: Theme engine with layouts, partials, and asset management +- [ ] **CORE-06**: Theme Vue integration (themes can declare SPA/hybrid/static mode) +- [ ] **CORE-07**: CLI scaffolding command to create new plugins +- [ ] **CORE-08**: CLI scaffolding command to create new themes +- [ ] **CORE-09**: CLI scaffolding command to create components + +### Admin Backend + +- [ ] **ADMIN-01**: YAML-driven form generation (fields.yaml) +- [ ] **ADMIN-02**: Form field widgets (text, textarea, dropdown, checkbox, etc.) +- [ ] **ADMIN-03**: YAML-driven list/table views (columns.yaml) +- [ ] **ADMIN-04**: List column types and filters +- [ ] **ADMIN-05**: Customizable admin dashboard +- [ ] **ADMIN-06**: Dashboard widgets system +- [ ] **ADMIN-07**: Plugin settings pages + +### User & Authentication + +- [ ] **AUTH-01**: Backend user accounts with login/logout +- [ ] **AUTH-02**: Backend user password reset +- [ ] **AUTH-03**: RBAC permissions system (roles and permissions) +- [ ] **AUTH-04**: Permission checking in controllers and views + +### Content Management + +- [ ] **CONT-01**: CMS pages with URL routing +- [ ] **CONT-02**: CMS page layouts with placeholders +- [ ] **CONT-03**: Component embedding in CMS pages +- [ ] **CONT-04**: Media library file uploads +- [ ] **CONT-05**: Media library image management (resize, crop) +- [ ] **CONT-06**: Content draft/published states +- [ ] **CONT-07**: Content revision history +- [ ] **CONT-08**: Navigation menu management +- [ ] **CONT-09**: Menu item types (URL, page, plugin) + +### Core Plugins + +- [ ] **PLUG-01**: User plugin - frontend user registration +- [ ] **PLUG-02**: User plugin - frontend user login/logout +- [ ] **PLUG-03**: User plugin - user profiles +- [ ] **PLUG-04**: User plugin - password reset +- [ ] **PLUG-05**: Blog plugin - posts with WYSIWYG editor +- [ ] **PLUG-06**: Blog plugin - categories +- [ ] **PLUG-07**: Blog plugin - tags +- [ ] **PLUG-08**: Blog plugin - post listing components + +### Differentiators + +- [ ] **DIFF-01**: Type-safe plugin API with compile-time error detection +- [ ] **DIFF-02**: Hot reload development mode (fast iteration without JVM restart) + +### Database & Infrastructure + +- [ ] **INFRA-01**: PostgreSQL database integration with Quill +- [ ] **INFRA-02**: Database migrations system +- [ ] **INFRA-03**: Model/Repository pattern for data access +- [ ] **INFRA-04**: Pulumi deployment configuration + +## v2 Requirements + +Deferred to future release. Tracked but not in current roadmap. + +### API & Headless + +- **API-01**: REST API for content access +- **API-02**: GraphQL API endpoint +- **API-03**: JWT token authentication for API +- **API-04**: API documentation generation + +### Additional Plugins + +- **PLUG-09**: Pages plugin for static content pages +- **PLUG-10**: Translation plugin for multilingual content + +### Advanced Features + +- **ADV-01**: Multisite support +- **ADV-02**: Content workflows (approval chains) +- **ADV-03**: Scheduled publishing +- **ADV-04**: Content import/export + +## Out of Scope + +Explicitly excluded. Documented to prevent scope creep. + +| Feature | Reason | +|---------|--------| +| Multi-database support | PostgreSQL primary focus, others can come post-v1 | +| Snowboard/Alpine.js patterns | Clean break from WinterCMS frontend mess | +| PHP compatibility layer | This is a rewrite, not a port | +| Visual page builders | Anti-feature - leads to unmaintainable sites | +| Database-stored code | Anti-feature - code belongs in files | +| WordPress-style hooks everywhere | Anti-feature - type-safe events instead | +| Kitchen-sink core | Keep core minimal, features in plugins | + +## Traceability + +Which phases cover which requirements. Updated during roadmap creation. + +| Requirement | Phase | Status | +|-------------|-------|--------| +| (To be filled by roadmap) | | | + +**Coverage:** +- v1 requirements: 38 total +- Mapped to phases: 0 +- Unmapped: 38 ⚠️ + +--- +*Requirements defined: 2025-02-04* +*Last updated: 2025-02-04 after initial definition*