33 lines
2.1 KiB
Markdown
33 lines
2.1 KiB
Markdown
# AGENTS.md — Source RS
|
||
|
||
Краткая вводная для агентов и разработчиков. Полный контекст — в `docs/`.
|
||
|
||
## Читать первым
|
||
|
||
1. `docs/PLAN.md` — что строим, принципы, этапы, решения.
|
||
2. `docs/ARCHITECTURE.md` — структура крейтов и правила зависимостей.
|
||
3. `docs/PROBLEMS.md` — какие боли чиним, включая «Принцип сандбокс-масштаба».
|
||
4. `docs/LUA.md`, `docs/NETWORK.md`, `docs/RECON.md` — по профилю задачи.
|
||
|
||
## Железные правила
|
||
|
||
1. Никаких `unwrap()`/`panic!`/`expect()` на данных из сети или файлов. Всё —
|
||
bounded-парсеры с явными лимитами (максимумы строк, глубина рекурсии, размеры массивов).
|
||
2. `catch_unwind` на всех границах: вызовы Lua, FFI (Jolt/Steam), worker-потоки,
|
||
обработчики задач. Клиент не должен падать ни из-за аддона, ни из-за сервера.
|
||
3. Код Source SDK 2013 / Source.NET / прочих референсов **не копируем** — только
|
||
как спецификацию поведения (Source 1 SDK License). Реализация — своя.
|
||
4. Ассеты Garry's Mod не коммитим и не распространяем; только пути локальных
|
||
установок пользователя (конфиг).
|
||
5. Изменение договорённостей/архитектуры — обновление `docs/` в том же коммите.
|
||
6. Документация, коммиты и комментарии — на русском (код — английский).
|
||
|
||
## Команды (по мере появления кода)
|
||
|
||
```bash
|
||
cargo fmt --all
|
||
cargo clippy --workspace --all-targets -- -D warnings
|
||
cargo test --workspace
|
||
# запуск клиента (пример; пути к ассетам настраиваются)
|
||
cargo run -p client --bin gmod-rs -- --assets ~/gmod_server/server
|
||
```
|