dart-doc-validation
Best practices for validating Dart documentation comments. Covers using `dart doc` to catch unresolved references and macros.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-11
- Stars
- ★ 8
- Forks
- 7
01 前言 Front Matter
- name
- dart-doc-validation
- license
- Apache-2.0
- description
- Best practices for validating Dart documentation comments. Covers using `dart doc` to catch unresolved references and macros.
- key_features
- [ "Documentation comment validation", "Unresolved reference checking", "Dart doc macro verification" ]
02 资源文件 1
- 参考文档evals/evals.json2.2 KB
03 SKILL.md 正文
Dart Doc Validation
1. When to use this skill
Use this skill when:
- Writing or updating documentation comments (
///) in Dart code. - Checking for broken documentation links, references, or macros.
- Preparing a package for publishing to pub.dev.
When NOT to use (Abstention Guardrails)
Do NOT apply this skill or refactor doc comments when:
- Illustrative Pseudo-Code & Non-Dart Code Fences: Comments contain
pseudo-code, non-Dart language identifiers (e.g.
yaml`,json, ````bash, ````text`), or abstract conceptual fragments intentionally not designed to compile as valid Dart. - Generated Code: Files generated by tools (e.g.
*.g.dart,*.mocks.dart,*.freezed.dart) where comments are synthesized. - External Markdown Hyperlinks: Text in square brackets followed by a link
target (e.g.
[External Guide](https://...)), which is standard Markdown hyperlink syntax rather than an unresolved Dart doc reference.
Discovery
To find documentation issues:
Missing Lint
Verify if the comment_references lint is enabled:
- Target:
analysis_options.yaml - Search Query:
comment_references
Automated Validation
Run the documentation generator to surface warnings:
- Command:
dart doc -o $(mktemp -d) - Keywords to look for:
warning:,unresolved doc reference,undefined macro
2. Best Practices
Enable the doc validation lint
In your analysis_options.yaml, enable the comment_references lint.
linter:
rules:
- comment_references
Validating Documentation Locally
Use the dart doc command with a temporary output directory to validate
documentation comments without polluting the local project workspace.
This command parses all documentation comments and reports warnings such as:
warning: unresolved doc referencewarning: undefined macro
Command to run:
dart doc -o $(mktemp -d)
This will work on Mac and Linux.
This ensures that the generated HTML files are stored in a temporary location and don't clutter the package directory, while still surfacing all validation warnings in the terminal output.
Browsing the docs:
Our docs use features designed to be run on a web server. If you want to browse
the generated docs locally, install the dhttpd package.
dart install dhttpd
TMP_DIR=$(mktemp -d) && dart doc -o "$TMP_DIR" && dhttpd --path "$TMP_DIR"
(Or use another HTTP server, such as python3 -m http.server.)
Fixing Common Warnings
- Unresolved doc reference: Ensure that any identifier wrapped in square
brackets (
[Identifier]) correctly points to an existing class, method, property, or parameter in the current scope or imported libraries. - Undefined macro: If using
{@macro macro_name}, ensure that the template{@template macro_name}is defined in the same file or a file that is imported and visible to the documentation generator.
04 同仓库更多 Skills
dart-test-fundamentals
Core concepts and best practices for `package:test`. Covers `test`, `group`, lifecycle methods (`setUp`, `tearDown`), and configuration (`dart_test.yaml`).
dart-matcher-best-practices
Best practices for using `expect` and `package:matcher`. Focuses on readable assertions, proper matcher selection, and avoiding common pitfalls.
dart-long-lines
Guidelines for handling long lines in Dart code to adhere to the 80-column rule. The `lines_longer_than_80_chars` lint.
dart-best-practices
General best practices for Dart development. Covers code style, effective Dart, and language features.
triage-github-issues
Sorts new GitHub issues by type and priority, asks for missing details, and closes duplicates. Use when asked to triage, label or clean up the issue tracker.
release-dart-package
Prepares and publishes a new version of a Dart package to pub.dev, from the version bump to the GitHub release. Use when asked to cut, tag or publish a release.