let s = import "../schema.ncl" in # Rustelo domain — full-stack Rust framework (Leptos + Axum). # Authority: rustelo project. Schemas queried via schema_cmd. # Consumers declare .rustelo.ontoref/ for their implementation. s.Domain & { id = "rustelo", name = "Rustelo Framework", repo_kinds = ["RusteloApp"], description = "Full-stack Rust framework based on Leptos and Axum. Provides schemas for app layers, WASM targets, plugin system, and routing contracts.", short_alias = "rs", # NCL schemas live in the rustelo project — not in ontoref. # Resolves to the rustelo project root via the global registry so consumers # import as: import "%{schema_root}/domains/rustelo/ontology/schema.ncl". schema_cmd = "ontoref project root rustelo", commands = [ { id = "layers", description = "List application layers declared in catalog" }, { id = "plugins", description = "Plugin registry: registered, active, interface contracts" }, # Declared from the start and answering `not yet implemented` for its entire life — the # project's own pathogen on its own domain surface: a capability announced on a queryable # protocol surface, doing nothing, with nothing noticing. Now it is the WITNESS across the # three levels a rustelo page spans, and each seam it checks is one that fails SILENTLY: # # route → page_id → FTL a route with no FTL keys does NOT 404. `static.j2` renders # `texts[page_id ~ "-page-title"] | default(page_id)`, so the page # comes back 200 with its own id as the title. Seven of them are # live. A broken page that returns 200 is worse than a 404: nothing # alerts, and no log records it. # content → route `content/pages/**` is NOT a content-kind and NO Rust code reads # it. A .md there is dead by construction — and it looks like the # obvious place to edit. The privacy policy lives in BOTH the FTL # (served) and the markdown (dead), and nothing checks they agree. # A legal document, declared twice, no witness. { id = "routes", description = "Route manifest, and the witness across the three levels: routes (framework/build) → page_id → FTL text (instance), plus orphan markdown in the content tree", usage = "ore rustelo routes [--check]", examples = [ "ore rustelo routes # report the manifest and every seam", "ore rustelo routes --check # exit 1 on a broken seam (CI gate)", ] }, { id = "wasm", description = "WASM build targets and feature flags" }, { id = "publish-contract", description = "Content-publisher consumption contract: the 6 answers + their oracles, declared once on the producer" }, { id = "probe", description = "Run the end-to-end publish->activate->index oracle in this RusteloApp (ADR-056 witnessed verification)" }, ], pages = [], }