Agent Dev 101

Модуль 08 · Урок 8.2

Урок 8.2. Plan Mode и Act Mode

На этой странице
  1. Зачем это нужно
  2. Основная идея
  3. Ключевые термины
  4. Почему нельзя смешивать planning и edits
  5. Схема режимов
  6. Plan Mode
  7. Act Mode
  8. Permission matrix
  9. Approval gate
  10. Plan Mode не заменяет SDD
  11. Plan output contract
  12. Act output contract
  13. Когда Plan Mode обязателен
  14. Когда можно сразу Act
  15. Escalation
  16. Plan Mode prompt
  17. Act Mode prompt
  18. Two-turn workflow
  19. Mode transitions
  20. Как это связано с permissions
  21. Read-only planning
  22. Scope-limited execution
  23. Approval granularity
  24. Risk-based mode policy
  25. Example: API endpoint
  26. Example: scope escalation
  27. Example: security-sensitive task
  28. Relation to skills
  29. Relation to tools and MCP
  30. Relation to testing
  31. Anti-pattern: endless planning
  32. Anti-pattern: silent act
  33. Anti-pattern: approval laundering
  34. Anti-pattern: broad Act Mode
  35. Mode checklist
  36. Практика: сначала plan, потом act
  37. Практика: матрица прав
  38. Типичные ошибки
  39. Критерии готовности
  40. Краткое резюме
  41. Вопросы для самопроверки
  42. Что дальше

Зачем это нужно

В уроке 8.1 мы собрали controlled development loop:

text
read spec -> inspect code -> plan -> test -> implement -> verify -> review diff -> check AC

Теперь нужно добавить важную границу: агент не должен всегда иметь одинаковые права на всех этапах.

Когда агент проектирует решение, ему часто достаточно:

  • читать spec;
  • читать код;
  • искать patterns;
  • анализировать risks;
  • составлять plan;
  • задавать уточняющие вопросы.

Для этого не нужно право изменять production code, запускать destructive commands, деплоить или писать во внешние системы.

Когда plan согласован, агент переходит к execution:

  • редактирует ограниченный набор файлов;
  • запускает targeted tests;
  • применяет skill;
  • вызывает tools;
  • возвращает evidence.

Разделение Plan Mode и Act Mode делает работу агента более управляемой. Это не просто удобный UX-паттерн. Это permission boundary.

Главная цель урока - научиться разделять проектирование и исполнение, вводить approval gate между ними и ограничивать права агента по режимам.

Основная идея

Plan Mode - режим анализа и проектирования без изменения системы.

Act Mode - режим исполнения согласованного плана в ограниченном scope.

Короткая формула:

text
Plan first.
Approve scope.
Act with limits.
Verify with evidence.

Самое важное:

text
Агент, который проектирует архитектуру,
не обязан иметь permission редактировать production code.

Это особенно важно для сложных задач, где сначала нужно подумать:

  • как разбить work;
  • какие файлы трогать;
  • какие tests нужны;
  • какие risks есть;
  • нужны ли approvals;
  • где остановиться.

Ключевые термины

Термин Значение
Plan Mode Режим, в котором агент читает, анализирует, проектирует и предлагает plan без edits.
Act Mode Режим, в котором агент выполняет согласованный plan в ограниченном scope.
Approval Gate Контрольная точка, где человек разрешает переход к исполнению.
Read-only Planning Планирование с правом чтения, но без права изменять код или внешние системы.
Scope-limited Execution Исполнение с явно ограниченными файлами, командами и действиями.
Permission Boundary Граница прав агента на текущем этапе.
Plan Output Contract Формат результата Plan Mode: summary, scope, steps, tests, risks, questions.
Act Output Contract Формат результата Act Mode: changed files, verification, AC status, risks.
Approval Payload То, что человек должен увидеть перед разрешением: plan, scope, risky actions.
Escalation Запрос дополнительных прав, когда task требует действия вне текущего scope.

Почему нельзя смешивать planning и edits

Если агент одновременно думает и редактирует, он часто начинает менять код слишком рано.

Плохой workflow:

