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.1k200 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