Skip to main content

lev-cdo-debug

[WHAT] 7-step systematic Root Cause Analysis (RCA) workflow for debugging [HOW] REPRODUCE → ISOLATE → TRACE → HYPOTHESIZE → VERIFY → FIX → VALIDATE [WHEN] Triggered by "uld" or "ultradebug" keywords, or explicit debug request [WHY] Structured debugging prevents guess-and-check, ensures minimal fixes Triggers: "uld", "ultradebug", "debug rca", "root cause analysis"

ソース情報

リポジトリ
lev-os/lev-content
ソースの最終更新活動
2026年2月13日 18:54
検出された SKILL.md の言語
英語
スター
0
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
lev-cdo-debug
description
[WHAT] 7-step systematic Root Cause Analysis (RCA) workflow for debugging [HOW] REPRODUCE → ISOLATE → TRACE → HYPOTHESIZE → VERIFY → FIX → VALIDATE [WHEN] Triggered by "uld" or "ultradebug" keywords, or explicit debug request [WHY] Structured debugging prevents guess-and-check, ensures minimal fixes Triggers: "uld", "ultradebug", "debug rca", "root cause analysis"
skill_type
workflow
category
process-debug
lifecycle_integration
{"stage":"execution","input_artifact":"bug report or error description","output_artifact":"FINAL-validation.md (fix + verification)"}
related_skills
["skill://lev-ultra","skill://lev-find","skill://ralph"]
plankton
false
# CDO Debug - Root Cause Analysis Workflow ## Lev Concept **What is this?** A 7-step systematic debugging workflow that prevents guess-and-check and ensures minimal, targeted fixes. Each step builds evidence, narrows scope, and validates hypotheses before applying fixes. **Why does it exist?** Debugging without structure leads to: - Fixing symptoms instead of root causes - Scope creep (refactoring while debugging) - Regression introduction - Lost time on wrong hypotheses **When to use it:** - Complex bugs with unknown root cause - Intermittent failures - Multi-component system failures - When "uld" or "ultradebug" keywords appear in user request --- ## CLI Commands ### Primary Command ```bash # Invoke debug RCA workflow lev cdo debug "{error description}" # Triggered automatically by keywords lev ultra "uld fix the gateway crash" ``` ### Workflow Structure ``` workflow: debug-rca complexity: deep turns: 7 convergence: type: turn_count required_turns: 7 exit_condition: "All turns complete + PASS verdict" ``` --- ## Workflows ### Debug RCA - 7-Step Systematic Analysis **Workflow structure:** ``` tmp/debug-rca-<timestamp>/ ├── 00-input.md # Error description ├── 01-reproduce.md # REPRODUCE step ├── 02-isolate.md # ISOLATE step ├── 03a-call-path.md # TRACE step (agent A) ├── 03b-working-code.md # TRACE step (agent B) ├── 04-hypotheses.md # HYPOTHESIZE step ├── 05-verified.md # VERIFY step ├── 06-fix.md # FIX step └── FINAL-validation.md # VALIDATE step ``` --- ### Turn 1: REPRODUCE **Goal:** Define exact failure condition **Agent:** define-failure **Prompt:** ``` Define exact failure condition: - Error message/behavior - Steps to reproduce - Expected vs actual - Environment details ``` **Output:** 01-reproduce.md **Example:** ```yaml error: "Gateway crashes on Telegram message" steps_to_reproduce: 1. Send message to Telegram bot 2. Gateway receives webhook 3. Crash with "Cannot read property 'text' of undefined" expected: Message processed successfully actual: Process crashes, restarts environment: - Node.js v20.11.0 - clawdbot@latest - macOS 14.2 ``` --- ### Turn 2: ISOLATE **Goal:** Narrow to smallest failing case **Agent:** narrow-scope **Input:** 01-reproduce.md **Prompt:** ``` Narrow to smallest failing case: - Minimal reproduction - Isolated variables - Boundary identification ``` **Output:** 02-isolate.md **Example:** ```yaml minimal_repro: - ANY Telegram message triggers crash - Does NOT happen with WhatsApp messages - Happens even with empty message body isolated_variables: - Message source: Telegram (fails) vs WhatsApp (works) - Message content: irrelevant - Gateway plugin: telegram-plugin.ts boundary: - Crash occurs in handleTelegramWebhook() function - Line: message.text.toLowerCase() - Condition: message.text is undefined for some messages ``` --- ### Turn 3: TRACE (Parallel) **Goal:** Find call path + working code comparison **Agents:** 2 parallel (Explore subagents) #### Agent A: Find Call Path **Input:** 02-isolate.md **Prompt:** "Find call path for failing code using lev-find" **Output:** 03a-call-path.md **Example:** ```yaml call_path: 1. telegram-webhook-handler.ts:42 (entry) 2. plugins/telegram-plugin.ts:89 (handleTelegramWebhook) 3. message.text.toLowerCase() (CRASH HERE) file_locations: - vendor/clawdbot/src/plugins/telegram-plugin.ts:89 - vendor/clawdbot/src/handlers/telegram-webhook-handler.ts:42 ``` #### Agent B: Find Working Code **Prompt:** "Find similar code that works using lev-find" **Output:** 03b-working-code.md **Example:** ```yaml working_code_found: - plugins/whatsapp-plugin.ts:67 - Uses optional chaining: message.text?.toLowerCase() difference: telegram: message.text.toLowerCase() # UNSAFE whatsapp: message.text?.toLowerCase() # SAFE ``` --- ### Turn 4: HYPOTHESIZE **Goal:** Form 2-3 theories about root cause **Agent:** root-cause-theories **Input:** ["03a-call-path.md", "03b-working-code.md"] **Prompt:** ``` Form 2-3 theories about root cause: - Theory 1: {hypothesis} Evidence FOR: {file:line} Evidence AGAINST: {file:line} - Theory 2: ... - Theory 3: ... ``` **Output:** 04-hypotheses.md **Example:** ```yaml theory_1: hypothesis: "Telegram sends messages without text field (stickers, images)" evidence_for: - whatsapp-plugin.ts:67 uses optional chaining - Telegram API docs: text field optional evidence_against: - None theory_2: hypothesis: "message object is undefined" evidence_for: - Error message suggests undefined access evidence_against: - Would crash earlier if message was undefined theory_3: hypothesis: "Race condition in message parsing" evidence_for: - None evidence_against: - Happens consistently, not intermittently verdict: Theory 1 most likely (95% confidence) ``` --- ### Turn 5: VERIFY **Goal:** Test each hypothesis with evidence **Agent:** hypothesis-testing **Input:** 04-hypotheses.md **Prompt:** ``` Test each hypothesis with evidence: - Check git blame/history - Add minimal logging - Run targeted tests Verdict: Theory {N} confirmed/refuted ``` **Output:** 05-verified.md **Example:** ```yaml theory_1_test: method: "Check Telegram API docs + git blame" result: CONFIRMED evidence: - Telegram API: text field is optional - Git blame: telegram-plugin.ts:89 never had null check - WhatsApp plugin: added optional chaining 3 months ago (commit a3f8e9) theory_2_test: method: "Add console.log before crash" result: REFUTED evidence: - message object exists - message.text is undefined for sticker/image messages theory_3_test: result: REFUTED (not tested, inconsistent with evidence) verdict: Theory 1 CONFIRMED - missing optional chaining for message.text ``` --- ### Turn 6: FIX **Goal:** Apply MINIMAL fix for root cause **Agent:** minimal-fix **Input:** 05-verified.md **Prompt:** ``` Apply MINIMAL fix for root cause: - ONLY fix the root cause - NO scope creep - NO refactoring - Document what changed ``` **Output:** 06-fix.md **Example:** ```yaml root_cause: "Missing optional chaining on message.text" fix: file: vendor/clawdbot/src/plugins/telegram-plugin.ts line: 89 before: | const command = message.text.toLowerCase(); after: | const command = message.text?.toLowerCase(); scope: MINIMAL (1 line change) refactoring: NONE additional_changes: NONE justification: | Matches working pattern in whatsapp-plugin.ts:67. Handles optional text field per Telegram API spec. ``` --- ### Turn 7: VALIDATE **Goal:** Adversarial validation of fix **Agent:** ralph-verify (adversarial validation) **Input:** "all" (reads 00-06) **Prompt:** ``` Adversarial validation: - Original issue resolved? - Tests pass? - No regression introduced? - Physical evidence exists? VERDICT: PASS/FAIL with file:line evidence ``` **Output:** FINAL-validation.md **Example:** ```yaml validation: original_issue_resolved: YES evidence: "Sent sticker to Telegram bot - no crash" tests_pass: YES evidence: "pnpm test passes (42/42)" regression_check: PASS evidence: "Text messages still work, WhatsApp unchanged" physical_evidence: YES evidence: | File: vendor/clawdbot/src/plugins/telegram-plugin.ts:89 Git diff shows 1-line change (optional chaining added) verdict: PASS adversarial_critique: - "Why not add null check instead of optional chaining?" response: "Optional chaining is idiomatic, matches WhatsApp plugin pattern" - "Should we add error logging?" response: "Out of scope - minimal fix only" - "What about other message.* accesses?" response: "Not in scope - only fixing reported crash" final_verdict: FIX APPROVED - Deploy to production ``` --- ## Convergence Criteria **Type:** Turn count (fixed structure) **Exit conditions:** - All 7 turns complete - FINAL-validation.md exists - Verdict: PASS **Safety checks:** - If verdict = FAIL → Report blocker, do NOT deploy - If missing turn output → Report incomplete workflow - If fix scope > 10 lines → Escalate (not minimal) --- ## Integration with lev-ultra **Router:** lev-ultra skill routes ultra-mode keywords **Trigger mapping:** ```yaml keywords: - "uld" → lev-cdo/debug (this skill) - "ult" → lev-cdo (main CDO) - "ulr" → lev-research - "ulw" → planning + ralph ``` **Example:** ```bash # User input "uld fix the gateway crash" # lev-ultra routes to lev cdo debug "fix the gateway crash" # Which invokes this 7-step workflow ``` --- ## Anti-Patterns to Avoid | Don't | Do Instead | |-------|------------| | Fix symptoms without root cause | Complete all 7 turns | | Refactor while debugging | Minimal fix only (1-10 lines) | | Skip hypothesis testing | VERIFY step required | | Deploy without validation | VALIDATE step must PASS | | Guess-and-check debugging | Evidence-based hypotheses | --- ## Relates ### Depends On - `skill://lev-find` - Used in TRACE step to find code (legacy skill name for `lev get` backend) - `skill://lev-ultra` - Routes "uld" keyword to this skill ### Works With - `skill://ralph` - Adversarial validation in VALIDATE step - `skill://lev-cdo/workflows` - Uses Deep workflow pattern ### Blocks/Enables - Blocks: Deployment if validation FAIL - Enables: Systematic debugging without scope creep ### Lifecycle Position - **Before:** Bug report or error description - **After:** FINAL-validation.md → deployment or escalation - **Parallel:** None (sequential 7-step process) ## Technique Map - **Role definition** - Clarifies operating scope and prevents ambiguous execution. - **Context enrichment** - Captures required inputs before actions. - **Output structuring** - Standardizes deliverables for consistent reuse. - **Step-by-step workflow** - Reduces errors by making execution order explicit. - **Edge-case handling** - Documents safe fallbacks when assumptions fail. ## Technique Notes These techniques improve reliability by making intent, inputs, outputs, and fallback paths explicit. Keep this section concise and additive so existing domain guidance remains primary. ## Prompt Architect Overlay ### Role Definition You are the prompt-architect-enhanced specialist for debug, responsible for deterministic execution of this skill's guidance while preserving existing workflow and constraints. ### Input Contract - Required: clear user intent and relevant context for this skill. - Preferred: repository/project constraints, existing artifacts, and success criteria. - If context is missing, ask focused questions before proceeding. ### Output Contract - Provide structured, actionable outputs aligned to this skill's existing format. - Include assumptions and next steps when appropriate. - Preserve compatibility with existing sections and related skills. ### Edge Cases & Fallbacks - If prerequisites are missing, provide a minimal safe path and request missing inputs. - If scope is ambiguous, narrow to the highest-confidence sub-task. - If a requested action conflicts with existing constraints, explain and offer compliant alternatives.
GitHubで見る