65 lines
2.3 KiB
Plaintext
65 lines
2.3 KiB
Plaintext
|
|
# .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 — add confirmed patterns and active systems here ────────────
|
||
|
|
|
||
|
|
],
|
||
|
|
|
||
|
|
edges = [
|
||
|
|
|
||
|
|
# Example:
|
||
|
|
# {
|
||
|
|
# from = "{{ project_name }}-primary-constraint",
|
||
|
|
# to = "{{ project_name }}-first-tension",
|
||
|
|
# kind = 'Resolves,
|
||
|
|
# weight = 'High,
|
||
|
|
# note = "Why this edge exists.",
|
||
|
|
# },
|
||
|
|
|
||
|
|
],
|
||
|
|
}
|