create-prove — скилл для Claude Code: что делает и как установить
Запускает изменённый скилл Aeon в GitHub Actions и прикрепляет к пулреквесту отчёт с привязкой к конкретному SHA.
npx skills add aeonfun/aeon --skill create-prove -a claude-codeЧто делает create-prove
Скилл проверяет работу изменений в репозиториях Aeon перед слиянием кода. Обычного просмотра диффа недостаточно, поэтому инструмент запускает рабочий процесс aeon.yml на ветке пулреквеста. Для запуска требуется точная строка цели формата owner/repo#pr@sha, где указан 40-значный хэш коммита. Поддерживаются только PR с изменением ровно одного файла skills/<slug>/SKILL.md.
Для сетевых операций используется утилита gh. Скилл подбирает наименьшую безопасную переменную для проверки логики и запускает процесс с префиксом prove- в параметре dispatch_id. Этот префикс запрещает рабочему процессу пушить новые коммиты в проверяемую ветку. Ветки из форков сразу отклоняются с ошибкой, потому что gh workflow run не запускает чужой код в базовом репозитории.
Инструмент ждёт завершения прогона до 30 минут, проверяет успешность статуса и отсутствие пустого вывода. После повторной сверки хэша коммита в пулреквест отправляется один комментарий со ссылкой на прогон и скрытой JSON-квитанцией подтверждения. Результат также записывается в журнал memory/logs/.
Какие задачи решает
- проверить изменённый скилл в реальном GitHub Actions
- отсечь пулреквесты с изменившимся коммитом по SHA
- исключить запуск недоверенного кода из сторонних форков
- опубликовать JSON-квитанцию о проверке в комментариях PR
Примеры запросов агенту
- Запусти проверку скилла для
aeonfun/aeon#12@4b825dc642cb6eb9a060e54bf8d69288fbee4904 - Подтверди поведение изменённого файла в
myorg/repo#5@9f83c78d6e902b48a12702ee61a68b594b2f42a0
Как установить create-prove
1Через Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill create-prove -a claude-code2Вручную: положить файлы
~/.claude/skills/create-prove/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/create-prove/
1Через Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill create-prove -a codex2Вручную: положить файлы
.agents/skills/create-prove/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill create-prove -a cursor2Вручную: положить файлы
.cursor/skills/create-prove/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aeonfun/aeon create-prove2Вручную: положить файлы
.github/skills/create-prove/SKILL.md1Через Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill create-prove -a gemini-cli2Командой платформы
gemini skills install https://github.com/aeonfun/aeon --path skills/create-proveВручную: положить файлы
.devin/skills/create-prove/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aeonfun/aeon --skill create-prove -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о create-prove
Как установить create-prove в Claude Code?
Выполните команду npx skills add aeonfun/aeon --skill create-prove -a claude-code. Файл скилла будет сохранён в ~/.claude/skills/create-prove/SKILL.md.
Что делает скилл create-prove?
Он исполняет изменённый скилл внутри GitHub Actions на целевой ветке и публикует в пулреквесте комментарий с машиночитаемой квитанцией aeon-proof.
Почему скилл отклоняет пулреквесты из форков?
Команда gh workflow run --ref не может выполнять недоверенный код из внешних форков в базовом репозитории, поэтому проверка сразу завершается с ошибкой.
Исходный текст
SKILL.md · MIT
---
name: create-prove
description: Run a changed Aeon skill for real and attach SHA-bound behavioral evidence to its PR
metadata:
title: Create Prove
category: dev
mode: write
var: ""
tags:
- dev
- verification
permissions:
- contents:read
- actions:write
- pull-requests:write
commits: false
---
> **${var}** - Required immutable target in the form `owner/repo#pr@40-character-lowercase-sha`.
Today is ${today}. Prove the behavior of one Aeon-shaped change by running the changed skill through the target repository's real `aeon.yml` workflow. A green diff review is not proof. A successful, correlated Actions run is proof.
## Scope
This first implementation supports Aeon-shaped pull requests that change exactly one runnable `skills/<slug>/SKILL.md`. It does not launch conventional applications and it does not guess which skill represents a workflow-only or configuration-only change. Unsupported target shapes must fail closed without posting a proof receipt.
Never prove `create-prove` by recursively dispatching itself. Exit `PROVE_UNSUPPORTED` instead.
## Steps
1. Parse `${var}` into `target=owner/repo#pr` and `expected_sha`. Reject any value outside the exact grammar above with `PROVE_INVALID_TARGET`.
2. Read the PR through `gh api`. Require all of the following:
- the PR is open;
- its current `head.sha` equals `expected_sha`;
- its head branch belongs to the same repository, because `gh workflow run --ref` cannot execute an untrusted fork branch in the base repository;
- exactly one changed path matches `skills/<slug>/SKILL.md`;
- the slug is not `create-prove`.
Any mismatch exits `PROVE_UNSUPPORTED` or `PROVE_STALE` without a receipt.
3. Inspect the changed skill's frontmatter and instructions. Choose the smallest real, non-destructive variable that exercises the changed behavior. If no safe real invocation exists, exit `PROVE_UNSAFE` rather than inventing evidence. Do not use synthetic credentials or a dry-run mode.
4. Dispatch the target branch's workflow by filename, with a unique correlation ID whose `dispatch_id` **must start with the literal prefix `prove-`** — `.github/workflows/aeon.yml`'s commit-skip guard only recognizes that exact prefix to know this run is being proved, not a normal dispatch, and must not commit or push to the branch it's proving. Getting this prefix wrong silently defeats the immutable-head guarantee this whole skill exists to provide:
```bash
dispatch_id="prove-${pr_number}-$(date -u +%Y%m%dT%H%M%SZ)-${RANDOM}"
gh workflow run aeon.yml --repo "$repo" --ref "$head_branch" \
-f skill="$skill" -f var="$proof_var" -f dispatch_id="$dispatch_id"
```
Discover the run only by the exact correlated run title, using the same rule as `chain-runner.yml`. Never select merely the newest run for that skill.
5. Wait up to 30 minutes. Require `status=completed` and `conclusion=success`. Fetch the run log and the captured skill output. Confirm the output is non-empty and does not contain `_No output captured._`. A successful Actions wrapper with no captured behavior is `PROVE_MISSING_EVIDENCE`.
6. Re-read the PR and require its head SHA still equals `expected_sha`.
7. Post one PR comment containing a concise description of the exercised path, the run URL, a short output excerpt, and exactly one final machine receipt:
```text
<!-- aeon-proof:{"schema":1,"target":"owner/repo#N","sha":"<sha>","kind":"aeon-skill","skill":"<slug>","evidence_run_id":123,"evidence_url":"https://github.com/owner/repo/actions/runs/123","verdict":"proven"} -->
```
Construct the JSON with `jq -cn`, then render it on one line. Do not post the receipt until every gate above passes.
8. End with the target, skill, run ID, run URL, and `PROVE_VERDICT=proven` in the captured output.
## Constraints
- The proof run must execute the PR head branch, not `main`.
- Never treat CI checks, source inspection, or the prior review receipt as behavioral evidence.
- Never post a `proven` receipt for a failed, cancelled, timed-out, stale, empty-output, unsupported, or unsafe run.
- Do not merge, close, approve, or modify the target PR.
- Do not commit repository files.
## Network note
Use `gh` for every GitHub read, dispatch, log fetch, and PR comment. Authentication is provided by the workflow. Never print tokens or place secret values on a command line.
## Log
Append the result to `memory/logs/${today}.md` under `### create-prove`, including the target, SHA, selected skill, evidence run ID, and terminal verdict. The workflow may persist the captured output on your behalf.
© aeonfun · MIT · aeonfun/aeon