text
User: "Как лучше реализовать team invitations?"
Agent:
1. Начал рассуждать.
2. Увидел похожий файл.
3. Сразу переписал часть auth.
4. Создал migration.
5. Потом понял, что spec не уточняет expiration.

Проблемы:

  • edits сделаны до согласования architecture;
  • scope расползся;
  • непонятно, какие assumptions приняты;
  • часть изменений может быть лишней;
  • rollback сложнее;
  • пользователь теряет контроль.

Хороший workflow:

text
Plan Mode:
- прочитать spec;
- найти patterns;
- предложить 3-step plan;
- назвать open questions;
- запросить approval.

Act Mode:
- выполнить только approved task;
- не выходить за scope;
- вернуть evidence.

Схема режимов

flowchart TD A[User task] --> B[Plan Mode] B --> C[Read spec] C --> D[Inspect relevant code] D --> E[Draft plan] E --> F[Scope and risks] F --> G{Approval?} G -- No --> H[Revise plan or stop] G -- Yes --> I[Act Mode] I --> J[Edit scoped files] J --> K[Run allowed checks] K --> L[Review diff] L --> M[Report evidence] M --> N{Need escalation?} N -- Yes --> O[Ask for approval] O --> I N -- No --> P[Done or commit-ready]

Переход из Plan Mode в Act Mode должен быть явным. Это может быть человеческое approval, task assignment, change request, ticket status или другой gate.

Plan Mode

Plan Mode отвечает на вопрос:

text
Что мы собираемся делать и почему?

В Plan Mode агент может:

  • читать specification;
  • читать relevant code;
  • искать existing patterns;
  • читать ADR;
  • выбирать skills;
  • предлагать task breakdown;
  • оценивать risk;
  • предлагать tests;
  • задавать вопросы;
  • формировать scope.

В Plan Mode агент не должен:

  • редактировать production code;
  • создавать migration;
  • запускать destructive commands;
  • делать external writes;
  • коммитить;
  • деплоить;
  • менять tickets без явного разрешения;
  • "заодно" исправлять найденные проблемы.

Plan Mode - это thinking with evidence, но без side effects.

Act Mode

Act Mode отвечает на вопрос:

text
Как выполнить согласованный plan и доказать результат?

В Act Mode агент может:

  • редактировать approved files;
  • создавать tests;
  • запускать approved commands;
  • применять approved skills;
  • вызывать allowed tools;
  • делать diff review;
  • проверять acceptance criteria;
  • готовить commit-ready output.

В Act Mode агент все равно не должен:

  • выходить за scope без escalation;
  • скрывать failed tests;
  • делать production deploy без approval;
  • удалять unrelated files;
  • менять architecture direction без возврата в Plan Mode;
  • принимать product/security decisions вместо пользователя.

Act Mode не означает "делай что хочешь". Это controlled execution.

Permission matrix

Действие Plan Mode Act Mode
Читать user task/spec Да Да
Читать relevant code Да Да
Искать по repo Да Да
Читать ADR/docs Да Да
Предлагать plan Да Да, если нужно revise
Редактировать code Нет Да, в approved scope
Добавлять tests Нет Да, если approved
Запускать read-only commands Иногда Да, если safe
Запускать tests Обычно нет или по запросу Да
Создавать migration Нет Да, если in scope
Внешние read tools Да, если scoped Да, если scoped
Внешние write tools Нет Только с approval
Destructive commands Нет Strong approval или запрещено
Commit Нет Только если workflow разрешает
Deploy Нет Отдельный approval

Эта таблица не universal law. В каждом project можно настроить иначе. Но baseline полезен: planning должен быть read-heavy, execution - write-limited.

Approval gate

Approval gate - момент, когда человек решает:

text
Да, этот plan и scope можно выполнять.

Хороший approval payload содержит:

  • краткое понимание задачи;
  • acceptance criteria;
  • proposed files/layers;
  • in scope;
  • out of scope;
  • test plan;
  • risky actions;
  • required tools/commands;
  • open questions;
  • stop conditions.

Плохой approval payload:

text
Можно начинать?

Пользователь не понимает, что именно разрешает.

