Claude Code Plugins

Community-maintained marketplace

Feedback

代码风格规范 / Code style conventions。在编写、编辑、评审 Python 代码时使用。包括类型注解、Decimal 精度、Docstring、模块组织等规范。Use when writing, editing, or reviewing Python code. Enforces type hints, Decimal precision, docstrings, and module organization.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name code-style
description 代码风格规范 / Code style conventions。在编写、编辑、评审 Python 代码时使用。包括类型注解、Decimal 精度、Docstring、模块组织等规范。Use when writing, editing, or reviewing Python code. Enforces type hints, Decimal precision, docstrings, and module organization.

Python code style for fund-portfolio-bot

本 Skill 强调编码规范中最关键、最容易被忽略的规则。

完整编码规范见 CLAUDE.md 第 3 节(核心约束)。 分层架构约束见 .claude/skills/architecture/SKILL.md

When to use

在以下场景使用本 Skill(触发词:代码风格、类型注解、Docstring、精度、code style、type hints、docstring):

  • 生成新的 Python 模块(尤其是 src/ 下)
  • 修改现有函数或类
  • 做代码重构或代码评审
  • 用户提到"类型注解"、"Decimal"、"文档"、"代码规范"时

类型与数值正确性

  • 所有函数参数与返回值都应添加类型注解。
  • 优先使用现代类型语法:
    • list[str], dict[str, Decimal], X | None
    • 避免使用 List / Optional 等老式写法,除非项目已有统一约定。
  • 金额、净值、份额等金融相关字段一律使用 Decimal
  • 不要使用 float 做任何金融计算。

Docstring 与注释

  • 公开的类与函数应该有简洁的中文 docstring,说明:
    • 主要职责
    • 关键业务约束或注意点
  • Docstring 不需要重复类型信息(类型以注解为准)。
  • 数字标签注释(CLI 层规范):
    • 函数内部用 # 1. # 2. # 3. 标记逻辑步骤
    • 示例:# 1. 解析参数# 2. 调用 Flow# 3. 格式化输出
  • 注释只在业务规则不直观时补充解释,避免噪音注释。

模块与类内部结构

原则:入口在上,工具在下;公开在上,私有在下。

类内部顺序:

  1. __init__
  2. 公共方法
  3. _ 开头的私有辅助方法

模块内部顺序:

  1. import(按标准库 / 第三方 / 本地分组)
  2. 公共类与公共函数
  3. 仅模块内部使用的私有工具函数(例如 _helper_*

命名惯例

  • 状态类字段或枚举值用小写字符串,例如:
    • "normal", "delayed", "pending"
  • 文件名、函数名、变量名:snake_case
  • 类名:PascalCase
  • CLI 层函数命名(v0.4.2+ 统一规范):
    • _parse_args():参数解析函数
    • _format_*():格式化输出辅助函数(如 _format_result(), _format_fees()
    • _do_*():命令执行函数(如 _do_buy(), _do_list(), _do_confirm()
    • main():CLI 主入口,只做路由

分层与配置相关约束

  • core 层代码不要从 adaptersapp 导入。
  • 业务逻辑中避免直接使用 os.getenv
    • 优先通过已有的配置模块或适配层获取配置。

DCA & AI 分工命名规范

本项目是 AI 驱动 的投资工具。在 DCA、历史扫描、AI 分析相关代码中,严格遵循 "规则算事实,AI 做解释" 的分工原则,通过命名来强化这个边界。

规则层数据模型

规则层只输出可重算的结构化事实,严禁直接生成主观结论。

后缀 定义 模块内示例 跨模块示例
*Facts 结构化事实快照(日期、金额、间隔等) Facts DcaFacts
*Check 规则验证结果(命中+偏差+说明) Check DayCheck
*Flag 异常标记(不下结论,仅标记) Flag Flag
*Draft 建议方案(不入库,内存结构) Draft PlanDraft
*Result 内部中间聚合(如回填结果) Result BackfillResult
*Report CLI/AI 展示用报告 Report ScanReport

简化原则:模块路径已包含领域信息时,可省略前缀;跨模块导出时保留上下文。

Flow 函数动词

动词 约束 模块内示例 跨模块示例
build_*() 只读计算,返回 *Facts build_facts() build_dca_facts() (批次为参数)
scan_*() 只读无副作用(幂等) scan() scan_trading_history()
draft_*() 返回 *Draft,不入库 draft() draft_dca_plan()
backfill_*() 写操作,修改数据库 backfill() backfill_dca() (不需要 for_batch)

关键原则

  • 看到 scan_ / build_ / draft_ 就知道安全可调(只读)
  • 看到 backfill_ 就要警惕会修改数据库
  • 参数而非函数名来表达"对什么"(batch_id, fund_code 等是参数)

AI 层(预留)

AI 基于规则层的 *Facts 生成语义解释,仅写入解释性字段,不修改核心数据。

  • *Insight:洞察(如"这笔交易可能是限额")
  • *Explanation:自然语言解释
  • *Label:分类标签

提交前检查

在可能的情况下:

  • 运行静态检查(例如项目中配置的 ruff check --fix .)。
  • 快速浏览本次 diff,确认:
    • 风格清理没有改变业务行为
    • 没有遗留调试代码(例如 printbreakpoint())。