Skip to main content

h-diagnose

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.

Datos de origen

Repositorio
m0n0x41d/haft
Última actividad en el origen
2 de agosto de 2026 a las 06:45
Idioma detectado de SKILL.md
inglés
Estrellas
1398
Forks
101

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
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.
Ver en GitHub