distros/skills/cachyos-pacstrap/SKILL.md
Bootstrap-from-scratch CachyOS rootfs via pacstrap inside a privileged builder. Builds end-to-end as of charly 2026.141.1850 (shared pacstrap renderer emits Architecture + SigLevel); retained for offline/air-gapped builds. Lives in the overthinkos/cachyos submodule (box/cachyos). MUST be invoked before building or troubleshooting cachyos-pacstrap.
npx skillsauth add overthinkos/overthink-plugins cachyos-pacstrapInstall 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.
Bootstrap-from-scratch CachyOS root filesystem, built via pacstrap inside the
privileged /charly-distros:cachyos-pacstrap-builder container
(from: builder:pacstrap, bootstrap_builder_image: cachyos-pacstrap-builder).
Lives in
overthinkos/cachyos(git submodule atbox/cachyos). Build:charly -C box/cachyos box build cachyos-pacstrap.
The canonical CachyOS base (/charly-distros:cachyos) pulls the upstream-published
OCI image from Docker Hub — that is the recommended path and the one the CachyOS
project itself uses. This pacstrap variant exists for offline / air-gapped
builds and as a worked example of the from: builder:pacstrap +
bootstrap_builder_image: pattern.
Earlier this path was unusable: the privileged pacstrap step rejected the
CachyOS x86_64_v3 packages (package architecture is not valid) and, on the
VM path, tripped GPGME signature checks (GPGME error: No data). Fixed as of
charly 2026.141.1850 by the shared renderPacstrapExtraConf helper (charly/build.go,
used by both runPrivilegedBootstrap and charly/vm_bootstrap.go):
[options] Architecture = x86_64 x86_64_v3 directive from the
cachyos-v3 repos' microarch token, so pacman accepts linux-cachyos etc.;SigLevel — the VM bootstrap path previously open-coded
the loop and dropped SigLevel, so SigLevel = Never cachyos repos fell
back to signature-required and GPGME failed. Both paths now share one renderer
(R3), so they can't diverge again.Verified live: charly -C box/cachyos box build cachyos-pacstrap produces a
rootfs with linux-cachyos (%ARCH% = x86_64_v3) installed. (Requires an charly
with this fix — newer than the published release.) The Docker-Hub /charly-distros:cachyos
base is still the faster default (no privileged build).
| Property | Value |
|----------|-------|
| From | builder:pacstrap |
| bootstrap_builder_image | cachyos-pacstrap-builder |
| Distro | cachyos, arch |
| Build | pac |
| Home repo | overthinkos/cachyos (box/cachyos) |
The cachyos distro config (pacstrap base packages, CachyOS keyring
F3B607488DB35A47, mirrorlist, cachyos* repos) lives in the embedded build
vocabulary (charly/charly.yml, baked into the charly binary) and is resolved
by name whenever a box declares distro: cachyos.
/charly-distros:cachyos — the recommended Docker-Hub base/charly-distros:cachyos-pacstrap-builder — the privileged builder it uses/charly-vm:cachyos — the VM built via the same pacstrap pathMUST be invoked before building or debugging the CachyOS pacstrap rootfs. Invoke BEFORE reading source code or launching Explore agents.
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).