Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Championship-grade repository maintenance. Audits for test artifacts, dependency issues, CI/CD health, documentation sync, and FAF alignment. Generates prioritized cleanup plans. Use when repos need deep cleaning or ongoing maintenance.
.claude/skills/lingxling-repo-maintainer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 106% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 144% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 157% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 47% | 0% |
"When brakes must work flawlessly, so must our repos."
Activate when:
/repo-maintainer or /maintainSystematically checks 7 critical areas:
bash# Find test artifacts *.test.js leftovers *.spec.ts.snap orphans .DS_Store files tmp/, temp/, cache/ directories coverage/ not in .gitignore dist/, build/ committed by accident node_modules/ somehow in git
Detection Strategy:
git status for untracked patternsbash# Check package health npm outdated npm audit npx depcheck (find unused deps) Check for pinned versions (inquirer@8.2.5 pattern) Verify Dependabot config
Red Flags:
bash# Workflow consistency check Node versions across all workflows Test matrices (should match across ci.yml, release.yml) Action versions (@v6 vs @v5) Failed/skipped workflow runs Secrets/tokens properly configured
Common Fixes:
bash# Context alignment check README.md ↔ CLAUDE.md ↔ project.faf CHANGELOG up to date with git tags package.json version matches latest tag Examples in README still work Links not broken (404 checks)
FAF-Specific:
bash# .gitignore audit Untracked files that should be ignored *.config.mjs *.faf test artifacts .env.local, .env.development Large files in git history (use git-filter-repo) Binary files that don't belong
Pattern Recognition:
gitignore# Add to .gitignore based on artifacts found *.config.mjs *.faf.backup .faf-dna.tmp test-*.faf
bash# Quick health indicators Dead code (unused exports via ts-prune or depcheck) TODO/FIXME comments (track count, prioritize) Commented code blocks (remove or document) Console.log statements in production code Hardcoded secrets/tokens
For FAF projects specifically:
yaml# Check FAF alignment .faf score accuracy (run faf score) Bi-sync alignment — CLAUDE.md ↔ .faf (run `faf sync`; mtime auto-direction) MCP server compliance (if applicable) WJTTC test coverage (for faf-cli, MCP servers)
For MCP servers:
bash# MCP-specific checks package.json has "mcp" field Server implements required tools Tests cover all tool endpoints README has MCP installation instructions Registry listing accurate (npm + MCP registry)
After audit, generate prioritized task list:
markdown# 🏎️ REPO HEALTH REPORT: faf-cli **Overall Score:** 85% ◇ Bronze **Status:** Production-ready with minor cleanup needed --- ## 🚨 CRITICAL (Fix Now) ### 1. Security: `open@10` breaking CI/CD - **Impact:** Release pipeline failing - **Fix:** Pin to `open@8.4.2` ✅ FIXED - **Effort:** 5 minutes - **Auto-fix:** Available --- ## ⚠️ MEDIUM (This Week) ### 3. .gitignore Gaps - **Issue:** `*.config.mjs`, `*.faf` test files not ignored - **Fix:** Add patterns to .gitignore - **Effort:** 1 minute - **Auto-fix:** Available ```gitignore *.config.mjs test-*.faf ``` --- ## ℹ️ LOW (Nice to Have) ### 6. README Links - **Issue:** 2 broken links to old docs - **Fix:** Update URLs - **Effort:** 5 minutes ### 7. Unused Dependencies - **Issue:** `depcheck` found unused packages - **Fix:** Remove or document why needed --- ## ✅ EXCELLENT - Test coverage: 799/799 passing - TypeScript strict mode: enabled - FAF score: 83% (good) - CI/CD: All workflows aligned - Security: No critical vulnerabilities - Documentation: CLAUDE.md in sync --- ## 🎯 RECOMMENDED ACTIONS **Quick wins:** .gitignore + CHANGELOG entry + README links + safe `npm update`. **This week:** triage TODOs, remove unused deps, bump patch. **Monthly:** full dependency audit, large-file scan, perf baseline. --- ## 🔧 AUTO-FIX AVAILABLE I can automatically fix: - ✅ .gitignore additions - ✅ CHANGELOG draft - ✅ Safe dependency updates - ✅ Workflow alignment **Run auto-fix?** (yes/no)
For safe, non-breaking fixes:
bash# 1. Update .gitignore cat >> .gitignore <<EOF # Auto-added by repo-maintainer *.config.mjs *.faf.backup .faf-dna.tmp test-*.faf EOF # 2. Generate CHANGELOG entry from git log git log v4.3.3..v4.4.0 --pretty=format:"- %s (%h)" >> CHANGELOG.draft.md # 3. Safe dependency updates (non-breaking) npm update --save # 4. Create cleanup branch git checkout -b repo-maintenance/$(date +%Y-%m-%d) git add .gitignore CHANGELOG.md package.json package-lock.json git commit -m "chore: repo maintenance - cleanup artifacts and update deps - Add missing .gitignore patterns - Update CHANGELOG with v4.4.0 - Safe dependency updates (patch/minor only) Generated by /repo-maintainer skill"
bash# Quick health check pwd git status git log --oneline -5 ls -la | head -20
Run checks in order of priority:
Create structured report with:
Ask user:
Never make changes without explicit approval.
bash# 1. MCP-specific structure package.json has "mcp" field Server exports via index.ts Tools properly registered # 2. Registry compliance Registry listing accurate (npm + MCP registry) README has MCP install instructions Works with Claude Desktop config # 3. Tool coverage Each tool has tests Each tool has description Error handling implemented # 4. Version alignment package.json version git tag version MCP registry version npm published version
CRITICAL: Use Official FAF Tiers for All Scoring
| Score | Tier | Symbol | Status | |-------|------|--------|--------| | 100% | Trophy | ✪ | Perfect — Gold Code | | 99% | Gold | ★ | Exceptional | | 95% | Silver | ◆ | Top tier | | 85% | Bronze | ◇ | Production ready | | 70% | Green | ● | Solid foundation | | 55% | Yellow | ● | Needs improvement | | 1% | Red | ○ | Major work needed | | 0% | White | ♡ | Empty |
The score is deterministic — same input → same score, every time. FAF doesn't lie.
Note: 🍊 Big Orange is an HONOR, not a score or a badge. It recognizes sustained excellence across multiple criteria; it is never calculated from a single score.
Apply These Tiers to:
Examples:
95% Security → ◆ Silver
88% Overall → ◇ Bronze
78% Dependencies → ● Green
70% Git Hygiene → ● Green
40% CI/CD → ○ Red
100% Tests → ✪ Trophy/wjttc-builder · /wjttc-tester - generate + run championship-grade tests before a release/faf-expert - master the .faf format + score the repo's AI-readinessUser: /repo-maintainer
Claude: 🏎️ Starting championship repo maintenance audit...
[Runs git status]
[Checks workflows]
[Scans for artifacts]
[Runs npm outdated]
[Checks .gitignore]
📊 AUDIT COMPLETE
Overall Health: 85% ◇ Bronze
Critical Issues: 2
Medium Issues: 3
Low Priority: 5
Top Issues:
1. 🚨 open@10 breaking CI/CD (auto-fixable)
2. 🚨 Node 16 in workflows (EOL)
3. ⚠️ .gitignore missing *.config.mjs
4. ⚠️ 15 outdated dependencies
5. ⚠️ CHANGELOG missing v4.4.0
I can auto-fix items 1, 2, 3, and draft 5.
Would you like me to proceed? (yes/no)
User: yes
Claude: ✅ Fixing...
[Pins open@8.4.2]
[Updates workflows to Node 20]
[Adds .gitignore patterns]
[Drafts CHANGELOG entry]
✅ Auto-fixes complete!
Remaining manual items:
- Review 15 dependency updates
- 3 TODO comments need review
Create cleanup branch? (yes/no)> "Pit crews service the car between every race. > Your repos deserve the same attention."
Repo Maintainer - Championship Repository Hygiene "When brakes must work flawlessly, so must our repos."
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | pass→pass | 10,313 | 10,945 | +6% | 1 | 1 | 0% | 1,854 | 4,932 | +166% | 0 | 0 | — |
case-01 | fail→fail | 19,444 | 9,555 | -51% | 1 | 1 | 0% | 2,994 | 3,722 | +24% | 0 | 0 | — |
case-02 | fail→fail | 8,362 | 9,777 | +17% | 1 | 1 | 0% | 1,110 | 3,428 | +209% | 0 | 0 | — |
case-03 | fail→fail | 5,050 | 11,914 | +136% | 1 | 1 | 0% | 357 | 3,481 | +875% | 0 | 0 | — |
case-04 | fail→pass | 20,005 | 11,823 | -41% | 1 | 1 | 0% | 2,156 | 4,442 | +106% | 0 | 0 | — |
case-06 | fail→pass | 8,442 | 3,967 | -53% | 1 | 1 | 0% | 1,512 | 3,688 | +144% | 0 | 0 | — |
case-07 | fail→pass | 9,876 | 4,386 | -56% | 1 | 1 | 0% | 1,437 | 3,815 | +165% | 0 | 0 | — |
case-08 | fail→pass | 9,404 | 4,555 | -52% | 1 | 1 | 0% | 1,455 | 3,741 | +157% | 0 | 0 | — |
case-09 | pass→pass | 7,836 | 5,140 | -34% | 1 | 1 | 0% | 1,189 | 3,745 | +215% | 0 | 0 | — |
case-10 | fail→pass | 14,767 | 2,439 | -83% | 1 | 1 | 0% | 2,297 | 3,388 | +47% | 0 | 0 | — |
case-11 | fail→pass | 26,293 | 2,182 | -92% | 1 | 1 | 0% | 3,827 | 3,229 | -16% | 0 | 0 | — |
case-12 | fail→pass | 11,568 | 7,887 | -32% | 1 | 1 | 0% | 1,599 | 4,036 | +152% | 0 | 0 | — |
case-13 | fail→pass | 22,609 | 3,512 | -84% | 1 | 1 | 0% | 2,956 | 3,381 | +14% | 0 | 0 | — |
case-14 | pass→pass | 6,342 | 5,341 | -16% | 1 | 1 | 0% | 963 | 3,677 | +282% | 0 | 0 | — |
case-15 | fail→pass | 9,982 | 2,612 | -74% | 1 | 1 | 0% | 1,517 | 3,364 | +122% | 0 | 0 | — |
case-16 | fail→pass | 7,719 | 4,206 | -46% | 1 | 1 | 0% | 1,270 | 3,582 | +182% | 0 | 0 | — |
case-17 | fail→pass | 12,974 | 3,286 | -75% | 1 | 1 | 0% | 2,181 | 3,506 | +61% | 0 | 0 | — |
case-18 | pass→pass | 11,932 | 2,223 | -81% | 1 | 1 | 0% | 1,926 | 3,368 | +75% | 0 | 0 | — |
case-19 | fail→pass | 15,753 | 2,027 | -87% | 1 | 1 | 0% | 2,270 | 3,296 | +45% | 0 | 0 | — |
case-20 | pass→pass | 71,081 | 73,359 | +3% | 1 | 1 | 0% | 1,987 | 4,959 | +150% | 0 | 0 | — |
case-21 | pass→pass | 8,056 | 9,396 | +17% | 1 | 1 | 0% | 1,565 | 4,690 | +200% | 0 | 0 | — |
case-22 | pass→pass | 7,778 | 7,267 | -7% | 1 | 1 | 0% | 1,541 | 4,071 | +164% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 19 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.