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-3385Done

The five type-* packs restated — and type-bars / type-code confirmed already at register, measured not assumed

All five type-* packs in one card, because they are the whole type axis and only two of them need real work. Measured with REGISTER.count.py at origin/main a9caaa1:

packlinescautionaryprescriptiveratio
type-test.md1041042.5x
type-migration.md9070
type-design.md11440
type-bars.md6800
type-code.md5900
total4352145.3x

The story predicted type-bars and type-code were already close to the target shape. On the published method they are already THERE — zero cautionary markers each. So their disposition is confirmed at register, restated only where a sentence is not yet an instruction, and each gets a table row stating the measured zero. That is the cheapest confirmation available that the measure is tracking something real rather than counting warrant tags, which is exactly what the story asked these two packs for.

The three that carry work:

  • type-test.md — the scaffold-verification rule, the who names the test home limb, the split-guarantee sub-case, the assembled-surface rule, and the coverage-zero family with its two-classes sort, its read-the-verdict-off-the-producer rule, its dead-arm invariant and its name-an-arm-by-what-makes-it-fire limb.
  • type-migration.md — the unit of a migration is the set of callers; the deliverable is the DELETION of the abandoned path; "unchanged" is not a neutral disposition; and the suppressor limb, whose ordering is the opposite of the other four.
  • type-design.md — design to the linked subtasks, the allocation-table corollary with its two non-element takings and its tree-wide grep, the access-path scope rule, the compose-don't-redraw rule, and the link-the-defining-subtasks rule.

Two things stay whole in the imperative whatever the register says: the coverage-zero two-class sort in type-test.md (defensive arms versus reachable ones, and what each owes) and the suppressor limb in type-migration.md. Both are procedures with a stated remedy, and the suppressor limb in particular exists because every caller-outward sweep is structurally blind to it — a shortened version would restore the blind spot it was written to close.

Same disposition discipline as the proof pack: keep means the imperative with no incident narrative, no > **Warrant:** block and no fixture pointer; migrate means the body goes to the lesson store and the one-line directive stays; a limb whose lesson row is not yet written is marked pending with its text left in place.

Do not merge the five packs, and do not move a rule between them. The split is a routing decision — PACKS_BY_TYPE maps a card's type to the packs it loads — so a rule that moves file changes which cards ever see it.

Acceptance criteria

  • RESTATEMENT.md gains one section per pack — five sections — each with a table row per unit or named limb carrying the disposition, the before/after line count, and for a migrate the destination sourceRef.
  • type-bars.md and type-code.md each have a row recording the measured 0 cautionary and stating what, if anything, changed.
  • type-migration.md and type-design.md each end with a non-zero prescriptive count; the PR body quotes every pack's before and after figures.
  • The coverage-zero two-class sort and the suppressor limb survive as instructions, each still enumerating what it enumerated.
  • Every migrated paragraph is verbatim under #restatement in prompts/plan-rules/fixtures/<pack>.md. Fixtures exist at a9caaa1 for type-design and type-migration only; create one for another pack only if that pack migrates something.
  • python3 prompts/plan-rules/REGISTER.count.py type-bars type-code type-design type-migration type-test at this card's base and again on the result, with both sets of figures and the base ref in the PR body.
  • No rule moves between the five packs; where a rule looks mis-filed, record the observation in the table and leave it where it is.
  • COMPRESSION.conserve.py is expected to FAIL on the packs this card re-words; quote it, cite MOTIR-3377, and change no rule text to chase it.
  • The change lands via a branch and a PR against main; no direct commit.

Context refs

  • motir-meta prompts/plan-rules/type-bars.md · type-code.md · type-design.md · type-migration.md · type-test.md.
  • motir-meta prompts/plan-rules/fixtures/type-design.md · fixtures/type-migration.md.
  • motir-meta prompts/plan-rules/RESTATEMENT.md · REGISTER.count.py · MANIFEST.md — the routing table that decides which card loads which of these.
  • motir-ai src/llm/planningRulePacks.tsPACKS_BY_TYPE, which has entries for code, design, chore and deploy and none for test; note it in the type-test row for the sibling card.
  • MOTIR-3308 — the worked example of the table and the restated voice.