<< All versions
Skill v1.0.1
currentAutomated scan100/100affaan-m/ecc/repo-scan
+4 new
──Details
PublishedAugust 28, 2026 at 11:38 PM
Content Hashsha256:b3318f6263629467...
Git SHA2aebdd340860
Bump Typepatch
──Files
Files (1 file, 7.1 KB)
SKILL.md7.1 KBactive
SKILL.md · 172 lines · 7.1 KB
version: "1.0.1" name: repo-scan description: Bootstrap pointer that installs the external repo-scan skill from a pinned, reviewable commit. Use when repo-scan must be installed before running its cross-stack source-code asset audit; this ECC pointer does not perform the audit itself. metadata: origin: community
repo-scan
Every ecosystem has its own dependency manager, but no tool looks across C++, Android, iOS, and Web to tell you: how much code is actually yours, what's third-party, and what's dead weight.
When to Use
- Taking over a large legacy codebase and need a structural overview
- Before major refactoring — identify what's core, what's duplicate, what's dead
- Auditing third-party dependencies embedded directly in source (not declared in package managers)
- Preparing architecture decision records for monorepo reorganization
Installation
bash
# Clone first so the pinned commit can be reviewed before installationset -euo pipefailREPO_SCAN_COMMIT=2742664ebcad1450c208eda0ae45d3c17fad5dd8REPO_SCAN_INSTALL_DIR="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/repo-scan"REPO_SCAN_INSTALL_PARENT="$(dirname "$REPO_SCAN_INSTALL_DIR")"mkdir -p "$REPO_SCAN_INSTALL_PARENT"REPO_SCAN_TMP="$(mktemp -d "$REPO_SCAN_INSTALL_PARENT/.repo-scan-install.XXXXXX")"REPO_SCAN_TOKEN="${REPO_SCAN_TMP##*.}"REPO_SCAN_STAGE="$REPO_SCAN_TMP/stage-$REPO_SCAN_TOKEN"REPO_SCAN_BACKUP="$REPO_SCAN_TMP/backup-$REPO_SCAN_TOKEN"REPO_SCAN_LOCK="$REPO_SCAN_INSTALL_PARENT/.repo-scan-install.lock"REPO_SCAN_KEEP_TMP=0REPO_SCAN_LOCK_HELD=0REPO_SCAN_MV_HAS_NO_TARGET=0cleanup_repo_scan_install() {if [ "$REPO_SCAN_KEEP_TMP" -eq 0 ]; thenrm -rf -- "$REPO_SCAN_TMP"fiif [ "$REPO_SCAN_LOCK_HELD" -eq 1 ] && ! rmdir -- "$REPO_SCAN_LOCK"; thenprintf 'Could not release installation lock at %s\n' "$REPO_SCAN_LOCK" >&2fi}trap cleanup_repo_scan_install EXITmkdir "$REPO_SCAN_TMP/mv-probe-source"if mv -T -- "$REPO_SCAN_TMP/mv-probe-source" \"$REPO_SCAN_TMP/mv-probe-destination" 2>/dev/null; thenREPO_SCAN_MV_HAS_NO_TARGET=1rmdir "$REPO_SCAN_TMP/mv-probe-destination"elsermdir "$REPO_SCAN_TMP/mv-probe-source"fimove_repo_scan_dir() {REPO_SCAN_MOVE_SOURCE=$1REPO_SCAN_MOVE_DESTINATION=$2REPO_SCAN_MOVE_NAME=${REPO_SCAN_MOVE_SOURCE##*/}if [ -e "$REPO_SCAN_MOVE_DESTINATION" ] || [ -L "$REPO_SCAN_MOVE_DESTINATION" ]; thenreturn 1fiif [ "$REPO_SCAN_MV_HAS_NO_TARGET" -eq 1 ]; thenmv -T -- "$REPO_SCAN_MOVE_SOURCE" "$REPO_SCAN_MOVE_DESTINATION"returnfiif ! mv -- "$REPO_SCAN_MOVE_SOURCE" "$REPO_SCAN_MOVE_DESTINATION"; thenreturn 1fiif [ -e "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" ] || \[ -L "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" ]; thenif ! mv -- "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" \"$REPO_SCAN_MOVE_SOURCE"; thenREPO_SCAN_KEEP_TMP=1printf 'Move conflict recovery failed; staged data remains at %s\n' \"$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" >&2fireturn 1fi}git clone --filter=blob:none --no-checkout \https://github.com/haibindev/repo-scan.git "$REPO_SCAN_TMP/source"git -C "$REPO_SCAN_TMP/source" checkout --detach "$REPO_SCAN_COMMIT"mkdir -p "$REPO_SCAN_STAGE"git -C "$REPO_SCAN_TMP/source" archive "$REPO_SCAN_COMMIT" | \tar -xf - -C "$REPO_SCAN_STAGE"# Review "$REPO_SCAN_TMP/source" before approving installation.printf 'Type install to replace %s after reviewing the pinned source: ' \"$REPO_SCAN_INSTALL_DIR" >&2read -r REPO_SCAN_CONFIRMif [ "$REPO_SCAN_CONFIRM" != install ]; thenprintf 'Installation cancelled.\n' >&2exit 1fiif ! mkdir -- "$REPO_SCAN_LOCK" 2>/dev/null; thenprintf 'Another repo-scan installation holds the lock at %s\n' \"$REPO_SCAN_LOCK" >&2exit 1fiREPO_SCAN_LOCK_HELD=1if [ -e "$REPO_SCAN_INSTALL_DIR" ] || [ -L "$REPO_SCAN_INSTALL_DIR" ]; thenmove_repo_scan_dir "$REPO_SCAN_INSTALL_DIR" "$REPO_SCAN_BACKUP"fiif ! move_repo_scan_dir "$REPO_SCAN_STAGE" "$REPO_SCAN_INSTALL_DIR"; thenif [ -e "$REPO_SCAN_BACKUP" ] || [ -L "$REPO_SCAN_BACKUP" ]; thenif [ -e "$REPO_SCAN_INSTALL_DIR" ] || [ -L "$REPO_SCAN_INSTALL_DIR" ]; thenREPO_SCAN_KEEP_TMP=1printf 'Replacement failed and target was recreated; previous installation preserved at %s\n' \"$REPO_SCAN_BACKUP" >&2elif ! move_repo_scan_dir "$REPO_SCAN_BACKUP" "$REPO_SCAN_INSTALL_DIR"; thenREPO_SCAN_KEEP_TMP=1printf 'Replacement and rollback failed; previous installation preserved at %s\n' \"$REPO_SCAN_BACKUP" >&2fifiexit 1fi
Review the source before installing any agent skill.
Installation completes only the bootstrap. Reload your agent harness, then invoke repo-scan again. This ECC pointer installs the external skill but does not run a scan itself.
Core Capabilities
| Capability | Description | |
|---|---|---|
| Cross-stack scanning | C/C++, Java/Android, iOS (OC/Swift), Web (TS/JS/Vue) in one pass | |
| File classification | Every file tagged as project code, third-party, or build artifact | |
| Library detection | 50+ known libraries (FFmpeg, Boost, OpenSSL…) with version extraction | |
| Four-level verdicts | Core Asset / Extract & Merge / Rebuild / Deprecate | |
| HTML reports | Interactive dark-theme pages with drill-down navigation | |
| Monorepo support | Hierarchical scanning with summary + sub-project reports |
Analysis Depth Levels
| Level | Files Read | Use Case | |
|---|---|---|---|
fast | 1-2 per module | Quick inventory of huge directories | |
standard | 2-5 per module | Default audit with full dependency + architecture checks | |
deep | 5-10 per module | Adds thread safety, memory management, API consistency | |
full | All files | Pre-merge comprehensive review |
How It Works
- Classify the repo surface: enumerate files, then tag each as project code, embedded third-party code, or build artifact.
- Detect embedded libraries: inspect directory names, headers, license files, and version markers to identify bundled dependencies and likely versions.
- Score each module: group files by module or subsystem, then assign one of the four verdicts based on ownership, duplication, and maintenance cost.
- Highlight structural risks: call out dead-weight artifacts, duplicated wrappers, outdated vendored code, and modules that should be extracted, rebuilt, or deprecated.
- Produce the report: return a concise summary plus the interactive HTML output with per-module drill-down so the audit can be reviewed asynchronously.
Examples
On a 50,000-file C++ monorepo:
- Found FFmpeg 2.x (2015 vintage) still in production
- Discovered the same SDK wrapper duplicated 3 times
- Identified 636 MB of committed Debug/ipch/obj build artifacts
- Classified: 3 MB project code vs 596 MB third-party
Best Practices
- Start with
standarddepth for first-time audits - Use
fastfor monorepos with 100+ modules to get a quick inventory - Run
deepincrementally on modules flagged for refactoring - Review the cross-module analysis for duplicate detection across sub-projects