plugins/languages/python/skills/core/SKILL.md
Python 核心编码规范与工具链 — PEP 8 风格、命名约定、文件结构、uv 依赖管理、ruff lint/format。Use when 编写 Python 代码、初始化 Python 项目、配置 pyproject.toml、跑 lint/format、审查 Python 风格。Also triggers on "Python 规范"、"PEP 8 风格"、"uv init"、"ruff check"、"pyproject 配置"、"Python project setup"。
npx skillsauth add lazygophers/ccplugin python-coreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
适用于 Python 3.13/3.14 项目。所有新建/修改的 .py 文件都应遵守。
uv init --package my-project
cd my-project
uv add fastapi pydantic httpx
uv add --dev pytest pytest-cov ruff pyright
pyproject.toml 最小化配置:
[project]
name = "my-project"
version = "0.1.0"
requires-python = ">=3.13"
[tool.ruff]
line-length = 100
target-version = "py313"
[tool.ruff.lint]
select = ["E", "F", "I", "B", "UP", "ANN", "SIM", "RUF"]
ignore = ["ANN101", "ANN102"]
[tool.pyright]
typeCheckingMode = "strict"
pythonVersion = "3.13"
src layout 是默认选择 (隔离源码与测试, 防止 import 冲突):
my-project/
├── src/mypackage/
│ ├── __init__.py
│ ├── core.py
│ └── models.py
├── tests/
│ ├── conftest.py
│ └── test_core.py
├── pyproject.toml
└── uv.lock
文件 ≤ 500 行 (推荐 200-400 行)。超出就拆模块。
| 类别 | 风格 | 示例 |
|------|------|------|
| 模块/包 | lowercase 或 lower_snake | user_service.py |
| 类/异常 | CapWords | UserManager, HTTPClient (缩写大写) |
| 函数/变量 | lower_snake_case | calculate_total, user_id |
| 常量 | UPPER_SNAKE_CASE | MAX_RETRIES |
| 私有 | 前缀 _ | _internal_helper |
| 类型别名 (PEP 695) | CapWords | type UserId = int |
由 ruff format 自动处理:
ruff 自动排序)公共 API 必须有 docstring。私有/内部函数仅在逻辑非显然时写。
def calculate_average(numbers: list[float]) -> float:
"""计算浮点数列表的算术平均值。
Args:
numbers: 非空浮点数列表。
Returns:
所有数字的算术平均值。
Raises:
ValueError: 当列表为空。
"""
if not numbers:
raise ValueError("numbers cannot be empty")
return sum(numbers) / len(numbers)
注释只解释 WHY (设计动机), 不解释 WHAT (代码做了什么)。
优先使用:
list[int] / dict[str, int] / tuple[int, ...] (PEP 585, 不要 List/Dict)X | None (PEP 604, 不要 Optional[X])match 语句替代多层 if isinstancetype Alias = ... (PEP 695) 替代 TypeAlias@dataclass(slots=True) 替代手写 __init__from __future__ import annotations (PEP 649 默认延迟求值)uv run ruff check --fix .
uv run ruff format .
uv run pyright # 或 ty check
uv run pytest -q
CI 应同步跑这四条, 任一失败则阻断合并。
from typing import List, Dict, Optional (改用内置泛型 + |)os.path 操作路径 (改用 pathlib.Path)print 调试 (改用 logging / structlog, 见 python-error)requests 同步请求 (改用 httpx, 见 python-async)setup.py / requirements.txt (改用 pyproject.toml + uv.lock)try: ... except Exception: (只捕获具体异常)tools
UI/UX 与布局设计——做界面布局/结构/导航/组件/交互的设计决策。触发:做UI/UX/布局/排版/导航/组件/交互/栅格/响应式/图表选型/字体配对。按媒介路由 HTML/Web、原生 App(iOS/Android/桌面)、CLI、TUI。需后端动态系统不适用;配色/主题/色板走姊妹 skill design-color。
tools
主题与配色设计——做颜色搭配/调色板/主题/品牌色阶/暗模式的设计决策。触发:选配色/调色/主题/色板/品牌色/暗模式/对比度/色盲/UI风格。按媒介路由 HTML/Web(CSS变量)、原生App(平台token)、CLI(ANSI)、TUI(真彩/256/16降级)。保证可访问性(对比度/色盲安全)。需后端动态系统不适用;UI/UX 布局/组件/交互走姊妹 skill design-uiux。
tools
跨任意组件(plugin/skill/agent/command)的验证驱动优化循环纪律 skill。当用户要优化某个已有组件却无明确方向、或要防止改了反而更差(自评乐观偏差 / 多维同改归因失效 / 为凑分加废话膨胀)、或要把一套通用「评分→单变量改→改后验证严格更好才留否则回滚→触顶停」的纪律套到任意组件上时使用。管优化过程本身的纪律(validation gate / ratchet / 独立验证 / 触顶停),不评单组件深度(交 skill-dev),不查插件接线(交 plugin-dev)。仅手动 /optimize-any 触发。
data-ai
两层规则记忆 (基于 .skein/spec)。planning 时 recall 召回相关规则、task finish 后 sediment 沉淀学习 + prune 自动精简过期/重复/断链规则。core 常驻硬规 + recall 按需召回, 经判定门自动写盘 (不逐次问用户)。产出 .skein/spec 下 core/recall 规则文件 + index。另支持空仓 bootstrap 播种规则基线、记忆大面积失效 (大重构/换栈) 时 reconstruct 可逆归档后按项目类型分型重建、maintain 手动体检 (超预算/stale/断链/重复/废弃, --apply 自动修复)、auto-fix (Stop hook 写 .pending-fix 标记 → main 派 skein-specer bg 跑 maintain --apply 全自动修, 断链只报告)。