Skip to main content

scaffold-python

Scaffold a new Python project with a src layout, linting, and tests. Prefer uv-based setup and packaging; if uv is unavailable, warn the user, request approval, and use a fallback bootstrap path.

Informações da origem

Repositório
SpecterOps/skills
Última atividade na origem
29 de maio de 2026 às 15:51
Idioma detectado do SKILL.md
inglês
Estrelas
703
Forks
80

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
4 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
scaffold-python
description
Scaffold a new Python project with a src layout, linting, and tests. Prefer uv-based setup and packaging; if uv is unavailable, warn the user, request approval, and use a fallback bootstrap path.
metadata
{"author":"GhostWorks"}
# Scaffold Python Create a new Python project scaffold with consistent structure and tooling. ## Input Parsing Accept input as: `PROJECT_NAME` Examples: - `$scaffold-python my-tool` If no project name is provided, ask the user for one before proceeding. ## Preference Policy - Prefer `uv` for initialization and environment management. - If `uv` is missing: - warn the user that `uv` is preferred, - remind them to install `uv`, - ask for approval before using a fallback bootstrap path. - Fallback only after explicit user approval. Recommended install reminder: ```bash curl -LsSf https://astral.sh/uv/install.sh | sh ``` ## Steps (Preferred: uv) 1. Create the project directory in the current working directory. 2. Run: ```bash uv init --name <project_name> --package ``` 3. Ensure structure exists: ```text <project_name>/ src/ <package_name>/ __init__.py main.py tests/ __init__.py conftest.py .gitignore README.md pyproject.toml ``` 4. Ensure `pyproject.toml` includes: - Python `>=3.11` - dev dependencies: `pytest`, `ruff`, `mypy` - Ruff config (line length 88, 4-space indent) - mypy strict mode 5. Write `src/<package_name>/__init__.py` with: ```python __version__ = "0.1.0" ``` 6. Write `src/<package_name>/main.py` with a minimal `main()` entry point. 7. Write test stubs (`tests/__init__.py`, `tests/conftest.py`). 8. Write `.gitignore` for Python artifacts. 9. Write `README.md` with basic usage: ```bash uv run python -m <package_name> ``` 10. Run: ```bash uv sync ``` 11. Report created files and next commands. ## Fallback Steps (Only If Approved) Use only when `uv` is unavailable and user explicitly approves fallback. 1. Create the same project structure. 2. Write/adjust `pyproject.toml` with the same project and tool configuration. 3. Initialize a virtual environment: ```bash python3 -m venv .venv .venv/bin/python -m pip install --upgrade pip ``` 4. Install developer tools: ```bash .venv/bin/pip install pytest ruff mypy ``` 5. Report fallback usage and remind user to install `uv` for future scaffolds. ## Output Requirements - Report final directory tree. - Report whether preferred (`uv`) or fallback path was used. - If fallback was used, include the `uv` install reminder at the end.
Ver no GitHub