From project-toolkit
Detects missing XML docs in C#, docstrings in Python, JSDoc in JS/TS, and CHANGELOG gaps. Produces coverage reports with gaps by file/symbol for pre-PR validation and CI.
npx claudepluginhub rjmurillo/ai-agents --plugin project-toolkitThis skill uses the workspace's default tool permissions.
Detect missing documentation across code and project files with coverage metrics.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Detect missing documentation across code and project files with coverage metrics.
check documentation coveragefind missing docsvalidate API documentationcheck XML doc commentsrun doc coverage scan# Check all files in current directory
python3 scripts/check_docs.py --target .
# Check only changed files (CI mode)
python3 scripts/check_docs.py --git-staged
# Check specific files
python3 scripts/check_docs.py src/models/user.cs src/services/auth.py
# JSON output for automation
python3 scripts/check_docs.py --target . --format json --output coverage.json
# Set minimum threshold
python3 scripts/check_docs.py --target . --min-coverage 80
Created based on analysis of moq.analyzers closed PR reviewer patterns:
Source: .agents/analysis/moq-analyzers-reviewer-patterns-2026-02-08.md
| Element | Check | Example |
|---|---|---|
<summary> | Required on public types, methods, properties | /// <summary>Description</summary> |
<param> | Required for each parameter | /// <param name="id">The ID</param> |
<returns> | Required for non-void methods | /// <returns>Result description</returns> |
<exception> | Recommended for thrown exceptions | /// <exception cref="ArgumentNullException"> |
| Element | Check | Example |
|---|---|---|
| Module docstring | Required at top of file | """Module description.""" |
| Function docstring | Required for public functions | """Function description.""" |
| Class docstring | Required for public classes | """Class description.""" |
| Args section | Recommended (Google style) | Args:\n param: Description |
| Element | Check | Example |
|---|---|---|
| Function JSDoc | Required for exported functions | /** @description ... */ |
| Class JSDoc | Required for exported classes | /** @class ... */ |
@param | Required for each parameter | @param {string} name |
@returns | Required for non-void functions | @returns {number} |
| Check | Description |
|---|---|
| Entry exists | PRs with breaking changes have CHANGELOG entry |
| Version section | Current version has section in CHANGELOG.md |
| Date format | Entries follow consistent date format |
Use this skill when:
Use doc-sync instead when:
Documentation Coverage Report
=============================
Overall Coverage: 73.2% (below 80% threshold)
Gaps Found: 12
src/services/auth.cs:45:AuthenticateUser
- Missing: <summary> on public method
- Missing: <param name="credentials">
src/models/user.py:12:User
- Missing: class docstring
CHANGELOG.md
- Missing: entry for breaking change in v2.1.0
{
"coverage_percent": 73.2,
"threshold": 80,
"passed": false,
"total_symbols": 156,
"documented_symbols": 114,
"gaps": [
{
"file": "src/services/auth.cs",
"line": 45,
"symbol": "AuthenticateUser",
"type": "method",
"missing": ["summary", "param:credentials"]
}
]
}
Produces a markdown report suitable for PR comments or documentation.
Create .doccoveragerc.json in project root:
{
"min_coverage_percent": 80,
"check_public_only": true,
"check_changelog": true,
"exclude_patterns": [
"**/tests/**",
"**/test_*.py",
"**/*.Tests.cs",
"**/dist/**",
"**/node_modules/**"
],
"languages": {
"csharp": {
"require_summary": true,
"require_param": true,
"require_returns": true,
"require_exception": false
},
"python": {
"style": "google",
"require_module_docstring": true,
"require_args_section": false
},
"javascript": {
"require_jsdoc": true,
"require_param": true,
"require_returns": true
}
}
}
| Code | Meaning | Action |
|---|---|---|
| 0 | Coverage meets threshold | Proceed with PR |
| 10 | Coverage below threshold | Add documentation |
| 1 | Error (file not found, parse error) | Fix error |
# .pre-commit-config.yaml
repos:
- repo: local
hooks:
- id: doc-coverage
name: Documentation Coverage
entry: python3 .claude/skills/doc-coverage/scripts/check_docs.py --git-staged --min-coverage 80
language: system
pass_filenames: false
# .github/workflows/docs.yml
name: Documentation Coverage
on: [pull_request]
jobs:
doc-coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check documentation coverage
run: |
python3 .claude/skills/doc-coverage/scripts/check_docs.py \
--target . \
--min-coverage 80 \
--format json \
--output coverage.json
- name: Upload coverage report
uses: actions/upload-artifact@v4
with:
name: doc-coverage
path: coverage.json
| Avoid | Why | Instead |
|---|---|---|
| Requiring 100% coverage | Leads to low-quality filler docs | Set realistic threshold (80%) |
| Checking test files | Test docs are less critical | Exclude test patterns |
| Ignoring CHANGELOG | Breaking changes need documentation | Enable changelog checks |
| No configuration | One size doesn't fit all | Use .doccoveragerc.json |
After running:
| Script | Purpose | Exit Codes |
|---|---|---|
scripts/check_docs.py | Main documentation coverage scanner | 0=pass, 10=below threshold, 1=error |
check_docs.py for additional languages| Skill | Relationship |
|---|---|
| style-enforcement | Complements with code style checks |
| code-qualities-assessment | Broader quality assessment including docs |
| analyze | Deep codebase analysis including doc patterns |