MotirBuilding in public
MOTIR · moooon
onMotir
You’re viewing a public project. Anyone can view it — no account needed. Sign in to submit, upvote, or comment on requests.View-only — you can’t edit work items
MOTIR-3312

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

Done
Description

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:

  1. 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 the ensure_planner_bug_home migration'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.
  2. 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's create_work_item entry states that epic IS 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-meta prompts/_shared.md — the tool list entry for create_work_item.
  • motir-meta prompts/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.