Skip to content
Back to skills

Sd Hypothesis Tree

ASecurity

Structured hypothesis enumeration and verification for specwright debugging workflows. Used by `sd-debugger` in both bug investigation and perf hotspot analysis. ---

  • 8 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 2, 2026
ai-agentsgodebuggingdatabase

Security analysis

A100/100

Scanned October 2, 2026

npx -y skills add developzoneio/specwright --skill sd-hypothesis-tree --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sd Hypothesis Tree?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sd Hypothesis Tree
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/developzoneio-sd-hypothesis-tree/badge)](https://www.skillsdirectory.com/skills/developzoneio-sd-hypothesis-tree)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# sd-hypothesis-tree

Structured hypothesis enumeration and verification for specwright debugging workflows.
Used by `sd-debugger` in both bug investigation and perf hotspot analysis.

---

## Enumeration protocol (`TASK = enumerate`)

Produce **4–8 ranked hypotheses**. Fewer than 4 means at least one of the 5 models was not applied — go back.

### The 5 mental models

Apply each model in sequence. For each, ask: "What hypothesis does this model suggest?"

| Model | What to probe |
|---|---|
| **Boundary** | Off-by-one, null handling, empty collections, max int, edge of valid range, time zones, locale, encoding. |
| **State** | Stale cache, dirty database row, partial write, in-memory state diverged from persisted, leftover from previous transaction. |
| **Concurrency** | Race condition, lock contention, double-execution, retry without idempotency, ordering assumption between async chains. |
| **Recent changes** | Diff vs working state at last green: which commits, deploys, config changes, dependency bumps fall in the suspect window? |
| **Environment** | Differs between prod and local: TLS, secrets, DNS, time, file-system case-sensitivity, container resource limits, OS, library versions. |

### Per-hypothesis fields

Each hypothesis must have:
- **Statement**: "X happens because Y, which violates assumption Z."
- **Mental model**: which of the 5.
- **Likelihood** (L): 1–5 — how plausible given current evidence.
- **Impact** (I): 1–5 — how much of the symptom this explains.
- **Cost to verify** (C): 1–5 — 1 = grep + read; 5 = needs prod data or load test.
- **Score**: `(L × I) / C`.
- **Verification plan**: concrete steps — files to read, queries to run, logs to inspect.

### Output format

```markdown
## Hypothesis tree (sd-debugger enumerate)

| # | Statement | Model | L | I | C | Score | Verification plan |
|---|---|---|---|---|---|---|---|
| H1 | <statement> | concurrency | 4 | 5 | 2 | 10.0 | grep for `Lock(` in PaymentHandler; read tests/concurrent/PaymentTests.cs |
| H2 | ... | ... | ... | ... | ... | ... | ... |
```

Rank rows by Score descending.

---

## Verification protocol (`TASK = verify`)

Execute the verification plan for ONE hypothesis at a time. Produce a verdict.

### Verdict format

```markdown
### H<N> verification: <CONFIRMED|REJECTED|INCONCLUSIVE>

**Evidence**:
- `file:line` - <observation>
- `EVIDENCE_DIR/<artifact>` - <what it shows>

**Reasoning**: <2–4 sentences. For REJECTED: explain WHY evidence rules out this hypothesis — this is knowledge preservation.>

**Confidence**: <low | medium | high>

**Proximate vs root**: <For CONFIRMED only> Is this the root cause, or a symptom of a deeper cause? If the latter, name the next "why" to ask.
```

### Proximate vs root — the "why" ladder

After CONFIRMING a hypothesis, ask "why" one more time. The ROOT must be: **NAMED**, **FIXABLE**, and explain why the test gap existed. If your "root" is just a deeper symptom, keep going.

Example:
- Proximate: "PaymentHandler threw NRE on line 142."
- One deeper: "`_customer` is null."
- Root: "`_customerCache.Get(id)` returns null for archived customers; PR #4521 removed the null-check; test fixtures all use active customers — regression not caught."

---

## Anti-patterns

- Stopping at proximate cause.
- Producing only one hypothesis (enumerate ≥ 4).
- Skipping REJECTED reasoning — future investigators need to know WHY it was ruled out.
- Inventing evidence — every claim cites `file:line`, log line, query result, or doc URL.
- Acting on a CONFIRMED hypothesis — the debugger reports; `/sd:bug` Phase 5 calls the implementer.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.