A Claude skill that audits experience with the same discipline Mizan applies to claims: evidence tiers, human-locked gates, preregistered thresholds and an append-only registry. Bilingual TR/EN.
Status: v0.1 [H]. The first real run is the self-validation run; treat
its output as a test of the skill as much as of your app.
cp -r skill/ux-mizan ~/.claude/skills/ # path must end .../ux-mizan/SKILL.md
pip install -r skill/ux-mizan/scripts/requirements.txt
cp templates/ux-registry.yaml <your-project>/ux-registry.yaml
Ask Claude for a UX audit. It will propose a job model and ask you to lock it. Answer honestly about volume: below roughly 300 completions per flow per month, passive telemetry cannot decide anything in a useful window, and the skill switches to Lite mode (5–8 moderated sessions).
You are locking, at minimum:
success_definition) and the route that
marks it (success_screen);app_type per flow — this decides which metrics are even legal;canonical_path_R).The last one has to be declared before you look at any data. That is the whole reason lostness can be computed passively later.
python skill/ux-mizan/scripts/structural_checks.py src/
Every count is [KKE]. It tells you where to look, not what is broken.
Whatever you plan to fix, measure it first and write the numbers into the
flow’s baseline.values. Without a baseline, no later number is
interpretable, and the validator will refuse to promote a behavioural
finding to [K] (U8).
For lostness, once screen-view events exist:
python skill/ux-mizan/scripts/lostness.py events.jsonl --registry ux-registry.yaml
python skill/ux-mizan/scripts/ux_validate.py --strict ux-registry.yaml
git config core.hooksPath tools/hooks # or copy tools/hooks/pre-commit
[H] or [KKE]. That is correct, not a shortfall.[K] requires a real artifact, a baseline, and a locked min_n. If
you have none of those yet, you have no [K] yet.[R] —
a hypothesis the data knocked down. A registry with no [R] rows is an
audit that never risked anything.