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
- 贊同
- 535
- 已規劃
- 4,982
- 已發布
- (motir-core · test) E2E and acceptance video — a scripted MCP client claims a card, starts its run, records a three-point discrepancy and closes it delivered; the run modal's findings strip shows the discrepancy row beside a filed bug, and its door opens the card's comment listing all three points
- (motir-core · test) Story integration gate — `record_run_discrepancy` over the real database on a CLI leg, an agent-reported leg, a parent run's child leg and a card with no open leg; one record per leg with three points; pointer-only data; the `CLI_TOKEN_GRANT` call; refusals; the prompt's two branches in both lanes; the coverage floor
- (motir-skills) The `motir-run` skill's standalone mode builds through a wrong HOW — the same WHAT test, BUILD THROUGH with `record_run_discrepancy` and the missing-record line, STOP and its fallback unchanged, regular bugs unchanged; `SYNC.json` re-hashed against the changed `run.md` sections
- (motir-meta) `run.md` teaches BUILD THROUGH beside STOP — one test on the WHAT ahead of THE RUN-FOUND CONDITION; the falsified-premise rule, guard #4, THE REPLAN ACTION's triggers and the parent run's step 4 route a wrong HOW to a build-through recorded with `record_run_discrepancy`; non-plan guards still stop; `_shared.md`'s door table gains the row
- (motir-core) `RunFindings` renders a `discrepancy_recorded` event as its own row — the designed marker, label and point count from the pointer-only data, opening the card's comment, in the run's own order beside bugs and plans; its i18n strings and component tests
- (motir-core) The dispatch prompt's card-is-wrong steps split in two, in both lanes — `cardIsWrongSteps` asks the WHAT test first; BUILD THROUGH builds to the WHAT, calls `record_run_discrepancy`, states the deviations in the PR description and says when the record is missing; STOP keeps today's comment, `report_unbuildable_target`, park and re-plan
- (motir-core) The `record_run_discrepancy` MCP tool — a transport over `recordDiscrepancy`, gated `work_item:edit` so a `CLI_TOKEN_GRANT` agent and a `motir-run` skill session can both call it, its acknowledgement-only answer, its registry entry and `docs/mcp.md`
- (motir-core) `runDiscrepancyService.recordDiscrepancy` — validate one-or-more points (plan asked · built · why), write ONE comment on the card, and record a `discrepancy_recorded` finding on the card's open leg with pointer-only data; the `DispatchEventKind` member and its migration, the DTO, `findFindingOnRun`, one record per leg
- A new sign-up's first project is named with a generated placeholder like quiet-harbor-4821 — the identifier and slug derived from it, a redraw on collision — instead of the workspace's name, and it can be renamedOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- Apply the word-list review's verdict — replace every word or pair the human review rejected, and re-run the list checksOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- E2E with a paced acceptance video — a fresh sign-up lands in a generated-name project while the onboarding entrance shows no project name, a second sign-up gets a different name, the rename keeps the key, the name survives a language switch, and a person-named project keeps its nameOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- Story integration and coverage gate — the seeded name read back through the resolver, the retained idempotency guard, and the rename that leaves the identifier, the slug and every work-item key intactOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- A colliding seeded identifier or slug draws a fresh generated name, and an exhausted draw still completes with the name plus the shipped numeric suffix and a recorded warning; IdentifierCollisionError stays only for a workspace where every suffixed candidate is also heldOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- The seeded default project is named from the generator — identifier and slug derived from that name by the shipped helpers, on every zero-project doorOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- The committed word lists and the pure name generator — one English list used in every locale, injectable randomness, and a lowercase hyphenated adjective-noun-number name (the number four digits, 1000–9999) from at least 100 × 100 combinationsOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane
- A manual card's Waiting on you question survives a re-plan that rewrites it and blocks it — the `manual_work` gate is never reconciled, so the person is asked to mark done a card they cannot start, against a stale stamp
- At the narrowest plan-review split the canvas's live pill crushes the breadcrumbs to one letter
- Planning bug (both planners): a story's body can silently narrow its own title, and every card below is then laid and authored against the narrowed scope as if it were the requirement
- Enter on a canvas card's View button does not open the quick view: the card's own Enter handler cancels it
- Human review of the generated project-name words — read the prepared sheet and judge every word and every flagged pair for offensiveness, tone and spelling in the languages the app ships, then record one verdictOnboarding that matches motir.co — the Motir look and "vibe the project" voice, a GitHub connect that does not lose you, no waiting on the index, a generated first-project name, and import proven against real Jira, Linear and Plane