Agent skill

QML Reference Documentation

by x-tools-author in x-tools-author/x-tools

Generates standalone Markdown reference docs for QML components and Qt Quick applications from .qml source and related C++ and build files, one file per component.

BSD-3-ClauseAuto-check passedDevelopment

Install QML Reference Documentation

skills CLI
$ npx skills add x-tools-author/x-tools --skill qt-qml-docs -a claude-code

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

GitHub CLI
$ gh skill install x-tools-author/x-tools qt-qml-docs --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/x-tools-author/x-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/qt-qml-docs .claude/skills/qt-qml-docs && 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
qt-qml-docs
GitHub stars
1.1k
Used in
1 other repo
Token cost
~2.5k tokens
SKILL.md length
1,275 words
Files
5
Skills in repo
10
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Generates standalone Markdown reference docs for QML components and Qt Quick applications from .qml source and related C++ and build files, one file per component.

  • Works in 8 steps: Component Overview → Project Structure and Dependencies → Component Hierarchy and Role → …
  • Documenting a QML component for other developers
  • SKILL.md covers Core requirements, Document structure, Pre-flight: check for existing… and Input handling, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

The agent reads QML files and related files such as C++ backends, QML modules, resource files, `CMakeLists.txt` and `qmldir`, then writes one Markdown file per component, skipping sections with nothing to say. The sections start with a component overview, project structure and dependencies, and component hierarchy and role, followed by a properties table with property, type, default, required and description columns that lists every declared property, including aliases.

The rules are that docs stay aware of where a component sits in the project, use tables rather than bullet lists for properties, follow conventions inferred from the project, and contain no code fences except in the Usage Example section for reusable components. It works from single files, pasted code or whole project folders. It is not for QDoc output, and platform notes for Copilot and Windsurf are bundled. The excerpt is truncated.

When your agent uses it

  • Documenting a QML component for other developers
  • Writing API reference docs for a Qt Quick module
  • Documenting a whole Qt app from its project folder

Example prompts

  • “Document this QML component, including its properties and where it is used.”
  • “Write reference docs for every QML file in the src/qml folder.”
  • “Create API docs for my Qt Quick button component with a usage example.”

Requirements

  • The .qml source files, plus any related C++ and CMake files for context
  • Compatibility (from SKILL.md): Designed for Claude Code, GitHub Copilot, and similar agents.

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Component Overview
  2. Project Structure and Dependencies
  3. Component Hierarchy and Role
  4. Properties
  5. Signals
  6. Methods
  7. Inter-Component Interactions
  8. Usage Example (reusable components only)

What it can do on your machine

Read from SKILL.md and the folder at commit 6214c41. 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

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    No URLs in SKILL.md.

    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.

  • Compatibility

    Designed for Claude Code, GitHub Copilot, and similar agents.

    From compatibility in the SKILL.md frontmatter.

Context cost

QML Reference Documentation loads about 2.5k tokens when it runs. Until then it costs about 172 tokens; SKILL.md has 1,275 words of instructions outside code blocks.

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

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 x-tools-author/x-tools at commit 6214c41, republished under its BSD-3-Clause licence (© x-tools-author). 1,275 words, ~2,484 tokens.

Download SKILL.mdSave it as .claude/skills/qt-qml-docs/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
qt-qml-docs
description
Generates standalone Markdown reference documentation for QML components and applications. Use this skill whenever you want to document QML files, create API reference docs for a QML component or module, document a Qt Quick application, or produce developer-facing documentation from .qml source code. Triggers on: "document this QML", "write docs for my QML", "create reference docs", "document QML component", "QML API docs", "document my Qt Quick component", "document my Qt app", or any time one or more .qml files are provided and documentation is needed. Works with single files, pasted code, or entire project folders. DO NOT use if the user asks for QDoc format output.
compatibility
Designed for Claude Code, GitHub Copilot, and similar agents.
license
LicenseRef-Qt-Commercial OR BSD-3-Clause
disable-model-invocation
false
metadata.author
qt-ai-skills
metadata.version
1.0
metadata.qt-version
6.x
metadata.category
process

QML Documentation Skill

You are an expert in Qt/QML who writes clear, accurate, developer-friendly reference documentation for QML components. Your task is to read QML source files — along with any related files (C++ backends, QML modules, resource files, CMakeLists.txt, qmldir, etc.) — and produce structured Markdown reference docs that give developers a complete picture of how components fit into the project.

