CommunityProgramación y desarrollogithub.com

dagster-io/dignified-python

Estándares de Python para producción con detección automática de versión (3.10-3.13). Úsalo al escribir, revisar o refactorizar Python en repositorios que deseen sintaxis de tipos moderna, comprobaciones de condición explícitas cuando sea práctico, operaciones con pathlib, guía de interfaces y patrones de producción pragmáticos.

¿Qué es dignified-python?

Este skill de agente AI (dignified-python) proporciona un conjunto de estándares de producción opinados para Python con detección automática de la versión de Python (3.10 a 3.13). Está diseñado para entornos de desarrollo y revisión de código, donde un AI agent (como Claude Code o Cursor) puede aplicarlo para escribir, revisar o refactorizar código Python. Es ideal para repositorios que buscan adoptar sintaxis de tipos moderna (como `list[int]` en lugar de `List[int]`), comprobaciones de condición explícitas y legibles (evitando trucos como `if x` no booleanos), operaciones con archivos mediante `pathlib` en lugar de `os.path`, y guías para interfaces y patrones de producción pragmáticos. El skill define reglas claras sobre el estilo de código, priorizando la legibilidad, el rendimiento y la mantenibilidad, y se activa automáticamente según la versión de Python detectada en el proyecto, siendo compatible con herramientas como Claude Code, Cursor, Codex, y Copilot. Su utilidad radica en estandarizar el código Python en equipos grandes, reducir errores comunes, y acelerar las revisiones de código.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dagster-io/skills/tree/main/skills/dignified-python

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace dignified-python?

Estándares de Python para producción opinados con detección automática de versión (3.10-3.13). Úsalo al escribir, revisar o refactorizar Python en repositorios que deseen sintaxis de tipos moderna, comprobaciones de condición explícitas cuando sea práctico, operaciones con pathlib, guía de interfaces y patrones de producción pragmáticos.

Resumen de Reglas

Sintaxis de Tipos Moderna

  • Usa la sintaxis de tipos nativa de tu versión de Python (ej. list[int] en lugar de List[int] desde Python 3.9+).
  • Prefiere X | None sobre Optional[X] cuando uses Python 3.10+.

Comprobaciones de Condición Explícitas

  • Evita comprobaciones implícitas de verdad: if x is not None: en lugar de if x: cuando x pueda ser un valor no booleano.
  • Usa if not x: solo cuando x es un booleano conocido.

Operaciones con pathlib

  • Siempre usa pathlib.Path para operaciones con rutas de archivos.
  • Evita os.path.join, os.path.exists, etc. a menos que haya una razón justificada.

Guía de Interfaces

  • Define clases abstractas con abc.ABC o typing.Protocol según corresponda.
  • Documenta claramente la interfaz esperada para colaboración en equipo.

Patrones de Producción Pragmáticos

  • Prioriza la legibilidad sobre la brevedad.
  • Usa dataclasses o pydantic para estructuras de datos.
  • Escribe docstrings para funciones y clases públicas.

Cómo Usar

Este skill se activa automáticamente en repositorios que contienen archivos Python. El AI agent aplicará estas reglas durante:

  1. Escritura de código: Nuevos archivos Python, funciones, y clases.
  2. Revisión de código: Al revisar PRs o sugerir mejoras.
  3. Refactorización: Al modernizar código Python existente.

Detección de Versión

El skill detecta automáticamente la versión de Python del proyecto (3.10, 3.11, 3.12 o 3.13) basándose en:

  • El archivo pyproject.toml
  • El archivo setup.cfg
  • El archivo .python-version

Si no se puede detectar, se asume Python 3.10 como versión mínima.

Compatibilidad

  • Claude Code: Totalmente soportado.
  • Cursor: Totalmente soportado.
  • Codex: Soporte básico.
  • Copilot: Soporte parcial (algunas reglas pueden no aplicarse automáticamente).

Ejemplos

Correcto (Python 3.10+)

from pathlib import Path
from typing import Protocol

class DatosUsuario(Protocol):
    nombre: str
    edad: int | None

def procesar_archivo(ruta: Path) -> list[str]:
    if not ruta.exists():
        raise FileNotFoundError(f"Archivo no encontrado: {ruta}")
    return ruta.read_text().splitlines()

Incorrecto

import os.path
from typing import List, Optional

class Usuario:
    def __init__(self, nombre: str):
        self.nombre = nombre

def procesar_archivo(ruta: str) -> List[str]:
    if not os.path.exists(ruta):
        raise FileNotFoundError(f"Archivo no encontrado: {ruta}")
    with open(ruta) as f:
        return [line.strip() for line in f if line.strip()]

Contribuciones

Para contribuir, por favor abre un issue o PR en el repositorio dagster-io/dignified-python.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Skills relacionados