Последний месяц я активно использую Plannotator и уже не представляю работу с harness, обычно OpenCode, без него.

Он закрывает сразу две неудобные точки в работе с AI-агентами: проверку того, что агент собирается делать, и проверку того, что он в итоге сделал.


Ревью плана⌗

На старте крупной задачи в Plan Mode агент выдаёт объёмный план. Во время чтения к нему нужно оставлять комментарии: что-то удалить, объяснить подробнее, сделать по-другому или исследовать глубже.

В обычном чате это неудобно. Приходится копировать цитаты из плана, чтобы агент понял, к какой части относится комментарий. Параллельно возникают вопросы, и тогда экран уезжает от места, на котором остановилось чтение. Можно форкнуть сессию, но это тоже не лучший сценарий.

Plannotator получает готовый план, открывает его в отдельном окне браузера и позволяет ревьюить его примерно как pull request.

Можно выделить конкретный фрагмент текста и написать прямо к нему: удалить, переделать, исследовать подробнее или объяснить решение. В конце все комментарии одним пакетом возвращаются агенту, он дорабатывает план, а следующую версию можно снова вычитать.

Схема получается такой:

план → спокойное чтение и inline-комментарии → агент → новая версия

Ревью кода⌗

После реализации задачи можно вызвать /plannotator-review и получить в браузере обычный PR-style diff текущих изменений:

  • дерево файлов;
  • изменения по строкам;
  • возможность оставлять inline-комментарии.

После ревью все замечания одним пакетом отправляются обратно в ту же OpenCode-сессию. Агент исправляет код, после чего review можно открыть снова.

Полный цикл выглядит так:

Plan → Plannotator → Implementation → Plannotator Code Review → Fixes → PR

Можно ревьюить и уже существующий GitHub PR, просто передав /plannotator-review ссылку на него.


Что пока не идеально⌗

Plannotator — local-first, open source и поддерживает не только OpenCode, но и Claude Code, Codex, Gemini CLI, Copilot CLI, Pi и другие harness.

Мне пока не хватает возможности прямо из Plannotator задавать вопросы тому же агенту в той же OpenCode-сессии, которая породила план. Сейчас основной сценарий асинхронный: собрать комментарии, отправить их обратно и продолжить работу.

Но даже в текущем виде для больших задач это один из тех инструментов, после которых возвращаться к ревью планов в обычном чате уже не хочется.