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) The surfaces SAY IT HAPPENED ON GITHUB — the record band, the Development frame and the Approvals room name the GitHub reviewer, say when they are not a member, and show each pull request's review while the gate waits (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The WEBHOOK ARM — a `pull_request_review` delivery, submitted or dismissed, is recorded idempotently and evaluated; a pull request linked to no work item is ignored without errorApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) A review DECIDES THE SET — the evaluator approves the run target's gate only when every member's latest countable review at its current head approves, and requests changes on the first that does notApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The decide door takes a SYNCED actor — `approvalGatesService.decide` records a GitHub review with no Motir session: `decisionSource: github`, the resolved member or none, the login as the label, `github_review` authority, and a decided gate left standingApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The review SEAM — `parseReviewEvent` normalises a `pull_request_review` delivery and `getRepositoryPermission` reads whether a reviewer can write, both through `GitProvider`Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) SCHEMA — `github_pull_request_review` rows keyed on GitHub's review id, the repository leaf, and `github_review` joins `ApprovalGateAuthority`Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (manual) Subscribe the `motir-integration` App to the `pull_request_review` event, and read its event list back from GitHub's own APIApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) AMEND `approval-gates.md` for the GitHub review SYNC — every member approved at its current head by a writer decides the card's ONE gate AND merges it, changes requested on any member, the synced actor and its authority, first decision stands, nothing posted backApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- A GitHub approval SYNCS into Motir — every pull request approved on GitHub at its current commit decides the card's ONE approve-to-merge gate, so the card reaches `approved` and its pull requests merge, and the record names the reviewer even when they are not a memberApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Playwright acceptance E2E + VIDEO — red and running cards are visible on the board, the list and the Workbench, found by the *Checks* filter, and flip as a fix is pushed and goes green (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story VITEST gate — the card-level CI state across link, pending, terminal and concurrent events on real Postgres, the filter and all projections agreeing, and the backfill convergingApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The CI BADGE on Workbench rows — `ciState` on `HomeWorkItemRowDto`, drawn through the shared badge and done-category rule on every tab (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The CI BADGE on board cards and `/items` List + Tree rows — `ciState` on `BoardCardDto`, `WorkItemListItemDto` and the tree node, one shared badge and one done-category rule (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The *Checks* FILTER FIELD — `ciState` joins `FILTER_FIELDS` with Failing / Running / Passing and the empty pair, compiled to `w."ciState"`, offered by the Advanced builder (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) `pnpm db:backfill:ci-state` — recompute `WorkItem.ciState` for every card that has pull requests through the new recompute, plus its `workflow_dispatch` workflowApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) `WorkItem.ciState` becomes the CARD's verdict — folded over its whole delivery set with `running`, recomputed on every recorded check and every link change, under the card's row lockApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- SEE WHICH CARDS ARE RED — *Checks failing* / *Checks running* on board cards, list rows and Workbench rows, a Checks filter, and a card-level CI state that is finally rightApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The APPROVAL_GATE_SUPERSEDED refusal says "A newer version was published … Reload to see the current version" — false when the gate was retired by a withdrawal, a pull-back or a pull-request link
- (motir-core) A design result's `commitSha` is stored unvalidated, untrimmed and un-lowercased — the SAME defect MOTIR-5619 fixed on the receipt path, on the sibling design-result publish, whose shared guard now already exists
- (motir-core · design) A decision made ON GITHUB — the record band, the Development frame's meta line and each pull request's review while the gate waits, and the Approvals room row, for a resolved member and an unmapped login (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join