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
- 500
- planned
- 5,029
- shipped
- (motir-core) The org danger zone renders for the Owner alone, and its Transfer ownership flow picks a member, asks for the organization's name and hands the org overRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The org Workspaces section creates and removes workspaces, the New workspace doors show only to an Owner or Admin, the workspace-tier Delete retires, and an org Member's settings rail shows no org rowsRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The org members roster shows Owner / Admin / Member, offers only Admin and Member in the role picker, locks the Owner's row for everyone, and gives an Admin the owner's billing controlsRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) Transfer ownership — an Owner-only service and route that hands the Owner role whole to another member of the organization and makes the previous Owner an Admin, in one locked transactionRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) Creating and removing a workspace becomes an org-Admin act on the server — the create path and `deleteWorkspace` gate on the org role, an org-tier remove route, and account erasure keeps its own system pathRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The Owner acts with full rights in every workspace and project of the organization, member or not — and an org Admin's reach inside a workspace comes from membership, with today's Admins kept wholeRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) Exactly one Owner per organization — existing extra owners become Admins, a partial unique index holds the invariant, and no member path can grant, demote or remove the OwnerRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) One home for what each org role may do — `lib/organizations/capabilities.ts`, billing mutations opened to Admins, and the two ADR amendments that record the splitRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- The organization's three roles — an Owner who holds every permission and alone deletes or transfers the org, Admins who create and remove workspaces and hold org settings and billing, and Members who get their abilities from the workspaces they are givenRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core · test) Two permission-gated backlog tests read `create-issue-backlog` synchronously after awaiting a DIFFERENT element — they race the backlog section's render and fail intermittently
- (motir-core) `likely-repo-straddle` reports a sentence-final path with the full stop attached — `criterionRepoPaths` does not strip trailing dots the way `bodyFilePaths` does
- (motir-core) Below 768px the FIXED planning frame gives the canvas no height — the plan page's canvas measures 0px at 767×720 even with a short rail
- (motir-core) The item page's and quick view's Story points field shows a Viewer a bare chip with no reason — the one rail field the read-only treatment missed
- (motir-core) `backlog.test.tsx`'s EDITOR_ONLY case waits for the SPRINT header, then reads the BACKLOG's Create row synchronously — a race that ejected an unrelated PR from the merge queue
- (motir-core) `gatedSurfacesStoryGate`'s VIEWER case waits for the BOARD, then asserts on the BACKLOG — a race that ejected an unrelated PR from the merge queue, and its absence checks can pass vacuously
- (motir-gateway) A catalog refresh whose providers changed their lists can never go green — the generator needs two passes, a newly listed id arrives with an unsourced hand price, and ~20 tests are pinned to today's real models
- (motir-gateway) The catalog refresh regenerates from the COMPILED-IN provider listings, not the ones it just wrote — every run whose listing moved commits generated files that disagree with it, and its own PR fails TestGeneratedFilesAreUpToDate
- (motir-core · design) The permission-gated rule for the surfaces its table does not rule on — a list or tree inline cell, the inline estimate badge, and the Resume-onboarding door, for an actor who cannot writeRoles & permissions, refined — org Owner · Admin · Member, ROLE on the workspace and ACCESS on the project, an automatic Visitor on public projects, and a UI that offers each role only what it can do
- (motir-core) The planning surface does not refresh a plan's HELD state when the rewrite was started elsewhere — its verbs stay enabled until the reader navigates, and the press is then refused
- (motir-core) The item page's pull-request LINK and UNLINK assert no permission key — a browse-only actor links or unlinks a PR (and withdraws its merge gate) by calling the action directly; only the MCP tool's copy checks `work_item:edit`