Перейти до вмісту

Як це працює

Від однієї мети до плану, який можна відстежувати

Шість етапів по колу. Ви кажете, чого хочете. PO планує, упорядковує завдання, пригадує, що знає проєкт, виконує роботу, перевіряє її й зберігає те, чого навчився. Під кожним етапом можна відкрити технічні подробиці.

План → Порядок → Пригадати → Виконання → Перевірка → Навчання, потім знову «Пригадати». Те, що етап 6 зберігає, етап 3 пригадує в наступному плані.

Цикл

Цикл, етап за етапом

Прокручуйте: кожну картинку намальовано так, як екрани продукту. Приклад — вихідні для команди.

Етап 1 з 6

Ви кажете, чого хочете, — і отримуєте план

Ви описуєте результат одним реченням. Асистент перетворює його на план із завданнями. У кожного завдання є кроки, і кожен крок каже, як перевірити, що його виконано.

Під капотом

Результат зберігається як план із пріоритетом і обмеженнями, а потім ділиться на завдання. Кожне завдання вказує, від чого залежить, і перелічує свої кроки. Кожен крок несе перевірку, що доводить його виконання.

Плани, завдання й кроки зберігаються як дані, а не як вільний текст у чаті. Екрани та виконавець читають одні й ті самі статуси.

plan(action: "create", title, description, priority: 8, constraints: [{ constraint_type: "performance", … }])task(action: "create", plan_id, title, depends_on: [task_id], steps: [{ description, verification }])
  • Статус плану: draft, approved, in_progress, completed, cancelled.
  • Типи обмежень: performance, security, style, compatibility, other.
  • code(action: "plan_implementation", auto_create_plan: true) складає чернетку плану з графа коду.

Етап 2 з 6

Завдання, що не залежать одне від одного, йдуть разом

PO сортує завдання. Завдання чекає лише на ті завдання, які йому потрібні. Усі інші можуть стартувати зараз, одночасно.

Під капотом

Завдання стартує, лише коли все, від чого воно залежить, виконано. PO перетворює ці зв’язки на хвилі: хвиля 1 містить усі завдання без невиконаних передумов, хвиля 2 — те, що відкрила хвиля 1, і так далі.

Завдання однієї хвилі незалежні, тож виконуються одночасно. Найдовший ланцюжок залежностей, критичний шлях, задає мінімальну кількість хвиль.

plan(action: "get_waves", plan_id)plan(action: "get_critical_path", plan_id)
  • plan(action: "get_dependency_graph") повертає DAG завдань.
  • task(action: "get_next") повертає наступне незаблоковане завдання, спершу з найвищим пріоритетом.
  • Коли запуск відновлюється, хвилі перераховуються, а завершені хвилі пропускаються.

Етап 3 з 6

Асистент шукає те, що проєкт уже знає

Перед кожним завданням асистент читає нотатки й рішення, що стосуються справи. Тож він не ставить тих самих запитань знову.

Під капотом

Перед завданням асистент читає пам’ять проєкту: нотатки (застереження, настанови, шаблони), рішення з їхніми причинами та, для проєкту з кодом, код навколо файлів, яких торкнеться. Пошук за змістом спершу знаходить найближчі збіги.

Потім PO йде за зв’язками між нотатками. Нотатка, що не збіглася із запитанням, усе одно може з’явитися, бо нотатка, яка збіглася, міцно з нею пов’язана. З кожним кроком зв’язок слабшає, а нотатки, що згасли, відкидаються.

note(action: "search_semantic", query, project_slug)decision(action: "search_semantic", query)admin(action: "search_neurons", query, max_hops: 2)note(action: "get_context", entity_type: "file", entity_id)
  • Типові параметри поширення активації: 20 початкових нотаток, 2 переходи, сигнал слабшає вдвічі на кожному переході, 10 результатів.
  • 40% місць у результатах зарезервовано для нотаток, досягнутих через синапси.
  • Поширений бал — це бал батьківської нотатки × вага синапса × енергія нотатки × згасання.

Етап 4 з 6

Асистенти виконують завдання, група за групою

