By vino9net
Python project scaffolding, quality standards, and test runner for coding agents, e.g. Claude Code
Review the permission_guard.py hook log (path from $CLAUDE_HOOK_LOG) to find Bash commands that triggered permission prompts over a time window, then recommend updates to .claude/settings.json, .claude/settings.local.json, and .claude/scripts/permission_guard.py that would reduce future prompts. Triggers: "review permissions", "permission audit", "which commands keep prompting me", "/permission-review".
Run the project test suite and report results. Use before commits or after completing a feature to check for regressions.
Python development quality standards. Applies when writing, reviewing, or committing Python code. Enforces coding style, line length, type annotations, linting (ruff), type checking (ty), and testing (pytest).
Scaffold new Python projects or add components to existing ones. Triggers: "new python project", "scaffold", "add API/CLI to project", "init project", "create project skeleton", "update project dependencies". Also use when asked to add FastAPI, Flask, Django, or other components to an existing Python project.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A Claude Code plugin that scaffolds Python projects, enforces quality standards, and runs tests.
Install from the marketplace:
claude to start Claude Code/plugins to open the plugin managervino9net/vino9-claude-marketplace as the sourceOr install manually:
# 1. Clone
git clone https://github.com/vino9net/claude-python-skill.git ~/tools/claude-python-skill
# 2. Add to your Claude Code settings (~/.claude/settings.json)
# { "skills": ["~/tools/claude-python-skill"] }
# 3. Use it
/py:scaffold # create a new Python project
/py:pytest # run tests before committing
# quality standards apply automatically
| Skill | Command | Invocation |
|---|---|---|
| scaffold | /py:scaffold | User types the command |
| quality | — | Claude auto-invokes when writing Python |
| pytest | /py:pytest | User types the command |
/py:scaffoldGenerates new Python projects with a standard src/ layout, CI, and tooling pre-configured. Adds components to existing projects.
Available components:
| Component | Stack | What Gets Added |
|---|---|---|
| api | FastAPI + Uvicorn | api/, health check, test client |
| cli | Typer + Rich | cli.py, pyproject script entry |
| redis | redis-py | cache/, fakeredis fixtures |
Claude walks you through a short interview (2 rounds max), then generates the project.
quality (auto-invoked)Activates when writing, reviewing, or committing Python code:
str | None, not Optional[str])Scaffolded projects include these hooks in .claude/scripts/, customizable per project:
| Hook | Event | What it does |
|---|---|---|
format_on_save.py | PostToolUse (Edit/Write) | Auto-runs ruff format on .py files |
permission_guard.py | PermissionRequest (Bash) | Auto-grants python <<< heredocs, blocks push to protected branches |
/py:pytestRuns the test suite in an isolated subagent (keeps your main context clean):
uv run pytest -v --durations=5 --timeout=180
Reports back: pass/fail summary, slowest 5 tests, and failure tracebacks.
Clone and reference in your Claude Code settings:
git clone https://github.com/you/claude-python-skill.git ~/tools/claude-python-skill
~/.claude/settings.json){
"skills": [
"~/tools/claude-python-skill"
]
}
.claude/settings.json){
"skills": [
"~/tools/claude-python-skill"
]
}
my_project/
├── pyproject.toml
├── README.md
├── CLAUDE.md
├── .python-version
├── .pre-commit-config.yaml
├── .gitignore
├── .claude/
│ ├── settings.json
│ └── scripts/
│ ├── init_remote_env.sh
│ ├── permission_guard.py
│ └── format_on_save.py
├── .vscode/
│ └── settings.json
├── .github/workflows/python_build.yml
├── src/my_project/
│ ├── __init__.py
│ ├── py.typed
│ └── config.py
└── tests/
├── conftest.py
└── test_config.py
Components add more directories (e.g. api/, cli.py, cache/) as needed.
| Area | Choice |
|---|---|
| Package manager | uv |
| Layout | src/{name}/ |
| Python | 3.13+ |
| Line length | 88 chars (92 hard limit) |
| Linting | ruff (lint + format) + ty |
| Testing | pytest, pytest-asyncio |
| Config | pydantic-settings |
| Docstrings | Google style |
| Pre-commit | Always included |
Internal tooling — no license specified.
npx claudepluginhub vino9net/claude-python-skillOpinionated Python 3.11+ engineering system. Establishes strong defaults (SOLID, typing policy, testing standards, code smell detection) and routes to specialist skills for TDD, CLI, web, data/science, and constrained environments.
Python-specific validation, patterns, and expert agents
Skills for packaging, releasing, and distributing Python libraries
Python language discipline: conventions, modern idioms, type system, packaging, testing, and LSP-powered code intelligence
Comprehensive Pylint skills for Python linting and code quality with configuration, checkers, and CI integration.
Research-backed best practices for building modern, production-grade Python packages — project structure, pyproject.toml, typing, testing, CI/CD, documentation, versioning, API design, packaging, security, and developer experience