Files
dotfiles/obsidian/vault-governance-block-round2-2026-08-19.md
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

11 KiB
Raw Permalink Blame History

name, description, type
name description type
obsidian-vault-governance-block-round2-2026-08-19 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. 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.

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.

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.