IWE в Pi + ChatGPT: инструменты, мосты и переносимость

Claude Code за 20 € мне для работы маловато, но есть подписка на ChatGPT. Отсюда задача: можно ли взять уже живую IWE, перенести её в Pi, подключить ChatGPT-подписку как двигатель - и не переписывать саму систему под новую модель?

Короткий ответ: да, можно. Но работает это не магией модели, а тремя слоями поддержки: контекст, инструменты и ограждения.

1. Что вообще запускается

Pi - это минимальная терминальная упряжь для кодового агента, я выбрал её как легко модифицируемую среду. Внутри можно работать не только через Claude, но и через ChatGPT-подписку: в моём случае Pi ходит в OpenAI Codex через обычный вход в ChatGPT Plus/Pro.

Снаружи это выглядит так:


человек

-> Pi в терминале

-> ChatGPT/Codex как модель

-> IWE-репозитории

-> навыки, протоколы, проверки, память, MCP-инструменты

Главная идея: модель меняется, а IWE остаётся той же. Не надо переписывать ритуалы под ChatGPT - надо дать Pi доступ к тем же контрактам, файлам и проверкам, которыми уже пользуется Claude Code.

2. Какие инструменты есть в голом Pi

Из коробки Pi даёт агенту базовый набор: read, write, edit, bash, grep, find, ls. Это «руки» агента - читать, писать, искать, запускать команды.

Но для IWE этого мало. IWE держится не на том, что агент умеет читать и писать файлы, а на том, что он работает по протоколам.

3. Какие IWE-инструменты добавлены поверх Pi

Поверх базовых «рук» поднимаются три слоя: навыки IWE, инструменты совместимости с Claude Code и MCP-доступ к базе знаний.

3.1. Навыки IWE - привычные команды ежедневного контура

Pi умеет подключать навыки по стандарту Agent Skills, поэтому IWE-навыки из .claude/skills/ подключаются без переписывания. В сборке адаптера добавлен поддержанный слой для ежедневного контура (это не полный паритет со всем Claude Code):

| Команда | Что запускает |

|—|—|

| /day-open | открытие дня |

| /day-close | закрытие дня |

| /week-close | закрытие недели |

| /month-close | закрытие месяца |

| /run-protocol | пошаговый протокол ОРЗ |

| /verify | проверка результата по эталону |

| /archgate | архитектурная оценка решения |

| /ke | извлечение знания |

| /wp-new | создание рабочего продукта |

| /think | структурированное рассуждение |

Остальные навыки доступны через нативную форму Pi: /skill:имя-навыка (например /skill:strategy-session, /skill:iwe-update, /skill:pack-new).

3.2. Три инструмента совместимости с Claude Code

В Claude Code часть протоколов ожидает специальные инструменты. В Pi их нет из коробки, поэтому я добавил слой совместимости. Он уже активен в адаптере; оговорка честности: daily-сценарии проверены, редкие edge cases требуют отдельных smoke-проверок.

| Инструмент | Что делает | Как поддержан |

|—|—|—|

| Skill | агент программно вызывает нужный навык | расширение превращает вызов в /skill:name |

| Task | запускает изолированного подагента | расширение запускает pi --print --no-session в отдельном процессе |

| TodoWrite | ведёт список шагов задачи | расширение рисует виджет над редактором и хранит состояние в сессии |

Это не «красивые кнопки», а важные элементы поведения. Без Task сложнее делать изолированную проверку. Без TodoWrite сложнее держать длинный протокол. Без Skill агент не может сам перейти к нужному IWE-навыку.

3.3. MCP-инструменты IWE - доступ к базе знаний

Отдельный слой - инструменты платформы IWE через MCP: доступ не только к локальным файлам, но и к платформенной и личной базе знаний. Без завышения: базовый поиск IWE через MCP проверен, а полный список инструментов - это подключённый контур, не обещание, что каждый редкий сценарий уже прогнан вручную.

| Группа | Примеры | Что даёт |

|—|—|—|

| Поиск знаний | search, knowledge_search, personal_search | найти платформенные и личные материалы |

| Документы | knowledge_get_document, personal_get_document | открыть конкретный документ |

| Граф понятий | concept_search, concept_expand, pack_traverse | увидеть связи между понятиями и Pack-артефактами |

| Личная база | personal_write, personal_propose_capture | записать заметку, предложить capture |

| GitHub | github_status, create_repository, connect_source | подключать пространства знаний |

| Ритм и связь | send_telegram_message | отправлять напоминания и сигналы |

| Роли и агенты | run_strategist, run_extractor, agent_status_update | запускать серверные роли и показывать статус |

Для пользователя это выглядит как «агент знает мои материалы». Технически это OAuth, MCP-сервер и кэш инструментов в Pi.

4. Что поддерживает правила IWE

Самое важное в IWE - не список команд, а ограждения. Агент должен не просто «уметь делать», а делать в правильном порядке. Для этого в Pi перенесён мост хуков: он слушает события Pi и запускает те же shell-проверки, которые уже есть в IWE.

Список ограждений (хуки-проверки)

| Проверка | Когда срабатывает | Что защищает |

|—|—|—|

| WP Gate | перед обработкой запроса | не начинать незапланированную работу без открытия |

| Close Gate | при словах «закрывай», «заливай», «push» | не путать push и закрытие |

| Extensions Gate | перед правкой файлов | не менять платформенные файлы вместо пользовательских расширений |

