ontoref/.ontology/state.ncl
Jesús Pérez 0396e4037b
Some checks failed
Nickel Type Check / Nickel Type Checking (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
chore: add ontology and reflection
2026-03-13 00:21:04 +00:00

93 lines
3.9 KiB
Plaintext

let d = import "../ontology/defaults/state.ncl" in
{
dimensions = [
d.make_dimension {
id = "protocol-maturity",
name = "Protocol Maturity",
description = "Completeness of the ontoref protocol specification — schemas, ADRs, modes, Rust crates, daemon, and adoption tooling.",
current_state = "adoption-tooling-complete",
desired_state = "protocol-stable",
horizon = 'Months,
states = [],
transitions = [
d.make_transition {
from = "tooling-migrated",
to = "adoption-tooling-complete",
condition = "adopt_ontoref mode, templates, daemon crate, landing page all present and validated.",
catalyst = "Daemon extracted from stratumiops; adoption templates created.",
blocker = "none",
horizon = 'Months,
},
d.make_transition {
from = "adoption-tooling-complete",
to = "protocol-stable",
condition = "ADR-001 accepted, ontoref.dev published, at least two external projects consuming the protocol.",
catalyst = "First external adoption.",
blocker = "ontoref.dev not yet published; no external consumers yet.",
horizon = 'Months,
},
],
},
d.make_dimension {
id = "self-description-coverage",
name = "Self-Description Coverage",
description = "How completely ontoref describes itself using its own protocol.",
current_state = "modes-and-web-present",
desired_state = "fully-self-described",
horizon = 'Weeks,
states = [],
transitions = [
d.make_transition {
from = ".ontology-bootstrapped",
to = "modes-and-web-present",
condition = "adopt_ontoref mode, landing page, and all core.ncl nodes reflect current artifact set.",
catalyst = "Web presence and adoption tooling added in session 2026-03-12.",
blocker = "none",
horizon = 'Weeks,
},
d.make_transition {
from = "modes-and-web-present",
to = "fully-self-described",
condition = "At least 3 ADRs accepted, reflection/backlog.ncl present, describe project returns complete picture.",
catalyst = "ADR-001 and ADR-002 authored using ontoref against itself in session 2026-03-12.",
blocker = "1 more ADR needed to reach 3. reflection/backlog.ncl not present.",
horizon = 'Weeks,
},
],
},
d.make_dimension {
id = "ecosystem-integration",
name = "Ecosystem Integration",
description = "Degree to which other ecosystem projects (stratumiops, syntaxis, vapora, kogral) consume the ontoref protocol.",
current_state = "stratumiops-integrated",
desired_state = "multi-project",
horizon = 'Months,
coupled_with = ["protocol-maturity"],
states = [],
transitions = [
d.make_transition {
from = "source-only",
to = "stratumiops-integrated",
condition = "stratumiops has .ontoref/config.ncl and scripts/ontoref wrapper functional; ADR-007 marked Superseded pointing to ontoref:adr-002.",
catalyst = "Ontoref extraction and stratumiops migration session 2026-03-12.",
blocker = "none",
horizon = 'Months,
},
d.make_transition {
from = "stratumiops-integrated",
to = "multi-project",
condition = "At least one additional project (vapora, kogral, or syntaxis) has .ontoref/config.ncl and scripts/ontoref. Syntaxis parses ontoref Core type.",
catalyst = "Syntaxis integration spike or vapora/kogral onboarding.",
blocker = "Syntaxis syntaxis-ontology crate has ES→EN migration errors pending. vapora/kogral not yet initialized with .ontoref/.",
horizon = 'Months,
},
],
},
],
}