dignified-python

작성자: dagster-io

의견이 반영된 프로덕션 Python 표준으로, 자동 버전 감지(3.10-3.13)를 지원합니다. 사용 시

npx skills add https://github.com/dagster-io/skills --skill dignified-python

Dignified Python

Opinionated Python guidance for writing clean, maintainable, modern Python code (versions 3.10-3.13).

When to Use This Skill

Auto-invoke when users ask about:

  • "make this pythonic" / "is this good python"
  • "type hints" / "type annotations" / "typing"
  • "LBYL vs EAFP" / "exception handling"
  • "pathlib vs os.path" / "path operations"
  • "CLI patterns" / "click usage"
  • "code review" / "improve this code"
  • Any Python code quality or standards question

Note: This skill is general-purpose Python style guidance, not Dagster-specific. It captures one explicit, LBYL-leaning set of conventions; project conventions can override it when needed.

When to Use This Skill vs. Others

User NeedUse This SkillAlternative Skill
"make this pythonic"✅ Yes - Python standards
"is this good python"✅ Yes - code quality
"type hints"✅ Yes - typing guidance
"LBYL vs EAFP"✅ Yes - exception patterns
"pathlib vs os.path"✅ Yes - path handling
"best practices for dagster"❌ No/dagster-best-practices
"implement X pipeline"❌ No/dg for implementation
"which integration to use"❌ No/dagster-expert
"CLI argument parsing"✅ Yes - CLI patterns

Core Knowledge (ALWAYS Loaded)

@dignified-python-core.md

Version Detection

Identify the project's minimum Python version by checking (in order):

  1. pyproject.toml - Look for requires-python field (e.g., requires-python = ">=3.12")
  2. setup.py or setup.cfg - Look for python_requires
  3. .python-version file - Contains version like 3.12 or 3.12.0
  4. Default to Python 3.12 if no version specifier found

Once identified, load the appropriate version-specific file:

  • Python 3.10: Load versions/python-3.10.md
  • Python 3.11: Load versions/python-3.11.md
  • Python 3.12: Load versions/python-3.12.md
  • Python 3.13: Load versions/python-3.13.md

Conditional Loading (Load Based on Task Patterns)

Core files above cover 80%+ of Python code patterns. Only load these additional files when you detect specific patterns:

Pattern detection examples:

  • If task mentions "click" or "CLI" -> Load cli-patterns.md
  • If task mentions "subprocess" -> Load subprocess.md

Reference Documentation Structure

This skill's reference material is organized by topic:

Core References

  • dignified-python-core.md - Essential standards (always loaded)
  • cli-patterns.md - Command-line interface patterns (click, argparse)

Version-Specific References (versions/)

  • python-3.10.md - Features available in Python 3.10+
  • python-3.11.md - Features available in Python 3.11+
  • python-3.12.md - Features available in Python 3.12+
  • python-3.13.md - Features available in Python 3.13+

Advanced Topics (references/advanced/)

  • exception-handling.md - LBYL patterns, error boundaries
  • interfaces.md - ABC and Protocol patterns
  • typing-advanced.md - Advanced typing patterns
  • api-design.md - API design principles

When to Read Each Reference Document

references/advanced/exception-handling.md

Read when:

  • Writing try/except blocks
  • Wrapping third-party APIs that may raise
  • Seeing or writing from e or from None
  • Unsure if LBYL alternative exists

references/advanced/interfaces.md

Read when:

  • Creating ABC or Protocol classes
  • Writing @abstractmethod decorators
  • Designing gateway layer interfaces
  • Choosing between ABC and Protocol

references/advanced/typing-advanced.md

Read when:

  • Using typing.cast()
  • Creating Literal type aliases
  • Narrowing types in conditional blocks

references/module-design.md

Read when:

  • Creating new Python modules
  • Adding module-level code (beyond simple constants)
  • Using @cache decorator at module level
  • Seeing Path() or computation at module level
  • Considering inline imports

references/advanced/api-design.md

Read when:

  • Adding default parameter values to functions
  • Defining functions with 5 or more parameters
  • Using ThreadPoolExecutor.submit()
  • Reviewing function signatures

references/checklists.md

Read when:

  • Final review before committing Python code
  • Unsure if you've followed all rules
  • Need a quick lookup of requirements

How to Use This Skill

  1. Core knowledge is loaded automatically (defaults, pathlib, imports, anti-patterns)
  2. Version detection happens once - identify the minimum Python version and load the appropriate version file
  3. Reference documents are loaded on-demand based on the triggers above
  4. Additional patterns may require extra loading (CLI patterns, subprocess)
  5. Each file is self-contained with complete guidance for its domain

dagster-io의 다른 스킬

dagster-expert
dagster-io
Dagster 프로젝트, 에셋 정의 및 dg CLI 워크플로우에 대한 전문 가이드를 제공합니다. Dagster 개념(에셋, 컴포넌트, 스케줄, 센서, 작업)에 대한 깊은 지식을 바탕으로 프로젝트 구조, 디버깅 및 코드베이스 탐색을 지원합니다. dg CLI를 사용한 일반적인 작업(프로젝트 생성, 정의 스캐폴딩, 에셋 목록 조회, 실행 시작, 프로젝트 구조 탐색)을 다룹니다. 자동화 접근 방식(스케줄, 센서, 선언적 자동화) 및 통합 패턴에 대한 지침을 포함합니다...
official
ci-iteration
dagster-io
This skill should be used when running CI checks iteratively and fixing failures. Use when executing make targets (fast-ci, all-ci, ci), iterating on…
official
cli-push-down
dagster-io
LLM 프롬프트에서 기계적 계산을 테스트된 CLI 명령어로 이동합니다. 임베디드 bash가 포함된 슬래시 명령어를 작성하거나 검토할 때, 스킬/명령어가...
official
cli-skill-creator
dagster-io
이 스킬은 CLI 도구를 위한 스킬을 생성할 때 사용해야 합니다. 사용자가 명령줄 도구를 문서화하거나, CLI 가이드를 만들거나, 스킬을 구축해 달라고 요청할 때 사용하세요.
official
cmux
dagster-io
이 스킬은 터미널 멀티플렉서 애플리케이션인 cmux를 사용할 때 활용해야 합니다. 사용자가 cmux 명령어, 작업 공간 관리, 터미널 등을 언급할 때 사용하세요.
official
command-creator
dagster-io
이 스킬은 Claude Code 슬래시 명령어를 생성할 때 사용해야 합니다. 사용자가 "명령어 생성", "슬래시 명령어 만들기", "명령어 추가"를 요청하거나 원할 때 사용하세요...
official
dignified-code-simplifier
dagster-io
파이썬 코드를 명확성, 일관성, 유지보수성을 위해 단순화하고 개선하며 모든 기능을 유지합니다. dignified-python 표준을 적용합니다.…
official
dignified-python
dagster-io
Production Python coding standards with automatic version detection (3.10-3.13). Use when writing, reviewing, or refactoring Python to ensure adherence to…
official