Skip to main content

repo-scan

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.

Ir para a instalação

Informações da origem

Repositório
affaan-m/ECC
Última atividade na origem
13 de agosto de 2026 às 20:42
Idioma detectado do SKILL.md
inglês
Estrelas
264.820
Forks
39.570

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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 installation set -euo pipefail REPO_SCAN_COMMIT=2742664ebcad1450c208eda0ae45d3c17fad5dd8 REPO_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=0 REPO_SCAN_LOCK_HELD=0 REPO_SCAN_MV_HAS_NO_TARGET=0 cleanup_repo_scan_install() { if [ "$REPO_SCAN_KEEP_TMP" -eq 0 ]; then rm -rf -- "$REPO_SCAN_TMP" fi if [ "$REPO_SCAN_LOCK_HELD" -eq 1 ] && ! rmdir -- "$REPO_SCAN_LOCK"; then printf 'Could not release installation lock at %s\n' "$REPO_SCAN_LOCK" >&2 fi } trap cleanup_repo_scan_install EXIT mkdir "$REPO_SCAN_TMP/mv-probe-source" if mv -T -- "$REPO_SCAN_TMP/mv-probe-source" \ "$REPO_SCAN_TMP/mv-probe-destination" 2>/dev/null; then REPO_SCAN_MV_HAS_NO_TARGET=1 rmdir "$REPO_SCAN_TMP/mv-probe-destination" else rmdir "$REPO_SCAN_TMP/mv-probe-source" fi move_repo_scan_dir() { REPO_SCAN_MOVE_SOURCE=$1 REPO_SCAN_MOVE_DESTINATION=$2 REPO_SCAN_MOVE_NAME=${REPO_SCAN_MOVE_SOURCE##*/} if [ -e "$REPO_SCAN_MOVE_DESTINATION" ] || [ -L "$REPO_SCAN_MOVE_DESTINATION" ]; then return 1 fi if [ "$REPO_SCAN_MV_HAS_NO_TARGET" -eq 1 ]; then mv -T -- "$REPO_SCAN_MOVE_SOURCE" "$REPO_SCAN_MOVE_DESTINATION" return fi if ! mv -- "$REPO_SCAN_MOVE_SOURCE" "$REPO_SCAN_MOVE_DESTINATION"; then return 1 fi if [ -e "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" ] || \ [ -L "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" ]; then if ! mv -- "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" \ "$REPO_SCAN_MOVE_SOURCE"; then REPO_SCAN_KEEP_TMP=1 printf 'Move conflict recovery failed; staged data remains at %s\n' \ "$REPO_SCAN_MOVE_DESTINATION/$REPO_SCAN_MOVE_NAME" >&2 fi return 1 fi } 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" >&2 read -r REPO_SCAN_CONFIRM if [ "$REPO_SCAN_CONFIRM" != install ]; then printf 'Installation cancelled.\n' >&2 exit 1 fi if ! mkdir -- "$REPO_SCAN_LOCK" 2>/dev/null; then printf 'Another repo-scan installation holds the lock at %s\n' \ "$REPO_SCAN_LOCK" >&2 exit 1 fi REPO_SCAN_LOCK_HELD=1 if [ -e "$REPO_SCAN_INSTALL_DIR" ] || [ -L "$REPO_SCAN_INSTALL_DIR" ]; then move_repo_scan_dir "$REPO_SCAN_INSTALL_DIR" "$REPO_SCAN_BACKUP" fi if ! move_repo_scan_dir "$REPO_SCAN_STAGE" "$REPO_SCAN_INSTALL_DIR"; then if [ -e "$REPO_SCAN_BACKUP" ] || [ -L "$REPO_SCAN_BACKUP" ]; then if [ -e "$REPO_SCAN_INSTALL_DIR" ] || [ -L "$REPO_SCAN_INSTALL_DIR" ]; then REPO_SCAN_KEEP_TMP=1 printf 'Replacement failed and target was recreated; previous installation preserved at %s\n' \ "$REPO_SCAN_BACKUP" >&2 elif ! move_repo_scan_dir "$REPO_SCAN_BACKUP" "$REPO_SCAN_INSTALL_DIR"; then REPO_SCAN_KEEP_TMP=1 printf 'Replacement and rollback failed; previous installation preserved at %s\n' \ "$REPO_SCAN_BACKUP" >&2 fi fi exit 1 fi ``` > 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 1. **Classify the repo surface**: enumerate files, then tag each as project code, embedded third-party code, or build artifact. 2. **Detect embedded libraries**: inspect directory names, headers, license files, and version markers to identify bundled dependencies and likely versions. 3. **Score each module**: group files by module or subsystem, then assign one of the four verdicts based on ownership, duplication, and maintenance cost. 4. **Highlight structural risks**: call out dead-weight artifacts, duplicated wrappers, outdated vendored code, and modules that should be extracted, rebuilt, or deprecated. 5. **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 `standard` depth for first-time audits - Use `fast` for monorepos with 100+ modules to get a quick inventory - Run `deep` incrementally on modules flagged for refactoring - Review the cross-module analysis for duplicate detection across sub-projects ## Links - [GitHub Repository](https://github.com/haibindev/repo-scan)
Ver no GitHub