Audit and bulk-correct repository self-references across multi-file, multi-language codebases. Covers repo name typos, clone URLs, placeholder tokens, and cross-reference consistency after renames or refactors.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add clowlove/Hermes-House --skill repo-reference-audit --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Repo Reference Audit?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/clowlove-repo-reference-audit)More formats (shields.io, HTML) on the badges page.
---
name: repo-reference-audit
description: "Audit and bulk-correct repository self-references across multi-file, multi-language codebases. Covers repo name typos, clone URLs, placeholder tokens, and cross-reference consistency after renames or refactors."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
hermes:
tags: [GitHub, Maintenance, Refactoring, Documentation, URLs]
related_skills: [github-repo-management, github-pr-workflow]
---
# Repository Reference Audit
Systematically find and fix repository self-references that have drifted due to renames, copy-paste from upstream templates, or placeholder tokens left during setup.
## When to Use
- After renaming a repository
- After forking/copying a repo and references still point to upstream
- When `[REDACTED]` placeholders remain in public-facing files
- When README clone instructions or badge URLs don't match the actual repo
- Periodic hygiene check before release/publication
## Audit Methodology
### Phase 1: Discovery
Scan the entire repo for all external-looking URLs and repo-name patterns:
```bash
# Find all HTTP(S) URLs
find . -type f \( -name '*.md' -o -name '*.json' -o -name '*.py' -o -name '*.yml' -o -name '*.yaml' \) \
-not -path './node_modules/*' -not -path './.git/*' \
-exec grep -Hn 'https?://[^)>\s]+' {} +
# Find all owner/repo patterns (GitHub shorthand)
grep -rn 'github\.com/[A-Za-z0-9_-]\+/[A-Za-z0-9_.\-]\+' --include='*.md' --include='*.json' --include='*.py' --include='*.yml'
# Find common typos/variants of the repo name
grep -rn 'Harmes-House\|Hermes-House\|[REDACTED]' --include='*.md' --include='*.json' --include='*.py'
```
Also check:
- `git remote -v` for the canonical upstream
- `package.json` `repository`, `bugs`, `homepage` fields
- `mkdocs.yml` or `docs/` config for site URLs
- CI workflows (`.github/workflows/`) for hardcoded repo references
### Phase 2: Classification
Classify every hit into one of these buckets:
| Bucket | Action | Example |
|--------|--------|---------|
| **Correct** | No change | `https://github.com/clowlove/Hermes-House` |
| **Typo in repo name** | Fix spelling | `Harmes-House` → `Hermes-House` |
| **Wrong upstream** | Point to actual repo | `nousresearch/hermes-agent` → `clowlove/Hermes-House` |
| **Placeholder token** | Replace with real value | `[REDACTED]` → `clowlove` (or remove if sensitive) |
| **External ref** | Keep as-is | Third-party URLs, upstream docs, CDN badges |
| **Generated/lock file** | Skip unless intentional | `package-lock.json` resolved URLs, `node_modules/` |
### Phase 3: Targeted Fixes
**Do NOT blindly sed the whole repo.** Fix by bucket with explicit old_string → new_string pairs.
Pitfalls:
- **Lock/resolved files**: `package-lock.json`, `yarn.lock`, `.gitmodules` resolved URLs may be mirrors or upstream pins — inspect before changing.
- **Badges**: `img.shields.io/badge/...` and `github/stars|forks|issues` URLs often encode the repo name. Fix these too, but verify the badge service accepts the new repo name.
- **Historical logs**: Files in `docs/memory-backup/` or `CHANGELOG.md` may reference old names as history. Fix for consistency unless the entry is a dated historical record that should stay verbatim.
- **Upstream references**: READMEs often have "Star the upstream" badges pointing to upstream repos (e.g., `nousresearch/hermes-agent`). Keep these if they're intentional upstream attribution, but fix any that are mistakenly pointing upstream when they should point to the fork.
- **Sensitive placeholders**: `[REDACTED]` in public files may be intentional privacy redaction. Do NOT restore real secrets. If the placeholder is in a public README and the value is non-sensitive (username, non-secret URL), replace it. If it's a PAT, token, or private email, leave it redacted or ask the user.
### Phase 4: Verification
```bash
# Re-scan for remaining issues
grep -rn 'Harmes-House\|nousresearch/hermes-agent' --include='*.md' --include='*.json' --include='*.py' | grep -v 'badge\|Sponsor\|Support'
# Verify clone instructions work
grep -rn 'git clone' --include='*.md' | grep -v 'nousresearch/hermes-agent'
# Check placeholder tokens remain only where intended
grep -rn '\[REDACTED\]' --include='*.md' --include='*.json'
```
## Common Patterns
### Repo rename typo (a → e)
The most common pattern when a repo is named after a brand/person and gets misspelled in templates:
- `Harmes-House` → `Hermes-House` (missing 'e')
- Search for the typo variant across all file types, not just code files.
### Clone URL drift
Forks often copy README clone instructions from upstream:
```diff
- git clone https://github.com/upstream-org/original-repo.git
+ git clone https://github.com/clowlove/Hermes-House.git
cd Hermes-House
```
### Placeholder tokens
`[REDACTED]`, `YOUR_USERNAME`, `owner/repo` left in configs or docs:
- Replace non-sensitive placeholders with real values
- Leave secrets redacted
- Update `mkdocs.yml`, `package.json`, `MEMORY.md`, and any config files
## Safety Constraints
1. **Never rewrite product structure** — only touch docs, configs, metadata, and CSS/JS/meta for SEO/visual work.
2. **Never touch `node_modules/`, `.git/`, `dist/`, `build/`** — these are generated or immutable.
3. **Lock files** (`package-lock.json`, `yarn.lock`) — only fix if the resolved URL is clearly wrong for this repo. Mirror URLs (Tencent, Aliyun, etc.) are intentional.
4. **Historical logs** — dated entries in `CHANGELOG.md`, `docs/memory-backup/`, `hermes-journal.md` should be fixed for consistency unless they are verbatim historical records.
5. **Secrets** — never expose PATs, tokens, API keys, or private emails during cleanup.
## Output
After fixing, report:
- Number of files modified
- Breakdown by bucket (typo, wrong upstream, placeholder, etc.)
- Any intentional upstream references you deliberately kept
- Any placeholders you left redacted and why
## Reference
For the full error taxonomy and real-world examples from the `clowlove/Hermes-House` audit, see `references/repo-reference-audit-examples.md`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!