ontoref-derive: #[onto_mcp_tool] attribute macro registers MCP tool unit-structs in
the catalog at link time via inventory::submit!; annotated item is emitted unchanged,
ToolBase/AsyncTool impls stay on the struct. All 34 tools migrated from manual wiring
(net +5: ontoref_list_projects, ontoref_search, ontoref_describe,
ontoref_list_ontology_extensions, ontoref_get_ontology_extension).
validate modes (ADR-018): reads level_hierarchy from workflow.ncl and checks every
.ncl mode for level declared, strategy declared, delegate chain coherent, compose
extends valid. mode resolve <id> shows which hierarchy level handles a mode and why.
--self-test generates synthetic fixtures in a temp dir for CI smoke-testing.
validate run-cargo: two-step Cargo.toml resolution — workspace layout first
(crates/<check.crate>/Cargo.toml), single-crate fallback by package name or repo
basename. Lets the same ADR constraint shape apply to workspace and single-crate repos.
ontology/schemas/manifest.ncl: registry_topology_type contract — multi-registry
coordination, push targets, participant scopes, per-namespace capability.
reflection/requirements/base.ncl: oras ≥1.2.0, cosign ≥2.0.0, sops ≥3.9.0, age
≥1.1.0, restic declared as Hard/Soft requirements with version_min, check_cmd, and
install_hint (ADR-017 toolchain surface).
ADR-019: per-file recipient routing for tenant isolation without multi-vault. Schema
additions: sops.recipient_groups + sops.recipient_rules in ontoref-project.ncl.
secrets-bootstrap generates .sops.yaml from project.ncl in declarative mode. Three
new secrets-audit checks: recipient-routing-coherent, recipient-routing-coverage,
no-multi-vault. Adoption templates: single-team/, multi-tenant/, agent-first/.
Integration templates: domain-producer/, mode-producer/, mode-consumer/.
UI: project_picker surfaces registry badge (⟳ participant) and vault badge
(⛁ vault_id · N, green=declarative / amber=legacy) per project card. Expanded panel
adds collapsible Registry section with namespace, endpoint, and push/pull capability.
manage.html gains Runtime Services card — MCP and GraphQL toggleable without restart
via HTMX POST /ui/manage/services/{service}/toggle.
describe.nu: capabilities JSON includes registry_topology and vault_state per project.
sync.nu: drift check extended to detect //! absence on newly registered crates.
qa.ncl: six entries — credential-vault-best-practice (layered data-flow diagram),
credential-vault-templates (paths A/B/C), credential-vault-troubleshooting (15 named
errors), integration-what-and-why (ADR-042 OCI federation), integration-how-to-implement,
integration-troubleshooting.
on+re: core.ncl + manifest.ncl updated to reflect OCI, MCP, and mode-hierarchy nodes.
Deleted stale presentation assets (2026-02 slides + voice notes).
15 KiB
15 KiB
| theme | title | titleTemplate | layout | keywords | download | exportFilename | monaco | remoteAssets | selectable | record | colorSchema | lineNumbers | themeConfig | fonts | drawings | scripts | class | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| default | Working Group — Ontología y Reflection | %s - OntoRef | cover | Ontología,Reflection,Rust,Nickel,WorkingGroup,RustLasPalmas | true | ontoref-working-group | true | true | true | true | dark | false |
|
|
|
|
justify-center flex flex-cols |
Working Group
Ontología y Reflection en tus proyectos
Sesión de presentación · Rust-LasPalmas
layout: section
Tres preguntas, antes de nada
layout: default
Levantad la mano si esto os ha pasado
1.
Postmortem donde la decisión que se violó estaba escrita en una ADR — pero nadie la recordaba.
2.
Onboarding de alguien nuevo (o tú mismo, después de tres meses) re-descubriendo por qué el código está así.
3.
Diagrama de arquitectura que mintió tres meses después de pintarlo.
layout: default
El patrón
Para el código exigimos
✓
Tipos estrictos
✓
Tests que validan invariantes
✓
Compilador que rechaza incoherencias
✓
Errores antes de llegar a producción
Para las decisiones aceptamos
✗
Markdown libre
✗
Diagramas que envejecen
✗
Convención y disciplina humana
✗
Errores que aparecen en el postmortem
layout: section
¿Y si las tratáramos igual?
Tipos. Contratos. Validación al guardar, no en el postmortem.
layout: default
Lo que vamos a ver ahora
→
Un proyecto vacío
→
Un axioma · una tensión · una decisión
→
Un cambio que viola la decisión
→
El typecheck rechazándolo
8 líneas de código. Sin frameworks. Sin instalar nada raro.
layout: cover class: 'justify-center flex flex-cols'
Demo en vivo
El terminal y un editor. Nada más.
layout: default
Lo que acabáis de ver
Lo construido en 8 minutos
·
Un
core.ncl con un axioma y una tensión
·
Una ADR como contrato vivo
·
Un cambio rechazado al guardar
Lo que esto se vuelve con tiempo
Un proyecto real, después de meses:
.ontology/
├── core.ncl (20 nodos, 22 aristas)
├── state.ncl (5 dimensiones FSM)
├── gate.ncl (membranas)
└── manifest.ncl
adrs/ (20 decisiones vivas)
reflection/modes/ (rutinas tipadas)
├── core.ncl (20 nodos, 22 aristas)
├── state.ncl (5 dimensiones FSM)
├── gate.ncl (membranas)
└── manifest.ncl
adrs/ (20 decisiones vivas)
reflection/modes/ (rutinas tipadas)
La estructura es la misma. Solo crece el contenido.
layout: section
La propuesta
Working group cerrado. Cuatro o cinco personas.
layout: default
Cómo funciona
Formato
Presencial · coworking en Las Palmas
Tamaño
4–5 personas · cohorte cerrada
Sesiones
4 sesiones de ~2 horas · una cada 2 semanas
Entre sesiones
~1 hora de iteración sobre vuestro proyecto
Coste
Vuestro tiempo. Coworking compartido.
Después
Si funciona, abrimos un siguiente ciclo. No hay programa eterno.
layout: default
Qué os lleváis
✓
Un
.ontology/ mínimo funcionando para un proyecto vuestro
✓
Una ADR formalizada como constraint que protege ese proyecto
✓
Una
reflection mode propia para una rutina vuestra
✓
Capacidad de seguir solos, sin depender del grupo
No salís con un curso. Salís con código vuestro vivo.
layout: default
Qué esto NO es
✗
Un curso de Nickel desde cero
✗
Una venta de OntoRef como producto
✗
Soporte 24/7 entre sesiones
✗
Asistencia opcional · si fallas dos sesiones, sales del ciclo
✗
Una comunidad amplia · esto es trabajo concentrado, no networking
layout: default
Lo que necesito de cada uno antes de la primera sesión
1.
Un proyecto vuestro · Rust o no, lo que tengáis vivo
2.
Nickel y la CLI de OntoRef instaladas (os paso la guía)
3.
Una decisión arquitectónica de ese proyecto que recordéis · cualquiera
4.
Disposición a romper esa decisión en vivo y ver qué pasa
Si traéis esto, en sesión 1 ya estáis modelando.
layout: cover class: 'justify-center flex flex-cols'
¿Quién entra?
Levantad la mano. No por correo después.
Mejor tres comprometidos que cinco difusos.
layout: default
Si no entras hoy
·
El siguiente ciclo se abre cuando éste termine — sin fecha fijada todavía.
·
Si quieres aviso del próximo, déjalo dicho hoy.
·
El material del approach está abierto en Github · podéis explorar solos.
Gracias por venir.