|
| 1 | +// SPDX-License-Identifier: AGPL-3.0-or-later |
| 2 | += Formatrix Ecosystem v1 Publish Roadmap |
| 3 | +:toc: left |
| 4 | +:toclevels: 3 |
| 5 | +:icons: font |
| 6 | +:source-highlighter: highlightjs |
| 7 | + |
| 8 | +== Overview |
| 9 | + |
| 10 | +This roadmap outlines the path to publishing v1 of the Formatrix documentation ecosystem, comprising four components: |
| 11 | + |
| 12 | +1. **Formatrix Docs** - Human document editor with multi-format tabs |
| 13 | +2. **Recon-Silly-Ation** - Document reconciliation engine (ReconForth VM) |
| 14 | +3. **Docubot** - AI document generation assistant |
| 15 | +4. **Docudactyl** - Orchestration and pipeline management |
| 16 | + |
| 17 | +== Current Status Summary |
| 18 | + |
| 19 | +[cols="1,3,1,1,1",options="header"] |
| 20 | +|=== |
| 21 | +|Component |Description |MUSTs |SHOULDs |COULDs |
| 22 | + |
| 23 | +|Formatrix Docs |
| 24 | +|Multi-format document editor |
| 25 | +|9/14 (64%) |
| 26 | +|6/12 (50%) |
| 27 | +|1/12 (8%) |
| 28 | + |
| 29 | +|Recon-Silly-Ation |
| 30 | +|ReconForth reconciliation engine |
| 31 | +|17/17 (100%) |
| 32 | +|2/12 (17%) |
| 33 | +|0/8 (0%) |
| 34 | + |
| 35 | +|Docubot |
| 36 | +|AI document assistant |
| 37 | +|0/10 (0%) |
| 38 | +|0/8 (0%) |
| 39 | +|0/6 (0%) |
| 40 | + |
| 41 | +|Docudactyl |
| 42 | +|Orchestration layer |
| 43 | +|0/10 (0%) |
| 44 | +|0/8 (0%) |
| 45 | +|0/6 (0%) |
| 46 | +|=== |
| 47 | + |
| 48 | +== v1 Minimum Viable Ecosystem |
| 49 | + |
| 50 | +For v1 publish, the following are **required**: |
| 51 | + |
| 52 | +=== Phase 1: Core Library Completion |
| 53 | + |
| 54 | +.Formatrix Docs Core |
| 55 | +* [x] Unified AST types |
| 56 | +* [x] All format handlers (MD, DJOT, ORG, RST, TYPST, ADOC, TXT) |
| 57 | +* [x] C FFI for Ada TUI |
| 58 | +* [x] ArangoDB document storage |
| 59 | +* [ ] Document event emission |
| 60 | +* [ ] File open/save operations |
| 61 | + |
| 62 | +.Recon-Silly-Ation Core |
| 63 | +* [x] ReconForth VM complete |
| 64 | +* [x] All core word sets |
| 65 | +* [x] WASM bindings |
| 66 | +* [ ] 7-stage pipeline implementation |
| 67 | +* [ ] CLI interface |
| 68 | + |
| 69 | +.Docubot Core |
| 70 | +* [ ] Module structure |
| 71 | +* [ ] LLM provider abstraction |
| 72 | +* [ ] Approval gate (MANDATORY) |
| 73 | +* [ ] Audit trail |
| 74 | +* [ ] Rate limiting |
| 75 | + |
| 76 | +.Docudactyl Core |
| 77 | +* [ ] Event bus |
| 78 | +* [ ] Pipeline executor |
| 79 | +* [ ] Scheduler |
| 80 | +* [ ] Health checks |
| 81 | + |
| 82 | +=== Phase 2: GUI/TUI Implementation |
| 83 | + |
| 84 | +.Formatrix GUI (Tauri 2.0 + ReScript) |
| 85 | +* [ ] Basic shell with format tabs |
| 86 | +* [ ] Editor component (CodeMirror 6) |
| 87 | +* [ ] File operations dialog |
| 88 | +* [ ] Status bar with git info |
| 89 | + |
| 90 | +.Formatrix TUI (Ada + ncurses) |
| 91 | +* [ ] Tab bar widget |
| 92 | +* [ ] Editor widget |
| 93 | +* [ ] Status bar |
| 94 | +* [ ] Basic file operations |
| 95 | + |
| 96 | +=== Phase 3: Integration Seams |
| 97 | + |
| 98 | +.Critical Seams for v1 |
| 99 | +* [x] SEAM-1B: Shared format detection |
| 100 | +* [x] SEAM-1C: AST interchange format |
| 101 | +* [x] SEAM-1D: Hash algorithm (SHA-256) |
| 102 | +* [x] SEAM-5A: Document collection schema |
| 103 | +* [x] SEAM-5B: Edge collection schema |
| 104 | +* [ ] SEAM-1A: Document event protocol |
| 105 | +* [ ] SEAM-2A: Generation request protocol |
| 106 | +* [ ] SEAM-3A: Pipeline trigger protocol |
| 107 | + |
| 108 | +=== Phase 4: Packaging & Distribution |
| 109 | + |
| 110 | +.Container & Package Requirements |
| 111 | +* [ ] Wolfi container image for all components |
| 112 | +* [ ] nerdctl-compose.yml for full stack |
| 113 | +* [ ] Guix channel with packages |
| 114 | +* [ ] Nix flake (fallback) |
| 115 | +* [ ] CI/CD pipelines |
| 116 | + |
| 117 | +.Documentation |
| 118 | +* [ ] README with quick start |
| 119 | +* [ ] Architecture documentation |
| 120 | +* [ ] API reference |
| 121 | +* [ ] User guide |
| 122 | + |
| 123 | +.Compliance |
| 124 | +* [x] SPDX headers on all source files |
| 125 | +* [x] RSR compliance (STATE.scm, ECOSYSTEM.scm, META.scm) |
| 126 | +* [ ] Security audit |
| 127 | +* [ ] License compliance verification |
| 128 | + |
| 129 | +== v1 Scope Decisions |
| 130 | + |
| 131 | +=== Included in v1 |
| 132 | + |
| 133 | +* Basic document editing with format tabs (7 formats) |
| 134 | +* Document storage in ArangoDB with graph links |
| 135 | +* ReconForth-based reconciliation with format detection |
| 136 | +* Basic orchestration for pipeline execution |
| 137 | +* TUI for terminal-based editing |
| 138 | +* Container deployment |
| 139 | + |
| 140 | +=== Deferred to v2 |
| 141 | + |
| 142 | +* Graph visualization (Obsidian-style) |
| 143 | +* OCR integration (Tesseract) |
| 144 | +* TTS/STT integration |
| 145 | +* Pandoc bridge for exotic formats |
| 146 | +* Collaborative editing |
| 147 | +* Mobile support |
| 148 | +* AI-powered features (Docubot) - may be v1.1 if core ready |
| 149 | + |
| 150 | +== Implementation Priority Order |
| 151 | + |
| 152 | +=== Immediate (v1-blocking) |
| 153 | + |
| 154 | +1. FD-M06: File open/save operations |
| 155 | +2. FD-M07: Tauri GUI shell |
| 156 | +3. FD-M09: Editor component |
| 157 | +4. DD-M02: Event bus |
| 158 | +5. DD-M05: Pipeline executor |
| 159 | + |
| 160 | +=== High Priority (v1-desired) |
| 161 | + |
| 162 | +1. FD-M11: Ada TUI |
| 163 | +2. RSA-S09: 7-stage pipeline |
| 164 | +3. RSA-S11: CLI interface |
| 165 | +4. DB-M01-M04: Docubot core (if time permits) |
| 166 | + |
| 167 | +=== Nice to Have (post-v1) |
| 168 | + |
| 169 | +1. FD-S04: Git status in status bar |
| 170 | +2. FD-S05: Spell checking |
| 171 | +3. Graph view features |
| 172 | +4. External tool integrations |
| 173 | + |
| 174 | +== Dependency Graph |
| 175 | + |
| 176 | +[source] |
| 177 | +---- |
| 178 | +formatrix-core |
| 179 | + ├── formatrix-gui (Tauri) |
| 180 | + │ └── ui/ (ReScript) |
| 181 | + ├── formatrix-tui (Ada) |
| 182 | + ├── formatrix-db |
| 183 | + │ └── arangodb |
| 184 | + └── formatrix-pipeline |
| 185 | + └── nickel-lang |
| 186 | +
|
| 187 | +recon-silly-ation |
| 188 | + ├── wasm (for GUI) |
| 189 | + └── formatrix-core (AST types) |
| 190 | +
|
| 191 | +docubot |
| 192 | + ├── LLM providers |
| 193 | + └── formatrix-core (doc types) |
| 194 | +
|
| 195 | +docudactyl |
| 196 | + ├── all components (orchestration) |
| 197 | + └── arangodb (state) |
| 198 | +---- |
| 199 | + |
| 200 | +== Estimated Effort by Component |
| 201 | + |
| 202 | +[cols="1,2,2,2",options="header"] |
| 203 | +|=== |
| 204 | +|Component |Remaining MUSTs |Remaining SHOULDs |Total Effort |
| 205 | + |
| 206 | +|Formatrix Docs |
| 207 | +|5 items (GUI/TUI focus) |
| 208 | +|6 items (GUI-dependent) |
| 209 | +|Large |
| 210 | + |
| 211 | +|Recon-Silly-Ation |
| 212 | +|0 items |
| 213 | +|10 items |
| 214 | +|Medium |
| 215 | + |
| 216 | +|Docubot |
| 217 | +|10 items |
| 218 | +|8 items |
| 219 | +|Large |
| 220 | + |
| 221 | +|Docudactyl |
| 222 | +|10 items |
| 223 | +|8 items |
| 224 | +|Large |
| 225 | +|=== |
| 226 | + |
| 227 | +== Milestones |
| 228 | + |
| 229 | +=== M1: Core Complete (Current) |
| 230 | +* [x] All format handlers implemented |
| 231 | +* [x] FFI exports for Ada TUI |
| 232 | +* [x] ArangoDB client functional |
| 233 | +* [x] ReconForth VM operational |
| 234 | + |
| 235 | +=== M2: Basic GUI Functional |
| 236 | +* [ ] Tauri shell running |
| 237 | +* [ ] Format tabs working |
| 238 | +* [ ] File open/save working |
| 239 | +* [ ] Editor with syntax highlighting |
| 240 | + |
| 241 | +=== M3: Basic TUI Functional |
| 242 | +* [ ] Ada TUI compiling |
| 243 | +* [ ] Tab switching works |
| 244 | +* [ ] Basic editing works |
| 245 | +* [ ] File operations work |
| 246 | + |
| 247 | +=== M4: Integration Complete |
| 248 | +* [ ] All seams verified |
| 249 | +* [ ] End-to-end workflow test |
| 250 | +* [ ] Event bus operational |
| 251 | + |
| 252 | +=== M5: Packaging Complete |
| 253 | +* [ ] Container images built |
| 254 | +* [ ] Compose file working |
| 255 | +* [ ] Guix packages built |
| 256 | +* [ ] Documentation complete |
| 257 | + |
| 258 | +=== M6: v1 Release |
| 259 | +* [ ] Security audit passed |
| 260 | +* [ ] License compliance verified |
| 261 | +* [ ] Release notes written |
| 262 | +* [ ] Packages published |
| 263 | + |
| 264 | +== Risk Assessment |
| 265 | + |
| 266 | +[cols="1,2,2,2",options="header"] |
| 267 | +|=== |
| 268 | +|Risk |Impact |Mitigation |Status |
| 269 | + |
| 270 | +|Tauri 2.0 stability |
| 271 | +|High |
| 272 | +|Test on multiple platforms |
| 273 | +|Monitor |
| 274 | + |
| 275 | +|Ada cross-compilation |
| 276 | +|Medium |
| 277 | +|Use GNAT containers |
| 278 | +|Planned |
| 279 | + |
| 280 | +|ArangoDB complexity |
| 281 | +|Low |
| 282 | +|Schema tested |
| 283 | +|Mitigated |
| 284 | + |
| 285 | +|LLM API changes |
| 286 | +|Medium |
| 287 | +|Abstract provider layer |
| 288 | +|Planned |
| 289 | + |
| 290 | +|ReScript ecosystem |
| 291 | +|Low |
| 292 | +|Fallback to JS if needed |
| 293 | +|Monitor |
| 294 | +|=== |
| 295 | + |
| 296 | +== Next Steps |
| 297 | + |
| 298 | +1. **Immediate**: Implement FD-M06 (file operations) in formatrix-core |
| 299 | +2. **This Week**: Set up Tauri shell with basic routing |
| 300 | +3. **This Month**: Get format tabs displaying content |
| 301 | +4. **Next Month**: TUI implementation parallel to GUI |
| 302 | + |
| 303 | +== Success Criteria for v1 |
| 304 | + |
| 305 | +* [ ] User can create, edit, and save documents |
| 306 | +* [ ] User can switch between 7 format views |
| 307 | +* [ ] Documents persist in ArangoDB |
| 308 | +* [ ] Basic reconciliation works |
| 309 | +* [ ] Container deployment functional |
| 310 | +* [ ] Documentation sufficient for onboarding |
0 commit comments