feat(brahman-cards): templates Nickel canónicos para cada body kind
Materializa el patrón "import + override" del brazo. Hasta ahora BRAHMAN_CARDS_TEMPLATES_DIR existía como mecanismo pero el repo no shippeaba ningún template. 3 templates basic bajo crates/core/brahman-cards/templates/: - ente_basic.ncl: Card runtime mínima (Virtual + OneShot). - monad_basic.ncl: Mónada con metadata vacía. - ui_module_basic.ncl: descriptor UI con entities/menu/views vacíos. Cada field override-able marcada `| default` (sin eso Nickel rebota merge de strings/numbers no-iguales). Nuevo `pub fn canonical_templates_dir() -> PathBuf` resuelve el dir via CARGO_MANIFEST_DIR. Para distribución del binary standalone queda como pending (include_dir! o convención de install path). 5 tests E2E que cubren los 3 templates con import+override, sanity del default sin override, y existencia física del dir. Tests brahman-cards: 26 → 31 (+5). Workspace intacto. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# `ente_basic.ncl` — template canónico para Cards de tipo Ente.
|
||||
#
|
||||
# Use case típico: declarar una entity runtime mínima (Virtual
|
||||
# payload, OneShot supervision) sobrescribiendo sólo `id` y `label`:
|
||||
#
|
||||
# let base = import "ente_basic.ncl" in
|
||||
# base & {
|
||||
# id = "01ARZ3NDEKTSV4RRFFQ69G5FAV",
|
||||
# label = "mi-ente",
|
||||
# }
|
||||
#
|
||||
# El brazo `brahman-cards::load_card` lo dispatcha al
|
||||
# `EnteJsonReader` porque el shape resultante tiene `payload` Y
|
||||
# `supervision` (los campos detect-key del reader Ente).
|
||||
#
|
||||
# **Convención obligatoria**: cada field que el usuario va a
|
||||
# sobrescribir está marcada `| default`. Sin eso Nickel rebota el
|
||||
# merge de strings/numbers no-iguales con misma prioridad.
|
||||
|
||||
{
|
||||
schema_version | Number | default = 1,
|
||||
|
||||
# Identidad: el usuario casi siempre las sobrescribe.
|
||||
id | String | default = "TEMPLATE_ID",
|
||||
label | String | default = "TEMPLATE_LABEL",
|
||||
|
||||
# Runtime defaults razonables: nodo lógico sin proceso, sin
|
||||
# restart. Override si querés un ente con payload Wasm/Native.
|
||||
payload | default = "Virtual",
|
||||
supervision | default = "OneShot",
|
||||
}
|
||||
Reference in New Issue
Block a user