| name | hai-ssot |
| description | Diagnoses single-source-of-truth violations—duplicated literals or rules, shape drift, scattered defaults, redundant conversion chains, overloaded vocabulary, and behavior forks—with file:line evidence, false-positive adjudication, and a treatment recipe. Use when the user suspects definitions may diverge, adding one concept requires edits in many places, layers repeatedly convert or validate the same value, or asks about SSOT/双源/漂移/同名异形. Use hai-architecture when the root decision is module ownership rather than duplicated authority. |
Hai SSOT
For Chinese readers, see SKILL.zh_CN.md. The English SKILL.md is the execution source of truth.
Overview
Hunt down places where one fact, one shape, or one word has more than one authoritative home —
or where one name secretly serves several facts. Produce a findings report that an engineer can
execute from: every finding numbered, evidenced, honestly adjudicated, and routed to a concrete
disposition. The skill is a diagnostic with a strong opinion about treatment, not a linter.
The Core Law
SSOT violations are especially likely at boundaries a single type system cannot protect:
language↔database, language↔wire, typed↔untyped payloads, code↔docs, and production↔fixtures.
They also occur inside one language when modules independently redeclare constants, shapes,
defaults, or derivations; compilers do not prevent semantically duplicated authorities.
Two corollaries that direct the hunt:
- Start at the cross-stack seams because risk is high there, then follow each concept through its
intra-language definitions and consumers.
- A test that pins two copies equal ("parity test", "pin test", "currency test") is a flag:
either the copy should not exist (eliminate it, then delete the test), or both sides are
genuinely real artifacts that cannot share a source (then the test IS the correct treatment).
Locate every such test early — each one marks either a violation or a treatment already applied.
The Ten Symptom Classes
Use the symptom table to choose likely classes, then read only those class recipes in
before searching.