Diagnose and resolve errors, exceptions, and stack traces with intelligent analysis
Install
npx skillscat add darellchua2/civiltekk-skills/error-resolver-workflow-skill Install via the SkillsCat registry.
What I do
I diagnose and help resolve errors, exceptions, and stack traces:
- Analyze error messages from various sources (runtime, compilation, tests)
- Parse stack traces to identify root causes
- Provide actionable solutions and fixes
- Handle error screenshots via MCP integration
When to use me
IMPORTANT: This skill is ONLY triggered by EXPLICIT user invocation. I am NOT automatically triggered for general error handling.
Use when user explicitly requests:
- "use error resolver" / "error resolver" / "resolve this error"
- "fix this error" / "fix error" (when explicitly invoking the resolver)
- "diagnose this error" / "diagnose error"
- "analyze this exception" / "analyze error"
Do NOT auto-trigger for:
- General debugging without explicit request
- Automatic error detection during development
- Implicit error handling in other workflows
Steps
Step 1: Identify Error Source
Error Types:
| Type | Indicators | Common Sources |
|---|---|---|
| Runtime | Exception, Error, crash | Application logs, terminal |
| Compilation | SyntaxError, TypeError | Build output, IDE |
| Test | AssertionError, pytest failures | Test runner output |
| Infrastructure | Connection refused, timeout | Server logs, cloud console |
| Screenshot | Visual error display | User-provided image |
Step 2: Parse Error Information
Extract Key Data:
- Error type/class (e.g.,
TypeError,NullPointerException) - Error message (the descriptive text)
- Stack trace (file paths, line numbers, function calls)
- Context (what operation triggered it)
- Environment (OS, runtime version, dependencies)
Step 3: Analyze Root Cause
Analysis Patterns:
Runtime Errors:
TypeError: X is not a function→ Check if variable is correct typeReferenceError: X is not defined→ Check variable scope/declarationNullPointerException→ Check for null/undefined valuesIndexError/IndexOutOfBounds→ Check array bounds
Compilation Errors:
- Syntax errors → Fix syntax at indicated line
- Type mismatches → Check type annotations
- Missing imports → Add required imports
Test Failures:
- Assertion failures → Check expected vs actual values
- Fixture errors → Check test setup/teardown
- Mock issues → Verify mock configuration
Step 4: Provide Solution
Solution Structure:
- Summary: One-line description of the issue
- Root Cause: Why the error occurs
- Fix: Step-by-step solution with code examples
- Prevention: How to avoid this error in the future
- Related Issues: Common related problems
Step 5: Verify Fix
Verification Steps:
- Apply suggested fix
- Reproduce the original scenario
- Confirm error is resolved
- Run related tests if applicable
Image Input Routing (error screenshots)
No vision MCP server is shipped — never assume vision MCP tools exist. Route screenshot input by availability, in order:
- Primary — delegate to
error-resolver-subagent(Task tool): it runs on thezai-coding-plan/glm-5.3-flashvision tier (native multimodal) and sees screenshots directly. This covers both diagnosis and error-text/stack-trace extraction. Delegation binding (§Portability contract): OpenCode and Claude Code both spawn via the Task tool; Other/none (no subagent tool) — run the subagent's diagnosis checklist inline with the same steps and outputs. - Fallback — direct Z.AI vision API call via bash: use the inline recipe embedded in
image-analyzer-subagent(glm-5.3-flash— the same multimodal model the vision tier runs on, called directly over HTTP), for text-only sessions or when the vision provider is not connected.
Error Categories
JavaScript/TypeScript
TypeError: Cannot read property 'X' of undefined
→ Check object exists before accessing property
SyntaxError: Unexpected token
→ Check for missing brackets, parentheses, commas
ReferenceError: X is not defined
→ Import or declare the variablePython
TypeError: 'NoneType' object is not subscriptable
→ Check for None before indexing
ModuleNotFoundError: No module named 'X'
→ Install missing package or fix import path
IndentationError: expected an indented block
→ Fix indentation (use consistent spaces/tabs)Infrastructure
ECONNREFUSED
→ Check if service is running, verify port/host
ETIMEDOUT
→ Check network connectivity, firewall rules
ENOENT: no such file or directory
→ Verify file path exists, check permissionsBest Practices
- Always provide complete error messages
- Include relevant code context around the error
- Mention recent changes that might have caused the error
- Provide environment details (OS, versions, etc.)
- For screenshots, ensure error text is readable
Delegation
When resolution requires:
- Code changes: Delegate to parent agent for implementation
- File operations: Delegate to parent agent (no write access)
- System commands: Delegate to parent agent (no bash access)
Iteration Protocol (opt-in)
DO NOT execute any of the following unless AUTORESEARCH_PROTOCOL=1 is set in your environment. When unset, this skill behaves exactly as documented in all sections above; the Iteration Protocol block is descriptive only.
When AUTORESEARCH_PROTOCOL=1:
Auto-detection
If invoked on an iterative task, prompt ONCE per session: "This looks iterative. Enable autoresearch protocol? (y/n)". Cache answer for session.
Skill-specific patterns
Falsifiable-hypothesis protocol (port from uditgoenka's /autoresearch:debug): each debugging iteration MUST state a falsifiable hypothesis, predict the observable outcome, run the experiment, then emit {"pass":bool,"score":N} where pass = hypothesis confirmed, score = confidence (0-100) based on reproducibility. Revert experimental changes on pass:false. See evaluator-contract.md.
Citations
autoresearch-core-skill/references/evaluator-contract.md
Imperative gating
When AUTORESEARCH_PROTOCOL is unset, this section is descriptive only. Default behavior is documented in all sections above.