68 lines
2.6 KiB
Plaintext
Raw Normal View History

2026-03-13 00:21:54 +00:00
# .ontology/core.ncl — Project: {{ project_name }}
# Fill in nodes that capture what is invariant and what is in tension.
#
# To use typed construction helpers, add ontology/defaults/ from the ontoref
# checkout and: let d = import "ontology/defaults/core.ncl" in
#
# Fields (node):
# id — unique kebab-case identifier
# name — human-readable label
# pole — 'Yang (active force) | 'Yin (receptive force) | 'Tension
# level — 'Axiom | 'Practice | 'Tension | 'Spiral
# description — what this node means for this project
# invariant — true if this is non-negotiable (requires ADR to change)
# artifact_paths — list of file paths that implement this node (optional)
#
# Fields (edge):
# from, to — node IDs
# kind — 'Implements | 'Resolves | 'Complements | 'Contradicts |
# 'DependsOn | 'ValidatedBy | 'ManifestsIn
# weight — 'High | 'Medium | 'Low
# note — why this edge exists (optional)
{
nodes = [
# ── Axioms (invariant = true) ─────────────────────────────────────────────
{
id = "{{ project_name }}-primary-constraint",
name = "Primary Constraint",
pole = 'Yang,
level = 'Axiom,
description = "Replace with the non-negotiable constraint that defines what this project IS.",
invariant = true,
},
# ── Tensions ──────────────────────────────────────────────────────────────
{
id = "{{ project_name }}-first-tension",
name = "First Tension",
pole = 'Tension,
level = 'Tension,
description = "Describe the core structural tension this project must navigate.",
invariant = false,
},
# ── Practices ─────────────────────────────────────────────────────────────
# For Library repos (frameworks): catalog each exposed capability here.
# Consumer projects reference these via manifest cross-reference layers.
# For consumer projects (Service/DevWorkspace): use 'Project level instead.
2026-03-13 00:21:54 +00:00
],
edges = [
# Example:
# {
# from = "{{ project_name }}-primary-constraint",
# to = "{{ project_name }}-first-tension",
# kind = 'Resolves,
# weight = 'High,
# note = "Why this edge exists.",
# },
],
}