From 09eea51492ad128ab04177ad58ccb040eed075a4 Mon Sep 17 00:00:00 2001 From: Alex Clarke Date: Fri, 21 Aug 2026 19:52:49 -0600 Subject: [PATCH] Document category-name reservation and the fork-collision confirm; note the uninstall secrets report --- Sharing-Configurations.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Sharing-Configurations.md b/Sharing-Configurations.md index fb32529..feb3851 100644 --- a/Sharing-Configurations.md +++ b/Sharing-Configurations.md @@ -205,8 +205,13 @@ How names are kept unambiguous: existing record instead of creating a second one. If the repo's manifest name changed since the last install, the record migrates to the new name and Coyote prints a notice. - **Cross-source collisions are owner-qualified.** If you install two different repositories that both want the name - `oh-my-coyote`, the second is recorded as `/oh-my-coyote` and Coyote prints a notice. Lifecycle commands - accept the qualified name. + `oh-my-coyote`, the second is recorded as `/oh-my-coyote`. For derived names this is deterministic and + Coyote prints a notice. When a *manifest* declares the colliding name, interactive installs ask for confirmation + first (a fork or typo-squat is the likely cause); declining aborts before anything is written, and non-interactive + installs keep the deterministic qualification. Lifecycle commands accept the qualified name. +- **Category names are reserved.** A bundle cannot be named `agents`, `roles`, `skills`, `macros`, `functions`, or + `mcp_config`. A repository or manifest that wants one of those names is owner-qualified at install time (e.g. + `x/agents`), so a bundle can never shadow an asset category. --- @@ -304,9 +309,10 @@ What gets removed: - **The bundle's record** is dropped once nothing it owned remains. If items were kept or a deletion failed, the record keeps them and re-running `--uninstall` offers them again. -Not removed: vault secrets the bundle's servers referenced, `enabled_*` config lists that mention its assets, and -compiled tool binaries under `functions/bin/` (those linger until the next `--build-tools` prune; Coyote prints a -note when this applies). +Not removed: vault secrets the bundle's servers referenced (the uninstall summary lists them with a note that they +were installed by this bundle but not removed, since secrets may be shared with other servers), `enabled_*` config +lists that mention its assets, and compiled tool binaries under `functions/bin/` (those linger until the next +`--build-tools` prune; Coyote prints a note when this applies). Uninstalling is confirmation-gated: in a terminal you're shown what the bundle owns and asked to proceed; non-interactive runs (CI, piped) require `--yes`.