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.

Quellinformationen

Repository
SpecterOps/skills
Letzte Quellaktivität
29. Mai 2026 um 15:51
Erkannte Sprache von SKILL.md
Englisch
Sterne
718
Forks
81

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
4 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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.
Auf GitHub ansehen