h-frame
h-frame is a problem-framing skill from the HAFT methodology that structures unclear challenges before solution work begins. Use it when facing ambiguous requirements, conflicting priorities, or vague goals by separating observed signals from assumptions, eliminating umbrella terms like "scalable" or "quality," classifying the problem type (optimization, diagnosis, search, or synthesis), and explicitly declaring scope boundaries. This prevents wasted effort on misaligned solutions and ensures reasoning targets the actual problem.
git clone --depth 1 https://github.com/m0n0x41d/haft /tmp/h-frame && cp -r /tmp/h-frame/packages/haft-pi/skills/h-frame ~/.claude/skills/h-frameSKILL.md
# h-frame — Shape the current problem
Retrieve current FPF source first. Use
`haft_query(action="fpf", mode="inspect", identifier="...")` for a known
SourceID or UnitID; otherwise use `mode="concern"` with the operator's query,
then inspect the direct pattern body. Query retrieves candidates only; it does
not choose the governing pattern or justify persistence.
Treat a concern result's `candidate_set` as incomplete navigation. Before
relying on one candidate, inspect its exact identifier and direct pattern
body. Keep several candidates live or abstain when the basis is insufficient.
Never query after framing merely to manufacture support for a frame already
chosen.
Separate the object from its description and carrier. State the observed
signal, unresolved relation, scope, constraints, acceptance basis, uncertainty,
blast radius, and reversibility. Unpack umbrella words and remove preferred
solutions from the frame.
Call `haft_problem(action="frame")` only for explicit persistence or a named
receiving use. An inline `ProblemCard@Context`-shaped result is not a persisted
artifact. When exact current identity is known, include
`entity_ref={ref_kind_id:"U.EntityRef",reference_id:"..."}` and
`bounded_context_ref`; never invent them from prose. A committed typed
projection returns an exact `record_reference`. Without that basis, preserve
the card and report its projection as underdetermined. `spec_fit_probe` is
advisory and only relevant when a named spec relation is current. Stop with the
frame; do not prescribe exploration next.|
|
Manual-only skill that creates bounded execution authority from an explicit operator grant. Never auto-trigger or infer approval from prompt text or tool schemas.
Compare two or more existing candidates under an explicit characteristic space, parity basis, and predeclared selection policy. Return trade-offs and a non-dominated set; persistence is conditional and a binding choice requires a direct unambiguous operator request.
Route one direct, unambiguous operator request for a bounded binding choice. A manual h-decide invocation is a compatible shortcut, not an authorization receipt.
Diagnose a concrete failure with rival-hypothesis testing. Stabilize the symptom, generate distinct explanations, test discriminating observations read-only in parallel, and rank by evidence while retaining losing rivals.
Generate 3-5 genuinely distinct candidate approaches for a current question, with the weakest link of each visible. May work from an inline question or a durable ProblemCard; persistence is conditional.
Persist an explicitly requested non-binding fact, observation, caveat, or small rationale in Haft project memory. Do not auto-persist ordinary reasoning.