Внешний когнитивный субстрат для LLM. Слой, который берёт на себя память, идентичность проекта, политики и наблюдаемость, превращая LLM из «собеседника, который всё помнит» в stateless inference engine — чистую функцию f(context) → tokens.
Цели в одной строке: снизить расход облачных токенов в 5–25× на типичных задачах, дать проекту постоянную память между сессиями, и сделать процесс работы LLM наблюдаемым через GUI.
Прочитай в этом порядке (5 минут):
- STATUS.md — где мы сейчас, что сделано в последнюю сессию.
- NEXT.md — конкретные следующие 3–5 шагов.
- Последний файл в docs/09-conversation-log/ — контекст последней встречи с подробностями.
После этих трёх файлов у тебя есть полная картина «что, где и зачем» и можно работать.
Если нужны детали глубже:
- ROADMAP.md — границы MVP / V2 / V3 / Future.
- ROADBLOCKS.md — открытые вопросы, ждут решения.
- docs/00-charter.md — vision проекта, scope, non-goals.
- docs/01-architecture.md — полная архитектура (TODO).
- docs/02-decisions/ — все ADR с rationale.
- CLAUDE.md — инструкции для будущего Claude в этом проекте.
В конце каждой сессии работы над CMOS обязательно:
- Обновлён
STATUS.md(где мы сейчас). - Обновлён
NEXT.md(что дальше). - Создан новый файл в
docs/09-conversation-log/YYYY-MM-DD-<topic>.mdс ключевыми решениями. - Если приняты архитектурные решения — добавлен/обновлён ADR в
docs/02-decisions/. - Если обнаружен открытый вопрос — записан в
ROADBLOCKS.md.
Это hard-ритуал. Без него начинать новую сессию = строить замок на песке.
cmos/
├── README.md <- ты здесь
├── STATUS.md <- ⭐ текущее состояние (1 экран)
├── NEXT.md <- ⭐ ближайшие действия (1 экран)
├── ROADMAP.md <- MVP / V2 / V3 / Future
├── ROADBLOCKS.md <- открытые вопросы
├── CLAUDE.md <- инструкции для Claude
└── docs/
├── 00-charter.md <- vision, scope, non-goals
├── 01-architecture.md <- полная архитектура (TODO)
├── 02-decisions/ <- ADR-style записи решений
├── 03-scope/ <- mvp/v2/v3/future/out-of-scope
├── 04-components/ <- spec на каждый компонент
├── 05-gui/ <- 9 экранов GUI + overlay
├── 06-bootstrap/ <- onboarding существующих проектов
│ └── django-marketplace.md <- основной use case (Django marketplace)
├── 07-research/ <- frontier, открытые направления
├── 08-glossary.md <- термины
└── 09-conversation-log/ <- хронология решений
MVP implementation — ~80% done. Milestones 1–4 закрыты (bootstrap, memory layers, two-LLM economy, vector index + MCP hybrid assembly). 95 тестов проходят. См. STATUS.md.
- Rust toolchain (rustup + cargo)
- Ollama (для embedding-модели, опционально для базового теста)
cargo build --workspacecargo test --workspaceОжидаемый результат: 95 тестов проходят, включая 2 end-to-end MCP теста.
Запустить сервер:
cargo run -p cmos-cli -- mcp --root ./test-projectСервер слушает stdin/stdout (JSON-RPC, newline-delimited JSON). Отправить initialize:
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"manual-test","version":"0.1.0"}}}Ожидаемый ответ: JSON с serverInfo.name = "cmos" и 6 tools в capabilities.
Добавить в конфиг MCP серверов (Claude Desktop: claude_desktop_config.json, Claude Code: .claude/settings.json):
{
"mcpServers": {
"cmos": {
"command": "path/to/cmos-cli.exe",
"args": ["mcp", "--root", "path/to/your/project"]
}
}
}После подключения Claude получит доступ к 6 инструментам:
cmos_write_memory— записать факт в L1 (рабочая память)cmos_read_memory— прочитать слот из L1cmos_query_memory— запросить L2/L3 эпизоды или L4 фактыcmos_assemble_context— собрать оптимизированный контекст для задачиcmos_search_similar— семантический поиск (требует Ollama)cmos_memory_stats— статистика по всем уровням памяти
cargo run -p cmos-cli -- bootstrap --root path/to/your/project --project-id my-projectЭто сканирует git history, структуру файлов, и заполняет L2/L3/L4 память.
После bootstrap:
cargo run -p cmos-cli -- query --root path/to/your/project --project-id my-project --layer L4Должны появиться извлечённые факты о проекте (conventions, decisions, policies).
См. docs/03-scope/out-of-scope.md. Коротко: это не очередной RAG, не chat wrapper, не toy memory layer. Это операционная система для LLM-driven work.