Python Project Template (michen00)
This skill provides GitHub Copilot instructions for Python projects following the michen00/template structure with uv dependency management, Makefile-based task running, and Conventional Commits workflow.
High-Level Details
When working in this codebase:
**Language:** Python (>=3.11)**Dependency Management:** `uv` manages `.venv` in project root**Task Runner:** `Makefile` is the primary entry point for all development tasks**Execution:** Always use `uv run <command>` to ensure execution within the virtual environmentBuild and Validation Commands
Use these Makefile commands for all development tasks:
**Run All Checks:** `make check` - runs linting, type checking, and tests**Testing:** `make test` - runs `pytest` with coverage**Linting:** `make lint` - runs `ruff check`**Formatting:** `make format` - runs `ruff format`**Setup:** `make develop` - initial project setupAlways run `make check` before committing to ensure code quality.
Project Layout and Architecture
Understand the project structure:
`src/` - Source code for the package`tests/` - Unit and integration tests`pyproject.toml` - Project configuration, dependencies, and tool settings`uv.lock` - Exact dependency versions`.github/` - CI/CD workflows and templatesConventional Commits Format
Follow this commit message format: `<type>(<scope>): <subject>`
**Types:**
`feat` - New feature`fix` - Bug fix`docs` - Documentation changes`refactor` - Code refactoring`perf` - Performance improvements`test` - Test additions/changes`build` - Build system changes`ci` - CI/CD changes`chore` - Maintenance tasks**Rules:**
Use imperative mood ("add feature" not "added feature")Start subject with lowercase (unless proper noun/acronym)Keep subject line under 51 characters (≤50)Wrap body text at 72 charactersOne logical change per commit (atomic commits)**Example commits:**
```
feat(parser): add support for nested structures
fix(auth): resolve token expiration bug
docs(readme): update installation instructions
test(api): add integration tests for endpoints
```
Recommended Workflow
Follow this TDD-focused development workflow:
1. **Setup:** Run `make develop` to initialize environment
2. **Develop:** Write code and tests (TDD encouraged - write tests first)
3. **Verify:** Run `make check` before committing to validate all checks pass
4. **Commit:** Use Conventional Commits format
5. **Changelog:** Automatically managed via `git cliff` based on conventional commits
Documentation Sync Requirements
When making code changes, ensure these documentation files remain synced:
`AGENTS.md``CLAUDE.md``.github/copilot-instructions.md``.github/instructions/CI.instructions.md``README.md`Update relevant documentation files when changing functionality, architecture, or workflows.
Important Notes
Trust these instructions and only search for additional information if neededAlways execute Python commands via `uv run` to use the project virtual environmentThe Makefile is the single source of truth for task commandsRun `make check` frequently to catch issues earlyFollow TDD principles: write tests before implementation when possible