Core requirements

  • No code snippets (except Usage Example). Do not wrap any code in markdown code fences, except in the Usage Example section (Section 8) for reusable components — see below. Describe code behaviour, method signatures, and property types in prose and tables instead.
  • Context-aware. Understand how each component fits into the project: what the application/module does, what role this component plays, and what it depends on.
  • Tables for properties. Always use Markdown tables (not bullet lists) to document properties.
  • Follow project conventions. Infer and respect any QML development conventions from the project's documentation or code patterns.

Document structure

For each QML component, generate a Markdown file named <ComponentName>.md with the following sections (omit any section that has no content):

1. Component Overview

Describe what the application or module does and where this component fits in the project architecture. Then explain what this specific component does — its visual or logical role, when a developer would reach for it, and what problem it solves. Keep this concise: a developer new to the codebase should understand the component's purpose at a glance.

2. Project Structure and Dependencies

Explain how the component relates to the project:

  • What files import or instantiate it?
  • What does it import (Qt Quick modules, custom project QML types, C++ registered types)?
  • For custom QML types, describe what they provide and where they come from.
  • Relevant build or module requirements (e.g. CMake targets, qmldir, qmltypes).
3. Component Hierarchy and Role

If the component inherits from or composes other elements, describe the hierarchy. Explain what the base type provides and what this component adds or overrides.

4. Properties

Use a Markdown table with these columns:

PropertyTypeDefaultRequiredDescription
  • List every declared property, including property alias entries.
  • For required properties, mark the Required column as Yes.
  • Describe each property in terms of what it controls or enables.
  • For properties that accept a fixed set of values (enums, string literals), list valid values and their meanings.
5. Signals

For each signal:

  • State its name and parameter list (type and name for each argument).
  • Explain what condition triggers the signal.
  • Describe what a connected handler is expected to do in response.

Format as a sub-section per signal: #### signalName(paramType paramName)

6. Methods

For each function:

  • State its name, parameter names and types, and return type (if any).
  • Explain what it does and when to call it.
  • Note any side effects (e.g. emits a signal, modifies state, restarts a timer).

Format as a sub-section per method: #### methodName(paramType paramName) : returnType

7. Inter-Component Interactions

Describe how this component communicates with other parts of the application:

  • Which properties are driven by external bindings?
  • Which signals are consumed by parent or sibling components?
  • Which functions are called from outside this file?
  • Shared state, models, or singletons it reads from or writes to.
8. Usage Example (reusable components only)

Include this section only when the component is reusable — i.e., it is designed to be instantiated by other QML files rather than serving as a standalone application entry point. A component is reusable when:

  • Its root type is not Window or ApplicationWindow (those are top-level application windows, not embeddable pieces).
  • It declares one or more property entries (especially required property or property alias) that callers are expected to set.
  • Its role is to be composed into larger UIs or used as a building block across the codebase.

Write a short, self-contained snippet showing a developer the minimal correct way to instantiate the component, setting every required property and any commonly needed properties.


Pre-flight: check for existing documentation

Before reading any source file, check whether documentation already exists for the files you are about to document. This saves time and lets the user decide whether they want a fresh pass or just an update.

Show full SKILL.md (592 more words)Show less
How to check
  1. Identify the expected output location. Documentation is written to a doc/ subdirectory next to the source files (e.g. if sources are in src/, docs go in src/doc/). For a single file Foo.h, the expected doc is src/doc/Foo.md; for main.cpp it is src/doc/main.md.

  2. Check whether the doc/ directory and the relevant .md files already exist. Use the Glob tool or run a 'ls' shell command — do not read the source files yet.

  3. Act on what you find:

    • No existing docs found — proceed normally with reading the source files and generating documentation.

    • Some or all docs already exist — do not read the source files yet. Instead, ask the user using AskUserQuestion with a multiple-choice reply:

      "I found existing documentation for [list the files that already have docs]. What would you like me to do?"

      Options:

      • Update existing docs — re-read the source files and rewrite the affected .md files in place.
      • Skip files that already have docs — only generate docs for source files that are missing documentation.
      • Generate fresh docs for everything — overwrite all existing docs unconditionally.
      • Cancel — stop here; make no changes.

    Wait for the user's choice before doing anything else.

  4. Honour the user's choice:

    • Update or Generate fresh → read all relevant source files and proceed normally, overwriting the existing .md files.
    • Skip → read only the source files that are missing a corresponding .md, and generate docs only for those.
    • Cancel → stop and confirm to the user that nothing was changed.

