# Syntaxis A comprehensive Rust-based system for managing the complete lifecycle of software projects. ## Overview **Syntaxis** is a unified tool for orchestrating all aspects of project development, from initial creation through publication, maintenance, and archival. It provides: - **Phase Management**: Move projects through creation → devel → update → review → status → publish → archive - **Tool Orchestration**: Enable/disable tools (tracking, docs, provisioning, etc.) per phase - **Template Engine**: Auto-generate project structures from templates with variables - **Checklist System**: Track progress with customizable checklists per phase - **Configuration-Driven**: TOML-based configuration for project settings - **Multi-Language Support**: Works with Rust, NuShell, and other languages - **Integration-Ready**: Integrates with existing tools (doc-syntaxis, tracking-manager, provisioning) - **Dual Interfaces**: Terminal UI (TUI) for power users and Web Dashboard for teams - **Advanced Task Management**: Priority levels, task types, flexible sorting, and statistics (Phase 12 ✅) ## Project Status **Phase 12: Task Management & Feature Parity** ✅ COMPLETE - Added task priority levels (Critical, High, Medium, Low) - Added task type classifications (Feature, BugFix, Documentation, Testing, Deployment, Maintenance) - Extended sort options from 4 to 6 (added priority-based sorting) - Added statistics calculation and visualization with progress bar - Achieved feature parity between TUI and Dashboard - 64+ tests passing (52 TUI + 12 Dashboard) - Full backward compatibility with older API versions - Production-ready implementation **Previous Phases** ✅ COMPLETE - Phase 0: Foundation - Workspace structure, core types - Phase 1-11: Core library, CLI, API, TUI development ## Architecture ``` syntaxis/ ├── crates/ │ ├── syntaxis-core/ # Core library (Phase, Tool, Checklist managers) │ ├── syntaxis-cli/ # CLI tool with clap │ ├── syntaxis-api/ # REST API server (axum) │ ├── syntaxis-tui/ # TUI dashboard with ratatui │ ├── syntaxis-dashboard/ # Web dashboard with React/Vue │ └── vapora-project-lifecycle/ # VAPORA adapter ├── templates/ # Project templates ├── schemas/ # Validation schemas ├── docs/ # Documentation └── justfiles/ # Modular recipes ``` ## Interfaces ### Terminal User Interface (TUI) **For command-line power users and remote SSH sessions** - Built with **ratatui** and **crossterm** - Vim-style keyboard navigation (hjkl keys) - Real-time task management with 6 sort options - Statistics display with progress visualization - Minimal resource usage, works over SSH - Full feature parity with Dashboard (Phase 12 ✅) **Getting Started:** ```bash # Start the REST API server cargo run -p syntaxis-api # In another terminal, start the TUI cargo run -p syntaxis-tui ``` ### Web Dashboard **For team collaboration and visual project overview** - Modern responsive web interface - Mouse and keyboard support - Advanced filtering and analysis - Per-priority/type statistics - Mobile-friendly design - Integration-ready REST API **Getting Started:** ```bash # Start the REST API server (same as TUI) cargo run -p syntaxis-api # Dashboard accessible at http://localhost:3000 ``` ### Comparison & Feature Parity See **[FEATURES.md](./FEATURES.md)** for complete feature comparison between TUI and Dashboard, including: - Task sorting options (6 variants) - Statistics calculations - Priority levels and task types - Filtering capabilities - User interface differences ## Quick Start ### Build ```bash cd /Users/Akasha/Development/syntaxis cargo build --release ``` ### Run Tests ```bash cargo test --workspace --lib ``` ### Run CLI ```bash cargo run -p syntaxis-cli -- --help ``` ### Check ```bash cargo check --workspace ``` ## Implementation Timeline | Phase | Duration | Status | Deliverable | |-------|----------|--------|-------------| | 0 | Week 1 | ✅ DONE | Foundation setup | | 1-11 | Weeks 2-12 | ✅ DONE | Core library, CLI, API, TUI/Dashboard | | 12 | Week 13 | ✅ DONE | Task Management & Feature Parity | | 13+ | TBD | ⏳ NEXT | Advanced features, integrations, v1.0.0 release | ## Features Overview ### Phase Management - Automatic phase transitions with validation - Phase history tracking - Required checklist completion before transition - Allowed transition configuration ### Tool Management - Enable/disable tools per project - Phase-specific tool activation - Tool dependency validation - Built-in tool registry (tracking, docs, provisioning, dev-system, presentation) ### Task Management (Phase 12 ✨) - **Priority Levels**: Critical, High, Medium (default), Low - **Task Types**: Feature, BugFix, Documentation, Testing, Deployment, Maintenance - **Flexible Sorting**: 6 sort options (newest, oldest, priority-based, completion-based) - **Real-time Statistics**: Total, completed, pending counts with percentage and progress bar - **Advanced Filtering**: Filter by completion status, search by description - **Dual Interfaces**: Both TUI and Web Dashboard with feature parity ### Checklist System - Create checklists per phase - Mark items as complete - Track by priority and type - Export to Markdown - Track completion percentage - Add custom items ### Configuration - TOML-based configuration - Project metadata - Tool settings - Template variables - Phase transitions ## Configuration This tool searches for configuration in this order (uses first found): 1. **`.project/lifecycle.toml`** - If using Tools in your project 2. **`.vapora/lifecycle.toml`** - If VAPORA project (automatically used if `.project/` doesn't exist) **The tool uses the first existing location. You don't need all directories.** ### Configuration Examples #### Scenario 1: VAPORA project (no .project/) ``` your-project/ └── .vapora/ └── lifecycle.toml ← Tool finds and uses this automatically ``` #### Scenario 2: Using Tools ``` your-project/ ├── .project/ │ └── lifecycle.toml ← Tool uses this (priority) └── .vapora/ └── lifecycle.toml ← Tool ignores (has .project/) ``` ### Configuration Template Create in one of the locations above with syntaxis settings. ## Code Quality - ✅ **No unsafe code** (forbid unsafe) - ✅ **Zero unwrap()** → Result/Option + `?` - ✅ **Comprehensive docs** (rustdoc) - ✅ **15+ unit tests** with good coverage - ✅ **Idiomatic Rust** throughout ## Development Guidelines Follow these principles: 1. **No unsafe code** - forbid entirely unless documented 2. **Error handling** - Use Result/Option with `?` operator 3. **Documentation** - All public items documented with rustdoc 4. **Testing** - Unit tests for all critical logic 5. **Formatting** - `cargo fmt` + `cargo clippy` ## Next Steps (Phase 1) - [ ] Expand Phase manager with advanced transitions - [ ] Add provisioning configuration parsing - [ ] Implement publication target management - [ ] Create status/health check system - [ ] Add persistence layer (SQLite) - [ ] Write 20+ additional unit tests ## Integration Points - **doc-syntaxis**: Tool enablement and integration - **tracking-manager**: Change tracking integration - **dev-system**: Profile and hooks management - **provisioning**: K8s deployment integration - **Claude Code**: .claude/ directory management ## Contributing See CLAUDE.md for project guidelines and requirements. ## License MIT