/ha-debug
Hope-native debugging for code failures, regressions, crashes, flaky behavior, and bad output: reproduce or characterize, rank falsifiable hypotheses, fix the smallest root cause, and prove the failing path.
$ npx -y skills add shiwenwen/hope-agent --skill ha-debug --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ha-debug
Context preview
The summary Claude sees to decide when to auto-load this skill.
Hope-native debugging for code failures, regressions, crashes, flaky behavior, and bad output: reproduce or characterize, rank falsifiable hypotheses, fix the smallest root cause, and prove the failing path.
SKILL.md
ha-debug.SKILL.mdname: ha-debug
description: "Hope-native debugging for code failures, regressions, crashes, flaky behavior, and bad output: reproduce or characterize, rank falsifiable hypotheses, fix the smallest root cause, and prove the failing path."
paths: ["*.rs", "*.ts", "*.tsx", "*.js", "*.jsx", "*.py", "*.go", "*.java", "*.kt", "*.swift", "*.c", "*.cpp", "*.h", "*.rb", "*.php", "*.sh"]
Hope Debug
Debug from evidence, not from the first plausible explanation. This is a decision process, not a mandatory four-stage ceremony.
1. Characterize The Failure
Capture the strongest available evidence:
- Exact symptom, expected behavior, and observed behavior.
- Reproduction steps, failing command, stack trace, log range, or persisted
state.
- Whether it is deterministic, intermittent, platform-specific, data-specific,
or timing-sensitive.
- Recent relevant diffs, dependency/config changes, and known-good boundary.
If reproduction is unsafe or requires unavailable credentials, characterize it from logs, fixtures, state, and code paths. State the evidence gap explicitly.
2. Bound The Fault
Trace the smallest credible path through inputs, state transitions, persistence, concurrency boundaries, and outputs. For multi-component systems, compare what crosses each boundary rather than adding broad instrumentation everywhere.
Common high-value checks:
- Stale or duplicated persisted state.
- Error swallowing, fallback, retry, cancellation, and timeout paths.
- Async ordering, locks, process boundaries, and late results.
- Platform, locale, permission, path, and environment assumptions.
- Mismatch between source-of-truth data and UI projection.
3. Rank Falsifiable Hypotheses
Keep one or two active hypotheses. For each, write:
- Why it explains the evidence.
- What observation would disprove it.
- The cheapest discriminating check.
Run the discriminating check before editing when practical. If a tiny, obvious fix is itself the cheapest safe experiment, keep it reversible and inspect the result before broadening scope.
4. Fix The Root Cause
- Patch the smallest ownership boundary that restores the contract.
- Avoid subsystem rewrites before the fault is proven.
- Preserve unrelated user work and existing public behavior.
- Add defense-in-depth only when it covers a demonstrated adjacent failure, not
as speculative cleanup.
After two failed fix attempts, stop patching variants. Re-read the original evidence, challenge the shared assumption, and narrow the boundary again.
5. Prove The Failing Path
Use `ha-test-strategy` to choose the regression form and `ha-verify` to confirm completion. Prefer a check that would have failed before the fix:
- Focused automated regression test.
- Existing failing command or deterministic fixture.
- Before/after database or log query.
- Manual reproduction when automation is not credible.
Passing compilation alone does not prove a runtime bug fixed. If the real path cannot be exercised, report the strongest substitute and remaining uncertainty.
Stop Conditions
Pause and ask for input only when progress requires inaccessible user state, an external system change, destructive action, or a product decision. Do not invent data or mark an unreproduced hypothesis as confirmed.
Smoke Prompts
- "This test fails intermittently; find and fix the root cause."
- "The UI shows stale state after restart; diagnose the persistence path."
- "Use this session id and logs to explain the regression, then repair it."
Read more
name: ha-debug description: "Hope-native debugging for code failures, regressions, crashes, flaky behavior, and bad output: reproduce or characterize, rank falsifiable hypotheses, fix the smallest root cause, and prove the failing path." paths: ["*.rs", "*.ts", "*.tsx", "*.js", "*.jsx", "*.py", "*.go", "*.java", "*.kt", "*.swift", "*.c", "*.cpp", "*.h", "*.rb", "*.php", "*.sh"]
Hope Debug
Debug from evidence, not from the first plausible explanation. This is a decision process, not a mandatory four-stage ceremony.
1. Characterize The Failure
Capture the strongest available evidence:
- Exact symptom, expected behavior, and observed behavior.
- Reproduction steps, failing command, stack trace, log range, or persisted
state.
- Whether it is deterministic, intermittent, platform-specific, data-specific,
or timing-sensitive.
- Recent relevant diffs, dependency/config changes, and known-good boundary.
If reproduction is unsafe or requires unavailable credentials, characterize it from logs, fixtures, state, and code paths. State the evidence gap explicitly.
2. Bound The Fault
Trace the smallest credible path through inputs, state transitions, persistence, concurrency boundaries, and outputs. For multi-component systems, compare what crosses each boundary rather than adding broad instrumentation everywhere.
Common high-value checks:
- Stale or duplicated persisted state.
- Error swallowing, fallback, retry, cancellation, and timeout paths.
- Async ordering, locks, process boundaries, and late results.
- Platform, locale, permission, path, and environment assumptions.
- Mismatch between source-of-truth data and UI projection.
3. Rank Falsifiable Hypotheses
Keep one or two active hypotheses. For each, write:
- Why it explains the evidence.
- What observation would disprove it.
- The cheapest discriminating check.
Run the discriminating check before editing when practical. If a tiny, obvious fix is itself the cheapest safe experiment, keep it reversible and inspect the result before broadening scope.
4. Fix The Root Cause
- Patch the smallest ownership boundary that restores the contract.
- Avoid subsystem rewrites before the fault is proven.
- Preserve unrelated user work and existing public behavior.
- Add defense-in-depth only when it covers a demonstrated adjacent failure, not
as speculative cleanup.
After two failed fix attempts, stop patching variants. Re-read the original evidence, challenge the shared assumption, and narrow the boundary again.
5. Prove The Failing Path
Use `ha-test-strategy` to choose the regression form and `ha-verify` to confirm completion. Prefer a check that would have failed before the fix:
- Focused automated regression test.
- Existing failing command or deterministic fixture.
- Before/after database or log query.
- Manual reproduction when automation is not credible.
Passing compilation alone does not prove a runtime bug fixed. If the real path cannot be exercised, report the strongest substitute and remaining uncertainty.
Stop Conditions
Pause and ask for input only when progress requires inaccessible user state, an external system change, destructive action, or a product decision. Do not invent data or mark an unreproduced hypothesis as confirmed.
Smoke Prompts
- "This test fails intermittently; find and fix the root cause."
- "The UI shows stale state after restart; diagnose the persistence path."
- "Use this session id and logs to explain the regression, then repair it."
🦭 会记忆、能持续推进目标、会动态编排多 Agent 的跨端桌面 AI 助手,也可服务化常驻 NAS / 云端 | A cross-device desktop AI agent with memory, autonomous goals, dynamic workflows, and headless deployment
Repo: shiwenwen/hope-agent
Other skills on hope-agent.
- /email-draft
Use when the user asks to draft, polish, translate, or reply to an email. Produces a clean draft with subject line, greeting, body, and sign-off, plus a pre-send self-check.
Open skill - /feishu
Use when the user mentions 飞书 / Feishu / Lark workspace operations: docx (云文档) read/write, bitable (多维表格) records / views / dashboards, drive (云盘) upload/download, wiki (知识库) link resolution, approval (审批) instance create/cancel/query, calendar (日历) event create/list/update +
Open skill - /ha-browser
Hope Agent browser automation — the standard `status → tabs → snapshot → act` loop, stale-ref recovery rules, and what to do when login / 2FA / captcha / camera-prompt / dialog blocks progress. Load this skill whenever you reach for the `browser` tool. Trigger on: user asks the
Open skill - /ha-code-review
Hope-native review of uncommitted, staged, commit, branch, or PR changes: discover concrete regressions, independently verify candidates, and report actionable findings first without speculative noise.
Open skill - /ha-coding-common
Hope-native baseline for implementing, fixing, refactoring, and maintaining code: inspect the repository first, protect user changes, keep scope narrow, and finish with direct evidence.
Open skill - /ha-coding-plan
Hope-native implementation planning for non-trivial code changes: ground the plan in repository evidence, order dependencies, name critical files and risks, define verification, then continue execution when allowed.
Open skill

