5a083238b2
- 04-02-SUMMARY.md created with full deviations, decisions, and dependency graph - STATE.md updated: position to plan 2/3, decisions, session continuity, metrics - ROADMAP.md updated: phase 4 progress 2/3 plans complete - REQUIREMENTS.md: LIVE-02 marked complete
5.0 KiB
5.0 KiB
Requirements: BBS-MD
Defined: 2026-02-28 Core Value: Users can connect via SSH and seamlessly browse a vault of linked markdown documents with retro BBS aesthetics
v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
Process Lifecycle
- LIFE-01: App installs panic hook that restores terminal state before printing error
- LIFE-02: App handles SIGHUP/SIGTERM for clean shutdown on SSH disconnect
- LIFE-03: App logs to file only, never writes to stderr/stdout after TUI init
- LIFE-04: App handles broken pipe without crashing
Markdown Rendering
- REND-01: User sees H1-H6 headers with visual hierarchy and styling
- REND-02: User sees bold, italic, and inline code rendered with terminal styling
- REND-03: User sees fenced code blocks with syntax highlighting
- REND-04: User sees ordered and unordered lists with proper indentation
- REND-05: User sees blockquotes with visual distinction
- REND-06: User sees horizontal rules as visual separators
- REND-07: User sees
[IMAGE: alt text]placeholders for images - REND-08: User sees GFM tables rendered with aligned columns
- REND-09: User sees box-drawing borders on content panels
- REND-10: User sees CGA-era retro color theme (cyan/magenta/green on dark)
Navigation
- NAV-01: User can follow
[[wiki-links]]to other vault documents - NAV-02: User can follow standard
[text](path.md)links to other documents - NAV-03: User can navigate back through history stack
- NAV-04: User can navigate forward after going back
- NAV-05: User can scroll content with j/k, arrows, PgUp/PgDn
- NAV-06: User lands on index.md as the entry point
- NAV-07: User sees graceful error page when a linked file is not found
- NAV-08: User sees keyboard hints in status bar
- NAV-09: App handles terminal resize without breaking layout
- NAV-10: User sees links highlighted inline and can Tab-cycle between them
- NAV-11: User sees breadcrumb / current location in status bar
BBS Aesthetic
- BBS-01: User sees ANSI art splash screen on index.md
- BBS-02: User sees "last updated" file mtime on pages
Live Content
- LIVE-01: App watches filesystem for changes and auto-refreshes current page
- LIVE-02: User can browse a vault-wide directory listing
Configuration
- CONF-01: App reads bbs.toml for vault path and theme configuration
Shell Integration
- SHEL-01: App exits cleanly with q or Ctrl+C, restoring terminal state
- SHEL-02: App handles being launched as a login shell gracefully
v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
Search
- SRCH-01: User can search across vault content
- SRCH-02: User sees search results with context snippets
Advanced Rendering
- ADVR-01: User sees Mermaid/PlantUML diagrams rendered as ASCII art
History
- HIST-01: User can view full navigation history overlay
Interaction
- INTR-01: User can click links with mouse in supported terminals
Out of Scope
| Feature | Reason |
|---|---|
| Embedded SSH/telnet server | App is a login shell — SSH daemon handles connections |
| Write/edit capabilities | Read-only viewer, hard guarantee |
| User authentication/identity | SSH daemon handles auth |
| Mobile or web frontend | Terminal only |
| Image rendering (sixel/kitty) | Standard terminals can't render images |
| Async runtime (tokio) | No async I/O needed — synchronous event loop is sufficient |
Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|---|---|---|
| LIFE-01 | Phase 1 | Complete |
| LIFE-02 | Phase 1 | Complete |
| LIFE-03 | Phase 1 | Complete |
| LIFE-04 | Phase 1 | Complete |
| CONF-01 | Phase 1 | Complete (01-01) |
| SHEL-01 | Phase 1 | Complete |
| SHEL-02 | Phase 1 | Complete (01-01) |
| REND-01 | Phase 2 | Pending |
| REND-02 | Phase 2 | Pending |
| REND-03 | Phase 2 | Complete |
| REND-04 | Phase 2 | Pending |
| REND-05 | Phase 2 | Pending |
| REND-06 | Phase 2 | Pending |
| REND-07 | Phase 2 | Pending |
| REND-08 | Phase 2 | Pending |
| REND-09 | Phase 2 | Pending |
| REND-10 | Phase 2 | Complete |
| NAV-05 | Phase 2 | Complete |
| NAV-06 | Phase 2 | Complete |
| NAV-07 | Phase 2 | Complete |
| NAV-08 | Phase 2 | Complete |
| NAV-09 | Phase 2 | Complete |
| NAV-01 | Phase 3 | Complete |
| NAV-02 | Phase 3 | Complete |
| NAV-03 | Phase 3 | Complete |
| NAV-04 | Phase 3 | Complete |
| NAV-10 | Phase 3 | Complete |
| NAV-11 | Phase 3 | Complete |
| BBS-01 | Phase 4 | Pending |
| BBS-02 | Phase 4 | Pending |
| LIVE-01 | Phase 4 | Pending |
| LIVE-02 | Phase 4 | Complete |
Coverage:
- v1 requirements: 32 total
- Mapped to phases: 32
- Unmapped: 0
Requirements defined: 2026-02-28 Last updated: 2026-02-28 after 01-01 execution (CONF-01, SHEL-02 complete)