Communitygithub.com

repo-scan

Bootstrap-Zeiger, der das externe repo-scan-Skill aus einem gepinnten, überprüfbaren Commit installiert. Verwenden Sie dies, wenn repo-scan vor der Durchführung seines plattformübergreifenden Quellcode-Asset-Audits installiert werden muss; dieser ECC-Zeiger führt das Audit selbst nicht durch.

Was ist repo-scan?

Dieses Skill, `repo-scan`, ist ein Bootstrap-Zeiger, der das externe repo-scan-Tool aus einem festgelegten, überprüfbaren Commit installiert. Es ermöglicht Entwicklern und KI-Agenten, eine umfassende, plattformübergreifende Analyse von Quellcode-Assets in großen Codebasen durchzuführen. Das Tool klassifiziert jede Datei als Projektcode, Drittanbieter-Code oder Build-Artefakt, erkennt 50+ bekannte Bibliotheken mit Versionsabgleich und weist Bewertungen (Core Asset, Extract & Merge, Rebuild oder Deprecate) zu. Es unterstützt C/C++, Java/Android, iOS (Objective-C/Swift) und Web (TypeScript/JavaScript/Vue) in einem Durchlauf. Die Installation erfolgt über das gepinnte Commit und erfordert eine manuelle Überprüfung vor der Fertigstellung, um Sicherheit und Rückverfolgbarkeit zu gewährleisten. Nach der Installation kann der Agent das Tool mit verschiedenen Analyse-Tiefen ausführen, von schnellen Inventuren bis hin zu vollständigen Pre-Merge-Überprüfungen, und erzeugt interaktive HTML-Berichte. Nützlich bei der Übernahme großer Legacy-Codebasen, vor großen Refactorings oder bei der Überwachung von Drittanbieter-Abhängigkeiten, die nicht in Paketmanagern deklariert sind.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/repo-scan

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht repo-scan?

Jedes Ökosystem hat seinen eigenen Paketmanager, aber kein Tool schaut sich C++, Android, iOS und Web an, um Ihnen zu sagen: Wie viel Code gehört tatsächlich Ihnen, was ist Drittanbieter-Code und was ist Ballast?

Wann verwenden

  • Übernahme einer großen Legacy-Codebasis und Bedarf einer strukturellen Übersicht
  • Vor größeren Refactorings – identifizieren, was Kernbestandteil ist, was doppelt vorhanden ist, was tot ist
  • Prüfung von Drittanbieter-Abhängigkeiten, die direkt im Quellcode eingebettet sind (nicht in Paketmanagern deklariert)
  • Vorbereitung von Architekturentscheidungen für die Reorganisation eines Monorepos

Installation

# Zuerst klonen, damit der gepinnte Commit vor der Installation überprüft werden kann
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 'Konnte Installationssperre nicht freigeben: %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 'Wiederherstellung nach Verschiebungskonflikt fehlgeschlagen; bereitgestellte Daten verbleiben unter %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"

# Überprüfen Sie "$REPO_SCAN_TMP/source" vor der Freigabe der Installation.
printf 'Geben Sie install ein, um %s nach Überprüfung des gepinnten Quellcodes zu ersetzen: ' \
  "$REPO_SCAN_INSTALL_DIR" >&2
read -r REPO_SCAN_CONFIRM
if [ "$REPO_SCAN_CONFIRM" != install ]; then
  printf 'Installation abgebrochen.\n' >&2
  exit 1
fi
if ! mkdir -- "$REPO_SCAN_LOCK" 2>/dev/null; then
  printf 'Eine andere repo-scan-Installation hält die Sperre unter %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 'Ersatz fehlgeschlagen und Ziel wurde neu erstellt; vorherige Installation unter %s erhalten\n' \
        "$REPO_SCAN_BACKUP" >&2
    elif ! move_repo_scan_dir "$REPO_SCAN_BACKUP" "$REPO_SCAN_INSTALL_DIR"; then
      REPO_SCAN_KEEP_TMP=1
      printf 'Ersatz und Rollback fehlgeschlagen; vorherige Installation unter %s erhalten\n' \
        "$REPO_SCAN_BACKUP" >&2
    fi
  fi
  exit 1
