Asi fuck-old-python
Reject projects requiring Python < 3.13. Never downgrade, never poison the env.
install
source · Clone the upstream repo
git clone https://github.com/plurigrid/asi
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/plurigrid/asi "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/asi/skills/fuck-old-python" ~/.claude/skills/plurigrid-asi-fuck-old-python && rm -rf "$T"
manifest:
plugins/asi/skills/fuck-old-python/SKILL.mdsource content
Fuck Old Python
When a dependency, tool, or project requires Python < 3.13:
- Do not install an old Python version. Not via uv, pyenv, brew, nix, or anything else.
- Do not create venvs with old interpreters.
- Do not add compatibility shims.
- Say what's broken and why. Name the exact dependency and version constraint.
- Find alternatives:
- Fork and patch the dependency
- Use a container (Docker/OCI) to isolate the rot
- Run it on a remote machine that already has the old version
- Find a modern replacement
- Tell the maintainer to update
The Principle
Modern Python (3.13+) is the floor. Projects that can't run on current Python are unmaintained or hostile to their users. We don't bend our environment to accommodate them — they bend to us, or they get replaced.
Phrases to Use
- "This requires Python 3.11 — that's two years old and we don't install legacy interpreters."
- "The dependency
pins toX
. File an issue or fork it."python < 3.13 - "Running this in a container instead of poisoning the host env."
What Counts as Poison
(or any version < 3.13)uv python install 3.11pyenv install 3.10.x- Adding
anywherepython_requires = "<3.13" - Downgrading
,typing_extensions
, or any stdlib backport to accommodate old coderegex