mcpField
P
python-pep-author

python-pep-author

github.com/pproenca开发218120 次安装11 周前更新
代码仓库

关于 python-pep-author

帮助将 Python 社区提案整理为符合格式与流程的 PEP 草稿。提供生成和检查草稿的脚本,以及关于提案类型、章节和评审流程的参考资料。

主要功能

  1. 01PEP 类型与流程指导
  2. 02PEP 草稿生成脚本
  3. 03草稿检查脚本
  4. 04标题字段与章节参考
  5. 05提交和评审流程说明

适用场景

  1. 01将 Python 提案整理为 PEP
  2. 02生成标题格式正确的草稿
  3. 03检查必需字段和章节
  4. 04准备向社区提交草稿

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pproenca/dot-skills --skill python-pep-author

安装后在 Claude Code 中输入/python-pep-author确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

gotchas.md
metadata.json
assets/templates/
pep-template.rst
references/
header-fields.md
pep-types.md
sections.md
status-lifecycle.md
workflow.md
scripts/
check-pep.sh
new-pep.sh

详细介绍

编写 Python 增强提案(PEP)

PEP 是 Python 社区用来提议新语言特性、标准库变更、互操作标准或流程/信息指南的设计文档。这项技能将作者从初步构想引导至格式正确、符合流程要求、可提交到 python/peps 仓库的草稿。

PEP 的难点不在于措辞,而在于选对类型、确保头部前言有效、让章节完整到达到验收标准,并遵循流程(审查、赞助、评审)。这项技能包含两个脚本,用于处理确定性任务;同时提供参考文档,帮助处理需要判断的事项。

适用场景

  • 用户要求撰写/起草/组织 PEP,或“Python 增强提案”。
  • 用户想要提议一项 Python 语言或标准库特性,并需要正式撰写提案。
  • 用户一直在 Python Discourse 上讨论某个想法,现在想将其整理成 PEP 草稿。
  • 用户需要了解或生成 PEP 模板、头部字段或章节结构。
  • 用户正在修订现有 PEP(更改状态、添加 Resolution、处理评审反馈)。

不要将此技能用于公司内部 RFC/设计文档(请使用 dev-rfc)——PEP 专指由 PEP 1 管理、面向上游 CPython/Python 社区的提案。

前提条件

  • 用于运行两个脚本的 Bash + coreutils(awk、sed、grep、date)——macOS/Linux 默认已提供。
  • 只有准备好提交时(第 6 步),才需要克隆或复刻 github.com/python/peps。起草无需仓库。
  • 起草或检查无需 Python 运行时;参考实现(如有)是作者单独维护的代码库。

工作流概览

1. Vet the idea ────► 2. Choose the type ────► 3. Scaffold the file
   (is it PEP-able?)     (Standards/Info/Process)   (scripts/new-pep.sh)
                                                          │
   6. Submit ◄──── 5. Self-check ◄──── 4. Draft each section
   (sponsor, PR)      (scripts/check-pep.sh)   (to the acceptance bar)
        │
        ▼
   7. Review & resolution ──► update Status + Resolution header
1. 审查想法(动笔之前)

重复已有工作或不属于整个社区范围的 PEP,一经发现就会被拒绝。请先将想法发布到 Python Discourse 的 Ideas 类别(如果属于专业领域,则发布到 Typing/Packaging 类别)。确认想法具有原创性、适用于整个社区,并且过去的讨论尚未对此作出定论。有关讨论场所及检查事项,请参阅 references/workflow.md。

2. 选择 PEP 类型

PEP 类型恰好有三种:标准轨道(Standards Track)、信息类(Informational)、流程类(Process)。类型决定必填头部字段(例如 Python-Version、Resolution)和验收标准。请参阅 references/pep-types.md 进行选择。

3. 搭建文件框架

请生成有效且头部格式正确的 reStructuredText 文件,不要手动输入前言(字段集合及其顺序都有严格要求):

scripts/new-pep.sh \
  --title "A short descriptive title" \
  --author "Random J. User <[email protected]>" \
  --type "Standards Track" \
  --python-version 3.15            # Standards Track only; omit otherwise

这会创建 pep-9999.rst(9999 是占位符;PEP 编辑者会分配实际编号),设置 Status: Draft 和当天的 Created 日期,并确保标题不超过 44 个字符。不带参数运行 scripts/new-pep.sh 可查看完整用法。

4. 起草各个章节

按照 PEP 12 的标准顺序填写正文各章节:摘要 → 动机 → 规范 → 原理 → 向后兼容性 → 安全影响 → 如何讲授 → 参考实现 → 被否决的想法 → 未决问题 → 致谢 → 脚注 → 变更历史 → 版权。 每个章节都有特定职责和质量标准——起草前请阅读 references/sections.md,并参阅 references/header-fields.md,了解需要填写的头部字段(Sponsor、Discussions-To、Requires 等)。

验收标准(摘自 PEP 1):提案必须有清晰且完整的描述,代表净改进,实现方案必须可靠,且不会给解释器带来不必要的复杂性,同时还要符合 “Pythonic” 原则。请按此标准撰写。

5. 自检草稿

在展示给任何人之前,先检查标题和必需的结构:

scripts/check-pep.sh pep-9999.rst

此脚本会验证必需的标题是否齐全、标题长度、有效的 Status/Type 值、Created 日期格式、强制要求的 CC0 版权声明,以及 Abstract 部分;同时报告 PASS / WARN / FAIL,并在出现任何 FAIL 时以非零状态码退出。 修复所有 FAIL。

6. 提交

如果没有共同作者是 CPython 核心开发者,你必须先找到一位赞助人(负责指导该 PEP 的核心开发者)。然后 fork python/peps,添加 pep-NNNN.rst,在 .github/CODEOWNERS 中列出作者/赞助人,并发起拉取请求。PEP 编辑会审核格式和合理性,并分配编号。完整步骤和角色定义见 references/workflow.md。

7. 审核与决议

当作者(和赞助人)认为内容已准备就绪时,内容审核以及接受/拒绝的决定由 Steering Council(或指定的 PEP-Delegate)负责。作出决定后,更新 Status,并添加一个链接到公告的 Resolution 标题。完整的状态生命周期和有效转换见 references/status-lifecycle.md。

参考文件

文件阅读时机
references/workflow.md审查、寻找赞助人、提交、审核流程、角色、转移所有权
references/pep-types.md在 Standards Track / Informational / Process 之间进行选择
references/header-fields.md填写任何前言字段时——格式、必填项与可选项、示例
references/status-lifecycle.md设置或更改 Status、了解有效转换、Resolution 标题
references/sections.md起草正文——每个部分必须包含的内容、RST 约定、接受标准

脚本

脚本功能
scripts/new-pep.sh根据模板生成有效的 pep-NNNN.rst,替换标题字段并强制执行标题长度限制
scripts/check-pep.sh根据 PEP 1 / PEP 12 规则检查 PEP 草稿(标题、状态/类型、日期格式、版权、摘要)

脚本使用的模板位于 assets/templates/pep-template.rst——如果你更愿意手动填写标题字段,也可以直接复制它。

注意事项

参见 gotchas.md。最常见的初期错误包括:跳过 Discourse 审查步骤、将实际属于 Process 的 PEP 误选为 Standards Track、遗漏强制要求的 CC0 版权声明,以及标题超过 44 个字符。

相关技能

  • dev-rfc — 用于内部/公司 RFC、设计文档和架构文档(不适用于上游 Python 提案)。

评论

支持 Markdown