Хороший:

text
Plan:
1. Add API test for POST /api/projects.
2. Reuse existing teams endpoint pattern.
3. Add route/controller and validation schema.
4. Run targeted API test and typecheck.

In scope:
- backend route
- validation
- service method
- API tests

Out of scope:
- frontend form
- billing
- auth middleware

Risk:
- authorization behavior uses existing authenticated route pattern.

Approval needed:
- edit backend files and tests;
- run targeted tests.

Plan Mode не заменяет SDD

Plan Mode часто путают со Specification-Driven Development, потому что оба начинаются до кода. Но это разные уровни.

Вопрос Plan Mode SDD
Где живет результат Обычно в текущей agent session. В repository или другом durable source of truth.
Что описывает Как выполнить текущую задачу. Что должно быть построено, почему, какие AC и constraints.
Срок жизни Один run или короткая итерация. Feature lifecycle, иногда вся жизнь продукта.
Кто review'ит Обычно текущий user. User, reviewer, команда, CI/evals через artifacts.
Что происходит после merge План часто исчезает. Spec обновляется, архивируется или остается якорем.

Plan Mode полезен даже без полного SDD:

text
прочитать код -> предложить scope -> получить approval -> выполнить

Но если task меняет product behavior, API contract, security rule или architecture boundary, одного plan в chat недостаточно. Нужен durable spec:

text
spec.md -> plan.md -> tasks.md -> implementation -> evidence

Практическое правило:

Ситуация Достаточно Plan Mode? Нужен SDD artifact?
Переименовать local helper Да Обычно нет
Исправить маленький bug с clear failing test Часто да Иногда bug note достаточно
Добавить endpoint Нет Да: requirements, contract, tests
Изменить auth behavior Нет Да: spec, security constraints, AC
Перепланировать MVP Нет Да: roadmap/spec/tasks
Legacy refactor Нет Да: current behavior + delta spec

Именно поэтому в controlled workflow Plan Mode обычно стоит после чтения spec, а не вместо spec.

Plan output contract

Plan Mode должен возвращать не размышления потоком, а structured plan.

Шаблон:

text
Understanding:
- ...

Acceptance criteria:
- ...

Relevant context inspected:
- ...

Proposed plan:
1. ...
2. ...
3. ...

In scope:
- ...

Out of scope:
- ...

Test/verification plan:
- ...

Risks:
- ...

Open questions:
- ...

Approval request:
- Allow edits to ...
- Allow commands ...

Это делает approval meaningful.

Act output contract

Act Mode должен завершаться evidence.

Шаблон:

text
Summary:
- ...

Changed files:
- ...

Verification:
- `<command>`: passed/failed/not run, exit code ...

Acceptance criteria:
- AC1: satisfied/not satisfied
- AC2: satisfied/not satisfied

Diff review:
- focused/unrelated changes/notes

Risks and follow-ups:
- ...

Act Mode без evidence превращается в "я сделал". В controlled development этого недостаточно.

Когда Plan Mode обязателен

Plan Mode особенно нужен, если:

  • задача больше одного файла;
  • затрагиваются architecture boundaries;
  • есть database migration;
  • меняется public API;
  • есть security/auth behavior;
  • нужны external tools;
  • есть production risk;
  • задача плохо специфицирована;
  • есть несколько возможных решений;
  • пользователь просит "спланируй";
  • work может быть разбит на несколько tasks.

Для совсем маленьких задач Plan Mode может быть коротким:

text
Понял: исправить typo в README. Scope: один файл. Verification: diff review.

Но для software changes с behavior Plan Mode лучше не пропускать.

Когда можно сразу Act

Не каждая мелочь требует длинного plan.

Можно сразу действовать, если:

  • user явно просит small edit;
  • файл и изменение очевидны;
  • нет production/security risk;
  • нет ambiguity;
  • нет external writes;
  • scope один файл;
  • verification простая.

Пример:

text
Исправь опечатку в заголовке README.

Но даже здесь агент должен:

  • не трогать unrelated files;
  • проверить diff;
  • сказать, что изменено.

Важно: "сразу Act" не означает "без контроля". Это просто короткий loop.

