# .ontoref/ontology/manifest.ncl — Project: website-htmx-rustelo # Implementation of the Rustelo framework. repo_kind = 'RusteloApp activates the # rustelo domain extension (ontoref rustelo layers|plugins|routes|wasm). let m = import "defaults/manifest.ncl" in m.make_manifest { project = "website-htmx-rustelo", repo_kind = 'RusteloApp, description = "Bilingual EN/ES website implementing the Rustelo framework through the HTMX server-side rendering profile (ADR-006) with Minijinja templates. Routes, menus, themes and content types are configuration-driven (NCL/TOML); customization happens via Rustelo's layered override system, never by forking the framework.", consumption_modes = [ m.make_consumption_mode { consumer = 'EndUser, needs = ['OntologyExport], audit_level = 'Quick, description = "Served website: visitors consume rendered bilingual pages. No ontology access — this is the deployed product surface.", }, m.make_consumption_mode { consumer = 'Agent, needs = ['OntologyExport], audit_level = 'Standard, description = "Reads .ontoref/ontology/core.ncl and the rustelo domain schema before modifying site config, content, or crates — to stay within framework PAP constraints.", }, ], layers = [ m.make_layer { id = "site-config", paths = ["site/config/"], committed = true, description = "Configuration-driven surface: routes, menus, themes, rendering profile selection. NCL/TOML, no hardcoding.", }, m.make_layer { id = "content", paths = ["site/content/", "site/i18n/"], committed = true, description = "Bilingual content (en, es) and Fluent FTL translation bundles.", }, m.make_layer { id = "crates", paths = ["crates/"], committed = true, description = "Implementation crates consuming rustelo framework crates: server, client, pages, pages_htmx, shared, build-config.", }, m.make_layer { id = "self-description", paths = [".ontoref/", ".rustelo.ontoref/"], committed = true, description = "Ontoref self-description (ontology, ADRs, reflection) and the rustelo domain implementation declaration.", }, m.make_layer { id = "process", paths = [".coder/"], committed = false, description = "Session artifacts: plans, investigations, summaries. Process memory for actors.", }, ], operational_modes = [ m.make_op_mode { id = "dev", description = "Standard implementation development: site config, content, crates.", visible_layers = ["site-config", "content", "crates", "self-description"], audit_level = 'Standard, }, m.make_op_mode { id = "publish", description = "Publication readiness: validate bilingual completeness, SEO criteria, hydration parity before deployment.", visible_layers = ["site-config", "content", "self-description"], audit_level = 'Standard, }, ], }