.github/skills/guide-maintenance/SKILL.md
Maintain the OpenVMM Guide and its code-sync mapping. Load when: (1) adding, removing, or moving Guide pages, (2) adding new device crates or CLI args that need doc coverage, (3) updating the doc-code-sync mapping table, or (4) auditing Guide freshness against code changes.
npx skillsauth add microsoft/openvmm guide-maintenanceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Procedures for keeping the OpenVMM Guide (Guide/src/) in sync with the
codebase. The doc-code-sync mapping table is maintained in this skill file;
.github/instructions/doc-code-sync.instructions.md contains the instructions
and heuristics that are automatically loaded during Copilot code review on
*.rs and Cargo.toml files.
| Content type | Path pattern |
|-------------|-------------|
| Emulated device reference | reference/emulated/<DeviceCategory>/<device>.md |
| VMBus device reference | reference/devices/vmbus/<device>.md |
| Virtio device reference | reference/devices/virtio/<device>.md |
| Device backend reference | reference/backends/<category>.md |
| Architecture deep-dive | reference/architecture/openvmm/ or reference/architecture/openhcl/ |
| CLI / management | reference/openvmm/management/ |
| Developer tool | dev_guide/dev_tools/<tool>.md |
| Test framework | dev_guide/tests/ |
.github/instructions/guide-docs.instructions.mdAdd the page to Guide/src/SUMMARY.md in the correct section. Pages with
content get a path; placeholder topics for future work get an empty link ().
- [Page Title](./reference/path/to/page.md)
This is the critical step. Add a row to the mapping table in this file:
| `path/to/code/crate/` | `reference/path/to/page.md` |
Also add a bullet to the "What to Flag" section if the new page covers a category of change (e.g., "New frobulator variant added → update frobulator.md").
Guide/src/SUMMARY.mdWhen a new crate is added under vm/devices/:
Does it need a Guide page? If it's a user-visible device or backend,
yes. Internal plumbing crates (e.g., *_resources, *_protocol) usually
don't need their own page but should be mentioned in the parent device page.
Create the page following the "Adding a New Guide Page" procedure above.
Update the mapping table with the crate path → Guide page.
Update the "What to Flag" list if the new crate introduces a new category of reviewable change.
When openvmm/openvmm_entry/src/cli_args.rs changes:
Guide/src/reference/openvmm/management/cli.mdTo check whether the Guide is in sync with the code:
Guide/src/SUMMARY.md for placeholder links () — these are
topics that need content. Prioritize ones whose code areas have been
actively developed.# Find Guide pages that reference a crate name
grep -r "crate_name" Guide/src/
# Find placeholder topics (empty links) in SUMMARY.md
grep '()\s*$' Guide/src/SUMMARY.md
# Find code crates with no Guide mapping
# Compare vm/devices/*/Cargo.toml crate names against the mapping table
Each row in the mapping table follows:
| `code/path/` | `guide/path.md` |
/ for directoriesGuide/src/* in code paths for crate families (e.g., nvme*/)tools
Investigate CI failures on OpenVMM PRs. Load when a PR has failing CI checks, you need to download and analyze test artifacts, or you need to diagnose build, fmt, clippy, or VMM test failures.
development
Run, optimize, and debug OpenVMM fuzzers. Covers cargo-fuzz targets, crash reproduction, lldb debugging, code coverage analysis, entropy optimization, and multi-target parallel campaigns.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------