Escalation

Escalation нужен, когда в Act Mode агент обнаружил, что задача требует больше прав или другой scope.

Примеры:

text
Plan approved:
- change API validation only.

During Act:
- existing service lacks required persistence support.

Escalation:
- need permission to modify service layer and add tests.

Или:

text
Plan approved:
- add endpoint.

During Act:
- requires database migration.

Escalation:
- stop and request approval for migration task.

Escalation output:

text
I hit a scope boundary.

Approved scope:
- validation and controller.

New required change:
- database migration for `projects.slug`.

Why:
- service cannot satisfy AC2 without persisted slug.

Options:
1. Approve migration as separate task.
2. Change AC to not require slug persistence.
3. Stop here.

Агент не должен молча расширять scope.

Plan Mode prompt

Пример prompt:

text
Work in Plan Mode only.

Task:
<task>

Rules:
- Do not edit files.
- Do not run write or destructive commands.
- Read the spec and relevant code.
- Identify local patterns.
- Return a concise implementation plan.
- Include in scope, out of scope, test plan, risks, open questions, and approval request.

Output format:
Understanding:
Acceptance criteria:
Relevant context inspected:
Plan:
In scope:
Out of scope:
Verification plan:
Risks:
Open questions:
Approval request:

Этот prompt полезен, когда задача еще не ясна или может быть большой.

Act Mode prompt

После approval:

text
Proceed in Act Mode.

Approved plan:
<approved plan>

Approved scope:
- <files/layers>

Allowed commands:
- <test commands>

Constraints:
- Do not edit files outside approved scope without asking.
- Do not add dependencies.
- Do not change public API beyond the spec.
- Report failed checks honestly.

Expected final output:
- summary;
- changed files;
- verification commands and results;
- acceptance criteria status;
- diff review notes;
- residual risks.

Act Mode prompt должен быть конкретным. Чем опаснее task, тем точнее scope и approvals.

Two-turn workflow

Хорошая практика для сложной задачи:

Turn 1: Plan

text
User:
Составь plan для добавления team invitations.
Работай read-only, без edits.

Agent:

text
Understanding:
...

Plan:
1. Migration for invitations table.
2. Backend endpoint.
3. Email integration.
4. Frontend form.

Recommended first task:
Migration only.

Approval request:
Allow edit of migration files and model tests.

Turn 2: Act

text
User:
Одобряю только Task 1: migration.
Не трогай backend endpoint и frontend.

Agent:

text
Act Mode:
- edits migration files only;
- adds migration test;
- runs targeted verification;
- reports evidence.

Такой workflow не мешает скорости. Он делает скорость безопаснее.

Mode transitions

stateDiagram-v2 [*] --> PlanMode PlanMode --> WaitingApproval: plan produced WaitingApproval --> PlanMode: revise requested WaitingApproval --> ActMode: approved ActMode --> Verifying: edits complete Verifying --> ActMode: failed checks with scoped fix ActMode --> WaitingApproval: scope escalation needed Verifying --> Done: evidence complete Done --> [*]

Ключевые transitions:

  • Plan -> WaitingApproval: агент завершил analysis.
  • WaitingApproval -> Act: человек согласовал scope.
  • Act -> WaitingApproval: обнаружен scope boundary.
  • Verifying -> Done: есть evidence.

Как это связано с permissions

Mode без permissions - просто договоренность в prompt. Это полезно, но не достаточно для high-risk systems.

Лучше, когда режимы поддержаны runtime:

Режим Runtime permissions
Plan Mode Read files, search repo, read docs, no edits, no external writes.
Act Mode Edit approved paths, run approved tests, use approved tools.
Review Mode Read diff and files, no edits unless explicitly allowed.
Deploy Mode Separate approval, limited deploy tools.

Если runtime не умеет enforce permissions, prompt discipline все равно помогает. Но для production-risk actions нужны technical controls.

Read-only planning

Read-only не значит "ничего полезного не делать". В Plan Mode агент может выполнить большую часть интеллектуальной работы:

  • понять domain;
  • найти relevant files;
  • выявить hidden dependencies;
  • обнаружить missing spec;
  • предложить task split;
  • выбрать skill;
  • составить test plan;
  • заметить risks;
  • сформулировать questions.

