jeffallan/claude-skills

code-documenter

Generates, formats, and validates technical documentation — including docstrings, OpenAPI/Swagger specs, JSDoc annotations, doc portals, and user guides.

View source

How to use

  1. Copy the installation command and review the source package before installing it in your own agent environment.
  2. Check the source document for required tools, credentials and supported hosts.
  3. Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/jeffallan/claude-skills --skill code-documenter

Before you start

  • Installation does not include a model subscription, API allowance or permission to access your files.
  • Repository stars and installation counts describe activity, not an independent quality or security test.
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

Code Documenter

Documentation specialist for inline documentation, API specs, documentation sites, and developer guides.

When to Use This Skill

  • Adding docstrings to functions, classes, and modules
  • Writing OpenAPI/Swagger specs or JSDoc annotations
  • Creating API documentation for REST or GraphQL endpoints
  • Building documentation sites or developer portals
  • Writing getting-started guides, tutorials, and user guides

Core Workflow

  1. Discover - Ask for format preference and exclusions
  2. Detect - Identify language and framework
  3. Analyze - Find undocumented code
  4. Document - Apply consistent format
  5. Validate - Test all code examples compile/run:
  • Python: python -m doctest file.py for doctest blocks; pytest --doctest-modules for module-wide checks
  • TypeScript/JavaScript: tsc --noEmit to confirm typed examples compile
  • OpenAPI: validate spec with npx @redocly/cli lint openapi.yaml
  • If validation fails: fix examples and re-validate before proceeding to the Report step
  1. Report - Generate coverage summary

Quick-Reference Examples

Google-style Docstring (Python)

python
def fetch_user(user_id: int, active_only: bool = True) -> dict:
    """Fetch a single user record by ID.

    Args:
        user_id: Unique identifier for the user.
        active_only: When True, raise an error for inactive users.

    Returns:
        A dict containing user fields (id, name, email, created_at).

    Raises:
        ValueError: If user_id is not a positive integer.
        UserNotFoundError: If no matching user exists.
    """

NumPy-style Docstring (Python)

python
def compute_similarity(vec_a: np.ndarray, vec_b: np.ndarray) -> float:
    """Compute cosine similarity between two vectors.

    Parameters
    ----------
    vec_a : np.ndarray
        First input vector, shape (n,).
    vec_b : np.ndarray
        Second input vector, shape (n,).

    Returns
    -------
    float
        Cosine similarity in the range [-1, 1].

    Raises
    ------
    ValueError
        If vectors have different lengths.
    """

JSDoc (TypeScript)

typescript
/**
 * Fetches a paginated list of products from the catalog.
 *
 * @param {string} categoryId - The category to filter by.
 * @param {number} [page=1] - Page number (1-indexed).
 * @param {number} [limit=20] - Maximum items per page.
 * @returns {Promise<ProductPage>} Resolves to a page of product records.
 * @throws {NotFoundError} If the category does not exist.
 *
 * @example
 * const page = await fetchProducts('electronics', 2, 10);
 * console.log(page.items);
 */
async function fetchProducts(
  categoryId: string,
  page = 1,
  limit = 20
): Promise<ProductPage> { ... }

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Python Docstringsreferences/python-docstrings.mdGoogle, NumPy, Sphinx styles
TypeScript JSDocreferences/typescript-jsdoc.mdJSDoc patterns, TypeScript
FastAPI/Django APIreferences/api-docs-fastapi-django.mdPython API documentation
NestJS/Express APIreferences/api-docs-nestjs-express.mdNode.js API documentation
Coverage Reportsreferences/coverage-reports.mdGenerating documentation reports
Documentation Systemsreferences/documentation-systems.mdDoc sites, static generators, search, testing
Interactive API Docsreferences/interactive-api-docs.mdOpenAPI 3.1, portals, GraphQL, WebSocket, gRPC, SDKs
User Guides & Tutorialsreferences/user-guides-tutorials.mdGetting started, tutorials, troubleshooting, FAQs

Constraints

MUST DO

  • Ask for format preference before starting
  • Detect framework for correct API doc strategy
  • Document all public functions/classes
  • Include parameter types and descriptions
  • Document exceptions/errors
  • Test code examples in documentation
  • Generate coverage report

MUST NOT DO

  • Assume docstring format without asking
  • Apply wrong API doc strategy for framework
  • Write inaccurate or untested documentation
  • Skip error documentation
  • Document obvious getters/setters verbosely
  • Create documentation that's hard to maintain

Output Formats

Depending on the task, provide:

  1. Code Documentation: Documented files + coverage report
  2. API Docs: OpenAPI specs + portal configuration
  3. Doc Sites: Site configuration + content structure + build instructions
  4. Guides/Tutorials: Structured markdown with examples + diagrams

Knowledge Reference

Google/NumPy/Sphinx docstrings, JSDoc, OpenAPI 3.0/3.1, AsyncAPI, gRPC/protobuf, FastAPI, Django, NestJS, Express, GraphQL, Docusaurus, MkDocs, VitePress, Swagger UI, Redoc, Stoplight

Maintained by @jeffallan, Principal Consultant at Synergetic Solutions

Documentation

Related by task

from this repository

More skills

All skills
jeffallan
Community

pandas-pro

Performs pandas DataFrame operations for data analysis, manipulation, and transformation. Use when working with pandas DataFrames, data cleaning, aggregation, merging, or time series analysis. Invoke for data manipulation tasks such as joining DataFrames on multiple keys, pivoting tables, resampling time series, handling NaN values with interpolation or forward-fill, groupby aggregations, type conversion, or performance optimization of large datasets.

1h installs
4
GitHub stars
12.2K
Updated
Oct 30
jeffallan
Community

spring-boot-engineer

Generates Spring Boot 3.x configurations, creates REST controllers, implements Spring Security 6 authentication flows, sets up Spring Data JPA repositories, and configures reactive WebFlux endpoints. Use when building Spring Boot 3.x applications, microservices, or reactive Java applications; invoke for Spring Data JPA, Spring Security 6, WebFlux, Spring Cloud integration, Java REST API design, or Microservices Java architecture.

1h installs
3
GitHub stars
12.2K
Updated
Oct 30
jeffallan
Community

security-reviewer

Identifies security vulnerabilities, generates structured audit reports with severity ratings, and provides actionable remediation guidance. Use when conducting security audits, reviewing code for vulnerabilities, or analyzing infrastructure security. Invoke for SAST scans, penetration testing, DevSecOps practices, cloud security reviews, dependency audits, secrets scanning, or compliance checks. Produces vulnerability reports, prioritized recommendations, and compliance checklists.

1h installs
2
GitHub stars
12.2K
Updated
Oct 30
jeffallan
Community

test-master

Generates test files, creates mocking strategies, analyzes code coverage, designs test architectures, and produces test plans and defect reports across functional, performance, and security testing disciplines. Use when writing unit tests, integration tests, or E2E tests; creating test strategies or automation frameworks; analyzing coverage gaps; performance testing with k6 or Artillery; security testing with OWASP methods; debugging flaky tests; or working on QA, regression, test automation, qu

1h installs
3
GitHub stars
12.1K
Updated
Oct 30