repo-audit
Repository Audit & Cleanup
Systematically audits the repository for organizational issues, unused files, and stale content.
When to Use
Trigger /repo-audit when:
- Repository feels cluttered or disorganized
- Before major milestones or releases
- Monthly/quarterly maintenance
- After completing large features
- Onboarding new team members (clean house first)
What This Audits
1. Root-Level Files (Should Be Minimal)
Check: Files at repository root that might belong elsewhere
Common issues:
- Screenshots/images → Should be in
docs/images/or deleted - Audit/analysis docs → Should be in
docs/audit/ordocs/analysis/ - Temporary test files → Should be deleted
- Old config files → Should be in appropriate directory or deleted
Process:
# List non-standard root files
ls -1 | grep -v -E '(^\\.|README|LICENSE|CLAUDE|package|pyproject|tsconfig|Dockerfile|cloudbuild|\.gitignore|node_modules|\.venv)'
Categorize each file:
- ✅ Keep at root (essential config/docs)
- 📁 Relocate (move to appropriate directory)
- 🗑️ Delete (temporary/outdated)
2. Documentation Structure
Check: Documentation is organized and current
Expected structure:
docs/
architecture/ # How systems work
troubleshooting/ # When things break
audit/ # Investigation records
plans/ # Implementation plans
prompts/ # Legacy/reference prompts
database/ # Schema docs
images/ # Screenshots, diagrams
Audit each docs/ file:
- Current? Still relevant to current codebase?
- Accurate? Information is correct?
- Organized? In right directory?
- Referenced? Linked from CLAUDE.md or README?
Flag for review:
- Files >6 months old with no updates
- Files referencing deleted/renamed code
- Orphaned files (not linked anywhere)
3. Scripts & Tools
Check: Scripts are used, working, and documented
# List all scripts
find scripts/ -type f -executable
For each script, verify:
- ✅ Purpose documented (comment at top or README)
- ✅ Recently used (check git log for last modification)
- ✅ Dependencies exist (imports/requires are installed)
- ✅ Executable (chmod +x if needed)
Common issues:
- One-off migration scripts no longer needed
- Duplicate functionality (consolidate)
- Hardcoded paths/credentials (parameterize)
- No error handling (improve)
4. Test Files & Test Data
Check: Test files are current and valuable
# Find test files
find tests/ -name "*.py" -o -name "*.ts"
Audit:
- Tests for deleted features (remove)
- Skipped tests (fix or delete)
- Outdated fixtures/mocks (update or delete)
- Test data files no longer used (remove)
5. Code Imports & Dependencies
Check: No unused imports or dependencies
TypeScript/JavaScript:
# Find potentially unused dependencies
npx depcheck dashboard/
Python:
# Find unused imports (requires pip-autoremove or similar)
cd src && python -m autoflake --check --remove-all-unused-imports -r .
Review:
- Packages in package.json/pyproject.toml but not imported
- Large dependencies used minimally (consider alternatives)
- Duplicate dependencies (consolidate)
6. Prompt Files & Templates
Check: Prompt files are current and organized
Expected:
- Active prompts in
docs/prompts/ - Legacy/reference prompts clearly marked
- Continuation prompts in
.claude/prompts/or.claude/checkpoints/
Audit:
- Outdated prompt files (mark as legacy or delete)
- Duplicate prompts (consolidate)
- Prompts referencing old architecture (update or delete)
7. Images & Media Files
Check: Images are used and organized
# Find all images
find . -type f \\( -name "*.png" -o -name "*.jpg" -o -name "*.gif" -o -name "*.svg" \\) | grep -v node_modules | grep -v .venv
For each image:
- Referenced? Grep codebase for filename
- Purpose clear? Filename is descriptive
- Location appropriate? In
docs/images/or asset directory
Common issues:
- Test screenshots at root (move to docs/images/ or delete)
- Unused mockup images (delete)
- Duplicate images (deduplicate)
8. Configuration Files
Check: Config files are necessary and current
Audit:
.env.exampleup to date with actual env vars?- Multiple similar configs (tsconfig, eslint) - can consolidate?
- Old/deprecated config files (remove)
- Config overrides in multiple places (consolidate)
Execution Flow
Phase 1: Quick Scan
Run automated checks:
# Root-level non-standard files
echo "=== Root-Level Files ===\"
ls -1 | grep -v -E '(^\\.|README|LICENSE|CLAUDE|package|pyproject|tsconfig|Dockerfile|cloudbuild|\\.gitignore)'
# Large files
echo -e "\\n=== Large Files (>1MB) ===\"
find . -type f -size +1M | grep -v node_modules | grep -v .venv | grep -v .git
# Old files (>6 months, not modified)
echo -e "\\n=== Old Files (>6 months since modification) ===\"
find . -type f -mtime +180 | grep -v node_modules | grep -v .venv | grep -v .git | head -20
# Potentially unused scripts
echo -e "\\n=== Scripts Not Modified in >3 Months ===\"
find scripts/ -type f -mtime +90 2>/dev/null || echo \"No old scripts found\"
Phase 2: Categorize Findings
For each flagged file, determine:
- Essential (keep as-is)
- Relocate (move to proper location)
- Archive (move to
archive/directory with date) - Delete (no longer needed)
- Update (content is stale)
Phase 3: Create Action Plan
Generate cleanup plan:
## Repository Cleanup Plan
**Generated:** [date]
**Files Audited:** [N]
**Issues Found:** [N]
### High Priority (Do Now)
- [ ] Delete: [file] - [reason]
- [ ] Relocate: [file] → [new-location] - [reason]
- [ ] Update: [file] - [what needs updating]
### Medium Priority (Do This Week)
- [ ] Consolidate: [files] → [single location]
- [ ] Document: [file] - [add purpose/usage]
- [ ] Archive: [file] → archive/YYYY-MM/ - [reason]
### Low Priority (Do Eventually)
- [ ] Review: [file] - [needs manual review]
- [ ] Consider: [file] - [potential improvement]
### Statistics
- Root-level clutter: [N files]
- Orphaned docs: [N files]
- Unused scripts: [N files]
- Old test files: [N files]
- Unreferenced images: [N files]
Phase 4: Execute Cleanup (With Approval)
Present plan to user for approval, then execute:
# Create archive directory
mkdir -p archive/$(date +%Y-%m)
# Execute approved actions
# (move, delete, update files as approved)
Phase 5: Update Organization Standards
After cleanup, document standards in new file: docs/ORGANIZATION.md
Organization Standards Document
Create docs/ORGANIZATION.md:
# Repository Organization Standards
**Last Updated:** [date]
## Directory Structure
Allied-FeedOps/ ├── .claude/ # Claude Code configuration │ ├── hooks/ # Automatic enforcement │ ├── skills/ # Triggered workflows │ ├── templates/ # Reusable patterns │ ├── prompts/ # Continuation prompts │ └── checkpoints/ # Session state saves ├── dashboard/ # Next.js frontend │ ├── src/ │ │ ├── app/ # App router pages │ │ ├── components/ # React components │ │ └── lib/ # Utilities, integrations │ └── public/ # Static assets ├── src/ # Python pipeline │ └── feedops/ │ ├── api/ # FastAPI endpoints │ ├── pipeline/ # Core pipeline logic │ └── integrations/ # External services ├── tests/ # All test files │ ├── api/ # API tests │ └── [module]_test.py # Unit tests ├── scripts/ # Maintenance scripts │ └── README.md # Script documentation ├── docs/ # All documentation │ ├── architecture/ # System design │ ├── troubleshooting/ # Debug guides │ ├── audit/ # Investigations │ ├── plans/ # Implementation plans │ ├── database/ # Schema docs │ └── images/ # Screenshots, diagrams ├── supabase/ # Database migrations └── archive/ # Archived files by date └── YYYY-MM/ # Monthly archives
## File Placement Rules
### Root Directory
**ALLOWED:**
- Essential docs: README.md, LICENSE, CLAUDE.md
- Build configs: package.json, pyproject.toml, Dockerfile
- Tool configs: .gitignore, .env.example, tsconfig.json
- CI/CD: cloudbuild.yaml, vercel.json
**NOT ALLOWED:**
- Screenshots (→ docs/images/)
- Analysis docs (→ docs/audit/ or docs/analysis/)
- Temporary files (→ delete)
- Archived content (→ archive/YYYY-MM/)
### Documentation (docs/)
**MUST have:**
- Clear filename: `problem-solution-date.md`
- Date in filename or front matter
- Purpose stated in first paragraph
- Linked from CLAUDE.md or README if important
**Archive if:**
- >1 year old AND not referenced
- References deleted/renamed code
- Superseded by newer doc
### Scripts (scripts/)
**MUST have:**
- Purpose comment at top
- Usage example in scripts/README.md
- Parameterized (no hardcoded paths/creds)
- Listed in scripts/README.md
**Delete if:**
- One-off migration >6 months old
- Duplicate functionality
- Dependencies no longer available
### Images & Media
**Location:**
- Product screenshots → docs/images/product/
- Architecture diagrams → docs/images/architecture/
- UI mockups → docs/images/design/
- Test screenshots → docs/images/tests/ OR delete after testing
**Naming:** `descriptive-purpose-date.png`
### Temporary Files
**Never commit:**
- Local test outputs
- Debug screenshots (unless documenting a bug)
- Personal notes
- `.DS_Store`, `Thumbs.db`, etc.
Add to .gitignore if needed.
## Monthly Maintenance
**First Monday of each month:**
1. Run `/repo-audit`
2. Review and execute cleanup plan
3. Archive files >1 year old not recently accessed
4. Update docs/ORGANIZATION.md if structure changed
## Automated Cleanup
See `.claude/templates/repo-cleanup-hook.json` for automated checks.
Automation: Monthly Audit Reminder
Add to .claude/hooks/config.json:
{
"sessionStart": {
"command": "bash -c 'LAST_AUDIT=$(find .claude/ -name \"*repo-audit*\" -type f -mtime -30 | wc -l); if [ \"$LAST_AUDIT\" -eq 0 ]; then echo \"💡 Repository audit overdue. Consider running /repo-audit\"; fi'"
}
}
Integration with /wrapup
Add to /wrapup skill:
## Step X: Check for Repository Clutter
If files were added/created in this session:
- Are they in the right location?
- Do they follow naming conventions?
- Should any be temporary (deleted)?
Output Format
## Repository Audit Results
**Date:** [timestamp]
**Files Scanned:** [N]
**Issues Found:** [N]
### Summary
- 🗑️ [N] files recommended for deletion
- 📁 [N] files should be relocated
- 📝 [N] files need updates
- 📦 [N] files should be archived
### Detailed Findings
#### Root-Level Clutter
- `sticky-tabs-test.png` → 🗑️ Delete (test screenshot, no longer needed)
- `prompt-scoring-audit-FINAL.md` → 📁 Move to docs/audit/
- `package-lock.json` (root) → 🗑️ Delete (duplicate, dashboard has own)
#### Documentation Issues
- `docs/prompts/old-prompt.md` → 📦 Archive (references deleted features)
- `docs/architecture/outdated.md` → 📝 Update (describes old architecture)
#### Unused Scripts
- `scripts/one_time_migration.py` → 📦 Archive (migration complete, >6 months old)
[Continue for each category...]
### Recommended Actions
**Immediate (Do Now):**
```bash
# Delete temporary/test files
rm sticky-tabs-test.png sticky-tabs-scrolled.png
# Move misplaced files
mv prompt-scoring-audit-FINAL.md docs/audit/prompt-scoring-audit-2026-02.md
# Delete root package-lock.json (dashboard has own)
rm package-lock.json
This Week:
# Archive old migrations
mkdir -p archive/2026-02
mv scripts/one_time_migration.py archive/2026-02/
Eventually:
- Review and update docs/architecture/outdated.md
- Consolidate duplicate test fixtures
Total cleanup impact: [N] files, [Size] space
Proceed with cleanup?