h-compare

Compare candidates under declared parity and selection policy to produce a non-dominated set.

1.4k|102|Updated Dec 10, 2025
One-click install
npx skills add https://github.com/m0n0x41d/haft --skill h-compare
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: h-compare
Source: https://github.com/m0n0x41d/haft/tree/main/internal/cli/skill/h-compare
Command: npx skills add https://github.com/m0n0x41d/haft --skill h-compare

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

When several solution candidates already exist, teams often collapse the choice into a single hidden score or let presentation order decide. This Skill enforces a fair, explicit comparison: constraints, targets, parity conditions, and a predeclared selection policy are stated before scoring, so trade-offs stay visible and the final value judgment remains with the operator.

Core Features & Use Cases

  • Structured characteristic space: Separates hard constraints, optimization targets (at most 1-3), and passive observations before any scoring begins.
  • Parity and policy declaration: Requires comparator set, evidence window, equalized budget, missing-data policy, and selection policy to be declared before results are seen.
  • Non-dominated reporting: Eliminates constraint violations and reports the surviving trade-off set instead of a single winner; binding a choice is routed through h-decide only on explicit operator request.
  • Optional typed persistence: Comparison artifacts stay conversational by default and are persisted via haft_problem/haft_solution MCP calls only on explicit save intent or a concrete receiving use.
  • Use Case: An engineering team has three database options and asks the agent to compare them fairly; the Skill drafts the characteristic space, declares parity and policy, evaluates each dimension across all options, and returns the non-dominated set with concrete trade-offs.

Quick Start

Ask the agent to compare your existing candidates, for example: compare Postgres, SQLite, and DuckDB for our analytics workload under equal hardware and a declared selection policy.

Frequently Asked Questions about h-compare

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I compare multiple solution candidates fairly with an AI agent?

Declare the characteristic space first: separate hard constraints from optimization targets and passive observations. Then declare parity conditions and a selection policy before scoring, evaluate one dimension across all candidates, and report the non-dominated set with explicit trade-offs.

What is a non-dominated set in option comparison?

A non-dominated set contains the candidates that are not strictly worse than another option on every dimension. It preserves the real trade-off among survivors instead of collapsing the choice into one score or a single hidden winner.

When should comparison results be persisted to project memory?

Persist only when the operator explicitly asks to save, or when a concrete receiving use needs addressable replay. Ordinary comparisons stay conversational; persistence uses haft_problem characterize and haft_solution compare with exact record references.

Does h-compare make the final decision between options?

No. It returns constraints, trade-offs, and a non-dominated set, leaving the value choice with the operator. A binding choice requires a direct unambiguous operator request routed through the h-decide skill.

Why declare a selection policy before scoring candidates?

Declaring the policy before seeing results prevents motivated reasoning where the policy is bent to favor a preferred outcome. Changing it afterward is allowed only when the policy change itself is made explicit.