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,362
- shipped
Submitted0
Planned116
MOTIR-3871Planning bug: a copy card scripted a PUBLIC marketing claim about an unshipped capability — no gate checks a customer-facing sentence against the product, because the precondition rule only asks whether the card can be BUILT0 upvotes — vote on app.motir.co
MOTIR-3858Planning bug: a bug card filed mid-run asserted an ORM reader nobody grepped, and promoted that mechanism into two acceptance criteria that cannot be satisfied0 upvotes — vote on app.motir.co
MOTIR-3857Planning bug: a `coding_agent` card carried a criterion only a BROWSER SESSION can discharge — minting a `CLI_TOKEN_GRANT` token is cookie-session-only by design, and no gate noticed0 upvotes — vote on app.motir.co
MOTIR-3855Planning bug: the 8.3 re-plan moved the public marketing surface to motir.co and never swept MOTIR-1043, whose whole premise was that surface — it kept `(motir-core)` in its title, and had no design blocker, for two months0 upvotes — vote on app.motir.co
MOTIR-3854Planning bug: an acceptance criterion quoted durations from a run where the jobs were SKIPPED — a skipped job reports zero, not an absence, and the ceiling it implied would have failed a green run0 upvotes — vote on app.motir.co
MOTIR-3849Planning bug: a `blocked_by` wired to an ARCHIVED predecessor gates nothing — the card sealed `ready: true` against a retirement that has not shipped, and the advisory that named it was never read0 upvotes — vote on app.motir.co
MOTIR-3759(motir-core) The code-graph refresh costs ~35 minutes to re-derive a graph that measures 32 seconds — index ONCE per repo, and reach `codegraph sync`0 upvotes — vote on app.motir.co
MOTIR-3580The token-permission picker's design asset is THREE rows behind its measurement — re-measure the two-column split, or say the numbers are no longer drawn0 upvotes — vote on app.motir.co
MOTIR-3013(motir-meta) W10 + W10b — a NON-REPRODUCTION obliges the MATRIX not the verdict, and a `shape` advisory's remedy is not always a criterion CUT (`run.md` + `log-bug.md`)0 upvotes — vote on app.motir.co
MOTIR-2989(motir-ai) Mirror W9 into `SHARED_PLANNING_RULES` — a defect card's mechanism owes the measurement that rules the alternatives out0 upvotes — vote on app.motir.co
MOTIR-2987(motir-meta) W9 — a defect card's MECHANISM owes the DISCRIMINATING measurement, and that measurement is the FIRST acceptance criterion (`kind-bug.md`)0 upvotes — vote on app.motir.co
MOTIR-2963(motir-ai) Mirror W8 into `SHARED_PLANNING_RULES` — a decision's close-out asks BOTH directions, and its *Consumed by* header is the inward worklist0 upvotes — vote on app.motir.co
MOTIR-2962(motir-meta) W8 — the INWARD limb of a decision's close-out: an ADR's own *Consumed by* list is the worklist (`core.md` + `run.md`)0 upvotes — vote on app.motir.co
MOTIR-2954(motir-ai) Mirror W7 + W7b into `SHARED_PLANNING_RULES` — a lifecycle VERB is a precondition, and a characterised set owes its histogram0 upvotes — vote on app.motir.co
MOTIR-2953(motir-meta) W7 + W7b — two `phase-deepen.md` widenings: a lifecycle VERB is a precondition, and a CHARACTERISED set owes its histogram0 upvotes — vote on app.motir.co
MOTIR-2930(motir-ai) Mirror W6 into `SHARED_PLANNING_RULES` — name what ANSWERED when the address comes from our own config0 upvotes — vote on app.motir.co
MOTIR-2929(motir-meta) W6 — the third limb's other half: NAME WHAT ANSWERED, when the address comes from our own config (`kind-leaf-deepen.md`)0 upvotes — vote on app.motir.co
MOTIR-2692(motir-meta) Land RUNG 1 + GATE 1's rewrites in the written playbook — the second home, or the rules are half-landed0 upvotes — vote on app.motir.co
MOTIR-2491Sweep the `Modal.Body`-bypass class app-wide — measure every `<Modal>` call site that owns no scroll container, fix the ones that clip, and add a guard so there is no fourth instance0 upvotes — vote on app.motir.co
In progress28
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-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-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-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
Done1349
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-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-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
MOTIR-4162(motir-core, manual) Mint `MOTIR_GUARD_TOKEN` — a Motir PAT granted `project:browse` and nothing else — and store it as a repository Actions secret, so the acceptance-lane guard has a credential to bind with0 upvotes — vote on app.motir.co
MOTIR-4147(motir-marketing) The Privacy Policy's §7 data-rights link is a RELATIVE path — on motir.co it is a 404, so the export/deletion promise leads nowhere0 upvotes — vote on app.motir.co
MOTIR-4144(motir-core) The acceptance-receipt STATUS has no read path — `GET /api/work-items/<key>/acceptance-evidence` is 405, so MOTIR-2770's approved-receipt guard fails open and can never fire, credential or not0 upvotes — vote on app.motir.co