Input handling

Single file or pasted code: Document just that component. Infer application context from imports, property names, and the component's structure.

Folder / project: Walk the directory tree, find all .qml files. Also read any CMakeLists.txt, qmldir, or C++ header files — they provide context about module structure and registered types. Generate one .md per component. If documenting more than one file, also create a doc/index.md that lists every component with a one-line description and links.


Parsing QML accurately

Read the source carefully:

  • The root element is the base type; note what it inherits.
  • property <type> <name>: <default> — custom property with optional default.
  • property alias <name>: <target> — alias; document as type matching the target.
  • required property — must be explicitly set by the user of this component.
  • signal <name>(<params>) — custom signal.
  • function <name>(<params>) { } — JS function.
  • readonly property — cannot be set externally; document as read-only.
  • component <Name> : BaseType { } — inline component definition; document as a separate component within the same file.
  • Internal helpers prefixed with _ are usually private — skip them unless clearly intended as public API.
  • If a property lacks a clear description, use its name, type, and usage context to infer a meaningful one.

Tone and style

  • Write for a developer who knows QML but has not seen this component before.
  • Be precise about types: string, int, real, color, bool, var, list<Type>, etc.
  • Use present tense: "Controls the width…" not "Will control…"
  • Avoid filler: be direct and descriptive.
  • Describe behaviour, not implementation: explain what happens.
  • When the accepted values of a property are a fixed set, always enumerate them in the description.

Output location

  • Generate docs in a doc/ subdirectory next to the source QML files.
  • Only create a doc/index.md if documenting 2 or more components. For single-file documentation, just create the component .md file.

Quality check

Before saving, verify:

  • Every property, signal, and function is documented — nothing is silently skipped.
  • Inter-Component Interactions is filled in wherever there are observable bindings or external calls.
  • Documentation is project-agnostic and does not assume details not evident in the code or provided context.

AI assistance has been used to create this output.

© x-tools-author, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in .github/skills/qt-qml-docs of x-tools-author/x-tools.

  • SKILL.md
  • LICENSE.txt
  • README.md
  • platforms/copilot.prompt.md
  • platforms/windsurf.md

Open the folder on GitHubat commit 6214c41

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in x-tools-author/x-tools, which our catalogue first saw on October 7, 2026.

Compare with similar skills

QML Reference Documentation 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.

QML Reference Documentation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
QML Reference Documentation this skillx-tools-author/x-tools1.1k1 repos~2.5kAutomated safety check: PassBSD-3-Clause
WooCommerce Markdown Guidelineswoocommerce/woocommerce11k1 repos~1.7kAutomated safety check: PassCustom licence
Update .NET Supported OS Matrixdotnet/core22k—~4.1kAutomated safety check: PassMIT
README Badges and Headersjal-co/shieldcn918—~4.3kAutomated safety check: PassMIT
Docs Conventionsflet-dev/flet17k—~1.6kAutomated safety check: PassApache-2.0
Swig Conventionsswig/swig6.3k—~2.7kAutomated safety check: PassCustom licence

Similar skills

  • WooCommerce Markdown Guidelines

    woocommerce/woocommerce

    Rules for writing and editing markdown in the WooCommerce repository, with the project's markdownlint settings for headings, lists and code blocks.

    11k GitHub starsUsed in 1 repo~1.7k tokens
    DevelopmentAuto-check passed
  • Official

    Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.

    22k GitHub stars~4.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Adds shadcn/ui-styled README badges, badge groups, download charts, header banners and sponsor or contributor grids using the shieldcn service.

    918 GitHub stars~4.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Docs Conventions

    flet-dev/flet

    A skill your agent uses when writing or reviewing Flet documentation, including Python docstrings (Google style, reST roles, admonitions), Markdown docs (cross-references, images, code examples)…

    17k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • SWIG source and contribution conventions: clang-format / code formatting, C/C++ comment style (quotes, widths, function header blocks), parser.y new-code rules, alphabetical ordering of makefile…

    6.3k GitHub stars~2.7k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Article Exporter

    actionbook/actionbook

    Export any web article to a local Obsidian-ready Markdown directory.

    1.6k GitHub stars~3.1k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed

More from x-tools-author/x-tools

