canned-prompts/workplans/CANP-WP-0003-registry-naming-residual.md
tegwick 8376a00a88 CANP-WP-0002 T06: revision v0.2, and section 23 rewritten
Closes the workplan. The format becomes `canned-prompt/v0.2`, and packages
declaring v0.1 remain valid — everything added across T01-T05 is additive, so
a v0.1 package means exactly what it always meant. That is the MINOR case
section 17 itself describes.

The spec file loses its version suffix: CannedPromptFormat-v0.1.md becomes
CannedPromptFormat.md, with the revision stated inside. One stable path that
never breaks a link, and no rename per revision; the version belongs in the
`format` string where tools actually read it.

Section 23 is rewritten into three parts rather than the planned two.
"Settled since v0.1" tables the five resolved questions against where each
rule now lives. "Still deferred" carries the eight unpromoted items plus
pattern-matching render checks. "Decided against" holds template inheritance
alone, because calling it deferred would misdescribe it — reopening it means
overturning a decision and answering four recorded objections, not filling a
gap.

Section 23 also names the two habits the five decisions turned out to share,
so later revisions follow them rather than rediscover them: separate the
deterministic half from the rest, and a package never asserts what it cannot
back.

The eval-rubric and registry-manifest schemas keep their own v0.1. They are
new in this revision and sit on their own version lines.

Reference CLI: ACCEPTED_FORMATS; an unknown revision is rejected naming what is
accepted. Tests 78 -> 81.

Example packages declare v0.2 and are bumped 0.1.0 -> 0.1.1 and 0.2.0 -> 0.2.1
as section 17 PATCH — metadata corrections with behavior unchanged.

Also refreshes section 22's worked example, which had drifted: it showed
pqrst-estimate at 0.1.0 with no composition, contradicting the package
actually in the repo. It now mirrors the real package and doubles as a
composition illustration.

CANP-WP-0002 is finished. CANP-WP-0003 carries forward the one residual: the
default registry's basename-derived name reads as `registry:`.

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
2026-09-06 14:22:45 +02:00

1.8 KiB

id type title domain repo status owner topic_slug created updated
CANP-WP-0003 workplan Default registry name reads as 'registry:' agents canned-prompts proposed codex practice 2026-09-06 2026-09-06

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: todo
priority: low

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:

  1. Write a starter registry.yaml when the default registry is first created, naming it something like default or local-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.
  2. Rename the default directory itself, so the basename is already good. Changes an existing on-disk layout.
  3. 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.