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
- 需求
- 4
- 贊同
- 499
- 已規劃
- 4,959
- 已發布
- The load-test generator image does not build: the Dockerfile's K6_VERSION build arg reaches xk6 as its --k6-version flag, so xk6 refuses the version argumentmotir-core's web tier scales horizontally under agent traffic — each added `app` instance adds throughput (~500 req/s per instance, toward ~10k active agents), connections stay bounded, no reader is refreshed, measured first and proven by a re-runnable load test
- A failed planning session whose job saved no conversation is offered Resume that motir-ai always refuses, refuses every new turn, and holds its target at Planning indefinitely
- A planning job motir-ai failed with validation_error is recorded as "the AI provider was unavailable" (model_unavailable)
- An author session cannot write a committed card: the write door requires a `report_findings` checkpoint that the session's tool surface does not include
- The workflow fingerprint reads words inside quoted strings as executables, so a jq filter in motir-ai marks the fleet inventory stale with no tool change
- migrate-nonblocking-index E2E: the Chinese failed-index case reads "queued" after the retry case leaves a real index job running
- A planning session resumed from To resume stays drawn "Resuming…" after its attempt has started, until the reader switches tabs
- (manual) Provide the load-test Fly credential and spend allowance — an org token that can create and destroy the copy apps, their Postgres and their snapshot bucket, stored where the load-test command reads it, with the org's machine limit read and recorded and the spend limit agreed for the single-machine phasesPlanning 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
- A repository's own rules live in its Codebase coding convention — editable, and fed into every `motir run` prompt — while Motir's product rules move into the prompt itself and CLAUDE.md stops being the carrier
- (motir-core) The convention card loses its "Plan with AI" button, and the `convention-refine` launch kind is retired with it
- (motir-meta) plan.py stops handing a repository's CLAUDE.md to planning sessions, and the corpus stops telling sessions to read it
- (motir-core) The run prompt states Motir's product rules that today live only in motir-core's CLAUDE.md — the approval gates, the acceptance-receipt lifecycle, drafts and republishing
- (motir-core) The run prompt tells the agent to read its repository's convention with `get_coding_convention` before building — and stops pointing at CLAUDE.md
- (motir-core) `get_coding_convention` — an MCP read door that returns ONE repository's current convention in full, reachable with a run token
- (motir-core) The convention card on /code is editable — Edit, Save and the conflict state, through a PUT proxy to motir-ai, gated on ai:configure
- (motir-ai) A coding convention can be written by a person — a save endpoint that records an edited version, and a re-derive that never overwrites it
- The run overlay works like the plan overlay, and the runs list names each run's target — a draggable split, a List | Canvas left panel, Close/Esc at top left, wrapped agent output, and a Target column in place of Command and Scope
- Story E2E and acceptance video — /runs naming each target, then a run opened, dragged wider, switched to List, filtered by a card and closed by both Close and Esc, recorded at a pace a person can watch and published to the story
- Story coverage and integration gate — the index's target read plus the overlay's split, wrapping and List | Canvas seams, against the real datastore and the story's coverage floor
- The left pane switches List | Canvas — the run's cards in run order with key, title and leg state read through the run-set contract the canvas already uses, and a row that narrows the Agent output