Skip to content
Development
Skill

/update-doc-string

Manage multilingual docstrings and comments. Trigger with "update docstrings", "manage comments", "add documentation comments", "update JSDoc".

From plugin
claude-code-cookbook
1.1k39 skills9 agents39 commands8 MCP
Install
$ npx -y skills add wasabeef/claude-code-cookbook --skill update-doc-string --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/update-doc-string

Context preview

The summary Claude sees to decide when to auto-load this skill.

Manage multilingual docstrings and comments. Trigger with "update docstrings", "manage comments", "add documentation comments", "update JSDoc".

SKILL.md

update-doc-string.SKILL.md
description: 'Manage multilingual docstrings and comments. Trigger with "update docstrings", "manage comments", "add documentation comments", "update JSDoc".'
allowed-tools:
  - Read
  - Edit
  - Grep
  - Glob

Manage multilingual docstrings and comments

Systematically manage multilingual docstrings/comments and maintain high-quality documentation.

Usage

# Run with automatic language detection
"Please add docstrings to classes and functions without them, and update comments that don't meet standards"

# Run with specified language
/update-doc-string --lang python
"Please update docstrings in Python files to comply with PEP 257"

# Maintain documentation for specific directories
"Please add JSDoc to functions under src/components/"

Options

  • `--lang <language>` : Documentation language (default: en)
  • `--style <style>` : Specify documentation style (has language-specific defaults)
  • `--marker <true|false>` : Whether to add Claude markers (default: true)

Basic Examples

# 1. Analyze target files (programming language is auto-detected)
find . -type f \( -name "*.py" -o -name "*.js" -o -name "*.ts" -o -name "*.dart" -o -name "*.go" -o -name "*.rs" \) | grep -v test
"Please identify elements with insufficient docstrings (0 comment lines or fewer than 30 characters)"

# 2. Add documentation (uses English by default)
"Please add docstrings containing language-specific required elements to the identified elements"
# → Uses English for all documentation

# 3. Add documentation (explicitly specify English)
/update-doc-string --lang en
"Add docstrings with required elements to the identified elements"

# 4. Check markers
"Please confirm that all added/updated docstrings have Claude markers"

Execution Steps

1. Priority of Target Elements

1. 🔴 **Highest Priority**: Elements without docstrings/comments (0 comment lines) 2. 🟡 **Next Priority**: Elements not meeting standards (fewer than 30 characters or missing required elements) 3. 🟢 **Verification Target**: Existing comments without Claude markers

**Target Elements (Common Across Languages)**:

  • Class definitions
  • Functions/methods
  • Modules (Python, Go)
  • Enums
  • Interfaces (TypeScript, Go)

2. Language-Specific Documentation Rules

**Python (PEP 257)**:

# English version (default)
def calculate_total(items: List[Item]) -> float:
    """Calculate the total amount for a list of items. (30-60 characters)

    Multiplies the price and quantity of each item and returns
    the total with tax. Returns 0.0 for empty lists. (50-200 characters)

    Args:
        items: List of items to calculate

    Returns:
        Total amount with tax

    Generated by Claude 🤖
    """

# English version (--lang en)
def calculate_total(items: List[Item]) -> float:
    """Calculate the total amount for a list of items. (30-60 chars)

    Multiplies the price and quantity of each item and returns
    the total with tax. Returns 0.0 for empty lists. (50-200 chars)

    Args:
        items: List of items to calculate

    Returns:
        Total amount with tax

    Generated by Claude 🤖
    """

**JavaScript/TypeScript (JSDoc)**:

/**
 * Component that displays a user profile. (30-60 characters)
 *
 * Displays avatar image, username, and status information,
 * and navigates to the profile detail screen when clicked. (50-200 characters)
 *
 * @param {Object} props - Component properties
 * @param {string} props.userId - User ID
 * @param {boolean} [props.showStatus=true] - Status display flag
 * @returns {JSX.Element} Rendered component
 *
 * @generated by Claude 🤖
 */
const UserProfile = ({ userId, showStatus = true }) => {

**Go**:

// CalculateTotal calculates the total amount for a list of items. (30-60 characters)
//
// Multiplies the price and quantity of each item and returns
// the total with tax. Returns 0.0 for empty slices. (50-200 characters)
//
// Generated by Claude 🤖
func CalculateTotal(items []Item) float64 {

**Rust**:

/// Calculate the total amount for a list of items. (30-60 characters)
///
/// Multiplies the price and quantity of each item and returns
/// the total with tax. Returns 0.0 for empty vectors. (50-200 characters)
///
/// Generated by Claude 🤖
pub fn calculate_total(items: &[Item]) -> f64 {

**Dart (DartDoc)**:

/// Widget that displays a user profile. (30-60 characters)
///
/// Vertically arranges avatar image, username, and status information,
/// and navigates to the profile detail screen when tapped. (50-200 characters)
///
/// Generated by Claude 🤖
class UserProfileWidget extends StatelessWidget {

3. Existing Content Retention Rules

1. **If existing comments meet standards**: Keep as-is (do not add new ones)

  • Standards: At least 30 characters and includes required elements (summary, details, marker)

2. **If existing comments do not meet standards**: Completely replace (no duplication) 3. **If no existing comments**: Add new comments

**Important Information to Retain**:

  • URLs and links: `See also:`, `@see`, `References:` etc.
  • TODO comments: `TODO:`, `FIXME:`, `XXX:` format
  • Notes: `Note:`, `Warning:`, `Important:` etc.
  • Examples: `Example:`, `Usage:`, `# Examples` etc.
  • Existing parameter and return value descriptions

Language-Specific Settings

# Language-specific default settings
languages:
  python:
    style: "google"  # google, numpy, sphinx
    indent: 4
    quotes: '"""

  javascript:
    style: "jsdoc"
    indent: 2
    prefix: "/**"
    suffix: "*/"

  typescript:
    style: "tsdoc"
    indent: 2
    prefix: "/**"
    suffix: "*/"

  go:
    style: "godoc"
    indent: 0
    prefix: "//"

  rust:
    style: "rustdoc"
    indent: 0
    prefix: "///"

  dart:
    style: "dartdoc"
    indent: 0
    prefix: "///"

Quality Checklist

  • ✅ **Character Count**: Strictly adhere to 30-60 characters for summary, 50-200 for details
  • ✅ **Required Elements**: Always i
Read more
Ships withclaude-code-cookbook

A collection of commands, roles, and automation scripts for Claude Code. Automate your workflow without unnecessary confirmations, allowing you to focus on what matters.

Get the whole plugin

Other skills on claude-code-cookbook.