distros/skills/workspace-mount/SKILL.md
Mounts a virtiofs share tagged `workspace` at /workspace inside a VM guest via a systemd .mount unit. Use when a kind:vm entity shares a host directory into the guest and you need it auto-mounted (and re-mounted at every boot).
npx skillsauth add overthinkos/overthink-plugins workspace-mountInstall 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.
A guest-side candy that mounts the virtiofs share tagged workspace at
/workspace and enables it so it re-mounts on every boot — load-bearing for an
autostarting VM that must come back with its share already mounted.
mkdir /workspace/etc/systemd/system/workspace.mount (What=workspace, Where=/workspace,
Type=virtiofs, WantedBy=multi-user.target)systemctl daemon-reload + enable (boot) + start (now, tolerant) — the
start is || true so an image-build chroot with no device / no systemd does
not fail the candy; the enabled unit mounts at the next boot.The mount tag workspace is the contract between the host-side share and
this candy. The kind: vm entity must declare a matching virtiofs filesystem:
libvirt:
devices:
filesystems:
- {driver: virtiofs, accessmode: passthrough, source: /home/me, target: workspace}
target: workspace (the entity) ↔ What=workspace (this candy). The shared
memory backing virtiofs requires is auto-paired by the renderer (see
/charly-internals:libvirt-renderer), so the entity declares only the filesystem.
workspace-mount-unit — the .mount unit file contains Type=virtiofs.workspace-virtiofs-rw — skip-aware: N/A when no share is attached (image
build / no-device target); when /workspace IS mounted it MUST be virtiofs
and writable. Mirrors the GPU check gate's skip-with-explanation pattern.The cachyos-coder operator workstation VM (box/cachyos), mounting the
operator's /home/<user> → /workspace. Generic for any pod-in-VM share.
/charly-internals:libvirt-renderer — mapFilesystem + ensureVirtiofsSharedMemory/charly-vm:vms-catalog — filesystems: authoring on the kind:vm entity/charly-vm:cachyos — the CachyOS VM family that consumes it/charly-image:layer — candy authoring referenceUse when authoring or debugging a virtiofs host-directory share mounted into a VM
guest, or the workspace-mount candy specifically.
tools
Use when authoring or modifying a charly PLUGIN — a candy with a `plugin:` block that contributes Providers (verbs/kinds/deploy-targets/steps/builders/commands), its own CUE schema, builtin (compiled-in) or external (out-of-tree git repo). Covers the unified Provider model, the per-plugin CUE-schema contract (single source → Go params for dev + schema-over-Describe RPC for runtime), the SDK, and the loader.
tools
The CUE data-validation / configuration CLI (cue), pinned to v0.16.1. Use when working with the cue candy, installing the cue binary into a box or onto a target:local dev host, or running the offline schema-vendoring pipeline that feeds charly's egress validation.
tools
CUE EGRESS validation — validating (and, where it adds value, generating) the config files charly WRITES to a system BEFORE the bytes hit disk. MUST be invoked before working on charly/egress.go, the vendored schemas under candy/plugin-egress/egress-schemas/vendor/, the ValidateEgress / registerVendoredEgressKind path, the offline `task cue:vendor` pipeline, or adding an egress schema for any written artifact (cloud-init, k8s manifests, traefik routes, runtime config, install ledger, systemd/quadlet units, ssh_config, libvirt XML).
tools
Kubernetes cluster-probe declarative check verb — the `kube:` check verb (nodes, pods, ingress, storage class, addon health, apply/delete, and arbitrary resource GETs) served out-of-process by the candy/plugin-kube plugin (vendored client-go; no external kubectl required).