What happens
consult -m opencode --type spec --issue 52 --branch spec/52-v2-server-events --output /tmp/out.md
Prints Prompt template not found: codev/consult-types/spec-review.md and exits 0. The output file contains that line and nothing else. No review ran.
Why it matters
Exit 0 means every caller treats this as success. A porch step, a script, or a background invocation records a consultation that never happened. The failure is indistinguishable from a clean pass unless a human reads the output file and notices it is two lines long.
This is the exact failure mode lessons-critical.md names:
"I could not tell" must never be spelled the same way as "no". A truncation, an unreachable API, and a server too old to answer each need their own signal and must emit nothing else — a partial or empty answer reads as a complete, negative one.
An unrunnable review is currently spelled the same as a completed one.
Root cause
spec-review.md exists only under protocol scope:
packages/codev/skeleton/protocols/spir/consult-types/spec-review.md
packages/codev/skeleton/protocols/aspir/consult-types/spec-review.md
Top-level consult-types/ has only integration-review.md. So --type spec cannot resolve without --protocol, and --type plan will have the same shape.
Adding --protocol spir resolves it and the review runs normally, so the fix is about the failure signal rather than the resolution.
Suggested fix
- Exit non-zero when no template resolves. A review that could not run is not a success.
- Name the resolution attempt in the error: which tiers were searched, and that
--protocol is likely missing. Prompt template not found: codev/consult-types/spec-review.md points at a path that is not where the file lives for any protocol, which sends you looking in the wrong place.
- Consider validating at argument-parse time that
--type spec and --type plan require --protocol, the way the skill already documents --protocol requiring --type.
Found while consulting on spec 52 from an architect session.
What happens
Prints
Prompt template not found: codev/consult-types/spec-review.mdand exits 0. The output file contains that line and nothing else. No review ran.Why it matters
Exit 0 means every caller treats this as success. A porch step, a script, or a background invocation records a consultation that never happened. The failure is indistinguishable from a clean pass unless a human reads the output file and notices it is two lines long.
This is the exact failure mode
lessons-critical.mdnames:An unrunnable review is currently spelled the same as a completed one.
Root cause
spec-review.mdexists only under protocol scope:Top-level
consult-types/has onlyintegration-review.md. So--type speccannot resolve without--protocol, and--type planwill have the same shape.Adding
--protocol spirresolves it and the review runs normally, so the fix is about the failure signal rather than the resolution.Suggested fix
--protocolis likely missing.Prompt template not found: codev/consult-types/spec-review.mdpoints at a path that is not where the file lives for any protocol, which sends you looking in the wrong place.--type specand--type planrequire--protocol, the way the skill already documents--protocolrequiring--type.Found while consulting on spec 52 from an architect session.