# Documentation

> Documentation deep-dive for the poku website covering Docusaurus setup, language policy, feature-to-docs mapping, conventions, JSDoc, and the changelog. Use when editing or adding docs or mapping a feature to its page.

- Skill: `wellwelwel/documentation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add wellwelwel/documentation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wellwelwel/documentation/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: wellwelwel (https://skillmd.com/u/wellwelwel)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wellwelwel/documentation

---


Documentation conventions and where to look. Read the actual `website/` tree and config to confirm details, since pages and versions change over time.

### 1. Framework & Config

- Docusaurus 3.x at `website/`. For the exact version, read `website/package.json`
- Config: `website/docusaurus.config.ts`. Sidebar: `website/sidebars.ts` (top-level items are manual, the docs/tutorials/examples categories are autogenerated from their directories)
- Versioning: the `current` docs are the active version, older majors are kept but marked unmaintained. Read the `versions` block in `website/docusaurus.config.ts` and `website/versions.json` for the live set of versions and their labels

### 2. Language Policy

- English is mandatory. Use i18n (`website/i18n/`) only on explicit user request

### 3. Documentation Structure

The docs live under `website/docs/`:

- Root pages cover the homepage, philosophy, and the comparison with other runners
- `documentation/` is the API reference, organized by area: assertions, helper APIs (under `helpers/`), and the `poku` runner with its CLI options (under `poku/`)
- `tutorials/` holds guided walkthroughs and `examples/` holds runnable examples

Read the `website/docs/` tree to discover the current pages rather than relying on a fixed list here, since pages are added and reorganized.

### 4. Feature-to-Docs Mapping

There is a close (not strictly 1:1) mapping between helper APIs in `src/modules/helpers/` and pages under `website/docs/documentation/helpers/`. Conventions to expect:

- Most helpers have a matching page of the same name
- Related helpers are sometimes grouped into a subdirectory (for example, process-related helpers)
- A single source helper can be split across multiple pages, and a single page can cover more than one export
- The config option types inform the `poku/options/` pages
- The public surface is whatever `package.json` `exports` define, not the internal file layout

To find the doc for a feature, read the helpers directory and the docs directory and match by responsibility, rather than trusting a fixed table.

### 5. Documentation Conventions

When reading or writing docs, follow these patterns:

- **Front matter**: YAML with `sidebar_position` and `tags`
- **Page structure**: function signature (`> fn(params)`) then Basic Usage then Advanced then FAQ
- **Components**: reusable MDX components live in `website/src/components/` (for example `FAQ`, and `History` to document when a feature became available or had breaking changes across versions). Docusaurus components like `Tabs`/`TabItem` are also available
- **Category organization**: `_category_.json` files
- **Punctuation**: Use proper punctuation. Never use any kind of substitute as a crutch
- **Consistency**: Match the writing style, tone, and structure of the related existing docs

### 6. Inline Documentation (JSDoc)

- Type definitions live in `src/@types/`
- Pattern: description plus an `@default` tag
- These inform the documentation content

### 7. LLM Docs (Context7)

- `website/llms/` holds docs written for LLMs and indexed by Context7, separate from the human-facing pages in `website/docs/`
- Current files: `llms.md` (the llms.txt entry point, symlinked to `website/static/llms.txt`), `comparing.md`, and `philosophy.md`
- `context7.json` at the repo root controls what Context7 indexes and how it guides the agent through the `folders` allowlist (which includes `website/llms`), the `description`, and the `rules`
- The `description` and `rules` have Context7 length limits, validated by `test/unit/context7-rules.test.ts`

### 8. Changelog

- `CHANGELOG.md` is auto-generated: **NEVER** edit it!

