Scope narrowed to the API reference only. Guides and playground split out to keep this issue focused.
What lands here
API reference generated by @effect/docgen — Effect's own doc tool. Every @effect/* package uses it.
- Input: JSDoc comments on public exports (
@category, @since, @example, @internal, @deprecated, description)
- Output:
docs/modules/**/*.md — one file per source module, sections grouped by @category
- Enforcement:
@since required, @example required, description required — configurable, on by default
- Example validation: every
@example block gets typechecked against our tsconfig, so snippets can't drift from the code
Acceptance
@effect/docgen installed and configured (docgen.json)
- JSDoc comments on every public export in
src/Provider.ts, src/Executor.ts, src/Loader.ts, src/ProviderRequest.ts, src/graphiql.ts — description + @category + @since + @example per export
bun run docgen produces valid Markdown in docs/modules/
- CI runs
bun run docgen and fails if generation breaks or if an @example snippet doesn't typecheck
- Generated Markdown committed (browsable on GitHub)
Follow-ups
The generated API reference is v1's contract with users. The guides and playground layer on top.
Scope narrowed to the API reference only. Guides and playground split out to keep this issue focused.
What lands here
API reference generated by
@effect/docgen— Effect's own doc tool. Every@effect/*package uses it.@category,@since,@example,@internal,@deprecated, description)docs/modules/**/*.md— one file per source module, sections grouped by@category@sincerequired,@examplerequired, description required — configurable, on by default@exampleblock gets typechecked against our tsconfig, so snippets can't drift from the codeAcceptance
@effect/docgeninstalled and configured (docgen.json)src/Provider.ts,src/Executor.ts,src/Loader.ts,src/ProviderRequest.ts,src/graphiql.ts— description +@category+@since+@exampleper exportbun run docgenproduces valid Markdown indocs/modules/bun run docgenand fails if generation breaks or if an@examplesnippet doesn't typecheckFollow-ups
The generated API reference is v1's contract with users. The guides and playground layer on top.