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
- 597
- planned
- 5,376
- shipped
- Planning bug: a bug card filed mid-run asserted an ORM reader nobody grepped, and promoted that mechanism into two acceptance criteria that cannot be satisfied
- Planning bug: an acceptance criterion quoted durations from a run where the jobs were SKIPPED — a skipped job reports zero, not an absence, and the ceiling it implied would have failed a green run
- MOTIR.md is a live-looking session entry point that `prompts/` superseded — it still tells a context-free reader to read it FIRST, and carries retired mechanisms plus the MOTIR-4965 false claim twice
- (motir-core · cli) The CLI runs the close-out step before the session PR goes ready, and renders the run's HOW TO TEST into the session PR bodyApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The run CLOSE-OUT prompt — a server-assembled prompt that has an agent publish HOW TO TEST on the run target from the run's landed workApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) ADR — amend `approval-gates.md` §9: HOW TO TEST is per RUN, written on the run target, and the PR body keeps its sectionApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-meta) `prompts/verify.md` reads HOW TO TEST from the Story's own run record AND its PR body section — not from per-card recordsApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story E2E + acceptance video — the story's PRs and rich-text How to test as ONE gate block, click-to-copy a command, a child points to the storyApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story vitest gate — per-run rich-text write→read→render seams, click-to-copy, the close-out step, no provisioning, coverage floorApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The Development BLOCK — the ONE approve-to-merge gate's port: PR rows plus the run's rich-text HOW TO TEST with click-to-copy commandsApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-meta) The runbook's how-to-test rule — the PR body KEEPS its section, and the run publishes HOW TO TEST on its RUN TARGET before it finishesApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The dispatch prompt OWES it — the run target publishes a rich-text How to test (commands in code blocks) before `implemented`, and the PR body carries the same sectionApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The HOW TO TEST read — per run target: the run's rich-text body, and per repository its pull request, fetch command, preview and checksApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) GitLab preview URLs too — its deployment events feed the same normalized recordApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The agent WRITES it — `publish_test_instructions` on the RUN TARGET, a rich-text body over MCP, once per run, on `work_item:edit`Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Preview URLs are INGESTED — GitHub `deployment_status` stored against the commit it deployedApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The How-to-test RECORD — one per RUN on the run target, its content a rich-text body, a section per repositoryApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) At ~400px a Development-section pull-request row shows one or two characters of its title — its pills never shrinkApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- HOW TO TEST is the RUN's deliverable — written by the agent onto the RUN TARGET before the run finishes, kept in the PR body, rendered where the decision is madeApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story E2E (Playwright) + acceptance video — a manager opens Approvals, reads what each merge mode does, changes it, and a member who cannot manage is refused the roomApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join