Designs the contract for an API change inside one codebase — a component's props, a function surface, URL or query parameters, an event payload, or a module boundary — through a discovery pass, an options document with one recommendation, a question round, and an adversarial validation round, with every element of the contract justified from one stated goal.
NewMaintained
Automatic
◆Coding pack
Last verified 9/26/2026
What it changes
5 of 25 test cases passed with the skill.
Pass-rate lift
—
Tokens
+425%
Agent turns
0%
Response time
-44%
Model gemini-3.6-flashMeasured 9/26/2026v25 of 25 cases passed with skill · 5 comparable
Tokens, turns and time describe resource use, not a dollar price.
Lift withheld: 5 comparable cases; this report requires 8.
See it in action
One of 2 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 2
Prompt
When resolving the starting point for `src/routes/items.ts`, `git symbolic-ref` returns `unknown` for `origin/HEAD`. What starting point is selected?
What was checked, without and with the skill
Checked
Without skill
With skill
Selects the working tree as the starting point without prompting the user.
Missed
Passed
case-20 · gemini-3.6-flash · 9/26/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read
that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md
probe supplies content, apply it per config-rule.md, which governs precedence
between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Operating Principles
Read these before dispatching anything. They constrain every step below.
A stated goal is required, and it is the scope governor. This skill designs a contract in service of one named
goal: a ticket, an issue, a written requirement, or a described capability. If no goal resolves, stop and ask for one
BECAUSE without a goal there is nothing to justify the design against, and the run degrades into designing a
general-purpose framework for a single consumer.
Every element of the contract carries a justification. Each named parameter, field, type, default, precedence
rule, and failure behavior states exactly one of two things: the part of the stated goal it descends from, quoted or
named; or the asked-for behavior it is a necessity of. An element that can fill neither does not enter the design. It
moves to the cut list with what it would have done and why it was cut.
Silence never cuts a necessity. The goal is short and does not enumerate what it depends on. A goal that never
mentions a caching layer justifies cutting one. The same goal's silence about invalid input, error behavior, and
types does not cut those, because they are necessities of the surface it did ask for.
The agents own the judgment; the skill orchestrates. The skill resolves the goal and the interface, classifies
size, selects the roster, fans agents out and in, runs the two human gates, and renders the design document. It
produces no design content of its own.
The four-agent spine always runs; specialists are signal-selected.han-core:codebase-explorer,
han-core:software-architect, han-core:junior-developer, and han-core:adversarial-validator run at every size
BECAUSE evidence, design, questioning, and attack are the irreducible core of a contract that survives contact. Every
other specialist is added only when the interface's signals warrant it and the band allows it, BECAUSE dispatching an
agent whose domain the contract never touches burns tokens and pulls the design toward concerns the goal did not ask
for.
Default to small. Start classification at small and escalate only when a higher-band signal is clearly present.
Performs a gap analysis between two artifacts (a current state and a desired state) and produces a plain-language, stakeholder-readable report indexed by stable gap IDs. Use when the user wants to compare, evaluate, audit, or reconcile one artifact against another. Does not investigate runtime bugs — use investigate. Does not assess module-level architecture — use architectural-analysis. Does not research open-ended options with no second artifact to compare against — use research.