fi

Überprüfen Sie den Quellcode, bevor Sie ein Agent-Skill installieren.

Die Installation schließt nur den Bootstrap ab. Laden Sie Ihre Agent-Umgebung neu und rufen Sie dann repo-scan erneut auf. Dieser ECC-Zeiger installiert das externe Skill, führt aber selbst keinen Scan durch.

Kernfunktionen

FunktionBeschreibung
Plattformübergreifender ScanC/C++, Java/Android, iOS (OC/Swift), Web (TS/JS/Vue) in einem Durchlauf
DateiklassifizierungJede Datei wird als Projektcode, Drittanbieter-Code oder Build-Artefakt gekennzeichnet
Bibliothekserkennung50+ bekannte Bibliotheken (FFmpeg, Boost, OpenSSL…) mit Versionserkennung
Vierstufige BewertungenKernbestandteil / Extrahieren und Zusammenführen / Neuerstellen / Einstellen
HTML-BerichteInteraktive Dark-Theme-Seiten mit Drill-Down-Navigation
Monorepo-UnterstützungHierarchischer Scan mit Zusammenfassung + Unterprojektberichten

Analysetiefe-Stufen

StufeGelesene DateienAnwendungsfall
fast1-2 pro ModulSchnelles Inventar großer Verzeichnisse
standard2-5 pro ModulStandard-Audit mit vollständigen Abhängigkeits- und Architekturprüfungen
deep5-10 pro ModulFügt Thread-Sicherheit, Speicherverwaltung, API-Konsistenz hinzu
fullAlle DateienUmfassende Überprüfung vor dem Merge

Funktionsweise

  1. Klassifizieren der Repo-Oberfläche: Dateien auflisten, dann jede als Projektcode, eingebetteten Drittanbieter-Code oder Build-Artefakt kennzeichnen.
  2. Erkennen eingebetteter Bibliotheken: Verzeichnisnamen, Header, Lizenzdateien und Versionsmarkierungen überprüfen, um gebündelte Abhängigkeiten und wahrscheinliche Versionen zu identifizieren.
  3. Bewerten jedes Moduls: Dateien nach Modul oder Subsystem gruppieren, dann eine der vier Bewertungen basierend auf Eigentumsverhältnissen, Duplizierung und Wartungskosten zuweisen.
  4. Hervorheben struktureller Risiken: Auf Ballast-Artefakte, duplizierte Wrapper, veralteten Vendor-Code und Module hinweisen, die extrahiert, neu erstellt oder eingestellt werden sollten.
  5. Erstellen des Berichts: Eine kurze Zusammenfassung sowie die interaktive HTML-Ausgabe mit Drill-Down pro Modul zurückgeben, damit das Audit asynchron überprüft werden kann.

Beispiele

In einem C++-Monorepo mit 50.000 Dateien:

  • FFmpeg 2.x (Vintage 2015) noch in der Produktion gefunden
  • Denselben SDK-Wrapper dreimal dupliziert entdeckt
  • 636 MB an eingecheckten Debug/ipch/obj-Build-Artefakten identifiziert
  • Klassifiziert: 3 MB Projektcode gegenüber 596 MB Drittanbieter-Code

Best Practices

  • Beginnen Sie mit standard-Tiefe für erste Audits
  • Verwenden Sie fast für Monorepos mit 100+ Modulen, um ein schnelles Inventar zu erhalten
  • Führen Sie deep inkrementell auf Modulen aus, die für ein Refactoring markiert wurden
  • Überprüfen Sie die modulübergreifende Analyse auf Duplikatserkennung in Unterprojekten

Links

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Verwandte Skills