Install
openclaw skills install @ivanovandreidimitrov-ctrl/deep-diagnostic-procedure-publicSystematic 6-layer diagnostic framework for OpenClaw issues: policy, config, runtime, logs, network, code.
openclaw skills install @ivanovandreidimitrov-ctrl/deep-diagnostic-procedure-publictools.profile remove? Check with openclaw config get tools.profiledmScope, allowFrom, groupPolicyKey question: "Does the agent actually HAVE ACCESS to the tool/channel it needs?"
💡 Real-world lesson: Weeks spent debugging outbound message delivery. Root cause?
tools.profilesilently removed themessagetool from the agent's session. The agent literally couldn't send — nothing to do with the external library, DNS, or connection.
openclaw.json? Verify with openclaw config get <path>+)Key question: "Is it configured the way it should be, not the way I assume it is?"
openclaw gateway statusopenclaw channels status --probeKey question: "Is everything actually running and connected RIGHT NOW?"
openclaw logs --follow while reproducing the issueKey question: "What is the system TELLING US is wrong?"
Key question: "Is the problem OUTSIDE of OpenClaw?"
Key question: "Where exactly in the code does the flow stop?"
1. Write down the precise symptom: "When I do X, Y happens instead of Z"
2. Layers 1-3: Quick verification (target: 10 minutes total)
3. Layer 4: Enable logs, reproduce the problem, capture errors
4. Form primary hypothesis → verify with evidence
5. If hypothesis doesn't confirm → move to next layer
6. Layers 5-6 only if 1-4 reveal nothing
7. Document: CAUSE → EVIDENCE → SOLUTION
## Diagnostic: [Issue title]
**Symptom:** [Precise description]
**Initial hypothesis:** [What I thought first]
**Actual cause:** [What I found]
**Evidence:** [Log/config/code that confirms]
**Layers investigated:** [Which layers, in what order]
**Solution:** [What fixed it]
**Time wasted on wrong hypotheses:** [Estimate]
**Lesson:** [What to remember for next time]
tools.profile setting silently removed the message tool from the agent sessiontool policy removed N tool(s) via tools.profile: ...message...tools.profile to include the message tool