Intent-Garden (S-OAK) Core
Детерминированный движок верификации C/C++ кода, генерируемого ИИ.
Мы не верим в «безопасные языки». Мы верим в безопасные намерения.
📖 О Проекте
Garden-Core — это Clojure-движок, который аудирует ИИ-генерированный C/C++ код через Clang AST и EDN-контракты. Это «последняя миля» между стохастическим выводом ИИ и предсказуемым исполнением кода.
Принцип работы
Мы не исправляем ошибки ИИ. Мы создаем среду, где невалидный код физически не может пройти стадию сборки.
Движок исключает галлюцинации за счет жесткого разделения труда:
- Intent Injection — ИИ-агент получает спецификацию из
rulerom/registry - Garden-Tagging — ИИ пишет C-код и размечает его тегами
[[garden:intent(...)]] - AST Enforcement — Движок парсит Clang JSON AST и проверяет соответствие контрактам
- Semantic Echo — Генерация Markdown-отчетов для верификации человеком
🛠️ Технологический Стек
| Компонент | Назначение |
|---|---|
| Clojure / Babashka | Быстрая логика обработки данных без JVM-оверхеда |
| Clang LibTooling | Парсинг -ast-dump=json для честной структуры кода |
| EDN | Формат контрактов, понятный человеку и машине |
🔄 Жизненный Цикл «Семантического Якоря»
graph TD
A["<b>1. Определение</b><br/>Ввод архитектора / Описание задачи"] --> B{AI Scan}
B -->|Поиск| C["<b>Библиотека Rule-Rom</b>"]
B -->|Генерация| D["<b>Черновик Intent</b>"]
C & D --> E["<b>2. Формализация</b><br/>Lisp/EDN Контракт"]
E --> F["<i>Semantic Echo</i><br/>Авто-Markdown аудит"]
F -->|Проверка| G(("Аппрув человека"))
G -->|Исправление| E
G -->|Одобрено| H["<b>3. Инъекция в промпт</b><br/>Контракт + Требования"]
H --> I["<b>4. Код + Тегирование</b><br/>C/C++ Код + garden-tags"]
I --> J["<b>5. AST Enforcement</b><br/>Clang JSON AST + Babashka"]
J --> K{Верификация}
K -->|Нарушение| L["<b>Сборка упала</b><br/>Повтор"]
L --> H
K -->|Успех| M["<b>6. Сертификация</b><br/>Доказательство безопасности"]
M --> N["Готовый продакшен код"]
style A fill:#e1f5fe,stroke:#01579b
style E fill:#f3e5f5,stroke:#4a148c
style I fill:#fff3e0,stroke:#e65100
style J fill:#e8f5e9,stroke:#1b5e20
style M fill:#dcedc8,stroke:#33691e
style L fill:#ffebee,stroke:#b71c1c
🚀 Быстрый Старт
1. Подготовка Окружения (Windows / Scoop)
scoop install babashka llvm
2. Запуск Локального Аудита
Предположим, у вас есть файл test.c с расставленными тегами:
// [[garden:intent(safe-free)]]
free(p);
p = NULL;
// [[/garden:intent]]
Шаг 1: Генерируем AST
clang -Xclang -ast-dump=json -fsyntax-only test.c > ast.json
Шаг 2: Запускаем Enforcer
bb -m garden.enforcer ast.json
3. Пример Контракта (EDN)
{:intent :safe-free
:entities [:ptr]
:must-set-null true
:description "После free() указатель должен быть установлен в NULL"}
📋 Протокол Тегирования (Garden-Tagging)
Каждый блок кода, связанный с Intent, ОБЯЗАТЕЛЬНО должен быть размечен:
// [[garden:intent(INTENT_ID)]]
void implementation_starts_here() {
// Ваша логика
}
// [[/garden:intent]]
Правила Тегирования
| Правило | Описание |
|---|---|
| No Orphans | Никогда не размещайте тег без реализации |
| Exact ID | INTENT_ID должен совпадать с ключом в .edn файле |
| Scope | Теги оборачивают минимальную логическую единицу |
| Vacuum Rule | Код вне [[garden:intent]] считается мёртвым и отбрасывается |
📜 Манифест (Кратко)
- Код обесценился, Смысл подорожал — ценность в намерениях, а не инструкциях
- ИИ — Газ, Формальная Логика — Тормоза — детерминированный надзор над вероятностным исполнением
- Lisp — идеальный язык Контрактов — гомоиконность для «Конституции системы»
- Семантическая Клетка — ИИ генерирует внутри DSL-клетки правил безопасности
- Валидация вместо Надейся-и-Жди — проверка на этапе генерации, не после
- Zero-Cost Security — контракт работает на этапе метапрограммирования
- Смерть «Черного Ящика» — ИИ как чёрный ящик реализации в белом ящике намерений
📄 Документы
| Документ | Описание |
|---|---|
| Контракт для ИИ-агентов | Правила тегирования |
| EDN Реестр | Спецификации Intent-контрактов |