agentsclimarketplace

Gh protect

Skill thettwe/nyann/skills/gh-protect

Nyann (ငြမ်း) is Burmese for scaffolding. Nyann is a Claude Code plugin that sets up and maintains project governance.

Install
npx -y skills add thettwe/nyann --skill gh-protect

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Audit or apply GitHub branch protection, tag rulesets, repo security settings, and signing requirements based on the active profile. TRIGGER when the user says "check branch protection", "audit GitHub protection", "apply branch protection", "enforce branch protection", "set up branch protection", "configure branch rules", "check tag protection", "audit repo security", "apply GitHub settings", "enable branch protection", "protection audit", "are my branches protected", "/nyann:gh-protect". Do NOT trigger on "is this repo healthy" — that's `doctor` (which includes a protection check among many other signals). Do NOT trigger on "bootstrap this project" — bootstrap applies protection as one step of the full pipeline.

SKILL.md

3.9 KB, as published. Nobody here has run it

gh-protect

Standalone GitHub protection management. Wraps bin/gh-integration.sh in two modes: --check (read-only audit) and apply (write). Lets users manage branch protection, tag rulesets, signing requirements, and repo-level merge settings independently of bootstrap or doctor.

1. Pre-flight

Guard on gh:

command -v gh && gh auth status

If either fails, tell the user gh is required for this skill and stop. Unlike other skills that soft-skip, protection management has no useful fallback without gh.

2. Resolve profile

Load the active profile via bin/load-profile.sh <name> (resolves preferences → CLAUDE.md markers → "default" fallback).

If the user names a specific profile, use that instead.

3. Audit first (always)

Run the read-only check regardless of whether the user asked to audit or apply — the delta informs what apply would change:

bin/gh-integration.sh --target <cwd> --profile <name> --check

Output conforms to schemas/protection-audit.schema.json. Show the user a summary table:

AreaExpectedActualDrift
Branch protection (branches[])from profilefrom GitHub APIcritical / warn / ok
Tag rulesets.github.tag_protection_patternGitHub Rulesets APIcritical / warn / ok
CODEOWNERS gate.github.require_code_owner_reviewsbranch protectioncritical / warn / ok
Signing.github.require_signed_commits/tagsbranch protection + local git configcritical / warn / ok
Repo settings.github.allow_*_merge, delete_branch_on_mergerepo APIwarn / ok
Security signalsDependabot, secret scanning, push protection, code scanningrepo APIinfo

If everything is ok, report "protection matches profile" and stop (no apply needed).

4. Offer to apply (if drift found)

If any drift exists at critical or warn level, ask:

"Apply protection rules to match the profile? This will update branch protection via the GitHub API."

On confirmation:

bin/gh-integration.sh --target <cwd> --profile <name>

The apply mode never downgrades stricter remote rules — it only tightens. Relay this constraint so the user understands that loosening protection requires manual GitHub UI changes.

Output is a GhIntegrationResult JSON (schemas/gh-integration-result.schema.json). Report:

  • applied[] — rules that were created or updated.
  • noop[] — rules already at or above the expected level.
  • errors[] — rules that failed to apply (permission issues, etc.).

5. Report

After audit-only or audit+apply, end with:

  • Protection status per branch (protected / unprotected / partial).
  • Tag ruleset status.
  • Any errors[] that need manual attention.

When to hand off

  • "Check overall repo health" → doctor skill (includes protection as one signal among many).
  • "Set up this repo from scratch" → bootstrap-project skill (applies protection as part of the full pipeline).
  • "I changed my profile's GitHub settings" → re-run this skill to apply the updated expectations.
  • "Loosen a protection rule" → explain that gh-integration.sh never downgrades; the user must change the rule via the GitHub UI or API directly.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.