doc-comment-audit
Skill0 starsChanged 9 days agoMITView on GitHub
Language-independent audit for missing, incomplete or outdated documentation comments (Doxygen, Javadoc, XML docs, Python docstrings, JSDoc/TSDoc, GoDoc, Rustdoc, GDScript ##). Reports undocumented public types and functions, parameters missing from the docs, and comments that contradict the signature or behavior. Use when asked to check/review/audit documentation comments, API docs or "is my code documented", in any language.
In this repository28 other files it gives its agents.
- accessibility-auditSkill
- api-design-reviewSkill
- architecture-reviewSkill
- complexity-checkSkill
- concurrency-reviewSkill
- config-reviewSkill
- cpp-google-styleSkill
- csharp-google-styleSkill
- dead-code-finderSkill
- dependency-auditSkill
- error-handling-reviewSkill
- full-reviewSkill
- java-google-styleSkill
- logging-reviewSkill
- markdown-readme-google-styleSkill
- naming-reviewSkill
- owasp-security-reviewSkill
- performance-reviewSkill
- privacy-reviewSkill
- python-google-styleSkill
- regex-reviewSkill
- repo-hygieneSkill
- review-without-fixingSkill
- secrets-scanSkill
- shell-google-styleSkill
- sql-reviewSkill
- test-coverage-reviewSkill
- todo-auditSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 53
Every finding has a concrete location.
- Distinctive: line 56
Do not change code. Apply fixes only when the user explicitly asks for it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Documentation comment audit
Review only: report findings, don't write or change comments unless the user explicitly asks. For a full style check of one language, point to the matching skill in this collection: cpp-google-style, csharp-google-style, java-google-style, python-google-style, shell-google-style (comments), markdown-readme-google-style (READMEs).
Scope
Check the files/directories the user names, otherwise the whole repo. Default: the public/exported API (see table). On request ("all", "including private") check every declaration. Skip .git/, build output (build/, dist/, out/, target/, bin/, obj/), vendor/, node_modules/, .venv/ and generated files (*.g.cs, *.Designer.cs, *_pb2.py, *.generated.*, headers like DO NOT EDIT). Tests are exempt unless asked.
Doc syntax and "public" per language
| Language | Doc comment | Counts as public |
| C / C++ | /** */, /// (Doxygen: @brief @param @return @throws) | declared in headers; public/protected members |
| Java / Kotlin | /** */ Javadoc/KDoc (@param @return @throws) | public, protected |
| C# | /// XML (<summary> <param> <returns> <exception>) | public, protected, protected internal |
| Python | """docstring""" (Google: Args: Returns: Raises:) | module, class, names without leading _ |
| JS / TS | /** */ JSDoc/TSDoc (@param @returns @throws) | exported, module.exports |
| Go | // Name ... comment directly above | capitalized identifiers, package comment |
| Rust | ///, //! | pub items |
| GDScript | ## above the declaration | names without leading _ |
| Shell | # block above the function (Description/Arguments/Returns) | all library functions |
Steps
- Detect the languages (file extensions) and check for an existing doc linter config; prefer running it if installed (never install it):
ruff --select D,eslint-plugin-jsdoc,javadoc -Xdoclint:all,dotnet buildwith warning CS1591, DoxygenWARN_IF_UNDOCUMENTED=YES,revive/golint(exported),cargo clippy -W missing_docs. If none is available, say which one would help and continue manually. - List public declarations (grep for
public,export,def/class,pub fn,func [A-Z],funcin GDScript …) and check the lines directly above/below for a doc comment. - For documented declarations, compare the comment with the signature and the body.
- Report (format below).
Rules
- DC1 error: public type (class/struct/interface/enum/module) without doc comment
- DC2 error: public function/method/constructor without doc comment (
@Override/overridemay inherit docs:{@inheritDoc},<inheritdoc/>) - DC3 error: parameter not documented, where the language convention documents parameters
- DC4 error: documented parameter that doesn't exist, or a different name/order than the signature (renamed or removed parameter)
- DC5 warning: non-void return not documented; or
@returnon a void function/constructor - DC6 warning: declared/thrown exceptions not documented (
@throws,<exception>,Raises:) where the convention requires it - DC7 error: comment contradicts the code (wrong type, wrong unit, describes behavior that was removed, says "returns null" but throws) — always quote both lines
- DC8 warning: empty or placeholder doc (
TODO,Insert description here, IDE stubs like@param x the x,/// <summary></summary>) - DC9 info: comment only repeats the name (
/** Gets the name. */ getName()is fine;/** Process. */ process()with complex logic is not enough) - DC10 warning: missing file/module/package doc where the convention expects one (Python module docstring, Go package comment, Rust crate
//!) - DC11 info: inconsistent doc style in one project (mixed
///and/** */, mixed languages in comments)
False positives to drop
Trivial getters/setters and properties when the project explicitly allows it · generated code · private helpers in default (public) mode · overrides that inherit docs · test methods · main entry points with an obvious purpose (report as info at most).
Report
In the user's language, grouped by file:
path/to/file:line - error|warning|info - <ID> <rule> - <why it is a problem> (<link to the convention>)- Every finding has a concrete location; mark uncertain ones as "possible" (e.g. DC7 when behavior depends on code you couldn't see).
- Bulk hits with one root cause (e.g. a whole module undocumented): report once with count and 2-3 sample locations.
- End with a summary: documented vs. undocumented public declarations (count and %), findings per severity, then the 3 most important things to fix first.
- Do not change code. Apply fixes only when the user explicitly asks for it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

