/repo-sentinel
Full security audit for public repositories across 12 attack surfaces: git history, secrets, CI/CD, containers, dependencies, licenses. Triggers on: "push to GitHub", "make repo public", "open source this", "is this safe to push", "release audit", "secret leaks".
$ npx -y skills add Mathews-Tom/armory --skill repo-sentinel --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/repo-sentinel
Context preview
The summary Claude sees to decide when to auto-load this skill.
Full security audit for public repositories across 12 attack surfaces: git history, secrets, CI/CD, containers, dependencies, licenses. Triggers on: "push to GitHub", "make repo public", "open source this", "is this safe to push", "release audit", "secret leaks".
SKILL.md
repo-sentinel.SKILL.mdname: repo-sentinel
description: 'Full security audit for public repositories across 12 attack surfaces: git history, secrets, CI/CD, containers, dependencies, licenses. Triggers on: "push to GitHub", "make repo public", "open source this", "is this safe to push", "release audit", "secret leaks".'
metadata:
version: 1.1.1
category: review
tags: [security, public-repo, secret-scanning, audit]
difficulty: advanced
phase: review
Repo Sentinel
Everything in a public repo is permanent attacker surface. This skill defines what belongs in a public repo, what does not, how to detect violations across 12 attack surfaces, how to remediate when the boundary is violated, and how to enforce continuously.
Reference files
This skill uses bundled reference files for detailed patterns and templates. Read them as needed:
| File | When to read | | ------------------------------------- | ------------------------------------------------------------------------------- | | `references/attack-surfaces.md` | When auditing any surface — full definitions for Surfaces 0–12 | | `references/scan-patterns.md` | When running any audit (fast-path or full) — contains all detection commands | | `references/pre-release-checklist.md` | When running the Pre-Release Audit (Stage 4) — §4.1–§4.8 readiness checklist | | `references/templates.md` | When setting up enforcement, generating .gitignore, or creating CI gates | | `references/remediation.md` | When fixing findings or scrubbing history — contains all fix procedures |
---
Prerequisites
- `gh` CLI installed and authenticated (`gh auth status` must pass) — required for GitHub-specific surface checks (Surface 10)
- Active git repository context — the skill operates on `git` objects; non-git directories are out of scope
- `trufflehog` or `gitleaks` — optional but strongly recommended for Surface 0 (git history) secret detection with entropy analysis; without them, fall back to `git log -p` grep patterns from `references/scan-patterns.md`
- Read access to the full git object store — shallow clones (`--depth N`) will miss history secrets; warn the user if a shallow clone is detected
Calibration Rules
- **Public vs. private visibility:** Apply stricter severity ratings for public repos — findings classified MEDIUM in a private repo (e.g., internal URL in a comment) escalate to HIGH in a public repo. Confirm repo visibility before scoring.
- **Stack-scoped surfaces:** Scope the audit to attack surfaces relevant to the detected tech stack. A static HTML repo has no meaningful Surface 6 (containers) or Surface 7 (lock files) exposure — mark those surfaces N/A rather than penalizing.
- **N/A handling:** Surfaces scored N/A are not penalized and do not lower the overall risk posture. Document N/A surfaces explicitly so the user understands what was skipped.
- **Tool availability:** If `trufflehog`/`gitleaks` are unavailable, note this in the audit header and describe the reduced confidence in Surface 0 coverage.
- **False positive discipline:** Flag a finding only when there is evidence of actual exposure, not just pattern proximity. A variable named `api_key` with a placeholder value is LOW, not CRITICAL.
Foundational Principle
**The public/private boundary is a one-way valve.** Once a byte reaches a public remote — via push, PR, issue, wiki, release asset, or GitHub Pages — assume it is indexed, cached, mirrored, and archived permanently. `git push --force`, PR deletion, issue edits, and release removal do NOT guarantee erasure. Scraping infrastructure (GitHub Archive, GH Torrent, Software Heritage, Google Cache, Wayback Machine, and dozens of proprietary security scanners) operates continuously with sub-hour latency.
**Decision framework for every artifact:**
| Question | If YES → | If NO → | | --------------------------------------------------------------------- | --------------------------- | -------- | | Could this help an attacker who has no other access? | EXCLUDE | Continue | | Does this reveal internal topology not inferable from public signals? | EXCLUDE | Continue | | Does this contain values that grant access to anything? | EXCLUDE | Continue | | Does this violate a license obligation or expose legal risk? | EXCLUDE | Continue | | Would removing this reduce the repo's utility to legitimate users? | INCLUDE (if above = all NO) | EXCLUDE |
When in doubt, exclude. False negatives (leaked secrets) are catastrophic and irreversible. False positives (over-redaction) are trivially correctable.
---
The 12 Attack Surfaces
Full definitions — what belongs, what doesn't, why it leaks, detection approach — for Surfaces 0 through 12 are in `references/attack-surfaces.md`. Read that file when scoping or scoring any audit. Scan commands per surface live in `references/scan-patterns.md`; remediation procedures in `references/remediation.md`.
---
Severity Classification
All findings are classified by severity. The classification drives action priority:
| Severity | Criteria | Action | | ------------ | --------------------------------------------------- | ---------------------------- | | **CRITICAL** | Active credential exposure, private key, auth token | Block push. Fix immediately. | | **HIGH** | Infrastructure/topology enabling targeted attack | Resolve before push. | | **MEDIUM** | Information leakage aiding reconnaissance | Fix in next commit. | | **LOW** | Hygiene, style, redundancy issues | Fix at convenience. |
CRIT
Read more
name: repo-sentinel description: 'Full security audit for public repositories across 12 attack surfaces: git history, secrets, CI/CD, containers, dependencies, licenses. Triggers on: "push to GitHub", "make repo public", "open source this", "is this safe to push", "release audit", "secret leaks".' metadata: version: 1.1.1 category: review tags: [security, public-repo, secret-scanning, audit] difficulty: advanced phase: review
Repo Sentinel
Everything in a public repo is permanent attacker surface. This skill defines what belongs in a public repo, what does not, how to detect violations across 12 attack surfaces, how to remediate when the boundary is violated, and how to enforce continuously.
Reference files
This skill uses bundled reference files for detailed patterns and templates. Read them as needed:
| File | When to read | | ------------------------------------- | ------------------------------------------------------------------------------- | | `references/attack-surfaces.md` | When auditing any surface — full definitions for Surfaces 0–12 | | `references/scan-patterns.md` | When running any audit (fast-path or full) — contains all detection commands | | `references/pre-release-checklist.md` | When running the Pre-Release Audit (Stage 4) — §4.1–§4.8 readiness checklist | | `references/templates.md` | When setting up enforcement, generating .gitignore, or creating CI gates | | `references/remediation.md` | When fixing findings or scrubbing history — contains all fix procedures |
---
Prerequisites
- `gh` CLI installed and authenticated (`gh auth status` must pass) — required for GitHub-specific surface checks (Surface 10)
- Active git repository context — the skill operates on `git` objects; non-git directories are out of scope
- `trufflehog` or `gitleaks` — optional but strongly recommended for Surface 0 (git history) secret detection with entropy analysis; without them, fall back to `git log -p` grep patterns from `references/scan-patterns.md`
- Read access to the full git object store — shallow clones (`--depth N`) will miss history secrets; warn the user if a shallow clone is detected
Calibration Rules
- **Public vs. private visibility:** Apply stricter severity ratings for public repos — findings classified MEDIUM in a private repo (e.g., internal URL in a comment) escalate to HIGH in a public repo. Confirm repo visibility before scoring.
- **Stack-scoped surfaces:** Scope the audit to attack surfaces relevant to the detected tech stack. A static HTML repo has no meaningful Surface 6 (containers) or Surface 7 (lock files) exposure — mark those surfaces N/A rather than penalizing.
- **N/A handling:** Surfaces scored N/A are not penalized and do not lower the overall risk posture. Document N/A surfaces explicitly so the user understands what was skipped.
- **Tool availability:** If `trufflehog`/`gitleaks` are unavailable, note this in the audit header and describe the reduced confidence in Surface 0 coverage.
- **False positive discipline:** Flag a finding only when there is evidence of actual exposure, not just pattern proximity. A variable named `api_key` with a placeholder value is LOW, not CRITICAL.
Foundational Principle
**The public/private boundary is a one-way valve.** Once a byte reaches a public remote — via push, PR, issue, wiki, release asset, or GitHub Pages — assume it is indexed, cached, mirrored, and archived permanently. `git push --force`, PR deletion, issue edits, and release removal do NOT guarantee erasure. Scraping infrastructure (GitHub Archive, GH Torrent, Software Heritage, Google Cache, Wayback Machine, and dozens of proprietary security scanners) operates continuously with sub-hour latency.
**Decision framework for every artifact:**
| Question | If YES → | If NO → | | --------------------------------------------------------------------- | --------------------------- | -------- | | Could this help an attacker who has no other access? | EXCLUDE | Continue | | Does this reveal internal topology not inferable from public signals? | EXCLUDE | Continue | | Does this contain values that grant access to anything? | EXCLUDE | Continue | | Does this violate a license obligation or expose legal risk? | EXCLUDE | Continue | | Would removing this reduce the repo's utility to legitimate users? | INCLUDE (if above = all NO) | EXCLUDE |
When in doubt, exclude. False negatives (leaked secrets) are catastrophic and irreversible. False positives (over-redaction) are trivially correctable.
---
The 12 Attack Surfaces
Full definitions — what belongs, what doesn't, why it leaks, detection approach — for Surfaces 0 through 12 are in `references/attack-surfaces.md`. Read that file when scoping or scoring any audit. Scan commands per surface live in `references/scan-patterns.md`; remediation procedures in `references/remediation.md`.
---
Severity Classification
All findings are classified by severity. The classification drives action priority:
| Severity | Criteria | Action | | ------------ | --------------------------------------------------- | ---------------------------- | | **CRITICAL** | Active credential exposure, private key, auth token | Block push. Fix immediately. | | **HIGH** | Infrastructure/topology enabling targeted attack | Resolve before push. | | **MEDIUM** | Information leakage aiding reconnaissance | Fix in next commit. | | **LOW** | Hygiene, style, redundancy issues | Fix at convenience. |
CRIT
Curated, production-grade skills, agents, hooks, rules, commands, utilities, and presets for AI coding agents. No magic, no demos — battle-tested workflows built for developers who use AI seriously.
Repo: Mathews-Tom/armory
Other skills on armory.
- /adr-writer
Generates Architecture Decision Records capturing context, rationale, alternatives, and consequences in numbered status-tracked format. Triggers on: "write an ADR", "document this decision", "architecture decision record", "decision record", "design decision", "ADR for".
Open skill - /agent-builder
Build AI agents and automate Claude Code programmatically via the Claude Agent SDK and headless CLI mode. Covers Python SDK, claude -p, SDK MCP servers, hooks, sessions. Triggers on: "build an agent", "agent SDK", "headless mode", "automate Claude", "programmatic agent".
Open skill - /api-docs-generator
Audits and enhances FastAPI and REST API documentation: missing descriptions, response codes, examples, docstrings, Pydantic models, OpenAPI spec. Triggers on: "generate API docs", "document this API", "OpenAPI for", "FastAPI docs", "document endpoints", "swagger docs".
Open skill - /architecture-diagram
Generate layered architecture diagrams as self-contained HTML with inline SVG icons, CSS Grid containers, and connection overlays. Triggers on: "architecture diagram", "infra diagram", "system diagram", "deployment diagram", "topology", "draw architecture". NOT for architecture
Open skill - /architecture-reviewer
Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports. Triggers on: "review architecture", "critique design", "audit system", "assess scalability", "enterprise readiness", "technical due
Open skill - /arxiv-figures
Optimize and prepare figures for arXiv submission: format conversion (EPS/PDF/PNG/JPG), size reduction, metadata stripping, processor compatibility (DVI vs PDFLaTeX). Triggers on: "optimize figures for arXiv", "reduce figure size", "convert figures for arXiv", "fix arXiv
Open skill

