agentleFS
processmissionprocessmission/oh-my-qemu/skills/qemu-rst-documentation/SKILL.md

qemu-rst-documentation

Skill60 starsChanged 13 days agoMITView on GitHub

Use for writing or updating QEMU reStructuredText documentation, including board and machine docs, system docs, device docs, developer docs, boot command examples, feature status tables, Sphinx index/toctree updates, and docs build validation.

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 12 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Write or update local, fork, or downstream QEMU documentation.

    line 37
  2. Distinctive:

    Before writing, inspect the checked-out tree:

    line 44
  3. Distinctive:

    Document only implemented, verified, or explicitly marked behavior.

    line 52
  4. Distinctive:

    Start from the board page template and follow the page requirements.

    line 57
  5. Distinctive:

    Document only behavior implemented in the checked-out tree and verified by qtest, trace, logs, or an explicit limitation note.

    line 63
  6. Distinctive:

    Do not link external repositories, image recipes, private build systems, or local machine-image internals.

    line 65
  7. Very specific:

    Remove undecided internals instead of explaining them.

    line 67
  8. Distinctive:

    Place the page in the architecture toctree by title sort, matching nearby entries.

    line 68
  9. Distinctive:

    Keep command lines copy-pasteable and wrap them consistently.

    line 73
  10. Very specific:

    Use placeholders such as /path/to/Image.

    line 76
  11. Very specific:

    Use double backticks for inline literals and :: for command blocks unless nearby docs prefer ..

    line 82
  12. Distinctive:

    Do not use Markdown fences or Markdown-only syntax.

    line 84
  13. Distinctive:

    Keep toctree entries sorted or grouped as the local index does.

    line 85
  14. Distinctive:

    Add the page to the relevant toctree.

    line 86
  15. Distinctive:

    Verify that labels, references, and substitutions resolve in the local build.

    line 87
  16. Very specific:

    Run the local gates on the page and record the command, tool version, and result under logs/:

    line 91
  17. Distinctive:

    When the target is absent, use the docutils or direct Sphinx fallback in docs-validation.md.

    line 103

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

QEMU RST Documentation

Audit workflow

For a non-trivial task that writes to the workspace, use only the needed entries under .oh-my-qemu/<task-slug>/: audit.md (baseline, plan, decisions, evidence, verification, and gaps), commands.md (redacted commands, working directories, and results), logs/ (decisive build, test, and runtime output), scripts/ (probes, parsers, and harnesses), and output/ (generated deliverables, third-party dependencies, and non-QEMU binaries). Keep QEMU's own build tree at source-root builds/build-<target>/, never an unqualified build/. In a Git worktree, add .agents/, .oh-my-qemu/, and builds/ to the file from git rev-parse --git-path info/exclude before writing artifacts or configuring QEMU; preserve existing entries and avoid duplicates. Never stage or commit these paths; stage source only when the user explicitly requests that separate action. At handoff, reconcile git status --short with the baseline and report the task directory, build directory, source changes, pre-existing changes, and unresolved gaps.

QEMU upstream boundary

QEMU's official GitLab and mailing lists are upstream channels. A patch becomes an upstream contribution when it is sent to the maintainers selected through MAINTAINERS. Do not prepare or send agent-generated code, documentation, commit messages, or patches for upstream submission; see the checked-out tree's docs/devel/code-provenance.rst. Research, debugging, analysis, local experiments, verification, and workflow guidance remain allowed. Local branches, commits, patch files, pushes, and pull requests are not by themselves upstream contributions; perform those Git actions only when requested.

Scope and allowed use

Write or update local, fork, or downstream QEMU documentation. This skill does not prepare documentation for upstream submission; follow the boundary above and the checked-out tree's docs/devel/code-provenance.rst. For a simple typo or one-line fix, do not create audit artifacts: edit, validate the page, and report the change.

Source-first rule

Before writing, inspect the checked-out tree:

  • the nearest sibling page in the same directory, such as docs/system/<arch>/, docs/devel/, or docs/tools/;
  • the relevant index.rst or toctree file;
  • MAINTAINERS when adding a documented area;
  • the implementation, tests, logs, or traces that prove the documented behavior.

Document only implemented, verified, or explicitly marked behavior. Do not infer support status from names or from a boot smoke alone.

Board and machine pages

Start from the board page template and follow the page requirements. A short board page (roughly 80-120 lines) contains overview, supported devices, boot options, machine properties, memory map (optional), interrupts (optional), known limitations, running tests, and references (optional). Omit empty sections and keep the nearest sibling page's section order and length.

  • Document only behavior implemented in the checked-out tree and verified by qtest, trace, logs, or an explicit limitation note.
  • Do not link external repositories, image recipes, private build systems, or local machine-image internals; use checked-out-tree paths only.
  • Remove undecided internals instead of explaining them; record cuts in audit.md.
  • Place the page in the architecture toctree by title sort, matching nearby entries.

Content rules

  • Name machine types exactly as the QEMU command line does.
  • Keep command lines copy-pasteable and wrap them consistently.
  • State serial console routing when boot output depends on it.
  • Separate supported devices from stubs, unimplemented regions, and workarounds.
  • Use placeholders such as /path/to/Image; never project-local paths.
  • Tie behavior claims to qtest, trace, workload evidence, or a limitation note.

RST rules

  • Match the heading hierarchy and adornment style used by nearby pages.
  • Use double backticks for inline literals and :: for command blocks unless nearby docs prefer .. code-block::.
  • Do not use Markdown fences or Markdown-only syntax.
  • Keep toctree entries sorted or grouped as the local index does.
  • Add the page to the relevant toctree; a standalone file is not enough.
  • Verify that labels, references, and substitutions resolve in the local build.

Validation

Run the local gates on the page and record the command, tool version, and result under logs/:

SKILL_DIR=<path-to-this-skill>
"$SKILL_DIR/scripts/rst-gates.sh" --repo-root <qemu-root> <page>.rst
ninja -C builds/build-<target> sphinxdocs

The script checks heading underlines, toctree presence, out-of-tree repository links, local absolute paths, line length, literal blocks, and docutils parsing when available; record any SKIP as a validation limitation. The sphinxdocs target exists only when Sphinx was found and docs are enabled; configure a named build directory with -Ddocs=enabled when Sphinx is available. When the target is absent, use the docutils or direct Sphinx fallback in docs-validation.md.

At minimum run git diff --check and inspect heading hierarchy, toctree inclusion, literal-block indentation, and command-line wrapping.

Report

Report the docs files changed, toctree updates, source evidence for behavior claims, the validation command and result, known validation limitations, and any intentionally undocumented behavior.

Upstream references

  • docs/devel/docs.rst
  • docs/devel/code-provenance.rst
  • docs/devel/style.rst
  • docs/devel/submitting-a-patch.rst

Paths can differ between QEMU versions; locate them in the checked-out tree.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.