Skip to content

Releases: skateddu/claude-code-python-setup

v1.3.0

14 Jun 10:15
32ac65b

Choose a tag to compare

Ready-to-use .claude configuration for Python projects — this release puts recently-documented Claude Code hook events to work and syncs the docs.

Added

  • Hooks verify.sh (Stop): runs ruff check + pytest when a turn ends; on failure, blocks the stop and feeds errors back so Claude keeps fixing until green (loop-guarded via stop_hook_active).
  • Hooks guard-secrets.sh (UserPromptSubmit): blocks prompts containing a hardcoded secret (AWS/GitHub/Google/Slack/Anthropic/OpenAI keys, PEM private keys).
  • Hooks session-start.sh (SessionStart): checks the uv environment (.venv, uv.lock freshness) and injects status into the session context.
  • Settings: fallbackModel chain (claude-sonnet-4-6, claude-haiku-4-5) for continuity when the primary model is unavailable.
  • pyproject.toml: PEP 735 [dependency-groups] — default dev group plus an opt-in agents group (uv sync --group agents).
  • .gitattributes: forces *.sh to LF so the hooks stay runnable on Windows checkouts.

Changed

  • enforce-uv: auto-rewrites simple bare python/pytest/ruff/mypy/bandit calls to uv run … via updatedInput instead of blocking; pip and compound commands still deny with guidance.
  • Hooks (enforce-uv, protect-main): migrated to the current hookSpecificOutput.permissionDecision format.
  • Agents: removed the hardcoded "Daisy" persona from description examples.
  • Docs: README + CLAUDE.md synced with recent Claude Code releases (subagent nesting, full permissionDecision set, dependency groups, fallbackModel).

Fixed

  • protect-main: git push --force-with-lease is no longer incorrectly blocked.

Full changelog: https://github.com/skateddu/claude-code-python-setup/blob/main/CHANGELOG.md