The pre-commit git-hooks toolchain for OpenCharly images — the orchestrator plus the linters its hooks invoke.
The pre-commit candy installs three tools, each as a real executable at a
known path:
| Tool | What | Installed via | Path |
|---|---|---|---|
pre-commit |
the git-hooks orchestrator | pixi (conda-forge) | ~/.pixi/envs/default/bin/pre-commit |
taplo |
TOML linter / formatter | cargo | ~/.cargo/bin/taplo |
markdownlint |
Markdown linter | npm | ~/.npm-global/bin/markdownlint |
| Property | Value |
|---|---|
| Layer / candy | pre-commit |
| Requires | layer-nodejs, layer-rust |
| Install files | charly.yml, pixi.toml, package.json |
| Service / port | none |
Compose the layer by adding this repo to a box's candy: composition (a candy: node carrying base: with a nested candy: list):
my-dev-box:
candy:
base: fedora
candy:
- '@github.com/opencharly/layer-pre-commit:v2026.243.0409'Then, inside the built image (or on a dev host):
pre-commit --version # the orchestrator
taplo --version # TOML linter/formatter
markdownlint --version # Markdown linterThe candy's plan: asserts each binary exists at its fixed path and reports its
version with a clean exit — the hook toolchain is directly verifiable.
charly.yml— thepre-commit:candy entity (therequire:list, thepackage:entry, thecargo install taplo-clistep, and thecheck:assertions) and the embeddedpre-commit-skill:skill entity.pixi.toml/pixi.lock— the conda-forge environment providingpre-commit.package.json— pinsmarkdownlint-clifor the global npm install..github/workflows/tag-on-merge.yml— CalVer tag +CHANGELOG/on merge.README.md— this user overview.
- Owning skill:
/charly-coder:pre-commit - Dependencies:
/charly-coder:nodejs,/charly-coder:rust,/charly-languages:pixi opencharly/charly— the charly CLI and image builderopencharly/opencharly— the umbrella