syntaxis/core/README.md
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
Merge _configs/ into config/ for single configuration directory.
Update all path references.

Changes:
- Move _configs/* to config/
- Update .gitignore for new patterns
- No code references to _configs/ found

Impact: -1 root directory (layout_conventions.md compliance)
2025-12-26 18:36:23 +00:00

245 lines
7.5 KiB
Markdown

# 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