Progress Note — 2026-03-12

Session with Claude (Sonnet 4.6) covering Obsidian link configuration, vault-wide front matter normalization, and n8n deployment planning.


Obsidian Configuration

Three settings changes with significant impact:

  • newLinkFormat: relative → absolute — drag-and-drop in the Properties panel now always creates vault-root absolute wikilinks, consistent regardless of which note is open. Eliminates the primary source of front matter link chaos.
  • propertiesInDocument: hidden → visible — front matter properties now visible in reader mode as a clickable panel.
  • writeBCsInline: false — corrected from true; Breadcrumbs keeps computed links in memory rather than writing them back to note files.

Deleted unused advanced-debug-mode plugin.


Front Matter Normalization

Canonical link format established — two-tier convention:

ContextFormatExample
Body textStandard Markdown link[Page](20-Services/Docker.md)
Front matter (isIn, partOf, dependsOn)Absolute wikilink, quoted"[[30-Areas/Duplex/Unit B/index]]"

Reason for wikilinks in front matter: Obsidian Properties panel drag-and-drop always creates wikilinks; Breadcrumbs v3 only resolves wikilink format from front matter.

Properties removed vault-wide:

  • isA — type is inferrable from folder hierarchy (30-Areas/ = area, etc.)
  • listOf — was a Dataview hint, no longer used

Relationship properties removed from index files — folder position encodes the parent-child relationship for index files. No explicit isIn/partOf needed.

Redundant same-folder isIn removed from leaf notes — if a room note’s isIn points to the containing folder’s index, that’s inferrable. Removed.

Six explicit relationship links remain — all cross-hierarchy or cross-folder: UDM, Lab UPS, Frontier Fiber Modem, LAB (all isIn a specific room from 50-Devices/), Frontier Fiber Modem partOf Home Network, Network Shelves isIn Guest Bedroom B.

All changes committed in three commits:

  1. Obsidian settings
  2. Front matter normalization (94 files)
  3. Content additions and misc

SSH Config

Added rpi5a / 5a alias to ~/.ssh/config with User ops after provisioning a new RPi5 host at rpi5a.iot (10.20.0.177). Host is being provisioned with n8n as a dev/playground instance.


n8n Deployment Planning

Discussed deployment model for n8n and future services:

  • Docker maintenance (pull/down/up): no git needed, just the compose file on disk
  • Workflow deployment: git pull on host + n8n API import — benefits from git
  • Sparse checkout (issue #19): clone only the service-relevant paths (lab/services/n8n/, lab/common/, auto/n8n/) rather than the full repo

GitHub milestone created: “n8n Workflow Development” — groups:

  • #19: Sparse checkout for provisioning
  • #20: n8n credential management via 1Password (store credential values in 1Password, import to n8n via REST API at deploy time; 1Password is source of truth, not n8n)

Credential strategy: one 1Password item per n8n credential type (n8n.<name> in env vault). Script analogous to gen-env.sh posts to /api/v1/credentials. OAuth credentials are out of scope — requires browser auth flow.

Branch strategy: n8n workflow development will happen on a feature branch on rpi5a, merged to main when workflows are stable.


Tooling

  • /btw global Claude Code slash command created at ~/.claude/commands/btw.md — routes a quick aside note to memory or the todo list depending on content.

Glossary

Established canonical template and applied to all entries. See Vault Conventions.