A Claude Code plugin for the GitHub settings/admin plane: audit, review, advise, and guided setup/management for the authenticated user across organizations, repositories, and enterprises — consistency, drift, standards conformance, and cost control.
Everything is grounded at runtime: live state comes from the consumer's own gh CLI session, and
mechanics come from freshly fetched official GitHub documentation. The plugin ships zero vendored
GitHub knowledge — no endpoint tables, no scope lists, no prices — so it cannot go stale against
GitHub's weekly-moving surface. Where a fetch fails or an area is out of the current credential's
reach, the skills say so honestly instead of guessing.
| Skill | Status | What it does |
|---|---|---|
/github:audit <area…> [--apply] |
shipped | Read-only findings over one, several, or all coverage areas: current-state review, drift vs declared conventions, standards conformance, cost signals. |
/github:advise <topic> [--apply] |
shipped | Forward-looking guidance and hand-holding ("how should I configure X", "walk me through Y"), plus proactive in-session suggestions. |
/github:setup |
shipped | Verify prerequisites (gh present and authenticated, config layers) and write consumer config — check and apply, user-invoked only. |
Areas are arguments, not skills — the coverage matrix (rulesets, billing, security model,
Actions policy, webhooks, packages, and the rest) lives in
reference/areas.md, and every area routes through the same
reference/method-ladder.md. Primary-tier areas additionally carry
a dedicated method recipe under reference/recipes/ — curated audit
checklists, drift procedures, and posture heuristics, still with zero vendored GitHub mechanics.
This plugin follows the marketplace verb grammar: audit is a read-only findings report — a bare
invocation performs zero mutations (no write-capable gh api flags, no non-GET methods, no
GraphQL mutations). It additionally declares one new verb at this coupling site:
advise— read-only advisory guidance. Distinct discovery intent fromaudit: design/forward-looking ("how should I…") whereauditis current-state/backward-looking ("what is…", "what drifted…").
Mutation is only ever reachable behind the explicit --apply override argument, resolves through
the consumer's declared change routing (the --apply resolution flow in
reference/change-routing.md), and keeps the user in the loop for
every write.
ghCLI, authenticated by you. The plugin uses your ownghsession and never stores credentials. When a token scope or credential modality cannot reach an area, the skill names the gate and recommends the remediation for you to run yourself.
Unconfigured consumers work read-only out of the box: change routing defaults to propose-only
(proposed changes are emitted as exact commands or diffs, never executed). Consumer config lives in
.claude/github/ and layers user-global → team → local overlay:
reference/change-routing.md—routing.yaml: how proposed changes leave the session (propose/guided-apply/handoff), with a team policy floor on write-posture keys that personal layers can tighten but never loosen.reference/conventions-file.md—conventions.md: the declared standards your audits compare against.
For settings surfaces that turn out to be UI-only (no CLI, no API), the skills may offer
opt-in browser automation over your own authenticated session — never auto-fired, every action
individually confirmed, mechanics in
reference/browser-automation.md. One plugin setting,
offer_browser_automation (boolean, default true, prompted when you enable the plugin),
suppresses the offer when false — an advisory gate honored by the skills, not a runtime
kill-switch; the hard gate is the per-action user confirm. Guided manual steps with a deep link
remain the always-available fallback.
/github:setup writes both interactively and recommends the one-line recursive overlay
gitignore (.claude/**/*.local.*); it never edits your .gitignore.
From whichever marketplace distributes this plugin:
/plugin marketplace add <marketplace-owner>/<marketplace-repo>
/plugin install github@<marketplace-name>