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
2.5 KiB
2.5 KiB
SCOPE
One-liner
Portable package format, spec and reference CLI for reusable prompt artifacts (Canned Prompt Format v0.1).
Core Idea
The valuable unit is not prompt text but a reusable prompt contract: a
filesystem-portable, provider-neutral package (prompt.yaml + prompt.md) that
declares its purpose, inputs, parameters, output, compatibility, provenance and
evidence, and is inspectable before use. See INTENT.md.
In Scope
CannedPromptFormat.md— the package-format specification (revision v0.2).reference/— a deliberately small Python CLI (add,search,show,render,install,publish) over a filesystem catalog and registry.examples/— real packages that exercise the format and the implementation.- Format evolution: manifest surface, rendering rules, validation rules, registry semantics, provenance and eval hooks.
Out of Scope
Per INTENT.md § Deliberate boundary — canned-prompts standardizes reusable
prompt artifacts, not agent execution:
- model execution, routing, billing, or authentication;
- agent runtimes, workflow/orchestration engines, memory systems;
- hosted or federated registries and network transport (v0.1 is filesystem-only);
- dependency resolution, semver range resolution, package signing;
- trust/reputation scoring and social features.
Thin execution adapters are permitted; a general runtime is not.
Current State
- Experimental, revision v0.2. The five open questions promoted from v0.1
are resolved and specified (
CANP-WP-0002); what remains deferred is listed in § 23. Packages declaringcanned-prompt/v0.1remain valid. - The reference CLI implements the full local lifecycle across eight verbs and
its 81 tests pass. Two example packages (
practice/pqrst-estimateand thepractice/house-stylefragment it composes) round-trip add → search → show → resolve → render → eval → publish → install.
Developer Workflow
cd reference
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements-dev.txt
python3 -m pytest -q # 81 tests
CANNED_PROMPTS_HOME=/tmp/cp \
python3 canned_prompts.py add ../examples/pqrst-estimate # smoke
There is no lint or build step yet; pyproject.toml declares the
canned-prompts console script but the module is normally run directly.
Getting Oriented
- Intent and principles:
INTENT.md - Format specification:
CannedPromptFormat.md - Agent instructions:
AGENTS.md - Workplans:
workplans/