Section 20.1 takes a registry's name from its directory basename, so the reference tool's default store at ~/.canned-prompts/registry was named `registry` — giving `registry:practice/thing` as a qualified reference. The workplan had recorded this as reading poorly in one output line. It was understated: the name reaches qualified references, the on-disk catalog layout (catalog/registry/...), and index.yaml rows (registry: registry). Once packages are installed and inclusions recorded, changing it becomes a migration rather than an edit. Renaming the directory to ~/.canned-prompts/default fixes it with no special case in code, nothing written into the user's store, and no second naming mechanism competing with section 20.1's manifest. check_legacy_registry refuses to silently create a fresh empty store beside a populated ~/.canned-prompts/registry — that failure would have been worse than the wart being fixed. It names the exact mv, and the --registry flag for keeping the old store. The check fires only for the default path; an explicit --registry is never second-guessed. Tests 95 -> 99. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bjefh8NUiEiahN4JLwoSKM Assistant: claude-code Assistant-Model: opus Assistant-Process: 388925@bnt-lap001 Assistant-Session: 3507023f-e0fd-4a1e-9d90-a0d4217d1502
3.1 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|
| CANP-WP-0003 | workplan | Default registry name reads as 'registry:' | agents | canned-prompts | finished | codex | practice | 2026-09-06 | 2026-09-06 | d7865fc8-a618-5033-a8de-947c59715cf6 |
Default registry name reads as registry:
Residual from CANP-WP-0002 (origin: residual, origin_ref: CANP-WP-0002).
Give the default registry a better name
id: CANP-WP-0003-T01
status: done
priority: low
state_hub_task_id: "ead2d409-2b80-5f50-9f0f-a397822ba2ae"
CANP-WP-0002-T02 made a registry's name come from its registry.yaml, and
otherwise from its directory basename (§ 20.1). The reference tool's default
registry lives at ~/.canned-prompts/registry, so its basename-derived name is
registry, and every install from it reads:
installed registry:practice/pqrst-estimate@0.1.0
That is honest — it is genuinely what the directory is called — but it reads
poorly, and registry: is a confusing qualifier for the one registry most
users will ever see.
Deliberately not fixed in CANP-WP-0002: special-casing the default path to
produce a prettier name would be exactly the kind of magic the § 20.1 rule was
written to avoid, and it was not worth an exception mid-task.
Options worth weighing:
- Write a starter
registry.yamlwhen the default registry is first created, naming it something likedefaultorlocal-registry. Uses the documented mechanism rather than bypassing it; the cost is a tool writing a file into a store the user may consider theirs. - Rename the default directory itself, so the basename is already good. Changes an existing on-disk layout.
- Accept it and document it. Zero code, and the escape hatch — add a
registry.yaml— already exists and is documented.
Option 3 is the current state. Pick deliberately rather than by default.
Outcome
Decision (operator, 2026-09-06): option 2 — rename the default directory to
~/.canned-prompts/default, so the § 20.1 basename rule produces a good name
with no special case, no file written into the user's store, and no second
naming mechanism.
The cost of deferring had been understated. The workplan recorded this as
reading poorly in one output line. It is not only display: the name reaches
qualified references, the on-disk catalog layout (catalog/registry/...) and
index.yaml rows (registry: registry). Once packages are installed and
inclusions recorded, changing it is a migration rather than an edit — which is
an argument for deciding early, not late.
Delivered:
default_registry()returns~/.canned-prompts/default.check_legacy_registryrefuses to silently create a fresh empty store beside a populated~/.canned-prompts/registry. It names the exactmv, and the--registryflag for keeping the old one. Silently starting empty would have been worse than the wart being fixed.- The check fires only for the default path; an explicitly passed
--registryis never second-guessed. - Docs updated in both READMEs. Tests 95 → 99.