Rosett-AI
Author rules once, compile to Claude Code, AGENTS.md, and more engines coming soon.
raictl is an engine-agnostic configuration management tool for AI-assisted development workflows. Define operational rules in generic YAML, then compile them to any supported AI tool's native format. v1.2.0 ships with Claude Code and AGENTS.md engines. Additional engines (Cursor, Copilot, Windsurf, Goose, Aider, Ollama, GPT-NeoX, Generic) are in development.
graph LR
subgraph Input["Human Intent (YAML)"]
B[conf/behaviour/*.yml]
D[conf/design/*.yml]
end
subgraph rosett-ai["Rosett-AI Compiler"]
P[Compilation Pipeline]
end
subgraph Engines["Engine Backends"]
C[Claude Code]:::available
A[AGENTS.md]:::available
CU[Cursor]:::planned
CP[Copilot]:::planned
WS[Windsurf]:::planned
GO[Goose]:::planned
AI[Aider]:::planned
O[Ollama]:::planned
G[GPT-NeoX]:::planned
X[Generic]:::planned
end
B --> P
D --> P
P --> C
P --> A
P --> CU
P --> CP
P --> WS
P --> GO
P --> AI
P --> O
P --> G
P --> X
classDef available stroke:#22c55e,stroke-width:2px
classDef planned stroke:#94a3b8,stroke-width:1px,stroke-dasharray:5 5,fill:#f8fafc,color:#64748b
| Field | Value |
|---|---|
| Version | <!-- rai:version -->1.2.0<!-- /rai:version --> |
| License | GPL-3.0-only |
| Ruby | 3.3.10 (rbenv) |
| Tests | <!-- rai:tests -->4672 RSpec specs<!-- /rai:tests --> |
| Author | Hugo Antonio Sepulveda Manriquez |
Quick Start
rbenv install 3.3.10
bundle install
overcommit --install
bin/raictl version
Features
mindmap
root((raictl))
Engine Backends
Claude Code ✓
AGENTS.md ✓
Cursor ○
Copilot ○
Windsurf ○
Goose ○
Aider ○
Ollama ○
GPT-NeoX ○
Generic ○
Desktop Integration
D-Bus IPC Service
GTK4/Adwaita App
Focus Monitoring
5 Compositor Adapters
Configuration
Behaviour Rules
Design Documents
JSON Schema Validation
Configuration Hierarchy
Security
Ed25519 JWT Licensing
YAML DoS Prevention
Path Whitelisting
Custom RuboCop Cops
CLI
Compile / Validate / Adopt
Backup / Migrate / Doctor
Engine Detection
Accessibility
EN 301 549 Compliance
Accessible TUI
i18n (en, fr, ar)
Core Capabilities
- Engine-Agnostic Compilation -- Write rules in generic YAML, compile to any AI tool
- <!-- rai:engines -->2<!-- /rai:engines --> Available Engine Backends -- Claude Code, AGENTS.md (8 more planned: Cursor, Copilot, Windsurf, Goose, Aider, Ollama, GPT-NeoX, Generic)
- D-Bus Desktop Service --
be.neatnerds.rosettaisession bus with Manager and FocusMonitor interfaces - GTK4/Adwaita Application -- Crash-proof GUI with
safe_action()wrapper pattern - Behaviour Management -- Priority-sorted rules (1-100 scale) with sensitivity filtering
- Adopt Analysis -- Local structural checks with optional API-powered analysis
- Content Packs -- Premium content delivery via Ed25519-signed JWT licensing
- Debian Packaging --
.debpackages via fpm for core, gtk4, and qt6 variants - i18n -- Internationalisation with gettext/Qt locale compilation
Architecture Overview
graph TB
subgraph CLI["CLI Layer (Thor)"]
BIN[bin/raictl]
THOR[RosettAi::Thor::CLI]
end
subgraph LIB["Library Layer"]
COMP[Compiler::Pipeline]
VALID[Validators]
CONFIG[Configuration]
PATH[PathResolver]
ADOPT[Adopter]
YAML[YamlLoader]
end
subgraph ENGINES["Engine Layer"]
CLAUDE[engines/claude/]:::available
AGENTS[engines/agents_md/]:::available
CURSOR[engines/cursor/]:::planned
COPILOT[engines/copilot/]:::planned
WINDSURF[engines/windsurf/]:::planned
GOOSE[engines/goose/]:::planned
AIDER[engines/aider/]:::planned
OLLAMA[engines/ollama/]:::planned
NEOX[engines/gpt_neox/]:::planned
GENERIC[engines/generic/]:::planned
end
subgraph DESKTOP["Desktop Layer"]
DBUS_SVC[D-Bus Service]
GTK4[GTK4 App]
FOCUS[Focus Monitor]
end
BIN --> THOR
THOR --> COMP
THOR --> VALID
THOR --> CONFIG
THOR --> ADOPT
COMP --> ENGINES
COMP --> YAML
VALID --> YAML
CONFIG --> PATH
DBUS_SVC --> COMP
GTK4 -->|D-Bus IPC| DBUS_SVC
FOCUS --> DBUS_SVC
classDef available stroke:#22c55e,stroke-width:2px
classDef planned stroke:#94a3b8,stroke-width:1px,stroke-dasharray:5 5,fill:#f8fafc,color:#64748b
Legend: Solid border = Available | Dashed border = Planned
CLI Commands
# Compilation
bin/raictl compile # Compile rules (default engine)
bin/raictl compile --engine agents_md # Compile to AGENTS.md format
bin/raictl compile --engine ollama # Compile for Ollama
bin/raictl compile --strict # Treat warnings as errors
bin/raictl compile --simulate --verbose # Dry run with diffs
# Engine management
bin/raictl engines list # List all known engines
bin/raictl engines detect # Detect installed engines
bin/raictl engines status # Show default engine + detection
# Validation & analysis
bin/raictl validate # Validate all config files
bin/raictl adopt # Local-only structural checks
bin/raictl adopt --api --verbose # Remote API analysis
# Configuration
bin/raictl behaviour display # Show behaviour configuration
bin/raictl config compile # Compile YAML scopes to JSON
bin/raictl design list # List design documents
# Desktop
bin/raictl dbus start # Start D-Bus service
bin/raictl desktop gtk4 # Launch GTK4 application
# Backup
bin/raictl backup --global --local # Back up all configurations
See USAGE.md for the full command reference.
Documentation
| Document | Description |
|---|---|
| ARCHITECTURE.md | System architecture with Mermaid diagrams |
| ENGINES.md | Engine backends and compilation targets |
| DESKTOP.md | D-Bus service and GTK4 desktop app |
| SETUP.md | Installation and setup guide |
| USAGE.md | CLI usage and examples |
| CONFIGURATION.md | Configuration reference |
| BEHAVIOUR.md | Behaviour system documentation |
| ADOPT.md | Adopt analysis documentation |
| PACKAGING.md | Debian packaging |
| REFERENCES.md | External references and bibliography |
| IMPLEMENTATION_PLAN.md | Phased roadmap |
| CONTRIBUTING.md | Developer guide |
Architecture Decision Records
| ADR | Status | Decision |
|---|---|---|
| 001 | Accepted | Defer Flog (covered by RuboCop) |
| 002 | Accepted | Centralised PathResolver |
| 003 | Accepted | 5-level UI cascade |
| 004 | Accepted | Generic SchemaValidator |
| 005 | Accepted | Plugin gems in mono-repo |
| 006 | Superseded | Multi-engine (see ADR-007) |
| 007 | Accepted | Engine-agnostic pivot |
Project Structure
rosett-ai/
├── bin/raictl # CLI executable
├── lib/rosett_ai/ # Ruby library (4800+ LOC)
│ ├── engines/ # Engine backends
│ │ ├── claude/ # Claude Code engine (7 components)
│ │ ├── cursor/ # Cursor (Anysphere) engine
│ │ ├── copilot/ # GitHub Copilot engine
│ │ ├── windsurf/ # Windsurf (Codeium) engine
│ │ ├── agents_md/ # AGENTS.md engine
│ │ ├── goose/ # Goose (Block) engine
│ │ ├── aider/ # Aider engine
│ │ ├── generic/ # Generic markdown engine
│ │ ├── ollama/ # Ollama engine
│ │ └── gpt_neox/ # GPT-NeoX engine
│ ├── compiler/ # Compilation pipeline
│ ├── desktop/ # GTK4 app + GUI logger
│ ├── dbus/ # D-Bus service + focus adapters
│ ├── validators/ # Schema-based validators
│ ├── licensing/ # Ed25519 JWT license keys
│ ├── content/ # Content pack system
│ ├── backup/ # Backup with compression
│ ├── thor/tasks/ # 16 CLI subcommands
│ └── ui/ # UI adapter registry
├── conf/ # Configuration
│ ├── behaviour/ # Behaviour YAML files
│ ├── design/ # Design documents (21 files)
│ ├── schemas/ # JSON Schemas (10 files)
│ ├── engines/ # Per-engine config
│ └── packaging/ # Package variant configs
├── spec/ # RSpec tests (119 files)
├── doc/ # Documentation
│ ├── decisions/ # ADRs (001-007)
│ └── changes/ # Implementation notes
├── locales/ # i18n (en, fr, ar)
├── packaging/ # Debian scripts
└── CLAUDE.md # Project instructions
Development
bundle exec rspec # Run tests
bundle exec rubocop # Lint
bundle exec reek # Code smell detection
bundle exec bundler-audit check # Security audit
Roadmap
gantt
title Rosett-AI Development Roadmap
dateFormat YYYY-MM-DD
axisFormat %b %d
section Engine Phases
Phase 0a - Rename :done, e0a, 2026-02-26, 1d
Phase 0b - Engine dirs :done, e0b, after e0a, 1d
Phase 0c - XDG + detection :done, e0c, after e0b, 1d
Engine 1 - AGENTS.md :done, e1, after e0c, 1d
Engine 2 - Ollama + GPT-NeoX :done, e2, after e1, 1d
Engine 3 - Goose + Aider :done, e3, after e2, 1d
Engine 4 - Cursor + Copilot :done, e4, after e3, 1d
section Desktop Phases
Desktop 1 - D-Bus service :done, d1, after e0c, 1d
Desktop 2 - GTK4 app :done, d2, after d1, 1d
GTK4 hardening :done, d2h, after d2, 1d
Desktop 3 - KDE KCM :d3, after d2h, 5d
License
GPL-3.0-only
Contact
- Author: hugo@neatnerds.be
- Support: query@neatnerds.be