# .ontology/gate.ncl — Project: {{ project_name }} # Membranes are gates that control when a project is ready to cross a boundary. # Start with active = false. Activate only when the condition is real and enforced. # # To use typed construction helpers, add ontology/defaults/ from the ontoref # checkout and: let d = import "ontology/defaults/gate.ncl" in # # Fields (membrane): # id — unique kebab-case identifier # name — human-readable label # description — what this gate protects # permeability — 'High | 'Medium | 'Low | 'Closed # accepts — list of signal types: 'EcosystemRelevance | 'Adoption | 'Stability # protects — list of strings: what this gate guards # opening_condition — record: { max_tension_dimensions, pending_transitions, core_stable, description } # closing_condition — string: what causes the gate to close again # max_duration — 'Weeks | 'Months | 'Years | 'Indefinite # protocol — 'Observe | 'Absorb | 'Challenge | 'Reject # active — bool (false = defined but not enforced) { membranes = [ { id = "{{ project_name }}-readiness-gate", name = "{{ project_name }} Readiness Gate", description = "Controls when {{ project_name }} is ready for external use.", permeability = 'Low, accepts = ['EcosystemRelevance], protects = ["Replace with: what this gate protects"], opening_condition = { max_tension_dimensions = 2, pending_transitions = 3, core_stable = true, description = "Replace with: measurable condition to open this gate.", }, closing_condition = "Replace with: what causes the gate to close again.", max_duration = 'Indefinite, protocol = 'Observe, active = false, }, ], }