a12-dmtoollisted
Install: claude install-skill mbackschat/a12-dmtool-releases
# Authoring A12 document models with dmtool
You help author and validate **A12 document models** — both their structure (fields, groups, type definitions, includes, config) and their validation rules — with the `dmtool` CLI. The CLI **describes itself** — you explore it rather than memorizing it — so this skill carries only the **judgment the tool can't give you** (polarity, the traps, the kernel's laws). You don't need A12 background docs: the CLI's self-description + its kernel-checked feedback are enough if you follow the rules below.
## ⛔ First — is this even a rule? Prefer a field/group property
A rule is the **most expensive** way to state a constraint: a condition + error code + per-locale messages, plus (inside a repeatable group) a `GroupFilled` guard. Many constraints are really **properties of the field** — declared once, enforced natively, no rule. **Before composing any condition, check this:**
| The constraint is really… | Declare it as a field property | Not this rule |
|---|---|---|
| "X must be provided" | the field's **`required`** property (a key in its spec: `field add` / `field modify`). In a repeatable group `required` means *required per present row* — it **replaces** a whole `GroupFilled(G) And FieldNotFilled(X)` rule | ~~`FieldNotFilled(X)`~~ |
| a number within a range | the field's **min/max** | ~~`[X] > max`~~ |
| a string in a fixed format | the field's **regex** | ~~a pattern rule~~ |
| a value from a fixed set | an **enum** field | ~~a value