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
- 贊同
- 518
- 已規劃
- 4,959
- 已發布
- (motir-ai) Story INTEGRATION gate — coverage floor on every `coverage:*` lane, plus the seam: a walk (gateway mocked) against a stubbed registry authors leaves through the sections interface only, and changing the stub's set changes what the author tool requires
- (motir-meta) Story gate — every runbook guard green at base stays green (MIRROR checks, `plan.py`'s tests), and a check shown red at base proves no composed prompt still tells a planner to compose a section heading instead of sending the section
- (motir-core) Story E2E — a card written through the sections interface and a hand-written card show the same text on the item page and in the plan review overlay as before, and the description editor still edits free text
- (motir-ai) `SHARED_PLANNING_RULES` teaches the sections interface — every rule that tells the hosted planner to write a `## ` section names the section it sends instead, and the motir-meta mirror stays in step
- (motir-core) Story INTEGRATION gate — coverage floor on the changed surface, plus the seams: sections → render → `splitPlanBody` / `acceptanceCriteriaTexts` read the same sections, a `| `-gutter section hides nothing, parse ∘ render round-trips without losing text, a hand-written body is never rewritten, and validation names a missing section on read
- (motir-core) An OPTIONAL parsed sections view on read — `get_work_item` and `get_plan` return the body parsed into sections on request, with the free-text body always returned unchanged
- (motir-core) VALIDATE by parsing on read — `validate_plan` and `validate_work_item` parse the body against the registry and report a missing required section by name
- (motir-core) The WORK-ITEM doors take an OPTIONAL sections input for agents — `create_work_item`, `update_work_item` and the v1 write pair check and render it into `descriptionMd`; a plain `descriptionMd` write is unchanged
- (motir-core) The PLAN doors take an optional sections input — `add_plan_items`, `update_plan_item`, `update_plan_proposal` and the internal plan-proposals route check the required sections, refuse a missing one by name, and render them into the free-text `descriptionMd`
- (motir-core) SERVE the registry — an internal AI route motir-ai reads and a read on the MCP / v1 contract, both returning the section sets by kind × type
- (motir-core) PARSE a free-text body into sections on read — the inverse of the renderer, naming the sections found and the ones missing, never losing text and never writing
- (motir-core) RENDER sections into `descriptionMd` — one pure renderer the doors call on write, emitting the exact headings `splitPlanBody` and `acceptanceCriteriaSpan` match today
- (motir-core) The section-set REGISTRY — one module defining the leaf core, the per-type extras and the container sets, with which sections each kind × type requires
- motir-ai has no DELETE /v1/jobs/:id, so core cannot cancel a planning job it gave up on and the job can still start later against a failed session
- A machine suspended inside a scale-out transaction holds its pool's advisory lock, so every other machine's scale-out for that pool waits forever (planningPoolSplit e2e case 3 flakes on main)
- (motir-core) Design — the Codebase page's convention card becomes editable: edit and save per repository, who edited it, the version conflict, and a derived update waiting beside a person's text
- A plan job submitted while the planning pool has free slots can sit queued for an hour: a failed submit hand-off to a planning peer is never retried, and the job's token expires before it runsPlanning 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
- `likely-self-blocking-design` reads "mocks <module path>" as a design asset — a test card that names the module it mocks is reported as its own design blocker
- headroomScaling e2e case 3 intermittently sees 15 running jobs instead of 16 at the pool bound
- Planning bug (both planners): the closing validity re-open treats an active blocker OUTSIDE the plan as "not finishable" and orders the session to fix it, so the planner drops a real precondition edge