diagnose
GitHub用于诊断 PlainTab 的 Bug、UI 故障、启动问题及性能回归。强调先构建可复现的反馈循环,通过最小化复现脚本验证假设,执行最小修复并清理临时调试代码,确保问题根因被确认且测试覆盖。
Trigger Scenarios
Install
npx skills add kaininx/PlainTab --skill diagnose -g -y
SKILL.md
Frontmatter
{
"name": "diagnose",
"description": "Use when diagnosing PlainTab bugs, broken UI behavior, failing extension\/web-mode flows, storage or wallpaper regressions, startup issues, or performance regressions."
}
Diagnose PlainTab
Use this skill for bug reports and performance regressions. Adapted for PlainTab from Matt Pocock's diagnose skill.
Core Rule
Build a feedback loop first. Do not guess at fixes until the symptom can be reproduced or measured well enough to prove the fix.
PlainTab Context
- Read
.claude/rules/00-core.mdand the relevant module rule from.claude/rules/README.md. - Preserve the startup invariant in
index.html:#wallpaperBack, synchronousjs/preload.js,#wallpaperFront, then the rest of the page. - Keep storage access behind
window.WallpaperDataand preserve localStorage compatibility unless a migration exists. - Use
docs/ai-tasks/for temporary repro scripts or notes that should remain with the task.
Build the Loop
Prefer the fastest deterministic signal that reaches the real symptom:
- A small Node repro script in
docs/ai-tasks/for pure JavaScript, storage migration, parser, or data-shaping bugs. node --checkon touched files or the wholejstree for syntax regressions.- A browser/Playwright script for DOM, settings panel, command palette, wallpaper rendering, or extension/web-mode behavior.
- A direct
index.htmlweb-mode run when extension APIs are not required. - A measured timing harness using
performance.now()for startup or wallpaper performance regressions. - A manually assisted loop only as a last resort; write exact steps, expected result, actual result, and screenshots/logs when available.
If no loop is possible, stop and say what was tried. Ask for the missing artifact: console log, screen recording, settings export, uploaded media sample, HAR, or permission to add temporary instrumentation.
Diagnose
- Reproduce the user-visible symptom, not a nearby error.
- Capture the exact failure: console message, wrong DOM state, storage value, timing, image layer state, or user-facing result.
- Generate 3 to 5 ranked hypotheses. Each must predict what will change if it is true.
- Probe one hypothesis at a time. Use targeted logs or assertions at module boundaries.
- Prefix temporary logs with a unique tag such as
[DEBUG-9f3a]so cleanup is reliable.
For performance regressions, measure before fixing. Avoid broad logging in startup paths; it can change the timing you are trying to understand.
Fix
- Turn the minimized repro into a regression check before changing production code when there is a correct seam.
- If there is no correct seam, document that as part of the finding and keep the fix small.
- Apply the smallest fix that addresses the confirmed cause.
- Re-run the minimized repro and the original scenario.
Cleanup
Before finishing:
- Re-run the original feedback loop.
- Run validation appropriate to touched files.
- Remove all temporary
[DEBUG-...]instrumentation. - Keep useful task repro scripts under
docs/ai-tasks/; delete throwaway scratch files. - State the confirmed cause in the final answer or commit message.
Version History
- 955e53e Current 2026-07-24 12:23


