You are the uniformity skill — read-only window onto the uniformity-as-contract
mechanism (the parked /autoplan recommendation, now built).
What this skill does
Lintel's 14 uniformity dimensions (D1–D14) are held to a per-kind floor, not a global maximum. This skill surfaces the contract's two enforcement surfaces in one place:
- runs
tests/shape/uniformity-coverage.sh— the Gate-M3 floor check (HARD-FAILS only when aworkflow_root: trueskill or a block-hook lacksnecessity:), which also prints per-kind adoption % of every tracked dimension; - points at
.claude/engineering/audits/uniformity-matrix.md— the living dashboard regenerated bybin/li-uniformity.
It never writes. To regenerate the matrix, the operator runs bin/li-uniformity
explicitly (it edits a doc, so it is not auto-run here).
When to use
- "Is the uniformity floor green?" — runs the shape-test, shows pass/fail
- "What's our necessity-field adoption per kind?" — surfaces the adoption summary
- After adding a new workflow_root skill or block-hook — confirm the floor still holds
- Before a meta-infra REVIEW (Gate M3) — preview the floor verdict
When NOT to use
- To REGENERATE the matrix — that's
bin/li-uniformity(writes a doc) - To CHANGE the contract — edit
docs/concepts/uniformity-contract.md - To enforce the long tail — adoption above the floor is tracked, not mandated; this skill reports it, it does not gate on it
Inputs
All optional:
--check— also runbin/li-uniformity --checkto report whether the matrix is stale (warn-only; does not fail the skill)--matrix— print the matrix's adoption-summary head instead of running the test
Workflow
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
mode="test"
while [ $# -gt 0 ]; do
case "$1" in
--check) mode="check"; shift ;;
--matrix) mode="matrix"; shift ;;
*) echo "Usage: /li:uniformity [--check] [--matrix]"; exit 2 ;;
esac
done
MATRIX="$REPO_ROOT/.claude/engineering/audits/uniformity-matrix.md"
case "$mode" in
matrix)
if [ -f "$MATRIX" ]; then
# Print everything up to the first per-kind matrix section.
awk '/^## Matrix by kind/{exit} {print}' "$MATRIX"
echo "_Full matrix: .claude/engineering/audits/uniformity-matrix.md_"
else
echo "_No matrix yet._ Run: bin/li-uniformity"
fi
;;
check)
bash "$REPO_ROOT/tests/shape/uniformity-coverage.sh"
echo ""
echo "## Matrix freshness"
bash "$REPO_ROOT/bin/li-uniformity" --check || \
echo "_(matrix is stale — run: bin/li-uniformity)_"
;;
*)
bash "$REPO_ROOT/tests/shape/uniformity-coverage.sh"
echo ""
echo "Living dashboard: .claude/engineering/audits/uniformity-matrix.md (regenerate: bin/li-uniformity)"
echo "Contract: docs/concepts/uniformity-contract.md"
;;
esac
Status protocol
- DONE — floor verdict + adoption summary printed
- NEEDS_ACTION — the floor shape-test FAILED (a workflow_root skill or block-hook
lacks
necessity:); the offending component(s) are named in the test output and must be backfilled
Integration
Reads:
tests/shape/uniformity-coverage.sh(the floor gate + adoption reporter).claude/engineering/audits/uniformity-matrix.md(the living dashboard)- every component's frontmatter (indirectly, via the test/generator)
Writes:
- nothing (pure read; matrix regeneration is a separate explicit
bin/li-uniformitycall)
Anti-patterns
- Treating low long-tail adoption as a failure — only the floor (necessity on workflow_root skills + block-hooks) gates. The rest is tracked.
- Hand-editing the matrix — it's generated; edits are overwritten. Change the
source frontmatter and re-run
bin/li-uniformity.
See also
docs/concepts/uniformity-contract.md(the per-kind floor + tracked dimensions)tests/shape/uniformity-coverage.sh(Gate-M3 floor enforcer)bin/li-uniformity(the regenerable matrix generator).claude/engineering/audits/uniformity-matrix.md(the living dashboard)/li:audit(the sibling read-only window onto the unified audit trail).claude/engineering/audits/lintel-uniformity-MASTER.md(the original top-20 findings)