Token导航 LogoToken导航

Agent Skill · 研究检索

deep-debugging(深度调试)

deep-debugging 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

deep-debugging 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 14,155。

总安装 8,784周安装 366GitHub Stars 公开资料未说明下载 2,928核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.3

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:deep-debugging(深度调试)
来源仓库:https://github.com/brasco05/deep-debugging
安装命令:
openclaw skills install deep-debugging
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install deep-debugging

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

系统化调试方法,基于证据定位问题根源而非盲目修复。适用于错误持续存在时的根因分析与验证。强调先证明原因再解决问题的技术路径。适用宿主包括 OpenClaw,接入前应确认版本、权限和运行环境要求。安装前需确认权限范围、维护状态及是否触发日志整理或进程监控。

deep-debugging 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install deep-debugging;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

deep-debugging 怎么安装?

在终端执行 openclaw skills install deep-debugging。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

deep-debugging 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

deep-debugging 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

deep-debugging 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

deep-debugging 用的人多吗?

公开数据是累计安装 8,784 次,近一周安装 366 次,下载 2,928 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

deep-debugging 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
deep-debugging

深度调试 · 本页

8,784—接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Deep Debugging Skill

Kein blindes Fixen. Kein Raten. Erst beweisen, dann lösen.

Trigger-Wörter (Skill sofort laden)

Dieser Skill wird sofort aktiviert wenn der User eines dieser Wörter schreibt:

  • debug, debugg, debugge, debugging
  • bug, bugfix, buggy
  • broken, kaputt, funktioniert nicht
  • fehler, error, crash, absturz
  • schlägt fehl, wirft error, wirft exception
  • 401, 403, 500 (direkt als Nachricht)

Wenn du diesen Skill liest: STOPP.

Leg alle Fix-Ideen beiseite. Du wirst NICHTS ändern bevor du die Ursache zu 100% kennst.


PRE-PHASE — Quick Triage (30 Sekunden, IMMER zuerst)

Bevor du irgendwas analysierst — diese 5 Dinge in 30 Sekunden prüfen:

□ Server neu gestartet nach letzter Änderung?
□ ENV-Variablen korrekt gesetzt (auch in .env.local)?
□ npm install / yarn nach Package-Änderungen ausgeführt?
□ Datenbank-Migration gelaufen? (npx prisma migrate dev)
□ Browser-Cache geleert / Hard Reload (Ctrl+Shift+R)?

Wenn eines davon "Nein" → erst das fixen, dann weiter. Wenn alle "Ja" → weiter zu Phase 1.


PHASE 1 — Daten sammeln (nur beobachten, nichts anfassen)

Beantworte diese 4 Fragen mit echten Beweisen aus Logs/Code:

1. Was genau passiert?

  • Exakte Fehlermeldung oder Stack Trace aus den Logs
  • HTTP Status Code (401? 403? 500? Redirect?)
  • Welcher Endpoint / welche Funktion / welcher Service ist betroffen
  • Was sieht der User vs. was passiert im Backend

2. Wann passiert es?

  • Immer oder nur manchmal?
  • Nur bei bestimmten Usern / Rollen / Inputs?
  • Seit wann — nach welchem Commit / welcher Änderung?
  • Reproduzierbar in welchen Schritten genau?

3. Was sollte stattdessen passieren?

  • Erwartetes Verhalten klar in einem Satz benennen
  • Tatsächliches Verhalten klar in einem Satz benennen

4. Was wurde zuletzt geändert?

  • Letzter relevanter Commit
  • Neue ENV-Variablen, neue Abhängigkeiten, neue Migrationen?

→ STOPP. Erst wenn alle 4 Fragen beantwortet sind: weiter zu Phase 2.


PHASE 2 — Hypothese aufstellen (PFLICHT)

Formuliere EINE konkrete, testbare Hypothese bevor du irgendetwas anfasst:

"Der Fehler tritt auf weil [konkrete Ursache],
was ich beweise/widerlege indem ich [konkreter Test]."

Gute Hypothese:

"Der User wird rausgeworfen weil das JWT nach dem Login nicht 
korrekt im Cookie gesetzt wird, was ich beweise indem ich 
den Set-Cookie Header in der Login-Response in den Backend 
Logs überprüfe."

Schlechte Hypothese:

"Irgendwas stimmt mit der Auth nicht."
→ Zu vage. Nochmal. Konkrete Ursache benennen.

Melde die Hypothese bevor du weitermachst. Format: 🔬 HYPOTHESE: [deine Hypothese]


Hypothese → Checkliste-Selector

Anhand der Hypothese die passende Checkliste in Phase 3 auswählen:

