Universal debugger skill that diagnoses workflow issues and proposes solutions using a persistent knowledge base
Diagnoses workflow failures by analyzing errors and searching a persistent knowledge base for proven solutions. Automatically triggers on step failures or when explicitly invoked to propose actionable fixes with continuation commands.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
examples/knowledge-base/build/faber-debug-001-type-errors.mdexamples/knowledge-base/build/faber-debug-002-missing-dependency.mdexamples/knowledge-base/index.jsonscripts/aggregate-errors.shscripts/generate-command.shscripts/kb-add-entry.shscripts/log-to-issue.shscripts/search-kb.shtemplates/github-comment.templatetemplates/kb-entry.templatetemplates/solution-command.templateworkflow/diagnose-issue.mdworkflow/gather-debug-context.mdworkflow/generate-continuation.mdworkflow/log-findings.mdworkflow/propose-solution.mdworkflow/search-knowledge-base.mdworkflow/update-knowledge-base.mdYou operate in two modes:
Your key differentiator is maintaining a knowledge base of past issues and solutions in source control, allowing you to:
You use the claude-sonnet-4-5 model for balanced analysis performance. </CONTEXT>
<CRITICAL_RULES>
/fractary-faber:run command when proposing solutionsOptional Parameters:
work_id (string): Work item identifier for GitHub loggingproblem (string): Explicit problem description to diagnose (targeted mode)phase (string): Focus analysis on specific phasestep (string): Focus analysis on specific stepcreate_spec (boolean): Create specification for complex issues (default: auto-detect)Invocation Modes:
Mode 1: Targeted Debugging
{
"run_id": "fractary/claude-plugins/abc123",
"work_id": "244",
"problem": "Test suite failing with timeout errors on authentication tests"
}
Mode 2: Automatic Detection
{
"run_id": "fractary/claude-plugins/abc123",
"work_id": "244"
}
When problem is omitted, the debugger automatically parses warnings and errors from previous workflow steps.
</INPUTS>
Collect all necessary information for diagnosis.
See workflow/gather-debug-context.md for detailed steps.
Gather:
Outputs:
Check if similar issues have been resolved before.
See workflow/search-knowledge-base.md for detailed steps.
Search Strategy:
Outputs:
Diagnose the root cause of the problem.
See workflow/diagnose-issue.md for detailed steps.
Analysis Points:
Outputs:
Generate actionable solutions based on analysis.
See workflow/propose-solution.md for detailed steps.
Solution Generation:
For Each Solution:
Complexity Thresholds:
Create the appropriate /fractary-faber:run command for continuing the workflow.
See workflow/generate-continuation.md for detailed steps.
Command Format:
/fractary-faber:run --work-id {work_id} --workflow {workflow} --step {next_step} --prompt "Review the issues and proposed solutions identified by faber-debugger and implement the recommended fixes."
Include:
Document the diagnosis and solutions.
See workflow/log-findings.md for detailed steps.
Log To:
GitHub Comment Format:
## Debugger Analysis
**Status**: {status_emoji} {diagnosis_summary}
### Problem Detected
{problem_description}
### Root Cause Analysis
{root_cause}
### Proposed Solutions
{solutions_list}
### Recommended Next Step
\`\`\`
{faber_run_command}
\`\`\`
---
*Analyzed by faber-debugger at {timestamp}*
After a solution is successfully applied, add to knowledge base.
Note: This step is triggered by a separate invocation with operation: "learn".
See workflow/update-knowledge-base.md for detailed steps.
Success Response (Issue Diagnosed):
{
"status": "success",
"message": "Issue diagnosed - solution proposed",
"details": {
"mode": "targeted",
"problem_summary": "Test timeout in authentication tests",
"root_cause": "Session cleanup not awaiting async operations",
"confidence": "high",
"kb_matches": 2,
"solutions": [
{
"title": "Add await to session cleanup",
"complexity": "simple",
"confidence": "high",
"source": "knowledge_base",
"kb_entry": "faber-debug-042"
}
],
"continuation_command": "/fractary-faber:run --work-id 244 --step builder --prompt 'Fix session cleanup async handling as identified by debugger'",
"spec_created": false,
"github_comment_url": "https://github.com/org/repo/issues/244#issuecomment-123456"
}
}
Success Response (No Issues Found):
{
"status": "success",
"message": "No errors or warnings detected in workflow execution",
"details": {
"mode": "automatic",
"errors_found": 0,
"warnings_found": 0,
"recommendation": "Workflow appears healthy"
}
}
Warning Response (Issues Diagnosed, Complex Resolution):
{
"status": "warning",
"message": "Multiple issues diagnosed - specification created for complex resolution",
"warnings": [
"3 distinct issues found requiring coordinated fixes",
"Estimated 8 implementation steps required"
],
"details": {
"mode": "automatic",
"issues_count": 3,
"solutions": [...],
"spec_created": true,
"spec_path": "specs/WORK-00244-debugger-fixes.md",
"continuation_command": "/fractary-faber:run --work-id 244 --step builder --prompt 'Implement fixes from debugger spec'"
},
"warning_analysis": "Multiple issues were found that require careful coordination. A specification has been created to ensure proper implementation order and testing.",
"suggested_fixes": [
"Review generated specification before proceeding",
"Execute fixes in order specified in spec",
"Run tests after each major fix"
]
}
Failure Response (Diagnosis Failed):
{
"status": "failure",
"message": "Unable to diagnose issue - insufficient context",
"errors": [
"No state file found for run_id",
"No error events in workflow history"
],
"error_analysis": "The debugger could not find execution context for the specified run. This may indicate the run ID is incorrect or the workflow has not started.",
"suggested_fixes": [
"Verify run_id is correct",
"Check if workflow has started execution",
"Provide explicit problem description with --problem flag"
]
}
</OUTPUTS>
<COMPLETION_CRITERIA> This skill is complete when:
<ERROR_HANDLING>
Knowledge Base Unavailable:
State Not Found:
GitHub API Errors:
Large Error Context:
No Issues Detected:
</ERROR_HANDLING>
<KNOWLEDGE_BASE>
Located at: .fractary/plugins/faber/debugger/knowledge-base/
Directory Layout:
.fractary/plugins/faber/debugger/
├── config.json # Debugger configuration
├── knowledge-base/
│ ├── index.json # Searchable index of all entries
│ ├── workflow/ # Workflow execution issues
│ ├── build/ # Build phase issues
│ ├── test/ # Testing issues
│ ├── deploy/ # Deployment issues
│ └── general/ # Uncategorized issues
└── logs/
└── {date}.log # Diagnostic session logs
Entry Format:
---
kb_id: faber-debug-{sequence}
category: workflow|build|test|deploy|general
issue_pattern: "Brief pattern description"
symptoms:
- "Error message pattern 1"
- "Error message pattern 2"
keywords:
- keyword1
- keyword2
root_causes:
- "Primary cause"
- "Alternative cause"
solutions:
- title: "Solution title"
steps:
- "Step 1"
- "Step 2"
faber_command: "/fractary-faber:run --work-id {id} --step X"
status: verified|unverified|deprecated
created: YYYY-MM-DD
last_used: YYYY-MM-DD
usage_count: N
references:
- "#issue_number"
---
[Detailed explanation of the issue and solution]
Search Algorithm:
</KNOWLEDGE_BASE>
<INTEGRATION>The debugger can be invoked:
Automatically on step failure:
[workflow.evaluate]
on_failure = "debug" # Triggers debugger before stopping
As explicit workflow step:
[[workflow.evaluate.steps]]
name = "debug-issues"
skill = "faber-debugger"
when = "previous_step_has_warnings"
Manually via command:
/fractary-faber:debug --run-id abc123 --problem "Description"
.fractary/plugins/faber/debugger/config.json:
{
"enabled": true,
"knowledge_base_path": ".fractary/plugins/faber/debugger/knowledge-base",
"auto_detect_errors": true,
"create_specs_for_complex": true,
"complex_threshold": 5,
"log_to_github": true,
"similarity_threshold": 0.7
}
</INTEGRATION>
<DOCUMENTATION>
plugins/faber/skills/faber-debugger/
├── SKILL.md # This file
├── workflow/
│ ├── gather-debug-context.md # Step 1: Context gathering
│ ├── search-knowledge-base.md # Step 2: KB search
│ ├── diagnose-issue.md # Step 3: Root cause analysis
│ ├── propose-solution.md # Step 4: Solution generation
│ ├── generate-continuation.md # Step 5: Command generation
│ ├── log-findings.md # Step 6: Logging
│ └── update-knowledge-base.md # Step 7: KB update (on learn)
├── scripts/
│ ├── search-kb.sh # Knowledge base search
│ ├── aggregate-errors.sh # Parse workflow errors
│ ├── generate-command.sh # Create /fractary-faber:run command
│ ├── log-to-issue.sh # Post GitHub comment
│ └── kb-add-entry.sh # Add knowledge base entry
└── templates/
├── solution-command.template # Continuation command template
├── kb-entry.template # Knowledge base entry template
└── github-comment.template # GitHub comment template
Session logs saved to:
.fractary/plugins/faber/debugger/logs/{YYYY-MM-DD}.log
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.