--- id: CANP-WP-ADHOC-2026-09-06 type: workplan title: "Ad hoc fixes — 2026-09-06" domain: agents repo: canned-prompts status: finished owner: codex topic_slug: practice created: "2026-09-06" updated: "2026-09-06" state_hub_workstream_id: "1359c589-98b1-510e-b71b-fb5a2cce796c" --- # Ad hoc fixes — 2026-09-06 Low-risk fixes found while verifying the repo against `INTENT.md`'s eight success criteria for a first practical release, after `CANP-WP-0002` finished. ## Report unsatisfied dependencies on add and install ```task id: CANP-WP-ADHOC-2026-09-06-T01 status: done priority: medium state_hub_task_id: "3198e18b-3e60-5195-852a-2a2742eea181" ``` **Found by verification.** INTENT success criterion 5 is "publish a version to a registry and install it elsewhere". Installing `practice/pqrst-estimate` into a fresh catalog reported success, and rendering it then failed with `included package not found: practice/house-style`. `CANP-WP-0002-T03` introduced this: composition made a package installable but unrenderable, and nothing said so at install time. The error itself was honest, but reaching it *after* a successful-looking install is the "silently incomplete" failure that § 23 now names as the thing this format avoids. `add` and `install` now check declared prompt dependencies against the target catalog and name any the catalog cannot satisfy, including the case where the package is present but no version matches the selector: ```text declared dependencies not in this catalog: practice/house-style@>= 0.1.0 — install them, or composition referencing them will not resolve ``` They do **not** fetch anything. § 10 leaves dependency resolution to the consumer, and auto-installing transitively is a resolver, which is a different decision from refusing to hand over a package that looks fine and is not. `missing_dependencies` and `report_missing_dependencies` in `reference/canned_prompts.py`; tests 81 → 84. **Left open deliberately:** whether `install` should offer to fetch dependencies (`--with-dependencies`) is a real design question, not a bug fix. It wants its own decision rather than being smuggled in here.