Это конституция репозитория. Нарушение = провал задачи, откат PR, потеря доверия. Перед написанием кода прочти этот файл целиком. Перед коммитом — ещё раз.
All agents working in this workspace follow the AIP (Agent Interaction Protocol).
| Codename | Domain |
|---|---|
| ALPHA | trios-ipc |
| BETA | trios-server |
| GAMMA | trios-ui |
| DELTA | trios-doctor |
| EPSILON | trios-ext |
| ZETA | trios-a2a |
| LEAD | orchestration |
Агент работает ТОЛЬКО внутри своего крейта.
- ❌ НИКОГДА не трогать файлы за пределами своего
crates/<X>/ - ❌ НИКОГДА не удалять, переименовывать или перемещать кольца других крейтов
- ❌ НИКОГДА не менять корневой
Cargo.tomlбез явного задания на это - ✅ Если нужно добавить зависимость от другого крейта — только
path =в своёмCargo.toml
Исключение: корневой Cargo.toml может быть изменён только по явному заданию (например, "добавить кольца в workspace members").
Every commit MUST include an Agent: <CODENAME> trailer.
feat(trios-doctor): implement DR-01..03
Agent: DELTA
crates/trios-ext/ содержит ТОЛЬКО кольца: EX-00, EX-01, EX-02, EX-03, BR-EXT.
При работе с UI разрешено трогать ТОЛЬКО:
crates/trios-ext/src/dom.rs(≤ 15 строк, вызываетtrios_ui::mount_app_with_mcp)crates/trios-ext/Cargo.toml(+1 строка: зависимостьtrios-ui)crates/trios-ext/style.css(только удаление)
ЗАПРЕЩЕНО трогать (git diff должен быть пуст):
crates/trios-ext/src/lib.rscrates/trios-ext/src/bg.rscrates/trios-ext/src/mcp.rscrates/trios-ext/src/bridge/**crates/trios-ext/extension/manifest.jsoncrates/trios-ext/extension/background.jscrates/trios-ext/extension/content.js
См. issue #243 — пункт "🚫 Запрещено" и инвариант ARCH-EXT. См. issue #238 — ring-архитектура 36 crates.
crates/trios-ui/ не импортирует ничего из trios-ext.
Зависимость строго однонаправленная: trios-ext → trios-ui.
В trios-ui ЗАПРЕЩЕНО:
document.create_elementи любой rawweb-sysDOMset_inner_htmlсо строками- handwritten JS (инвариант I15)
- wasm-pack (только
wasm-bindgen-cli)
Разрешено: Dioxus RSX, Signal, use_context.
Каждый crate = crates/<name>/rings/XX-NN/ со структурой:
src/lib.rsCargo.tomlREADME.md— назначение, API, зависимостиTASK.md— статусAGENTS.md— локальные запреты
Инвариант I5: отсутствие любого из трёх .md файлов = нарушение.
Нумерация колец:
XX-00— identity / core typesXX-01..N— последовательные слои (dependency order = ring number)BR-OUTPUT/BR-APP/BR-BIN/BR-MODEL— финальный артефакт
- ❌ Не создавать новые файлы в
trios-ext/src/кромеdom.rs - ❌ Не переименовывать кольца (XX-00..XX-N — монотонно)
- ❌ Не сливать кольца в один
src/lib.rs - ❌ Не удалять
AGENTS.md,README.md,TASK.mdв кольцах - ❌ Не коммитить без прохождения
arch-guardCI - ❌ Не использовать
cargo install wasm-pack— толькоwasm-bindgen-cli - ❌ Не писать бизнес-логику на JS в WASM crates (I15)
- ❌ Не эскейпить HTML в raw-строках
r##"..."##
# 1. ARCH-EXT guard
FORBIDDEN=$(git diff --cached --name-only \
| grep '^crates/trios-ext/' \
| grep -vE '(src/dom\.rs|Cargo\.toml|style\.css)$')
if [ -n "$FORBIDDEN" ]; then
echo "❌ ARCH-EXT VIOLATION: $FORBIDDEN"; exit 1
fi
# 2. Ring I5 guard
for ring in $(find crates -type d -path '*/rings/*' -mindepth 3 -maxdepth 3); do
for f in README.md TASK.md AGENTS.md; do
[ -f "$ring/$f" ] || { echo "❌ I5 VIOLATION: $ring/$f missing"; exit 1; }
done
done
# 3. Build + lint
cargo build --all || exit 1
cargo clippy --all-targets -- -D warnings || exit 1- Ring-архитектура 36 crates: issue #238
- UI ring-план (UR-00..UR-08 + BR-APP): issue #243
- LAWS.md (I1–I20): issue #235
- Эталон:
crates/trios-a2a/(8 SR-rings + BR-OUTPUT, 84 tests)
Перед тем как написать первую строку кода, ответь себе письменно в PR-описании:
- Какие файлы я СОБИРАЮСЬ изменить?
- Попадает ли хоть один в раздел "🚫 ЗАПРЕЩЕНО трогать"?
- Если да — ОСТАНОВИСЬ и открой обсуждение в issue.
Если пропустил этот шаг — PR будет закрыт автоматически.