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
- 5
- richieste
- 4
- voti
- 371
- pianificate
- 4150
- rilasciate
- (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
- (motir-core) The ENRICHMENT trigger and its dispatch — a job detached from the filing commit assembles the issue facts, the event's frames and the project's code context, and submits ONE `author_bug`; unconfigured or ineligible dispatches nothing and throws nothingProduction 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 GROUNDED read — `author_bug` resolves frames and culprit to real files through the project's code graph within a bounded tool budget, and an unindexed project DEGRADES to both axes from the error alone, saying soProduction 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 `author_bug` JOB and its TYPED ANSWER — the envelope contract, the hypothesis-discipline prompt, and a structured result carrying both bodies, the sizing and the refs, with no plan deltaProduction 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 the latest event's STACK FRAMES — `getIssueContext` returns the exception frames beside environment and release, bounded and in-app first, and the fake honours itProduction errors become planned work — a monitor connects, its issues arrive as bugs in a container the project chooses, and fixing one closes it back
- A filed bug arrives PLANNED, not as a stub — both content axes, a sizing, and context refs resolved against the code indexProduction 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 RE-ASKED merge gate's record band is missing its first line — *Approved earlier by {name} · {date} · {count} commits — not merged* — because no read on the item page carries the previous DECIDED gateApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) The acceptance-lane guard no longer reads the product (MOTIR-5872), but its credential stack is still wired — a production PAT in the main Vitest job's env, a binding declaration, and ~1,000 lines of tests for a read nothing makes
- (motir-core) One of a card's pull requests merged ON GITHUB and the merge question is NEVER asked again about the ones still open — a merged member blocks the re-ask for ever, so the rest can only be merged on GitHubApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (manual) RUN the un-landed-card convergence on PRODUCTION after the re-ask story deploys — dry run, read the four counts, apply, re-run dry, and record all three with one card per population read backApproval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core · design) STATE G KEEPS THE RECORD — a withdrawn merge gate draws its PR rows and How to test beside the withdrawn sentence, the sentence follows supersededCause, and a merge made on GitHub with no Motir decision is drawn (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join
- (motir-core) An APPROVED acceptance receipt freezes the STORY, not just the recording — a card that comes back to in-flight can never record again, and the lane guard then evicts a spec whose feature is still live. The DESIGN gate already does this correctly
- (motir-core) A Resend DAILY QUOTA is retried as a transient blip, and notification mail shares that quota with password-reset mail — a watcher burst dead-lettered 277 sends and could have starved auth mail
- (motir-core · design) THE DECISION-WAITING MARKER — yours vs someone else's on the board card, the list/tree status column and the item-page header, where it takes you, and the Awaiting-acceptance pill it replaces (en + zh)Approval gates — every decision that holds work up happens IN Motir, behind ONE approve language new kinds join