# Политика проекта

Правила постановки задач, отчётов и приёмки, которые проект задаёт для всех агентов.

Политика проекта хранится в облаке, и агент читает её инструментом `get_policy` перед работой. Журнал сам ничего не оценивает и не навязывает методологию: он записывает события и проверяет только допустимость переходов между статусами. Всё остальное — что должно быть в задании, что считать отчётом, когда можно принять работу — политика, то есть данные, которые вы задаёте для проекта или всего пространства.

## Из чего состоит политика

**Два правила, которые проверяет сервер.** Нарушение отклоняется, действие не записывается:

- `accept_requires_evidence` — принять задачу можно только с доказательством: хэшем коммита, ссылкой на прогон CI или выводом тестов. Вызов `accept` без `evidence` вернёт отказ.
- `draft_requires_artifact` — поставить задачу можно только при готовом артефакте с заданным заголовком, например `Project baseline: {project}`. Подстановка `{project}` заменяется именем проекта. Пока такого артефакта в журнале нет, `draft_task` отклоняется.

**Четыре текста-инструкции для агента.** Сервер их не проверяет, а передаёт агенту: каждый текст приклеивается к описанию инструмента своего шага.

| Шаг | К какому инструменту приклеивается | О чём текст |
|---|---|---|
| Постановка | `draft_task` | Что должно быть в задании |
| Делегирование | `delegate` | Что передать исполнителю |
| Отчёт | `submit_report` | Что должно быть в отчёте |
| Приёмка | `accept` | Как проверять и что считать доказательством |

Тексты пишутся по-английски, потому что их читают агенты любых производителей. Каждый стоит держать короче полутора тысяч символов: он попадает в контекст каждой сессии.

Кроме правил у политики есть имя, которое агент видит строкой «Правила политики», и описание для людей — оно в список политик, а агенту не уходит.

## Встроенные политики

В облаке есть три готовые политики, ни одна не «рекомендуемая». Их нельзя изменить, но можно взять за основу.

| Название | Что требует |
|---|---|
| Журнал без правил | Ничего: журнал только записывает. Так работает проект, пока политика не задана. |
| Приёмка по доказательству | Одно правило: принято значит подтверждено тем, что можно проверить. Остальное свободно. |
| Полная дисциплина | Доказательство при приёмке, готовый артефакт `Project baseline: {project}` перед постановкой задачи, собственный полный прогон и приёмка через слияние. Ноль доверия отчёту исполнителя. |

## Где задаётся

Откройте «Настройки», вкладку «Агенты», раздел «Политики журнала». Там три группы:

- **Используется здесь** — действующая политика пространства;
- **Встроенные** — три готовые;
- **Мои** — ваши: «Создать с нуля» или «Импорт из JSON».

Выбор политики из списка не применяется сразу. Облако показывает, что изменится для агентов: «Что изменится» сравнивает действующую политику с выбранной по правилам и по текстам. Прикрепить политику может владелец или администратор, прочие участники только смотрят. У каждой карточки в меню есть «Предпросмотр», «Изменить» (для ваших), «Взять за основу», «Экспорт JSON» и «Скачать SKILL.md» — готовый скилл с правилами политики для агента.

Прикреплённая политика уезжает в журналы всех участников: агент получает её при запуске и при каждом `sync` и проверяет при записи событий.

## Что делает агент

```text
get_policy { project: "shop" }
```

Ответ — действующая политика и её источник: `workspace:<slug>` (политика пространства), `project` (политика, заданная для проекта локально), `default` или `lenient`. Если проект привязан к пространству облака, действует только политика пространства. Короткая версия правил уже встроена в описания инструментов, поэтому агент видит их, даже не вызывая `get_policy`.

Без облака политика задаётся локально:

```text
set_policy { project: "shop", policy: { schemaVersion: 1, name: "Приёмка по доказательству",
  description: "Принято значит подтверждено.",
  enforce: { accept_requires_evidence: true, draft_requires_artifact: null },
  guidance: { draft: "State what must be true when the task is done.", delegate: "",
              report: "Say what was verified and how: commands and output.",
              accept: "Accept only with evidence you produced or inspected yourself." } } }
```

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

## Пример: отказ без доказательства

При включённом правиле о доказательстве:

```text
accept { task_id: "shop/2026-11-03-csv-export" }
→ отказ: политика «Приёмка по доказательству» требует подтверждение приёмки: передай evidence
accept { task_id: "shop/2026-11-03-csv-export", evidence: "Коммит 4f3e8f2, тесты 312/312" }
→ задача принята
```

## Что дальше

- Как проверяют работу: [Приёмка](/docs/concepts/acceptance).
- Кто и как читает политику в цикле: [Скиллы цикла](/docs/agents/skills).
- Параметры инструментов: [Справочник MCP](/docs/reference/mcp-tools).
