Адаптация рабочих процессов gstack для rcode. Скиллы используют реальные инструменты rcode и загружают дополнительные инструкции по необходимости. Текст скилла не предоставляет разрешений, не меняет провайдера и не заменяет проверки приложения.
Исходный проект: gstack, MIT. Проверенная исходная версия и commit указаны в UPSTREAM.json. Список адаптированных процессов и ограничений хранится в inventory.json; наличие инструкции не доказывает работу внешнего браузера, iOS-устройства или сторонней модели.
Установите набор из GitHub и откройте каталог скиллов:
rcode skills install https://github.com/adw0rd/rstack.git --name rstack
rcode skills listВ неинтерактивном запуске добавьте --yes для разрешения загрузки. Для работы над самим набором можно клонировать репозиторий и подключить локальный каталог из другого проекта:
git clone https://github.com/adw0rd/rstack.git "$HOME/work/rstack"
rcode skills link --name rstack "$HOME/work/rstack/skills"Полный ID скилла — rstack:review, rstack:qa или другое имя из каталога. В запросе укажите нужный ID; агент должен вызвать load_skill перед выполнением процесса.
В интерактивном rcode используйте явный выбор скилла:
/skill rstack:review Проверь текущие изменения и укажи подтверждённые ошибки.
/skill rstack:qa Воспроизведи баг, исправь причину и проверь результат.
/skill rstack:investigate Разберись, почему падает этот тест.
Начните с этих трёх процедур: они используют файловые инструменты и команды проекта. Для browser/iOS и внешних сервисов сначала нужен соответствующий runtime; наличие скилла его не устанавливает.
Для проверки конкретного бинарника можно указать его путь. Не запускайте link из самого rstack: rcode отклоняет источник внутри текущего рабочего проекта или RCODE_HOME.
python3 bin/rstack install --rcode /path/to/rcode --project /path/to/other-project
# Предыдущая команда только печатает argv. Для регистрации:
python3 bin/rstack install --rcode /path/to/rcode --project /path/to/other-project --executeinstall вызывает штатный rcode skills link. Существующая метка не заменяется; для её изменения используйте штатный rcode skills unlink после проверки текущей настройки. Скрипт не редактирует настройки или разрешения вручную.
Требуются Python 3.10+ и Git. Дополнительные Python-пакеты не нужны. Helper ускоряет рутинный сбор данных; скиллы могут работать без него через native tools rcode. В plan mode shell недоступен: применяйте read_file, search, list_files и явно отмечайте неисполненные проверки.
python3 bin/rstack doctor --root /path/to/project
python3 bin/rstack context --root /path/to/project --base main
python3 bin/rstack diff --root /path/to/project --base main --path src/app.rs --max-bytes 24000
python3 bin/rstack checks --root /path/to/project
python3 bin/rstack validate --skills skillsdoctorсообщает наличие executable и рабочей Git-копии. Это не проверка авторизации, доступа к браузеру или готовности к публикации.contextсвязывает HEAD, локальную merge base и содержимое изменённых/новых обычных файлов в snapshot SHA-256. По умолчанию база — HEAD;--baseне делает fetch. Файлы по secret-путям, ignored-файлы, symlinks и файлы больше 1 МиБ исключаются с явной причиной. Больше 2000 изменённых файлов или слишком большой вывод Git приводят к отказу.diffвключает допустимые tracked и untracked файлы. Вывод ограничен байтами и помечаетсяtruncated; такой diff нельзя считать полным или применять как patch. Нужный остаток запрашивайте отдельным--path. External diff, textconv и fsmonitor отключены; pathspecs обрабатываются буквально. Переименования показываются как удаление исходного файла и добавление нового, чтобы обе стороны оставались видимыми.checksтолько обнаруживает известные Cargo, pytest, unittest и package.json-команды. Скрипты, установку зависимостей и тесты helper не запускает. Перед реальнымrun_commandагент должен прочитать инструкции проекта и выбранный script.- Настроенные Git clean/smudge/process filters приводят к явному отказу до
status/diff: Git может исполнить эти программы даже при отключённых textconv и external diff. Helper не запускает и не отключает их автоматически. validateпроверяет метаданные и локальные Markdown-ссылки ресурсов. Это статическая проверка, а не доказательство качества поведения модели.
Снимок описывает прочитанное состояние working tree, а не отдельный снимок staged index и не атомарную блокировку файловой системы. Он не доказывает, что модель прочитала код, нашла все дефекты или запустила тесты. Изменения во время проверки требуют повторного сбора. Secret-фильтр основан на путях, а не на поиске всех возможных ключей в содержимом.
Отчёт необязателен. Входной JSON лучше хранить вне проверяемого дерева или в уже исключённом каталоге, чтобы добавление самого отчёта не меняло snapshot.
{
"skill": "review",
"status": "partial",
"findings": [{"severity": "P1", "path": "src/app.rs", "line": 12, "message": "Конкретный дефект и его эффект"}],
"checks": [{"argv": ["cargo", "test"], "result": "not_run", "exit_code": null}],
"coverage_gaps": ["Живой API не проверен"]
}python3 bin/rstack report --root /path/to/project --input /tmp/findings.json
python3 bin/rstack report --root /path/to/project --input /tmp/findings.json --format markdown
# Если context/diff использовали другую базу, передайте её и отчёту:
python3 bin/rstack report --root /path/to/project --base main --input /tmp/findings.jsonДопустимы status: pass, issues, blocked, partial; severity: P0–P3. pass отклоняется при находках, пробелах покрытия и неуспешных/неисполненных обязательных проверках. Проверка может иметь required: false, если она действительно необязательна. Не выдавайте обязательную проверку за необязательную ради зелёного статуса.
Результаты команд предоставлены вызывающей стороной: helper проверяет согласованность JSON, а не создаёт независимое доказательство исполнения. Опциональный входной snapshot должен совпасть с текущим. По умолчанию отчёт выводится в stdout; файлов, коммитов, pull requests и сетевых запросов команда не создаёт.
Пакет содержит 61 процедуру из исходного каталога и один alias connect-chrome: rcode обнаруживает 62 активных ID rstack:<имя>. Core review, qa, investigate редактируются отдельно. Остальные входы и их локальные references воспроизводимо создаются из generator/workflows.py; происхождение связано через inventory.json и generator/upstream-map.json.
python3 generator/generate.py --checkГенератор сохраняет core и отказывает при отличающихся локальных файлах или symlink. --check ничего не перезаписывает. Изменения generated-адаптера вносите в его workflow и проверяйте регенерацию. Компактный вход не требует читать все upstream-разделы и общий preamble.
Статическая валидация и обнаружение каталога проверены для всех 62 ID. Живая проверка core выполняется отдельно на локальной Qwen; browser/iOS/внешние runtime требуют своих настоящих companion capabilities. Наличие адаптера не означает, что такие зависимости установлены или что этот сценарий уже проверен на устройстве.
python3 -m unittest discover -s tests -v
RCODE_BIN=/path/to/rcode python3 -m unittest discover -s tests -vВторая команда дополнительно проверяет регистрацию скилла настоящим CLI в изолированном RCODE_HOME. Живые проверки модели выполняются отдельно и не подменяются этим тестом. Runtime проверен на macOS; другие ОС требуют собственного прогона. Временные Git-репозитории и процессы тестов удаляются после завершения.