57 lines
2 KiB
Markdown
57 lines
2 KiB
Markdown
|
|
---
|
||
|
|
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"
|
||
|
|
---
|
||
|
|
|
||
|
|
# 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
|
||
|
|
```
|
||
|
|
|
||
|
|
**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.
|