dev-python-codinglisted
Install: claude install-skill DaniDSanj/Spec-Driven-Development-Template
# Convenciones de código Python
Los **valores** concretos de este proyecto (versión de Python, framework, cobertura) están en
`.claude/context/00_perfil_proyecto.md`. Aplica su **regla de campos sin rellenar**: si el campo tiene
default declarado y sigue vacío, úsalo y menciónalo en tu respuesta; si no tiene default seguro,
pregunta antes de generar nada que dependa de él.
Los tests tienen su propia skill: `dev-python-testing`.
## Versión y entorno
- Versión de Python: ver **Python → Versión** en el perfil del proyecto.
- Gestor de paquetes y entornos: **uv**. No uses pip/venv/poetry/pipenv salvo justificación explícita
y declarada en la respuesta.
- Layout de proyecto: **src layout**, obligatorio salvo scripts de un solo fichero. Evita que los
tests importen el paquete desde el directorio de trabajo en vez de desde el instalado, que es la
causa clásica de "en local pasa y en CI no". Los metadatos van en `pyproject.toml` (PEP 621):
```
[nombre-proyecto]/
├── pyproject.toml
├── README.md
├── src/
│ └── [paquete]/
│ ├── __init__.py
│ └── ...
└── tests/
└── test_*.py
```
## Gestión de dependencias
```bash
uv add <paquete> # dependencia de producción
uv add --dev <paquete> # dependencia de desarrollo
uv sync # instala desde el lockfile (uv.lock, versionado en git)
```
`uv.lock` se versiona siempre en Git — es lo que garantiza reproducibilidad exacta del entorno para
cualquier humano que retome el proyecto.
## He