MCP HubMCP Hub
SKILL·70364E

repair-broken-references

pjt222
Actualizado 1 month ago
9 vistas
26
3
26
Ver en GitHub
Otroai

Acerca de

Esta habilidad detecta y corrige automáticamente referencias rotas en bases de código, incluyendo enlaces muertos, importaciones obsoletas y archivos huérfanos. Garantiza que todas las referencias del proyecto permanezcan válidas y sincronizadas entre la documentación y los archivos fuente. Úsela cuando encuentre errores 404, módulos faltantes o referencias cruzadas no sincronizadas durante tareas de mantenimiento.

Instalación rápida

Claude Code

Recomendado
Principal
npx skills add pjt222/agent-almanac -a claude-code
Comando PluginAlternativo
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternativo
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/repair-broken-references

Copia y pega este comando en Claude Code para instalar esta habilidad

Documentación

Defekte Referenzen reparieren

Wann verwenden

Diesen Skill verwenden wenn Projektreferenzen veraltet sind:

  • Dokumentation enthaelt defekte interne Links
  • Externe URLs geben 404-Fehler zurueck
  • Import-Anweisungen verweisen auf verschobene oder geloeschte Module
  • Querverweise zwischen Dateien sind nicht synchron
  • Dateien existieren die nirgends referenziert werden

NICHT verwenden fuer Refactoring von Modulabhaengigkeiten oder Neugestaltung der Informationsarchitektur. Dieser Skill repariert bestehende Referenzen, strukturiert sie nicht um.

Eingaben

ParameterTypErforderlichBeschreibung
project_pathstringJaAbsoluter Pfad zum Projektstamm
check_externalbooleanNeinExterne URLs verifizieren (Standard: true, langsam)
fix_modeenumNeinauto (offensichtliche beheben), report (nur dokumentieren), interactive (nachfragen)
orphan_thresholdintegerNeinTage seit letzter Aenderung um als verwaist zu markieren (Standard: 180)

Vorgehensweise

Schritt 1: Defekte interne Links scannen

Alle Markdown-Links finden die auf nicht existierende Dateien zeigen.

# Alle Markdown-Dateien finden
find . -name "*.md" -type f > markdown_files.txt

# Alle Markdown-Links extrahieren: [Text](Pfad)
grep -oP '\[.*?\]\(\K[^)]+' *.md | sort | uniq > all_links.txt

