[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DPWZD4AMWQ4JSS0KP18V2F":3,"skill-same:01M6DPWZD4AMWQ4JSS0KP18V2F":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6DPWZD4AMWQ4JSS0KP18V2F","rlm-debugging",null,"Use when RLM requirement involves debugging a bug, test failure, or unexpected behavior. Insert Phase 1.5 between Phase 1 and Phase 2 to perform systematic root cause analysis before attempting any fixes. Trigger phrases: \"debug\", \"investigate\", \"failing tests\", \"crash\", \"root cause\".","spideynolove\u002Fclaude-dotfiles","spideynolove","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19179621?v=4","01M6DPV14K2QND6S7BX6HNQYX9","Hung Nguyen","01M6DPV1MMAV9858D8R8CHM5QM",2,"MIT","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.agents-global\u002Fskills\u002Frlm-workflow\u002Fskills\u002Frlm-debugging\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"debugging","rlm","rlm debugging","test","debug","root cause analysis","analysis","investigate","behavior","use","crash","bug","tests","systematic","trigger","2026-11-10 10:12:30",false,"---\nname: rlm-debugging\ndescription: 'Use when RLM requirement involves debugging a bug, test failure, or unexpected behavior. Insert Phase 1.5 between Phase 1 and Phase 2 to perform systematic root cause analysis before attempting any fixes. Trigger phrases: \"debug\", \"investigate\", \"failing tests\", \"crash\", \"root cause\".'\n---\n\n# RLM Systematic Debugging (Phase 1.5)\n\n## Overview\n\nWhen a requirement involves fixing a bug or investigating unexpected behavior, ad-hoc fixes waste time and create new bugs. Systematic debugging finds the root cause before any fix is attempted.\n\n**Core Principle:** ALWAYS find root cause before attempting fixes. Symptom fixes are failure.\n\n**The Iron Law for RLM Debugging:**\n```\nNO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST\n```\n\n## Trigger examples\n\n- `Tests are failing after the last change; debug it`\n- `Fix crash on empty input`\n- `Investigate why the API returns wrong data`\n- `Do a root cause analysis before making changes`\n\n## When to Use\n\n**Mandatory Phase 1.5 when:**\n- Requirement is a bug fix\n- Test failures need investigation\n- Unexpected behavior reported\n- Performance problems\n- Integration issues\n\n**Use ESPECIALLY when:**\n- Under time pressure (emergencies make guessing tempting)\n- \"Just one quick fix\" seems obvious\n- Previous fix attempts failed\n- You don't fully understand the issue\n\n**Don't skip when:**\n- Issue seems simple (simple bugs have root causes too)\n- You're in a hurry (rushing guarantees rework)\n- Manager wants it fixed NOW (systematic is faster than thrashing)\n\n## Phase 1.5 Insertion\n\nPhase 1.5 is inserted between Phase 1 (AS-IS) and Phase 2 (TO-BE Plan) when debugging is required:\n\n```\nPhase 0: 00-requirements.md\n    ->\nPhase 1: 01-as-is.md (captures current behavior)\n    ->\nPhase 1.5: 01.5-root-cause.md \u003C- NEW (this skill)\n    ->\nPhase 2: 02-to-be-plan.md (includes fix plan based on root cause)\n```\n\n## The Four Phases of Systematic Debugging\n\n```dot\ndigraph debugging_phases {\n    rankdir=TB;\n    \n    phase1 [label=\"Step 1:\\nRoot Cause Investigation\", shape=box, style=filled, fillcolor=\"#ffcccc\"];\n    phase2 [label=\"Step 2:\\nPattern Analysis\", shape=box, style=filled, fillcolor=\"#ffffcc\"];\n    phase3 [label=\"Step 3:\\nHypothesis & Testing\", shape=box, style=filled, fillcolor=\"#ccffcc\"];\n    phase4 [label=\"Step 4:\\nFix Implementation\", shape=box, style=filled, fillcolor=\"#ccccff\"];\n    \n    phase1 -> phase2 -> phase3 -> phase4;\n    \n    \u002F\u002F Feedback loops\n    phase3 -> phase1 [label=\"hypothesis\\nfailed\", style=dashed];\n    phase4 -> phase1 [label=\"fix\\nfailed\", style=dashed];\n}\n```\n\n### Step 1: Root Cause Investigation\n\n**BEFORE attempting ANY fix:**\n\n#### 1.1 Read Error Messages Carefully\n- Don't skip past errors or warnings\n- They often contain the exact solution\n- Read stack traces completely\n- Note line numbers, file paths, error codes\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Error Analysis\n\n**Error Message:** [verbatim]\n**Stack Trace:** [key frames]\n**File:Line:** [locations]\n**Error Code:** [if applicable]\n**Key Insight:** [what the error is telling you]\n```\n\n#### 1.2 Reproduce Consistently\n- Can you trigger it reliably?\n- What are the exact steps?\n- Does it happen every time?\n- If not reproducible -> gather more data, don't guess\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Reproduction Verification\n\n**Steps:**\n1. [exact step]\n2. [exact step]\n3. [exact step]\n\n**Reproducible:** Yes \u002F No \u002F Intermittent\n**Frequency:** [X out of Y attempts]\n**Deterministic:** Yes \u002F No\n```\n\n#### 1.3 Check Recent Changes\n- What changed that could cause this?\n- Git diff, recent commits\n- New dependencies, config changes\n- Environmental differences\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Recent Changes Analysis\n\n**Git History:** [relevant commits]\n**Dependency Changes:** [package.json, requirements.txt, etc.]\n**Config Changes:** [relevant files]\n**Environment:** [OS, runtime versions]\n**Likely Culprit:** [most suspicious change]\n```\n\n#### 1.4 Gather Evidence in Multi-Component Systems\n\n**WHEN system has multiple components (CI -> build -> signing, API -> service -> database):**\n\n**BEFORE proposing fixes, add diagnostic instrumentation:**\n\nFor EACH component boundary:\n- Log what data enters component\n- Log what data exits component\n- Verify environment\u002Fconfig propagation\n- Check state at each layer\n\nRun once to gather evidence showing WHERE it breaks, THEN analyze evidence.\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Multi-Layer Evidence\n\n**Layer 1: [Component Name]**\n- Input: [data]\n- Output: [data]\n- Status: ✅ Working \u002F ❌ Broken\n\n**Layer 2: [Component Name]**\n- Input: [data from Layer 1]\n- Output: [data]\n- Status: ✅ Working \u002F ❌ Broken\n\n**Failure Boundary:** Layer X -> Layer Y\n**Root Cause Location:** [specific component]\n```\n\n#### 1.5 Trace Data Flow\n\n**WHEN error is deep in call stack:**\n\nTrace backward:\n- Where does bad value originate?\n- What called this with bad value?\n- Keep tracing up until you find the source\n- Fix at source, not at symptom\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Data Flow Trace\n\n**Error Location:** [file:line - function]\n**Bad Value:** [what was wrong]\n\n**Call Stack Trace:**\n1. [deepest] `functionA()` at fileA:line - received [value]\n2. `functionB()` at fileB:line - passed [value]\n3. `functionC()` at fileC:line - passed [value]\n4. [source] `functionD()` at fileD:line - ORIGIN of bad value\n\n**Root Cause:** [source location] - [explanation]\n```\n\n### Step 2: Pattern Analysis\n\n**Find the pattern before fixing:**\n\n#### 2.1 Find Working Examples\n- Locate similar working code in same codebase\n- What works that's similar to what's broken?\n\n#### 2.2 Compare Against References\n- If implementing pattern, read reference implementation COMPLETELY\n- Don't skim - read every line\n- Understand the pattern fully before applying\n\n#### 2.3 Identify Differences\n- What's different between working and broken?\n- List every difference, however small\n- Don't assume \"that can't matter\"\n\n#### 2.4 Understand Dependencies\n- What other components does this need?\n- What settings, config, environment?\n- What assumptions does it make?\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Pattern Analysis\n\n**Working Example:** [file:location]\n**Broken Code:** [file:location]\n\n**Key Differences:**\n| Aspect | Working | Broken |\n|--------|---------|--------|\n| [X] | [value] | [value] |\n| [Y] | [value] | [value] |\n\n**Likely Cause:** [difference that explains the bug]\n**Dependencies:** [what the code needs to work]\n```\n\n### Step 3: Hypothesis and Testing\n\n**Scientific method:**\n\n#### 3.1 Form Single Hypothesis\n- State clearly: \"I think X is the root cause because Y\"\n- Write it down\n- Be specific, not vague\n\n#### 3.2 Test Minimally\n- Make the SMALLEST possible change to test hypothesis\n- One variable at a time\n- Don't fix multiple things at once\n\n#### 3.3 Verify Before Continuing\n- Did it work? Yes -> Phase 4\n- Didn't work? Form NEW hypothesis\n- DON'T add more fixes on top\n\n#### 3.4 When You Don't Know\n- Say \"I don't understand X\"\n- Don't pretend to know\n- Ask for help\n- Research more\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Hypothesis Testing\n\n### Hypothesis 1\n**Statement:** [clear hypothesis]\n**Rationale:** [why you think this]\n**Test:** [minimal change to verify]\n**Result:** [confirmed\u002Frejected]\n**Evidence:** [output\u002Fobservation]\n\n### Hypothesis 2 (if needed)\n[...]\n\n**Confirmed Root Cause:** [final hypothesis]\n```\n\n### Step 4: Fix Summary (Handoff to Phase 2 Planning)\n\n**Fix the root cause, not the symptom:**\n\n#### 4.1 Create Failing Test Case\n- Simplest possible reproduction\n- Automated test if possible\n- One-off test script if no framework\n- MUST have before fixing\n- **This becomes part of Phase 3's test plan**\n\n#### 4.2 Root Cause Summary for Phase 2\n- Summarize root cause found\n- Document the fix approach\n- Reference evidence from Phase 1.5\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Root Cause Summary\n\n**Root Cause:** [one sentence]\n**Location:** [file:line]\n**Explanation:** [paragraph explaining why]\n**Fix Approach:** [high-level]\n**Test Strategy:** [how to verify fix]\n\n## Phase 1.5 Gate\n\nCoverage: [Did we find root cause?]\nApproval: [Ready to proceed to Phase 3 with fix plan?]\n```\n\n## Red Flags - STOP and Follow Process\n\nIf you catch yourself thinking:\n- \"Quick fix for now, investigate later\"\n- \"Just try changing X and see if it works\"\n- \"Add multiple changes, run tests\"\n- \"Skip the test, I'll manually verify\"\n- \"It's probably X, let me fix that\"\n- \"I don't fully understand but this might work\"\n- Proposing solutions before tracing data flow\n- **\"One more fix attempt\" (when already tried 2+)**\n\n**ALL of these mean: STOP. Return to Phase 2.**\n\n## Common Process Shortcuts (STOP)\n\n| Excuse | Reality |\n|--------|---------|\n| \"Issue is simple, don't need process\" | Simple issues have root causes too. Process is fast for simple bugs. |\n| \"Emergency, no time for process\" | Systematic debugging is FASTER than guess-and-check thrashing. |\n| \"Just try this first, then investigate\" | First fix sets the pattern. Do it right from the start. |\n| \"I'll write test after confirming fix\" | Untested fixes don't stick. Test first proves it. |\n| \"Multiple fixes at once saves time\" | Can't isolate what worked. Causes new bugs. |\n| \"I see the problem, let me fix it\" | Seeing symptoms ≠ understanding root cause. |\n| \"One more fix attempt\" (after 2+ failures) | 3+ failures = architectural problem. Question pattern, don't fix again. |\n\n## If 3+ Fix Attempts Failed\n\n**Pattern indicating architectural problem:**\n- Each fix reveals new shared state\u002Fcoupling\u002Fproblem in different place\n- Fixes require \"massive refactoring\" to implement\n- Each fix creates new symptoms elsewhere\n\n**STOP and question fundamentals:**\n- Is this pattern fundamentally sound?\n- Are we \"sticking with it through sheer inertia\"?\n- Should we refactor architecture vs. continue fixing symptoms?\n\n**Document in Phase 1.5:**\n```markdown\n## Architectural Concern\n\n**Fix Attempts:** [number]\n**Pattern:** [what happens with each fix]\n**Recommendation:** [architectural change vs. symptom fix]\n**Next Steps:** [escalate, refactor, or accept risk]\n```\n\n## Phase 1.5 Artifact Template\n\n**File:** `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F01.5-root-cause.md`\n\n```markdown\nRun: `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F`\nPhase: `01.5 Root Cause Analysis`\nStatus: `DRAFT` | `LOCKED`\nInputs:\n- `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F01-as-is.md`\n- [relevant addenda]\nOutputs:\n- `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F01.5-root-cause.md`\nScope note: This document records systematic debugging process and identified root cause.\n\n## Error Analysis\n\n[Section 2.1 - verbatim errors, stack traces]\n\n## Reproduction Verification\n\n[Section 2.2 - exact steps, reproducibility]\n\n## Recent Changes Analysis\n\n[Section 2.3 - git history, dependencies]\n\n## Evidence Gathering\n\n[Section 2.4 - multi-layer diagnostics if applicable]\n\n## Data Flow Trace\n\n[Section 2.5 - backward trace to source]\n\n## Pattern Analysis\n\n[Section 3 - working vs broken comparison]\n\n## Hypothesis Testing\n\n[Section 4 - scientific method log]\n\n## Root Cause Summary\n\n**Root Cause:** [one sentence]\n**Location:** [file:line]\n**Detailed Explanation:** [paragraph]\n**Fix Strategy:** [approach for Phase 3]\n**Test Plan:** [how to verify]\n\n## Traceability\n\n- R1 (Bug fix requirement) -> Root cause identified at [location] | Evidence: [section]\n\n## Coverage Gate\n\n- [ ] Error messages analyzed\n- [ ] Reproduction verified\n- [ ] Recent changes reviewed\n- [ ] Data flow traced to source\n- [ ] Pattern analysis completed\n- [ ] Hypothesis tested and confirmed\n- [ ] Root cause documented\n- [ ] Fix strategy defined\n\nCoverage: PASS \u002F FAIL\n\n## Approval Gate\n\n- [ ] Root cause identified (not just symptom)\n- [ ] Fix approach clear\n- [ ] Test strategy defined\n- [ ] No \"quick fixes\" attempted\n- [ ] Ready to proceed to Phase 3\n\nApproval: PASS \u002F FAIL\n\nLockedAt: [when locked]\nLockHash: [sha256]\n```\n\n## Integration with RLM\n\n### Phase 1 -> 1.5 Transition\n\nWhen Phase 1 (AS-IS) identifies a bug\u002Fissue that needs fixing:\n\n1. Lock Phase 1 (`01-as-is.md`)\n2. Create Phase 1.5 (`01.5-root-cause.md`) with Status: DRAFT\n3. Execute systematic debugging\n4. Lock Phase 1.5 when root cause found\n5. Proceed to Phase 3 with root cause knowledge\n\n### Phase 1.5 -> 3 Transition\n\nPhase 3 (`02-to-be-plan.md`) builds ON Phase 1.5:\n\n```markdown\n## Root Cause Reference\n\nRoot cause identified in `01.5-root-cause.md`:\n- Location: [file:line]\n- Cause: [summary]\n- Full analysis: [reference]\n\n## Fix Plan\n\nBased on root cause analysis:\n1. [specific fix steps]\n2. [test strategy from Phase 1.5]\n```\n\n## References\n\n- **REQUIRED:** Use this skill for all bug-fix requirements\n- **TRIGGERS:** When requirement involves debugging\u002Ffixing\n- **OUTPUT:** `01.5-root-cause.md` artifact\n- **NEXT:** Phase 3 (TO-BE Plan) incorporates findings\n\n\n","# RLM Systematic Debugging (Phase 1.5)\n\n## Overview\n\nWhen a requirement involves fixing a bug or investigating unexpected behavior, ad-hoc fixes waste time and create new bugs. Systematic debugging finds the root cause before any fix is attempted.\n\n**Core Principle:** ALWAYS find root cause before attempting fixes. Symptom fixes are failure.\n\n**The Iron Law for RLM Debugging:**\n```\nNO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST\n```\n\n## Trigger examples\n\n- `Tests are failing after the last change; debug it`\n- `Fix crash on empty input`\n- `Investigate why the API returns wrong data`\n- `Do a root cause analysis before making changes`\n\n## When to Use\n\n**Mandatory Phase 1.5 when:**\n- Requirement is a bug fix\n- Test failures need investigation\n- Unexpected behavior reported\n- Performance problems\n- Integration issues\n\n**Use ESPECIALLY when:**\n- Under time pressure (emergencies make guessing tempting)\n- \"Just one quick fix\" seems obvious\n- Previous fix attempts failed\n- You don't fully understand the issue\n\n**Don't skip when:**\n- Issue seems simple (simple bugs have root causes too)\n- You're in a hurry (rushing guarantees rework)\n- Manager wants it fixed NOW (systematic is faster than thrashing)\n\n## Phase 1.5 Insertion\n\nPhase 1.5 is inserted between Phase 1 (AS-IS) and Phase 2 (TO-BE Plan) when debugging is required:\n\n```\nPhase 0: 00-requirements.md\n    ->\nPhase 1: 01-as-is.md (captures current behavior)\n    ->\nPhase 1.5: 01.5-root-cause.md \u003C- NEW (this skill)\n    ->\nPhase 2: 02-to-be-plan.md (includes fix plan based on root cause)\n```\n\n## The Four Phases of Systematic Debugging\n\n```dot\ndigraph debugging_phases {\n    rankdir=TB;\n    \n    phase1 [label=\"Step 1:\\nRoot Cause Investigation\", shape=box, style=filled, fillcolor=\"#ffcccc\"];\n    phase2 [label=\"Step 2:\\nPattern Analysis\", shape=box, style=filled, fillcolor=\"#ffffcc\"];\n    phase3 [label=\"Step 3:\\nHypothesis & Testing\", shape=box, style=filled, fillcolor=\"#ccffcc\"];\n    phase4 [label=\"Step 4:\\nFix Implementation\", shape=box, style=filled, fillcolor=\"#ccccff\"];\n    \n    phase1 -> phase2 -> phase3 -> phase4;\n    \n    \u002F\u002F Feedback loops\n    phase3 -> phase1 [label=\"hypothesis\\nfailed\", style=dashed];\n    phase4 -> phase1 [label=\"fix\\nfailed\", style=dashed];\n}\n```\n\n### Step 1: Root Cause Investigation\n\n**BEFORE attempting ANY fix:**\n\n#### 1.1 Read Error Messages Carefully\n- Don't skip past errors or warnings\n- They often contain the exact solution\n- Read stack traces completely\n- Note line numbers, file paths, error codes\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Error Analysis\n\n**Error Message:** [verbatim]\n**Stack Trace:** [key frames]\n**File:Line:** [locations]\n**Error Code:** [if applicable]\n**Key Insight:** [what the error is telling you]\n```\n\n#### 1.2 Reproduce Consistently\n- Can you trigger it reliably?\n- What are the exact steps?\n- Does it happen every time?\n- If not reproducible -> gather more data, don't guess\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Reproduction Verification\n\n**Steps:**\n1. [exact step]\n2. [exact step]\n3. [exact step]\n\n**Reproducible:** Yes \u002F No \u002F Intermittent\n**Frequency:** [X out of Y attempts]\n**Deterministic:** Yes \u002F No\n```\n\n#### 1.3 Check Recent Changes\n- What changed that could cause this?\n- Git diff, recent commits\n- New dependencies, config changes\n- Environmental differences\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Recent Changes Analysis\n\n**Git History:** [relevant commits]\n**Dependency Changes:** [package.json, requirements.txt, etc.]\n**Config Changes:** [relevant files]\n**Environment:** [OS, runtime versions]\n**Likely Culprit:** [most suspicious change]\n```\n\n#### 1.4 Gather Evidence in Multi-Component Systems\n\n**WHEN system has multiple components (CI -> build -> signing, API -> service -> database):**\n\n**BEFORE proposing fixes, add diagnostic instrumentation:**\n\nFor EACH component boundary:\n- Log what data enters component\n- Log what data exits component\n- Verify environment\u002Fconfig propagation\n- Check state at each layer\n\nRun once to gather evidence showing WHERE it breaks, THEN analyze evidence.\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Multi-Layer Evidence\n\n**Layer 1: [Component Name]**\n- Input: [data]\n- Output: [data]\n- Status: ✅ Working \u002F ❌ Broken\n\n**Layer 2: [Component Name]**\n- Input: [data from Layer 1]\n- Output: [data]\n- Status: ✅ Working \u002F ❌ Broken\n\n**Failure Boundary:** Layer X -> Layer Y\n**Root Cause Location:** [specific component]\n```\n\n#### 1.5 Trace Data Flow\n\n**WHEN error is deep in call stack:**\n\nTrace backward:\n- Where does bad value originate?\n- What called this with bad value?\n- Keep tracing up until you find the source\n- Fix at source, not at symptom\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Data Flow Trace\n\n**Error Location:** [file:line - function]\n**Bad Value:** [what was wrong]\n\n**Call Stack Trace:**\n1. [deepest] `functionA()` at fileA:line - received [value]\n2. `functionB()` at fileB:line - passed [value]\n3. `functionC()` at fileC:line - passed [value]\n4. [source] `functionD()` at fileD:line - ORIGIN of bad value\n\n**Root Cause:** [source location] - [explanation]\n```\n\n### Step 2: Pattern Analysis\n\n**Find the pattern before fixing:**\n\n#### 2.1 Find Working Examples\n- Locate similar working code in same codebase\n- What works that's similar to what's broken?\n\n#### 2.2 Compare Against References\n- If implementing pattern, read reference implementation COMPLETELY\n- Don't skim - read every line\n- Understand the pattern fully before applying\n\n#### 2.3 Identify Differences\n- What's different between working and broken?\n- List every difference, however small\n- Don't assume \"that can't matter\"\n\n#### 2.4 Understand Dependencies\n- What other components does this need?\n- What settings, config, environment?\n- What assumptions does it make?\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Pattern Analysis\n\n**Working Example:** [file:location]\n**Broken Code:** [file:location]\n\n**Key Differences:**\n| Aspect | Working | Broken |\n|--------|---------|--------|\n| [X] | [value] | [value] |\n| [Y] | [value] | [value] |\n\n**Likely Cause:** [difference that explains the bug]\n**Dependencies:** [what the code needs to work]\n```\n\n### Step 3: Hypothesis and Testing\n\n**Scientific method:**\n\n#### 3.1 Form Single Hypothesis\n- State clearly: \"I think X is the root cause because Y\"\n- Write it down\n- Be specific, not vague\n\n#### 3.2 Test Minimally\n- Make the SMALLEST possible change to test hypothesis\n- One variable at a time\n- Don't fix multiple things at once\n\n#### 3.3 Verify Before Continuing\n- Did it work? Yes -> Phase 4\n- Didn't work? Form NEW hypothesis\n- DON'T add more fixes on top\n\n#### 3.4 When You Don't Know\n- Say \"I don't understand X\"\n- Don't pretend to know\n- Ask for help\n- Research more\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Hypothesis Testing\n\n### Hypothesis 1\n**Statement:** [clear hypothesis]\n**Rationale:** [why you think this]\n**Test:** [minimal change to verify]\n**Result:** [confirmed\u002Frejected]\n**Evidence:** [output\u002Fobservation]\n\n### Hypothesis 2 (if needed)\n[...]\n\n**Confirmed Root Cause:** [final hypothesis]\n```\n\n### Step 4: Fix Summary (Handoff to Phase 2 Planning)\n\n**Fix the root cause, not the symptom:**\n\n#### 4.1 Create Failing Test Case\n- Simplest possible reproduction\n- Automated test if possible\n- One-off test script if no framework\n- MUST have before fixing\n- **This becomes part of Phase 3's test plan**\n\n#### 4.2 Root Cause Summary for Phase 2\n- Summarize root cause found\n- Document the fix approach\n- Reference evidence from Phase 1.5\n\n**Record in Phase 1.5 artifact:**\n```markdown\n## Root Cause Summary\n\n**Root Cause:** [one sentence]\n**Location:** [file:line]\n**Explanation:** [paragraph explaining why]\n**Fix Approach:** [high-level]\n**Test Strategy:** [how to verify fix]\n\n## Phase 1.5 Gate\n\nCoverage: [Did we find root cause?]\nApproval: [Ready to proceed to Phase 3 with fix plan?]\n```\n\n## Red Flags - STOP and Follow Process\n\nIf you catch yourself thinking:\n- \"Quick fix for now, investigate later\"\n- \"Just try changing X and see if it works\"\n- \"Add multiple changes, run tests\"\n- \"Skip the test, I'll manually verify\"\n- \"It's probably X, let me fix that\"\n- \"I don't fully understand but this might work\"\n- Proposing solutions before tracing data flow\n- **\"One more fix attempt\" (when already tried 2+)**\n\n**ALL of these mean: STOP. Return to Phase 2.**\n\n## Common Process Shortcuts (STOP)\n\n| Excuse | Reality |\n|--------|---------|\n| \"Issue is simple, don't need process\" | Simple issues have root causes too. Process is fast for simple bugs. |\n| \"Emergency, no time for process\" | Systematic debugging is FASTER than guess-and-check thrashing. |\n| \"Just try this first, then investigate\" | First fix sets the pattern. Do it right from the start. |\n| \"I'll write test after confirming fix\" | Untested fixes don't stick. Test first proves it. |\n| \"Multiple fixes at once saves time\" | Can't isolate what worked. Causes new bugs. |\n| \"I see the problem, let me fix it\" | Seeing symptoms ≠ understanding root cause. |\n| \"One more fix attempt\" (after 2+ failures) | 3+ failures = architectural problem. Question pattern, don't fix again. |\n\n## If 3+ Fix Attempts Failed\n\n**Pattern indicating architectural problem:**\n- Each fix reveals new shared state\u002Fcoupling\u002Fproblem in different place\n- Fixes require \"massive refactoring\" to implement\n- Each fix creates new symptoms elsewhere\n\n**STOP and question fundamentals:**\n- Is this pattern fundamentally sound?\n- Are we \"sticking with it through sheer inertia\"?\n- Should we refactor architecture vs. continue fixing symptoms?\n\n**Document in Phase 1.5:**\n```markdown\n## Architectural Concern\n\n**Fix Attempts:** [number]\n**Pattern:** [what happens with each fix]\n**Recommendation:** [architectural change vs. symptom fix]\n**Next Steps:** [escalate, refactor, or accept risk]\n```\n\n## Phase 1.5 Artifact Template\n\n**File:** `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F01.5-root-cause.md`\n\n```markdown\nRun: `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F`\nPhase: `01.5 Root Cause Analysis`\nStatus: `DRAFT` | `LOCKED`\nInputs:\n- `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F01-as-is.md`\n- [relevant addenda]\nOutputs:\n- `\u002F.codex\u002Frlm\u002F\u003Crun-id>\u002F01.5-root-cause.md`\nScope note: This document records systematic debugging process and identified root cause.\n\n## Error Analysis\n\n[Section 2.1 - verbatim errors, stack traces]\n\n## Reproduction Verification\n\n[Section 2.2 - exact steps, reproducibility]\n\n## Recent Changes Analysis\n\n[Section 2.3 - git history, dependencies]\n\n## Evidence Gathering\n\n[Section 2.4 - multi-layer diagnostics if applicable]\n\n## Data Flow Trace\n\n[Section 2.5 - backward trace to source]\n\n## Pattern Analysis\n\n[Section 3 - working vs broken comparison]\n\n## Hypothesis Testing\n\n[Section 4 - scientific method log]\n\n## Root Cause Summary\n\n**Root Cause:** [one sentence]\n**Location:** [file:line]\n**Detailed Explanation:** [paragraph]\n**Fix Strategy:** [approach for Phase 3]\n**Test Plan:** [how to verify]\n\n## Traceability\n\n- R1 (Bug fix requirement) -> Root cause identified at [location] | Evidence: [section]\n\n## Coverage Gate\n\n- [ ] Error messages analyzed\n- [ ] Reproduction verified\n- [ ] Recent changes reviewed\n- [ ] Data flow traced to source\n- [ ] Pattern analysis completed\n- [ ] Hypothesis tested and confirmed\n- [ ] Root cause documented\n- [ ] Fix strategy defined\n\nCoverage: PASS \u002F FAIL\n\n## Approval Gate\n\n- [ ] Root cause identified (not just symptom)\n- [ ] Fix approach clear\n- [ ] Test strategy defined\n- [ ] No \"quick fixes\" attempted\n- [ ] Ready to proceed to Phase 3\n\nApproval: PASS \u002F FAIL\n\nLockedAt: [when locked]\nLockHash: [sha256]\n```\n\n## Integration with RLM\n\n### Phase 1 -> 1.5 Transition\n\nWhen Phase 1 (AS-IS) identifies a bug\u002Fissue that needs fixing:\n\n1. Lock Phase 1 (`01-as-is.md`)\n2. Create Phase 1.5 (`01.5-root-cause.md`) with Status: DRAFT\n3. Execute systematic debugging\n4. Lock Phase 1.5 when root cause found\n5. Proceed to Phase 3 with root cause knowledge\n\n### Phase 1.5 -> 3 Transition\n\nPhase 3 (`02-to-be-plan.md`) builds ON Phase 1.5:\n\n```markdown\n## Root Cause Reference\n\nRoot cause identified in `01.5-root-cause.md`:\n- Location: [file:line]\n- Cause: [summary]\n- Full analysis: [reference]\n\n## Fix Plan\n\nBased on root cause analysis:\n1. [specific fix steps]\n2. [test strategy from Phase 1.5]\n```\n\n## References\n\n- **REQUIRED:** Use this skill for all bug-fix requirements\n- **TRIGGERS:** When requirement involves debugging\u002Ffixing\n- **OUTPUT:** `01.5-root-cause.md` artifact\n- **NEXT:** Phase 3 (TO-BE Plan) incorporates findings\n\n\n",{"name":5,"description":7},"main","be1d5a0a3cc6cb822d2451790132cda53e497525",".agents-global\u002Fskills\u002Frlm-workflow\u002Fskills\u002Frlm-debugging",3,"https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles","https:\u002F\u002Fgithub.com\u002Fspideynolove","https:\u002F\u002Fspideynolove.github.io","Data Engineer","2026-05-28 09:03:32",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add spideynolove\u002Fclaude-dotfiles --skill rlm-debugging",{"tool":59,"command":60},"bunx","bunx skills add spideynolove\u002Fclaude-dotfiles --skill rlm-debugging",{"tool":62,"command":63},"pnpm","pnpm dlx skills add spideynolove\u002Fclaude-dotfiles --skill rlm-debugging","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.agents-global\u002Fskills\u002Frlm-workflow\u002Fskills\u002Frlm-debugging\u002FSKILL.md",true,[],[68,86,101,118,134,149],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":39},"01M6DQ1GDQVE5XE06RAQ408JGJ","xia","Borrow and adapt patterns from GitHub projects into the current codebase using a structured 6-phase protocol. Invoke with \u002Fxia \u003Cgithub-repo> [focus].","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.opencode-global\u002Fskills\u002Fxia\u002FSKILL.md",[],[70,75,76,77,78,79,80,81,82,83,84,85],"github","code","protocol","projects","repo","github projects","patterns","claude-code","focus","adapt","structured",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":39},"01M6DQ1EDYQW512EN2RFFBF4NX","x2md","Convert an X (Twitter) post URL to markdown. Use when user wants to read, summarize, archive, or analyze a tweet or X post.","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.opencode-global\u002Fskills\u002Fx2md\u002FSKILL.md",[],[88,82,93,76,94,95,96,97,98,99,100,33],"summarize","markdown","archive","convert","analyze","twitter","read","user",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":39},"01M6DQ1BNAMJ6QGCBA17NJHZX4","sequential-thinking","Structure cognitive analysis using sequential reasoning chains. Use for codebase analysis, pattern extraction, complex problem decomposition, and building mental models before implementation.","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.opencode-global\u002Fskills\u002Fsequential-thinking\u002FSKILL.md",[],[108,109,110,111,112,82,76,113,114,30,33,115,116,117],"sequential thinking","thinking","pattern","decomposition","problem","reasoning","extraction","implementation","models","structure",{"skillNo":119,"name":120,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":131,"publishedAt":39},"01M6DQ17SBGVC6PQPZZTSZ49YV","rlm-workflow","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.opencode-global\u002Fskills\u002Frlm-workflow\u002FSKILL.md",[123,126],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[132,25,133],"rlm workflow","workflow",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":141,"publishedAt":39},"01M6DQ14RM3H655QWFXREBGC7W","repomix","Pack local or remote repos into a single context blob for whole-repository understanding. Use before tasks spanning multiple directories, architecture reviews, or onboarding to an unfamiliar codebase.","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.opencode-global\u002Fskills\u002Frepomix\u002FSKILL.md",[140],{"categoryNo":124,"categoryName":125,"taxonomyType":21,"taxonomyTypeDesc":22},[136,142,143,144,145,76,146,147,148,33,82],"local","architecture","repos","tasks","onboarding","repository","context",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":39},"01M6DQ12RFVYCT1YF836D5GQBA","reddit2md","Convert a Reddit post URL to markdown. Use when user wants to read, summarize, archive, or analyze a Reddit post.","https:\u002F\u002Fgithub.com\u002Fspideynolove\u002Fclaude-dotfiles\u002Fblob\u002Fmain\u002F.opencode-global\u002Fskills\u002Freddit2md\u002FSKILL.md",[],[151,94,76,156,82,33,100,157,99,97,96,93,95],"reddit post","reddit"]