Agent skill

Simple Modern Uv

by jlevy in 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.

MITAuto-check passedTesting & QA

Install Simple Modern Uv

skills CLI
$ npx skills add jlevy/simple-modern-uv --skill simple-modern-uv -a claude-code

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

GitHub CLI
$ gh skill install jlevy/simple-modern-uv simple-modern-uv --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/jlevy/simple-modern-uv.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/simple-modern-uv .claude/skills/simple-modern-uv && 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
simple-modern-uv
GitHub stars
301
Token cost
~1.9k tokens
SKILL.md length
814 words
Files
7 (incl. references)
Skills in repo
1
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Creating a Python project
  • SKILL.md covers Route the Request, Choose the Lowest Useful…, Inspect Before Acting and Interview Contract, plus 2 more sections
  • Calls make
  • Adding selected tooling

What it does

Simple Modern Uv is an agent skill from 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. Use when creating a Python project; adding selected tooling or repository practices to an existing project; migrating from Poetry, setuptools, pip, requirements.txt, PDM, or hatch; or updating a project already managed by the simple-modern-uv Copier template.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/adopt-existing.md`, `references/adopt-selectively.md` and `references/customize.md`). Compatibility notes: Requires git and uv (https://docs.astral.sh/uv/); network access to GitHub

It sits in Testing & QA, covering Linting and formatting, Unit testing and Creative writing and fiction. It works with Python, GitHub Actions, pytest and Ruff. The repository describes itself as: A powerful, minimal agent skill and template for modern Python projects with uv. The licence is MIT.

When your agent uses it

  • Creating a Python project
  • Adding selected tooling
  • Repository practices to an existing project
  • Migrating from Poetry

Example prompts

  • “/simple-modern-uv”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Requires git and uv (https://docs.astral.sh/uv/); network access to GitHub

What it can do on your machine

Read from SKILL.md and the folder at commit 019733b. 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:

    • make

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

  • Network

    Links to these hosts (documentation or services it may open):

    • copier.readthedocs.io

    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 git and uv (https://docs.astral.sh/uv/); network access to GitHub

    From compatibility in the SKILL.md frontmatter.

Context cost

Simple Modern Uv loads about 1.9k tokens when it runs, and up to ~8.2k if it reads all its reference files. Until then it costs about 116 tokens; SKILL.md has 814 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~116
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~8.2k

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 jlevy/simple-modern-uv at commit 019733b, republished under its MIT licence (© jlevy). 814 words, ~1,850 tokens.

Download SKILL.mdSave it as .claude/skills/simple-modern-uv/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.
name
simple-modern-uv
description
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. Use when creating a Python project; adding selected tooling or repository practices to an existing project; migrating from Poetry, setuptools, pip, requirements.txt, PDM, or hatch; or updating a project already managed by the simple-modern-uv Copier template.
compatibility
Requires git and uv (https://docs.astral.sh/uv/); network access to GitHub
license
MIT
metadata.author
jlevy (github.com/jlevy)
metadata.source
https://github.com/jlevy/simple-modern-uv

simple-modern-uv: Modern Python Project Setup

simple-modern-uv is a minimal, modern Python project template: uv for package management, ruff for linting and formatting, BasedPyright for type checking, pytest, GitHub Actions CI, and tag-driven publishing to PyPI. It is a Copier template, so fully managed projects can pull future template improvements with copier update.

Route the Request

Choose one workflow and load its reference before editing:

User goalWorkflow
Start a project from scratchStart a new project
Add one or more practices without restructuring everythingAdopt selected features
Convert an existing package to the template’s structure and update pathUpgrade an existing project
Pull upstream changes into a project with .copier-answers.ymlUpdate a template-managed project

Use references/customize.md for license, publishing, apps, and common policy changes. When something fails, consult references/faq.md before improvising.

If this file was fetched from a URL rather than installed as a folder, fetch the selected reference and any shared reference it names from the same Git ref. Never mix a pinned SKILL.md with references from main.

Choose the Lowest Useful Adoption Level

These are working modes, not certifications:

LevelResult
SelectiveAdopt only named feature bundles. Preserve the current build backend, layout, release model, and equivalent tools unless the user asks to change them. Do not add .copier-answers.yml.
Core toolchainAdopt uv dependency management, lockfile policy, lint/type/test commands, CI, and agent guidance. Preserve packaging, versioning, or layout where changing them has no stated benefit. This is not Copier-managed unless the user chooses full migration.
Full template-managedRender or migrate to the template structure, record .copier-answers.yml, and use Copier for future updates. Explicitly document any deliberate deviations.

Choose the lowest level that satisfies the request. A named feature request is selective by default. “Upgrade/migrate this project to simple-modern-uv” means full migration unless repository constraints make a lower level safer; surface that change of scope before acting.

Inspect Before Acting

For an existing repository, inspect its instructions and working tree first. Then map:

  • project metadata, dependencies, Python support, package layout, and build backend
  • current lockfiles, environment manager, linting, typing, tests, and CI
  • versioning, release, publishing, license, private-index, and platform constraints
  • existing AGENTS.md, CLAUDE.md, .copier-answers.yml, and local modifications

Preserve user work and established behavior. Work on a branch, and never overwrite an existing configuration merely because the template has a different default.

Interview Contract

New projects and full migrations use the template questions in copier.yml. Infer everything possible, then ask the user to confirm material choices once in one batched message.

Answer keyMeaningNotes
package_namePyPI package and GitHub repo nameNormalize to kebab-case and show the derived name
package_modulePython module nameDerive snake_case from the package name; show it, do not ask
package_descriptionOne-line descriptionInfer from existing metadata when possible
package_licenseMIT, Apache-2.0, BSD-3-Clause, AGPL-3.0-or-later, Proprietary, or NoneAlways surface, naming MIT as the new-project default
publish_to_pypitrue or falseAlways surface; use false for private packages and unpublished apps

Infer author name, author email, and GitHub organization from project metadata, git, the remote, and authenticated GitHub state. Include the inferred values in the confirmation summary rather than asking separately.

For new projects, apply the template conventions: src/ layout, Python 3.11+, line length 100, and tag-derived versions beginning with v0.1.0. For published migrations, the next tag must exceed the published version. For selective and core adoption, preserve existing choices unless the requested feature requires a change; ask only about those material conflicts.

Always surface changes to supported Python versions, package layout, build backend, versioning, license, publishing, or CI provider. These are project decisions, not incidental implementation details.

Show full SKILL.md (234 more words)Show less

Shared Execution Contract

  • Use the repository’s reviewed, pinned Copier command and 14-day dependency cool-off.
  • Render the template to a temporary sibling directory when a reference implementation is useful. Compare and adapt; do not blindly copy over an existing project.
  • Adopt each feature’s complete dependency closure. For example, a locked CI workflow also needs compatible project metadata, uv.toml, uv.lock, and commands.
  • Keep equivalent existing tooling when replacement is outside the requested scope.
  • Add .copier-answers.yml only for a deliberate full migration. Selective copying does not create honest Copier lineage and must not pretend that it does.
  • Keep changes reviewable and report conflicts or deliberate deviations explicitly.

Verification and Handoff

Verify every touched path. Full and core adoption normally require make install, make lint, and make test; publishable projects also require make build. Selective adoption runs the smallest commands that prove the selected features and their failure paths. Validate workflow syntax and preserve existing tests whenever CI changes.

Before reporting success, summarize five categories:

  • Adopted: template practices used as designed
  • Adapted: practices adjusted to preserve project constraints
  • Preserved: existing choices or equivalent tools intentionally retained
  • Deferred: relevant practices intentionally left for later
  • Removed: superseded files or tooling, if any

Also state whether the result is selective, core, or full template-managed; list the validation commands and outcomes; and name any decision that still belongs to the user.

<!-- This document follows common-doc-guidelines.md.
See github.com/jlevy/practical-prose and review guidelines before editing.
-->

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

Files

SKILL.md and 6 other files (references) in skills/simple-modern-uv of jlevy/simple-modern-uv.

  • SKILL.md
  • references/adopt-existing.md
  • references/adopt-selectively.md
  • references/customize.md
  • references/faq.md
  • references/start-new-project.md
  • references/update-templated-project.md

Open the folder on GitHubat commit 019733b

Compare with similar skills

Simple Modern Uv 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.

Simple Modern Uv compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Simple Modern Uv this skilljlevy/simple-modern-uv301—~1.9kAutomated safety check: PassMIT
Python Helpershepherdjerred/monorepo112—~2.3kAutomated safety check: PassGPL-3.0
Kedro Babysitkedro-org/kedro11k—~4kAutomated safety check: PassCustom licence
Update Dependenciesalorence/django-modern-rpc111—~1.3kAutomated safety check: PassMIT
Python Pypi Package Buildergithub/awesome-copilot40k1 repos~4.6kAutomated safety check: PassMIT
Checkav1155/houndarr292—~366Automated safety check: PassAGPL-3.0

Similar skills

  • 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 today
    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 yesterday
    DevelopmentAuto-check passed
  • Update Dependencies

    alorence/django-modern-rpc

    Routine update of all project dependencies — uv itself, uv.lock (all groups), tool versions pinned in GitHub workflows and .pre-commit-config.yaml (uv, ruff, mypy...), and SHA-pinned GitHub Actions.

    111 GitHub stars~1.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Python Pypi Package Builder

    github/awesome-copilot

    Official

    End-to-end skill for building, testing, linting, versioning, and publishing a production-grade Python library to PyPI.

    40k GitHub starsUsed in 1 repo~4.6k tokens
    DevelopmentAuto-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 4 days ago
    Testing & QAAuto-check passed
  • Code Patterns

    Aedelon/claude-code-blueprint

    Reference patterns for REST APIs, pytest/vitest testing, Docker multi-stage builds, GitHub Actions CI/CD, PostgreSQL, TypeScript generics, Python async, and React Server Components.

    120 GitHub stars~1.2k tokensUpdated 7 mo ago
    DevOps & CloudAuto-check passed

Questions about Simple Modern Uv

What does Simple Modern Uv do?

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. Simple Modern Uv is an agent skill from 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.

When should I use Simple Modern Uv?

Simple Modern Uv fits situations like: creating a Python project; adding selected tooling; repository practices to an existing project; migrating from Poetry.

How do I install Simple Modern Uv in Claude Code?

Run `npx skills add jlevy/simple-modern-uv --skill simple-modern-uv -a claude-code`. Or copy the skill folder (skills/simple-modern-uv in jlevy/simple-modern-uv) into .claude/skills/simple-modern-uv in your project. Claude Code loads it when a task matches its description.

How do I install Simple Modern Uv in Codex?

Run `npx skills add jlevy/simple-modern-uv --skill simple-modern-uv -a codex`. Or copy the skill folder (skills/simple-modern-uv in jlevy/simple-modern-uv) into .agents/skills/simple-modern-uv in your project. Codex loads it when a task matches its description.

Can I use Simple Modern Uv 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 jlevy/simple-modern-uv --skill simple-modern-uv -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/simple-modern-uv, .gemini/skills/simple-modern-uv, .github/skills/simple-modern-uv and .opencode/skills/simple-modern-uv in your project.

What does Simple Modern Uv need to run?

Going by SKILL.md and its folder, Simple Modern Uv needs the command-line tools its instructions call (make). Our summary lists: Python 3. Compatibility (from SKILL.md): Requires git and uv (https://docs.astral.sh/uv/); network access to GitHub.

Does Simple Modern Uv access the network?

SKILL.md names 1 domain. As links in the text: copier.readthedocs.io. This is read from the text; nothing was executed.

Is Simple Modern Uv 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 Simple Modern Uv use?

Simple Modern Uv is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Simple Modern Uv use?

About 1.9k tokens (SKILL.md is roughly 7.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.

What are the alternatives to Simple Modern Uv?

Skills that share tags, products or a category with Simple Modern Uv: Python Helper (shepherdjerred/monorepo, 112 stars), Kedro Babysit (kedro-org/kedro, 11k stars), Update Dependencies (alorence/django-modern-rpc, 111 stars) and Python Pypi Package Builder (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Simple Modern Uv?

jlevy (a GitHub user) maintains it in jlevy/simple-modern-uv, which has 301 GitHub stars. The repository was last updated on August 26, 2026.

Source: jlevy/simple-modern-uv on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.