Hypothese betrifftCheckliste in Phase 3
Auth / Login / Token / SessionAuth-Bug (JWT-Flow, Schritt 1–5)
API / Request / Response / CORSAPI-Bug (Request-Kette)
UI / Render / State / HooksFrontend-Bug (React/Next.js)
DB / Schema / Query / MigrationDB-Bug (Prisma/TypeORM)
Speed / Memory / Bundle / Render-PerformancePerformance

PHASE 3 — Binary Search (Fehler eingrenzen)

Teile das Problem in zwei Hälften. Teste eine Hälfte.

  • Liegt der Fehler dort → weiter aufteilen
  • Liegt er nicht dort → andere Hälfte testen

Für Auth/Session-Bugs (häufigster Fall):

Schritt 1: Login-Request → wird JWT korrekt generiert?
 → Logs: POST /auth/login → 200 oder Fehler?

Schritt 2: JWT im Response → landet er korrekt beim Client?
 → Set-Cookie Header vorhanden? LocalStorage befüllt?

Schritt 3: Folge-Request → wird JWT mitgeschickt?
 → Authorization: Bearer [token] im Request-Header? Cookie present?

Schritt 4: Guard/Middleware → wird JWT korrekt validiert?
 → JwtAuthGuard wirft 401? Welche Fehlermeldung?

Schritt 5: JWT_SECRET → ist er korrekt gesetzt?
 → Gleicher Secret beim Generieren (JwtModule) und Validieren (JwtStrategy)?

Für allgemeine API-Bugs:

Request rein → Middleware → Guard → Controller → Service → DB → Response
     ↑              ↑          ↑         ↑           ↑
     Wo bricht die Kette? Jeden Schritt einzeln testen.

Für Frontend-Bugs (React/Next.js):

User-Action → Event Handler → State-Update → Re-render → API-Call → Response → UI-Update
     ↑               ↑              ↑             ↑           ↑          ↑
     Wo bricht die Kette?

Checkliste:
□ Console.log DIREKT nach dem Event: kommt die Action überhaupt an?
□ State korrekt? (React DevTools → Components → State inspizieren)
□ useEffect dependencies richtig? (zu wenige → stale closure, zu viele → infinite loop)
□ API-Call: Network Tab → Request Payload korrekt? Response korrekt?
□ Hydration Error: passiert nur SSR? Client-only Code in Server Component?
□ Keys fehlen in Liste? → React warnt, aber rendert falsch
□ Async State: wird State gesetzt bevor Component unmounted?

Für Datenbank-Bugs (Prisma/TypeORM):

□ Schema stimmt mit Migration überein? → prisma db push oder migrate dev
□ Fehlende Relation: include/join vergessen?
□ Null-Safety: Feld optional aber kein null-check?
□ Transaction abgebrochen: welcher Teil schlägt fehl?
□ Connection Pool erschöpft: zu viele offene Connections?

Prisma Debug-Modus aktivieren:
const prisma = new PrismaClient({ log: ['query', 'error', 'warn'] })
→ Zeigt jeden SQL-Query mit Parametern

Für Performance-Bugs:

□ N+1 Problem: wird in einer Schleife jedes Mal eine DB-Query gemacht?
□ Missing Index: EXPLAIN ANALYZE auf den langsamen Query
□ Re-renders: React DevTools Profiler → was rendert unnötig?
□ Bundle Size: next build → welche Packages sind zu groß?
□ Memory Leak: Interval/EventListener nicht aufgeräumt bei unmount?

Melde nach jeder Testphase:

  • ✅ [Schritt X] OK — Fehler liegt nicht hier
  • ❌ [Schritt X] FEHLER GEFUNDEN — [was genau]

PHASE 4 — Fix (erst jetzt)

Nur wenn die Ursache durch Phase 1-3 bewiesen ist:

  1. Minimalen Fix implementieren — nur das was den Fehler behebt, nichts anderes
  2. Nicht gleichzeitig refactoren — ein Problem, ein Fix
  3. Direkt testen ob der spezifische Fehler weg ist
  4. Verification ausführen bevor "fertig" gemeldet wird

Häufige Fehlerquellen (NestJS/Next.js-Stack)

