docs(SPEC-044): Tier-1 design — ratify-not-fill as accessibility, predicate families, core/plugin/MCP boundary (v0.4.0) #52
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/spec-044-tier1-design"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Folds the Tier-1 design into SPEC-044 (the conjunctive-layer spec), grounded by a dogfood of your SPEC-045 typed edges on the EarthianLabs corpus (2026-06-11). Each design decision is backed by something the dogfood surfaced, not theory.
The synthesis trajectory (how each decision was grounded)
Authored typed edges on a real node (
relational-posture) and migrated it fully to body-inline::. Finding:zetl edgesreads only body edges — the frontmatterrelations:block is invisible to the graph and SPL projection (two frontmatter-only relations vanished entirely). → §6 reconciled: body is the source of truth; render reads the body edge graph.A stray space broke it.
developed_in:: [[X]](inserted by hand or a formatter on save) silently demoted all 6 edges to untyped, no warning. → §7.1: manual::typing is the storage format, not the authoring model. The authoring model is ratify-not-fill, framed as the accessibility mechanism — recognising+confirming a suggested predicate is available to non-engineers; composing syntax is not. Two surfaces (syntax / GUI) over one substrate. Plus a cheap spaced-near-miss lint (extendpredicate-drift) so a formatter-break is flagged, not silent.The vocabulary clustered. 13 predicates from 2 nodes fall into five families (lineage / mapping / application / tension / support). → §7.2: the families are the suggestion-ranking + render-grouping + drift substrate (they map onto your
.zetl/predicates.tomlcategoryfield). Not a controlled vocabulary — crystallisation stays collision-driven (underpinsvsmaps_to, both →coherence-entrainment, is the first signal).Render hook already exists. Each edge renders as
.zetl-edge-predicate[data-predicate=…]— so per-type colour is a theme-CSS change, not an engine change. The CHANGELOG confirmsedges_by_predicate,/_graphlegend, andpredicates migratealready shipped, so Tier-1 builds on them.Two structural additions (Mat's considerations)
.zetl/predicates.tomlis the committed team layer; personal colour/preferred-predicates/authoring-surface need a non-committed user layer (gitignored.zetl/local/or external~/.config/zetl/). New OQ on location + composition (user overrides corpus presentation, never semantics).Notes
version: 0.3.0 → 0.4.0, stillstrawman. Adds SPEC-045 torelated.Authoring dyad: Mat Mytka + Kairos (Claude Opus 4.8).
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.