moooon
Motir
Vibe the 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
- 6
- requests
- 4
- upvotes
- 589
- planned
- 5,392
- shipped
- (motir-core) design(work-items) — `provenance.mock.html` gains a THIRD group: Planning · Implementation · Subject, in the same read-only disclosureSelf-improvement — auto-reported quality bugs
- 2200.25 (motir-core · design) `design/repository-set/` draws the REFUSED arm — what the created panel says when the account is known and GitHub said no
- (motir-core) The runner-image lane is blowing its 20-minute ceiling REPO-WIDE — it stopped restoring its cache around 07:15 and now rebuilds cold on pull requests as well as queue entries; `changes` failing open on `merge_group` is why even a docs-only diff pays it
- (motir-core) Story E2E (Playwright) + acceptance video — a published design waits, the control clears it, and the card it was blocking becomes readyApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-ai) A lay session's DECLARED level does not bind its proposals — `propose_node` accepts any `parentRef`, so a session opened to lay one level may propose into another, and nothing refuses it
- (motir-meta) The runbook MIRROR of MOTIR-4774 — the SEARCH THE LESSONS twin says `lay` / `author`, the three "the lesson axis keeps the old names" notes are deleted, `run.md` tells a local planner to pass its own phase, and the five guards stay green
- (motir-ai) `main` is RED a SECOND way — `authorTitleOnAProposal` carries a SEVENTH subtask-under-a-committed-`epic` fixture, the class MOTIR-4631 corrected six of, because #452 was cut before #450 landed
- (motir-ai) MOTIR-4638 left a THIRD constant behind — `THE_GATE_RECONCILE_CONTINUATION` still routes a wrong committed TITLE to "a re-write in that work item's own authoring session" and omits `retitle_node` from the reconcile palette, so GATE 1(b) contradicts STEP 1 and the reconcile rule in the same `phase-lay` prompt
- (motir-ai) An ANCHORED walk's lay session cannot DECLARE its own level — `layTargetKind` resolves a committed target from the grounding, the `lay` executor resolves an id against `proposed` only, so `lay(kind, <a real key>)` is refused "not a known proposed node"
- (motir-ai) `main` is RED — `onboardingIsAFactAboutHistory` re-derives the AUTHOR discriminator from the bare literal, which MOTIR-5060's one-place guard forbids; two PRs green apart, red in sum
- 31 (motir-core) A card the plan RE-PARENTS AWAY from a level is still drawn as an ordinary committed child of it — the level's membership is the FOURTH fact `mergePlanLevel` inherits from the committed read and never revisits
- (motir-core) The lesson MCP tools and the lesson library speak `lay` / `author` — `add_lesson` / `search_lessons` enums and descriptions, the API-docs schema, and the settings badges follow the renamed axis, accepting the old names inbound for one release
- (motir-meta) `MIRROR.map.py --check` has been RED on `main` since before MOTIR-4382 closed — two `one-home:ai` rows have never been adjudicated, and the three cards that owned the queue are all `done`
- (motir-ai) `author` on a PROPOSAL silently DROPS `title` — the tool advertises it, the deepen patch carries only body, priority and sizing, and the caller gets `ok: true`; `explanationMd` on the same call is refused aloud, so the two fields fail in different ways
- 2200.27 (motir-core) An approved plan's canvas is taken by a panel saying "Motir will host your code" for a project whose repositories are its ORGANISATION's — the establish band's gate is a row COUNT, never MOTIR-5010's own `connected` discriminator
- (motir-ai) `proposeExecutor` accepts a COMMITTED-key `parentRef` unchecked — a `null` parent must be an epic and a temp-ref parent must exist and admit the child's kind, but a real key such as `MOTIR-12` falls through both branches, so a `story` proposed under a subtask's key is not refused in the session
- (motir-ai) ONBOARDING is read off the wire, not off an EMPTY TREE — `context.onboarding` selects the onboarding framing, the lesson bucket and the PROJECT arm, so a first plan over an imported backlog is laid as the project's first plan with the backlog as existing work, and the head's "self-planned items" paragraph is true again
- (motir-ai) The AUTHOR-session discriminator `PHASE 2 (AUTHOR)` is a bare literal duplicated in 40 test files with no exported constant — a rename must sweep all 40 by hand, and a missed file mis-classifies SILENTLY because most carry no guard that an author session was seen at all
- (motir-core) `plan_revision` has no `system_admin` read arm — the plan timeline is INVISIBLE to every out-of-band read, and returns an empty result rather than an error
- (motir-meta) Mirror of MOTIR-4638 — the runbook routes a wrong TITLE on a kept sibling to "a re-write in that work item's own authoring session", which a lay pass never opens; the lay reconcile door must carry `title`, and `phase-lay.md` still names the retired `modify_node`