본문으로 건너뛰기
cccskills
무료GitHub에 공개

simple-modern-uv

Set up, modernize, or update Python projects using the simple-modern-uv template: uv, ruff, BasedPyright, pytest, GitHub Actions CI, and tag-driven PyPI publishing. Use when starting a new Python project or package; when modernizing, upgrading, or migrating an existing Python package to uv (from Poetry, setuptools, pip, requirements.txt, or PDM); or when updating a project already built from simple-modern-uv to the latest template.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jlevy/flowmark스타 83(GitHub 83 + cccskills 0)
연동 도구GitHub

실행 점수 미검증

설치 방법 보기

포함된 파일(4)

  • SKILL.md7.2 KB
  • references/adopt-existing.md6.3 KB
  • references/customize.md3.4 KB
  • references/faq.md4.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

simple-modern-uv: Modern Python Project Setup

simple-modern-uv is a minimal, modern Python project template: uv for everything package-related, ruff for lint/format, BasedPyright for type checking, pytest, GitHub Actions CI, and tag-driven publishing to PyPI with dynamic versioning (the git tag is the version). It is a Copier template, so projects can pull future template improvements at any time with copier update.

There are three workflows. Pick by situation:

  1. New project: create a project from scratch.
  2. Upgrade existing project: convert any existing Python package to this template’s structure and tooling. See references/adopt-existing.md.
  3. Update templated project: the project has a .copier-answers.yml from this template; pull the latest template changes.

For all workflows: when something fails, check references/faq.md before improvising. For post-setup customization (license change, private/unpublished package, entry points), see references/customize.md.

If this file was fetched from a URL rather than installed as a folder, fetch the reference files from the same ref: replace SKILL.md in the URL you used with references/<name>.md (don’t mix a pinned SKILL.md with references from main).

The Interview: What to Ask the User (and What Not to Ask)

Every workflow uses the same answer set (the template’s questions in copier.yml). Infer everything you can, then ask the user to confirm once, in a single batched message. Never ask one question at a time, and never ask about things listed under “conventions” below.

Essentials (confirm these; they are the user’s decisions):

Answer keyMeaningNotes
package_namePyPI package and GitHub repo nameNormalize to kebab-case (acme-widgets); show the user the name you derived
package_modulePython module nameDerived automatically as snake_case (acme_widgets); show it, don’t ask
package_descriptionOne-line description
package_licenseMIT (default), Apache-2.0, BSD-3-Clause, AGPL-3.0-or-later, Proprietary, or None (decide later)Always surface, naming the default
publish_to_pypitrue (default) or falseAlways surface; false for private packages and apps

For package_author_name, package_author_email, and package_github_org, infer values from git config user.name and user.email and the repo’s remote or gh auth status, and include them in the confirmation summary rather than asking.

Conventions (apply silently; mention in your final summary; deviate only if the user explicitly asks): src/ layout; first version is the git tag v0.1.0 for a new project (for upgrades of published packages, the next version above what’s on PyPI); Python 3.11+; line length 100; the template’s tool choices. These are never questions.

Workflow 1: New Project

  1. Run the interview (above). Then render, replacing the answer values:

    uvx --exclude-newer "14 days" copier@9.16.0 copy --defaults \
      --data package_name=acme-widgets \
      --data "package_description=One-line description" \
      --data "package_author_name=Jane Doe" \
      --data package_author_email=jane@example.com \
      --data package_github_org=acme \
      --data package_license=MIT \
      --data publish_to_pypi=true \
      gh:jlevy/simple-modern-uv acme-widgets
    

    (Omit --data keys that should take defaults. package_module derives automatically from package_name.)

  2. Initialize git, commit, then install. Sync only after the first commit: dynamic versioning reads git, and syncing first leaves the editable install’s version at 0.0.0.

    cd acme-widgets
    git init --initial-branch=main
    git add . && git commit -m "Initial commit from simple-modern-uv."
    make install
    git add uv.lock && git commit -m "Add uv.lock."
    
  3. Verify: make lint and make test must pass. Fix anything that doesn’t before declaring success.

  4. Offer next steps (don’t just stop): create the GitHub repo and push (an empty repo with no README, license, or .gitignore; the template provides them); fill in README.md; if publishing, docs/publishing.md covers the one-time PyPI Trusted Publisher setup; tag v0.1.0 when ready to release.

Workflow 2: Upgrade an Existing Project

Follow references/adopt-existing.md. In brief: run the interview with answers inferred from the repo itself (pyproject/setup.py metadata, LICENSE file, git remote, PyPI presence), render the template into a sibling temp directory with those answers, merge the template’s structure into the project (preserving its dependencies, metadata, and code), translate old tool configs to uv equivalents, write .copier-answers.yml so future updates work, and verify with make install, lint, and tests. Land everything on a branch as one reviewable change.

Workflow 3: Update a Templated Project

Requires a clean working tree and the project’s .copier-answers.yml.

  1. If the template has questions the project has never answered (keys present in the template’s copier.yml but missing from the project’s .copier-answers.yml), first check the project’s actual state and pass matching --data so defaults can’t revert hand customizations (see “Reconciling New Questions on Update” in references/customize.md).

  2. uvx --exclude-newer "14 days" copier@9.16.0 update --defaults --skip-answered
    
  3. Resolve any *.rej files or inline conflict markers, re-run make lint and make test, then summarize what the template update changed (check the release notes).

Verification Gate (All Workflows)

Before reporting success: make install, make lint, and make test all pass, and for publishable packages make build produces a wheel with a sensible version (requires at least one git commit; see the FAQ if the version looks wrong). Report what you ran and the results.

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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

flowmark

무료

Fast, consistent Markdown auto-formatter for typographic cleanup, normalization, and clean semantic line breaks. Use when creating, editing, or cleaning Markdown; formatting LLM-generated docs; adopting Flowmark in a repository; adding Markdown format scripts or commit hooks; or replacing Prettier or another Markdown formatter.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jlevy/flowmark832026년 9월 5일 업데이트

tbd

무료

Git-native issue tracking (beads), coding guidelines, knowledge injection, and spec-driven planning for AI agents. Drop-in replacement for bd/Beads with simpler architecture. Use for: tracking issues/beads with dependencies, creating bugs/features/tasks, planning specs, implementing features from specs, code reviews, committing code, creating PRs, loading coding guidelines (TypeScript, Python, Rust, TDD, golden testing, Convex, monorepo patterns), code cleanup, research briefs, architecture docs, agent handoffs, external tracker and Linear integration setup, personal Linear API key onboarding, viewing beads in a live browser, and checking out third-party library source code. Invoke when user mentions: tbd, beads, bd, shortcuts, issues, bugs, tasks, features, epics, todo, tracking, specs, planning, implementation, validation, guidelines, templates, commit, PR, pull request, code review, testing, TDD, test-driven, golden testing, snapshot testing, TypeScript, Python, Rust, Convex, monorepo, cleanup, dead code, refactor, handoff, research, architecture, labels, search, web, browser, live view, external tracker, Linear, Linear API key, integration setup, checkout library, source code review, or any workflow shortcut.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jlevy/flowmark832026년 9월 5일 업데이트

jlevy의 스킬 모두 보기

이 스킬의 문제 신고