Planning bug: `_shared.md` says "Epic is not an offered kind" — the MCP has offered it all along, so every pass routes around a tool that works
Discovered 2026-08-21 while planning MOTIR-3293, at the moment the pass needed to create an epic.
_shared.md's tool reference says, of create_work_item:
"(Epic is not an offered kind — epics are planner/seed scaffolding.)"
That is false, and appears to have been false for some time. create_work_item's schema has kind: { enum: ["epic", "story", "task", "bug", "subtask"] }, and its own description says "Use kind epic with no parentKey to create a top-level capability area" and "an epic is root-only — a parented epic is rejected". MOTIR-3293 was created that way, first try, no error.
Why this costs something
A planner that believes epics cannot be created has exactly two moves when a body of work needs one, and both damage the tree:
- Hang the stories under an existing epic whose title does not cover them. The candidate this pass nearly took was
MOTIR-1464— whose title is theensure_planner_bug_homemigration's join key (PLANNER_BUG_HOME_EPIC_TITLE), so widening it to fit would have broken the product's planner-bug filer. A false constraint pushed the pass toward a real outage. - Leave stories parentless, which the grammar rule (
phase-skeleton.md's THE MOTIR GRAMMAR) does not sanction for a story.
The line reads as settled fact rather than as a caveat, so nothing prompts a reader to test it — and testing it costs one call.
The fix
Correct the sentence in _shared.md's tool list to say what the tool does: epic is offered, root-only, and a parented epic is rejected. Sweep for the same claim elsewhere in the corpus before editing only the one instance — plan-procedure.md's onboarding workflow and kind-container.md both discuss laying an epic skeleton and may carry the same assumption.
Acceptance criteria
_shared.md'screate_work_itementry states thatepicIS an offered kind, root-only, and that a parented epic is rejected.- The corpus is grepped for the same claim in any wording; every instance is corrected or the PR says why it stands. The grep and its hit count are quoted.
- The correction is verified against the live tool schema, not against this card's quotation of it.
- Lands via a branch + PR; no direct commit to
main.
Context refs
motir-metaprompts/_shared.md— the tool list entry forcreate_work_item.motir-metaprompts/plan-procedure.md,prompts/plan-rules/kind-container.md— the two places most likely to carry the same assumption.- MOTIR-3293 — the epic created with the tool the corpus says cannot create it.
- MOTIR-1464 — the epic whose title is a migration join key, and the near-miss this caused.