원클릭으로
python-quality-gates
Run and triage Python quality gates with minimal, root-cause fixes; use when validating feature work before completion.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run and triage Python quality gates with minimal, root-cause fixes; use when validating feature work before completion.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Apply project testing standards for app/tests layout, naming, dependency overrides, and route/service coverage.
Apply typed FastAPI route patterns with clean dependency boundaries, stable error mapping, and test coverage for success/failure paths.
Author review-ready implementation plans grounded in real code, with a hard single-PR size gate and decomposition into safe incremental tasks when exceeded.
Apply partitioned settings and singleton provider patterns; use when adding or refactoring settings and provider wiring.
Operate Backlog.md tasks through the backlog CLI only; use when reading, planning, executing, or finalizing any task under backlog/tasks.
Apply pluggy registration and lifespan startup patterns for package discovery, initialization ordering, and testable startup behavior.
| name | python-quality-gates |
| description | Run and triage Python quality gates with minimal, root-cause fixes; use when validating feature work before completion. |
Use this skill after each 3-5 meaningful edits and before task completion.
Run checks in this order for fastest signal:
cd app && uv run mypy . --exclude '(?:^|/)\\.venv(?:/|$)'cd app && uv run ruff check .cd app && uv run pytest tests --ignore=tests/smokeBy default, do not run app/tests/smoke/*. Run smoke tests only when explicitly requested and env vars are confirmed.
Always run from app/ and keep checks scoped to project code only (exclude virtualenv and non-project paths).
mypy first, then full sequence.ruff check, then full sequence.pytest target, then full sequence.When reporting results, use this structure: