用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/applicate2628/Orchestrarium --skill bug-hunting命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | bug-hunting |
| description | Bug hunting: diagnose runtime defects before fixes. |
Stop guessing, start logging. Every minute spent reasoning from architecture alone is a minute the runtime would have told you the truth in. Every diagnostic round you add narrows the search; every speculative fix you ship widens it.
ABSOLUTE RULE. Hypotheses MUST be confirmed by debugging, and NO fix is permitted until full, absolute runtime confirmation. This binds at BOTH ends of every fix — confirming the cause is necessary but not sufficient:
This applies even when the theory comes from an authoritative source: a consultant memo, a Codex/Claude answer, a Stack Overflow accepted answer, official documentation. External advice is a candidate hypothesis, not a verified one — treat it as a pointer to which signals to log next, never as a green light to ship a fix.
Trigger phrases meaning "go log, do not patch":
Edit after reading only code, not after reading a logIf a hypothesis-driven fix does not visibly remove the symptom, do not try another hypothesis-driven fix. Switch to instrumentation. Adding logs is cheap; re-rolling the dice on guesses burns user trust faster than the bug itself.
Concrete trigger: "still happening" / "ничего не поменялось" → next action is diagnostic output, not another speculative edit.
Pick a handful of orthogonal events and log them with a single line each, prefixed by timestamp + short tag + the state values that matter (inFlight, attached, bounds, session, etc.). One line per event, fixed shape, parseable by eye. Do not dump a wall of structured data — you will be reading dozens of these in sequence to spot the timing gap.
Provider-neutral example shape:
[TAG hh:mm:ss.fff] EVENT_NAME field1=value1 field2=value2 field3=value3
Look for:
If a UI variant works correctly but another does not, treat them as separate code paths even when they look like they share state — log inside each to confirm rather than assume.
Console output is lost between iterations. Redirect to a scratch file under the repo (e.g. .scratch/<topic>.log, already covered by repo .gitignore conventions). Persistent log files survive app crashes and allow diff between runs.
PowerShell:
Start-Process -RedirectStandardError .scratch/bug.log <command>
POSIX shell:
<command> 2> .scratch/bug.log
For UI bugs that depend on animation, timing, or sequence, do not stare at the raw video. Extract frames first and read the smallest set that distinguishes states. The detailed video-frame workflow lives in $analyzing-video-bugs. The broader visual-verification workflow (theme/state context, capturing a fresh recording when none exists, classifying structural vs cosmetic) lives in $windows-gui-manual-testing.
If the user has already identified a specific frame number ("frame 39 is the bug"), use that pointer directly — it is a one-word hint that saves an hour of derivation.
A log line is what the runtime actually did. A trace through the source code is what you believe it did. When they disagree, the log wins. Mental models of multi-callback async UI code, lifecycle handlers, and partially-initialized state are wrong more often than logs are.
Read-only diagnostic output (e.g. Console.Error.WriteLine, print, log.debug) is observably zero-risk for most UI and lifecycle bugs — no side effects, no allocations that matter, no thread reordering. If the symptom persists with logs in, you can compare runs cleanly. Do not conflate "added diagnostics" with "changed the system" — that is the whole point.
Diagnostics are scaffolding. Once the root cause is committed, sweep the temporary log lines in the same commit cycle. Leaving them in pollutes future debugging — every new bug ends up co-located with stale tracing from an old one.
Before kicking off a non-trivial run that takes more than a few seconds (batch job, optimization stage, multi-hour compute, training run, simulation, benchmark, dataset rebuild, debugger session with custom config), announce the full parameter set in a single block — mode or profile, key configuration values, input source path, output destination, expected runtime or ETA — and pause for user correction if any parameter is ambiguous. Diagnostic and production runs use the same parameter set unless the user explicitly authorized a faster diagnostic mode; do not silently substitute a faster regime for the authorized one or invert the relationship by treating the diagnostic mode as the default.
After such a run, a completion notification, callback, exit-code-zero, or "task done" message is not by itself evidence the run succeeded. Verify the expected output artifact exists at the declared destination, check its success markers (file present, expected size, normal-completion log entry, exit status), and only then claim success. A run that produced no artifact at the declared path is BLOCKED or REVISE, regardless of how cleanly its process exited.
Abstracted from real incident loops:
The pattern across cases: log first, read the gap or the missing event, fix the smallest thing that closes it. Never re-roll on guesses.
$qa-engineer review gates — this is methodology for the diagnostic phase, not for verification or for owning the fix as an artifact.$analyzing-video-bugs (frame extraction and transition detection) and $windows-gui-manual-testing (broader visual verification including screen capture).Edit: tool call that modifies a tracked source file. The discipline above forbids issuing one before the working theory is verified in a log.repro: reproduction; the user's act of running the failing case so the agent can collect runtime evidence.scratch file: a file under .scratch/ (gitignored by repository convention) used for transient logs, frames, and probes.gate condition: the boolean expression guarding whether a code path executes; bugs frequently live in a gate that looked correct on paper but was wrong at runtime.基于 SOC 职业分类