Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/briandconnelly/moonbridge/agent-friendly-githubnpx skills add briandconnelly/moonbridge --skill agent-friendly-githubgit clone --depth 1 https://github.com/briandconnelly/moonbridgeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/briandconnelly/moonbridge/agent-friendly-github)<a href="https://agentmods.dev/skills/briandconnelly/moonbridge/agent-friendly-github"><img src="https://agentmods.dev/badge/skills/briandconnelly/moonbridge/agent-friendly-github.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00112 | $0.03107 |
| Opus 5 | $0.00056 | $0.01554 |
| Sonnet 5 | $0.00022 | $0.00621 |
| Haiku 4.5 | $0.00011 | $0.00311 |
Grade A, and why
agent-friendly-github scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to agent-friendly-github — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent-Friendly GitHub
A GitHub repository is the shared workspace where agents and humans collaborate on code. Agents can do real work there — filing issues, opening PRs, and landing commits — but only if the repo is configured to make the happy path obvious and the dangerous path hard. The central principle: anything safety-critical is enforced by configuration (rulesets, required checks, CODEOWNERS, Actions permissions), never left to agent goodwill. Agents err, and they can be prompt-injected; the repo must stay safe regardless.
Core Standard
Every rule below is stated in enforceable form in config-checklist.md, which is the authority; this section is the shape of the standard, not a second copy of it. Where a bullet reads as a principle rather than a check, treat it as the reason a checklist item exists — the checklist item is what an audit scores.
- Configuration is the enforced contract and conventions are advisory — safety-critical rules live in rulesets, required status checks, and CODEOWNERS, never in agent instructions that can be overridden or bypassed.
- The agent's identity never holds repository administration — every rule above depends on this one, because an identity that can edit or delete the ruleset is not bound by it; where the agent unavoidably holds admin, the boundary moves to the agent harness's permission configuration and the repo is in a documented degraded state.
- (Principle) Optimize for the agent's first correct contribution — discoverable conventions (
AGENTS.md,CONTRIBUTING), issue and PR templates, a canonical label set, and a fast unambiguous green path are all part of the setup. - Every agent action is attributable and auditable — agents use a distinct identity, commits are authored with attribution preserved (signing is strongly recommended but opt-in, not required), issues and PRs are cross-linked, and no silent force-push or history rewrite occurs on protected branches.
- All repo-resident text is untrusted input — issue bodies, PR descriptions, comments, and code file content can carry prompt-injection payloads into both the agent and CI; never grant write access or secrets to workflows triggered by untrusted actors, and never interpolate untrusted
${{ github.event.* }}expressions directly into arun:script — bind them throughenv:and reference the variable instead. - The agent cannot launder its own approval — an agent that authored a PR must not approve it, trigger auto-merge to satisfy a human-review requirement, or manipulate review requests to make its own work look approved. After a post-approval push, the agent requests fresh human review rather than treating stale approval as sufficient.
- Merge authority defaults to the human — an agent does not merge a PR it authored unless the human has explicitly authorized the agent to merge it (a standing grant in
AGENTS.mdor an in-session instruction that specifically says the agent may merge); green required checks and a zero-review configuration are gate outcomes, not delegation. - Constrain blast radius by default — a summary of controls that are each an atomic item in config-checklist.md: the least-privilege
GITHUB_TOKEN, third-party actions pinned to a full commit SHA, OIDC over long-lived PATs, protected branches that no automation identity can bypass, environment gates for production deployments, and dismiss-stale-reviews-on-push. - Right-size to the repo's team and risk — the security boundary is human-vs-agent, not author-vs-reviewer, so never configure a repo such that the legitimate human maintainer cannot merge their own work. Match controls to a repository profile (solo, small-team, org/high-risk) rather than applying every control everywhere; the profiles and their exceptions are defined in config-checklist.md.
- The agent never publishes to consumers — and because releases ride on the same
contents: writethe agent needs to push branches, this one cannot be enforced by withholding a permission: it takes a protected tag ruleset, a harness deny rule on the release and package endpoints, and publishing from a protected ref. - (Principle) Fix flaky or slow required checks before they become a bypass habit — an unreliable green path creates pressure to retry, skip, or override, which is how agents learn to route around guardrails.
- Work identically across public/private and monorepo/traditional repos — scope ownership with explicit CODEOWNERS path prefixes, use an always-running monorepo gate check rather than
paths:-filtering a required check, and do not disable secret scanning, Dependabot, or branch protection just because a repo is private.
What ships with it
16 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- decisions/001-github-fact-sheet.md 8.1 KB
- references/audit-workflow.md 24 KB
- references/config-checklist.md 36 KB
- references/examples/codeowners.md 3.0 KB
- references/examples/harness-deny.md 5.0 KB
- references/examples/identity.md 4.1 KB
- references/examples/README.md 2.3 KB
- references/examples/repo-files.md 8.8 KB
- references/examples/required-checks.md 13 KB
- references/examples/rulesets.md 8.6 KB
- references/examples/workflows.md 9.9 KB
- references/operating-playbook.md 6.5 KB
- references/setup-workflow.md 22 KB
- references/threat-model.md 19 KB
- tests/check_authority.py 16 KB runs code
- tests/scenarios.md 19 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 112 lines · 112 tokens per session scan A 88d23a82b765
agent-friendly-github is a skill published in the GitHub repository briandconnelly/moonbridge (0 stars, last pushed 4d ago), licensed MIT. It adds 112 tokens to every session and 3,107 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to agent-friendly-github, differing in 0 lines, and is treated as a copy.
Other skills, from other repositories
novel-game-analyze
Deconstruct a novel for game adaptation. Compress a raw novel, deconstruction library, or writing project into a SOURCEBIBLE with cited textual evidence, extracting world rules, player verbs, spaces, character will, systems, and visual anchors — without inventing a genre yet. Use for gameable book analysis, analyze a…
novel-to-game
Turn a novel into a fully playable game on the selected target platform. Orchestrates the whole adaptation pipeline — requirements intake, gameable deconstruction, concept selection, world and visual design, target-runtime build, and evidence-based QA — for a novel in any language. Use for novel to game, story to…
mcp-server-architect
Comprehensive MCP server development guide covering FastMCP 2.14.3 features, Anthropic standards, ecosystem integration, and production deployment across all agentic IDEs.
writing-release-notes
Use when preparing, refreshing, backfilling, or redrafting a release-notes page under docs/releases/ before opening a normal review pull request.
pr-alignment-loop
Iterate a PR to its final form by running two opposing reviewer droids (reviewer-robustness and reviewer-minimalist) in a bounded back-and-forth loop. The main orchestrator synthesizes their feedback, makes edits, runs tests, and stops when both approve, on stagnation, or after 3 rounds. Use when the user asks to…
skills
Generate a complete SVG file from a natural language description using SEP-1577 multi-step sampling.