newtype
100 / 100 · Low risk
Fine to try.
Use when primitive types are part of a domain's API. These strings, numbers, or UUIDs represent distinct domain concepts that must not be mixed. Prevents accidental substitution of values that share the same underlying type but carry different meaning — such as passing a UserId where an OrderId is expected, or adding Kilometers to Miles without conversion.
What this skill can do
We found nothing in the files we read that matches our rules. That does not prove the skill is safe: see the limits of static scanning.
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'newtype' ] || [ -L ~/.agents/skills/'newtype' ]; then echo 'A skill folder named newtype already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/DavidSouther/ailly' "$d" && git -C "$d" checkout --quiet '3b72cbd7d7d6d933ac8e173639b08c833d2a844a' -- 'harness/e2e/judge-calibration/evals/synthetic/context/skills/newtype' && mkdir -p ~/.agents/skills && cp -R "$d"/'harness/e2e/judge-calibration/evals/synthetic/context/skills/newtype' ~/.agents/skills/'newtype' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'newtype' ~/.claude/skills/'newtype' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
[](https://zalavijaysinh.github.io/skilltrust/repos/DavidSouther/ailly/)
Score history
| Date | Version | Score |
|---|---|---|
| 2026-11-12 | 3b72cbd | 100 |
Also found in
- DavidSouther/ailly/harness/e2e/patterns-eval/context/skills/newtype