distros/skills/fedora-builder/SKILL.md
Builder image with pixi, Node.js, and C/C++ build toolchain. Used as the default builder for multi-stage image builds. MUST be invoked before building, deploying, configuring, or troubleshooting the fedora-builder box.
npx skillsauth add overthinkos/overthink-plugins fedora-builderInstall 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.
Builder image with package managers and compilation tools. Default builder for pixi, npm, and cargo multi-stage builds (declared via builds: [pixi, npm, cargo]).
Owned by the overthinkos/fedora submodule. Lives bare-local in the
overthinkos/fedora submodule (mounted at box/fedora), alongside
/charly-distros:fedora + /charly-distros:fedora-nonfree; the submodule is
SELF-CONTAINED (import: []), so its images route builders to a bare-local
fedora-builder. Its rpmfusion/pixi/nodejs/build-toolchain candies are
pinned as github refs (@github.com/overthinkos/overthink/candy/<name>:<tag>) so
the same definition resolves in both main and the submodule. Build with
charly box build fedora-builder from the submodule.
| Property | Value | |----------|-------| | Base | fedora | | Layers | rpmfusion, pixi, nodejs, build-toolchain | | Platforms | linux/amd64 | | Registry | ghcr.io/overthinkos |
fedora (quay.io/fedora/fedora:43)rpmfusion — RPM Fusion free + nonfree repo configuration. Applied first so subsequent candies can dnf install packages from RPM Fusion (e.g. x264-devel, ffmpeg-devel, libva-devel)pixi — pixi package manager + env pathsnodejs — Node.js + npmbuild-toolchain — gcc, cmake, autoconf, ninja, git, pkg-config, plus the smithay/cargo build deps (rust, cargo, clang-devel, nasm, wayland-devel, libva-devel, x264-devel, ffmpeg-devel, pixman-devel, …) needed for builder-stage compilation of Wayland compositors like pixelflux. See /charly-coder:build-toolchain for the full grouped list.The build-toolchain candy's dnf install references packages that live in RPM Fusion free
(libva-devel, x264-devel, ffmpeg-devel). These are required to build pixelflux from
source (its libva-sys, x264-sys, and ffmpeg-sys-next cargo crates link against the
system libs). Without rpmfusion applied first, those dnf install calls would fail.
See /charly-selkies:selkies (Patched pixelflux build pipeline) for the consumer story.
This image is referenced in defaults.builders as the builder for pixi, npm, and cargo multi-stage builds. It declares builds: [pixi, npm, cargo] to advertise its capabilities. The generator uses it as the FROM stage in multi-stage builds, providing build tools without bloating final images.
charly box build fedora-builder
charly shell fedora-builder
/charly-languages:pixi — Python package management foundation/charly-coder:nodejs — Node.js runtime and npm/charly-coder:build-toolchain — C/C++ compilation tools/charly-distros:fedora — parent baseAfter charly box build:
charly box list — box appears in listcharly shell fedora-builder — interactive shell worksMUST be invoked when the task involves the fedora-builder box, multi-stage builds, or build cache configuration. Invoke this skill BEFORE reading source code or launching Explore agents.
/charly-image:image — image family umbrella (candy: image entries — those carrying base:/from: — in charly.yml, build/validate/inspect/list)/charly-build:build — the embedded build vocabulary (distros, builders, init-systems)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).