Help us improve
Share bugs, ideas, or general feedback.
From frontend-skills
Guides disciplined diagnosis of hard bugs and performance regressions: reproduce, minimise, hypothesise, instrument, fix, regression-test. Activated on debug/diagnose requests.
npx claudepluginhub redpanda-data/ui-harness --plugin frontend-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/frontend-skills:diagnoseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Discipline for hard bugs. Skip phase only if justify.
Structured diagnosis protocol for hard bugs and performance regressions: build a deterministic feedback loop, then bisect/hypothesise/fix. Activate when debugging, triaging failures, or investigating regressions.
Implements disciplined diagnosis loop for hard bugs and performance regressions: reproduce → minimise → hypothesise → instrument → fix → regression-test. Use for bug reports, failures, or 'diagnose this'.
Provides a structured debugging loop for hard bugs and performance regressions: reproduce, minimize, hypothesize, instrument, fix, regression-test.
Share bugs, ideas, or general feedback.
Discipline for hard bugs. Skip phase only if justify.
When explore codebase, use project domain glossary for mental model of relevant modules, check ADRs in area you touch.
This the skill. Rest mechanical. Fast, deterministic, agent-runnable pass/fail signal for bug -> find cause; bisection, hypothesis-test, instrument just eat that signal. No loop -> no staring at code save you. Spend big effort here. Be aggressive. Be creative. No give up.
git bisect run work.scripts/hitl-loop.template.sh so loop still structured. Captured output feed back to you.Build right feedback loop, bug 90% fixed.
Treat loop as product. Once have a loop, ask: faster? (cache setup, narrow test scope.) Sharper signal? (assert specific symptom, not "didn't crash".) More deterministic? (pin time, seed RNG, isolate filesystem, freeze network.)
30-second flaky loop barely better than no loop. 2-second deterministic loop = debug superpower.
Goal not clean repro but higher repro rate. Loop trigger 100x, parallel, add stress, narrow timing window, inject sleep. 50%-flake bug debuggable; 1% not -- raise rate till is.
Stop. Say so. List what tried. Ask user for: (a) access to env that repro, (b) captured artifact (HAR, log dump, core dump, screen record with timestamps), or (c) permission for temporary production instrument. Do not hypothesise without loop.
No proceed to Phase 2 till have loop you believe.
Run loop. Watch bug appear.
Confirm:
No proceed till repro bug.
Generate 3-5 ranked hypotheses before test any. Single-hypothesis anchor on first plausible idea.
Each hypothesis must be falsifiable: state prediction.
Format: "If is the cause, then will make the bug disappear / will make it worse."
If cannot state prediction, hypothesis = vibe -- discard or sharpen.
Show ranked list to user before test. They often have domain knowledge that re-rank instant ("we just deployed change to #3"), or know hypotheses already ruled out. Cheap checkpoint, big time save. No block on it -- proceed with your ranking if user AFK.
Each probe must map to specific prediction from Phase 3. Change one variable at a time.
Tool preference:
Tag every debug log with unique prefix, e.g. [DEBUG-a4f2]. Cleanup at end = single grep. Untagged logs survive; tagged logs die.
Perf branch. For perf regression, logs usually wrong. Instead: establish baseline measurement (timing harness, performance.now(), profiler, query plan), then bisect. Measure first, fix second.
Write regression test before fix -- but only if correct seam for it.
Correct seam = one where test exercise real bug pattern as occur at call site. If only seam too shallow (single-caller test when bug need multiple callers, unit test that can't replicate chain that triggered bug), regression test there give false confidence.
If no correct seam exist, that itself the finding. Note it. Codebase architecture preventing bug from lockdown. Flag for next phase.
If correct seam exist:
Required before declare done:
[DEBUG-...] instrumentation removed (grep the prefix)Then ask: what would prevent this bug? If answer involve architecture change (no good test seam, tangled callers, hidden coupling) hand off to /improve-codebase-architecture with specifics. Make recommendation after fix in, not before -- have more info now than at start.