Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

documenting-code-comments记录代码注释

Agent Skill

documenting-code-comments 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

659

周安装

28

GitHub Stars

5

下载量

231
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:documenting-code-comments(记录代码注释)
来源仓库:https://github.com/third774/dotfiles
仓库路径:skills/documenting-code-comments
安装命令:
npx skills add https://github.com/third774/dotfiles --skill documenting-code-comments
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/third774/dotfiles --skill documenting-code-comments

简介

聚焦代码注释规范,倡导自解释代码以减少维护负担和注释漂移问题。

  • 适用于函数、模块和类型系统的文档化,强调命名清晰与结构可读性。
  • 推荐使用自然语调,避免过度口语化,并保持注释与实现的一致性。
  • 通过 GitHub 安装,建议结合项目既有风格选择注释模板和层级策略。
  • documenting-code-comments 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Code Comment Guidelines

Core Philosophy

The best comment is the one you didn't need to write.

Self-documenting code reduces maintenance burden and prevents comment drift. Studies show clear naming and structure can reduce onboarding time by up to 30%.

Writing Style Guidelines

Tone: Be direct, practical, and clear. Write in a natural and relaxed tone. Be approachable and down-to-earth with some personality, but light on the slang and excessive casual terms.

Avoid:

Hierarchy of Documentation

  1. Make code self-documenting (naming, structure, types)
  2. Use type systems to document contracts
  3. Add comments only for WHY, never for WHAT

Refactoring: Preserve Existing Comments

This skill's guidance applies to writing new code. When refactoring existing code, preserve comments.

Existing comments represent institutional knowledge. Someone wrote them for a reason. During refactoring:

Never Remove

  • Comments explaining WHY something exists
  • Comments warning about gotchas or edge cases
  • Comments referencing external context (tickets, specs, RFCs)
  • Comments documenting non-obvious business logic

Update When Necessary

  • If refactoring changes behavior the comment describes, update the comment
  • If refactoring makes a workaround obsolete, update or remove with the workaround
  • Add to existing comments if refactoring introduces new context

Only Remove When

  • The comment is demonstrably incorrect (doesn't match code behavior)
  • The comment documents code you're deleting entirely
  • The refactoring eliminates the "why" (e.g., removing a workaround makes its explanation obsolete)
// BAD: Stripping context during refactoring
// Before: // Retry 3x - payment gateway has transient failures (JIRA-892)
// After:  (comment removed, code unchanged)

// GOOD: Preserving context during refactoring
// Before: // Retry 3x - payment gateway has transient failures (JIRA-892)
// After:  // Retry 3x - payment gateway has transient failures (JIRA-892)

// GOOD: Updating comment when refactoring changes behavior
// Before: // Retry 3x - payment gateway has transient failures
// After:  // Retry with exponential backoff - payment gateway has transient failures

When NOT to Write Comments

Never Comment the Obvious

// ❌ BAD: Restates code
const name = user.name; // Get the user's name
items.forEach(item => process(item)); // Loop through items

// ✅ GOOD: Self-documenting
const userName = user.name;
items.forEach(processItem);

Never Duplicate Type Information

// ❌ BAD: Types already document this
/** @param {string} email - The email string to validate */
function validateEmail(email: string): boolean {}

// ✅ GOOD: Types speak for themselves
function validateEmail(email: string): boolean {}

Never Leave Stale Comments

// ❌ BAD: Comment doesn't match code
// Returns user's full name
const getEmail = () => user.email;

// ✅ GOOD: Remove or fix
const getEmail = () => user.email;

When TO Write Comments

1. Explain WHY, Not WHAT

// ✅ Explains reasoning
// Use exponential backoff - service rate-limits after 3 rapid failures
const backoffMs = Math.pow(2, attempts) * 1000;

// ✅ Documents constraint
// Must run before useEffect to prevent hydration mismatch
useLayoutEffect(() => initTheme(), []);

2. Warn About Gotchas and Edge Cases

// ✅ Critical warning
// IMPORTANT: Assumes UTC - local timezone causes date drift
const dayStart = new Date(date.setHours(0, 0, 0, 0));

// ✅ Non-obvious behavior
// Returns null for deleted users (not undefined) - check explicitly
const user = await getUser(id);

3. Reference External Context

// ✅ Links to ticket
// Workaround for Safari flexbox bug (JIRA-1234)
display: '-webkit-flex';

// ✅ References specification
// Per RFC 7231 §6.5.4, return 404 for missing resources
return res.status(404);

4. Document Performance Decisions

// ✅ Explains optimization with data
// Map for O(1) lookup - benchmarked 3x faster than array.find() at n>100
const userMap = new Map(users.map(u => [u.id, u]));

5. Complex Business Logic

// ✅ Documents business rule
// Discount applies only to orders >$100 AND first-time customers
if (orderTotal > 100 && customer.orderCount === 0) {

Comment Formatting Standards

Single-line Comments

// Sentence case, no period for fragments
// Full sentences get periods.

JSDoc/TSDoc for Public APIs

Only when behavior isn't obvious from signature:

/**
Validates email format and checks domain blacklist.
  @throws {ValidationError} If format invalid or domain blacklisted
  @example
    validateEmail('user@example.com'); // OK
    validateEmail('spam@blocked.com'); // throws
*/
function validateEmail(email: string): void {}

TODO Format

// ✅ GOOD: Actionable with ticket
// TODO(JIRA-567): Replace with batch API when available Q1 2025

// ❌ BAD: No context
// TODO: fix this later

Refactor Before Commenting

Instead of commenting...Refactor to...
// Get active usersconst activeUsers = users.filter(u => u.isActive)
// Check if adminconst isAdmin = user.role === 'admin'
// 86400000 ms = 1 dayconst ONE_DAY_MS = 24 * 60 * 60 * 1000
// Handle error caseExtract to handleAuthError(err) function
// Calculate total with taxconst totalWithTax = calculateTotalWithTax(items)

Audit Checklist

When reviewing code comments:

  1. Necessity: For new code, can it be self-documenting? For existing code, is this comment still accurate? If accurate, keep it.
  2. Accuracy: Does comment match current code behavior?
  3. Value: Does it explain WHY, not WHAT?
  4. Freshness: Is it still relevant?
  5. Actionability: If TODO, does it have a ticket reference?

Language-Specific Patterns

TypeScript/JavaScript

  • Prefer TypeScript types over JSDoc type annotations
  • Use @deprecated JSDoc tag for deprecated APIs
  • Document thrown errors in JSDoc when not obvious

Go

  • Follow effective Go: first sentence is function name + verb
  • Document exported functions, unexported can be brief
  • Use // Deprecated: comment prefix

Python

  • Use docstrings for modules, classes, functions
  • Follow Google or NumPy docstring format consistently
  • Type hints reduce need for parameter documentation

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.88%
按下载量换算78

Claude

29.25%
按下载量换算68

Cursor

19.12%
按下载量换算44

Gemini CLI

10.23%
按下载量换算24

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills