Files
diagram-design/docs/adr/0006-client-profiles-and-marker-first-resolution.md
T
Cathryn LaveryandGitHub 09df49d8d1 Add named client profiles (#61)
* feat: add client profiles

* ci: pin shell to bash for docs_sync step

The docs_sync step runs two commands in a multi-line block. Without a
pinned shell, the windows-latest matrix leg uses pwsh, where a non-zero
exit from the first command may not abort the block, masking a gate
failure. Pin shell: bash to match the icons and summary steps.
2026-08-14 14:28:44 -07:00

1.3 KiB

ADR 0006 — Client profiles use marker-first resolution

Status: accepted (v2.4)

Context

Customizing an installed style-guide.md supports only one client, creates races between parallel projects, and can be erased by managed plugin updates.

Decision

Named profiles are full style-guide snapshots in ~/.diagram-design/profiles/, with one metadata header naming the active profile. An optional project-root .diagram-design marker selects a validated slug and reads that home profile directly; only an explicit markerless load copies a profile into the installed working file. Loads check the current semantic-role and typography schema and backfill missing rows from shipped defaults.

We rejected in-install profile storage because updates replace it, token-only override merging because agents would have to interpret a versioned merge format, a central path-to-profile index because paths differ across machines and moves, and copy-over-only selection because it preserves the parallel-workspace race.

Consequences

Profiles survive updates and can be shared by Claude, Codex, and Pi installs. Marker projects are isolated from shared mutable state. Snapshot files are simple and inspectable, at the cost of a load-time schema check and an explicit re-save when new required rows appear.