Governance block round 2 + the AldineXXI frontmatter spec, read-only

owner: 3 distinct values across 153 notes, all one person spelled three ways —
the opposite shape to canonical, less than its count suggested, not more.

change_log: 38 empty / 51 real, and the real half carries FOUR incompatible
entry schemas plus one malformed instance where the date became the key.

related: 48% of 442 targets resolve by name, 47% unresolvable — and 385 of 442
are bare strings rather than wikilinks, so ~87% produce no clickable relation
whatever they resolve to. Some targets are people who have no note.

links: six dict schemas, and it carries sub-keys canonical and related that
duplicate two top-level governance fields. 31% unresolvable — a first pass
without an alias/title tier said 57%, the same resolver-too-strict error as this
morning's canonical number, caught before quoting this time.

Also relayed: a faithful section-by-section account of AldineXXI's OPERATIVE
frontmatter specification, including its W1.12 prune of four unread fields and
its §3 translation table, which rules by name on canonical, assurance,
change_log, author, version, type, status, tags and review_cycle.

Findings only. Nothing proposed, nothing decided, nothing changed in the vault.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
David F Glidden
2026-08-19 16:34:09 +02:00
co-authored by Claude Opus 5
parent 749eebb40a
commit 90191ab930
@@ -0,0 +1,211 @@
---
name: obsidian-vault-governance-block-round2-2026-08-19
description: Read-only round-2 investigation of owner, related, change_log and links, plus a faithful account of AldineXXI's frontmatter specification. Findings only; nothing proposed, nothing decided, nothing changed.
type: reference
---
# Governance block, round 2 — `owner` · `related` · `change_log` · `links`
2026-08-19. **Read-only. No vault file was changed.** Same method as the `canonical`/`assurance`
follow-up. Findings only.
---
## 1 · `owner` (153) — one job, three spellings, zero discrimination
| value | notes |
|---|---:|
| `David Glidden` | 136 |
| `David` | 12 |
| `David F. Glidden` | 5 |
**Three distinct values across 153 notes, all naming the same person.** The key does one job
consistently — and the job is constant. A field whose value never varies partitions nothing; a
`GROUP BY owner` returns three groups that are one person spelled three ways.
Unlike `canonical`, there is no second meaning hiding here. The finding is the opposite shape: not
*more* than its count suggested, but *less*.
## 2 · `change_log` (89) — real content, four incompatible schemas
| | count |
|---|---:|
| empty list / null | **38** |
| carrying content | **51** |
The 51 are real and substantive (`{date: 2025-09-28, change: 'Created alias stub pointing to
canonical Learning & Mind organ', by: 'David'}`). But they use **four different entry shapes**:
| entry keys | count |
|---|---:|
| `(by, change, date)` | 26 |
| `(change, date)` | 11 |
| `(date, note)` | 11 |
| `(date, summary, version)` | 2 |
| ⚠ `(datetime.date(2025,10,12),)` — the **date became the key** | 1 |
So the answer to *"template nobody filled in, or real content worth keeping?"* is **both, unevenly**:
43% empty, 57% real, and the real half is four conventions rather than one. `change` / `note` /
`summary` are three names for the same slot; `by` is present on half of one schema and absent
everywhere else, recording an author who — per §1 — is invariant.
## 3 · `related` (121 instances, 442 link targets)
**Pointer integrity**, case-insensitive, tested at four strictnesses:
| | count | |
|---|---:|---:|
| note name resolves | 215 | 48% |
| matches an alias or title | 17 | 3% |
| **unresolvable** | **210** | **47%** |
**Two link conventions, and the minority one is the working one.** 57 targets are wikilink-wrapped
(`'[[P3 Pattern Index]]'`); **385 are bare strings** (`'White Abstraction – Moy Glidden'`). A bare
string in frontmatter is not a link in Obsidian — so **87% of `related` entries do not produce a
clickable relation**, whatever they resolve to.
**A third job, as with `canonical`.** Some targets are **people, not notes** — `Divorce.md` carries
`related: [Lune, Marie, Briac Prud'homme]`. These are unresolvable not because the link is stale but
because the referent was never a document. Relating-to-a-person and relating-to-a-note are different
operations sharing one field.
## 4 · `links` (77 instances, 286 link targets)
**Six dict schemas:**
| keys | count |
|---|---:|
| `(children, parents, peers)` | 31 |
| `(parents, peers)` | 23 |
| `(related,)` | 6 |
| `(children, parents)` | 5 |
| `(canonical,)` | 4 |
| `(parents,)` | 4 |
⚠ **`links` contains sub-keys that duplicate two other top-level governance fields.** Four notes
carry `links: {canonical: [[...]]}` while `canonical` also exists as a top-level key on 161 notes;
six carry `links: {related: ...}` against a top-level `related` on 121. The same relation can be
expressed in two places, and nothing reconciles them.
**Pointer integrity:**
| | count | |
|---|---:|---:|
| full path resolves | 1 | 0% |
| note name resolves | 122 | 42% |
| matches an alias or title | 72 | 25% |
| **unresolvable** | **91** | **31%** |
⚠ **The alias/title tier is load-bearing and was nearly missed.** A first pass without it reported
163 unresolvable (57%); adding alias and title matching moved that to 91 (31%). The stricter figure
would have overstated decay by nearly two to one. Same resolver-too-strict error as the `canonical`
"151 dead" number this morning, caught this time before it was quoted.
**Some targets address a vault structure that does not exist here** — `places/pine-street`,
`people/moy-glidden`, `people/abg`, `GLOSSARY.md`, all from `00. Atlas of Roots — Index.md`. That is
not a stale path; it is a path shaped for a different repository layout.
---
# The AldineXXI Frontmatter specification — faithful account
`~/_Dev/animal-davidglidden-eu/docs/AldineXXI-Codex/frontmatter-specification.md` · 310 lines /
3,268 words · **Status: OPERATIVE 2026-05-22**, drafted 2026-04-17.
**Scope:** every markdown document under `content/`. Stated as *"the contract between the author (at
writing time), the versioning system (at revision time), and Hakyll (at build time). Publishing a new
piece or revising an existing one should not require re-deciding frontmatter shape."* The document
declares itself the canonical record, expects to evolve, and rules that pre-convention pieces may be
backfilled or carry less metadata — *"graceful degradation rather than demanded completeness."*
### §1 Design principles (five, verbatim in substance)
1. **Minimal required surface.** A new essay needs only `title`, `date`, `class`. Everything else is
opt-in, driven by what the piece needs.
2. **Dates, not versions.** YYYY-MM-DD throughout. No semver, no `v1.0.0`.
3. **Public-facing naming.** Field names appear in templates and occasionally in prose; they should
be legible to a reader who sees them. No internal jargon.
4. **Flat where possible, nested when justified.** Nesting only where the structure is load-bearing.
5. **Private editorial notes stay private.** Author's stance, intent or mode live in separate notes
files, not published frontmatter — *"What's in the frontmatter is what the publication stands
behind."*
### §2 Field reference
- **§2.1 Identity (always present):** `title` (req), `date` (req, ISO — the **origin date**, stable
through all revisions, drives archive location), `class` (req, one of 14 content types),
`location` (opt, city-level), `slug` (opt, routing override).
- **§2.2 Sequence membership:** `sequence`, `sequence_short`, `sequence_order`, `sequence_slug`,
`sequence_order_roman`, `preceded_by`, `followed_by`. Carries a **known latent defect** — the
sequence marker's total is hardcoded `"of V"` and is ruled to become build-derived.
- **§2.3 Versioning:** `revisions` (chronological list of `{date, location?, summary?}`),
`edition_label`, `recants`, `recanted_by`. Two are explicitly **forward fields** kept without
carriers.
- **§2.4 Content metadata:** `description` is the operative field the build reads; `summary` is
retained as drafted but **not read** by the head template. `description` is required for Essay and
Observation, soft-required elsewhere.
- **§2.6 Language [2026-05-14]:** `lang` (ISO 639-1, defaults `en`), `lang_secondary` (list). Three
contexts: French-primary, English-primary-with-passages, genuinely bilingual.
- **§2.7 Medium [2026-05-20]:** `medium`, orthogonal to `class`; `verse` the first non-default value,
which *"surfaces because the corpus produced an instance"* rather than by anticipation.
- **§2.8 Translated renderings [2026-06-05]:** `work` (slug of the work this piece renders),
`translator` (absent = the author's own rendering; **absence is the signal**). The work file carries
no `work:` field — it *is* the work.
### §2.4's prune — the precedent most directly on point
**Four documented-but-unread fields removed (W1.12, 2026-06-07)**, on the stated ground that *"the
audit found zero readers in the build for each"*: `comments`, `epigraph`, `philosophical_lineage`,
`related_texts`. The disposition rule: *"Legacy carriers degrade gracefully (unread fields are inert);
strip them on touch. Re-entry of any of these is a new convention decision, not a revival."*
### §3 — the iA Writer → ARC translation table
⚠ **Surfaced without comment, because it names this investigation's fields directly.** The table
rules on each Obsidian-side field it encounters:
| Obsidian field | ARC disposition, as written |
|---|---|
| `change_log` (list of `{date, change}`) | → `revisions:` list, one entry per item; `change` → `summary` |
| `last_updated` / `last_modified` / `last_reviewed` | → a single `revisions:` entry with that date |
| `canonical: "03. Writings/..."` | **Drop.** *"Obsidian path — private authoring metadata."* |
| `assurance: {evidence_level, risk_flags, scope}` | **Drop.** *"Private editorial metadata."* |
| `status: canonical` | **Drop.** *"Publication IS canonicalization."* |
| `author` | **Drop.** *"Every piece is by the same author."* |
| `version` (semver) | **Drop.** *"Per ADR-005: dates, not versions."* |
| `type: essay` | **Drop.** *"Use `class:` instead."* |
| `project` | **Drop.** *"Redundant — every piece in this repo is ARC."* |
| `tags` | **Drop.** Retired 2026-05-20; *"topical organization is carried by `class:` and the corpus enfilade, not by tag indexes."* |
| `related_texts` (Obsidian `[[...]]` links) | **Drop.** Pruned; the anticipated rendering was never built |
| `relations: preceded_by` / `followed_by` | Flatten to top level; **use slug not title** |
| `review_cycle` | **Drop.** *"Private editorial metadata."* |
| `notes: {intent, stance, mode}` | **Drop from public frontmatter.** *"Preserve in separate private notes file if wanted."* |
| `subproject` | **Drop.** *"`sequence:` carries the same information publicly."* |
| `external_references` | **Drop.** *"External citations belong in the text, not in frontmatter."* |
| `language` | → `lang:` (ISO 639-1) |
| `languages` | decompose per §2.8 into one work + N renderings |
### §4–§6 Recipes
Publish (decide `class` → create `content/{class-folder}/YYYY-MM-DD-slug.md` → required frontmatter →
optional fields → write → `make build` → commit). Revise (`make revise` → edit → **append** a
`revisions:` entry → build → commit new current + dated snapshot together). Recant (write the
retractation-piece with `recants:`, add `recanted_by:` to the original, commit both together).
### §7 What is deliberately NOT in the frontmatter
Word count / reading time (derivable) · **last-modified auto-timestamps** (*"Misleading (git tracks
this; the frontmatter should reflect publication events, not filesystem touches)"*) · author name ·
license · copyright year · OG/Twitter card metadata.
### §8 Open questions
Three of four are struck through as resolved (slug canonicalization; translated pieces; epigraph
rendering). One remains live: **sequence wrapper pages** — the running page uses
`class: sequence-index`, a working convention outside the 14-type enumeration, *"not yet ratified"*.
The section closes: *"These do not block publishing under the current convention."*
---
**Nothing above is proposed or decided.** The reading of the spec against the vault findings is the
jurist's, not the executor's.