Кожне завдання йде до власного асистента. Завдання групи виконуються одночасно, а наступна група чекає.

Під капотом

plan(action: "run") запускає виконавця у власній гілці git. Для кожної хвилі він стартує одну сесію агента на кожне придатне завдання й виконує їх паралельно, до ліміту (за замовчуванням 4).

Кожне завдання отримує підказку, зібрану з пам’яті проєкту: опис, кроки й обмеження, пов’язані нотатки, відповідні персону та навички і підсумок того, що зробили попередні хвилі. Охоронець стежить за сесією — простій, повторювані виклики, тайм-аути — і надсилає підказку, коли агент збивається зі шляху.

plan(action: "run", plan_id, cwd, project_slug)plan(action: "run_status", plan_id)
  • Завдання профілюється як просте, складне або творче за його тегами, кроками та файлами. Профіль задає ліміт часу й бюджет вартості.
  • Просте: 600 с і $0,50. Складне: 3600 с і $2,00. Творче: 1800 с і $1,00.
  • Запуски зберігаються, тож запуск можна відновити після перезапуску. plan(action: "cancel_run") зупиняє його.

Етап 5 з 6

Група готова, коли її перевірки пройдено

Перш ніж стартує наступна група, PO перевіряє роботу. Кроки мають бути закриті, а чутливих файлів у змінах бути не має. Для проєкту з кодом PO також перевіряє, що він, як і раніше, збирається.

Під капотом

Коли хвиля закінчується, виконавець перевіряє її до старту наступної. Він перевіряє, що агенти створили коміти, що кожен крок виконано або пропущено, що проєкт збирається і що в різниці немає чутливих файлів.

Сам запуск — це скінченний автомат. Протокол життєвого циклу переходить від approved до executing і далі до post_run, і кожен перехід потребує явного тригера. Завдання, чий агент зазнав збою або перевищив час, за замовчуванням повторюється один раз, із помилкою як контекстом.

protocol(action: "transition", run_id, trigger: "child_completed")step(action: "get_progress", task_id)
  • Перевірка збірки: cargo check, npm run build або go build ./..., залежно від виявленої мови.
  • Чутливі файли, які відхиляються: .env, credentials.json, *.pem, *.key та подібні.
  • Тести — опція, за замовчуванням вимкнена. plan-runner-reviewed додає стан awaiting_review для людини.

Етап 6 з 6

Те, чого навчилися, зберігається на наступний раз

Коли роботу завершено, ухвалені рішення й набуті знання записуються назад у пам’ять проєкту. Наступний план починається з них.

Під капотом

Коли завдання завершується, виконавець записує дані назад, не викликаючи моделі: пов’язує коміти із завданням і планом, створює контекстну нотатку з журналу git і прив’язує рішення до файлів, на які вони впливають.

Асистент додає те, що знає лише він: рішення з альтернативами, застереження, шаблони. Нотатки, що використовуються разом, зближуються. Нотатки, які ніколи не використовують, втрачають енергію й застарівають. Епізод фіксує запит, шлях станами та результат. Наступний план починається з етапу 3 з усім цим.

decision(action: "add", task_id, rationale, alternatives)note(action: "create", note_type: "gotcha", content, anchors)episode(action: "collect", run_id, project_id)admin(action: "reinforce_neurons", note_ids)
  • Застарілість зростає з часом від останньої активності, зі швидкістю, що залежить від типу нотатки. note(action: "confirm") скидає її.
  • Навички виникають із кластерів міцно пов’язаних нотаток (admin(action: "detect_skills")).

Відповідальність

Хто що робить

PO бере на себе механіку, щоб асистент міг зосередитися на роботі.

PO робить сам, без прохання

  • Розбиває завдання на групи й запускає асистентів.
  • Перевіряє кожну групу: кроки закриті, чутливих файлів немає, а для проєкту з кодом — ще й збірка.
  • Пов’язує зміни із завданням і пише нотатку про те, що сталося.
  • Тримає зміни кожного запуску у власній гілці git.
  • Записує, які персона й навички допомогли.

