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
- 583
- planned
- 5,170
- shipped
- (motir-core) ASSIGNEE FROM THE MONITOR — a provider-side assignment becomes the bug's assignee by email match, on every reconcile visit and a bounded per-poll refresh of open links; team or unmatched is a recorded no-opProduction 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 LOOP GUARD — the reconciler treats an issue Motir itself resolved, and has not seen since, as already reconciled, so resolve → poll never re-files or mutates the bugProduction 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) RESOLVE BACK — a bug reaching a done-category status resolves each linked issue once, as a job off `work-item/transitioned`; a failure lands on the connection, and a deleted issue says so on the cardProduction 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 provider seam reads ONE issue and its ASSIGNEE — `getIssue`, the normalized assignee on every issue, a deleted issue as a typed answer on read and resolve, and the fake honours all threeProduction 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 sync STORE — the connection's two direction switches and last sync failure, and each `monitor_issue` link's resolve record and last-synced assignee, with its migration and repositoriesProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- Fixing the bug closes the error — resolution and assignee sync back to the monitor, configurable per directionProduction 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) An ON Switch's track is under 3:1 against the page in the amber, citrine and candy light palettes — `--el-switch-on` on `--el-page-bg` is 1.80 / 1.47 / 1.57:1
- (motir-core · design) `motir fix` BESIDE *Queue again* on an ejected card — which one to use, and the card badge reusing *Checks failing* — a delta of `github--fix-callout.mock.html`Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) DELETE the repository sub-block from How to test — the read, the DTO, the block and both catalogsApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The Switch primitive's OFF knob is invisible against its own track — `--el-switch-knob` on `--el-muted` is 1.01:1 light and 1.00:1 dark, where WCAG 1.4.11 needs 3:1
- (motir-core · design) github--how-to-test-form.mock.html opens with a stray <p> BEFORE <!doctype> — the board renders in quirks mode
- (motir-core) A design card with an open pull request shows TWO rows in To approve — the queue lists every `awaiting` gate, so the design gate AND the merge gate it carries each appear, count twice, and the merge row can be pressed on its own
- (motir-ai) The DB-backed lesson suites run an O(corpus) seed under vitest's 5s DEFAULT — 299 rows, one embedding round-trip each, and the corpus only grows
- (motir-meta) The close-out sweep's "fully contained in `origin/main`" test reads MERGED for a branch with NO commits — a sibling's freshly-cut worktree looks exactly like finished work
- (motir-core) `publish` accepts a record with NO repository sections — `repos` becomes optional on the service and the MCP door, so a person can save How to test with only a bodyApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) `MarkdownEditor` keeps a code block's LANGUAGE — typed, shown, changed and saved as the fence an agent writes, so a person's rich text is the agent's rich textApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story E2E + acceptance video — write How to test with NO pull request linked, link one and watch the repository appear, Edit it, see Earlier versions; a viewer and a child see no doorApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) Story vitest gate — a person's save and an agent's publish write ONE record shape: rich text with fence language, preview path, author, history of both kinds, the three refusals, the lockApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The DOORS and the FORM — Add / Edit in the Development block, a body and a preview path, saved through `publish`, en + zhApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The read carries the AUTHOR — `HowToTestDto` names a run or a person on the current record and every history rowApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join