debug — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited debug (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.
NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRSTIf you haven't completed Phase 1, you cannot propose fixes.
Violating the letter of this process is violating the spirit of debugging.
You MUST complete each phase before proceeding to the next.
BEFORE attempting ANY fix:
For EACH component boundary:
Run once to gather evidence showing WHERE it breaks, THEN analyze.
/tdd skill. MUST have before fixing.When you fix a bug, validate at EVERY layer data passes through:
Single validation: "We fixed the bug." Multiple layers: "We made the bug impossible."
// ❌ Guessing at timing
await new Promise(r => setTimeout(r, 50));
// ✅ Waiting for actual condition
await waitFor(() => getResult() !== undefined);Wait for the actual condition, not a guess about how long it takes.
Generic polling function:
async function waitFor<T>(
condition: () => T | undefined | null | false,
description: string,
timeoutMs = 5000
): Promise<T> {
const startTime = Date.now();
while (true) {
const result = condition();
if (result) return result;
if (Date.now() - startTime > timeoutMs) {
throw new Error(`Timeout waiting for ${description} after ${timeoutMs}ms`);
}
await new Promise(r => setTimeout(r, 10));
}
}When a bug manifests deep in the call stack:
NEVER fix just where the error appears. Trace back to the original trigger.
If you can't trace manually, add instrumentation:
const stack = new Error().stack;
console.error('DEBUG operation:', { directory, cwd: process.cwd(), stack });Use console.error() in tests (not logger — may be suppressed).
| Excuse | Reality |
|---|---|
| "Issue is simple" | Simple issues have root causes too. |
| "Emergency, no time" | Systematic is FASTER than thrashing. |
| "Just try this first" | First fix sets the pattern. Do it right. |
| "I see the problem" | Seeing symptoms ≠ understanding root cause. |
| "One more fix" (after 2+) | 3+ failures = architectural problem. |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.