Для сложной задачи это часто экономит время. Дешевле изменить plan, чем откатывать большой diff.

Scope-limited execution

Act Mode должен иметь конкретные границы:

text
Allowed files:
- src/api/projects.ts
- src/services/projects.ts
- tests/api/projects.test.ts

Allowed commands:
- npm test -- tests/api/projects.test.ts
- npm run typecheck

Not allowed:
- auth middleware edits
- database migrations
- frontend files
- deployment

Если agent должен выйти за scope, он спрашивает.

Scope-limited execution особенно важен в dirty worktree, где могут быть чужие изменения. Агент не должен "навести порядок" в unrelated files.

Approval granularity

Approval может быть разного уровня:

Approval Что разрешает
Plan approval Согласие с approach, но не обязательно с edits.
Edit scope approval Какие files/layers можно менять.
Command approval Какие commands можно запускать.
External write approval Comment, ticket update, CI rerun.
Destructive approval Delete, migration with data loss, production deploy.
Commit approval Разрешение зафиксировать diff.

Не смешивайте:

text
"План выглядит хорошо"

с:

text
"Можно деплоить production"

Это разные approvals.

Risk-based mode policy

Task type Recommended flow
Typo/docs small edit Short plan + act.
Single-file low-risk code change Plan summary + act.
New endpoint Plan -> approve -> act.
Bug fix Plan reproduction -> approve -> test/fix.
Database migration Plan -> explicit approval -> act.
Auth/security change Plan -> review -> limited act.
Production deploy Separate deploy workflow with approval.
External write Approval at tool call.
Multi-module refactor Plan -> split tasks -> act one task at a time.

Чем выше риск, тем более явным должен быть gate.

Example: API endpoint

Task:

text
Добавить POST /api/projects.

Plan Mode output

text
Understanding:
- Need endpoint for authenticated project creation.

Acceptance criteria:
- Valid name creates project.
- Empty name returns validation error.
- Owner is current user.
- Response returns 201 and id.

Relevant context inspected:
- Existing POST /api/teams endpoint.
- Existing API tests for teams.
- Validation schema pattern.

Plan:
1. Add tests for success and invalid name.
2. Add project validation schema.
3. Add route/controller using teams pattern.
4. Add service create method if missing.
5. Run targeted API test and typecheck.

In scope:
- backend route/controller
- validation
- service method
- API tests

Out of scope:
- frontend form
- billing
- auth middleware

Approval request:
- edit backend API/service/test files;
- run targeted tests.

Act Mode final output

text
Summary:
- Added POST /api/projects endpoint with validation and service integration.

Changed files:
- src/api/projects.ts
- src/services/projects.ts
- tests/api/projects.test.ts

Verification:
- npm test -- tests/api/projects.test.ts: passed, exit code 0
- npm run typecheck: passed, exit code 0

Acceptance criteria:
- Valid name creates project: satisfied.
- Empty name rejected: satisfied.
- Owner is current user: satisfied.
- 201 with id: satisfied.

Diff review:
- focused on approved backend scope;
- no auth middleware changes;
- no new dependencies.

Example: scope escalation

Task approved:

text
Add endpoint only. No database changes.

Agent discovers:

text
There is no projects table.

Wrong behavior:

text
Агент сам добавляет migration.

Correct behavior:

text
Scope escalation:
- Approved scope excluded database changes.
- Endpoint cannot satisfy persistence AC without schema support.
- Need approval to create migration as separate task.

Options:
1. Approve migration task now.
2. Change endpoint to call existing storage if available.
3. Stop after test skeleton and plan migration.

Это и есть управляемость.

Example: security-sensitive task

Task:

text
Добавь admin endpoint для блокировки пользователя.

Plan Mode должен выявить:

  • auth requirement;
  • role model;
  • audit requirement;
  • affected user state;
  • tests for unauthorized access;
  • possible abuse path.

Plan Mode output:

