bug-killer-e444af — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited bug-killer-e444af (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Execute a systematic debugging workflow that enforces investigation before fixes. Every bug gets a hypothesis journal, evidence gathering, and root cause confirmation before any code changes.
Goal: Understand the bug, reproduce it, and decide the investigation track.
Extract from $ARGUMENTS and conversation context:
--deep is present, skip triage and go directly to deep track (jump to Phase 2 deep track)Attempt to reproduce before investigating:
# Run the specific test to confirm the failure
<test-runner> <test-file>::<test-name>Capture the exact error output — this is your primary evidence.
If the bug cannot be reproduced:
Based on the error message and context, form your first hypothesis:
### H1: [Title]
- Hypothesis: [What you think is causing the bug]
- Evidence for: [What supports this — error message, stack trace, etc.]
- Evidence against: [Anything that contradicts it — if none yet, say "None yet"]
- Test plan: [Specific steps to confirm or reject]
- Status: PendingQuick-fix signals (ALL must be true):
Deep-track signals (ANY one triggers deep track):
Present your assessment: Prompt the user:
Track escalation rule: If during quick track execution, 2 hypotheses are rejected, automatically escalate to deep track. Preserve all hypothesis journal entries when escalating.
Goal: Gather evidence systematically, guided by language-specific techniques.
Detect the primary language of the bug's context and load the appropriate reference:
| Language | Reference |
|---|---|
| Python | Read the python-debugging reference from references/python-debugging.md |
| TypeScript / JavaScript | Read the typescript-debugging reference from references/typescript-debugging.md |
| Other / Multiple | Use the general debugging guidance below |
Always also apply the general debugging guidance as a supplement when using a language-specific reference.
For quick-track bugs, investigate directly:
git log --oneline -5 -- <file> for the affected filesProceed to Phase 3 (quick track).
For deep-track bugs, use parallel exploration workers:
Delegate to 2-3 read-only exploration workers with distinct focus areas:
Each worker receives:
Bug context: [description of the bug and error]
Focus area: [specific area for this worker]
Investigate this focus area in relation to the bug:
- Find all relevant files
- Trace the execution/data path
- Identify where behavior diverges from expected
- Note any suspicious patterns, recent changes, or known issues
- Report structured findingsLaunch workers in parallel for independent focus areas.
Proceed to Phase 3 (deep track).
Goal: Confirm the root cause through systematic hypothesis testing.
For quick-track bugs:
For deep-track bugs:
Delegate to 1-3 investigation workers to test hypotheses in parallel:
Each worker receives:
Bug context: [description of the bug and error]
Hypothesis to test: [specific hypothesis]
Test plan:
1. [Step 1 — e.g., run this specific test with these arguments]
2. [Step 2 — e.g., check git blame for this function]
3. [Step 3 — e.g., trace the data from input to error site]
Report your findings with verdict (confirmed/rejected/inconclusive),
evidence, and recommendations.Launch workers in parallel when they test independent hypotheses.
Take the strongest "inconclusive" finding and ask "why?" iteratively:
Observed: [what actually happens]
Why? -> [first-level cause]
Why? -> [second-level cause]
Why? -> [root cause]Prompt the user:
Goal: Fix the root cause and prove the fix works.
Before writing any code:
<test-runner> <test-file>::<test-name> <test-runner> <test-directory>Write a test that would have caught this bug:
Deep track only — skip on quick track.
Refer to the code-quality skill for code quality principles. Review the fix against code quality principles.
Goal: Document the investigation trail and capture learnings.
Present to the user:
## Bug Fix Summary
### Bug
[One-line description of the bug]
### Root Cause
[What was actually wrong and why]
### Fix Applied
[What was changed, with file:line references]
### Tests
- [Originally failing test]: Now passing
- [Regression test added]: [test name and location]
- [Related tests]: All passing
### Track
[Quick / Deep] [Escalated from quick: Yes/No]Present the complete hypothesis journal showing the investigation trail:
### Investigation Trail
#### H1: [Title]
- Status: Confirmed / Rejected
- [Key evidence summary]
#### H2: [Title] (if applicable)
- Status: Confirmed / Rejected
- [Key evidence summary]
[... additional hypotheses ...]Refer to the project-learnings skill to evaluate whether this bug reveals project-specific knowledge worth capturing.
Follow its workflow to evaluate the finding. Common debugging discoveries that qualify:
Deep track only:
If the investigation revealed broader concerns, present recommendations:
Prompt the user:
The hypothesis journal is the core artifact of this workflow. Maintain it throughout all phases.
## Hypothesis Journal — [Bug Title]
### H1: [Descriptive Title]
- **Hypothesis:** [What is causing the bug — be specific]
- **Evidence for:** [Supporting observations with file:line references]
- **Evidence against:** [Contradicting observations]
- **Test plan:** [Concrete steps to confirm or reject]
- **Status:** Pending / Confirmed / Rejected
- **Notes:** [Additional context, timestamps, worker findings]
### H2: [Descriptive Title]
[Same format]| Aspect | Quick Track | Deep Track |
|---|---|---|
| Investigation | Read error location + 1-2 callers | 2-3 exploration workers in parallel |
| Hypotheses | Minimum 1 | Minimum 2-3 |
| Root cause testing | Manual verification | 1-3 investigation workers in parallel |
| Fix validation | Run failing + related tests | Tests + code-quality skill + related issue scan |
| Auto-escalation | After 2 rejected hypotheses | N/A |
| Typical complexity | Off-by-one, typo, wrong argument, missing null check | Race condition, state corruption, multi-file logic error |
These are read-only workers that explore codebase areas. Give each a distinct focus area related to the bug. They report structured findings.
These are workers with shell access for running tests and git commands, but no write access — they investigate and report evidence, they do not fix code. Give each a specific hypothesis to test.
If any phase fails:
Language-agnostic debugging strategies, systematic investigation methods, and common bug categories.
#### Binary Search for Bugs
Narrow the problem space by half at each step:
Works for: data transformation pipelines, middleware chains, multi-step processes.
#### Git Bisect
Automate binary search through commit history:
git bisect start
git bisect bad # current commit is broken
git bisect good <known-good-sha> # this commit was working
# Automated: let a test command drive the search
git bisect run <test-command> # returns 0 = good, non-0 = bad
git bisect reset # when doneBest for: regressions where you know "it used to work."
#### Delta Debugging
Minimize the input that triggers the bug:
Works for: large inputs, complex configurations, test case reduction.
#### Rubber Duck Debugging
Explain the problem out loud (or in writing), step by step:
#### 5 Whys
Drill past symptoms to root causes:
Bug: Users see a 500 error on checkout
Why? -> The payment API call throws a timeout
Why? -> The request takes >30 seconds
Why? -> The order total calculation is O(n^2)
Why? -> It recalculates item prices for each item pair
Why? -> The discount logic compares every item against every other item
Root cause: Quadratic discount calculation algorithmStop when the answer is something you can directly fix.
#### Universal Patterns
| Element | What It Tells You |
|---|---|
| Error type/name | Category of failure (null access, type mismatch, etc.) |
| Error message | Specific details about what went wrong |
| File path + line number | Where the error was thrown |
| Function/method name | What was executing when it failed |
| Frame ordering | The call chain that led to the error |
#### What Stack Traces Cannot Tell You
#### Investigation Strategy
#### Off-by-One Errors
Symptoms: Missing first/last element, array index out of bounds, fencepost errors.
Check for:
< vs <= in loop conditions#### Null/Undefined/None Errors
Symptoms: Null reference exceptions, "undefined is not a function," AttributeError.
Check for:
#### Race Conditions
Symptoms: Intermittent failures, works in debugger but fails normally, order-dependent results.
Check for:
#### Resource Leaks
Symptoms: Slow degradation, eventual crashes, "too many open files," memory growth.
Check for:
close() / with / using)#### State Corruption
Symptoms: Inconsistent data, works sometimes but not always, cascade of errors after a specific action.
Check for:
#### Targeted Logging
Log at decision points and data boundaries:
[ENTRY] function_name called with: key_arg=value
[BRANCH] taking path X because condition=value
[DATA] received from external: summary_of_data
[EXIT] function_name returning: summary_of_result#### Logging Anti-Patterns
| Anti-Pattern | Problem | Better Approach |
|---|---|---|
| Logging everything | Noise hides signal | Log at boundaries and decision points |
| Logging sensitive data | Security risk | Redact or hash sensitive fields |
| Logging inside tight loops | Performance impact, massive output | Log summary after loop, or sample every Nth iteration |
| Logging without context | "Error occurred" is useless | Include function name, key parameters, state |
| Leaving debug logs in code | Clutters production output | Use conditional debug level, remove before commit |
#### Effective Diagnostic Pattern
Before proposing a fix, verify you can answer:
#### Understanding the Bug
#### Root Cause Identification
#### Fix Validation
#### Broader Impact
This skill requires the following capabilities from the host environment:
references/ directory. For other languages, use the general debugging guidance inlined above.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.