From god-of-debugger
Internal step of /god-of-debugger. Converts surviving debugging experiments into permanent regression tests. Tags fix commit with session id. Invoked after fix accepted. Silent, no prompts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/god-of-debugger:promoteThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Bug not pinned by failing test = bug comes back. Three phases:
Bug not pinned by failing test = bug comes back. Three phases:
God-Of-Debugger-Session: <session_id> trailer to fix commit.commands/go.md): fix just written same session. No prompts. No pauses between phases. Run all three in one pass. One output line (see bottom).Detect: caller passes mode=auto or tool context is commands/go.md → auto. Else manual.
.god-of-debugger/current → session_id..god-of-debugger/sessions/<session_id>.json → exactly one entry in survivors.survivors.length != 1 → STOP. Promotion only valid when root cause locked in.
package.json, pytest.ini/pyproject.toml, Cargo.toml, go.mod, Gemfile, etc. Match existing style (file location, naming, assertion lib). No new framework.tests/ if one exists elsewhere.experiment.expected_if_true — not generic "no crash".session_id, hypothesis.id, hypothesis.claim.session.regression_test.<path>::<name>. Implement fix. Re-run skill after fix."Triggered on re-invoke of /god-of-debugger:promote after fix committed/staged.
.god-of-debugger/experiments/<Hn>/experiment.md. Verdict must flip to killed (hypothesis that survived now falsified — fix removed cause).
probe.diff under .god-of-debugger/experiments/*/probe.diff not yet reverted. Tree clean except promoted test.session.status = "closed". session.closed_at. Delete .god-of-debugger/current.Fix not committed yet → prompt user stage + write commit with trailer:
God-Of-Debugger-Session: <session_id>
Commit exists → offer git commit --amend --no-edit only with explicit consent. Never amend published commits without approval.
Record session.fix_commit_sha.
skip/xfail/pending. Failing test = entire point.Encode behavior, not fix. Good:
it("returns empty array instead of null when user has no orders (regression: H2)")test_cache_eviction_does_not_leak_keys_after_ttl_expiryBad:
it("works")test_fix_for_bug_123Regression test: <path/to/test>::<test_name>
Status: FAILING (as expected)
Session: <session_id>
Next: implement fix, commit, re-run /god-of-debugger:promote.
Regression test: PASSING
Surviving experiment: FLIPPED to killed (fix removed cause)
Fix commit: <sha> (trailer: God-Of-Debugger-Session: <session_id>)
Session closed.
From commands/go.md after fix written:
probe.diff / experiment artifact, or temporarily git stash pre-fix state if cleaner. Restore fixed state before exit.probe.diff under .god-of-debugger/experiments/*/probe.diff.God-Of-Debugger-Session: <session_id> trailer to fix commit. If not committed yet, leave message for next commit. No auto-amend.session.status = "closed". session.closed_at = now. session.regression_tests = [<paths>].No prompts. No phase headers.
Success:
Added <N> regression tests to <detected-dir>/.
Failure (test didn't flip, fix incomplete, framework not detected):
No regression tests added — <reason in ≤6 words>. Session: <session_id>.
Caller relies on single line. No decoration.
npx claudepluginhub soummyaanon/god-of-debugger --plugin god-of-debuggerCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.