Skip to content
Back to skills

Caching And Incremental

ASecurity

Always-on meta-skill — cache audit results per file by content hash so unchanged files aren't re-analyzed on subsequent runs. Activate on every /audit, /quick-scan, /audit-changes invocation.

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
blockchainrustgo

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add omermaksutii/RugProof --skill caching-and-incremental --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Caching And Incremental?

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

Security grade badge for Caching And Incremental
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/omermaksutii-caching-and-incremental/badge)](https://www.skillsdirectory.com/skills/omermaksutii-caching-and-incremental)

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: caching-and-incremental
description: Always-on meta-skill — cache audit results per file by content hash so unchanged files aren't re-analyzed on subsequent runs. Activate on every /audit, /quick-scan, /audit-changes invocation.
---

# Caching & incremental audit (meta-skill)

The first audit of a 50K-line codebase is slow. The second one shouldn't be. This skill governs cache reuse.

## Cache layout

`~/.cache/rugproof/<repo-fingerprint>/`

```
findings/
  <sha256(file-content)>.json    # findings for that exact file content
  <sha256>.skill-versions        # skill names + versions used to produce findings
manifest.json                     # mapping file-path → current sha256
```

**Repo fingerprint** = sha256 of the absolute repo root path (so different checkouts don't collide).

## Procedure (per file F to audit)

### Step 1 — Compute current hash
`current_hash = sha256(read F)`

### Step 2 — Check manifest
- Look up `manifest[F]` → `cached_hash`.
- If `cached_hash == current_hash`:
  - Load `findings/<current_hash>.json`.
  - Verify `skill-versions` matches current skill set.
  - If both match: **return cached findings**, mark file as cached in output.
- Otherwise → audit fresh and write to cache.

### Step 3 — Write fresh result
After audit completes:
- `write findings/<current_hash>.json`
- Update `manifest[F] = current_hash`

### Step 4 — Garbage collect
Periodically (e.g. weekly): drop `findings/*.json` not referenced from any current manifest.

## Invalidation triggers

Re-audit even if hash matches when:
- The list of active skills has changed since the cached result
- A new vulnerability skill was added that may apply
- User passes `--no-cache` or `--rerun`
- `.rugproof.yml` config has changed (different severity threshold, profile, etc.)

## Cache disable

- `RUGPROOF_NO_CACHE=1` env var
- `cache: false` in `.rugproof.yml`
- `--no-cache` flag on any audit command
- `RUGPROOF_OFFLINE=1` does NOT disable the local cache (it's still local I/O)
- `RUGPROOF_PRIVACY=1` writes cache only to a temp dir that's wiped on exit

## Output

In the audit summary, show:
```
Cache:    27 files cached (78%) · 8 files re-analyzed
Speedup:  ~6.4× vs cold run
```

This builds trust that the cache is doing real work.

## When NOT to cache

- `/audit-deep` — too thorough; user wants fresh
- `/audit-strict` — same reason
- `/audit-live` — fork state changes; never cache
- `/exploit*` — exploit attempts must run fresh

## Related

- [[false-positive-feedback-loop]] — dismissals are a separate cache
- [[multi-pass-self-critique]] — strict mode bypasses cache
- /audit, /quick-scan, /audit-changes — main consumers

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.