← ClaudeAtlas

a12-dmtoollisted

Author and validate A12 Kernel document models with the dmtool CLI — both a model's structure (fields, groups, type definitions, includes, config) and its validation rules. Use when a user (often a document modeller or business analyst) wants to create, edit, check, or understand an A12 document model — add or change fields and groups, factor out reusable includes, refactor structure, or author validation rules on it. Covers model creation, the structure edits and refactors (extract/move/rename), the rule envelope and error-scenario polarity, field-path references, per-row iteration, and the explore→compose→check loop.
mbackschat/a12-dmtool-releases · ★ 0 · Data & Documents · score 69
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