| Проверка артефакта | перед командами и записью | не создать план без обязательных полей |

| Capture Bus | перед правками и в конце хода | не потерять знание, найденное в работе |

| Dry-run Gate | перед опасными действиями | не запускать разрушительное действие без безопасного режима |

| Stop Gate | при остановке агента | не закончить сессию с незакрытым протоколом |

| PreCompact | перед сжатием контекста | сохранить состояние перед потерей деталей |

Вот здесь и проявляется разница между «чатом с моделью» и рабочей средой. Модель может ошибиться. Но если она остаётся внутри ограждений, система ловит часть ошибок до того, как они становятся последствиями.

5. Как именно обеспечена поддержка

Поддержка разложена на три слоя.

Слой 1. Конфигурация без кода - «как Pi вообще видит IWE?»

В настройках Pi прописаны: вход через ChatGPT Plus/Pro как провайдера модели; основная модель для тяжёлой работы; быстрая модель для подагентов и проверок; путь к IWE-навыкам; разрешение на команды навыков; пакеты Pi, включая MCP-адаптер и IWE-расширения; связка AGENTS.md -> CLAUDE.md, чтобы Pi загружал те же инструкции, что и Claude Code.

Слой 2. Расширение совместимости - «как сделать Pi похожим на Claude Code, не меняя IWE?»

Отдельное Pi-расширение добавляет привычный IWE-интерфейс: короткие команды /day-open, /verify, /run-protocol; инструменты Skill, Task, TodoWrite; защиту от будущего конфликта имён, если Pi сам когда-нибудь добавит такие инструменты; защиту от зацикливания при вызове навыков через навыки.

Слой 3. Мост проверок - «как не потерять правила при смене упряжи?»

Второе расширение связывает события Pi с хуками IWE:

| Событие Pi | Что заменяет из Claude Code |

|—|—|

| старт сессии | SessionStart |

| пользователь отправил запрос | UserPromptSubmit |

| агент вызывает инструмент | PreToolUse |

| инструмент завершился | PostToolUse |

| агент заканчивает ход | Stop |

| начинается сжатие контекста | PreCompact |

Дополнительно мост передаёт служебный контекст, идентификатор сессии и журнал действий в форме, которую понимают существующие IWE-скрипты.

6. Что уже проверено

Проверка была не игрушечной, но статус разный у слоёв: daily-ритуалы проверены боевым прогоном; расширение совместимости активно; полный набор редких сценариев остаётся зоной отдельных smoke-проверок.

Я запускал ежедневные ритуалы через Pi на ChatGPT-модели:

  • закрытие дня прошло в боевом контуре;

  • открытие дня создало план, учло переносы, бюджет, календарь и состояние системы;

  • результат проверялся отдельно, изолированной проверкой;

  • итоговая оценка открытия дня - 8 из 10 без критических провалов;

  • когда проверка поймала некорректное заполнение поля, модель не обошла правило, а исправила результат под контракт.

Главный вывод: Pi + ChatGPT уже годится как ежедневный исполнитель для части IWE-ритуалов. Не потому что модель идеальна, а потому что работа описана контрактами и окружена проверками.

Если коротко и честно: ежедневный контур прошёл проверку; слой совместимости и MCP подключены; полный паритет со всеми возможностями Claude Code не заявляется.

Следующий шаг, чтобы снять оговорку про edge cases однозначно. Нужен единый проверочный прогон - тестовый скрипт, который по очереди вызывает все используемые в IWE инструменты, команды-навыки и хуки и ведёт отчёт по каждому: выполнилось, упало с ошибкой или молча пропущено. Молчаливый пропуск (хук на месте, но по факту ничего не сделал) - самый коварный случай: снаружи выглядит как «всё работает», а на деле проверка не сработала. С таким отчётом полнота поддержки в каждой рабочей среде - Claude Code, Pi + ChatGPT - подтверждается не на глаз, а списком с галочками по каждому инструменту, вызову и хуку.

7. Что честно не покрыто

Граница: что осталось за рамками

| Не покрыто | Почему |

|—|—|

| Plan mode как в Claude Code | в Pi это не базовая функция |

| ExitPlanMode | нет прямого аналога, можно строить отдельно |

| ScheduleWakeup | лучше выносить во внешний cron/systemd |

| WebFetch и WebSearch | нужны отдельные навыки или расширения |

| VS Code selection и screenshot bridge | Pi - терминальная среда, физика другая |

| полное равенство всех edge cases | часть сценариев требует отдельных smoke-проверок |

Это нормальная граница. Цель была не «сделать второй Claude Code», а проверить переносимость IWE-контрактов в другой рантайм.

8. Различение, которое отсюда следует

Смена модели - это слабый тест. Смена упряжи - сильнее. Если система работает только в одном интерфейсе и только с одной моделью, значит часть системы живёт в привычках конкретного агента.

IWE в Pi + ChatGPT показала другое: если есть записанные протоколы, навыки, контекст, инструменты и проверки, то модель становится заменяемым исполнителем. Не полностью бесплатным и не без настройки, но заменяемым.

Именно это я считаю главным результатом. Не «ChatGPT теперь делает всё как Claude», а вот это:

IWE отделяет интеллектуальную работу от конкретной модели. Модель остаётся важной, но больше не является единственным носителем системы.

Это и есть экзоскелет, а не автопилот.

3 лайка