text
Open questions:
- Which roles can block users?
- Should blocked users receive notification?
- Is audit log required?
- Is unblock in scope?

Stop condition:
- Do not implement admin endpoint until authorization policy is explicit.

Здесь Act Mode без уточнения опасен. Planning сохраняет безопасность.

Relation to skills

Skill может задавать special loop для конкретного workflow.

Пример:

text
Plan Mode:
- выбрать skill `create-api-endpoint`;
- прочитать `SKILL.md`;
- на основе skill составить task-specific plan.

Act Mode:
- выполнять procedure из skill в approved scope;
- запускать verification из skill;
- вернуть output contract.

Skill не отменяет approval. Он помогает сделать plan и act качественнее.

Relation to tools and MCP

Plan Mode обычно использует read capabilities:

text
read_file
search_repository
read_docs_resource
get_pr_diff
get_schema

Act Mode может использовать write capabilities:

text
apply_patch
run_tests
comment_on_pr
create_issue
rerun_ci

High-risk tools все равно требуют отдельного approval:

text
deploy_production
delete_resource
write_database
charge_customer

Mode не заменяет tool security policy. Mode помогает решать, какие tools вообще показывать или разрешать на этапе.

Relation to testing

Plan Mode должен предложить verification strategy.

Act Mode должен выполнить verification или честно объяснить, почему не смог.

Переход к модулю 9:

text
Plan says what should be tested.
Act produces test evidence.
Testing discipline determines whether we trust the result.

Если plan не содержит test strategy, Act Mode часто заканчивается "готово" без доказательств.

Anti-pattern: endless planning

Plan Mode может стать ловушкой.

Плохо:

text
Агент бесконечно уточняет, классифицирует, рисует варианты,
но не предлагает executable next step.

Хороший Plan Mode заканчивается:

  • recommended next task;
  • concrete steps;
  • approval request;
  • open questions only where they matter;
  • stop conditions.

Plan Mode не должен быть способом избегать работы. Он должен делать Act Mode безопаснее и точнее.

Anti-pattern: silent act

Другой перекос:

text
Пользователь просит plan.
Агент молча редактирует код.

Это нарушение режима.

Если пользователь просит plan, brainstorming или analysis, агент должен оставаться read-only, пока не получит разрешение на execution.

Anti-pattern: approval laundering

Approval laundering - когда агент получает общее "ок" и трактует его как разрешение на все.

Пример:

text
User: "План норм."
Agent: deploys production.

Это неправильно.

Approval должен соответствовать действию:

  • approve plan;
  • approve file edits;
  • approve command;
  • approve external write;
  • approve deploy.

Чем выше риск, тем точнее approval.

Anti-pattern: broad Act Mode

Плохо:

text
Act Mode:
Можешь менять что угодно, чтобы заработало.

Для агента это invitation to scope creep.

Лучше:

text
Approved scope:
- only backend endpoint files and tests;
- no auth middleware changes;
- no migrations;
- ask before adding dependencies.

Scope должен быть достаточно узким, чтобы diff можно было review.

Mode checklist

Перед Plan Mode:

text
[ ] Есть task/spec или понятный вопрос
[ ] Режим read-only
[ ] Агент знает, что edits запрещены
[ ] Нужно вернуть plan, risks, questions, approval request

Перед Act Mode:

text
[ ] Plan approved
[ ] Scope approved
[ ] Allowed files/layers названы
[ ] Allowed commands названы
[ ] Risky tools имеют approval policy
[ ] Stop conditions названы
[ ] Expected final output задан

После Act Mode:

text
[ ] Changed files reported
[ ] Verification commands/results reported
[ ] Diff reviewed
[ ] Acceptance criteria checked
[ ] Risks/follow-ups named

Практика: сначала plan, потом act

Задача:

text
Добавить reset password flow.

Шаг 1. Plan Mode

Напишите prompt:

text
Work in Plan Mode only.

Task:
Add reset password flow.

Do not edit files.
Read the relevant specs and code.
Return:
- understanding;
- acceptance criteria;
- existing patterns;
- task breakdown;
- recommended first task;
- in scope/out of scope;
- test plan;
- risks;
- open questions;
- approval request.