SymptomZuerst prüfen
User wird nach Login rausgeworfenJWT_SECRET Mismatch zwischen JwtModule und JwtStrategy, Cookie SameSite/Secure Settings, CORS-Config
HTTP 401 bei authentifizierten RequestsJWT expired, falscher Secret, Bearer Token fehlt im Header, validate() wird nicht aufgerufen
HTTP 403Rolle fehlt, Guard-Logik prüfen, Tenant-Isolation blockiert
HTTP 500 ohne Stack TraceUnbehandelte Promise-Rejection, console.error in Logs suchen
"Cannot read property of undefined"Null-checks fehlen, DB-Query gibt null zurück
Route nicht gefunden (404)Module nicht in AppModule importiert, falscher Controller-Prefix, Global-Prefix-Dopplung (api/api/)
DB-Fehler beim StartMigration nicht ausgeführt, Spalte existiert nicht, ENV-Variable fehlt
Cookie wird nicht gesetztSameSite=None + Secure=true nötig bei Cross-Origin; SameSite=Lax für same-site
Cookie wird nicht mitgeschicktCross-Origin Fetch braucht credentials: 'include', Next.js Rewrites funktionieren nur SSR-seitig
JWT Strategy extrahiert Token aber 401secretOrKey in JwtStrategy stimmt NICHT mit secret in JwtModule überein (Fallback-Wert-Problem!)
Hydration Error (Next.js)Client-only API (window/localStorage) in Server Component, Date/Math.random() Mismatch
Infinite Re-render LoopuseEffect dependency array falsch, State-Update in Render-Funktion
"React Hook called conditionally"useState/useEffect NACH einem Early Return — alle Hooks VOR Early Returns
Prisma: "Unknown field"Schema geändert aber kein prisma generate ausgeführt
CORS Error trotz CORS-ConfigPreflight OPTIONS-Request nicht behandelt, Origin-Whitelist unvollständig

Debugging-Tools

NestJS Backend

# Live-Logs mit tee
npm run start:dev 2>&1 | tee /tmp/backend-debug.log

# JWT manuell dekodieren
echo "$TOKEN" | cut -d. -f2 | base64 -d | jq .

# Login + /me curl-Test
curl -X POST http://localhost:4000/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"...","password":"..."}' \
  -c /tmp/cookies.txt -v 2>&1 | grep "Set-Cookie"

curl http://localhost:4000/api/auth/me \
  -b /tmp/cookies.txt -v 2>&1 | grep "HTTP"

Prisma

# Alle Queries loggen
DATABASE_URL=... npx prisma studio   # DB direkt inspizieren

# Migration Status prüfen
npx prisma migrate status

# Schema mit DB vergleichen
npx prisma db pull  # zieht aktuelles DB-Schema

React / Next.js

# Build-Fehler analysieren
next build 2>&1 | grep -E "Error|Warning"

# Bundle-Größe analysieren
ANALYZE=true next build  # mit @next/bundle-analyzer

# TypeScript-Fehler finden
tsc --noEmit

Allgemein

# Letzten Commit der eine Datei geändert hat
git log --oneline --follow -p -- src/auth/jwt.strategy.ts | head -50

# Wann hat ein Bug angefangen? Binary search in Git
git bisect start
git bisect bad HEAD
git bisect good [letzter-funktionierender-commit]

Reporting-Format (PFLICHT nach jedem Debugging)

🔍 DEBUG REPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Fehler: [Exakte Fehlermeldung aus Logs]
Lokalisiert: [Datei:Zeile / Funktion / Service]
Ursache: [Was wirklich passiert ist — eine klare Erklärung]
Beweis: [Wie die Ursache bewiesen wurde]
Fix: [Was genau geändert wurde — Datei + was]
Verifiziert: [Ja — wie getestet, welcher Test grün]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Absolute Regeln

  • NIEMALS fixen ohne Hypothese aus Phase 2
  • NIEMALS mehrere Dinge gleichzeitig ändern
  • NIEMALS "probieren ob es hilft" — nur beweisbasierte Fixes
  • NIEMALS Phase überspringen weil der Fix "offensichtlich" wirkt
  • Wenn nach 3 Fix-Versuchen der Bug noch existiert → Eskalations-Pfad (siehe unten)
  • Scope-Disziplin: Nur den gemeldeten Bug fixen, keine anderen Baustellen anfassen

Eskalations-Pfad nach 3 Fehlversuchen

Nicht zurück zu Phase 1 — das ist eine Sackgasse wenn Phase 1 korrekt war. Stattdessen:

Schritt 1 — Status-Bericht erstellen:

Aktuelle Hypothese: [was zuletzt angenommen wurde]
Getestet: [was konkret geprüft/geändert wurde, Versuch 1–3]
Ergebnis: [was bei jedem Versuch rausgekommen ist]
Offen: [welche Hypothesen noch nicht ausgeschlossen wurden]

Schritt 2 — User aktiv einbinden:

"Ich habe 3 Versuche ohne Erfolg. Folgende Hypothesen sind noch offen: 1. [Hypothese A] 2. [Hypothese B] 3. [Hypothese C] Welche soll ich tiefer verfolgen — oder gibt es neuen Kontext den ich nicht habe?"

Schritt 3 — Optional: Frischer Subagent (bei kontaminiertem Reasoning-Path):

