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
- 588
- planned
- 5,171
- shipped
- DECIDE APPROVE-AND-MERGE FULL SCREEN — the approval overlay renders the pull-request gate: the Development block as its port, opened from its To-approve rowApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core · design) The To-approve row set and the Development frame WITHOUT a merge gate — a delta mock striking §23's `pull_request_merge` row and drawing RETRY on the card's own gateApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core · design) The overlay renders the APPROVE-TO-MERGE gate — band 2 is the Development block: every PR row plus the run's rich-text How to test, one frame over all the PRsApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) A DECISION MADE IN THE OVERLAY REACHES THE PAGE UNDER IT — the decided-gate store carries the decided row, `filesKept` and `outcomeRef`, and the item page applies them to its status rail in the browserApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE FRAME RENDERS FLUSH IN A SECTION — `ApprovalGateControl` gains `layout: 'section'` (no box of its own, no kind label), and the item page's kept states B / E / F / G render through itApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Playwright acceptance E2E + VIDEO — open a card with a decision owed, press ONE control, decide full screen, and watch the page repaint in place (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The story's VITEST GATE — the section and the page's decision listener PINNED, the prop-and-announcement repaint seam, and the guards that no approve control and no second container survive on the pageApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE BAND AND ITS ONE DOOR — an awaiting, decidable gate becomes the call-to-action band with Review & approve, the section's verbs and local gate state leave, and the three E2E specs and three unit suites that pressed them are re-homedApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- The work-item page HANDS THE DECISION OVER — one Review & approve control opens the same full-screen surface, and the page keeps the record but none of the verbsApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) WITHDRAWING a design result leaves its approval gate `awaiting` — the card keeps asking somebody to approve a design that is no longer there
- Planning bug: MOTIR-5064 was sealed on a criterion that WRITES a field with no write door — `work_item.subject` is read-only by design, and the card asked five batches to set it
- Planning bug: a card copied a control from a PUBLIC repo to a PRIVATE one and verified every setting except whether the capability EXISTS there
- Planning bug: MOTIR-5077/5078 pinned a load-bearing ADR argument to a SYMBOL, and the symbol was retired 22 minutes after authoring
- Planning bug: a cited BASELINE was inherited across the change that invalidated it — MOTIR-5028's 40.9-min "cold floor" is a `projectsIndexed: 2` run from before the fan-out was retired, and MOTIR-5031's whole deliverable rests on the same figure
- Planning bug: a card was authored against a `/docs` route deleted five days earlier — and the criterion that asserted it was INTRODUCED by an advisory disposition, replacing a true post-merge clause with a false in-PR one
- Planning bug: MOTIR-4944's highest-prior row asserted three assets "draw an icon slot with no icon slot rules" — all three declare `svg { width: 1em; height: 1em }`
- Planning bug: a card named two assets as a CLASS ("both are compiled builds") and proposed a fingerprint for it — one grep falsified both halves
- Planning bug: MOTIR-4430 priced a `headers()` read in `app/not-found.tsx` as one route's prerender, and asked for two properties of motir.co's 404 room that cannot both hold
- Planning bug: MOTIR-4316's first acceptance criterion greps for a string JSX line-wraps, so it returned nothing on the UNFIXED tree and could not fail
- Planning bug: MOTIR-4317 named the assertion its own guard cannot produce — a PASSING pair yields no finding to read a value off, and its before/after count was blind to the 146 grounds the fix moved