All 10 skills in this repo
  • Qt C++ Code Review

    x-tools-author/x-tools

    Read-only review of Qt6 C++ code that combines a deterministic lint script with six parallel analysis agents and reports only high-confidence issues.

    1.1k GitHub starsUsed in 2 repos~4.3k tokens
    Auto-check passed
  • Qt6 QML Code Reviewer

    x-tools-author/x-tools

    Runs a 47-rule deterministic QML linter, then six parallel deep-analysis passes over bindings, layout, loaders, delegates, states, and performance.

    1.1k GitHub starsUsed in 1 repo~3.6k tokens
    Auto-check passed
  • Qt QML Profiler

    x-tools-author/x-tools

    Finds what is making a Qt Quick interface stutter or drop frames by capturing a profiler trace and tracing the slow spots back to the QML source.

    1.1k GitHub starsUsed in 1 repo~5.2k tokens
    Auto-check passed
  • Qt C++ Reference Docs

    x-tools-author/x-tools

    Generates standalone Markdown reference docs for Qt and plain C++ source files, from Widgets and Quick classes to utility headers and main.cpp, as prose and tables.

    1.1k GitHub starsUsed in 1 repo~6.2k tokens
    Auto-check passed
  • QML Coding Best Practices

    x-tools-author/x-tools

    Applies QML best practices when writing, reviewing, refactoring or debugging QML code, with Qt 5 and Qt 6 import rules and concise, rule-silent output.

    1.1k GitHub starsUsed in 1 repo~3.4k tokens
    Auto-check passed
  • Build xTools

    x-tools-author/x-tools

    Builds the xTools Qt C++ desktop app, or a chosen X_APP target, with the repository's CMake and Ninja workflow on Windows, Linux or macOS and reports what was built.

    1.1k GitHub stars~572 tokensUpdated 6 days ago
    Auto-check passed

Works with

Categories

Questions about QML Reference Documentation

What does QML Reference Documentation do?

Generates standalone Markdown reference docs for QML components and Qt Quick applications from .qml source and related C++ and build files, one file per component. txt` and `qmldir`, then writes one Markdown file per component, skipping sections with nothing to say. The sections start with a component overview, project structure and dependencies, and component hierarchy and role, followed by a properties table with property, type, default, required and description columns that lists every declared property, including aliases.

When should I use QML Reference Documentation?

QML Reference Documentation fits situations like: documenting a QML component for other developers; writing API reference docs for a Qt Quick module; documenting a whole Qt app from its project folder.

How do I install QML Reference Documentation in Claude Code?

Run `npx skills add x-tools-author/x-tools --skill qt-qml-docs -a claude-code`. Or copy the skill folder (.github/skills/qt-qml-docs in x-tools-author/x-tools) into .claude/skills/qt-qml-docs in your project. Claude Code loads it when a task matches its description.

How do I install QML Reference Documentation in Codex?

Run `npx skills add x-tools-author/x-tools --skill qt-qml-docs -a codex`. Or copy the skill folder (.github/skills/qt-qml-docs in x-tools-author/x-tools) into .agents/skills/qt-qml-docs in your project. Codex loads it when a task matches its description.

Can I use QML Reference Documentation 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 x-tools-author/x-tools --skill qt-qml-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qt-qml-docs, .gemini/skills/qt-qml-docs, .github/skills/qt-qml-docs and .opencode/skills/qt-qml-docs in your project.

What does QML Reference Documentation need to run?

SKILL.md names no scripts, command-line tools or credentials: QML Reference Documentation is instructions for the agent only. Our summary lists: The .qml source files, plus any related C++ and CMake files for context. Compatibility (from SKILL.md): Designed for Claude Code, GitHub Copilot, and similar agents..

Does QML Reference Documentation access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is QML Reference Documentation 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 QML Reference Documentation use?

QML Reference Documentation is published under the BSD-3-Clause licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does QML Reference Documentation use?

About 2.5k tokens (SKILL.md is roughly 9.9k 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 QML Reference Documentation?

Skills that share tags, products or a category with QML Reference Documentation: WooCommerce Markdown Guidelines (woocommerce/woocommerce, 11k stars), Update .NET Supported OS Matrix (dotnet/core, 22k stars), README Badges and Headers (jal-co/shieldcn, 918 stars) and Docs Conventions (flet-dev/flet, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains QML Reference Documentation?

x-tools-author (a GitHub user) maintains it in x-tools-author/x-tools, which has 1,092 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 3, 2026.

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