Просмотрщик файлов и запуск скриптов

Просмотрщик файлов и запуск скриптов — это ручная проверка «впридачу» к автоматической. Автоисправление чинит ошибки само, система сборки проверяет код при каждом изменении, а просмотрщик даёт вам самим быстро посмотреть файлы проекта, а запуск скриптов — выполнить любую команду и видеть её вывод в реальном времени. Всё это — прямо в интерфейсе, не выходя из чата.

Окно просмотрщика файлов Pastukhov Agent

Встроенный просмотрщик файлов

Диалог «Файлы» открывается из представления чата: слева — дерево папок проекта, справа — редактор. Удобно листать файлы, смотреть их содержимое и проверять, что именно изменила модель.

  • Дерево файлов — структура папок проекта; каталоги раскрываются, чтобы показать содержимое
  • Подсветка синтаксиса — код показывается с цветной разметкой по типу файла, читать его проще
  • Автосохранение — изменения сохраняются сами через 2 секунды после остановки набора

Просмотрщик не заменяет полноценный редактор кода — он для быстрого осмотра и мелких правок. Для серьёзной работы используйте привычный редактор, а остальное поручите ИИ.

Просмотрщик особенно полезен после того, как модель закончила работу: откройте изменённые файлы и убедитесь, что правки верные, соответствуют вашим правилам и не задели лишнего. Это дополняет проверку изменений git: панель git показывает, что менялось, а просмотрщик — полный контекст каждого изменения.

Просмотрщик работает с единым репозиторием проекта, куда входят и код, и навыки (папка .claude/skills).


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

У файлов-скриптов (расширение .sh) в редакторе появляется кнопка запуска. При нажатии вывод идёт в реальном времени в диалог «Вывод скрипта». Скрипты отличаются от сборок: сборки запускаются автоматически при изменениях и настраиваются в файле build.yml, а скрипт вы запускаете вручную в любой момент — это может быть любой исполняемый файл из вашего репозитория. Удобнее всего держать скрипты внутри навыков: так автоматические сборки и развёртывания можно запускать прямо из чата, открыв нужный навык.

Как это работает

  1. Путь к скрипту находится в выбранном репозитории (проект или навыки)
  2. Файлу автоматически даётся право на запуск (chmod +x в Unix-системах)
  3. Скрипт запускается через /bin/bash scriptPath из корневого каталога проекта
  4. Автоматически задаются переменные окружения PYTHONIOENCODING=utf-8 и LANG=en_US.UTF-8, чтобы текст вывода читался корректно
  5. Вывод собирается небольшими порциями и каждые 100 мс передаётся в браузер, так что поток не перегружает интерфейс
  6. По завершении приходит сообщение об окончании, таймер выполнения останавливается

Диалог вывода скрипта

Когда скрипт работает, диалог «Вывод скрипта» открывается автоматически и показывает:

  • Таймер выполнения — прошедшее время, по завершении — общая длительность (обновляется каждые 100 мс)
  • Индикатор состояния — вращающийся значок во время работы (по нему можно остановить скрипт), зелёная галочка при успехе, знак ошибки при сбое
  • Цветной вывод — строки ошибок подсвечены красным, предупреждения — оранжевым, обычный вывод — обычным цветом
  • Автопрокрутка — вывод автоматически прокручивается к концу по мере поступления. Прокрутите вверх — автопрокрутка отключится; вернитесь вниз — она включится снова
  • Кнопка копирования — копирует весь вывод в буфер обмена (доступна после завершения)
  • Значок репозитория — показывает, откуда выполнялся скрипт: из проекта или из навыков

Остановка скриптов

Нажмите на вращающийся значок остановки, чтобы прервать работающий скрипт. Сервер завершит всё дерево процессов (включая вложенные), очистит накопленный вывод и покажет сообщение «Скрипт остановлен пользователем». Закрытие диалога тоже останавливает скрипт — фоновые процессы не продолжают работать, если вы ушли.


Звуки скриптов

Когда скрипт завершается — успешно или с ошибкой — звучит общий звук complete. В отличие от сборок, у скриптов нет отдельных звуков под каждую задачу. Чтобы изменить звук, положите свой MP3-файл с именем complete.mp3 в папку .pastukhov/sounds/ — он заменит встроенный. Громкость настраивается в разделе Настройки → Настройки звука, а полностью отключить звуки можно значком динамика в заголовке чата. Подробности — в разделе Проверка звуковой обратной связи.


Разбор вывода скрипта

Вывод скрипта автоматически разбирается с помощью файла .pastukhov/output.parser, который использует тот же формат блоков [ERROR]/[/ERROR], что и разборщики сборок и развёртывания. Встроенные шаблоны распознают самые частые ошибки без всякой настройки:

  • Ошибки оболочки — «command not found» (команда не найдена), «Permission denied» (нет прав), «No such file or directory» (нет файла), «Segmentation fault» (сбой программы)
  • Ошибки Python — трассировки (протокол сбоя), SyntaxError, ModuleNotFoundError, ImportError
  • Ошибки Node.js — Error с описанием, TypeError, npm ERR!
  • Ошибки .NET — ошибки сборки, исключения, фатальные ошибки
  • Ошибки сети — «Connection refused» (отказ соединения), ECONNREFUSED, тайм-ауты, коды ответов 4xx/5xx

Формат файла разборки

⚠️ Не редактируйте файлы разборки вручную — попросите модель ИИ сделать это за вас. Файл .pastukhov/README.md послужит справочником: там подробно описан синтаксис файлов разборки и назначение всех остальных файлов и папок каталога .pastukhov/.

  • Строки комментариев, начинающиеся с #, игнорируются
  • Однострочные шаблоны — маска поиска, которая должна точно совпасть с одной строкой вывода
  • Многострочные шаблоны — обёрнуты в {{...}}, захватывают несколько идущих подряд строк после внутренней маски
# Трассировки Python с контекстом
[ERROR]
Traceback \(most recent call last\):
{{^\s+.*}}
[^\s]+: [^\n]+
[/ERROR]

# Блоки ошибок npm ERR!
[ERROR]
npm ERR!.*
{{npm ERR!.*}}
[/ERROR]

# Предупреждения
[WARNING]
warning:.*
{{^\s+.*}}
[/WARNING]

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

Свои шаблоны под формат ошибок вашего приложения можно добавить в output.parser — или попросить модель ИИ обновить файл. Разборщик перезагружается сам при изменении файла.


Полезные приёмы

Хорошее правило: сборки — для повторяющихся проверок, которые случаются много раз в день (компиляция, проверка стиля кода, типы, тесты). Скрипты — для проверок нерегулярных или тех, что требуют ожидания и ручного управления: разовые развёртывания, диагностика, интерактивные инструменты.

  • Быстрые проверки после работы ИИ — запустите тестовый скрипт или откройте файл журнала прямо из диалога «Файлы», не переключаясь на терминал. Это быстрее, чем просить модель выполнить команду
  • Скрипты для всего остального — если под нужную проверку не настроена сборка, создайте быстрый скрипт. Он запускается сразу, без ожидания срабатывания наблюдателей файлов
  • Соединяйте скрипты с чатом — если скрипт нашёл ошибку, отправьте его вывод в чат и попросите ИИ исправить: модель прочитает вывод и внесёт точечные правки
  • Проверяйте файлы глазами — после сложных правок откройте изменённые файлы в просмотрщике: так видны тонкие проблемы, которые не показывает сравнение версий

Полный справочник по скриптам — в разделе Скрипты. Возможности работы с файлами — в Файлы. Об автоматической проверке без ручного участия — в Проверка автоматической сборки.