Files
dotfiles/obsidian/vault-governance-block-round2-2026-08-19.md
T
David F GliddenandClaude Opus 5 90191ab930 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>
2026-08-19 16:34:09 +02:00

212 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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.