distros/skills/debian-builder/SKILL.md
Minimal Debian 13 builder image (pixi + Node.js + build-toolchain) used as the multi-stage builder for every box based on Debian — currently debian-coder. Produces the pre-compiled pixi envs, npm globals, and cargo crates that land in the final runtime image via COPY --from. MUST be invoked before building, deploying, configuring, or troubleshooting the debian-builder box.
npx skillsauth add overthinkos/overthink-plugins debian-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.
Debian 13 counterpart of /charly-distros:fedora-builder. Provides the pixi / npm / cargo build environments so downstream Debian boxes (currently /charly-coder:debian-coder) get pre-compiled artifacts from a dedicated builder stage without bloating the final image.
Lives in the overthinkos/debian repo (git submodule at box/debian).
Build it from the submodule: charly -C box/debian box build debian-builder
(normally it builds implicitly as a dependency of debian-coder). Its
pixi/nodejs/build-toolchain layers are pulled by github reference from the
main repo.
| Property | Value |
|----------|-------|
| Base | debian (which = debian:13 + our bootstrap) |
| Layers | pixi, nodejs, build-toolchain |
| Platforms | linux/amd64 |
| Registry | ghcr.io/overthinkos |
| User | user / uid 1000 (create mode — debian:13 ships no pre-existing uid-1000 account) |
/charly-distros:debian — Debian 13 + our apt-get update && apt-get install -y --no-install-recommends curl ca-certificates gnupg bootstrap + go-task binary + user:user uid 1000./charly-languages:pixi — pixi package manager + env paths./charly-coder:nodejs — Node.js + npm (generic nodejs — Debian's packaged Node)./charly-coder:build-toolchain — gcc, g++, cmake, autoconf, ninja, pkg-config, and the full set of -dev libraries (Debian equivalents of Fedora's -devel). Used by cargo crates that link system libs (libva, x264, ffmpeg, wayland, xkbcommon, etc.).Declares builds: [pixi, npm, cargo] and is listed as debian-coder's builder for all three types via:
debian:
builder:
pixi: debian-builder
npm: debian-builder
cargo: debian-builder
During charly box build debian-coder, any candy that ships pixi.toml / package.json / Cargo.toml gets a multi-stage FROM debian-builder AS <layer>-<builder>-build section emitted by the generator, then COPY --from=<stage> --chown=${UID}:${GID} into the final image. See /charly-internals:generate-source for the template.
No AUR equivalent (unlike /charly-distros:arch-builder) — AUR is an Arch-only concept.
/charly-distros:fedora-builder — Fedora 43 equivalent (+ rpmfusion for x264/ffmpeg/libva headers)./charly-distros:arch-builder — Arch Linux equivalent + yay for AUR./charly-distros:ubuntu-builder — Ubuntu 24.04 equivalent; differs from this box mainly in user:ubuntu vs user:user (adopt mode — see /charly-distros:ubuntu).charly -C box/debian box build debian-builder
charly shell debian-builder
Typically not invoked directly — it's a build-time dependency of /charly-coder:debian-coder.
charly -C box/debian box list | grep debian-builder — box present.charly shell debian-builder -- pixi --version && node --version && gcc --version./charly-distros:debian — parent base, declares the bootstrap packages in the embedded distro: vocabulary./charly-coder:debian-coder — the consumer that this builder exists to serve./charly-distros:fedora-builder — RPM-family sibling./charly-distros:arch-builder — pacman + AUR sibling./charly-distros:ubuntu-builder — Ubuntu 24.04 sibling./charly-languages:pixi, /charly-coder:nodejs, /charly-coder:build-toolchain/charly-build:build — multi-stage builders, base_user: declaration/charly-image:image — produce: + builder: fields/charly-build:generate — COPY-from stage emissionMUST be invoked when:
debian-builder itself.COPY --from errors in a debian-coder build (the source stage is this image).dotnet build type) to deb-family images.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).