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 fromtrue; 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:
| Context | Format | Example |
|---|---|---|
| Body text | Standard 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:
- Obsidian settings
- Front matter normalization (94 files)
- 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
/btwglobal 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.