Скрипты — это исполняемые файлы в вашем репозитории, которые можно запустить по требованию из Pastukhov Code. Оболочечные скрипты (.sh) показывают кнопку run в редакторе файлов при открытии. При выполнении вывод потоками в реальном времени передаётся в диалог вывода скриптов, где вы можете мониторить прогресс, копировать результаты или останавливать выполняющийся скрипт.
Скрипты можно запускать из двух мест — диалог файлов (файлы проекта) и диалог навыков (файлы навыков). Оба используют один и тот же редактор файлов и процесс выполнения. Скрипты отличаются от сборок и развёртываний — сборки автоматизируются наблюдателями файлов и настраиваются в build.yml, а скрипты запускаются вручную и могут быть любым исполняемым файлом в вашем репозитории.
Диалог вывода скриптов
При выполнении скрипта диалог вывода скриптов открывается автоматически, показывая:
- Панель заголовка — отображает путь к скрипту, имя и бейдж репозитория (project или skills)
- Таймер выполнения — показывает прошедшее время while the script runs, and final duration on completion
- Индикатор состояния — вращающийся значок во время выполнения (кликабельный для остановки), зелёная галочка при успехе или состояние ошибки при неудаче
- Область вывода — прокручиваемый предварительно форматированный текст, показывающий вывод скрипта в реальном времени
- Кнопка копирования — копирует полный вывод в буфер обмена (отключена во время выполнения скрипта)
Область вывода подсвечивает строки цветовым кодированием:
- Красный — строки ошибок (сопоставлены по правилам в
.pastukhov/output.parserили встроенным шаблонам) - Оранжевый — строки предупреждений
- По умолчанию — нормальный вывод
Как выполняются скрипты
Скрипты проходят через этот процесс:
- Путь к скрипту разрешается в полный путь к файлу в репозитории (project или skills)
- Файл делается исполняемым (
chmod +xв Unix-системах) - Запускается процесс bash с
/bin/bash scriptPath - Вывод (stdout и stderr) захватывается асинхронно и буферизуется для предотвращения перегрузки
- Буферизованный вывод передаётся в браузер через SignalR каждые 100мс
- Когда процесс завершается, отправляется сообщение о завершении и таймер останавливается
Рабочий каталог для выполнения скриптов — корень проекта. Переменные окружения PYTHONIOENCODING=utf-8 и LANG=en_US.UTF-8 устанавливаются автоматически.
Остановка скрипта
Чтобы остановить выполняющийся скрипт, нажмите на вращающийся значок остановки в заголовке диалога. Сервер убивает всё дерево процессов (включая дочерние процессы), сбрасывает любой буферизованный вывод и отправляет сообщение “Скрипт остановлен пользователем”.
Закрытие диалога также автоматически останавливает скрипт — это предотвращает продолжение выполнения скриптов в фоновом режиме, если вы случайно уходите или закрываете окно вывода.
Парсинг вывода
Вывод скриптов автоматически парсится для подсветки ошибок и предупреждений. Правила парсинга определены в .pastukhov/output.parser — нет необходимости редактировать этот файл вручную. Простейший способ исправить шаблоны парсера: выберите необработанный текст в выводе и нажмите плавающую кнопку Fix parser для отправки его ИИ. См. .pastukhov/README.md для справки по формату файла парсера.
[ERROR]
Error:\s+(.*)
[/ERROR]
[WARNING]
Warning:\s+(.*)
[/WARNING]
Встроенные шаблоны обнаружения охватывают распространённые форматы ошибок без какой-либо конфигурации:
- Ошибки оболочки: “command not found”, “Permission denied”, “Segmentation fault”
- Python: Tracebacks, SyntaxError, ModuleNotFoundError, ImportError
- Node.js: Error:, TypeError, npm ERR!
- .NET: Build errors, exceptions
- HTTP: Status codes 4xx/5xx, connection refused, timeouts
Поддерживаемые репозитории
Скрипты могут быть выполнены из двух репозиториев:
- Project — основной репозиторий рабочего пространства проекта
- Skills — каталог навыков Claude (
.claude/skills)
Репозиторий отображается как бейдж в заголовке диалога, поэтому вы всегда знаете, в каком контексте выполняется скрипт.
Скрипты против сборок
Скрипты и сборки служат разным целям в Pastukhov Code:
- Скрипты — запускаются по требованию, любой исполняемый файл, вывод в реальном времени через SignalR, интерактивная возможность остановки. Файл конфигурации не требуется.
- Сборки — запускаются автоматически при изменении файлов, настроены в
.pastukhov/build.yml, вывод кэшируется в файлы, могут запускать развёртывания при завершении. См. Build & Deploy для подробностей.
Используйте скрипты для специальных задач, таких как запуск тестов, миграция данных или разовые операции. Используйте сборки для непрерывной компиляции и автоматизированных рабочих процессов.