# KAgent — протокол работы для воркера Hermes

Этот текст вставляется в начало каждого задания по KAgent либо читается воркером как
часть карточки. Он описывает, как работать в этом репозитории.

## Репозиторий и ветки

- рабочая копия: `C:\Users\Ochenstarik\kagent`, проект Hermes `kagent`;
- удалённый: `https://github.com/ochenstarik-ui/kagent`, база — `main`;
- каждая задача работает в своём worktree на своей ветке, ветка указана в карточке;
- прямой push в `main` запрещён. Результат — ветка и pull request;
- перед началом: `git fetch origin` и rebase ветки на `origin/main`.

## Инструменты на машине

Доступны и работают: `node` 24, `pnpm`, `corepack`, `cargo`, `rustc`, `rustup`,
`python`, `ruff`, `git`.

**Docker в PATH Windows отсутствует** — он живёт внутри WSL и засыпает вместе с ней.
Ничего, что требует `docker compose`, в задачи этого этапа не входит. Если задача упирается
в Docker — останавливайся и сообщай, а не изобретай обход.

Python в PATH — 3.11 из venv Hermes, тогда как сервисы нацелены на 3.12. Для линта и
модульных тестов это неважно, для чего-то другого — уточняй.

## Размер задачи

У воркера ограниченный бюджет итераций. Задача в этом репозитории считается правильно
нарезанной, если она:

- трогает один-два файла;
- проверяется одной командой;
- завершается за один прогон без ожидания внешних событий.

Если по ходу выясняется, что задача больше — **не растягивай прогон**. Сделай ту часть,
которая помещается, зафиксируй результат, опиши остаток комментарием к карточке и предложи
отдельную карточку. Незаконченная работа, честно описанная, полезнее исчерпанного бюджета.

## Что запрещено

- **менять существующие тесты**, чтобы сборка стала зелёной. Мешает тест — объясни почему и
  остановись. Причина — `docs/adr/0005-test-oracle-integrity.md`;
- **отмечать пункты roadmap выполненными.** Статусы будут вычисляться из артефактов CI,
  см. `docs/adr/0016-computed-stage-status.md`. Ровно из-за ручных галочек этапы 0.2–0.8
  отмечены завершёнными при неработающем коде;
- **выходить за рамки карточки.** Заметил соседний дефект — комментарий к карточке или
  новая карточка, но не правка в этой ветке;
- **добавлять зависимость без проверки лицензии** и без упоминания в отчёте;
- **копировать исходный код** из Hermes, n8n, Prime Agent и других агентских платформ.
  Архитектуру заимствовать можно, файлы — нет;
- помещать секреты в файлы под контролем версий;
- `git push --force`, переписывание истории, `--no-verify`.

## Порядок источников истины

1. `docs/KAGENT_FULL_PRODUCT_SPEC.md`
2. `docs/THREAT_MODEL.md`
3. `docs/adr/`
4. контракты в `packages/contracts/`
5. текст карточки
6. существующий код

Код последний осознанно: он местами противоречит ТЗ, и это известно.

Разделы ТЗ 35–51 и ADR-0004…0020 находятся на ветке
`docs/adr-0004-0016-trust-verification-economics` (PR #2), в `main` их нет.

## Проверка результата

Запускай ровно то, что указано в карточке как критерий приёмки, и приводи вывод команды в
отчёте. Формулировки «должно работать» и «выглядит корректно» результатом не считаются.

Полезные команды:

```bash
cargo fmt --manifest-path services/gateway/Cargo.toml --check
cargo clippy --manifest-path services/gateway/Cargo.toml --all-targets -- -D warnings
cargo test --manifest-path services/gateway/Cargo.toml
pnpm --filter @kagent/control-plane typecheck
pnpm --filter @kagent/control-plane test
ruff check services scripts
python scripts/validate_repository.py
```

## Отчёт

Комментарием к карточке, коротко:

1. что изменено, файлами;
2. вывод проверочных команд;
3. что не сделано и почему;
4. что замечено рядом и стоит отдельной карточки.

Коммит: первая строка до 72 символов, повелительное наклонение, без эмодзи, с указанием
идентификатора карточки в теле.
