copilot-dev: Command for Claude Code

.github/prompts/document-public-api.prompt.md

document-public-api is a command for Claude Code, GitHub Copilot from timothywarner/copilot-dev. It costs 23 tokens per session (1,922 once invoked), scanned A, original, MIT.

A command that adds JSDoc comments or Google-style docstrings to public functions, classes, and methods. These comments explain code for people and documentation tools.

In plain words
What is it for?
Use it to document exported TypeScript or JavaScript code and public code in other supported languages.
Why use it?
It reduces the work of documenting a public programming interface and applies consistent rules about what should be documented.

Command for Claude CodeGitHub Copilot

Written for Claude Code and GitHub Copilot: argument-hint in frontmatter, but also a Copilot chat mode or prompt. Also seen: model in frontmatter.

This is timothywarner/copilot-dev's own configuration. It tells Claude Code and GitHub Copilot how to work on copilot-dev itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything copilot-dev configures →

Reuse

Borrowing it

Nothing to install: this file belongs to timothywarner/copilot-dev. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/timothywarner/copilot-dev/main/.github/prompts/document-public-api.prompt.md
Clone the repo
git clone --depth 1 https://github.com/timothywarner/copilot-dev

Made for: Claude Code, GitHub Copilot.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for document-public-api

README.md
[![agentmods](https://agentmods.dev/badge/commands/timothywarner/copilot-dev/document-public-api/github.svg)](https://agentmods.dev/commands/timothywarner/copilot-dev/document-public-api)
Your own site
<a href="https://agentmods.dev/commands/timothywarner/copilot-dev/document-public-api"><img src="https://agentmods.dev/badge/commands/timothywarner/copilot-dev/document-public-api/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for document-public-api

Your own site · 80×15
<a href="https://agentmods.dev/commands/timothywarner/copilot-dev/document-public-api"><img src="https://agentmods.dev/badge/commands/timothywarner/copilot-dev/document-public-api.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 23 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,922 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00023 $0.01922
Opus 5.5 $0.00009 $0.00769
Sonnet 5.5 $0.00005 $0.00384
Haiku 4.5 $0.00002 $0.00192

Measured 1mo ago against content hash 088c51a42e0e, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

document-public-api scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.github/prompts/document-public-api.prompt.md · 275 lines

How it starts

The opening of the file, as written. The whole thing — 275 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Add complete, accurate documentation to all public functions, classes, and methods in the following code:

Code to document: ${selection}

If no code is selected, document the file: ${file}


Documentation standards by language

Detect the language automatically from the file extension or syntax, then apply the correct standard.


TypeScript / JavaScript — JSDoc

Add JSDoc comments above every:

  • Exported function
  • Exported class (and its public methods)
  • Exported type / interface (if complex)
  • Exported constant (if non-obvious)

Do not document:

  • Internal/private helpers (prefixed _ or not exported)
  • Simple pass-through functions where the name is self-documenting
  • Test files
JSDoc template
/**
 * [One-sentence summary of what this function does — active voice, starts with a verb]
 *
 * [Optional: 1-2 additional sentences for complex behavior, edge cases, or important caveats.
 *  Omit this paragraph if the one-liner is sufficient.]
 *
 * @param paramName - [Description of what this parameter represents. Include type constraints
 *   if not obvious from the TypeScript type. E.g., "Must be a positive integer", "Cannot be empty."]
 * @param optionalParam - [Description.] Defaults to `defaultValue`.
 * @returns [What the function returns. If it returns an object, describe the shape.
 *   If it returns a Promise, describe what the resolved value contains.]
 * @throws {ErrorType} [When/why this error is thrown.]
 *
 * @example
 * ```typescript
 * // [Brief description of what this example demonstrates]
 * const result = myFunction('input', { option: true })
 * // result: { id: 'abc', status: 'ok' }
 * ```
 */
export function myFunction(paramName: string, optionalParam = 'default'): SomeType {
Class documentation
/**
 * [What this class represents — its role in the system, what it encapsulates]
 *
 * [Optional: design pattern used (e.g., "Implements the Repository pattern for..."),
 *  or key invariant the class maintains]
 *
 * @example
 * ```typescript
 * const service = new TipService({ dataPath: './data/tips.json' })
 * const tips = await service.search('keyboard')
 * ```
 */
export class TipService {
  /**
   * Creates a new TipService instance.
   *
   * @param config - Configuration options for the service.
   * @param config.dataPath - Absolute or relative path to the tips JSON data file.
   * @param config.cacheEnabled - When true, caches search results for 60 seconds.
   *   Defaults to `false`.
   */
  constructor(config: TipServiceConfig) {}

  /**
   * Searches tips by keyword across title, description, and tags fields.
   *
   * Search is case-insensitive. Returns all tips when query is an empty string.
   *
   * @param query - The search term. Pass an empty string to return all tips.
   * @returns Array of tips matching the query, sorted by relevance score descending.
   *   Returns an empty array (not null) when no results match.
   * @throws {TypeError} When query is null or undefined.
   *
   * @example
   * ```typescript
   * const results = await service.search('keyboard shortcut')
   * console.log(results.length)  // e.g., 3
   * console.log(results[0].title)  // e.g., "Accept suggestion with Tab"
   * ```
   */
  async search(query: string): Promise<Tip[]> {}
}

Read the full file on GitHub · 275 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 275 lines · 23 tokens per session scan A 088c51a42e0e

Subscribe to this mod's changes

document-public-api is a command published in the GitHub repository timothywarner/copilot-dev (46 stars, last pushed 1mo ago), licensed MIT. It adds 23 tokens to every session and 1,922 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-20.