Official agent skill

Wobbling Ty Constraint Order

by astral-sh in astral-sh/ruff

A skill your agent uses when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty…

OfficialMITAuto-check passedTesting & QA

Install Wobbling Ty Constraint Order

skills CLI
$ npx skills add astral-sh/ruff --skill wobbling-ty-constraint-order -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install astral-sh/ruff wobbling-ty-constraint-order --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/astral-sh/ruff.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/wobbling-ty-constraint-order .claude/skills/wobbling-ty-constraint-order && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
wobbling-ty-constraint-order
GitHub stars
50k
Token cost
~838 tokens
SKILL.md length
223 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty…

  • A user asks to wobble ty constraint ordering
  • Calls cargo
  • Check constraint-set
  • TDD ordering determinism

What it does

Wobbling Ty Constraint Order is an agent skill from astral-sh/ruff, published by the product's own GitHub organization. Use when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty inference and mdtest results.

Its SKILL.md is about 840 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires Cargo, mktemp, and a POSIX-compatible shell; uses cargo-nextest when available and otherwise falls back to cargo test.

It sits in Testing & QA, covering Linting and formatting and Test-driven development. It works with Ruff and Python. The repository describes itself as: An extremely fast Python linter and code formatter, written in Rust. The licence is MIT.

When your agent uses it

  • A user asks to wobble ty constraint ordering
  • Check constraint-set
  • TDD ordering determinism
  • Test reversed constraint/typevar IDs

Example prompts

  • “/wobbling-ty-constraint-order”

Requirements

  • Compatibility (from SKILL.md): Requires Cargo, mktemp, and a POSIX-compatible shell; uses cargo-nextest when available and otherwise falls back to cargo test.

What it can do on your machine

Read from SKILL.md and the folder at commit a5aee68. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires Cargo, mktemp, and a POSIX-compatible shell; uses cargo-nextest when available and otherwise falls back to cargo test.

    From compatibility in the SKILL.md frontmatter.

Context cost

Wobbling Ty Constraint Order loads about 838 tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 223 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~59
When it runs · the whole SKILL.md, loaded when a task matches
~838

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from astral-sh/ruff at commit a5aee68, republished under its MIT licence (© astral-sh). 223 words, ~838 tokens.

