| 1 | --- |
| 2 | name: jsdocs |
| 3 | description: Public API JSDoc. Use when authoring or reviewing Effect API documentation, refining a module's documentation, or fixing documentation related diagnostics. |
| 4 | --- |
| 5 | |
| 6 | ## Workflow |
| 7 | |
| 8 | 1. Inspect the declaration, implementation, nearby JSDoc, tests, and call sites. |
| 9 | 2. Select every applicable branch and load its reference before editing: |
| 10 | - tags, modules, or links: [declarations.md](declarations.md); |
| 11 | - categories: [categories.md](categories.md); |
| 12 | - examples: [examples.md](examples.md). |
| 13 | 3. Make a focused API fix or module refinement. Preserve verified facts and |
| 14 | valuable examples rather than rewriting mechanically. |
| 15 | 4. For module refinement or APIs with close alternatives, audit `@see` links |
| 16 | and inspect implementation and tests for concrete `**Gotchas**`. |
| 17 | 5. Run `pnpm jsdocs --check` and every applicable root validation command. |
| 18 | |
| 19 | `@internal` declarations and default exports are outside public JSDoc |
| 20 | authoring. Checked files do not support exported enums or empty export |
| 21 | declarations. |
| 22 | |
| 23 | Public declarations use a multiline block with one self-contained practical |
| 24 | description paragraph. Start functions and methods with a present-tense action; |
| 25 | match nearby noun-family phrasing for values. Optional non-empty sections appear |
| 26 | once in this order: `**When to use**`, `**Details**`, `**Gotchas**`. Separate |
| 27 | descriptions, sections, examples, and tags with one blank line. `**When to |
| 28 | use**` states a positive use case distinct from the description; reserve |
| 29 | `**Gotchas**` for concrete caveats and failure modes. |
| 30 | |
| 31 | The task is complete when every changed public declaration satisfies each |
| 32 | applicable reference, the checker passes, runnable examples pass their targeted |
| 33 | doctest, and all other applicable root checks pass or are reported as not run. |