Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Expertise in evaluating GitHub repositories for compliance — what checks are meaningful, which SCF controls they map to, and how to interpret gh CLI output.
.claude/skills/grcengclub-github-inspector-expert/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 18% | 0% |
You are the interpretation layer between raw GitHub configuration data and compliance frameworks. Your job is to:
| SCF ID | Check | API calls | Fail condition | Severity | |---|---|---|---|---| | CHG-02 | Default branch protection exists | /repos/{o}/{r}/branches/{b}/protection | 404 or no rule | high | | CHG-02 | Branch protection requires review | same | required_approving_review_count < 1 | medium | | CHG-02.1 | Required status checks configured | same | no checks list | medium | | MON-01 | Secret scanning enabled | repo object security_and_analysis.secret_scanning.status | disabled | high | | MON-01.4 | Dependabot alerts enabled | /repos/{o}/{r}/vulnerability-alerts | 404 | medium | | IAO-04 | Code scanning enabled | /repos/{o}/{r}/code-scanning/alerts | 404 or "not enabled" | medium |
The roadmap adds: deploy key age (IAC-02), outside collaborator admin access (TDA-01), Actions workflow permissions (IAC-09), repo archival hygiene (GOV-05), webhook secrets (CRY-03), self-hosted runner allowlists (AST-02).
Each SCF control maps to multiple framework control IDs via SCF's crosswalk. Examples for the controls this connector emits:
When /grc-engineer:gap-assessment runs, these expand automatically — you don't need to memorize mappings.
The requirement is genuinely unmet. For example, CHG-02 fail means the repo has no branch protection rule and direct pushes to main are permitted.
Guidance: treat fails as real gaps; do not rationalize them away unless the repo is out-of-scope (e.g., a throwaway sandbox that shouldn't be in the assessment scope).
The connector tried to check but couldn't determine the answer. Common causes:
security_events needed for code scanning, admin:repo or admin:org for some admin endpoints. Remedy: gh auth refresh --scopes=repo,read:org,security_events.disabled.Guidance: inconclusive ≠ pass. Tell the user what to fix (usually a scope refresh), then re-run collect.
The check succeeded. For MON-01 this specifically means security_and_analysis.secret_scanning.status === "enabled" in the repo API response.
After running /gap-assessment, guide them toward the highest-value remediation:
CHG-02 failures across many repos: suggest a GitHub organizational rule (repository ruleset) instead of fixing each repo individually. Ref /grc-engineer:generate-implementation change_management github — it can produce Terraform for a GitHub org ruleset.MON-01 fails on private repos: they need GitHub Advanced Security (paid) for private repos; public repos get secret scanning for free. Explain the licensing implication.IAO-04 fails broadly: suggest a CodeQL GitHub Action template PR that can be opened across all repos via gh workflow or a central template repo.Be honest about what github-inspector does not cover:
zizmor or actionlint).When a user asks about these areas, say so. Don't overstate coverage.
--include-archived. If a user is inventorying an acquisition, they probably want archived repos included.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 16,182 | 11,704 | -28% | 1 | 1 | 0% | 2,534 | 3,281 | +29% | 0 | 0 | — |
case-12 | pass→pass | 12,065 | 6,555 | -46% | 1 | 1 | 0% | 2,152 | 2,563 | +19% | 0 | 0 | — |
case-18 | pass→pass | 13,945 | 7,853 | -44% | 1 | 1 | 0% | 2,288 | 2,794 | +22% | 0 | 0 | — |
case-19 | pass→pass | 15,996 | 7,770 | -51% | 1 | 1 | 0% | 2,278 | 2,649 | +16% | 0 | 0 | — |
case-01 | fail→pass | 25,530 | 17,773 | -30% | 1 | 1 | 0% | 4,240 | 4,306 | +2% | 0 | 0 | — |
case-02 | pass→pass | 22,015 | 11,851 | -46% | 1 | 1 | 0% | 3,263 | 3,291 | +1% | 0 | 0 | — |
case-03 | fail→pass | 18,506 | 8,694 | -53% | 1 | 1 | 0% | 3,268 | 2,872 | -12% | 0 | 0 | — |
case-04 | fail→pass | 16,363 | 7,014 | -57% | 1 | 1 | 0% | 2,496 | 2,553 | +2% | 0 | 0 | — |
case-06 | pass→pass | 15,351 | 10,184 | -34% | 1 | 1 | 0% | 2,452 | 3,084 | +26% | 0 | 0 | — |
case-07 | pass→pass | 12,406 | 8,196 | -34% | 1 | 1 | 0% | 1,970 | 2,857 | +45% | 0 | 0 | — |
case-08 | pass→pass | 15,594 | 11,797 | -24% | 1 | 1 | 0% | 2,242 | 3,389 | +51% | 0 | 0 | — |
case-09 | fail→pass | 17,420 | 11,892 | -32% | 1 | 1 | 0% | 2,876 | 3,404 | +18% | 0 | 0 | — |
case-10 | pass→pass | 13,960 | 9,127 | -35% | 1 | 1 | 0% | 1,993 | 2,710 | +36% | 0 | 0 | — |
case-11 | pass→pass | 13,528 | 5,459 | -60% | 1 | 1 | 0% | 2,025 | 2,269 | +12% | 0 | 0 | — |
case-13 | pass→pass | 16,276 | 7,580 | -53% | 1 | 1 | 0% | 2,709 | 2,693 | -1% | 0 | 0 | — |
case-14 | fail→fail | 16,899 | 10,555 | -38% | 1 | 1 | 0% | 2,496 | 2,943 | +18% | 0 | 0 | — |
case-15 | fail→pass | 12,296 | 6,736 | -45% | 1 | 1 | 0% | 2,142 | 2,460 | +15% | 0 | 0 | — |
case-16 | fail→pass | 13,447 | 6,120 | -54% | 1 | 1 | 0% | 1,923 | 2,456 | +28% | 0 | 0 | — |
case-17 | pass→pass | 16,738 | 3,298 | -80% | 1 | 1 | 0% | 2,918 | 1,943 | -33% | 0 | 0 | — |
case-20 | fail→pass | 13,859 | 5,046 | -64% | 1 | 1 | 0% | 2,055 | 2,227 | +8% | 0 | 0 | — |
case-21 | pass→pass | 8,262 | 6,587 | -20% | 1 | 1 | 0% | 1,200 | 2,499 | +108% | 0 | 0 | — |
case-22 | fail→pass | 5,453 | 4,909 | -10% | 1 | 1 | 0% | 708 | 2,214 | +213% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.