Skip to main content

sweety-code-naming-comments

Cross-stack code naming and comment discipline for software development. Use when Codex writes, reviews, refactors, or explains code and must choose clear identifiers, rename variables/functions/classes/constants/files, add or remove comments, review naming quality, or enforce readable-code conventions in any programming language. Focus only on naming and comments, not broader formatting, control-flow, architecture, or frontend-specific rules.

ソース情報

リポジトリ
threerocks/sweety-skills
ソースの最終更新活動
2026年6月17日 11:58
検出された SKILL.md の言語
中国語
スター
23
フォーク
3

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
sweety-code-naming-comments
description
Cross-stack code naming and comment discipline for software development. Use when Codex writes, reviews, refactors, or explains code and must choose clear identifiers, rename variables/functions/classes/constants/files, add or remove comments, review naming quality, or enforce readable-code conventions in any programming language. Focus only on naming and comments, not broader formatting, control-flow, architecture, or frontend-specific rules.
# 代码命名与注释规范 这个 skill 用于在写代码、改代码和做代码审查时,让命名和注释降低误读成本。核心材料来自掘金文章《前端代码可读性实战指南百科全书》,但这里只保留“命名”和“注释”原则,并抽象为不区分技术栈的规则。 ## 偏好设置 (EXTEND.md) 先检查 EXTEND.md,优先级如下: ```bash test -f .sweety-skills/sweety-code-naming-comments/EXTEND.md && echo "project" test -f "${XDG_CONFIG_HOME:-$HOME/.config}/sweety-skills/sweety-code-naming-comments/EXTEND.md" && echo "xdg" test -f "$HOME/.sweety-skills/sweety-code-naming-comments/EXTEND.md" && echo "user" ``` | 路径 | 位置 | |------|------| | `.sweety-skills/sweety-code-naming-comments/EXTEND.md` | 项目目录 | | `$XDG_CONFIG_HOME/sweety-skills/sweety-code-naming-comments/EXTEND.md` | XDG 配置目录 | | `$HOME/.sweety-skills/sweety-code-naming-comments/EXTEND.md` | 用户目录 | | 结果 | 操作 | |------|------| | 找到 | 读取并应用项目或用户对命名语言、缩写、注释密度、公开 API 文档格式的偏好 | | 未找到 | 使用本文默认规则 | ## 工作流 ### 1. 限定任务边界 只处理命名和注释: - 命名:变量、参数、函数、方法、类、类型、接口、常量、枚举、文件、目录、模块、配置项、数据库字段、API 字段。 - 注释:行内注释、块注释、文档注释、TODO/FIXME/HACK、公开 API 说明、迁移说明、兼容性说明。 - 不处理:格式化风格、控制流重构、架构拆分、性能优化、前端框架约定,除非它们直接影响命名或注释。 ### 2. 先问名字能不能解决问题 优先改名字,其次才加注释。坏名字加好注释仍然会制造维护成本。 在添加注释前先判断: - 能不能用更具体的名字表达这件事? - 能不能用有语义的常量、枚举、类型或字段名替代字面量? - 能不能拆出一个命名良好的中间变量、函数或对象,减少解释需求? - 如果删掉注释,读者是否仍能从名字和结构里快速理解? 只有当名字无法承载“为什么、边界、取舍、陷阱、外部约束”时,才写注释。 ## 命名规则 ### 1. 名字必须承载业务含义 避免在非临时场景使用空泛名字:`data`、`info`、`item`、`obj`、`arr`、`tmp`、`flag`、`handle`、`process`、`result`。 允许短名的场景必须足够小: - 交换变量、极短循环、局部闭包中可以用 `tmp`、`i`、`j`、`x`。 - 嵌套循环、跨多行逻辑、跨函数传递时,必须补足语义,例如 `rowIndex`、`columnIndex`、`sourceUser`、`targetUser`。 ### 2. 用具体名词替代抽象词 名字要回答“这是什么”“属于谁”“处在什么状态”“用来做什么”。 - `status` 不如 `paymentStatus`、`orderStatus`。 - `config` 不如 `retryPolicy`、`databaseConnectionOptions`。 - `list` 不如 `publishedArticles`、`failedJobs`。 - `value` 不如 `discountRate`、`tokenExpiresAt`。 如果一个名字需要旁边注释解释它是什么,优先重命名。 ### 3. 行为用动词开头 函数、方法、命令和事件处理器名称要表达动作和对象,必要时表达来源、条件或结果。 常用动词语义: | 动词 | 适用含义 | |------|----------| | `get` | 从已有上下文直接取得值,不暗示网络、磁盘或昂贵计算 | | `fetch` / `load` / `query` | 从外部系统、存储、网络或数据库获取数据 | | `create` / `build` / `generate` / `compose` | 生成新对象、新内容或新结构 | | `set` / `update` / `save` | 修改或持久化已有状态 | | `validate` | 检查格式、约束或输入是否合法 | | `can` / `has` / `is` / `should` | 返回布尔判断 | 避免只写 `run`、`doIt`、`handle`、`process`、`check`。如果必须使用,补足对象和结果,例如 `validateEmailFormat`、`processRefundWebhook`、`handleExpiredSession`。 ### 4. 布尔名必须像判断句 布尔变量和布尔返回函数优先使用 `is`、`has`、`can`、`should`、`was`、`needs` 等前缀,或使用所在语言/团队已接受的等价表达。 - `admin` -> `isAdmin` - `redirected` -> `hasRedirected` - `retry` -> `shouldRetry` - `permission` -> `canEditInvoice` 不要让布尔名像名词、动作或不完整状态。 ### 5. 把单位、格式、方向和边界写进名字 当误用成本高时,把额外信息放进名字,而不是藏在注释里。 | 信息类型 | 命名示例 | |----------|----------| | 时间单位 | `delayMs`、`timeoutSeconds`、`expiresAt` | | 数据大小 | `maxBytes`、`cacheSizeMb` | | 编码/格式 | `htmlUtf8`、`urlEncodedPayload` | | 安全状态 | `plaintextPassword`、`hashedPassword`、`escapedComment` | | 范围边界 | `minPrice`、`maxRetries`、`firstIndex`、`lastIndex`、`startOffset`、`endOffset` | | 方向/坐标 | `clockwiseDegrees`、`sourcePath`、`targetPath` | 边界命名要成对一致:闭区间常用 `first/last`,半开区间常用 `start/end`,上下限用 `min/max`。 ### 6. 用语义常量替代魔法值 逻辑中不要直接散落难懂字面量。把数字、状态码、模式字符串、特殊 ID、正则、开关值命名为常量、枚举、类型成员或配置项。 - `30` -> `maxLoginAttempts` - `"000000"` -> `successCode` - `"12"` -> `singleImageMode` - `86400` -> `secondsPerDay` 使用当前技术栈原生表达方式,不强制使用某一种语言的枚举或常量语法。 ### 7. 名字长度随作用域变化 - 作用域越小,名字可以越短。 - 作用域越大、生命周期越长、调用者越多,名字必须越完整。 - 对象属性不要重复对象名:`user.userName` 通常不如 `user.name`。 - 删除没有信息量的词:`convertToString` 通常不如 `toString`,除非当前上下文需要区分多种转换。 ### 8. 保持团队范式一致 遵守当前仓库、语言和框架已有命名风格。不要为了通用规则破坏局部一致性。 检查这些问题: - 拼写错误。 - 中英文混用,除非该词已经是团队或行业约定。 - 生造缩写、拼音首字母、随机编号、无意义后缀。 - 单复数不分。 - 正反义词不成对,例如 `show/close` 混作一组。 - 同一概念在不同文件里用多套名字。 - 名字暗示无副作用,但实际会修改状态、发请求、落库或删除数据。 ## 注释规则 ### 1. 不翻译代码 删除只复述代码的注释。没有提供额外信息的注释会增加噪音,并且容易在代码变化后失真。 坏注释通常是: - 把代码逐字翻译成自然语言。 - 解释读者能快速从名字和结构中推断出的事实。 - 用注释补救坏名字。 - 长期保留过期背景、废弃方案或无来源猜测。 ### 2. 注释解释高层意图 好注释要让读者知道作者知道而代码本身说不出的东西: - 为什么这样做,而不是更直接的写法。 - 业务规则、合规要求、协议约束、兼容性要求。 - 不变量、前置条件、后置条件、失败模式。 - 性能、安全、并发、事务、幂等、时区、编码、精度等隐性约束。 - 外部系统的异常行为或历史包袱。 ### 3. 标出陷阱和未完成事项 遇到 hack、临时兼容、无法立即修复的缺陷、危险边界、容易误用的 API,必须写清楚。 使用可检索标记时,标记后保留一个空格: - `TODO: ` - `FIXME: ` - `HACK: ` - `NOTE: ` - `WARNING: ` 注释要说明触发条件、原因、后续处理方向;不要只写“以后优化”“临时处理”。 ### 4. 给技巧和反直觉写法补背景 当代码使用语言技巧、社区惯例、性能技巧、兼容写法或看似绕路但有必要的处理时,写注释解释它解决的实际问题。 如果一个实现会让读者问“为什么不直接这样写”,注释应该回答这个问题。 ### 5. 注释靠近被解释的代码 把注释放在最小相关范围附近: - 公共 API:写在 API、类型、方法或字段声明处。 - 复杂分支:写在分支入口处。 - 特殊常量:写在常量定义处。 - 临时限制:写在限制发生处,并标记修复条件。 不要把重要上下文只写在远处文档里,也不要在每一行重复同一个背景。 ## 代码编辑输出规则 当用户要求直接改代码: - 先按仓库现有风格命名,不强行引入新的大小写、缩写或注释格式。 - 改名要同步调用点、测试、文档和配置引用。 - 添加注释要少而准,优先放在高风险、跨边界、反直觉、长期维护成本高的位置。 - 删除无效注释时,不要删除仍有审计、迁移或业务来源价值的上下文。 - 最终说明只列命名和注释层面的关键变化。 当用户要求代码审查: - 优先指出会造成误读、误用、调用错误或维护成本的命名/注释问题。 - 给出替代名字或替代注释,不只说“命名不清晰”。 - 如果问题其实属于架构、控制流或格式,不要强行塞进本 skill;只在它影响命名或注释时提及。 ## Extension Support Custom configurations via EXTEND.md. See **偏好设置 (EXTEND.md)** for paths and supported options.
GitHubで見る