Wenn die bisherigen Versuche möglicherweise den eigenen Reasoning-Path verzerrt haben, einen neuen Subagent mit minimalem Kontext spawnen:

  • Nur Fehlermeldung + relevante Code-Stellen mitgeben
  • Keine bisherigen Hypothesen vorab nennen (verhindert Confirmation Bias)
  • Ergebnisse des Subagents mit eigenem Stand abgleichen

Lessons Learned (aus echten Bugs)

JWT Secret Mismatch (2026-03-19)

Symptom: User wird nach Login sofort rausgeworfen, /auth/me gibt 401

Falle: JwtModule.register() und JwtStrategy hatten unterschiedliche Fallback-Secrets:

  • Login signierte mit: 'caresys-super-secret-jwt-key-2026'
  • Strategy verifizierte mit: 'fallback-secret-for-dev'

Beweis-Methode: validate() in JwtStrategy temporär loggen → wurde NIE aufgerufen → Signatur-Verifikation schlägt fehl → Secrets stimmen nicht überein

Fix: Fallback-Secret in jwt.strategy.ts angleichen:

secretOrKey: process.env.JWT_SECRET || 'caresys-super-secret-jwt-key-2026',

Cross-Origin Cookie Problem (2026-03-19)

Symptom: Login erfolgreich, aber alle API-Calls geben 401

Falle: fetch() vom Browser sendet Cookies NICHT bei Cross-Origin-Requests (localhost:3000 → localhost:4000), auch wenn credentials: 'include' gesetzt ist und Next.js Rewrites konfiguriert sind.

Warum Next.js Rewrites nicht helfen: Rewrites funktionieren nur für SSR-seitige Requests, nicht für client-side fetch().

Fix: Sicherstellen dass alle API-Calls über die gleiche Origin laufen (Next.js als Proxy) ODER JWT auch im Response-Body zurückgeben und im Authorization Header senden.

NestJS Controller-Prefix-Dopplung (2026-03-21)

Symptom: API-Endpoint gibt 404, obwohl Controller und Route korrekt aussehen

Falle: Global Prefix api + Controller-Pfad api/something → /api/api/something → 404

Fix: Controller-Pfad niemals mit api/ prefixen. Nur den Ressourcennamen:

@Controller('users')  // ✅ → /api/users
@Controller('api/users')  // ❌ → /api/api/users

React Rules of Hooks Violation (2026-03-22)

Symptom: "React Hook useState is called conditionally" Error, App crasht

Falle: useState oder useEffect nach einem Early Return:

if (!user) return null  // ← Early Return
const [data, setData] = useState([])  // ← Hook DANACH → Fehler!

Fix: Alle Hooks VOR jeden Early Return verschieben:

const [data, setData] = useState([])  // ← Erst Hooks
if (!user) return null  // ← Dann Early Return

req.user.id vs req.user.sub (2026-03-22)

Symptom: req.user.id ist undefined in NestJS Controller, obwohl JWT korrekt

Falle: JWT-Standard speichert die User-ID in sub, nicht in id. NestJS JwtStrategy gibt das decoded JWT payload zurück — also sub, nicht id.

Fix: Immer req.user.sub statt req.user.id in NestJS-Controllern:

@Get('me')
getMe(@Request() req) {
  return this.usersService.findOne(req.user.sub)  // ✅
}

Prisma N+1 Query bei nested includes (2026-04-28)

Symptom: Endpoint wird mit wachsender Datenmenge immer langsamer; bei 100 Einträgen dauert eine List-Anfrage 3–8 Sekunden. Einzelne Einträge sind schnell.

Falle: Eine Schleife über die Hauptentität macht pro Iteration eine eigene DB-Query für eine verknüpfte Relation — obwohl Prisma include angeboten hätte:

// ❌ N+1: 1 Query für Patienten + N Queries für jeweils deren Termine
const patients = await prisma.patient.findMany()
for (const p of patients) {
  p.appointments = await prisma.appointment.findMany({ where: { patientId: p.id } })
}

Beweis-Methode: Prisma Query-Logging aktivieren:

const prisma = new PrismaClient({ log: ['query'] })

Im Log erscheinen bei 50 Patienten genau 51 SELECT-Statements statt einem.

Fix: Relation direkt im findMany-Aufruf per include mitladen — Prisma batched das in eine optimierte Abfrage:

// ✅ Ein Query, alle Relationen geladen
const patients = await prisma.patient.findMany({
  include: { appointments: true }
})

Bei tief verschachtelten Relationen select statt include nutzen um nur benötigte Felder zu laden und Payload-Größe zu kontrollieren.

平台分布

OpenClaw

98.05%
按下载量换算2,871

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills