|
1 | | -;; SPDX-License-Identifier: AGPL-3.0-or-later |
2 | | -;; STATE.scm - Project state tracking for rsr-template-repo |
3 | | -;; Media-Type: application/vnd.state+scm |
| 1 | +;; SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | +;; STATE.scm - Current project state |
4 | 3 |
|
5 | | -(define-state rsr-template-repo |
6 | | - (metadata |
7 | | - (version "0.1.0") |
8 | | - (schema-version "1.0.0") |
9 | | - (created "2026-01-30") |
10 | | - (updated "2026-01-30") |
11 | | - (project "rsr-template-repo") |
12 | | - (repo "hyperpolymath/rsr-template-repo")) |
| 4 | +(define state |
| 5 | + '((metadata |
| 6 | + (version "0.1.0") |
| 7 | + (schema-version "1.0") |
| 8 | + (created "2026-02-05") |
| 9 | + (updated "2026-02-05") |
| 10 | + (project "stapeln") |
| 11 | + (repo "hyperpolymath/stapeln")) |
13 | 12 |
|
14 | | - (project-context |
15 | | - (name "rsr-template-repo") |
16 | | - (tagline "Hyperpolymath ecosystem project") |
17 | | - (tech-stack ())) |
| 13 | + (project-context |
| 14 | + (name "stapeln") |
| 15 | + (tagline "Visual drag-and-drop container stack designer for verified containers") |
| 16 | + (tech-stack |
| 17 | + ((frontend . "ReScript-TEA + cadre-tea-router + Deno") |
| 18 | + (backend . "Elixir (Phoenix) + Ephapax + AffineScript") |
| 19 | + (validation . "Idris2 proofs for stack correctness") |
| 20 | + (codegen . "Rust for compose.toml generation") |
| 21 | + (runtime-support . "Podman + Docker + nerdctl")))) |
18 | 22 |
|
19 | | - (current-position |
20 | | - (phase "initialization") |
21 | | - (overall-completion 5) |
22 | | - (components ()) |
23 | | - (working-features ())) |
| 23 | + (current-position |
| 24 | + (phase "Phase 2: Frontend Implementation In Progress") |
| 25 | + (overall-completion 35) |
| 26 | + (components |
| 27 | + ((frontend-ui . 45) ; Model, View, Update, CiscoView, Settings, LagoGreyImageDesigner complete |
| 28 | + (lago-grey-integration . 60) ; Visual designer integrated, import/export pending |
| 29 | + (drag-drop-canvas . 20) ; Architecture defined, not implemented |
| 30 | + (component-library . 15) ; Types defined in Model.res |
| 31 | + (backend-api . 10) ; GraphQL schema designed |
| 32 | + (stack-validator . 0) ; Pending miniKanren implementation |
| 33 | + (security-analysis . 40) ; Full spec + OWASP rules defined |
| 34 | + (firewall-config . 30) ; Full spec + ephemeral pinholes designed |
| 35 | + (database-integration . 35) ; VeriSimDB + A2ML + K9 specs complete |
| 36 | + (codegen-engine . 0) |
| 37 | + (runtime-adapters . 0) |
| 38 | + (documentation . 95))) ; Comprehensive docs + roadmap created |
| 39 | + (working-features |
| 40 | + ("Repository initialized from rsr-template-repo" |
| 41 | + "STATE.scm, ECOSYSTEM.scm, META.scm created" |
| 42 | + "Full ReScript-TEA architecture (Model, Msg, Update, View)" |
| 43 | + "Four-page UI design (Paragon, Cisco, Lago Grey, Settings)" |
| 44 | + "LagoGreyImageDesigner integrated as Page 4" |
| 45 | + "Interactive ice formation designer (Floes, Icebergs, Glaciers)" |
| 46 | + "Real-time size calculation and competitive comparison" |
| 47 | + "Dark theme UI with Lago Grey branding" |
| 48 | + "LagoGrey component type added to Model.res" |
| 49 | + "WCAG 2.3 AAA accessibility implementation" |
| 50 | + "GraphQL schema with a11y metadata" |
| 51 | + "Database integration spec (VeriSimDB, A2ML, K9-SVC)" |
| 52 | + "Security stack audit (47% compliance, identified gaps)" |
| 53 | + "Firewall config with OWASP ModSecurity + ephemeral pinholes" |
| 54 | + "miniKanren security reasoning engine design" |
| 55 | + "Game-like UI mockups for attack surface analyzer" |
| 56 | + "UX Manifesto and Container-Hater Test documents" |
| 57 | + "Deno-only setup (no npm/node) via SETUP.md" |
| 58 | + "Comprehensive ROADMAP.md for v1.0 path"))) |
24 | 59 |
|
25 | | - (route-to-mvp |
26 | | - (milestones |
27 | | - ((name "Initial Setup") |
28 | | - (status "in-progress") |
29 | | - (completion 50) |
30 | | - (items |
31 | | - ("Initialize repository structure" . done) |
32 | | - ("Add standard workflows" . done) |
33 | | - ("Define project scope" . todo) |
34 | | - ("Set up development environment" . todo))))) |
| 60 | + (route-to-mvp |
| 61 | + (milestones |
| 62 | + ((m1 "Design & Specifications" |
| 63 | + ((status . "complete") |
| 64 | + (completion . 100) |
| 65 | + (items |
| 66 | + ("✅ ReScript-TEA architecture (Model, Msg, Update, View)" |
| 67 | + "✅ Three-page UI design (Paragon, Cisco, Settings)" |
| 68 | + "✅ WCAG 2.3 AAA accessibility specs" |
| 69 | + "✅ GraphQL schema with a11y metadata" |
| 70 | + "✅ Deno-only setup documentation" |
| 71 | + "✅ Database integration spec (VeriSimDB, A2ML, K9)" |
| 72 | + "✅ Security reasoning engine design (miniKanren)" |
| 73 | + "✅ Firewall config with ephemeral pinholes" |
| 74 | + "✅ UX Manifesto and Container-Hater Test" |
| 75 | + "✅ Game-like UI mockups")))) |
| 76 | + (m2 "Frontend Implementation" |
| 77 | + ((status . "in-progress") |
| 78 | + (completion . 45) |
| 79 | + (items |
| 80 | + ("✅ Model.res - Type definitions and state" |
| 81 | + "✅ Msg.res - Message types for TEA" |
| 82 | + "✅ Update.res - State transition logic" |
| 83 | + "✅ View.res - Paragon-style vertical stack view" |
| 84 | + "✅ CiscoView.res - Network topology view" |
| 85 | + "✅ Settings.res - Preferences and defaults" |
| 86 | + "✅ LagoGreyImageDesigner.res - Base image designer component" |
| 87 | + "✅ LagoGreyImageDesigner.css - Dark theme styling" |
| 88 | + "✅ App.res - Four-page navigation with LagoGrey integration" |
| 89 | + "⚠️ Wire View.res and CiscoView.res to App.res (pending)" |
| 90 | + "⚠️ Fix componentTypeToString for LagoGrey (pending)" |
| 91 | + "⚠️ Router.res - cadre-tea-router integration (pending)" |
| 92 | + "⚠️ PortConfigPanel.res - Port configuration UI (pending)" |
| 93 | + "⚠️ SecurityInspector.res - Attack surface display (pending)" |
| 94 | + "⚠️ GapAnalysis.res - Sidebar warnings panel (pending)" |
| 95 | + "⚠️ SimulationMode.res - Packet animation (pending)" |
| 96 | + "⚠️ Auth.res - User authentication flow (pending)")))) |
| 97 | + (m2.5 "Lago Grey Integration" |
| 98 | + ((status . "in-progress") |
| 99 | + (completion . 60) |
| 100 | + (items |
| 101 | + ("✅ LagoGreyImageDesigner component created (921 lines)" |
| 102 | + "✅ Interactive ice formation catalog (Floes, Icebergs, Glaciers)" |
| 103 | + "✅ Component selection with real-time size tracking" |
| 104 | + "✅ Base image selector (Distroless, Alpine, Scratch)" |
| 105 | + "✅ Visual layer stacking on canvas" |
| 106 | + "✅ Competitive comparison (vs Alpine, target 17.5MB)" |
| 107 | + "✅ Security status indicators (PQ crypto, classical crypto)" |
| 108 | + "✅ Dark theme with Lago Grey branding" |
| 109 | + "✅ LagoGrey componentType added to Model.res" |
| 110 | + "✅ ECOSYSTEM.scm integration documented" |
| 111 | + "⚠️ Import/export for designs (critical, pending)" |
| 112 | + "⚠️ Image export (.tar.gz with manifest, pending)" |
| 113 | + "⚠️ Build pipeline (podman build integration, pending)" |
| 114 | + "⚠️ Triple crypto signing (Dilithium5 + Ed448 + SPHINCS+, pending)" |
| 115 | + "⚠️ Dockerfile generation from selections (pending)")))) |
| 116 | + (m3 "Security Reasoning Engine" |
| 117 | + ((status . "not-started") |
| 118 | + (completion . 0) |
| 119 | + (items |
| 120 | + ("miniKanren + Guile Scheme setup" |
| 121 | + "Core security relations (componento, exposed-porto, etc.)" |
| 122 | + "Security rules (SSH exposure, root user, unencrypted traffic)" |
| 123 | + "CVE feed sync script" |
| 124 | + "OWASP Top 10 rule generator" |
| 125 | + "CIS Benchmark rules" |
| 126 | + "Elixir backend integration (S-expression parser)" |
| 127 | + "Provenance chain generation")))) |
| 128 | + (m4 "Backend API (Elixir + Phoenix)" |
| 129 | + ((status . "not-started") |
| 130 | + (completion . 0) |
| 131 | + (items |
| 132 | + ("Phoenix server with GraphQL (Absinthe)" |
| 133 | + "EphemeralPinhole GenServer for firewall pinholes" |
| 134 | + "SecurityReasoner module (miniKanren interface)" |
| 135 | + "VeriSimDB integration" |
| 136 | + "A2ML parser for attested documentation" |
| 137 | + "K9-SVC validator for component configs" |
| 138 | + "PAM authentication for user-only access" |
| 139 | + "Audit log to VeriSimDB temporal modality" |
| 140 | + "WebSocket for real-time updates")))) |
| 141 | + (m5 "Firewall & Security" |
| 142 | + ((status . "not-started") |
| 143 | + (completion . 0) |
| 144 | + (items |
| 145 | + ("ModSecurity + OWASP CRS in Svalinn gateway" |
| 146 | + "firewalld default-deny rules" |
| 147 | + "Ephemeral pinhole implementation" |
| 148 | + "Port conflict detection" |
| 149 | + "Component security scanning (Grype CVE scanner)" |
| 150 | + "Attack surface analyzer" |
| 151 | + "Gap analysis engine")))) |
| 152 | + (m6 "Code Generation & Deployment" |
| 153 | + ((status . "not-started") |
| 154 | + (completion . 0) |
| 155 | + (items |
| 156 | + ("compose.toml generator (Rust)" |
| 157 | + "docker-compose.yml generator" |
| 158 | + "podman-compose.yml generator" |
| 159 | + "Validation against verified-container-spec" |
| 160 | + "Podman API client" |
| 161 | + "Docker API client" |
| 162 | + "Live deployment testing" |
| 163 | + "Simulation mode (pre-deployment dry-run)" |
| 164 | + "Rollback support"))))))) |
35 | 165 |
|
36 | | - (blockers-and-issues |
37 | | - (critical ()) |
38 | | - (high ()) |
39 | | - (medium ()) |
40 | | - (low ())) |
| 166 | + (blockers-and-issues |
| 167 | + (critical |
| 168 | + ("None currently - design phase complete")) |
| 169 | + (high |
| 170 | + ("cadre-tea-router availability (check JSR/npm or vendor)" |
| 171 | + "Guile Scheme + miniKanren installation/setup" |
| 172 | + "Elixir backend needs PAM library for system user auth" |
| 173 | + "VeriSimDB federated mode configuration")) |
| 174 | + (medium |
| 175 | + ("SVG vs Canvas rendering decision for Cisco view" |
| 176 | + "Component connection routing algorithm (orthogonal recommended)" |
| 177 | + "WebGL for large stacks (100+ containers) - future optimization" |
| 178 | + "Simulation mode packet animation performance")) |
| 179 | + (low |
| 180 | + ("Dark mode theme refinement" |
| 181 | + "Keyboard shortcuts for power users" |
| 182 | + "Braille display testing (WCAG AAA requirement)"))) |
41 | 183 |
|
42 | | - (critical-next-actions |
43 | | - (immediate |
44 | | - "Define project scope and objectives" |
45 | | - "Update README.adoc with project description") |
46 | | - (this-week |
47 | | - "Set up development environment" |
48 | | - "Create initial architecture design") |
49 | | - (this-month |
50 | | - "Implement core functionality" |
51 | | - "Add comprehensive tests")) |
52 | | - |
53 | | - (session-history ())) |
54 | | - |
55 | | -;; Helper functions |
56 | | -(define (get-completion-percentage state) |
57 | | - (current-position 'overall-completion state)) |
58 | | - |
59 | | -(define (get-blockers state severity) |
60 | | - (blockers-and-issues severity state)) |
61 | | - |
62 | | -(define (get-milestone state name) |
63 | | - (find (lambda (m) (equal? (car m) name)) |
64 | | - (route-to-mvp 'milestones state))) |
| 184 | + (critical-next-actions |
| 185 | + (immediate |
| 186 | + ("Fix App.res to wire up View.res and CiscoView.res (Phase 1)" |
| 187 | + "Add LagoGrey case to componentTypeToString function" |
| 188 | + "Test navigation between all four pages" |
| 189 | + "Implement design import/export (JSON schema, critical)" |
| 190 | + "Implement Lago Grey image export (.tar.gz with manifest)" |
| 191 | + "Build pipeline: Dockerfile generation from selections" |
| 192 | + "Integrate podman build with progress UI")) |
| 193 | + (this-week |
| 194 | + ("Complete import/export functionality (Phase 2, critical)" |
| 195 | + "Implement triple crypto signing (Dilithium5 + Ed448 + SPHINCS+)" |
| 196 | + "Create LagoGreyExport.res and LagoGreyImport.res modules" |
| 197 | + "Build accountability trace generation (.zpkg)" |
| 198 | + "Update SCM files (.machines_readable/6scm/)" |
| 199 | + "Update README.adoc with Lago Grey integration" |
| 200 | + "Test image build → export → import round-trip")) |
| 201 | + (this-month |
| 202 | + ("Implement PortConfigPanel.res with ephemeral toggle" |
| 203 | + "Add SecurityInspector.res component" |
| 204 | + "Build real-time security scoring display" |
| 205 | + "Create miniKanren proof-of-concept with 5 basic security rules" |
| 206 | + "Implement simulation mode (packet animation)" |
| 207 | + "Set up Phoenix backend with GraphQL" |
| 208 | + "User testing with container-hater (cyberwar officer!)")) |
| 209 | + (before-release |
| 210 | + ("Complete security reasoning engine (miniKanren)" |
| 211 | + "Implement ModSecurity + OWASP CRS in Svalinn" |
| 212 | + "Post-quantum crypto upgrades (full Dilithium5, Kyber-1024)" |
| 213 | + "HTTP/3 + QUIC migration" |
| 214 | + "Comprehensive security audit" |
| 215 | + "Performance optimization (handle 100+ container stacks)" |
| 216 | + "WCAG 2.3 AAA compliance verification" |
| 217 | + "Documentation for end users" |
| 218 | + "Deployment guide"))))) |
0 commit comments