Agent skill

Doc Component

by Endava in Endava/BEEQ

Generate or complete a Mintlify MDX documentation page for a BEEQ component.

Apache-2.0Auto-check passedFrontend & Design

Install Doc Component

skills CLI
$ npx skills add Endava/BEEQ --skill doc-component -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Endava/BEEQ doc-component --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Endava/BEEQ.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/doc-component .claude/skills/doc-component && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
doc-component
GitHub stars
163
Token cost
~3.3k tokens
SKILL.md length
1,403 words
Files
1
Skills in repo
9
Repo updated
First seen
Licence
Apache-2.0

At a glance

Generate or complete a Mintlify MDX documentation page for a BEEQ component.

  • Tasks that involve Markdown
  • SKILL.md covers When to use, When NOT to use this skill, Before You Start and Procedure, plus 2 more sections
  • Calls tsx; reaches storybook.beeq.design
  • Tasks that involve Design tokens

What it does

Doc Component is an agent skill from Endava/BEEQ. Generate or complete a Mintlify MDX documentation page for a BEEQ component. Reads the component source to extract props, events, slots, shadow parts, and CSS variables, and follows the mandatory page structure from the documentation guidelines.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Markdown, Design tokens and Design systems. The repository describes itself as: BEEQ Design System, a web component library ruled by Endavan developers :). The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Markdown
  • Tasks that involve Design tokens
  • Tasks that involve Design systems

Example prompts

  • “/doc-component”

What it can do on your machine

Read from SKILL.md and the folder at commit 5f4728d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • tsx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • storybook.beeq.design

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Doc Component loads about 3.3k tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 1,403 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Endava/BEEQ at commit 5f4728d, republished under its Apache-2.0 licence (© Endava). 1,403 words, ~3,334 tokens.

