视觉画布设计
canvas-design
基于设计原则创作静态视觉作品,用于海报与品牌图形。
document【文档与办公】Documentation generator for public APIs, functions, and modules. Use when exports, signatures, or new modules are added or changed.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Why: Undocumented changes are the most common source of onboarding friction. Catching every diff ensures no public surface is left without context.
Follow the project's existing doc style. If none exists:
TypeScript/JavaScript:
/**
* Brief description of what this does.
*
* @param name - Description of parameter
* @returns Description of return value
* @throws ErrorType - When this happens
*
* @example
* const result = myFunction("input");
*/
Python:
def my_function(name: str) -> str:
"""Brief description.
Args:
name: Description of parameter.
Returns:
Description of return value.
Raises:
ValueError: When this happens.
"""
Why: Consistent doc style across the project reduces cognitive load for every reader. Inlining examples prevents the "how do I call this?" round-trip.
Why: Noise docs train readers to ignore all comments. Document only where the code cannot speak for itself.
| Excuse | Rebuttal | What to do instead |
|---|---|---|
| "The code is self-documenting" | Good naming helps readers, but doesn't explain intent, constraints, or edge cases. | Document the why, the constraints, and the non-obvious. |
| "I'll document it later" | Later never comes. If it's worth exporting, it's worth documenting now. | Document as you write. Updating is cheaper than reconstructing intent. |
| "Docs go stale anyway" | Stale docs are better than no docs. They at least signal intent. Keep them in sync with code changes. | Put docs near code (JSDoc/docstring). They update with the code. |
Before claiming documentation is done, show ALL applicable:
@param / @returns / @throws present for non-trivial functions@example for complex APIs"I added docs" without showing them = not documented.
// increment i → i++