Synchronisiere GitHub issues, pull requests und comments über pull, push und activity runner mit eingeschränkter Berechtigung.
- GitHub Stars
- 103
- Dateien
- 6
- Letzter Commit
- 8. Nov. 2026
- Lizenz
- Apache-2.0
- Erlaubte Tools
- —
Was macht der github Skill?
github ist ein Agent Skill. Synchronisiere GitHub issues, pull requests und comments über pull, push und activity runner mit eingeschränkter Berechtigung.
Zusammenfassung erzeugt aus der SKILL.md des Skills.
Über den github skill
Entwickler, die Repository-Workflows verwalten, können GitHub issues, pull requests und comments über ein strukturiertes System aus pull und push Operationen synchronisieren. Dieser Skill ermöglicht es einem Agent, spezifische Datensätze zu inspizieren, indem er einen Repository-Namen und eine Resource Kind (wie issues oder comments) angibt, oder vordefinierte Änderungen über die sync Methode auszuführen. Er unterstützt das Batching von bis zu zwanzig Mutationen in einem einzigen push, wie etwa das Erstellen neuer issues oder das Aktualisieren bestehender pull requests, während sichergestellt wird, dass jede Änderung durch ein unabhängiges Readback verifiziert wird.
Wenn ein Agent kürzliche Änderungen zusammenfassen muss, bietet das activity tool eine kompakte Ansicht von allem, was seit einem bestimmten Zeitstempel in einem Repository aktualisiert wurde. Dies ist nützlich, um tägliche Zusammenfassungen zu erstellen, ohne die gesamten GitHub-Datensätze verarbeiten zu müssen. Der Skill setzt eine bestehende GitHub Session oder einen Token voraus und benötigt explizite Repository-Identifikatoren für die Funktion. Er unterscheidet zwischen der Planung einer Änderung und deren Ausführung, sodass keine Remote-Effekte auftreten, bis ein push explizit ausgelöst wird.
Was ein agent damit machen kann
- 1Kürzliche Repository-Änderungen zusammenfassenEin Agent kann eine kompakte Liste aller issues und pull requests abrufen, die seit einem bestimmten Zeitpunkt aktualisiert wurden, um einen Zusammenfassungsbericht zu erstellen.
- 2Batch-Updates für issues ausführenEin Entwickler kann einen einzigen Befehl senden, um bis zu zwanzig verschiedene Mutationen anzuwenden, wie zum Beispiel das gleichzeitige Schließen mehrerer issues.
- 3Änderungen mit Readback verifizierenDas System stellt sicher, dass alle gepushten Änderungen tatsächlich angewendet wurden, indem es nach dem Update ein unabhängiges Read des Items durchführt.
- 4Komplexe Synchronisationsaufgaben planenNutzer können einen Plan ohne Auswirkungen (no-effect plan) erstellen, um genau zu sehen, was eine pull oder push Operation beabsichtigt, bevor ein Remote-Status geändert wird.
Geschrieben basierend auf dem SKILL.md des skills. Jeder use case wurde gegen ein zitat daraus geprüft.
So installierst du den github Skill
Jeder Befehl kopiert den Skill-Ordner in das Skills-Verzeichnis des Clients. Starte den Client neu oder beginne eine neue Session, um ihn zu laden.Den github Skill in Claude Code installieren
~/.claude/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.claude/skills/githubDen github Skill in Claude Code (project) installieren
.claude/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github .claude/skills/githubDen github Skill in Codex installieren
~/.agents/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.agents/skills/githubDen github Skill in Gemini CLI installieren
~/.gemini/skills/github/SKILL.md
$ npx degit runxhq/runx/skills/github ~/.gemini/skills/githubDen github Skill in Claude.ai installieren
npx degit runxhq/runx/skills/github github && zip -r github.zip github # claude.ai → Customize → Skills → + → Create skill → Upload a skill → github.zip
Automatisierte Checks
Geluften am 14. Nov. 2026Vollständiger Bericht →Hat unsere automatischen Prüfungen bestanden. Das ist kein Sicherheitsaudit: Lesen Sie die Skripte, bevor ein Agent sie ausführt. Wie die Checks funktionieren · Was du für mehr Punkte verbessern kannst
- Source Repository verknüpft und erreichbarrunxhq/runx/skills/github is public and reachablegithub.com/runxhq/runx/tree/HEAD/skills/github ↗Bestanden
- Open Source Lizenz (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Bestanden
- Commit oder Release im letzten JahrLast commit 2026-11-08github.com/runxhq/runx/commits ↗Bestanden
- Keine Download-und-Ausführen-Muster oder Zugangsdatendiebstahl in Skripten2 scripts read; no download-and-run, remote eval, base64 execution or credential uploadBestanden
- Keine versteckten Anweisungen in SKILL.mdNo override phrases, safeguard switches, credential requests or hidden charactersgithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗Bestanden
- Vorab erlaubte Tools sind eingeschränktNo pre-approved tools; the agent asks before using onegithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗Bestanden
- SKILL.md folgt dem Agent-Skills-Formatthe description does not say when to use the skillgithub.com/runxhq/runx/blob/HEAD/skills/github/SKILL.md ↗Befund
SKILL.md
Auf GitHub ansehenGitHub
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.
Dateien in diesem Skill
6github Skill-Fragen
Wie installiere ich den github Skill in Claude Code?
Führe npx degit runxhq/runx/skills/github ~/.claude/skills/github aus. Claude Code lädt Skills aus ~/.claude/skills (alle Projekte) oder .claude/skills (ein Projekt) und nutzt einen Skill, wenn seine Beschreibung zur Aufgabe passt.
Welche Clients können den github Skill nutzen?
Jeder Client, der das Agent Skills-Format liest: Claude Code, Codex, Gemini CLI und claude.ai (als ZIP hochladen). Skripte im Skill laufen nur dort, wo der Client Codeausführung erlaubt.
Was kann der activity runner tun?
Der activity runner liest aus, was sich seit einem bestimmten Zeitpunkt in einem Repository geändert hat, und liefert eine kompakte Zusammenfassung von issues und pull requests.
Wie viele Mutationen können in einem einzigen push call enthalten sein?
Ein einzelner push call kann zwischen eins und zwanzig typisierte Mutationen enthalten.
Kann ich verschiedene Arten von Änderungen in einer push operation mischen?
Nein, du kannst neue issues, pull requests und comment Änderungen nicht in einem einzigen push mischen; jede Art muss als eigener push gesendet werden.