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
- 505
- planned
- 5,043
- shipped
- (motir-core · design) The CONFLICTED approve-to-merge gate BEFORE any press: withdrawn with a `conflict` cause and `motir fix` on the item page, gone from To approve live, learned by an open overlay, and the conflict refusal at the press. A delta on §28 / §29Self-improvement — auto-reported quality bugs
- (motir-core, manual) Revoke the `MOTIR_GUARD_TOKEN` PAT and delete the repository secret — MOTIR-5874 removed its last readerApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-meta) W7 — a lifecycle VERB in a criterion is a precondition: name the shipped operation that performs it (`phase-author.md`, ACTION-SUBSTRATE limb)Self-improvement — auto-reported quality bugs
- (motir-ai) Carry W6 to the shipped planner — a running-system claim reaches it SECOND-HAND, so its check names what answered and ABSENCE never premises a criterionSelf-improvement — auto-reported quality bugs
- (motir-core) A pull request merged ON GITHUB hides itself from its card — the approve-to-merge gate is withdrawn, never re-raised, and the withdrawn frame replaces the Development block, so a done card shows "Motir asks again when every check is green" instead of its merged pull requestApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core · design) THE CHOICE PORT — N option rows each with its WHY on a named axis, the verb band as the options plus None-of-these, the defect state, the read-only state, the stamped record with the follow-up owed, and the `choice` type chipApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The acceptance gate is raised the moment a receipt is published, in both run shapes — a red story run and an unmerged E2E subtask both show an acceptance "To approve" row that must not exist yet
- (motir-meta) W6 — the third limb's other half: NAME WHAT ANSWERED, when the address comes from our own config (`type-runtime.md`)Self-improvement — auto-reported quality bugs
- (motir-core) Two supervision passes racing on one run BOTH advance under CI load — `supervision-driver.test.ts:359` reads `pollNumber` 2 where the FOR UPDATE re-read should hold it to 1
- (motir-core) The MARKER on /items List and Tree rows — the list read, the filtered static tree and every lazily-loaded tree level ask the one read once and draw it in the status column (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core · test) Story E2E + ACCEPTANCE VIDEO — the routed member sees the loud marker on the board, the list and the item page and follows it to the gate; another member sees the quiet one; deciding clears it (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core · test) Story VITEST gate — the three marker states agree across the board, list, tree and item-page reads and the To-approve tab, the query count does not grow with rows, and coverage over the changed surfaceApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The ITEM PAGE's header says a decision is waiting — on you or on someone else — and pressing it takes you to the gate's section (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The MARKER on board cards — the shared marker component, loud when the decision is yours and quiet when it is someone else's, and the Awaiting-acceptance pill and its batch RETIRED into it (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) ONE READ says which decision is waiting and on whom, for a SET of work items — the To-approve predicate's pieces called not restated, one batched query per call, carried on the board card and the moved cardApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- You can TELL a decision is waiting the moment you land — the indicator on the item page, the board card and the list rowApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The story's E2E — a fake Sentry issue becomes a bug whose card shows both authored axes, an `## Acceptance criteria` section, a `## Context refs` naming a real file and a sizing; a code-blind project files one that says refs could not be resolved — recorded as the acceptance videoProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- (motir-core) The story's VITEST gate — the coverage floor over the enrichment surface, the file → dispatch → land seam on real Postgres against a faked motir-ai, and the guards coverage cannot seeProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- (motir-core) The authored answer LANDS on the bug — both bodies, type, executor and sizing written as the binder with `ai_draft` provenance, idempotent on the issue link, never over a human edit, and every refusal leaves the bug filed and unenrichedProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- (motir-ai) The story's VITEST gate — the coverage floor over the authoring surface, the tool session driven against a fake graph over a NAMED fixture set, and the guards coverage cannot seeProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back