Синхронизируйте GitHub issues, pull requests и комментарии с помощью pull, push и activity runners с ограниченной областью доступа.
- Звёзды на GitHub
- 103
- Файлы
- 6
- Последний коммит
- 8 нояб. 2026 г.
- Лицензия
- Apache-2.0
- Разрешённые инструменты
- —
Что делает навык github?
github — это Agent Skill. Синхронизируйте GitHub issues, pull requests и комментарии с помощью pull, push и activity runners с ограниченной областью доступа.
Сводка сгенерирована из SKILL.md навыка.
О skill github
Разработчики, управляющие рабочими процессами в репозиториях, могут синхронизировать GitHub issues, pull requests и комментарии через структурированную систему операций pull и push. Этот SKILL позволяет агенту проверять конкретные записи, указывая название репозитория и тип ресурса (например, issues или comments), либо вносить заранее определенные изменения с помощью метода sync. Поддерживается пакетная обработка до двадцати мутаций в одном push, таких как создание новых issues или обновление существующих pull requests, при этом каждое изменение проходит проверку через независимое повторное чтение.
Когда агенту нужно обобщить недавние изменения, инструмент activity предоставляет компактный обзор всего, что было обновлено в репозитории с определенной метки времени. Это полезно для генерации ежедневных сводок без необходимости обрабатывать все записи GitHub. Для работы навыку требуется существующая сессия или токен GitHub, а также явное указание идентификаторов репозитория. Система разделяет планирование изменений и их выполнение, гарантируя, что никаких удаленных эффектов не произойдет до явного запуска push.
Что агент может делать с ним
- 1Сводка недавних изменений в репозиторииАгент может получить компактный список всех issues и pull requests, обновленных с определенного времени, для создания отчета.
- 2Пакетное обновление issuesРазработчик может отправить одну команду для применения до двадцати различных мутаций, например, для одновременного закрытия нескольких issues.
- 3Проверка изменений через readbackСистема гарантирует, что любые отправленные изменения действительно применены, выполняя независимое чтение объекта после обновления.
- 4Планирование сложных задач синхронизацииПользователи могут создать план без внесения изменений (no-effect plan), чтобы точно увидеть, что именно планирует сделать операция pull или push, прежде чем будет изменено удаленное состояние.
Написано на основе skill SKILL.md. Каждый сценарий использования проверен по цитате из него.
Как установить навык github
Каждая команда копирует папку навыка в каталог навыков клиента. Перезапустите клиент или начните новую сессию, чтобы загрузить его.Установка навыка github в Claude Code
~/.claude/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.claude/skills/githubУстановка навыка github в Claude Code (project)
.claude/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github .claude/skills/githubУстановка навыка github в Codex
~/.agents/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.agents/skills/githubУстановка навыка github в Gemini CLI
~/.gemini/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.gemini/skills/githubУстановка навыка github в Claude.ai
npx degit runxhq/runx/skills/github github && zip -r github.zip github # claude.ai → Customize → Skills → + → Create skill → Upload a skill → github.zip
Автоматические проверки
Запущено 14 нояб. 2026 г.Полный отчёт →Прошёл наши автоматические проверки. Это не аудит безопасности: прочитайте скрипты, прежде чем агент их запустит. Как работают проверки · Что исправить, чтобы получить больше баллов
- Связанный и доступный исходный репозиторийrunxhq/runx/skills/github is public and reachablegithub.com/runxhq/runx/tree/HEAD/skills/github ↗Пройдено
- Open source лицензия (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Пройдено
- Коммит или релиз за последний годLast commit 2026-11-08github.com/runxhq/runx/commits ↗Пройдено
- В скриптах нет загрузки с запуском и кражи учётных данных2 scripts read; no download-and-run, remote eval, base64 execution or credential uploadПройдено
- В SKILL.md нет скрытых инструкцийNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗Пройдено
- Заранее разрешённые инструменты ограниченыNo pre-approved tools; the agent asks before using onegithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗Пройдено
- SKILL.md соответствует формату Agent Skillsthe description does not say when to use the skillgithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗Проблема
SKILL.md
Открыть на GitHubGitHub
Read actual GitHub issues, pull requests and comments with the selected account,
or apply exact already-decided changes and confirm them independently. For a
normal read, give repo and optionally kind, number, page and limit.
The read authority is selected by the existing native operation; callers do not
need to construct synchronization direction or scope just to inspect an issue.
The default github runner reads one bounded page or exact numbered record.
kind is issues (the shared GitHub issue feed, including PRs), pull_requests
or comments. Comments are issue/PR conversation comments; review diff comments
are a different capability. comments requires the issue or PR number. Exact
numbered reads return the actual current record; state/label filters are for
list queries. Raw provider records and the original native operation evidence
are preserved. A bounded page never establishes complete conversation/history
coverage, including when filtering PRs out of an issue-feed page.
The explicit sync runner performs the requested advanced pull or push. plan
is the explicit no-effect runner; pull and push remain explicit execution
lanes for compatible callers. Pulls are bounded reads. A push carries one to
twenty typed mutations per call that one GitHub operation applies, and returns each
item's outcome. It closes only on an independent GitHub readback of every
applied item. An item whose outcome is unknown holds the push for
reconciliation and is never silently retried. activity reads what changed
in a repository since a time, compact enough to summarise. No GitHub token
enters this package.
When to use it
Use the default for actual bounded records. Resolve an omitted repository in the host with ordinary git remote/context tools, verify the exact owner/name, and pass it explicitly. Do not guess a repository, treat a folder name as one, or introduce a separate repository/cursor state store.
Use sync when an operator needs a reproducible pull or push contract for
issues, pull requests, or threads, especially when cursor state must survive
across runs. Use plan only when the requested outcome is a plan. Use pull
for an explicitly selected read lane. Use activity to learn what changed in
a repository since a time, such as since the last check of a daily summary:
it reads issues and pull requests together and returns the fields a reader
needs rather than GitHub's whole records. Use push for already-decided issue,
pull-request, or comment changes of one kind. A call accepts up to twenty changes, matching the connector's batch contract; split larger work into separate calls and retain each result. Batches are bounded and
best-effort, not atomic: a refused item does not stop the rest, the result
identifies each item, and the operator reconciles before retrying. Use github-issue-triage to decide what an issue means
and github-issue-to-pr to govern an implementation lane.
Do not use a plan as evidence that remote state was read or changed. Only the
native runx.provider.operation.v1 result from pull or push is provider
evidence. Do not silently turn a denied push into a pull.
How it works
- Validate the exact
owner/namerepository, direction, resource kind, bounded filters, maximum result count, and requested scope. - A
pullplan requires read scope and records the exact resources a provider may fetch. - A
pushplan requires write scope and one to twenty typed mutations per call that one GitHub operation applies:issues.create,issues.update,pullrequests.update,comments.create, orcomments.update. It rejects unknown fields, oversized content, and mixed kinds, then returnsready_for_execution; planning itself does not grant provider authority. - Optional
plan_and_append_cursorcalls the store'sevents.appendandprojection.readto append the bounded plan and read the projection back. That proves local cursor persistence, not GitHub synchronization; this package does not own a second cursor database or storage adapter. - The explicit
syncrunner selects the same bounded read or write path from the validated direction.pullcalls the planned read (issues.list,issues.read,pullrequests.list,pullrequests.read, orcomments.list) withrepo.read.pushcalls the planned write once underrepo.writefor issue and pull-request changes orissue.commentfor comment changes: the runtime sends each item, records each outcome, and reads every applied item back before the push closes. Both run under the GitHub instance selected here: the signed-inghsession or a stored token. activitycallsissues.listwithrepo.readfor one page of 100 of everything updated at or aftersince, open or closed. GitHub's listing holds pull requests too, so one read finds both. The result keeps each item's number, kind, title, state (mergedfor a merged pull request), whether it was opened at or aftersince, its author and whether that is a bot, its times, labels, assignees, comment count and link, and the first 600 characters of its body with the count left out. The provider is queried in updated/descending order, then the page is projected in that order; a full page names a possiblenext_page.
Inputs and result
repois exactlyowner/name.- The default needs only
repo: e.g.{repo: "runxhq/runx", kind: "pull_requests", number: 554}reads that exact PR. To continue comments usekind: comments, itsnumber, and the nextpage, retaining the same query and original provider receipt. directionispullorpushfor the explicitsyncand planning phases.resourcescontains the issue, PR, thread, orbatchselector and a limit no greater than 100. A push has one to twentymutationsentries withpath,op, and an exact typedpayload. Issue and PR changes useop: update; a new issue usespath: issuesandop: create; new thread comments useop: comment. Bodies are capped at 65,536 characters. Pulls return GitHub's records whole.scopeis the requested read or write scope.activitytakesrepo,since(RFC 3339) and an optionalpage, and returnsactivity: the repository,since, the page, its items, andnext_pagewhen more may follow. Its provider evidence is the read'srunx.provider.operation.v1, kept in the run's record.
The runx/github.sync_plan.v1 plan records exact direction, provider operation,
scope, filters, blockers, authority posture, cursor state when used, and the
explicit absence of remote effects. Execution additionally emits the native
provider-operation packet; it does not rewrite the planning packet to imply a
remote effect.
Stop conditions
- Refuse malformed repositories, unknown resource kinds, unbounded selectors, limits above the contract, more than twenty mutations in one call, unknown mutation fields, or content beyond the declared bounds.
- Refuse push when write scope is missing; do not degrade silently.
- Do not treat local cursor persistence as remote provider readback.
- Refuse a push that mixes new issues, issue, pull-request, and comment changes; send each kind as its own push.
- Refuse when no GitHub instance is selected, or the selected one lacks the scope. Never treat an available instance as evidence of the intended repository.
- Do not claim comments, labels, issues, or PRs were read or changed until the native provider operation proves the expected access, operation, and readback.
Example
A caller wants to pull the next 50 open issues after cursor 2. Planning can
persist that cursor locally; pull then performs issues.list through the
selected instance and returns the provider result. To close issue 241, a push
carries path: issues/241, op: update, and
payload: {state: closed, state_reason: completed}. Runx applies only that
issue update through issues.update under repo.write, and reads issue 241
back. A morning summary calls activity with since set to its last check
and reports the items that are new, or changed by someone else.
For composition, consume the returned native provider-operation packet directly.
Pass already read issue fields to github-issue-triage respond, preserving
repository, exact number, title, state, full relevant body and original source
link/receipt. This path does not fetch or post again. pull and push retain
their complete typed selectors for power users; the common reader does not
replace them. Local cursor persistence remains the explicit store-owned phase.
Файлы в этом навыке
6Вопросы о навыке github
Как установить навык github в Claude Code?
Выполните npx degit runxhq/runx/skills/github ~/.claude/skills/github. Claude Code загружает навыки из ~/.claude/skills (все проекты) или .claude/skills (один проект) и использует навык, когда его описание соответствует задаче.
Какие клиенты могут использовать навык github?
Любой клиент, который читает формат Agent Skills: Claude Code, Codex, Gemini CLI и claude.ai (загрузить как ZIP). Скрипты в навыке выполняются только там, где клиент разрешает выполнение кода.
Что может делать activity runner?
Activity runner считывает изменения в репозитории с определенного момента времени, предоставляя краткую сводку по issues и pull requests.
Сколько мутаций можно включить в один push-вызов?
Один push-вызов может содержать от одного до двадцати типизированных мутаций.
Можно ли смешивать разные типы изменений в одной операции push?
Нет, нельзя смешивать создание новых issues, pull requests и изменения комментариев в одном push; каждый тип должен отправляться отдельным push-вызовом.