Skip to content

moooon

Motir

Vibe your whole project. Bring an idea — Motir's three AI layers plan it, track it, and ship it, end to end. You're looking at Motir, built in Motir.

  • Vibe Project
  • Open Source
  • AI Agent
  • AI Loop
1
requests
0
upvotes
145
planned
1,361
shipped

Motir · Work items

MOTIR-2708Done

(motir-meta) `core.md` has two dangling section stubs left by the split — a promised gate section with no gates, and a "load-bearing contracts:" list that is missing

Found during motir run MOTIR-2660 and surfaced rather than absorbed (notes.html #27). Both stubs predate that card — they are present in core.md at 5b32d96, MOTIR-2627's split commit — and neither is warrant, so neither could be removed under invariant C by a compression card.

The two stubs

1. A promised section with nothing in it. core.md ends with:

## The plan-time gates (apply to every card you author)

These are checklist items 4–9 in full. Apply every gate below to each card you author, in every workflow
(`plan-procedure.md`'s Leaf workflow is where a single card reaches the canonical bar):

…and then the file ends. There are no gates under it. The per-card checklist still routes readers there — "the gates (items 3–8, 10, 13) are specified in full under The plan-time gates below, and gates 14–16 under Planning rules" — and neither destination holds what it promises: gates 14–16 are not restated under Planning rules either.

2. A list that vanished. In Plan WITH the project's CODING CONVENTIONS:

For **Motir itself**, the convention is **`motir-core/CLAUDE.md`** (and `motir-ai/CLAUDE.md`). Its
load-bearing contracts:

**Plan-time consequences:** (a) **SLICE subtasks to the architecture** …

The colon promises the contracts; the next block is the consequences of contracts that are not there.

Why this matters more than a typo

The checklist's whole claim about itself is that it is "the EXECUTABLE INDEX of the rules in this file: each line is a hard check, with the full rule beside it". A reader who follows the pointer for gate 4 or gate 7 lands on a header with nothing under it and has no way to tell whether the rule moved to another pack, was dropped, or was never written — which is exactly the failure DECISION.md §3 forbids at the pack level (a pack is a delivery mechanism, never a filter), reproduced inside one file by a broken cross-reference.

What to do — establish the truth FIRST, then edit

The fix is NOT obvious and must not be guessed. For each of the two stubs, determine what actually happened at the split by reading git show 5b32d96 against pre-split f7d5723, and whether the promised text now lives in another pack (kind-leaf.md's estimation gate, type-design.md's design gate, phase-skeleton.md's arrow audit, kind-story.md, and so on).

Acceptance criteria

  1. For EACH stub, the disposition is established from the git history and stated in the PR body — the text moved to a named pack, the text was dropped, or the header was always empty — with the commit and path cited.
  2. core.md no longer promises content it does not have: either the section is removed, or it is replaced by a pointer naming the pack that now holds each gate. No rule text is re-worded and no rule text is added — this card fixes cross-references, not rules.
  3. The checklist's routing line ("specified in full under The plan-time gates below, and gates 14–16 under Planning rules") is corrected to name where each gate's full rule actually lives, gate by gate, and every destination it names is verified by opening it.
  4. If the disposition turns out to be dropped for any gate, that gate's full text is restored verbatim from f7d5723 rather than re-written, and the restoration is called out separately in the PR body.
  5. COMPRESSION.conserve.py core --base 5b32d96 still passes — this card's own edits must not disturb the warrant proof, so any deletion it makes is a cross-reference, never a warrant span, and it is named in the PR body.
  6. DECISION.md, CLASSIFICATION.md, plan-rules.md and fixtures/core.md are not edited.

Context refs

  • prompts/plan-rules/core.md — the trailing ## The plan-time gates section, and the Plan WITH the project's CODING CONVENTIONS section.
  • prompts/plan-rules/DECISION.mdMOTIR-2627's split contract and §3 (routing is total).
  • prompts/plan-rules/verify.py — the split's own lossless proof, pinned to f7d5723; it no longer passes post-compression, but its reassembly logic still shows where each pack's text came from.