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
- (motir-core) RECONCILE ONE ISSUE — file a `bug` into the resolved destination as the connection's binder, update recurrence on a known issue, re-file a deleted or completed one, and never file twice under a raceProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- (motir-core) The provider seam reads SINCE — `listIssuesSince` takes a last-seen watermark, reads Sentry's organisation issues sorted by last seen and stops at it, and the fake honours itProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- (motir-core) The ingestion STORE — the `monitor_issue` link set (one row per provider issue per connection), the connection's watermark / minimum level / last-poll outcome / binder, its migration, RLS and repositoriesProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- Monitor issues arrive as BUG work items — the reconciling poll, dedup on the provider's issue id, and the qualifying filterProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- (motir-core · design) RETIRE the repository sub-block from How to test — §20 and §24 amended, and `stale` given a homeApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE 30-MINUTE RECONCILE ALSO RE-DERIVES THE GATE SET — `system.pull-request-reconcile` repairs a card whose gates are wrong, not only one whose merge was never heard aboutApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE CARD'S OWN CHANGES WAKE THE EVALUATION — a status flip, a delivery linked or unlinked, and a published design each re-ask the predicate, not only a CI deliveryApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story E2E — one press answers both questions, an ejection re-asks only the merge, and the design cannot be re-published; records the acceptance video, paced for a personApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) VITEST gate — the parent-run fixture that reproduces the original defect, the six defects as PREDICATE-level regressions, the approve → eject → re-open sequence, and the one-home guardApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE SURFACES SAY WHICH QUESTION — the design gate leads with its pull requests beneath it, a re-opened merge gate stands alone, and a withdrawn gate names its real cause (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE MERGE GATE RE-OPENS ALONE — a failed merge or a queue ejection re-asks about the COMMITS only, with the design decision left standingApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) RETIRE AMENDMENT 5 Q2's pinned-row arm — with the design gate raised again, arm 1 covers the window arm 2 was built forApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) ONE APPROVAL, TWO GATES — pressing the primary design gate decides the design AND satisfies the merge gate, driving the existing merge-or-enqueue path per memberApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE WITHDRAWERS ASK THE PREDICATE AND RECORD THEIR CAUSE — seven superseding sites stop retiring a question the card still has, and every one says whyApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE RAISERS ASK THE PREDICATE — the four creating sites stop deciding for themselves, the three Q8 suppressions go, and the `runTarget === 'ancestor'` refusal is droppedApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) A DECIDED DESIGN GATE CLOSES THE DESIGN — publish, upload and withdraw refused on the GATE rather than on the card's status, closing the approved-with-open-pull-request windowApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) THE PREDICATE — one pure read answers WHICH GATES a card should hold and which is PRIMARY, with its own unit suite and no caller yetApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) SCHEMA — `approval_gate` records WHY it was superseded: the cause enum, the migration, a required write argument, and a backfill that reads as UNKNOWNApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Decision — the GATE MODEL: two gates and ONE approval with the design gate PRIMARY, a merge gate that re-opens alone about the COMMITS, a DECIDED design gate that closes the design, and §6b's supersede CAUSEApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) A design card with a published result AND an open pull request raises NO gate at all — there is nothing to approve in MotirApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join