Ожидаемый plan:

text
Task breakdown:
1. Request reset endpoint.
2. Token generation/storage.
3. Reset endpoint.
4. Email integration.
5. Frontend form.

Recommended first task:
Token model and backend request endpoint.

Risks:
- token reuse;
- token expiration;
- no user enumeration;
- email delivery side effects.

Open questions:
- token TTL?
- email provider in scope?

Шаг 2. Approval

Пользователь разрешает только часть:

text
Approve first backend task only.
Do not implement email sending.
Do not modify frontend.
Allowed files:
- backend auth module
- tests for auth reset request
Allowed commands:
- targeted auth tests

Шаг 3. Act Mode

Агент выполняет только approved scope и возвращает:

text
Summary:
Changed files:
Verification:
Acceptance criteria:
Diff review:
Risks:

Цель практики - почувствовать, как approval уменьшает ambiguity.

Практика: матрица прав

Заполните таблицу для своего проекта:

Capability Plan Mode Act Mode Approval
Read repo files
Search repo
Edit source files
Edit migrations
Run unit tests
Run integration tests
Read GitHub PR
Comment GitHub PR
Deploy preview
Deploy production
Query database
Write database

Возможный baseline:

Capability Plan Mode Act Mode Approval
Read repo files yes yes no
Search repo yes yes no
Edit source files no scoped scope approval
Edit migrations no scoped explicit approval
Run unit tests maybe yes no or command policy
Run integration tests no maybe if expensive/external
Read GitHub PR scoped read scoped read session scope
Comment GitHub PR no maybe approval
Deploy preview no maybe explicit request
Deploy production no no by default strong approval
Query database read schema only read-only maybe scope + redaction
Write database no no by default strong approval or disallow

Типичные ошибки

Ошибка Симптом Исправление
Plan with edits Агент меняет код во время анализа Read-only Plan Mode.
Vague approval "Ок" трактуется слишком широко Approval payload with scope.
Act without scope Большой uncontrolled diff Approved files/layers.
No verification plan Act заканчивается без tests Plan must include verification.
No escalation Агент молча расширяет задачу Stop and ask at scope boundary.
Endless planning Нет executable next step Plan ends with recommendation and approval request.
Hidden tool risk External write выполнен как часть edits Separate tool approval.
Commit too early Commit до diff review Commit-ready after evidence.
Plan ignores dirty worktree Агент рискует затереть чужие изменения Inspect status before edits in Act.

Критерии готовности

После урока студент должен уметь:

  • объяснить разницу между Plan Mode и Act Mode;
  • назвать риски смешивания planning и execution;
  • составить approval gate;
  • задать permissions by mode;
  • написать prompt для read-only Plan Mode;
  • написать prompt для scoped Act Mode;
  • распознать scope escalation;
  • ограничить Act Mode approved files и commands;
  • связать plan с test strategy;
  • завершить Act Mode evidence-based output.

Краткое резюме

Plan Mode и Act Mode разделяют две разные работы:

text
Plan Mode:
понять, спроектировать, ограничить scope, запросить approval.

Act Mode:
выполнить approved scope, проверить, показать evidence.

Это разделение превращает агента из "автоматического редактора" в управляемого участника engineering process. Самое важное не название режима, а permission boundary:

text
Planning should be read-heavy.
Execution should be scope-limited.
Risky actions need explicit approval.

Вопросы для самопроверки

  1. Почему архитектурное планирование не должно автоматически давать агенту право редактировать код?
  2. Что должно входить в approval payload между Plan Mode и Act Mode?
  3. Когда Act Mode должен остановиться и запросить escalation?
  4. Чем approval plan отличается от approval production deploy?
  5. Какие permissions вы бы дали агенту в Plan Mode для своего проекта?

Что дальше

Модуль 8 завершает single-agent execution discipline. Дальше курс переходит к testing для agentic development: чем быстрее агент генерирует изменения, тем сильнее должна быть verification. Plan Mode помогает выбрать, что проверять. Act Mode должен принести evidence, что проверка действительно выполнена.

Обновлено 03.10.2026