범위가 지정된 권한을 가진 pull, push, activity runner를 사용하여 GitHub issues, pull requests, comments를 동기화합니다.
- GitHub 스타
- 103
- 파일
- 6
- 마지막 커밋
- 2026년 11월 8일
- 라이선스
- Apache-2.0
- 허용된 도구
- —
github skill은 무엇을 하나요?
github은(는) agent skill입니다. 범위가 지정된 권한을 가진 pull, push, activity runner를 사용하여 GitHub issues, pull requests, comments를 동기화합니다.
skill의 SKILL.md에서 생성된 요약입니다.
github skill 정보
저장소 워크플로우를 관리하는 개발자는 pull 및 push 작업의 구조화된 시스템을 통해 GitHub issues, pull requests, comments를 동기화할 수 있습니다. 이 SKILL을 사용하면 에이전트가 저장소 이름과 issues 또는 comments와 같은 리소스 종류를 제공하여 특정 레코드를 검사하거나, sync 메서드를 사용하여 미리 결정된 변경 사항을 실행할 수 있습니다. 새로운 issues 생성 또는 기존 pull requests 업데이트와 같이 단일 push에 최대 20개의 mutation을 배치로 처리할 수 있으며, 모든 변경 사항은 독립적인 readback을 통해 검증됩니다.
에이전트가 최근 변경 사항을 요약해야 하는 경우, activity 도구를 통해 특정 타임스탬프 이후 저장소에서 업데이트된 모든 내용을 간결하게 확인할 수 있습니다. 이는 전체 GitHub 레코드를 처리하지 않고도 일일 요약을 생성하는 데 유용합니다. 이 SKILL은 기존 GitHub 세션 또는 token에 의존하며 작동을 위해 명시적인 저장소 식별자가 필요합니다. 변경 계획과 실행을 구분하므로, push가 명시적으로 트리거되기 전까지는 원격 상태에 어떠한 영향도 미치지 않습니다.
agent가 수행할 수 있는 작업
- 1최근 저장소 변경 사항 요약에이전트가 특정 시점 이후 업데이트된 모든 issues와 pull requests의 간결한 목록을 가져와 요약 보고서를 작성할 수 있습니다.
- 2배치 issue 업데이트 실행개발자가 단일 명령을 통해 여러 issues를 한 번에 닫는 등 최대 20개의 서로 다른 mutation을 적용할 수 있습니다.
- 3readback을 통한 변경 사항 검증업데이트 후 해당 항목을 독립적으로 다시 읽어 push된 변경 사항이 실제로 적용되었는지 확인합니다.
- 4복잡한 동기화 작업 계획원격 상태가 수정되기 전에 pull 또는 push 작업이 정확히 무엇을 수행하려 하는지 확인하기 위해 영향이 없는 계획(no-effect plan)을 생성할 수 있습니다.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
github skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.Claude Code에 github skill 설치
~/.claude/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.claude/skills/githubClaude Code (project)에 github skill 설치
.claude/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github .claude/skills/githubCodex에 github skill 설치
~/.agents/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.agents/skills/githubGemini CLI에 github skill 설치
~/.gemini/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.gemini/skills/githubClaude.ai에 github skill 설치
npx degit runxhq/runx/skills/github github && zip -r github.zip github # claude.ai → Customize → Skills → + → Create skill → Upload a skill → github.zip
자동 검사
2026년 11월 14일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 보안 감사는 아닙니다. 에이전트가 실행하기 전에 스크립트를 읽어 보세요. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능runxhq/runx/skills/github is public and reachablegithub.com/runxhq/runx/tree/HEAD/skills/github ↗통과
- 오픈 소스 라이선스 (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗통과
- 최근 1년 내 커밋 또는 릴리스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 Skills 형식을 따름the description does not say when to use the skillgithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗결함 발견
SKILL.md
GitHub에서 보기GitHub
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.
이 스킬의 파일
6github skill 질문
Claude Code에 github skill을 어떻게 설치하나요?
npx degit runxhq/runx/skills/github ~/.claude/skills/github를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
github skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
activity runner는 어떤 기능을 수행하나요?
activity runner는 특정 시점 이후 저장소에서 변경된 내용을 읽어 issues와 pull requests에 대한 간결한 요약을 제공합니다.
단일 push 호출에 포함할 수 있는 mutation은 몇 개인가요?
단일 push 호출에는 1개에서 20개 사이의 타입화된 mutation을 포함할 수 있습니다.
한 번의 push 작업에 서로 다른 유형의 변경 사항을 섞어서 보낼 수 있나요?
아니요, 단일 push에 새로운 issues, pull requests, comment 변경 사항을 섞어서 보낼 수 없습니다. 각 유형은 별도의 push로 전송해야 합니다.