Download SKILL.mdSave it as .claude/skills/wobbling-ty-constraint-order/SKILL.md (or your agent's skills folder).
name
wobbling-ty-constraint-order
description
Use when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty inference and mdtest results.
compatibility
Requires Cargo, mktemp, and a POSIX-compatible shell; uses cargo-nextest when available and otherwise falls back to cargo test.

Wobbling ty constraint order

TY_CONSTRAINT_SET_ORDER perturbs both the builder-local TDD-variable order and the local typevar order used to orient typevar-to-typevar constraints. The setting is fixed for the lifetime of each test process.

  • unset/0: normal ordering;
  • reverse: reverse both orderings;
  • an integer: XOR each local ID with that mask. Small masks immediately perturb dense arena IDs: 1 swaps adjacent IDs, 3 reverses blocks of four, and powers of two exchange neighboring blocks.

This deliberately changes internal TDD shape. Run mdtests only: graph-structure unit snapshots are expected to differ. Never enable snapshot updates for a wobble run, since updating would hide the failures being sought.

Run

From the Ruff root, first establish the normal baseline, then run the reversed and XOR-masked orders sequentially. Set TY_CONSTRAINT_ORDER_LOG_DIR to retain logs in a particular writable directory; otherwise mktemp chooses an appropriate temporary directory (respecting the environment's temporary-directory configuration).

bash
set -u

if test -n "${TY_CONSTRAINT_ORDER_LOG_DIR:-}"; then
    log_dir="$TY_CONSTRAINT_ORDER_LOG_DIR"
    mkdir -p "$log_dir"
else
    log_dir="$(mktemp -d -t ty-constraint-order.XXXXXXXX)"
fi
printf '%s\n' "logs: $log_dir"

if cargo nextest --version >/dev/null 2>&1; then
    runner=nextest
else
    runner=test
fi
printf '%s\n' "runner: cargo $runner"

export CARGO_PROFILE_DEV_OPT_LEVEL=1
export CARGO_PROFILE_DEV_DEBUG=line-tables-only
export INSTA_UPDATE=no
export MDTEST_UPDATE_SNAPSHOTS=0
unset INSTA_FORCE_PASS || true

for order in normal reverse 1 2 3 4 7 8 15; do
    if test "$order" = normal; then
        unset TY_CONSTRAINT_SET_ORDER || true
    else
        export TY_CONSTRAINT_SET_ORDER="$order"
    fi

    log="$log_dir/ty-constraint-order-${order}.log"
    if test "$runner" = nextest; then
        cargo nextest run -p ty_python_semantic --test mdtest \
            --no-fail-fast --status-level fail --failure-output immediate-final \
            >"$log" 2>&1
    else
        cargo test -p ty_python_semantic --test mdtest >"$log" 2>&1
    fi
    status=$?

    printf '%-7s exit=%s\n' "$order" "$status"
    grep -E 'Summary \[|test result:' "$log" | tail -1 || true
    printf '%s\n' "  log: $log"
done

Read each failing log and report the mdtest file, section, line, expected result, and actual diagnostic/revealed type. A wobble failure is evidence that inference semantics or displayed solution types still depend on ordering; do not update the mdtest expectations merely to make the wobble run green.

The knob does not perturb hashing of Salsa-backed values. The Solution binding order follows constraint source order section of regression/constraint_set_ordering.md separately varies typevar declaration order to catch binding-order changes caused by draining an FxHashMap<BoundTypeVarInstance, ...>.

© astral-sh, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/wobbling-ty-constraint-order of astral-sh/ruff.

Open the folder on GitHubat commit a5aee68

Compare with similar skills

Wobbling Ty Constraint Order next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Wobbling Ty Constraint Order compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Wobbling Ty Constraint Order this skillastral-sh/ruff50k—~838Automated safety check: PassMIT
Writing Pythonarchibate/dotfiles-opencode108—~2.3kAutomated safety check: NotesNone
Pythonalinaqi/maggy707—~1.1kAutomated safety check: PassMIT
Simple Modern Uvjlevy/simple-modern-uv301—~1.9kAutomated safety check: PassMIT
Checkav1155/houndarr292—~366Automated safety check: PassAGPL-3.0
Python Helpershepherdjerred/monorepo112—~2.3kAutomated safety check: PassGPL-3.0

Similar skills

  • Writing Python

    archibate/dotfiles-opencode

    Use this before writing Python code, creating Python scripts, modifying Python files, or when user asks to "write python", "create a python script", "implement in python".

    108 GitHub stars~2.3k tokensUpdated 5 mo ago
    DevelopmentAuto-check: notes
  • Python

    alinaqi/maggy

    Python development with ruff, mypy, pytest - TDD and type safety

    707 GitHub stars~1.1k tokensUpdated 17 days ago
    DevelopmentAuto-check passed
  • Simple Modern Uv

    jlevy/simple-modern-uv

    Start, selectively modernize, fully migrate, or update Python projects using simple-modern-uv practices: uv, ruff, BasedPyright, pytest, GitHub Actions CI, and tag-driven PyPI publishing.

    301 GitHub stars~1.9k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Check

    av1155/houndarr

    Run Houndarr's full quality gate (ruff lint, ruff format check, mypy, bandit, pytest) and report results in a single table.

    292 GitHub stars~366 tokensUpdated 5 days ago
    Testing & QAAuto-check passed
  • Python Helper

    shepherdjerred/monorepo

    Current Python development guidance for versions, uv and pip, packaging, typing, asyncio, pytest, Ruff, security, and runtime boundaries.

    112 GitHub stars~2.3k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Kedro Babysit

    kedro-org/kedro

    Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…

    11k GitHub stars~4k tokensUpdated 2 days ago
    DevelopmentAuto-check passed

More from astral-sh/ruff

  • Official

    A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…

    50k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Official

    A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…

    50k GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Adding Ty Diagnostics

    astral-sh/ruff

    Official

    A skill your agent uses when a user says "add a ty rule", "add a ty diagnostic", "write this new ty diagnostic", "change a ty error message", "review ty diagnostics", or asks to add, update, or…

    50k GitHub stars~556 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Wobbling Ty Constraint Order

What does Wobbling Ty Constraint Order do?

A skill your agent uses when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty…. Wobbling Ty Constraint Order is an agent skill from astral-sh/ruff, published by the product's own GitHub organization. Use when a user asks to wobble ty constraint ordering, check constraint-set or TDD ordering determinism, test reversed constraint/typevar IDs, or investigate nondeterministic ty inference and mdtest results.

When should I use Wobbling Ty Constraint Order?

Wobbling Ty Constraint Order fits situations like: A user asks to wobble ty constraint ordering; check constraint-set; TDD ordering determinism; test reversed constraint/typevar IDs.

How do I install Wobbling Ty Constraint Order in Claude Code?

Run `npx skills add astral-sh/ruff --skill wobbling-ty-constraint-order -a claude-code`. Or copy the skill folder (.agents/skills/wobbling-ty-constraint-order in astral-sh/ruff) into .claude/skills/wobbling-ty-constraint-order in your project. Claude Code loads it when a task matches its description.

How do I install Wobbling Ty Constraint Order in Codex?

Run `npx skills add astral-sh/ruff --skill wobbling-ty-constraint-order -a codex`. Or copy the skill folder (.agents/skills/wobbling-ty-constraint-order in astral-sh/ruff) into .agents/skills/wobbling-ty-constraint-order in your project. Codex loads it when a task matches its description.

Can I use Wobbling Ty Constraint Order in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add astral-sh/ruff --skill wobbling-ty-constraint-order -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wobbling-ty-constraint-order, .gemini/skills/wobbling-ty-constraint-order, .github/skills/wobbling-ty-constraint-order and .opencode/skills/wobbling-ty-constraint-order in your project.

What does Wobbling Ty Constraint Order need to run?

Going by SKILL.md and its folder, Wobbling Ty Constraint Order needs the command-line tools its instructions call (cargo). Compatibility (from SKILL.md): Requires Cargo, mktemp, and a POSIX-compatible shell; uses cargo-nextest when available and otherwise falls back to cargo test. .

Does Wobbling Ty Constraint Order access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Wobbling Ty Constraint Order safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Wobbling Ty Constraint Order use?

Wobbling Ty Constraint Order is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Wobbling Ty Constraint Order use?

About 838 tokens (SKILL.md is roughly 3.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Wobbling Ty Constraint Order?

Skills that share tags, products or a category with Wobbling Ty Constraint Order: Writing Python (archibate/dotfiles-opencode, 108 stars), Python (alinaqi/maggy, 707 stars), Simple Modern Uv (jlevy/simple-modern-uv, 301 stars) and Check (av1155/houndarr, 292 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Wobbling Ty Constraint Order?

astral-sh (a GitHub organization, an official publisher) maintains it in astral-sh/ruff, which has 49,990 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 11, 2026.

Source: astral-sh/ruff on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.