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
- 142
- planned
- 1,379
- shipped
Submitted0
Planned123
MOTIR-4300(motir-core) Story vitest gate — the coverage floor over the story's changed surface, the three boundary guards proven to bite by mutation, and the whole solution type-checked at the default heap0 upvotes — vote on app.motir.co
MOTIR-4299(motir-core) Extract `lib/orchestrator` as `@motir/orchestrator` — the port, both adapters and the fake move to `packages/orchestrator`; its three outward imports become injected ports; own tsconfig in the solution, own CI lane, and the guard that no package imports the app0 upvotes — vote on app.motir.co
MOTIR-4297(motir-core) The ADR — motir-core as an app shell over workspace packages: the package contract, the import-direction rule, the measured coupling of every `lib/*` module, and the extraction order it implies0 upvotes — vote on app.motir.co
MOTIR-4296(motir-core) The Prisma type boundary — the generated client's payload and input generics are named only under `lib/repositories/**`, asserted by a source-scan guard, and the sites outside it move onto repository-exported row types0 upvotes — vote on app.motir.co
MOTIR-4295(motir-core) Profile the checker and pay down its top cost sites — explicit row types on repository reads, so a caller instantiates no Prisma payload; the file at the top of the trace stops being there0 upvotes — vote on app.motir.co
MOTIR-4294(motir-core) The heap-headroom tripwire — the `TypeScript` job reads every project's `Memory used` and fails at 80% of the heap it runs under, so the next cliff is seen coming0 upvotes — vote on app.motir.co
MOTIR-4293(motir-core) Split the one `tsc` program into project references — an app project `next build` reads, a tests project and a scripts project under one solution file, and the heap bump leaves the `typecheck` script0 upvotes — vote on app.motir.co
MOTIR-4292(motir-core) One type-check program becomes many — project references, a contained Prisma type boundary, and the first bounded context extracted as a workspace package0 upvotes — vote on app.motir.co
MOTIR-4278The settings pane never shows the DNS record that POINTS a custom domain at us — only the ownership TXT0 upvotes — vote on app.motir.co
MOTIR-4276Planning bug: MOTIR-4201 was sealed at 13 points carrying its own split instruction — three signals agreed at authoring time and the gate fired a day later, at dispatch0 upvotes — vote on app.motir.co
MOTIR-4275Planning bug: an INTERIM card pair outlived the window it was written for — nothing walks back from the superseder's merge to the cards it makes pointless0 upvotes — vote on app.motir.co
MOTIR-4273Planning bug: a criterion named a consumer that was PRESENT but UNREACHABLE — `situations/replan.ts`'s partition had been dead since MOTIR-39780 upvotes — vote on app.motir.co
MOTIR-4272Planning bug: a story's four children each excluded the client half, and the exclusion pointed at a card that did not exist0 upvotes — vote on app.motir.co
MOTIR-4271Planning bug: MOTIR-4165 counted the catalogue at 39 by reading a number out of a comment, and generalised a four-tool sample to "one tool"0 upvotes — vote on app.motir.co
MOTIR-4268Planning bug: an advisory disposition that CLAIMS an edge is wired names a different card than the advisory does — MOTIR-4252 was held by 4238 while the advisory pointed at 4254's PR0 upvotes — vote on app.motir.co
MOTIR-4267Planning bug: a decision rule that A/Bs two configurations across a TIME GAP owes a workload control — MOTIR-3963's pre-committed rule fired REVERT on an 18% suite growth, not on a result0 upvotes — vote on app.motir.co
MOTIR-4265Planning bug: MOTIR-4242 asserted "motir-core has no public-host accessor" from a grep for the literal host — the accessor exists and deliberately never spells it0 upvotes — vote on app.motir.co
MOTIR-4262Planning bug: MOTIR-4258 asserted every action on the row survived elsewhere, and wrote an acceptance criterion requiring a door it never checked existed — the ⋯'s Expand / Re-plan had none0 upvotes — vote on app.motir.co
MOTIR-4259Planning bug: a row inventory over a prettier-wrapped HTML design asset was taken with a line-oriented grep, so MOTIR-4248's evidence table under-read one asset by two rows0 upvotes — vote on app.motir.co
In progress19
MOTIR-4229(motir-core) The Public address pane, part 2 — the custom-domain list: add with DNS instructions, verify, every certificate state, make primary, remove, the tier upsell; en + zh0 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-4225E2E (Playwright, motir-core) + acceptance video — claim a subdomain, add a custom domain, watch its certificate states, make it primary, rename and keep the old address redirecting0 upvotes — vote on app.motir.co
MOTIR-4223Vitest gate (motir-core) — the address store and services, the certificates adapter and job, the host-resolution contract, and the widened CORS / return-target0 upvotes — vote on app.motir.co
MOTIR-4221(motir-core) The Public address pane, part 1 — the rail entry and its doors, the pane shell, and the workspace subdomain card: claim, rename with the retained-alias warning, copy and open; en + zh0 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-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-4050Two green PRs can merge into a red `main` — nothing requires a branch to be up to date, so a stale check decides the merge0 upvotes — vote on app.motir.co
MOTIR-3937The planner has no OPERATIONS — every session is a cell, and the conversation decides when to start0 upvotes — vote on app.motir.co
MOTIR-3878Customer-owned addresses for a public project — per-tenant subdomains + custom domains0 upvotes — vote on app.motir.co
MOTIR-3875Motir's public web presence — one host per audience, and an open-core line through motir-core (motir.co · app.motir.co)0 upvotes — vote on app.motir.co
Done1365
MOTIR-3999Cut `design-system-v0.1.3` — push the tag on the merge commit, watch the release lane, and pull the tarball anonymously0 upvotes — vote on app.motir.co
MOTIR-3998Nothing in the guard tier can SEE a material leak — the cascade model skips every combinator by construction, so the style axis needs a rendered isolation guard0 upvotes — vote on app.motir.co
MOTIR-3997Move the style axis's 69 material rules under `@scope (…) to ([data-style])` — and re-point `styleRegistry.test.ts`'s parser, which cannot survive the move0 upvotes — vote on app.motir.co
MOTIR-3996(motir-marketing) Re-pin `@motir/design-system` to 0.1.2 — ten palette tiles resolve ten accents on `/design`, light and dark0 upvotes — vote on app.motir.co
MOTIR-3995(motir-core) Bump `@motir/design-system` to 0.1.2 — the commit `design-system-v0.1.2` is cut from0 upvotes — vote on app.motir.co
MOTIR-3992Planning bug: MOTIR-3965 put a human MERGE between two of its own acceptance criteria — a release authored as one card, sized for the publish alone0 upvotes — vote on app.motir.co
MOTIR-3991The base palette's `done` status dot is 2.93:1 on the card it sits on — the second ink under 1.4.11's 3:1, and the one that rides a Tier-0 semantic three other families spend0 upvotes — vote on app.motir.co
MOTIR-3990The public contract reaches TOTALITY — the remaining nine operations, and a coverage guard that fails on a route with no declaration0 upvotes — vote on app.motir.co
MOTIR-3989(motir-core) The release lane's digest-table commit is SKIPPED by an unawaited `$GITHUB_OUTPUT` write — `cli-v0.4.0` was the first release to exercise MOTIR-2699's automation and it silently recorded nothing0 upvotes — vote on app.motir.co
MOTIR-3985`design/marketing/**`'s board CHROME fails AA at 54 sites — and the assets assert it is exempt, in a repository whose sibling decided the opposite and shipped the guard0 upvotes — vote on app.motir.co
MOTIR-3984motir.co's footer ships `--el-text-muted` on `--el-surface-soft` — 4.34:1 on EVERY page of the site, and `aaMatrix`'s PAIRS carries that ink against the card but not against the band0 upvotes — vote on app.motir.co
MOTIR-3965Cut `design-system-v0.1.2` — push the tag on the merge commit, watch the release lane, and pull the tarball anonymously0 upvotes — vote on app.motir.co
MOTIR-3963(motir-core) Does twelve Vitest legs actually beat eight? Sample the next `main` runs and settle it — the mean halved but the WORST leg did not, twice out of three0 upvotes — vote on app.motir.co
MOTIR-3954The base palette's `implemented` status dot is 2.66:1 on the card it sits on — under 1.4.11's 3:1, and the guard that would catch it skips the base palette by construction0 upvotes — vote on app.motir.co
MOTIR-3951motir-core stops serving public pages — delete app/(public), its 21 components and its Server Actions, and retire the page-facing service surface0 upvotes — vote on app.motir.co
MOTIR-3950(motir-core) Turn the Vitest leg count 8 → 12 — the dial MOTIR-3912 deferred until the balanced lane had been measured, which it now has0 upvotes — vote on app.motir.co
MOTIR-3947Scoped design previews are not ISOLATED — 69 `[data-style='X'] <descendant>` material rules cross the nesting boundary, so 10 of 11 style previews wear the ancestor's style0 upvotes — vote on app.motir.co
MOTIR-3946The public read surface gets its OWN versioned contract — same machinery as v1, its own version, document and drift guard (the spine + the three core reads)0 upvotes — vote on app.motir.co
MOTIR-3945The public project SUBJECT gets a route — app/api/public/p/[identifier], the one endpoint the page's own subject has never had0 upvotes — vote on app.motir.co