CtrlK
BlogDocsLog inGet started
Tessl Logo

canonical/mason

Agent kit for working on canonical/chisel-releases. Cross-agent skills + scripts for authoring and reviewing chisel slice definition files.

81

Quality

85%

Does it follow best practices?

Impact

75%

Average score across 5 eval scenarios

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

_chisel-formats.mdskills/chisel-slice-reviewer/kb/

chisel.yaml Schema Versions

Which SDF features a branch's format: decides, and which it does not.

Versions

A branch's format is a property of that branch -- read it from its own chisel.yaml format: (orientation prints it per live branch). The example column is illustrative, not an exhaustive branch list.

VersionBranch (e.g.)What the format itself decides
v1ubuntu-24.04Pro/esm archives live in a separate v2-archives: block. Archives may set default:
v2ubuntu-25.10Pro archives move into archives: under a pro: subkey; v2-archives: is now rejected, and default: with it
v3ubuntu-26.04, ubuntu-26.10essential: must be a map (<slice>: / <slice>: {arch: ...}) -- the list form is the parse error "essential expects a map", and v3-essential: is rejected as obsolete. Adds stores: and per-package store: / default-track:. Bin slice definitions are read from bin-slices/ as well as slices/
v4none yetAs v3, except bin-slices/ is no longer read -- bin slice definitions live in slices/ alongside the rest

Chisel rejects any other format: value outright. Two very old EOL branches (ubuntu-22.10, ubuntu-23.04) still declare the pre-v1 string chisel-v1, which current chisel cannot parse at all.

What the format does not decide: hint: and prefer:. Chisel validates both identically under every format -- neither is checked against format: anywhere in the parser. They are gated by the chisel binary (prefer: needs >= 1.2.0, hint: needs >= 1.4.0); an older chisel silently ignores the key rather than failing. v3-essential: is likewise chisel-version-gated (>= 1.3.0), not format-gated, and is valid on v1 and v2 branches alike.

In practice the release branches still track the two together -- no v1 or v2 branch uses hint: or prefer: -- so treat "v3+ only" as the branch convention it is, not as a rule chisel enforces.

Key fields: format:, archives.ubuntu.suites[0] (codename, e.g. noble), archives.ubuntu.version (mirrors branch suffix), maintenance.end-of-life (date).

Always read format: from the target branch's chisel.yaml before writing essential: -- getting its shape wrong is the one mistake here that fails the parse outright.

README.md

tile.json