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-3689

Planning bug: a card ABOUT a stale population count carried a stale population count — MOTIR-3682 says "exactly one thing" remains on Inngest, and three did

Done
Description

What the card claimed

MOTIR-3682, authored 2026-08-27T08:54Z, states in its own body:

MOTIR-3418is premised on nothing remaining on Inngest. Today exactly one thing does, and no card owns moving it.

and sets an acceptance criterion on it:

MOTIR-3418 can state "nothing remains on Inngest" and have it be true.

What was actually true when it was written

Measured at the start of the run that executed it, on origin/main at 555932db9 and against the live MOTIR_POSTGRES_JOB_IDS read from inside motir-core machine 8576143c4ee538:

40 defineJob ids in lib/jobs/definitions
34 ids in the live MOTIR_POSTGRES_JOB_IDS
 6 unrouted

Three of the six were owned (MOTIR-3489's container supervisors) and one is the card's own (system.public-follow-digest-tick). The remaining two were owned by nobodyplan-drift/transitioned (merged 2026-08-26 20:39Z, 12 hours before the card) and public-follow/digest (merged 2026-08-27 07:07Z, 1h47m before the card, in the very same pull request that added the job the card IS about). Filed as MOTIR-3688.

So the enumeration was wrong when it was written, not drifted since — run.md's reproduce-at-the-reporter's-base rule, step 3: date the extra members, and a member predating the card is an amendment on the record rather than drift.

Root cause

The count was taken on one LANE and reported as the whole POPULATION. The card was found by reading a scheduler log line, so its author enumerated git grep "cron: " lib/jobs/definitions — 15 rows, 14 routed, one left. That command is correct and its answer is correct; it just answers a narrower question than the sentence built on it. The premise the card is defending ("nothing remains on Inngest") is about every defineJob id, and the only command that answers it is the full registry diffed against the live environment variable.

The card is, in its own words, about a migration whose "scope was defined by counting a population, and the population grew while the migration ran." It then scoped itself by counting a population, on a subset, and held the count as the whole.

Fix direction

The corpus already carries the general rule — run.md's ENUMERATION limb (a card COUNTING a population owes the ref the count was taken on) and plan-rules/phase-deepen.md's positive twin. Both are about the REF the count was taken on, and this count named its ref correctly. What neither says is that a count also owes the PREDICATE it was taken over, and that the predicate has to be the one the claim is about: git grep "cron: " is a ref-stable, reproducible, correct measurement of the wrong set.

So the amendment is a clause on the existing ENUMERATION limb: a card whose claim quantifies over a population ("nothing remains", "all N", "every consumer") states the COMMAND that produced the number, and the reader checks that the command's predicate is the claim's predicate — not only that it names a ref. A narrower predicate produces a number that is true and a sentence that is false, and the two are indistinguishable in the card.

Acceptance criteria

  • run.md's ENUMERATION limb (the reproduces LARGER / --diff-filter=A block) carries the predicate clause, with this card as its fixture.
  • plan-rules/phase-deepen.md's positive twin carries the same clause, because a rule has two homes and an edit to one is half a fix.
  • The clause states the tell in a form a reader can apply: the claim's quantifier is over set X, the command enumerates set Y, and X ⊇ Y is the failure — not the ref.

Context refs

  • MOTIR-3682 — the card whose enumeration was short
  • MOTIR-3688 — the two members it missed, now owned
  • motir-meta/prompts/run.md — the ENUMERATION limb, run-time half
  • motir-meta/prompts/plan-rules/phase-deepen.md — the authoring-time half