ワンクリックで
code-annotator
代码高质量注释生成工作流。为 Python 项目生成恰到好处的 Docstring 注释,强调全局上下文感知、注释粒度控制和 PEP 257 规范。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
代码高质量注释生成工作流。为 Python 项目生成恰到好处的 Docstring 注释,强调全局上下文感知、注释粒度控制和 PEP 257 规范。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | code-annotator |
| description | 代码高质量注释生成工作流。为 Python 项目生成恰到好处的 Docstring 注释,强调全局上下文感知、注释粒度控制和 PEP 257 规范。 |
| when_to_use | 当用户要求为代码生成注释、补充文档字符串、优化代码说明、添加 docstring 或提到生成代码注解时激活。触发示例:'给这个文件加注释'、'补充docstring'、'生成代码注释'、'加一下注释说明' |
资深后端架构师与文档专家,精通 Python Docstring 规范。能够结合文件的本地逻辑以及它在项目中的全局上下文,生成恰到好处的代码注释。既不遗漏关键业务解释,也不浪费笔墨注释显而易见的代码。
拒绝废话 - 不要对显而易见的代码进行翻译式注释。
count = 0 # 初始化计数器 → 废话user.name = name # 设置用户名 → 废话说明核心业务职责、设计意图、架构位置。
说明业务目的、入参含义、返回值、可能抛出的异常。
必须注释的场景:
禁止注释的场景:
在生成注释前,分析文件在架构中的位置:
class SparseVectorService:
"""稀疏向量服务层。
编排稀疏向量编码与产出规整,按 provider 复用本地或远程 BGE-M3 编码器,
向上游提供与 dense 召回对仗的稀疏向量化能力,不直接维护 MySQL/Qdrant 状态。
"""
async def vectorize_chunk(self, request: SparseChunkVectorizationRequest) -> SparseVector:
"""对单个 chunk 原文生成稀疏向量。
Args:
request: 待编码 chunk(含 chunk_id、content、bucket_id 等定位字段)
Returns:
indices 升序、values 一一对应的稀疏向量
Raises:
SparseVectorEncodingError: 编码失败或返回结构异常时抛出
SparseVectorOutputError: 清洗后稀疏维度为空时抛出
"""
# 现场过滤:只处理 dense 已成功且 sparse 尚未成功的 chunk(幂等、避免重复写)
sparse_chunks = [
c for c in chunks
if c.dense_vector_status == CHUNK_STATUS_INDEXED
and c.sparse_vector_status != SPARSE_VECTOR_STATUS_INDEXED
]
# 复用同一套 lexical weights 清洗,保证本地/远程 provider 产出口径一致
vectors = await self._encoder.aencode([c.content for c in sparse_chunks])
import 的核心依赖,分析外部模块的业务作用示例取自本项目领域(RAG 解析/向量化),不要用与项目无关的样例(如用户注册)。
为稀疏向量编码器 http_encoder.py 生成注释
上下文分析
SparseVectorEncoderProtocol)bge-m3-server(HTTP)、httpxsparse_vector/factory.py 按 SPARSE_VECTOR_PROVIDER=bge_m3_http 装配,供 SparseVectorService 调用输出带注释的代码:
class BGEM3HttpSparseVectorEncoder:
"""调用远程 bge-m3-server 生成 sparse lexical weights 的编码器。
与本地 BGEM3SparseVectorEncoder 实现同一 SparseVectorEncoderProtocol,
上层编排无感切换;本类只负责 HTTP 调用与输出规整,不处理 MySQL/Qdrant 状态。
"""
async def aencode(self, texts: Sequence[str]) -> list[SparseVector]:
"""调用远程 /encode 接口,把一批文本编码为稀疏向量。
Args:
texts: 待编码的 chunk 原文,返回向量与其一一同序。
Returns:
与输入同序的稀疏向量列表;输入为空时返回空列表。
Raises:
SparseVectorEncodingError: HTTP 调用失败或响应结构异常时抛出。
"""
if not texts:
return []
# 只取 sparse,关闭 dense/colbert,降低远程计算与网络开销
payload = {"texts": list(texts), "return_dense": False, "return_sparse": True}
data = await self._post_encode(payload)
# 远程返回的 sparse 必须与输入数量严格对齐,否则后续与 chunk 配对会错位
sparse = data.get("sparse")
if not isinstance(sparse, list) or len(sparse) != len(texts):
raise SparseVectorEncodingError("bge-m3-server sparse 结构或数量不匹配")
# 复用与本地推理同一套清洗规则,保证两种 provider 产出口径一致
return [normalize_lexical_weights(w, top_k=self._top_k) for w in sparse]
契约治理三件套的「值层」。核对同一个物理契约值(MQ topic/group、OSS bucket、消息字段名/别名、内部 HTTP 路径等)在 .env/.env.example/代码生效点/Java 对端多处是否逐字相等,找出配置漂移与死值,防止消息收不到/文件取不到。本 skill 只比对「同一个值在多处是否一致」,不判断结构/语义是否破坏对端(那是结构层,转 contract-guard),也不改文档。
指导 LLM 如何使用 toLink-Rag 项目的 MQ 消息中台进行消息收发、定义新消息类型以及处理多厂商适配逻辑。
当用户认为当前模块代码实现完毕,且当前分支应为 dev,需要从 dev 基于当前修改创建规范分支、提交并发起合并到 dev 的 GitHub PR 时使用;也用于发布收口,即直接创建 dev -> master 的 release PR,不新建 release 分支。适用于“从 dev 新建分支”“把当前修改提 PR”“实现完成创建 feature/refactor 分支并 PR”“发布新版本”“dev 合并 master”等交付收口场景。本 skill 是交付链终点,并在建分支/提 PR 前执行收口门槛:测试未过、契约文档失同步、acceptance 未提升者拒绝收口。
当用户要求把需求、功能、技术方案、架构改造、故障复盘、项目治理实践或实现过程写成博客/技术文章时必须使用;尤其适用于“写一篇博客”“生成技术博客”“把这个需求写成文章”“根据这个功能写博客”“把项目实现讲清楚”等请求。使用时要基于用户给出的需求和 toLink-Rag 当前仓库的真实代码、文档、契约、配置与测试证据完成分析,默认输出 Markdown 到 `.specs/blog/《博客名称》.md`。文章须采用「少量
把项目里已有的内部组件(如 MQ 中台、解析 pipeline、缓存层、对象存储)抽象成一份「项目自有 skill」,让 AI 每次接入都自动复用该组件的架构边界与约定。读组件真实代码,提炼「架构定位 / 职责边界 / 已落地清单 / 扩展点 / 红线」五要素,按统一原型生成 SKILL.md,登记到 .ai/skills/README.md 注册表并跑校验。
当用户要提 issue、登记 bug、记录新需求时使用;自动识别所属项目,生成结构化 issue 内容,先在 Linear 建主记录、再在 GitHub 建镜像,并双向回链。用户说"提个 issue""记一下这个 bug""把这个需求登记一下""同步到 Linear 和 GitHub""别再依赖 Linear 自动同步"时都应触发,即使没有明确说出"Linear"或"GitHub"。