# Fuer jeden Link:
while read link; do
  # Externe URLs ueberspringen (http/https)
  if [[ "$link" =~ ^https?:// ]]; then
    continue
  fi

  # Relativen Pfad aufloesen
  target=$(realpath -m "$link")

  # Pruefen ob Ziel existiert
  if [ ! -e "$target" ]; then
    echo "DEFEKT: $link (referenziert in $file)" >> broken_internal.txt
  fi
done < all_links.txt

Erwartet: broken_internal.txt listet alle defekten internen Referenzen auf

Bei Fehler: Wenn realpath nicht verfuegbar, jeden Link manuell pruefen

Schritt 2: Externe URLs pruefen

Verifizieren dass externe Links noch erreichbar sind (HTTP 200 Antwort).

# Externe URLs extrahieren
grep -ohP 'https?://[^\s\)]+' *.md | sort | uniq > external_urls.txt

# Jede URL pruefen (Ratelimit um Sperren zu vermeiden)
while read url; do
  status=$(curl -o /dev/null -s -w "%{http_code}" "$url")

  if [ "$status" -ge 400 ]; then
    echo "TOT ($status): $url" >> dead_urls.txt
  fi

  sleep 0.5  # Ratelimit
done < external_urls.txt

Erwartet: dead_urls.txt listet URLs die 4xx/5xx-Fehler zurueckgeben

Bei Fehler: Wenn curl nicht verfuegbar oder blockiert, Online-Link-Checker verwenden oder ueberspringen

Hinweis: Einige URLs koennen 403 zurueckgeben wegen Bot-Erkennung, funktionieren aber im Browser. Manuelle Pruefung erforderlich.

Schritt 3: Defekte Imports finden

Pruefen dass alle Import-/Require-Anweisungen auf existierende Module verweisen.

JavaScript/TypeScript:

# Alle Import-Anweisungen finden
grep -rh "^import.*from ['\"]" . | sed -E "s/.*from ['\"]([^'\"]+)['\"].*/\1/" > imports.txt

# Fuer jeden Import:
while read import; do
  # node_modules und externe Pakete ueberspringen
  if [[ "$import" =~ ^[./] ]]; then
    # Zu Dateipfad aufloesen
    target="${import}.js"  # .js, .ts, .jsx, .tsx versuchen

    if [ ! -e "$target" ]; then
      echo "DEFEKTER IMPORT: $import" >> broken_imports.txt
    fi
  fi
done < imports.txt

Python:

# Alle Import-Anweisungen finden
grep -rh "^from .* import\|^import " . --include="*.py" | \
  sed -E "s/from ([^ ]+) import.*/\1/" | \
  sed -E "s/import ([^ ]+)/\1/" > imports.txt

# Fuer jeden lokalen Import (beginnt mit .)
# Pruefen ob Moduldatei existiert

R:

# library()- und source()-Aufrufe finden
grep -rh "library(\\|source(" . --include="*.R" | \
  sed -E 's/.*library\("([^"]+)"\).*/\1/' > packages.txt

# Fuer source()-Aufrufe pruefen ob Datei existiert
# Fuer library()-Aufrufe pruefen ob Paket installiert
Rscript -e "installed.packages()[,'Package']" > installed_packages.txt

Erwartet: broken_imports.txt listet alle Referenzen auf geloeschte/verschobene Module

Bei Fehler: Wenn sprachspezifisches Werkzeug nicht verfuegbar, kuerzliche Refactoring-Commits manuell pruefen

Schritt 4: Verwaiste Dateien finden

Dateien identifizieren die existieren aber nirgends referenziert werden.

# Alle Codedateien finden
find . -type f \( -name "*.js" -o -name "*.py" -o -name "*.R" \) > all_files.txt

# Fuer jede Datei:
while read file; do
  basename=$(basename "$file")

  # Nach Referenzen suchen (Import, Require, Source, href, Link)
  refs=$(grep -r "$basename" . --exclude-dir=node_modules --exclude-dir=.git | wc -l)

  # Wenn nur 1 Referenz (sich selbst):
  if [ "$refs" -le 1 ]; then
    # Letztes Aenderungsdatum pruefen
    last_mod=$(git log -1 --format="%ci" "$file")

    # Wenn laenger als orphan_threshold Tage nicht geaendert
    # Als potenziell verwaist markieren
    echo "VERWAIST: $file (letzte Aenderung: $last_mod)" >> orphans.txt
  fi
done < all_files.txt

Erwartet: orphans.txt listet Dateien die anderweitig nicht referenziert werden

Bei Fehler: Wenn git log fehlschlaegt, stattdessen Dateisystem-mtime verwenden

Hinweis: Einige Dateien (z.B. CLI-Einstiegspunkte, Top-Level-Skripte) sind legitimerweise unreferenziert aber keine Waisen. Erfordert manuelle Pruefung.

Schritt 5: Interne Links reparieren

Defekte interne Referenzen mit einer von drei Strategien reparieren:

Strategie 1: Verschobene Dateien finden

# Fuer jeden defekten Link nach Datei nach Name suchen
while read broken_link; do
  filename=$(basename "$broken_link")

  # Im Projekt nach Datei suchen
  found=$(find . -name "$filename" | head -1)

  if [ -n "$found" ]; then
    # Link auf neuen Pfad aktualisieren
    old_path="$broken_link"
    new_path="$found"

    # Edit-Tool zum Ersetzen in allen Markdown-Dateien verwenden
    echo "KORREKTUR: $old_path -> $new_path"
  fi
done < broken_internal.txt

Strategie 2: Weiterleitungs-Stub erstellen

# Wenn Datei absichtlich geloescht wurde, Weiterleitungs-Stub erstellen
echo "# Verschoben" > "$broken_link"
echo "Dieser Inhalt wurde nach [neuer Ort](new_path.md) verschoben" >> "$broken_link"

Strategie 3: Toten Link entfernen

# Wenn Inhalt nicht mehr existiert, Link entfernen (Text beibehalten)
# [Text](defekter_link) durch Text (Klartext) ersetzen

Erwartet: Alle defekten internen Links entweder repariert, weitergeleitet oder entfernt

Bei Fehler: Wenn automatische Korrektur den Kontext bricht, zur manuellen Pruefung eskalieren

Schritt 6: Defekte Imports reparieren

Import-Anweisungen aktualisieren um nach Verschiebungen auf korrekte Pfade zu verweisen.

JavaScript-Beispiel:

// Vorher (defekt)
import { helper } from './utils/helper';

// Nachher (repariert — Datei nach lib/ verschoben)
import { helper } from './lib/helper';

Fuer jeden defekten Import:

  1. Verschobenes Modul finden (aehnlich wie Schritt 5)
  2. Importpfad in allen referenzierenden Dateien aktualisieren
  3. Linter/Typechecker zur Verifizierung der Korrektur ausfuehren

Erwartet: Alle Imports loesen korrekt auf; keine Modul-nicht-gefunden-Fehler

Bei Fehler: Wenn Modul tatsaechlich geloescht wurde, eskalieren um festzustellen ob Funktionalitaet noch benoetigt wird

Schritt 7: Verwaiste Dateien dokumentieren

Fuer als verwaist markierte Dateien Verwendungszweck bestimmen:

  1. Behalten: Legitimerweise unreferenziert (Einstiegspunkte, Skripte, Vorlagen)
  2. Archivieren: Alter Code nicht mehr benoetigt aber Historie bewahren
  3. Loeschen: Toter Code ohne Wert
# Pruefung verwaister Dateien

| Datei | Letzte Aenderung | Empfehlung | Grund |
|-------|------------------|------------|-------|
| scripts/old_deploy.sh | 2024-01-05 | Archivieren | Durch CI/CD ersetzt |
| src/legacy_api.js | 2023-06-12 | Loeschen | API v1 vollstaendig abgekuendigt |
| bin/cli.py | 2025-12-01 | Behalten | CLI-Einstiegspunkt (absichtlich unreferenziert) |

Erwartet: Dokument zur Pruefung verwaister Dateien erstellt; automatische Entscheidungen zur menschlichen Genehmigung markiert

Bei Fehler: (Entfaellt — auch ohne klare Empfehlung dokumentieren)

Schritt 8: Reparaturbericht erstellen

Alle defekten Referenzen und angewandten Korrekturen zusammenfassen.

# Referenz-Reparaturbericht

**Datum**: JJJJ-MM-TT
**Projekt**: <projektname>
**Korrekturmodus**: auto | report | interactive

## Defekte interne Links

- Gesamt: X
- Repariert: Y
- Weitergeleitet: Z
- Eskaliert: W

Details:
- [datei.md](datei.md) Zeile 45: Defekten Link zu verschobenem Dokument repariert
- [andere.md](andere.md) Zeile 12: Weiterleitungs-Stub erstellt

## Tote externe URLs

- Gesamt: X
- Repariert (Wayback Machine): Y
- Entfernt: Z

Details:
- https://example.com/old-page (404) → Entfernt
- https://api.old.com/docs (verschwunden) → Durch neue Dokumentation ersetzt

## Defekte Imports

- Gesamt: X
- Repariert: Y
- Eskaliert: Z

Details:
- src/main.js Zeile 3: Importpfad nach Refactoring aktualisiert

## Verwaiste Dateien

- Gesamt: X
- Behalten: Y
- Archiviert: Z
- Zur Pruefung eskaliert: W

Siehe ORPHAN_REVIEW.md fuer vollstaendige Analyse.

## Validierung

- [x] Alle Tests bestehen nach Korrekturen
- [x] Linter meldet keine Modul-nicht-gefunden-Fehler
- [x] Tote Links im Bericht dokumentiert

Erwartet: Bericht in REFERENCE_REPAIR_REPORT.md gespeichert

Bei Fehler: (Entfaellt — Bericht unabhaengig generieren)

Validierung

Nach Reparaturen:

  • Keine defekten internen Links in Dokumentation
  • Tote externe URLs dokumentiert (nicht alle reparierbar)
  • Alle Imports loesen korrekt auf
  • Verwaiste Dateien geprueft und zugeordnet
  • Tests bestehen nach Import-Korrekturen
  • Linter meldet keine unaufgeloesten Referenzen
  • Git-Historie erhalten (verwendet git mv fuer Verschiebungen)

Haeufige Stolperfallen

  1. Automatische URL-Korrekturen brechen Kontext: Tote Links durch web.archive.org-URLs zu ersetzen entspricht moeglicherweise nicht der Absicht des Autors. Manche Links werden besser entfernt.

  2. Ueberagressive Waisen-Loeschung: Einstiegspunkte, CLI-Skripte und Vorlagen sind oft absichtlich unreferenziert. Nicht ohne Pruefung loeschen.

  3. Import-Pfad-Annahmen: Annahme dass alle relativen Imports denselben Basispfad verwenden. Verschiedene Modulsysteme (CommonJS, ES6, TypeScript) behandeln Pfade unterschiedlich.

  4. Externe URL Falsch-Positive: Einige Websites blockieren curl/Bots funktionieren aber einwandfrei im Browser. Tote URLs immer manuell verifizieren.

  5. Zirkulaere Referenz-Fallen: Datei A importiert B, B importiert A. Aktualisierung einer bricht die andere. Erfordert gleichzeitige Korrektur.

  6. Fragment-Bezeichner ignorieren: Reparatur von [Link](#abschnitt) erfordert Pruefung ob der #abschnitt-Anker existiert, nicht nur ob die Datei existiert.

  7. Falsches R-Binary auf Hybrid-Systemen: Unter WSL oder Docker kann Rscript einen plattformuebergreifenden Wrapper statt nativem R aufloesen. Mit which Rscript && Rscript --version pruefen. Das native R-Binary bevorzugen (z.B. /usr/local/bin/Rscript unter Linux/WSL) fuer Zuverlaessigkeit. Fuer die R-Pfadkonfiguration siehe Setting Up Your Environment.

Verwandte Skills

Repositorio GitHub

pjt222/agent-almanac
Ruta: i18n/de/skills/repair-broken-references
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams
FAQ

Frequently asked questions

What is the repair-broken-references skill?

repair-broken-references is a Claude Skill by pjt222. Skills package instructions and resources that Claude loads on demand, so Claude can perform repair-broken-references-related tasks without extra prompting.

How do I install repair-broken-references?

Use the install commands on this page: add repair-broken-references to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.

What category does repair-broken-references belong to?

repair-broken-references is in the Other category, tagged ai.

Is repair-broken-references free to use?

Yes. repair-broken-references is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.

Habilidades relacionadas

llamaguard
Otro

LlamaGuard es el modelo de Meta de 7-8B parámetros para moderar las entradas y salidas de LLM en seis categorías de seguridad como violencia y discurso de odio. Ofrece una precisión del 94-95% y puede implementarse usando vLLM, Hugging Face o Amazon SageMaker. Utiliza esta skill para integrar fácilmente filtrado de contenido y barreras de seguridad en tus aplicaciones de IA.

Ver habilidad
cost-optimization
Otro

Esta Skill de Claude ayuda a los desarrolladores a optimizar los costes en la nube mediante el ajuste de tamaño de recursos, estrategias de etiquetado y análisis de gastos. Proporciona un marco para reducir los gastos en la nube e implementar una gobernanza de costes en AWS, Azure y GCP. Úsala cuando necesites analizar los costes de infraestructura, ajustar el tamaño de los recursos o cumplir con restricciones presupuestarias.

Ver habilidad
sports-betting-analyzer
Otro

Esta habilidad de Claude analiza los mercados de apuestas deportivas, incluyendo spreads, over/unders y apuestas de propuestas, mediante el examen de tendencias históricas y estadísticas situacionales para identificar apuestas de valor. Proporciona una salida en markdown estructurado con recomendaciones accionables con fines educativos. Los desarrolladores deben utilizar esto para herramientas de análisis de apuestas deportivas, teniendo en cuenta que está diseñado únicamente para entretenimiento/educación.

Ver habilidad
quantizing-models-bitsandbytes
Otro

Esta habilidad cuantiza LLMs a precisión de 8 o 4 bits utilizando bitsandbytes, logrando una reducción de memoria del 50-75% con pérdida mínima de precisión. Es ideal para ejecutar modelos más grandes en memoria GPU limitada o para acelerar la inferencia, admitiendo formatos como INT8, NF4 y FP4. La habilidad se integra con HuggingFace Transformers y permite entrenamiento QLoRA y optimizadores de 8 bits.

Ver habilidad