Download SKILL.mdSave it as .claude/skills/doc-component/SKILL.md (or your agent's skills folder).
name
doc-component
description
Generate or complete a Mintlify MDX documentation page for a BEEQ component. Reads the component source to extract props, events, slots, shadow parts, and CSS variables, and follows the mandatory page structure from the documentation guidelines.
argument-hint
Component name (e.g. "card") or path to the component tsx file, link to the component source file, or link to an existing incomplete documentation page.
metadata.internal
true

Write documentation for BEEQ components

When to use

  • When creating a new MDX page in apps/beeq-docs/components/ for an existing bq-* component.
  • When migrating a Zeroheight docs page to Mintlify.
  • When refilling missing sections on a partially-written page.
  • Before merging a new or migrated MDX page in apps/beeq-docs/components/.
  • When normalizing pages for consistency across the docs site.
  • When a docs reviewer flags structure or tone issues.

When NOT to use this skill

  • When the page already exists and only needs an audit → use review-doc.
  • When the component itself is missing or incomplete — finish the component first with create-component and review-component.
  • For non-component pages such as foundations, theming, getting started, guides, framework integrations, or migration docs. Follow the shared documentation instructions and use review-doc for review.

Before You Start

  1. Read the instructions files for this task, in full before writing a single line:
    • Documentation instructions. It defines the mandatory component page structure, non-component page guidance, component usage patterns, CSS isolation rules, and code tab ordering.
  2. Read the component source
    • These files are the ground truth for the API reference. Do not document any prop, event, slot, part, or CSS variable that does not exist in the source:
      • packages/beeq/src/components/<name>/bq-<name>.tsx — @Prop, @Event, @Method, class-level JSDoc (@slot, @part, @cssprop, @attr)
      • packages/beeq/src/components/<name>/bq-<name>.types.ts — prop type unions and constants
      • packages/beeq/src/components/<name>/scss/bq-<name>.variables.scss — all --bq-<name>-* CSS custom properties with their defaults
    • Cross-check against the Custom Elements Manifest output in packages/beeq/cem/ — it is the canonical machine-readable description of every component's public API and should match what you put in the API tables.
    • Do not infer props, events, slots, shadow parts, or CSS custom properties from Zeroheight or old docs. Migrated content is reference material for tone and concepts, not API truth.
    • Also read an existing complete documentation page as a structural reference: apps/beeq-docs/components/icon.mdx or apps/beeq-docs/components/badge.mdx.

Procedure

1. Mandatory page structure (exact order)

Write the page in this section order — do not skip or reorder:

  1. Frontmatter (title, description)
  2. Imports (at top, after frontmatter; only import what is used)
  3. Overview Frame (light + dark SVG pair, using block dark:hidden / hidden dark:block)
  4. Introduction paragraph (1–2 sentences: what the component is and its primary purpose)
  5. Note (optional — only for a gotcha that affects all uses)
  6. When to use (2-column CardGroup with Do / Don't cards using bullet lists)
  7. Patterns (optional — common real-world contexts)
  8. Anatomy (light + dark anatomy SVG in a Frame, followed by a parts table)
  9. Design guidelines (CardTile, Steps, Note as appropriate)
  10. Usage (primary variants with CodeLivePreview + CodeGroup)
  11. Options (additional configurations with CodeLivePreview + CodeGroup)
  12. Best practices (2×2 CardGroup, 4 Do/Don't pairs minimum)
  13. Accessibility (built-in behaviors + developer responsibilities)
  14. API reference (Properties, Slots, Shadow parts, CSS custom properties)
  15. Resources (2-column CardGroup with Storybook + GitHub source links)

2. Key patterns to apply

Image paths

All images follow: /components/images/<name>/<name>-[variant]-[light|dark].svg

Every image appears twice — once with className="block dark:hidden" and once with className="hidden dark:block".

When to use cards
mdx
<CardGroup cols={2}>
  <Card>
    <span className="flex items-center mr-2 text-lg font-medium" role="heading">
      <Icon className="mr-2" icon="thumbs-up" iconType="solid" size={20} color="var(--bq-stroke--success)" />
      Use [component] when
    </span>
    - bullet 1
    - bullet 2
  </Card>
  <Card>
    <span className="flex items-center mr-2 text-lg font-medium" role="heading">
      <Icon className="mr-2" icon="thumbs-down" iconType="solid" size={20} color="var(--bq-stroke--danger)" />
      Do not use [component] when
    </span>
    - bullet 1
    - bullet 2
  </Card>
</CardGroup>
CodeLivePreview isolation

Prefer mode="iframe" for new CodeLivePreview examples. Iframe mode gives the example a full document sandbox, so Mintlify layout, CSS, and page scripts cannot influence the preview, and preview scripts cannot disrupt the docs page.

Always pass the mode explicitly:

mdx
<CodeLivePreview mode="iframe" height="12rem" code={`...`} />

Use iframe mode whenever an example includes layout behavior, scripts, overlays, popovers, fixed or absolute positioning, responsive containers, page-like composition, or anything that could conflict with the Mintlify documentation shell. Always include an explicit height; use removePadding when preview padding would hide the real layout behavior.

Shadow mode is still allowed for small, component-local examples that will not disrupt the Mintlify page and do not need full document isolation. In shadow mode, CodeLivePreview injects code into a shadow root. beeq.css is loaded automatically, and CSS custom properties (--bq-*) still inherit through the boundary.

In shadow mode, override the host (.preview) layout with :host inside a <style> block. Override properties require !important to beat the CodeLivePreview stylesheet:

html
<style>
  :host { flex-direction: column !important; gap: var(--bq-spacing-m) !important; }
  .my-wrapper { display: flex; gap: 1rem; }
</style>

Do not use @scope — it was the old light-DOM approach and is no longer needed. Do not use <style scoped> — not a real browser feature.

Every <script> block must use previewRoot to query elements inside the preview. In iframe mode, previewRoot is the iframe document. In shadow mode, previewRoot is the shadow root. document.currentScript is always null for dynamically created scripts. Wrap in an IIFE to prevent variable leakage:

html
<script>
  (() => {
    const btn = previewRoot.querySelector('bq-button');
    btn?.addEventListener('bqClick', () => { /* ... */ });
  })();
</script>

Do not wrap examples in unnecessary <div>s for alignment purposes. In shadow mode, use :host overrides for preview layout. In iframe mode, use normal document CSS inside the preview.

Show full SKILL.md (666 more words)Show less
CodeGroup tab order

Every CodeLivePreview must be followed by a CodeGroup. The code shown in the tabs must align with what the preview renders.

Use this tab order:

  1. CSS — only when the styles are essential for understanding or reusing the example
  2. JavaScript — only when the script is long enough to deserve its own tab
  3. HTML (kebab-case attributes)
  4. React (camelCase props, onBqEventName for events)
  5. Angular (ts code block; standalone @Component; import { BqX } from "@beeq/angular/standalone"; (bqEventName) for events; empty class body {} when no logic)
  6. Vue (camelCase props, @bqEventName for events)

Every fenced code block used as a Mintlify tab must include the correct icon. Add expandable only when the code block has more than 7 lines of code; short snippets should stay fully visible because Mintlify collapses expandable blocks too aggressively. Keep all apps/beeq-docs/index.mdx code tabs open, regardless of length.

TabOpening fence
CSScss styles.css icon="css"
JavaScriptjavascript script.js icon="js"
HTMLhtml HTML icon="html5"
Reactjsx React icon="react"
React with TypeScripttsx React icon="react"
Angularts Angular icon="angular"
Vuevue Vue icon="vuejs"

Keep one empty line between each fenced code block inside a CodeGroup.

CSS tabs are required only when the styles are essential for understanding or reusing the example. Do not add a CSS tab for incidental preview layout. React examples must import the CSS filename shown in the CSS tab when one exists, for example import "./styles.css";.

HTML tabs should include JavaScript inline when the behavior belongs to the HTML example. Add a separate JavaScript tab only when the script is too long to keep the HTML readable.

Angular examples must use the standalone implementation approach, not Angular modules. Angular and Vue examples should use inline styles unless external CSS is critical to the example and appears in a CSS tab.

Do / Don't card pattern (Best practices)
mdx
<Card>
  <span className="flex items-center mr-2 text-lg font-medium" role="heading">
    <Icon className="mr-2" icon="check" iconType="solid" size={20} color="var(--bq-stroke--success)" />
    Do
  </span>
  Positive guidance as a complete sentence.
</Card>
<Card>
  <span className="flex items-center mr-2 text-lg font-medium" role="heading">
    <Icon className="mr-2" icon="xmark" iconType="solid" size={20} color="var(--bq-stroke--danger)" />
    Don't
  </span>
  What to avoid and briefly why.
</Card>
Anatomy parts table
PartElementDescription
1NameWhat this part does
API reference — Properties table
PropertyAttributeDescriptionTypeDefault
propNameprop-nameDescription from JSDoc'option1' | 'option2''option1'
API reference — CSS custom properties

If the component has more than 5 variables, wrap in <Expandable title="CSS variables" defaultOpen={true}> (use defaultOpen={false} when the list is very long, e.g. 20+). If 5 or fewer variables, display the table directly — no <Expandable> wrapper needed. Columns: Variable, Description, Default.

Extract all variables from bq-<name>.variables.scss. Default values must use var(--bq-*) CSS custom properties — never Tailwind theme() function calls. Map each theme(...) value to its underlying var(--bq-*) equivalent. Hardcoded values (e.g. transparent, none, solid, unset, plain numbers like 0 or 10, pixel values like 24px) are kept as-is.

Resources section
mdx
<CardGroup cols={2}>
  <Card horizontal title="Interactive playground" icon="code" href="https://storybook.beeq.design/?path=/story/components-<name>--default">
    Explore <name> variants and states in Storybook
  </Card>
  <Card horizontal title="Source code" icon="github" href="https://github.com/Endava/BEEQ/tree/main/packages/beeq/src/components/<name>">
    View the component source on GitHub
  </Card>
</CardGroup>

3. Writing standards

  • Write for all audiences: developers, designers, PMs. Use plain language.
  • Active voice, short sentences, second-person ("you").
  • No filler: no "simply", "just", "easily", "note that", "please", "for clarity".
  • Explain why a pattern exists, not just what it does.
Avoid these anti-patterns

1. Defining terms the reader already knows — use the correct term and trust the reader. Do not add "also known as" aliases.

❌ CSS custom properties, also known as CSS variables, let you…
✅ CSS custom properties follow the --bq-* naming convention…

2. "Once X is Y, you can Z" — go straight to the action. Avoid dependent clauses that restate what was just explained.

❌ Once the part is exposed, you can style it with ::part().
✅ Style it using ::part() from your own stylesheet:

3. Hedged observations — lead with outcomes, not "works well together when you want to…" constructions.

❌ These two approaches work well together when you need more control.
✅ Combine CSS variables and ::part() when token overrides alone aren't enough.

4. Callouts that disclaim — <Note>, <Tip>, and <Warning> should give the reader a useful constraint or shortcut, not justify a documentation choice.

❌ The examples use inline CSS for clarity.
✅ The examples use inline <style> tags so you can run them directly.

  • Output path: apps/beeq-docs/components/<name>.mdx.
  • When migrating from Zeroheight, remove visible Keywords sections, rewrite stale language for Mintlify, and verify values against current source before documenting them.

After writing, run review-doc on the new page to verify compliance.

© Endava, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/doc-component of Endava/BEEQ.

Open the folder on GitHubat commit 5f4728d

Compare with similar skills

Doc Component next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Doc Component compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Doc Component this skillEndava/BEEQ163—~3.3kAutomated safety check: PassApache-2.0
Building With Lobe UIlobehub/lobe-ui2.2k—~2kAutomated safety check: PassMIT
Figma Design System Builderwarpdotdev/warp65k2 repos~4.4kAutomated safety check: PassAGPL-3.0
Figma use_figma Plugin API Ruleswarpdotdev/warp65k4 repos~4.4kAutomated safety check: PassAGPL-3.0
Design SystemOhh-889/skyroc79511 repos~1.7kAutomated safety check: PassMIT
Design Dnazanwei/design-dna1.9k1 repos~2.1kAutomated safety check: PassMIT

Similar skills

  • Building With Lobe UI

    lobehub/lobe-ui

    Build UI with the LobeHub design ecosystem — @lobehub/ui (plus its base-ui, chat, mobile, awesome, brand, mdx, i18n namespaces), @lobehub/icons, @lobehub/charts, @lobehub/fluent-emoji and…

    2.2k GitHub stars~2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Frontend & DesignAuto-check passed
  • Design System

    Ohh-889/skyroc

    Token architecture, component specifications, and slide generation.

    795 GitHub starsUsed in 11 repos~1.7k tokens
    Frontend & DesignAuto-check passed
  • Design Dna

    zanwei/design-dna

    Extract, define, and apply design DNA across three dimensions: design system (tokens), design style (qualitative feel), and visual effects (Canvas, WebGL, 3D, particles, shaders, scroll effects…

    1.9k GitHub starsUsed in 1 repo~2.1k tokens
    Frontend & DesignAuto-check passed
  • Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.

    16k GitHub stars~2.7k tokensUpdated today
    Frontend & DesignAuto-check passed

More from Endava/BEEQ

All 9 skills in this repo
  • Beeq

    Endava/BEEQ

    Builds, styles, and reviews UI with BEEQ, Endava's web-component design system.

    163 GitHub stars~5.6k tokensUpdated yesterday
    Auto-check passed
  • Create Component

    Endava/BEEQ

    Create a new BEEQ StencilJS web component. An agent skill from Endava/BEEQ.

    163 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Audit and fix WCAG 2.1 Level AA accessibility issues in BEEQ StencilJS components.

    163 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Review Component

    Endava/BEEQ

    Review a BEEQ StencilJS component against design system guidelines and project standards.

    163 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Write E2E Tests

    Endava/BEEQ

    Write E2E tests for BEEQ StencilJS components using @stencil/vitest in browser mode (Playwright/Chromium).

    163 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Write Stories

    Endava/BEEQ

    Write Storybook stories and MDX docs for BEEQ web components.

    163 GitHub stars~968 tokensUpdated yesterday
    Auto-check passed

Questions about Doc Component

What does Doc Component do?

Generate or complete a Mintlify MDX documentation page for a BEEQ component. Doc Component is an agent skill from Endava/BEEQ. Generate or complete a Mintlify MDX documentation page for a BEEQ component.

When should I use Doc Component?

Doc Component fits situations like: tasks that involve Markdown; tasks that involve Design tokens; tasks that involve Design systems.

How do I install Doc Component in Claude Code?

Run `npx skills add Endava/BEEQ --skill doc-component -a claude-code`. Or copy the skill folder (.agents/skills/doc-component in Endava/BEEQ) into .claude/skills/doc-component in your project. Claude Code loads it when a task matches its description.

How do I install Doc Component in Codex?

Run `npx skills add Endava/BEEQ --skill doc-component -a codex`. Or copy the skill folder (.agents/skills/doc-component in Endava/BEEQ) into .agents/skills/doc-component in your project. Codex loads it when a task matches its description.

Can I use Doc Component in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Endava/BEEQ --skill doc-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/doc-component, .gemini/skills/doc-component, .github/skills/doc-component and .opencode/skills/doc-component in your project.

What does Doc Component need to run?

Going by SKILL.md and its folder, Doc Component needs the command-line tools its instructions call (tsx).

Does Doc Component access the network?

SKILL.md names 1 domain. In commands or code: storybook.beeq.design; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Doc Component safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Doc Component use?

Doc Component is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Doc Component use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Doc Component?

Skills that share tags, products or a category with Doc Component: Building With Lobe UI (lobehub/lobe-ui, 2.2k stars), Figma Design System Builder (warpdotdev/warp, 65k stars), Figma use_figma Plugin API Rules (warpdotdev/warp, 65k stars) and Design System (Ohh-889/skyroc, 795 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Doc Component?

Endava (a GitHub organization) maintains it in Endava/BEEQ, which has 163 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 6, 2026.

Source: Endava/BEEQ on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.