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.
This commit is contained in:
Cathryn Lavery
2026-08-14 14:28:44 -07:00
committed by GitHub
parent a5e3978088
commit 09df49d8d1
14 changed files with 452 additions and 24 deletions
+34
View File
@@ -0,0 +1,34 @@
---
description: Save, load, inspect, update, reset, or delete diagram-design client profiles
argument-hint: [list|save|load|show|update|reset|delete] [name]
allowed-tools:
- Read
- Write
- Edit
- Bash
- Glob
---
Manage Diagram Design client profiles by following [`skills/diagram-design/references/profiles.md`](../skills/diagram-design/references/profiles.md). Treat that reference as the source of truth for storage, strict slug validation, metadata, marker-first resolution, schema checks, and failure handling. Do not reimplement or relax its rules here.
Full argument string: `$ARGUMENTS`
## Routing
- No arguments → `list`, with the active project-marker or working-copy profile marked.
- Bare `<name>` with no verb → `load <name>`.
- `switch <name>` → synonym for `load <name>` even though `switch` is omitted from the short argument hint.
- `save [name]`, `load [name]`, `list`, `show`, `update [name]`, `reset`, and `delete [name]` → run that exact procedure from the reference.
- Missing required name → list when useful, then ask. Never invent a slug.
- Unknown verb or extra argument → show the accepted forms and stop without writing.
## Required behavior
1. Resolve the current installed skill directory before reading its working `style-guide.md`; do not assume the repository checkout is the active install.
2. Treat `.diagram-design` as untrusted data. Accept only the exact marker grammar and canonical home profile path described in the reference.
3. Confirm before overwriting an existing profile, changing a project marker, or deleting a profile. Never skip a confirmation because the command was invoked from a script.
4. For marker-selected projects, read the profile directly and leave the installed working copy unchanged.
5. For copy-over load, verify the destination after writing. If it is unwritable, offer the marker-based flow.
6. After save/update, verify exactly one profile metadata header and an unchanged body.
Report the active profile and the canonical file or marker affected. Never claim a write succeeded without re-reading it.