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
- 562
- planned
- 5,451
- shipped
- (motir-core · design) An un-declared PLAIN class is unmeasured in every direction — 4419 occurrences across 46 mocks, and the predicate that would report them cannot tell a utility from an icon library's identity class
- (motir-core) `item-detail-reads`'s `gate` is ONE module-level promise resolved by the first `afterEach` — so from case 2 on `deferred` IS `immediate`, and the "actually concurrent" assertion cannot fail
- (motir-core) The code-context design still draws the button and the connect row that MOTIR-1768's re-scope moved OFF the page — and §3 instructs a re-point that would break a member's door
- (motir-ai) The SHIPPED planner still cannot propose a repository SET — `MODIFY_PATCH_KEYS` and the `author` field set carry only the singular `targetRepo`
- (motir-core · design) The correspondence guard's `isArbitrary` predicate cannot see a PLAIN inert variant — 93 occurrences survive direction (A) reaching zero, on the argument that a mock inherits a stylesheet it does not have
- (motir-core) A repository SET cannot be PROPOSED — every plan-authoring door takes only the singular `targetRepo`, so a multi-repo card must be patched after approval
- (motir-core) The acceptance-lane guard fetches one story at a time, SEQUENTIALLY, against app.motir.co inside a 15 s timeout — so it gets slower with every acceptance spec and now reds the merge queue
- (motir-core) `item-detail-reads`'s FIRST case pays the whole page module graph — 4.2 s of a 15 s budget — and a case that times out leaves its page call in flight, consuming the NEXT case's `mockResolvedValueOnce`
- (motir-core) `item-detail-reads` holds two sibling assertions about the same property that tolerate DIFFERENT read sets — one is order-dependent and fails only under full-suite load
- (motir-core) The ORG inventory lists a repository MOTIR HOSTS as the organisation's, unmarked — and its `Disconnect` sends the reader to an installation the repository is not in
- (motir-core · design) The two COMPILED-build mocks carry 1128 dead rules — decide whether machine output is excused by a predicate or swept like the rest
- (motir-core) The E2E SESSION HELPERS — `signUp` settles on the onboarding entrance and `createFirstProject` is retired, fixed AT THE HELPER for all ~15 specs that go through them
- (motir-core) Amend `docs/decisions/home-scope.md` §2.2 and §2.3 ON THE RECORD — the premise both reasoned from is the thing this story removes
- (motir-core) The 47 `getActiveProject()`-null `EmptyState` branches across `app/(authed)` and `app/(onboarding)` — each dispositioned, with its en + zh keys
- (motir-core) Retire the SHELL's own no-project states — `ProjectTier`'s create-first door, the `hasProject` gates it feeds, and the `design/shell` asset that draws them
- (motir-core) Retire the two `ProjectsEmptyState` SCREENS and the component itself, with the guard that no `app/(authed)/**` call site can come back
- (motir-core) A newly REGISTERED reader lands on `/onboarding` — composed in `lib/navigation/landing.ts`, sign-IN unchanged
- (motir-core) `ensureDefaultProject` — the WORKSPACE-tier seam that makes "you are always in a project" true at every zero-project moment, not only at registration
- 8.88 (motir-core) YOU ARE ALWAYS IN A PROJECT — seed a default project at the WORKSPACE tier, land a new registration in `/onboarding`, and retire every no-project surface
- (motir-core) Four shipped components animate on open — except nothing in the repository generates `animate-in` / `animate-out` / `fade-in-0` / `fade-out-0`, so every popover, tooltip, toast and sidebar panel appears instantly