jsdoc-annotation-specialist
Skill78 starsChanged 7 days agoApache-2.0View on GitHub
JSDoc/TSDoc and schema annotation compliance: Effect-style section grammar, kind-aware Examples, described @see, $I.annote/$I.annoteSchema gaps, TSDoc violations, docgen failures, and documentation post-passes on exported symbols.
In this repository38 other files it gives its agents.
- AGENTS.mdAGENTS.md
- explorations/AGENTS.mdAGENTS.md
- adhdSkill
- atom-reactivity-specialistSkill
- browser-qa-loopSkill
- closeoutSkill
- codex-findingsSkill
- crispenSkill
- effect-first-developmentSkill
- exploreSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- motion-evidence-reviewSkill
- onepassword-secret-refsSkill
- ontology-architectSkill
- ontology-conceptualizerSkill
- ontology-curatorSkill
- ontology-foundational-auditorSkill
- ontology-mapperSkill
- ontology-requirementsSkill
- ontology-scoutSkill
- ontology-validatorSkill
- operator-handoffSkill
- orchestrateSkill
- plasma-sensitive-entrySkill
- portlessSkill
- qa-session-opsSkill
- quality-review-fix-loopSkill
- reflectSkill
- remote-development-agentsSkill
- schema-first-developmentSkill
- shadcnSkill
- sparql-expertSkill
- teachSkill
- turborepoSkill
- unslopSkill
- yeetSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 5 are distinctive, and 11 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
11
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 14
Use this skill to author, upgrade, or review JSDoc and schema annotations.
- Distinctive: line 35
Write one lead paragraph that explains purpose rather than restating the signature.
- Very specific: line 37
Add only useful body sections in this order: When to use, Details, Gotchas, then titled Example (Title) blocks.
- Very specific: line 41
Never introduce @example or @remarks: the repo-wide zero-legacy gate fails on any occurrence in packages//src.
- Very specific: line 44
Add conditional tags only for facts absent from the signature, order them per references/conventions.md, and describe every @see with a …
- Very specific: line 46
Verify @category, @since 0.0.0, TSDoc grammar, imports, and Example safety.
- Distinctive: line 49
Run the bounded docgen check and fix Example compilation failures.
- Distinctive: line 55
When to use -> Details -> Gotchas -> Examples last.
- Distinctive: line 57
Every Example title is non-empty and unique within its doc block.
- Very specific: line 79
Use @typeParam, never @template.
- Very specific: line 80
Use a hyphen only in @param name - description, never after @returns or @throws.
- Very specific: line 83
Use Details or Gotchas, never @remarks.
- Very specific: line 84
Every @deprecated links its replacement and explains the migration.
- Very specific: line 85
Every @see contains a link plus a purpose phrase.
- Very specific: line 89
Every owning export has a useful one-paragraph lead, canonical @category, and @since 0.0.0.
- Distinctive: line 91
Every value-level export has a titled, single-fence, observable, compilable Example.
≈ “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
JSDoc Annotation Specialist
Use this skill to author, upgrade, or review JSDoc and schema annotations. The
binding source is .patterns/jsdoc-documentation.md; this skill turns that law
into a repeatable editing posture.
References
references/conventions.md— section grammar, kind split, tag order, worked before/after block, imports, categories, and forbidden patterns.references/annotation-patterns.md—$I.annoteand$I.annoteSchemaby schema kind, including same-name type companions.references/agent-lifting-and-greps.md— agent-context lifting and focused grep audits.
Load references/conventions.md whenever writing or upgrading a doc block. Load
the annotation reference for schemas and the grep reference for multi-file audits.
Authoring workflow
- Inventory the owning declarations for public exports; do not document barrel re-exports as though they were new symbols.
- Classify each export as value-level or pure type-level.
- Write one lead paragraph that explains purpose rather than restating the signature.
- Add only useful body sections in this order:
**When to use**,**Details**,**Gotchas**, then titled**Example** (Title)blocks. - Require an Example for value-level exports. For pure type-level exports, require prose and add an Example only when it teaches something material.
- Never introduce
@exampleor@remarks: the repo-wide zero-legacy gate fails on any occurrence inpackages/**/src. Move@remarkscontent into Details or Gotchas and write examples as titled Example sections. - Add conditional tags only for facts absent from the signature, order them per
references/conventions.md, and describe every@seewith a purpose phrase. - Verify
@category,@since 0.0.0, TSDoc grammar, imports, and Example safety. - For schema values, verify
$I.annoteor$I.annoteSchemausing the annotation reference. - Run the bounded docgen check and fix Example compilation failures.
Section grammar
- Sections are optional except for kind-required Examples.
- Present sections are non-empty, unique, and ordered exactly: When to use -> Details -> Gotchas -> Examples last.
- The When-to-use body begins with
Use to,Use when,Use as, orUse with. - Every Example title is non-empty and unique within its doc block.
- Each Example has exactly one
tsfence; notsfence is loose outside an Example section. - Tags follow all body sections.
**Example** (Title) is canonical everywhere. The legacy @example/@remarks
carriers are retired repo-wide. The default beep quality jsdoc-ratchet scan
covers non-generated {packages,apps}/**/src; use --include-generated when
proving generator output. A default pass does not prove generated compliance.
The generated residual allowlist is currently empty.
Kind split
Value-level exports require an Example: functions, constants, classes, schemas,
services, layers, and other runtime values. Pure type-level exports require prose
only: aliases, interfaces, namespaces, .Encoded companions, and same-name schema
type companions. Their Example is optional.
TSDoc hard rules
- Drop
{type}blobs from@param,@returns, and@throws; the signature owns the type. - Use
@typeParam, never@template. - Use a hyphen only in
@param name - description, never after@returnsor@throws. - Use
@packageDocumentation, never@module. - Use Details or Gotchas, never
@remarks. - Every
@deprecatedlinks its replacement and explains the migration. - Every
@seecontains a link plus a purpose phrase.
Post-pass checklist
- Every owning export has a useful one-paragraph lead, canonical
@category, and@since 0.0.0. - Every value-level export has a titled, single-fence, observable, compilable Example; pure type-level exports have precise prose.
- Sections are non-empty, unique, canonical-order, and Example-last; When-to-use
text has an allowed opener; no loose
tsfence exists. - Files whose documentation was touched have no
@remarksor legacy@examplecarrier. - Conditional tags add information, follow tag order, and every
@seeis described. - Examples use
S/A/O/P/Rnamespaces, contain noany, assertions,declare, empty generators, or deprecated@effect/schemaimports. - Schema annotations and same-name type companions follow
references/annotation-patterns.md. bun run docgen:localpasses; usebun run beep docgen quality -p <package>as advisory editorial input.
The ratchet has two layers: the totals baseline fails on growth, and the
zero-legacy scan fails on any legacy carrier in packages/**/src regardless of
whether the file was touched.
Escalation
schema-first-development— schema modeling beyond annotation work.effect-first-development— code changes broader than documentation, including new tagged-error hierarchies.
Source references
.patterns/jsdoc-documentation.md— binding JSDoc/TSDoc lawtsdoc.json— registered custom tagspackages/tooling/library/repo-utils/src/schemas/JSDocCategories.ts— categoriespackages/foundation/modeling/schema/src/SemanticVersion.ts— template-literal schema and annotationpackages/tooling/tool/cli/src/commands/Quality/Tasks.ts— tagged error and annotation examples
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.

