Qwik Docs Development
Use this skill for packages/docs/** work. Keep the repo-wide rules from .ruler/AGENTS.md in
force.
Fast Path
- Identify whether the change is docs content, route/layout code, API docs surfacing, generated LLM
output, search/indexing, or deployment behavior.
- For docs content, follow the writing style below before changing site mechanics.
- For existing docs pages already in the LLM manifest, edit source content and regenerate only when
verification requires generated output.
- For new pages that should appear in LLM outputs, update the curated manifest in
packages/docs/scripts/generate-llms.ts.
- When editing docs scripts, keep generation deterministic and add focused unit coverage for parser,
path, URL, or output-shape behavior.
- Prefer docs-specific commands from
packages/docs/package.json.
Writing Style
Write Qwik docs for readers who are learning the concept while solving a concrete task.
- Start with the user need and the Qwik concept in one or two plain paragraphs.
- Split the page into short sections named after the concept or API, such as
useSignal(),
Passing signals to child components, or Nested objects and arrays.
- Explain the default case first, then reveal deeper, less common, or higher-cost cases later, this is done in a note block. There is short and long form notes in MDX.
- Use complete, minimal examples with current v2 imports from
@qwik.dev/core.
- After each example, state what the example created or changed and what Qwik tracks, updates, or
serializes.
- Prefer direct sentences over marketing claims or framework jargon. Define Qwik-specific terms
before relying on them.
- Use notes sparingly for important mental models, tradeoffs, or pitfalls, such as avoiding store
destructuring or using
function when a store method needs this.
- Keep examples small enough to scan, but complete enough to paste into a demo or fixture.
- Link demos after the core explanation; do not make the link carry the explanation.
Content Pattern
For concept docs, use this shape unless the page has a better existing local pattern:
- State the problem and divide the concept into the two or three choices users need to understand.
- Show the simplest API with a complete code example.
- Explain the important variable or object in the example in one short paragraph.
- Add a sharing, nesting, async, or advanced section only after the default case is clear.
- Include a short note for automatic tracking, serialization, or performance tradeoffs when that
knowledge prevents common mistakes.
Source Map
- Docs routes and MDX:
packages/docs/src/routes/
- Docs components:
packages/docs/src/components/
- LLM generator:
packages/docs/scripts/generate-llms.ts
- Docs e2e:
e2e/docs-e2e/tests/
- Generated docs build output:
packages/docs/dist/
LLM Output Rules
The docs build can generate:
dist/llms.txt
dist/llms-ctx.txt
dist/llms-ctx-full.txt
- curated markdown mirrors under
dist/docs/
Do not hand-edit generated files in packages/docs/dist/. Edit docs source or
packages/docs/scripts/generate-llms.ts, then regenerate.
Keep the LLM manifest curated. Existing pages regenerate automatically, but new public LLM surface
area should be added intentionally with section, title, pathname, sourcePath, and
description.
Verification
Use the narrowest relevant command:
pnpm -C packages/docs generate.llms
pnpm -C packages/docs build
pnpm playwright test e2e/docs-e2e/tests/docs-smoke.spec.ts --config e2e/docs-e2e/playwright.config.ts --project chromium
Set QWIK_LLMS_BASE_URL only when intentionally testing alternate generated links.
Stop Conditions
- Stop before adding a new page to LLM outputs unless it should be part of the curated public LLM
surface.
- Stop and run or request the relevant docs build when route generation or static output behavior is
changed.
- If docs source or scripts contradict this skill, update the skill before finishing or record why
guidance edits were out of scope.
No Hydration Terminology
Never describe Qwik or any part of how Qwik works as hydration. Qwik does not hydrate. Qwik is
resumable: the server serializes application state and listeners into the HTML, and the client
resumes execution exactly where the server left off, without re-running component code or
rebuilding the framework state.
- Do not call any Qwik mechanism "hydration", "hydrating", "rehydration", "partial hydration",
"progressive hydration", "selective hydration", or "island hydration".
- Do not describe Qwik components, containers, or apps as "hydrated" or "needing to hydrate".
- Use the Qwik terminilogy instead: "javascript streaming", "JIT preloading", "resumability", "resume", "resuming", "serialization", "deserialization", and "lazy execution".
- Describe client startup as Qwik resuming from serialized state, not as Qwik booting, mounting,
or hydrating the app.
Allowed Mentions
The word "hydration" may appear only when explicitly contrasting Qwik with hydration-based
frameworks, and the sentence must make clear that hydration is what other frameworks do and what
Qwik avoids. For example: "Unlike frameworks that hydrate on the client, Qwik resumes from
serialized state." Never use hydration vocabulary, even casually or by analogy, to explain what
Qwik itself does.
1---2name: qwik-docs-development3description: Use when writing, modifying, or reviewing Qwik docs content or docs-site code under packages/docs, including docs routes, MDX content, generated LLM outputs, docs build behavior, or docs-specific e2e tests.4---56# Qwik Docs Development78Use this skill for `packages/docs/**` work. Keep the repo-wide rules from `.ruler/AGENTS.md` in9force.1011## Fast Path12131. Identify whether the change is docs content, route/layout code, API docs surfacing, generated LLM14 output, search/indexing, or deployment behavior.152. For docs content, follow the writing style below before changing site mechanics.163. For existing docs pages already in the LLM manifest, edit source content and regenerate only when17 verification requires generated output.184. For new pages that should appear in LLM outputs, update the curated manifest in19 `packages/docs/scripts/generate-llms.ts`.205. When editing docs scripts, keep generation deterministic and add focused unit coverage for parser,21 path, URL, or output-shape behavior.226. Prefer docs-specific commands from `packages/docs/package.json`.2324## Writing Style2526Write Qwik docs for readers who are learning the concept while solving a concrete task.2728- Start with the user need and the Qwik concept in one or two plain paragraphs.29- Split the page into short sections named after the concept or API, such as `useSignal()`,30 `Passing signals to child components`, or `Nested objects and arrays`.31- Explain the default case first, then reveal deeper, less common, or higher-cost cases later, this is done in a note block. There is short and long form notes in MDX.32- Use complete, minimal examples with current v2 imports from `@qwik.dev/core`.33- After each example, state what the example created or changed and what Qwik tracks, updates, or34 serializes.35- Prefer direct sentences over marketing claims or framework jargon. Define Qwik-specific terms36 before relying on them.37- Use notes sparingly for important mental models, tradeoffs, or pitfalls, such as avoiding store38 destructuring or using `function` when a store method needs `this`.39- Keep examples small enough to scan, but complete enough to paste into a demo or fixture.40- Link demos after the core explanation; do not make the link carry the explanation.4142## Content Pattern4344For concept docs, use this shape unless the page has a better existing local pattern:45461. State the problem and divide the concept into the two or three choices users need to understand.472. Show the simplest API with a complete code example.483. Explain the important variable or object in the example in one short paragraph.494. Add a sharing, nesting, async, or advanced section only after the default case is clear.505. Include a short note for automatic tracking, serialization, or performance tradeoffs when that51 knowledge prevents common mistakes.5253## Source Map5455- Docs routes and MDX: `packages/docs/src/routes/`56- Docs components: `packages/docs/src/components/`57- LLM generator: `packages/docs/scripts/generate-llms.ts`58- Docs e2e: `e2e/docs-e2e/tests/`59- Generated docs build output: `packages/docs/dist/`6061## LLM Output Rules6263The docs build can generate:6465- `dist/llms.txt`66- `dist/llms-ctx.txt`67- `dist/llms-ctx-full.txt`68- curated markdown mirrors under `dist/docs/`6970Do not hand-edit generated files in `packages/docs/dist/`. Edit docs source or71`packages/docs/scripts/generate-llms.ts`, then regenerate.7273Keep the LLM manifest curated. Existing pages regenerate automatically, but new public LLM surface74area should be added intentionally with `section`, `title`, `pathname`, `sourcePath`, and75`description`.7677## Verification7879Use the narrowest relevant command:8081```bash82pnpm -C packages/docs generate.llms83pnpm -C packages/docs build84pnpm playwright test e2e/docs-e2e/tests/docs-smoke.spec.ts --config e2e/docs-e2e/playwright.config.ts --project chromium85```8687Set `QWIK_LLMS_BASE_URL` only when intentionally testing alternate generated links.8889## Stop Conditions9091- Stop before adding a new page to LLM outputs unless it should be part of the curated public LLM92 surface.93- Stop and run or request the relevant docs build when route generation or static output behavior is94 changed.95- If docs source or scripts contradict this skill, update the skill before finishing or record why96 guidance edits were out of scope.9798## No Hydration Terminology99100Never describe Qwik or any part of how Qwik works as hydration. Qwik does not hydrate. Qwik is101resumable: the server serializes application state and listeners into the HTML, and the client102resumes execution exactly where the server left off, without re-running component code or103rebuilding the framework state.104105- Do not call any Qwik mechanism "hydration", "hydrating", "rehydration", "partial hydration",106 "progressive hydration", "selective hydration", or "island hydration".107- Do not describe Qwik components, containers, or apps as "hydrated" or "needing to hydrate".108- Use the Qwik terminilogy instead: "javascript streaming", "JIT preloading", "resumability", "resume", "resuming", "serialization", "deserialization", and "lazy execution".109- Describe client startup as Qwik resuming from serialized state, not as Qwik booting, mounting,110 or hydrating the app.111112### Allowed Mentions113114The word "hydration" may appear only when explicitly contrasting Qwik with hydration-based115frameworks, and the sentence must make clear that hydration is what other frameworks do and what116Qwik avoids. For example: "Unlike frameworks that hydrate on the client, Qwik resumes from117serialized state." Never use hydration vocabulary, even casually or by analogy, to explain what118Qwik itself does.