Skip to content
Back to skills

H Diagnose

ASecurity

Diagnose a concrete failure with parallel rival-hypothesis testing. Use when symptoms are observable but cause is unclear. Stabilize the signal, generate distinct explanations, test them read-only in parallel, and rank by evidence while keeping losing rivals visible. This skill is independent and ordinarily non-persistent; save a diagnosis frame or hypothesis portfolio only on explicit request or when current Work supplies a concrete operator-named or agent-inferred receiving use that needs r...

  • 1,393 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added August 31, 2026
ai-agentsgobashtesting

Works with

  • mcp

Security analysis

A100/100

Scanned August 31, 2026

npx -y skills add m0n0x41d/haft --skill h-diagnose --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of H Diagnose?

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

Security grade badge for H Diagnose
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/m0n0x41d-h-diagnose/badge)](https://www.skillsdirectory.com/skills/m0n0x41d-h-diagnose)

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
---
name: h-diagnose
description: |
  Diagnose a concrete failure with parallel rival-hypothesis testing. Use when symptoms are observable but cause is unclear. Stabilize the signal, generate distinct explanations, test them read-only in parallel, and rank by evidence while keeping losing rivals visible. This skill is independent and ordinarily non-persistent; save a diagnosis frame or hypothesis portfolio only on explicit request or when current Work supplies a concrete operator-named or agent-inferred receiving use that needs replay.
when_to_use: |
  A test, runtime, data, integration, or operational failure has more than one plausible cause. For a feature or redesign question use h-frame.
argument-hint: "[observed failure]"
allowed-tools: Bash Read Grep Glob Agent mcp__haft__haft_problem mcp__haft__haft_solution mcp__haft__haft_query
---

# h-diagnose — Test rival explanations

Abduction is an internal routine of this skill, not a separate public skill.
Use FPF source when an FPF distinction or diagnostic pattern is material to the
current failure; a purely mechanical failure needs no ritual source query.
Before relying on FPF diagnostic semantics, inspect a known SourceID or UnitID with
`mcp__haft__haft_query(action="fpf", mode="inspect", identifier="...")`, or
use `mode="concern"` with the concrete failure question and inspect the direct
pattern body. Query returns source candidates, not a selected cause or verdict.
A `candidate_set` is incomplete: select by the current condition and required
result kind, then inspect one exact PatternID. If no candidate fits, abstain.
Never use a query performed after the diagnosis or edit as proof that the
earlier work followed that source.

## Conditional project-memory orientation

When this diagnosis is context-heavy, multi-session, or reliance-bearing and
the exact EntityOfConcern is not already current, resolve its identity with
`haft_query(action="memory", memory_request={"mode":"resolve",
"contract_version":"haft.memory.v1","basis":{"kind":"project_current"},
"query":"...","max_candidates":5})`. Select the exact candidate by the current
use rather than rank, then use the closed `memory_request` neighborhood branch
advertised by the tool schema with
`projection_profile_ref="agent_orientation.v2"`.

Inspect `result_kind` before relying on content. `project_basis_unavailable`,
known absence, or explicit abstention is visible but non-blocking: continue the
diagnosis without inventing a profile, entity, artifact, or human gate. This
read does not replace code-graph preflight before a later code edit. Never
persist typed memory merely because a read failed; persistence requires an
explicit operator save request or a concrete operator-named or agent-inferred
receiving use supplied by current Work, with provenance.

## Procedure

1. Stabilize the observed signal without naming a cause. State time window,
   scope, reproducibility, and what remains unaffected.
2. Inspect the failing code, logs, tests, and related Haft decisions when they
   are current. Treat stale governing assumptions as one possible hypothesis,
   not as proof.
3. Generate at least three rival hypotheses that differ in kind. For each,
   state a discriminating probe that could refute it.
4. Run read-only probes in parallel where possible. Give each investigator one
   hypothesis and the same signal; prohibit edits.
5. Rank by evidence for, evidence against, and remaining uncertainty. Keep
   refuted and inconclusive rivals visible when they matter to fallback or
   replay.
6. State the smallest supported conclusion. `Inconclusive` is valid; a
   plausible story is not a root-cause finding.

## Persistence boundary

Default to a conversational diagnosis. Do not automatically create a
ProblemCard or SolutionPortfolio. Persist only on explicit save intent or when
a concrete operator-named or agent-inferred receiving use needs the diagnosis
to remain addressable. In that case,
record the stable diagnosis problem and the rival hypotheses with their
evidence limits; do not present hypothesis ranking as a binding decision.

## Result

Return the leading explanation, concrete evidence, live rivals, and the next
discriminating probe if uncertainty remains. Diagnosis does not authorize a
fix. Implement only when the operator separately asks for the change.

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.