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
- 4,776
- shipped
- Planning bug (hosted planner): answer_recommendation counts a requirement's recommendations by LINE, so five recommendations numbered inline "(1)…(5)" on one line count as one. Every verdict on 2–5 is refused and never reaches the briefing
- Two planning pools split by job kind: the conversation pool claims ask_project, sharpen_turn, guide_work_item, author_bug and the other kinds the decision's table places there, the planning pool claims plan, plan_sprint and the rest, so a chat turn never queues behind a planning runPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) Story e2e: two workers, one per pool, on one database — planning slots filled with long plan jobs, an ask_project is claimed by the conversation worker within one claim tickPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) Story coverage and integration gate for the pool split — coverage floor on the changed pool, claim and deploy code, the claim→count→snapshot seams against a real database, the kind-table totality guardPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) Each pool sees only itself — poolSnapshot counts and lists only its own pool's jobs and machines, the full-pool resume and the peer wake pick same-pool machines, the exhausted alert names its poolPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) pnpm deploy:planning builds both pools — each pool's count from its own template, retire and destroy per pool, refuse to leave a pool at zero, fly config states each pool's countPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) A worker reads its pool at boot and claims only that pool's kinds — CLAIMABLE_QUEUED_PREDICATE gains the kind filter, countClaimableQueued agrees per pool, no pool set claims every kindPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) docs/decisions/code-graph-service.md gains AMENDMENT 2 — the two pools, naming the decision page and amending items 5's Count, 7 and 8Planning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- (motir-ai) One kind → pool lookup, total over every registered job kind, an unlisted kind resolving to the planning pool, and no concurrency key shared across poolsPlanning capacity follows demand — a conversation turn never waits behind a planning run, the planning machines and the graph service grow and shrink on their own, and a load-tested cost ceiling is the only fixed limit
- The sharpen_turn ask step returns no usable turn on the planner model, so Grill me never asks a question — cause not yet read
- Planning bug (both planners): a branching leaf can be added or authored with no target repository. Neither planner's completeness check requires one, so the card reaches approval with nowhere to dispatch
- Planning bug (hosted planner): an author session whose walk_position frame fails to append is silently dropped. The card gets no session, no failure is recorded, and the plan ships it as a bare title (MOTIR-7738's plan lost 7 of 16 cards)
- Decision — the API reference on motir.co is one page per operation with a hub per resource, and no 300 KB budget
- Planning bug (hosted planner): the briefing's section 5 reads "none" over title-only cards. It names a card "Not authored" only when its session FAILED, so a card that never got a session is invisible though the walk report already knows the level is incomplete
- Design — the list and board title surfaces: a per-surface Show original switch, a per-title translating state that does not resize rows, and one no-credit noticeMotir in eleven languages — app.motir.co and motir.co in en·zh·ja·ko·de·fr·es·it·nl·pl·pt, per-language font sets, and work content in an org content language with per-user translation
- Design — the Auto-translate work content setting in Settings → Project, with the change read backMotir in eleven languages — app.motir.co and motir.co in en·zh·ja·ko·de·fr·es·it·nl·pl·pt, per-language font sets, and work content in an org content language with per-user translation
- Design — the work content editors name the language the stored original is written in: the edit form's title, description and explanation, and the item page's to-do text and notesMotir in eleven languages — app.motir.co and motir.co in en·zh·ja·ko·de·fr·es·it·nl·pl·pt, per-language font sets, and work content in an org content language with per-user translation
- Design — the work item page and quick view reading in the reader's language unpressed, with the machine-translation marker and Show originalMotir in eleven languages — app.motir.co and motir.co in en·zh·ja·ko·de·fr·es·it·nl·pl·pt, per-language font sets, and work content in an org content language with per-user translation
- Decision — motir-marketing is a BUILT site: nothing renders per request except the live public surface, and the machines are sized for that alone
- Docker inside a fleet runner cannot unpack image layers ("failed to convert whiteout file … operation not permitted"), so every services: container and buildx step fails on the fleet