Skip to content
Back to skills

Repo Audit

ASecurity

Audit a repo across four dimensions — uniqueness and selling point, philosophy-to-implementation coherence, setup and doc effectiveness, and codebase quality (DRY, KISS, SRP, composition). Invoke when asked to review, assess, or health-check a repo.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
developmentgoshellnode

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add sunitghub/canon-skills --skill repo-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Repo Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Repo Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sunitghub-repo-audit/badge)](https://www.skillsdirectory.com/skills/sunitghub-repo-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: repo-audit
description: Audit a repo across four dimensions — uniqueness and selling point, philosophy-to-implementation coherence, setup and doc effectiveness, and codebase quality (DRY, KISS, SRP, composition). Invoke when asked to review, assess, or health-check a repo.
category: agent-ops
tags: [audit, analysis, sdlc, docs, philosophy]
hidden: true
---

# Repo Audit

A four-dimension analysis. Run from any project directory — the audit reads the repo under analysis, not canon. Produces an inline report and always writes or updates the latest report at `critique/canon-critique.md` in the repo under analysis, with the audit run DateTime as the first line.

## Before Auditing

Read these in order, stop when you have enough to answer each dimension:

1. `README.md` — value prop, install path, stated audience
2. Philosophy/design doc (`docs/how-it-works.md`, `DESIGN.md`, `ARCHITECTURE.md`, or ADRs if present)
3. Primary setup/install guide
4. `CONTRIBUTING.md` (if present)
5. 3–5 core source files (main CLI entrypoint, core logic) — skip test fixtures, generated files, `node_modules`, `dist`

Do not read everything. Read until you can answer the questions for each dimension.

## Dimension 1 — Uniqueness and Selling Point

**Goal**: Determine whether the repo has a clear, genuine differentiator — and whether it lands for the target user.

Questions to answer:
- What is the stated purpose? Who is the target user?
- What problem does it solve, and for whom?
- What alternatives exist? Name them. What does this repo do that they don't?
- What is genuinely novel vs. table stakes?
- Does the README earn its differentiation claim, or does it assert without showing?
- Would the target user read this and say "finally" — or "so what"?

**Rate**: Distinct / Murky / Generic

## Dimension 2 — Philosophy-to-Implementation Coherence

**Goal**: Verify the implementation honors the philosophy — not just in words, but in every command, tool, and convention.

Questions to answer:
- What is the repo's stated philosophy? Extract it explicitly from the docs. If no dedicated philosophy doc exists (no `DESIGN.md`, `ARCHITECTURE.md`, `docs/how-it-works.md`, or ADRs), extract from `README.md` instead — and note the absence as a finding. The missing doc is a finding, not a stop condition; proceed with best-effort ratings for all four dimensions.
- Does the implementation honor it? Check: command surface size, complexity vs. claimed simplicity, patterns in core code
- Does the usage pattern (workflows, commands, default behaviors) reflect the philosophy?
- Where does the implementation contradict or silently undermine the stated philosophy?
- Are there features that have crept in and violated it?
- If the README's stated feature count or command surface contradicts the actual implementation, flag it here as a coherence failure (and also in Dimension 1 as a positioning gap).

Look for: philosophy stated but not implemented, implementation that outgrew its stated scope, or a tool that claims minimalism but adds flags for every edge case.

**Rate**: Strong / Drifting / Contradicted

## Dimension 3 — Setup and Doc Effectiveness

**Goal**: "Can a newcomer get from zero to working using these docs?" Focus on the user journey, not per-claim accuracy. (Per-claim accuracy → `doc-audit`.)

Questions to answer:
- Is there a clear, tested install path? Can you follow it cold, without prior knowledge?
- Are prerequisites explicit before they're needed — not buried mid-guide?
- Is the first success moment reachable without hitting a wall? How many steps?
- Do examples exist? Do they match current behavior?
- Is the docs structure navigable? Can you find what you need without reading everything?
- Are there implicit environment assumptions (OS, shell, global tools)?
- When step N fails, is there a recovery path — or does the guide end there?

**Rate**: Clear / Gaps / Broken

## Dimension 4 — Codebase Quality

**Goal**: Assess how well the codebase follows SDLC principles adapted for the repo's paradigm (shell, markdown, CLI, agents — not OOP).

Principles to apply (map to what's present, skip what isn't applicable):

| Principle | In shell/CLI/agent context |
|-----------|---------------------------|
| **SRP** (Single Responsibility) | Each script/tool/skill does one thing; no file with multiple unrelated jobs |
| **DRY** (Don't Repeat Yourself) | Each fact has one canonical location; logic isn't duplicated across scripts |
| **KISS** (Keep It Simple) | Scripts are as simple as they could be; no abstractions that could be a one-liner |
| **YAGNI** (You Ain't Gonna Need It) | No unused flags, config options, or features not yet needed |
| **Composition over commands** | Complex operations built from smaller composable units, not monolithic multi-step scripts |
| **CoC** (Convention over Configuration) | Conventions established and followed; explicit config only where necessary. For canon-managed content markers in shared files (`AGENTS.md`, `HANDOFF.md`, etc.): new markers should follow `<!-- canon:<name>:BEGIN/END -->` (see `standards/skill-setup-std.md`); flag any new ad-hoc marker naming that doesn't follow it. `AI-SKILLS`/`MODEL-TIERS` are documented exceptions predating the convention — not a violation. |
| **Separation of concerns** | Config vs. logic, data vs. behavior, CLI vs. agent, state vs. judgment — each in its place |
| **Context efficiency** (AI-native repos) | Always-loaded files are lean; skills have tight activation; no content duplication across imports. In skill files specifically: no `summary:` frontmatter field when `description:` already covers it; no `---` horizontal rules (visual noise in injected context); no step that duplicates another step's outcome |

Questions to answer:
- Find the 3 most significant violations. Name them as `file:line: problem. fix.`
- Is there structural complexity that compounds failure (shared mutable state, side-effects in unexpected places)?
- Does the complexity of the codebase match the complexity of the problem it solves?
- Is the separation of concerns clean, or do concerns bleed into each other?

**Rate**: Clean / Acceptable / Needs Work

## Report Format

Use this structure exactly. Omit sections that aren't applicable. After composing the report, ensure `critique/` exists and write the same report to `critique/canon-critique.md`, replacing the prior contents so the file is the latest critique snapshot.

The first line must always be the local DateTime when the audit ran, formatted as `MM-DD-YYYY hh:mm AM/PM`:

`Audit run: MM-DD-YYYY hh:mm AM/PM`

```
Audit run: MM-DD-YYYY hh:mm AM/PM

## Repo Audit: <repo-name>

### 1. Uniqueness / Selling Point — [Distinct | Murky | Generic]
- <finding>
- <finding>
Recommendation: <one actionable sentence>

### 2. Philosophy Coherence — [Strong | Drifting | Contradicted]
Stated philosophy: <extract — quote or paraphrase from source file>
- <specific example of coherence or drift>
- <specific example of coherence or drift>
Recommendation: <one actionable sentence>

### 3. Docs Effectiveness — [Clear | Gaps | Broken]
Zero-to-working: <yes/no + rough step count or time estimate>
- <specific friction point or win>
- <specific friction point or win>
Recommendation: <one actionable sentence>
Note: per-claim accuracy → run doc-audit

### 4. Codebase Quality — [Clean | Acceptable | Needs Work]
- file:line: problem. fix.
- file:line: problem. fix.
- file:line: problem. fix.
Recommendation: <one actionable sentence>

### Summary
Overall: [Healthy | Minor gaps | Needs attention]
Top priority: <the one thing to address first, and why>
```

Files in this skill

  • SKILL.md7.5 KB
  • evals/evals.json3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…