Асистент робить через свої інструменти

  • Перед стартом шукає нотатки й рішення.
  • Створює плани, завдання й кроки та оновлює їхній статус.
  • Зберігає рішення з альтернативами та тим, на що вони впливають.
  • Пише застереження, настанови й шаблони, прив’язані до того, чого вони стосуються.
  • Просуває процедуру вперед, крок за кроком.

Точки входу

Три способи запустити цикл

З вашого ШІ-інструмента

Claude Code, Cursor чи інший ШІ-інструмент, підключений до PO. Ви описуєте результат. Він планує, упорядковує й пригадує, а наприкінці зберігає те, чого навчився.

Із чату

Вбудований у PO чат розмовляє з тим самим асистентом. Кожне повідомлення несе відповідні навички, нотатки й рішення та те, що виконується.

Самостійно

План може виконуватися, коли нікого немає. Він стартує за розкладом або коли трапляється подія, з паузою між двома запусками. Типи старту: schedule, webhook, event і chat.

Пам’ять

PO пам’ятає, що ви вирішуєте й дізнаєтеся

Нотатки, рішення та зв’язки між ними залишаються прикріпленими до вашого проєкту. PO знаходить їх знову, коли вони стають у пригоді. Прокручуйте, щоб побачити, як росте пам’ять.

menu.pdfcaterer-quote.pdfallergies.xlsxinvoice.pdfoffers.pdfbadges.pptxQuote valid for 30 daysAllergy list sentCaterer chosen on March 5Contract signedInvitations sent on April 160 replies so farInvite partners too
FilePlanTaskNoteDecision

Вигаданий приклад: невеликий проєкт події. Назви на графі — ілюстрації, а не ваші дані. Кольори й форми — як у графі продукту.

  1. 1 з 5

    Ваші файли стають точками

    PO починає з того, що є в проєкті: документи, таблиці, файли. Кожен із них — синя точка.

  2. 2 з 5

    Додаються плани й завдання

    Плани й завдання додаються на ту саму картину. Кожне завдання пов’язане з файлами, яких торкається.

  3. 3 з 5

    Нотатки й рішення лишаються пов’язаними

    Те, що ви дізнаєтеся, стає нотаткою. Те, що вирішуєте, стає рішенням. Обидва лишаються пов’язаними з файлами та між собою.

  4. 4 з 5

    Споріднене групується

    Елементи про одну тему зближуються. Основні теми проєкту видно одразу.

  5. 5 з 5

    PO знаходить відповідь за зв’язками

    Ви ставите запитання. PO знаходить нотатки, що збігаються (блакитні). Потім іде за зв’язками до пов’язаних елементів (фіолетові), навіть якщо слова інші.

Під капотом: назви зв’язків

Так продукт називає зв’язки у своєму графі. Щоб користуватися PO, вони вам не потрібні.

  • CONTAINSПлан містить свої завдання.
  • IMPORTSФайл використовує інший файл.
  • AFFECTSЗавдання торкається файлу.
  • CO_CHANGEDДва файли, що часто змінюються разом, видно з історії коду.
  • SYNAPSEЗв’язок між нотатками, рішеннями та файлами. Зв’язки, якими ніхто не користується, згасають.

Спробуйте

Подивіться, як асистент працює з PO

Оберіть запит. Ви побачите відповідь простими словами та виклики, які асистент непомітно надсилає до PO. Відкрийте виклик, щоб побачити подробиці.

Chat · team-weekendІмітація
Organize a weekend in June for my team of 12. We want a quiet place near a train station.

Two notes apply: the place must be close to a train station, and last year the menu had nothing vegetarian. I will write the plan around both.

The plan has 3 tasks in 2 waves. The shortlist and the date poll do not depend on each other, so they happen at the same time. Booking waits for both.

Заздалегідь написані відповіді. Сервер не викликається.

Імітація: відповіді заздалегідь написані, сервер не викликається. Виклики та їхні аргументи — справжні.

Почніть

Дайте своїм агентам пам’ять і план

Установіть оркестратор, підключіть Claude Code через MCP — і нехай ваш перший агент прочитає проєкт, перш ніж напише хоч рядок.

Або почніть із термінала

brew install this-rs/tap/project-orchestrator