moooon
Motir
Vibe your whole 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
- 1
- requests
- 0
- upvotes
- 144
- planned
- 1,367
- shipped
Submitted0
Planned119
MOTIR-4125Planning bug: an interim UI defect card was ready with four visible dispositions and no design prerequisite0 upvotes — vote on app.motir.co
MOTIR-4123/p/* 404s on BOTH hosts in production — the public pages were deleted ahead of their replacement, and motir.co/explore links into the hole0 upvotes — vote on app.motir.co
MOTIR-4100Planning bug: MOTIR-3909 was planned with a post-DEPLOY child inside it — the epic that had already recorded this rule reintroduced it two stories later0 upvotes — vote on app.motir.co
MOTIR-4099Planning bug: an ABSENCE-shaped acceptance criterion left the repo column BLANK — gate 1's sweep cannot run on "there is no read path for this", and the straddle detector has no path to match0 upvotes — vote on app.motir.co
MOTIR-4091Planning bug: a card's scope-boundary OUT list named the sibling that BUILDS the surface its criteria assert against — and the `blocked_by` edge pointed the other way0 upvotes — vote on app.motir.co
MOTIR-4090Planning bug: `blocks` does not cross the AI boundary either — MOTIR-4055 enumerates THREE missing link kinds and there are FOUR0 upvotes — vote on app.motir.co
MOTIR-4088(motir-meta) Retire the limb from `plan-rules/phase-skeleton.md` — the RUNBOOK planner's copy0 upvotes — vote on app.motir.co
MOTIR-4087(motir-ai) Retire the limb from the PACK and the SEEDED LESSON — one repo, two channels, and the lesson needs a migration0 upvotes — vote on app.motir.co
MOTIR-4086Planning bug: the no-lift LIMB teaches an edge that makes a plan INVALID — a `blocked_by` is always same-level, and the limb lives in THREE homes including a seeded global lesson0 upvotes — vote on app.motir.co
MOTIR-4070Planning bug: a later merge deleted every test subject while the lane-fix work item stayed ready0 upvotes — vote on app.motir.co
MOTIR-4049Planning bug: a bug card's error count was measured against a stale generated Prisma client — 175 phantom errors, 1 real0 upvotes — vote on app.motir.co
MOTIR-4048Planning bug: MOTIR-3999 re-combined the publish + the re-pin on one card and omitted the 0.1.3 bump — the exact release-shape MOTIR-3965 was re-scoped out of, one release later0 upvotes — vote on app.motir.co
MOTIR-4044Planning bug: MOTIR-3932's /explore and /docs scope items have no cards after the host-branch cards were archived0 upvotes — vote on app.motir.co
MOTIR-4040Planning bug: a card asserted the default E2E lane is cloud-on — it is off-cloud, and the whole two-arm plan was built on it0 upvotes — vote on app.motir.co
MOTIR-4031Planning bug: a ratchet number was attached to a counter that measures a SUBSET of the population the card's own reason quantifies over0 upvotes — vote on app.motir.co
MOTIR-4029Planning bug: MOTIR-4017 asserted two facts about the plan detail that the render falsified — a scroll that does not happen, and an arrival floor this surface cannot reach0 upvotes — vote on app.motir.co
MOTIR-4027Planning bug: a bug card filed FROM a sibling's unmerged branch inherits that branch as its substrate and gets no `blocked_by` — the discovery link is written as `relates_to`0 upvotes — vote on app.motir.co
MOTIR-3994Planning bug: a bug card counted "the other three inks clear it" over the set its OWN diagnosis had just shown to be unmeasured — the enumeration inherited the guard's blind spot it was filed about0 upvotes — vote on app.motir.co
MOTIR-3993Planning bug: MOTIR-3947 was carved out of MOTIR-3933 and inherited two unverified claims — a consumer that does not exist in that form, and a figure one tile optimistic0 upvotes — vote on app.motir.co
In progress25
MOTIR-423418 (motir-core) The same opaque shell canvas masks FOUR more styles — glassmorphism, aurora, cybercore and retrofuturism paint a `body` atmosphere the signed-in shell covers, and neumorphism's moulded field never reaches it either0 upvotes — vote on app.motir.co
MOTIR-4228(motir-core) The custom-domain entitlement — the `custom_domains` kind, `maxCustomDomains` per tier, and the org-locked cap assert in entitlementsService0 upvotes — vote on app.motir.co
MOTIR-4226E2E (Playwright, motir-marketing) + acceptance video — a tenant host and a customer host render the project, the canonical names the primary, and the non-primary address redirects0 upvotes — vote on app.motir.co
MOTIR-4224Vitest gate (motir-marketing) — the host router, the per-host canonical and crawl surface, and the standing no-database-client rule0 upvotes — vote on app.motir.co
MOTIR-4222(motir-marketing) One canonical per page — canonical, og:url, JSON-LD @id, the per-host sitemap and robots name the primary address; every other address 301s to it, motir.co/p/* included0 upvotes — vote on app.motir.co
MOTIR-4220(motir-marketing) Host routing — a request on a tenant or customer host resolves through the public contract and renders that project's /p/* pages at the root0 upvotes — vote on app.motir.co
MOTIR-4219(motir-core) The certificate status job — refresh pending customer domains from the platform, surface issued / expired / revoked / failed, and record the last check0 upvotes — vote on app.motir.co
MOTIR-4218(motir-core) The public surface honours registered addresses — CORS and the hand-off return target accept every registered public address, not only motir.co0 upvotes — vote on app.motir.co
MOTIR-4217(motir-core) The public contract resolves a host — GET /api/public/hosts/{host}, and the subject DTO carries the project's addresses and its primary0 upvotes — vote on app.motir.co
MOTIR-4216(motir-core) The customer-domain lifecycle — add, verify, issue, make primary, remove — its tier gate, and the project-settings routes0 upvotes — vote on app.motir.co
MOTIR-4215(motir-core) Claim and rename the workspace subdomain — the service, its reserved-name and retained-alias rules, and the project-settings routes0 upvotes — vote on app.motir.co
MOTIR-4212(motir-marketing) Legal — the Acceptable Use Policy and Terms clause for customer-connected domains0 upvotes — vote on app.motir.co
MOTIR-4210(motir-core) The Fly certificates adapter — request, check and remove a hostname's certificate on the motir-marketing app, behind a port beside flyMachines0 upvotes — vote on app.motir.co
MOTIR-4209(motir-core) The public-address store — a SET of addresses per public project with exactly one primary, retained aliases and the reserved-name set: migration + repository0 upvotes — vote on app.motir.co
MOTIR-4206Decision (ADR) — public tenant addresses: the base domain, what a subdomain names, the customer-domain lifecycle on Fly certificates, the one-primary canonical, the never-released rename, and the tier gate0 upvotes — vote on app.motir.co
MOTIR-4171A project's public overview can no longer be edited from any UI — the in-place editor was deleted with the page and AMENDMENT 3 moved editing to the application, where no surface calls the door0 upvotes — vote on app.motir.co
MOTIR-4105Playwright E2E + acceptance video (motir-core) — /legal is gone from the app host and the configured legal journey still works without it0 upvotes — vote on app.motir.co
MOTIR-4104Vitest gate (motir-core) — the absence of every content/legal reader, the catalogue split, and the CI content arm's disposition0 upvotes — vote on app.motir.co
MOTIR-4101content/legal/ LEAVES motir-core — the live-gate confirmation, the deletion and its 84-file sweep, and the guards that assert the absence0 upvotes — vote on app.motir.co
Done1353
MOTIR-426419 (motir-core) A CI check delivery 500s on Prisma's 5 s transaction budget — the feedback transaction holds the change-request ROW LOCK across N comment writes on other connections, so concurrent deliveries queue behind it and their check rows are DROPPED0 upvotes — vote on app.motir.co
MOTIR-4247(motir-marketing) `design/legal/` draws a `/legal`-scoped 404 room that nothing renders and that the site-wide not-found supersedes — a second 404 design waiting to be built0 upvotes — vote on app.motir.co
MOTIR-4245Design — motir.co's not-found room: what a lost visitor is told, and where the page sends them, drawn inside the public chrome0 upvotes — vote on app.motir.co
MOTIR-4243Mount the Public page room — the registry entry with a `cloudOnly` flag, the page with its guard and off-cloud 404, and the read that returns all three hero fields0 upvotes — vote on app.motir.co
MOTIR-4242The Members room's three public-page links still point at the app host — retarget view, edit and the copied share URL through one public-host accessor0 upvotes — vote on app.motir.co
MOTIR-4233(motir-marketing) The 30-day erasure promise loses its guard with content/legal/ — no repository asserts that the Privacy Policy §6 number is the one ACCOUNT_ERASURE_WINDOW_DAYS runs on0 upvotes — vote on app.motir.co
MOTIR-423217 (motir-core) Soft playful OVERFLOWS the left nav rail at both widths — its 40px `--height-control` is 1px wider than the 56px collapsed rail's content box, and pushes the expanded rail past the fold 68–76px earlier than the default style0 upvotes — vote on app.motir.co
MOTIR-42303938 (motir-core) The signed-in app shell masks the 3D / Immersive atmosphere with an opaque page-background layer0 upvotes — vote on app.motir.co
MOTIR-4214Provision the runtime configuration — the certificates token scoped to the motir-marketing app and the base-domain variables, set on both Fly apps and read back from the platform (manual)0 upvotes — vote on app.motir.co
MOTIR-4211Design — project settings › Public address: the subdomain claim, the custom-domain flow with its DNS instructions and every certificate state, the primary control and the tier upsell0 upvotes — vote on app.motir.co
MOTIR-4208Register the tenant base domain, point it at the motir-marketing Fly app, and issue its wildcard certificate (manual)0 upvotes — vote on app.motir.co
MOTIR-4205Design — the Public page room in project settings: where a project admin edits the tagline, tags and README on app.motir.co (the entrance, the room, its states)0 upvotes — vote on app.motir.co
MOTIR-4204(motir-core) app.motir.co/legal/<slug> answers 500 for EVERY slug since the manifest reader deployed — `generateStaticParams` over a runtime-only env var yields no params at build, so the redirect stub renders statically and the locale cookie read throws0 upvotes — vote on app.motir.co
MOTIR-4195(motir-marketing) /docs/mcp/tools renders the PUBLISHED catalogue through lib/docs.ts — the list returns, and the copy does not0 upvotes — vote on app.motir.co
MOTIR-4194(motir-core) Publish the MCP tool catalogue as an anonymous artifact — the derived grouping served at a stable path, the way the OpenAPI spec already is0 upvotes — vote on app.motir.co
MOTIR-4193(motir-marketing) motir.co has NO not-found page — a 404 is Next's stock black-on-white screen with no chrome, no landmark and no way back, on four routes that call notFound()0 upvotes — vote on app.motir.co
MOTIR-4180(motir-marketing) motir.co/docs/mcp/tools hand-copies motir-core's tool registry with NO guard — 24 of 55 tools in five invented groups, the one outcome MOTIR-4046's own criterion named unacceptable0 upvotes — vote on app.motir.co
MOTIR-4169motir.co's /explore, /explore/topic and /docs pages render NO main landmark — the skip link has no target and a screen reader re-reads the banner on every navigation0 upvotes — vote on app.motir.co
MOTIR-4167(motir-core) The rail's `Docs` row is a DEAD link — it still hard-codes `/docs` after MOTIR-3932 moved that surface to motir-marketing, while the `Legal` row beside it got the configured-url treatment0 upvotes — vote on app.motir.co