Skip to content
Back to skills

Repo Security Audit

ASecurity

Use this skill when the user asks to "audit repo", "analyze repository", "find bugs", "find gaps", "review codebase", "check code quality", or wants to analyze a repository for bugs, missing features, test coverage gaps, security issues and create GitHub issues for findings. Performs a deep technical audit and optionally opens GitHub issues for high-priority problems.

  • 8 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added August 31, 2026
ai-agentsrustgobashgitapisecurityperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

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

Scanned August 31, 2026

npx -y skills add valorisa/Claude-Skills --skill repo-security-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Repo Security Audit?

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

Security grade badge for Repo Security Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/valorisa-repo-security-audit/badge)](https://www.skillsdirectory.com/skills/valorisa-repo-security-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
---
allowed-tools: Bash(gh issue create:*), Bash(gh issue list:*), Bash(gh repo view:*), Bash(gh api:*), Bash(git log:*), Bash(git diff:*), Bash(find:*), Bash(cat:*), Bash(grep:*), Bash(jq:*), Read, Glob, Grep, Agent, WebFetch
description: Use this skill when the user asks to "audit repo", "analyze repository", "find bugs", "find gaps", "review codebase", "check code quality", or wants to analyze a repository for bugs, missing features, test coverage gaps, security issues and create GitHub issues for findings. Performs a deep technical audit and optionally opens GitHub issues for high-priority problems.
version: 1.0.0
---

# Repo Audit

Perform a deep technical audit of a repository: find bugs, gaps, missing tests, security issues, and API design problems. Optionally create GitHub issues for findings.

Make a todo list and track progress through all steps.

---

## Step 0 — Determine target

If the user provided a GitHub URL (e.g. `https://github.com/owner/repo`), extract `owner/repo`.

If the user provided a local path, use that directly.

If neither was provided, use the current working directory as the target.

Ask the user: **"Should I create GitHub issues for high-priority findings?"** before proceeding if not already specified.

---

## Step 1 — Explore repository structure

Read the repository to understand its purpose and architecture:

```bash
gh repo view <owner/repo>
```

Then explore locally (if available) or via GitHub API:

1. Read `README.md` to understand the project's goals and documented features
2. Read `pyproject.toml` / `package.json` / `go.mod` / `Cargo.toml` to identify language, dependencies and version
3. List source files and test files to understand coverage ratio
4. Read the main entry point and core modules

Build a mental model of:

- What the project does
- Tech stack and architecture
- Execution modes or major features
- How tests are organized

---

## Step 2 — Deep code analysis

Systematically read and analyze the source code. For each module, check for:

### Bugs

- Logic errors in conditionals, setters, or property accessors
- Incorrect use of standard library (e.g. `isinstance` with `typing` types instead of `abc`)
- Wrong argument order in function calls
- `sys.modules` or import cache misuse
- Race conditions in threaded/async code
- Off-by-one errors in counters or indices

### Performance Issues

- Busy-wait loops (while loops without sleep/blocking)
- Missing connection pooling or caching
- Redundant re-computation inside loops
- Unbounded memory growth (queues, lists, caches)

### Security Issues

- Dynamic code execution (`exec`, `eval`, `exec_module`) without input validation
- World-readable file/directory creation without permission mode
- Serialization of untrusted data (pickle, JSON from user input)
- Credentials or secrets hardcoded or logged

### API Design Issues

- Return type annotations that don't match actual return values
- Inconsistent method naming or behavior across similar methods
- Methods that silently swallow exceptions during retries
- Missing input validation at public API boundaries
- Unclear or undocumented side effects

### Test Coverage Gaps

- Features documented in README but with no tests
- CLI commands with no integration tests
- Timeout and retry logic with no verification tests
- Platform-specific code paths never exercised

### Documentation Gaps

- Features implemented but not mentioned in README
- Behavior that contradicts documentation
- Missing examples for non-obvious configuration options

---

## Step 3 — Compile findings

Organize findings into four severity tiers:

### Critical (runtime failures, data loss, security)

These break the software or expose serious vulnerabilities. Include:

- File path and line number
- What the bug is
- Why it fails
- Suggested fix (code snippet)

### High Priority (incorrect behavior, performance, API breakage)

These cause incorrect behavior under common use cases or degrade performance significantly.

### Medium Priority (missing features, coverage gaps, bad UX)

These don't break existing functionality but limit reliability or usability.

### Low / Nice-to-have (style, docs, minor improvements)

Small improvements that improve maintainability or developer experience.

---

## Step 4 — Present summary to user

Show a structured report:

```
## Audit Summary — <repo name>

### Critical Bugs (N)
- [file.py:line] Short description

### High Priority (N)
- [file.py:line] Short description

### Medium Priority (N)
- Short description

### Test Coverage Gaps (N)
- Short description

### Security Concerns (N)
- Short description
```

Ask the user: **"Which severity levels should I open GitHub issues for?"**
Default (if not specified): Critical + High Priority only.

---

## Step 5 — Create GitHub issues (if confirmed)

For each finding in the selected severity tiers, create a GitHub issue using:

```bash
gh issue create --repo <owner/repo> \
  --title "<short descriptive title>" \
  --body "<full markdown body>"
```

Each issue body must follow this structure:

```markdown
## Description

<One paragraph explaining the problem clearly.>

## Location

`<file/module>` line ~<N>

## Current Behavior

<Code snippet showing the problematic code>

<Explanation of what it does wrong>

## Expected Behavior

<What it should do instead>

## Suggested Fix

<Code snippet with the fix>

## Impact

<Who is affected and how severely>

## Priority

<Critical / High / Medium>
```

Rules:

- Write all issues **in English**
- One issue per finding (do not bundle unrelated problems)
- Do not mention AI or automated tools in the issue body
- Keep titles under 80 characters, specific and actionable
- Use inline code formatting for file paths and function names

---

## Step 6 — Final report

After creating all issues, show the user a summary table:

| Issue | Title | Severity |
|-------|-------|----------|
| #N    | title | Critical |
| #N    | title | High     |

Then suggest next steps:

- Which critical bugs to fix first
- Whether a 1.0 release is advisable given the findings
- Any architectural changes worth considering

Voici une version corrigée en un seul bloc, avec les blancs nécessaires autour des titres et des listes pour satisfaire MD022 et MD032.

```markdown
---
allowed-tools: Bash(gh issue create:*), Bash(gh issue list:*), Bash(gh repo view:*), Bash(gh api:*), Bash(git log:*), Bash(git diff:*), Bash(find:*), Bash(cat:*), Bash(grep:*), Bash(jq:*), Read, Glob, Grep, Agent, WebFetch
description: Use this skill when the user asks to "audit repo", "analyze repository", "find bugs", "find gaps", "review codebase", "check code quality", or wants to analyze a repository for bugs, missing features, test coverage gaps, security issues and create GitHub issues for findings. Performs a deep technical audit and optionally opens GitHub issues for high-priority problems.
version: 1.0.0
---

# Repo Audit

Perform a deep technical audit of a repository: find bugs, gaps, missing tests, security issues, and API design problems. Optionally create GitHub issues for findings.

Make a todo list and track progress through all steps.

---

## Step 0 — Determine target

If the user provided a GitHub URL (e.g. `https://github.com/owner/repo`), extract `owner/repo`.

If the user provided a local path, use that directly.

If neither was provided, use the current working directory as the target.

Ask the user: **"Should I create GitHub issues for high-priority findings?"** before proceeding if not already specified.

---

## Step 1 — Explore repository structure

Read the repository to understand its purpose and architecture:

```bash
gh repo view <owner/repo>
```

Then explore locally (if available) or via GitHub API:

1. Read `README.md` to understand the project's goals and documented features
2. Read `pyproject.toml` / `package.json` / `go.mod` / `Cargo.toml` to identify language, dependencies and version
3. List source files and test files to understand coverage ratio
4. Read the main entry point and core modules

Build a mental model of:

- What the project does
- Tech stack and architecture
- Execution modes or major features
- How tests are organized

---

## Step 2 — Deep code analysis

Systematically read and analyze the source code. For each module, check for:

### Bugs

- Logic errors in conditionals, setters, or property accessors
- Incorrect use of standard library (e.g. `isinstance` with `typing` types instead of `abc`)
- Wrong argument order in function calls
- `sys.modules` or import cache misuse
- Race conditions in threaded/async code
- Off-by-one errors in counters or indices

### Performance Issues

- Busy-wait loops (while loops without sleep/blocking)
- Missing connection pooling or caching
- Redundant re-computation inside loops
- Unbounded memory growth (queues, lists, caches)

### Security Issues

- Dynamic code execution (`exec`, `eval`, `exec_module`) without input validation
- World-readable file/directory creation without permission mode
- Serialization of untrusted data (pickle, JSON from user input)
- Credentials or secrets hardcoded or logged

### API Design Issues

- Return type annotations that don't match actual return values
- Inconsistent method naming or behavior across similar methods
- Methods that silently swallow exceptions during retries
- Missing input validation at public API boundaries
- Unclear or undocumented side effects

### Test Coverage Gaps

- Features documented in README but with no tests
- CLI commands with no integration tests
- Timeout and retry logic with no verification tests
- Platform-specific code paths never exercised

### Documentation Gaps

- Features implemented but not mentioned in README
- Behavior that contradicts documentation
- Missing examples for non-obvious configuration options

---

## Step 3 — Compile findings

Organize findings into four severity tiers:

### Critical (runtime failures, data loss, security)

These break the software or expose serious vulnerabilities. Include:

- File path and line number
- What the bug is
- Why it fails
- Suggested fix (code snippet)

### High Priority (incorrect behavior, performance, API breakage)

These cause incorrect behavior under common use cases or degrade performance significantly.

### Medium Priority (missing features, coverage gaps, bad UX)

These don't break existing functionality but limit reliability or usability.

### Low / Nice-to-have (style, docs, minor improvements)

Small improvements that improve maintainability or developer experience.

---

## Step 4 — Present summary to user

Show a structured report:

```markdown
## Audit Summary — <repo name>

### Critical Bugs (N)
- [file.py:line] Short description

### High Priority (N)
- [file.py:line] Short description

### Medium Priority (N)
- Short description

### Test Coverage Gaps (N)
- Short description

### Security Concerns (N)
- Short description
```

Ask the user: **"Which severity levels should I open GitHub issues for?"**

Default (if not specified): Critical + High Priority only.

---

## Step 5 — Create GitHub issues (if confirmed)

For each finding in the selected severity tiers, create a GitHub issue using:

```bash
gh issue create --repo <owner/repo> \
  --title "<short descriptive title>" \
  --body "<full markdown body>"
```

Each issue body must follow this structure:

```markdown
## Description

<One paragraph explaining the problem clearly.>

## Location

`<file/module>` line ~<N>

## Current Behavior

<Code snippet showing the problematic code>

<Explanation of what it does wrong>

## Expected Behavior

<What it should do instead>

## Suggested Fix

<Code snippet with the fix>

## Impact

<Who is affected and how severely>

## Priority

<Critical / High / Medium>
```

Rules:

- Write all issues **in English**
- One issue per finding (do not bundle unrelated problems)
- Do not mention AI or automated tools in the issue body
- Keep titles under 80 characters, specific and actionable
- Use inline code formatting for file paths and function names

---

## Step 6 — Final report

After creating all issues, show the user a summary table:

| Issue | Title | Severity |
|-------|-------|----------|
| #N    | title | Critical |
| #N    | title | High     |

Then suggest next steps:

- Which critical bugs to fix first
- Whether a 1.0 release is advisable given the findings
- Any architectural changes worth considering

Files in this skill

  • README.md10.1 KB
  • SKILL.md12.2 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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.