From python-skills
Choose the right Python project shape before implementation, including uv project versus workspace layout, package, CLI, FastAPI, FastMCP, testing, packaging, tooling, and validation boundaries.
How this skill is triggered — by the user, by Claude, or both
Slash command
/python-skills:choose-python-project-shapeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Pick the smallest correct Python project shape before code changes begin.
Pick the smallest correct Python project shape before code changes begin.
The practical decision is what kind of Python surface the user needs, whether it should be a single uv project or workspace, which package or service owns the behavior, which validation commands should prove the work, and where package, API, MCP, test, or tooling boundaries should sit.
bootstrap-uv-python-workspace, bootstrap-python-service, or bootstrap-python-mcp-service.Use repo-local Python files, checked-out dependency sources, Dash MCP or Dash HTTP for installed Python docsets, and then official project documentation when Dash/local coverage is missing or stale. Check one of those source-specific paths before making claims about Python packaging, uv, FastAPI, FastMCP, tests, linting, or typing:
pyproject.tomlTranslate any documentation rule into the concrete repository decision it changes.
rg --files -g 'pyproject.toml' -g 'uv.lock' -g 'requirements*.txt' -g 'setup.py' -g 'setup.cfg' -g 'tox.ini' -g 'noxfile.py' -g '.python-version' -g '.github/workflows/*.yml' -g '.github/workflows/*.yaml'
uv project for one small package, CLI, service, or MCP serveruv workspace when multiple packages or services need shared local dependenciesuv sync --dev when dependency resolution mattersuv run pytest for behavioruv run ruff check . for lintuv run ruff format --check . only when formatting is enforceduv run mypy . when type checking is configuredbootstrap-uv-python-workspace, bootstrap-python-service, or bootstrap-python-mcp-servicebuild-python-projectuv-pytest-unit-testingintegrate-fastapi-fastmcpdiagnose-python-projectpython-package-workflowpython-tooling-style-workflowPrefer uv as the command and dependency surface.
Prefer pyproject.toml as the project metadata and tool configuration home unless the repository already uses dedicated config files for a clear reason.
Use a src/ layout when creating reusable packages or packages that need import behavior to match installed use. Preserve an existing flat layout unless the requested work already requires a package-structure cleanup.
Keep FastAPI and FastMCP adapter code thin around shared logic when the behavior should be reusable outside the web or MCP transport.
Use a workspace only when multiple packages or services need a real local package relationship. Do not add a workspace for a single small project that can stay simpler.
Return:
Shape: selected package, CLI, service, MCP server, workspace, tooling, package, CI, or upgrade shape.Why: concrete user-visible reason.Layout: expected files or package members.Next skill: the skill that should handle implementation.Validation: exact uv commands to prove the next change.Docs: docs or repo guidance that should change.Creates, edits, and verifies skills using a test-driven development approach with pressure scenarios and subagents.
npx claudepluginhub gaelic-ghost/socket --plugin python-skills