Skip to content

moooon

Motir

Vibe your whole 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
1
requests
0
upvotes
145
planned
1,361
shipped

To Do95

MOTIR-11288.10.1 Decision — launch shape + what Motir exposes publiclyMOTIR-1465Captured planning-mistake bugsMOTIR-1676Plan in JiraMOTIR-2336Decide the shape axis's DENSITY SCALE — what padding / height tokens exist, so the own-box escapes have somewhere to goMOTIR-3911Repoint the motir.co apex, issue the certificate, and update every external registration (manual)MOTIR-4087(motir-ai) Retire the limb from the PACK and the SEEDED LESSON — one repo, two channels, and the lesson needs a migrationMOTIR-4088(motir-meta) Retire the limb from `plan-rules/phase-skeleton.md` — the RUNBOOK planner's copyMOTIR-11568.3.9 Early directory listings — G2 / Product Hunt / GitHub (manual)MOTIR-22678.3.8 Trademark clearance search for the Motir brand mark (classes 9 + 42)MOTIR-673Epic 9: Native AI coding (hosted agent execution)Children are not public.MOTIR-11048.10 Take Motir public — the build-in-public launchMOTIR-4101content/legal/ LEAVES motir-core — the live-gate confirmation, the deletion and its 84-file sweep, and the guards that assert the absenceMOTIR-4126Design — interim /explore project-card state while public /p/* destinations are unavailableMOTIR-4247(motir-marketing) `design/legal/` draws a `/legal`-scoped 404 room that nothing renders and that the site-wide not-found supersedes — a second 404 design waiting to be builtMOTIR-726Epic 10: Platform administration & operationsChildren are not public.MOTIR-1464Planner self-improvement — auto-reported quality bugsMOTIR-1675Plan in other PM softwareMOTIR-2335The own-box PADDING / HEIGHT axis of the shape swap — decide the density scale, then route the 447 escapes onto itMOTIR-2491Sweep the `Modal.Body`-bypass class app-wide — measure every `<Modal>` call site that owns no scroll container, fix the ones that clip, and add a guard so there is no fourth instanceMOTIR-3580The token-permission picker's design asset is THREE rows behind its measurement — re-measure the two-column split, or say the numbers are no longer drawnMOTIR-3759(motir-core) The code-graph refresh costs ~35 minutes to re-derive a graph that measures 32 seconds — index ONCE per repo, and reach `codegraph sync`MOTIR-3967Cut the FIRST release through the Changesets lane and prove all three packages are obtainable anonymouslyMOTIR-423418 (motir-core) The same opaque shell canvas masks FOUR more styles — glassmorphism, aurora, cybercore and retrofuturism paint a `body` atmosphere the signed-in shell covers, and neumorphism's moulded field never reaches it eitherMOTIR-42523D / Immersive's plane ladder gains the SHELL — draw the chrome (top bar + rail) as a depth surface, and close the ladder over every surface class instead of an enumerated fewMOTIR-4253(motir-core) 3D / Immersive never treats the app shell CHROME — the top bar and rail render byte-identically to the default style, so the frame around the floating cards is flat and the style does not read as differentMOTIR-2115WATCH — DeepSeek V4-Pro official release: re-verify the planner's DEFAULT model (pricing, id, the tool_calls workaround, Responses support) when it shipsMOTIR-2692(motir-meta) Land RUNG 1 + GATE 1's rewrites in the written playbook — the second home, or the rules are half-landedMOTIR-2929(motir-meta) W6 — the third limb's other half: NAME WHAT ANSWERED, when the address comes from our own config (`kind-leaf-deepen.md`)MOTIR-2953(motir-meta) W7 + W7b — two `phase-deepen.md` widenings: a lifecycle VERB is a precondition, and a CHARACTERISED set owes its histogramMOTIR-2962(motir-meta) W8 — the INWARD limb of a decision's close-out: an ADR's own *Consumed by* list is the worklist (`core.md` + `run.md`)MOTIR-2987(motir-meta) W9 — a defect card's MECHANISM owes the DISCRIMINATING measurement, and that measurement is the FIRST acceptance criterion (`kind-bug.md`)MOTIR-3013(motir-meta) W10 + W10b — a NON-REPRODUCTION obliges the MATRIX not the verdict, and a `shape` advisory's remedy is not always a criterion CUT (`run.md` + `log-bug.md`)MOTIR-3849Planning bug: a `blocked_by` wired to an ARCHIVED predecessor gates nothing — the card sealed `ready: true` against a retirement that has not shipped, and the advisory that named it was never readMOTIR-3854Planning 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 runMOTIR-3855Planning bug: the 8.3 re-plan moved the public marketing surface to motir.co and never swept MOTIR-1043, whose whole premise was that surface — it kept `(motir-core)` in its title, and had no design blocker, for two monthsMOTIR-3857Planning bug: a `coding_agent` card carried a criterion only a BROWSER SESSION can discharge — minting a `CLI_TOKEN_GRANT` token is cookie-session-only by design, and no gate noticedMOTIR-3858Planning bug: a bug card filed mid-run asserted an ORM reader nobody grepped, and promoted that mechanism into two acceptance criteria that cannot be satisfiedMOTIR-3871Planning bug: a copy card scripted a PUBLIC marketing claim about an unshipped capability — no gate checks a customer-facing sentence against the product, because the precondition rule only asks whether the card can be BUILTMOTIR-3873Planning bug: MOTIR-3868's AC 1 required a diff against `work_item.targetRepoRole`, a column retired 11 days earlier — the enumeration was verified, the column behind it was notMOTIR-3890Planning bug: the `AgentRun` collision was RECORDED and not removed — the name shipped into the plan anyway, and a year's drift made it three-wayMOTIR-3903Planning bug: MOTIR-3892 "measured" a closed PR from its CARD — #332 never split the constant, changed no test, and turned no guard redMOTIR-3904Planning bug: a story was authored with three children whose acceptance criteria can only be met after the story's own merge and deploy — the container had no exit, and every gating signal read greenMOTIR-3906Planning bug: a story ACCEPTANCE CRITERION had no child that owns it — MOTIR-3870 pre-dates MOTIR-3891 and was scoped against a different parentMOTIR-3914Planning bug: a card planned a live-run indicator on the READY list, whose membership predicate excludes every item that has a run — and removing it exposed that a run had no general door at allMOTIR-3926Planning bug: a region measured by SEARCHING for its boundary — `SHARED PLANNING RULES` occurs inside the framing it was cuttingMOTIR-3930Planning bug: a reversed direction was recorded as a COMMENT on the decision card it governed, leaving four of its seven criteria demanding the rejected shapeMOTIR-3935Planning bug: MOTIR-3933 was sized for the defect its author had REPRODUCED and carried a second one it had only described — 3 points for a one-attribute fix plus a 69-rule isolation problemMOTIR-3952Planning bug: a re-plan reason that admitted two OPPOSITE readings was acted on without confirmation — an approved plan archived the wrong surface and wrote a false lesson into the corpusMOTIR-3964Planning bug: a card asserted the release re-runs the PR's matrix without reading the lanes' own `if:` — the most expensive one had been PR-exempt for nine daysMOTIR-3987Planning bug: a card can PUBLISH its reproduction command and its ref and still state a number that command does not produce — nobody runs the command they paste, and pasting one makes the figure look MORE verifiedMOTIR-3988Planning bug: a bug card asserted a check "does not have one" three days after the check merged — the negative was never grepped, and the card cites the shipping story's own siblingMOTIR-3993Planning bug: MOTIR-3947 was carved out of MOTIR-3933 and inherited two unverified claims — a consumer that does not exist in that form, and a figure one tile optimisticMOTIR-3994Planning bug: a bug card counted "the other three inks clear it" over the set its OWN diagnosis had just shown to be unmeasured — the enumeration inherited the guard's blind spot it was filed aboutMOTIR-4027Planning bug: a bug card filed FROM a sibling's unmerged branch inherits that branch as its substrate and gets no `blocked_by` — the discovery link is written as `relates_to`MOTIR-4029Planning bug: MOTIR-4017 asserted two facts about the plan detail that the render falsified — a scroll that does not happen, and an arrival floor this surface cannot reachMOTIR-4031Planning bug: a ratchet number was attached to a counter that measures a SUBSET of the population the card's own reason quantifies overMOTIR-4040Planning bug: a card asserted the default E2E lane is cloud-on — it is off-cloud, and the whole two-arm plan was built on itMOTIR-4044Planning bug: MOTIR-3932's /explore and /docs scope items have no cards after the host-branch cards were archivedMOTIR-4048Planning bug: MOTIR-3999 re-combined the publish + the re-pin on one card and omitted the 0.1.3 bump — the exact release-shape MOTIR-3965 was re-scoped out of, one release laterMOTIR-4049Planning bug: a bug card's error count was measured against a stale generated Prisma client — 175 phantom errors, 1 realMOTIR-4070Planning bug: a later merge deleted every test subject while the lane-fix work item stayed readyMOTIR-4086Planning bug: the no-lift LIMB teaches an edge that makes a plan INVALID — a `blocked_by` is always same-level, and the limb lives in THREE homes including a seeded global lessonMOTIR-4090Planning bug: `blocks` does not cross the AI boundary either — MOTIR-4055 enumerates THREE missing link kinds and there are FOURMOTIR-4091Planning bug: a card's scope-boundary OUT list named the sibling that BUILDS the surface its criteria assert against — and the `blocked_by` edge pointed the other wayMOTIR-4099Planning bug: an ABSENCE-shaped acceptance criterion left the repo column BLANK — gate 1's sweep cannot run on "there is no read path for this", and the straddle detector has no path to matchMOTIR-4100Planning bug: MOTIR-3909 was planned with a post-DEPLOY child inside it — the epic that had already recorded this rule reintroduced it two stories laterMOTIR-4125Planning bug: an interim UI defect card was ready with four visible dispositions and no design prerequisiteMOTIR-4127Planning bug: MOTIR-4106 pinned motir-core owed a row in docs/contract.md, which is a motir-ai file — a repo straddle the BARE path hid from the detectorMOTIR-4128Planning bug: a card specified ONE rule delivered to two packs with identical text — which `INVARIANT B — disjoint cover` forbids, and the 88-char segment id collides onMOTIR-4131Planning bug: a card declared the WHAT out of scope on the ladder's HOW argument, and addressed its start-gate to the phase being gatedMOTIR-4132Planning bug: MOTIR-4093 was sealed on two unverified preconditions — a credential that is not a configured secret, and a read path (`GET …/acceptance-evidence`) that has never existedMOTIR-4135Planning bug: gate 14(c)'s ORDERING signal is an ENUMERATION of four phrases, and "measured after the change" is not one of them — MOTIR-4095 sealed a post-merge criterion with `advisories: []`MOTIR-4150Planning bug: a card read an element's specified measure off an UNAPPLIED rule in the mock's stylesheet, and called it "the value the asset draws"MOTIR-4151Planning bug: MOTIR-3942 planned the conversation's whole CONTRACT and no PRODUCER — the pack, the value and the rules all ship, and nothing runs a conversationMOTIR-4152Planning bug: the corpus routes 13 live citations to `plan-rules/op-replan.md`, which MOTIR-3869 DELETED — including one that says "stated in full there; do not restate it here"MOTIR-4155PLANNING BUG — the taxonomy defines `decision` TWICE and the two disagree: §1 says it IS the ADR (an artifact), the executor column and the `legal` boundary say it is the judgement WITH NO artifact. The planner is handed only the first, plus `executor: human`.MOTIR-4163Planning bug: MOTIR-4130 counted 3 of the 6 rows its claim quantifies over, and denied on the record the one edge it owed — to the OPEN PR that changes the row the card is named afterMOTIR-4164Planning bug: an `## Advisory dispositions` section discharged gate 4 by naming the BRANCH the substrate sits on — "committed on parent/… " read as "shipped", and the card sealed ready against a 404MOTIR-4166Planning bug: the public write surface's session-gate count was measured over /p/* and generalised — "one of ten" is five of thirteen, and the request intake was recorded as anonymous when it has never beenMOTIR-4168Planning bug: the WHAT's PRODUCER and CONSUMER disagree on its SHAPE — MOTIR-4083 pins it to prose `text`, MOTIR-4082 consumes a validated struct, and nothing converts one to the otherMOTIR-4170Planning bug: a card told a second repository to MIRROR a mechanism the first repository retired nineteen hours later — "mirror X" is a claim about another repo's current shape, and nothing re-checks itMOTIR-4173Planning bug: MOTIR-3975 scoped out ACTING on the completeness report and deferred it to "a later sibling" with no card — two predicates are now computed and neither is acted onMOTIR-4189Planning bug: the dispatched agent's re-plan door was planned as a CLI shell-out, while every other instruction in the SAME protocol is an MCP tool callMOTIR-4192Planning bug: a card enumerated a tool schema's MISSING fields without the command that produced the list, and named one the schema already hadMOTIR-4200Planning bug: MOTIR-4079 asked motir-ai's gate to assert core's READINESS verdict "through the shipped read" — motir-ai's lanes fake core by construction, so the verdict can only be asserted in motir-coreMOTIR-4203Planning bug: a card put a per-phase asymmetry in the SHARED tier — the clause was true on one phase and forbade the other phase's deliverableMOTIR-4235Planning bug: MOTIR-4206's Q7 cited Atlassian's rename cap as 3; the documented figure on the cited page is 15MOTIR-4236Planning bug: a card filed MID-RUN carried a criterion the FILING run then satisfied itself, and pinned both repositories — the next run claimed half-done work behind a repo set that could never closeMOTIR-4244Planning bug: MOTIR-4193's acceptance criterion defers a decision to "the design pass" that has no card — a prose reference the advisory detector cannot see, and the card sealed ready: trueMOTIR-4250Planning bug: MOTIR-4237 chose a UI destination from Motir's OWN surface inventory and never ran rung 1 — its "alternatives weighed and rejected" table listed three existing surfaces and no mirror productMOTIR-4259Planning bug: a row inventory over a prettier-wrapped HTML design asset was taken with a line-oriented grep, so MOTIR-4248's evidence table under-read one asset by two rowsMOTIR-4262Planning bug: MOTIR-4258 asserted every action on the row survived elsewhere, and wrote an acceptance criterion requiring a door it never checked existed — the ⋯'s Expand / Re-plan had noneMOTIR-4265Planning bug: MOTIR-4242 asserted "motir-core has no public-host accessor" from a grep for the literal host — the accessor exists and deliberately never spells itMOTIR-3963(motir-core) Does twelve Vitest legs actually beat eight? Sample the next `main` runs and settle it — the mean halved but the WORST leg did not, twice out of threeMOTIR-4149Pending-plans route integration test creates states the plan service now refuses

Blocked27

MOTIR-11298.10.2 Curate Motir's own public project — Overview, tagline, tags, README, epic-privacyMOTIR-1677Plan in LinearMOTIR-11308.10.3 Take Motir's project public + smoke the public surfaces on motir.coMOTIR-1678Plan in PlaneMOTIR-4104Vitest gate (motir-core) — the absence of every content/legal reader, the catalogue split, and the CI content arm's dispositionMOTIR-11318.10.4 Launch-day execution — Product Hunt / Show HN / GitHub / #buildinpublic / waitlistMOTIR-1721Plan in TAPD (Tencent 腾讯)MOTIR-4105Playwright E2E + acceptance video (motir-core) — /legal is gone from the app host and the configured legal journey still works without itMOTIR-11328.10.5 First changelog posts + "follow the build" announcement copyMOTIR-1722Plan in Yunxiao 云效 (Alibaba Cloud DevOps) — incl. the non-OAuth credential substrateMOTIR-1723Plan in Feishu Project 飞书项目 (ByteDance / Meego)MOTIR-1724Plan in Huawei CodeArts Req 华为云 (ex-DevCloud / ProjectMan)MOTIR-4213Submit the tenant base domain to the Public Suffix List (manual)MOTIR-4221(motir-core) The Public address pane, part 1 — the rail entry and its doors, the pane shell, and the workspace subdomain card: claim, rename with the retained-alias warning, copy and open; en + zhMOTIR-4223Vitest gate (motir-core) — the address store and services, the certificates adapter and job, the host-resolution contract, and the widened CORS / return-targetMOTIR-4225E2E (Playwright, motir-core) + acceptance video — claim a subdomain, add a custom domain, watch its certificate states, make it primary, rename and keep the old address redirectingMOTIR-4227(motir-marketing) Docs — /docs/public-address: your subdomain, connecting a custom domain, the DNS records to create, and what each certificate state meansMOTIR-4229(motir-core) The Public address pane, part 2 — the custom-domain list: add with DNS instructions, verify, every certificate state, make primary, remove, the tier upsell; en + zhMOTIR-3910THE CUTOVER — the redirects and the external registrations (the apex does NOT move)MOTIR-4123/p/* 404s on BOTH hosts in production — the public pages were deleted ahead of their replacement, and motir.co/explore links into the holeMOTIR-4171A project's public overview can no longer be edited from any UI — the in-place editor was deleted with the page and AMENDMENT 3 moved editing to the application, where no surface calls the doorMOTIR-4207Verification — the first customer domain issues a certificate on the live motir-marketing Fly app, read from the platform, and its primary canonical is servedMOTIR-2930(motir-ai) Mirror W6 into `SHARED_PLANNING_RULES` — name what ANSWERED when the address comes from our own configMOTIR-2954(motir-ai) Mirror W7 + W7b into `SHARED_PLANNING_RULES` — a lifecycle VERB is a precondition, and a characterised set owes its histogramMOTIR-2963(motir-ai) Mirror W8 into `SHARED_PLANNING_RULES` — a decision's close-out asks BOTH directions, and its *Consumed by* header is the inward worklistMOTIR-2989(motir-ai) Mirror W9 into `SHARED_PLANNING_RULES` — a defect card's mechanism owes the measurement that rules the alternatives outMOTIR-4145(motir-core) Verify on a REAL merge burst that no `Acceptance video` main baseline is evicted — the post-merge half of MOTIR-4095

In Progress6

MOTIR-3878Customer-owned addresses for a public project — per-tenant subdomains + custom domainsMOTIR-653Epic 8: Launch readinessChildren are not public.MOTIR-4050Two green PRs can merge into a red `main` — nothing requires a branch to be up to date, so a stale check decides the mergeMOTIR-2200The Motir agent loop — plan → implement → deploy, closed end to endChildren are not public.MOTIR-3875Motir's public web presence — one host per audience, and an open-core line through motir-core (motir.co · app.motir.co)MOTIR-3937The planner has no OPERATIONS — every session is a cell, and the conversation decides when to startChildren are not public.

Implemented14

MOTIR-4206Decision (ADR) — public tenant addresses: the base domain, what a subdomain names, the customer-domain lifecycle on Fly certificates, the one-primary canonical, the never-released rename, and the tier gateMOTIR-4209(motir-core) The public-address store — a SET of addresses per public project with exactly one primary, retained aliases and the reserved-name set: migration + repositoryMOTIR-4210(motir-core) The Fly certificates adapter — request, check and remove a hostname's certificate on the motir-marketing app, behind a port beside flyMachinesMOTIR-4212(motir-marketing) Legal — the Acceptable Use Policy and Terms clause for customer-connected domainsMOTIR-4215(motir-core) Claim and rename the workspace subdomain — the service, its reserved-name and retained-alias rules, and the project-settings routesMOTIR-4216(motir-core) The customer-domain lifecycle — add, verify, issue, make primary, remove — its tier gate, and the project-settings routesMOTIR-4217(motir-core) The public contract resolves a host — GET /api/public/hosts/{host}, and the subject DTO carries the project's addresses and its primaryMOTIR-4218(motir-core) The public surface honours registered addresses — CORS and the hand-off return target accept every registered public address, not only motir.coMOTIR-4219(motir-core) The certificate status job — refresh pending customer domains from the platform, surface issued / expired / revoked / failed, and record the last checkMOTIR-4220(motir-marketing) Host routing — a request on a tenant or customer host resolves through the public contract and renders that project's /p/* pages at the rootMOTIR-4222(motir-marketing) One canonical per page — canonical, og:url, JSON-LD @id, the per-host sitemap and robots name the primary address; every other address 301s to it, motir.co/p/* includedMOTIR-4224Vitest gate (motir-marketing) — the host router, the per-host canonical and crawl surface, and the standing no-database-client ruleMOTIR-4226E2E (Playwright, motir-marketing) + acceptance video — a tenant host and a customer host render the project, the canonical names the primary, and the non-primary address redirectsMOTIR-4228(motir-core) The custom-domain entitlement — the `custom_domains` kind, `maxCustomDomains` per tier, and the org-locked cap assert in entitlementsService

Planning0

In Review3

MOTIR-4242The Members room's three public-page links still point at the app host — retarget view, edit and the copied share URL through one public-host accessorMOTIR-4243Mount the Public page room — the registry entry with a `cloudOnly` flag, the page with its guard and off-cloud 404, and the read that returns all three hero fieldsMOTIR-426419 (motir-core) A CI check delivery 500s on Prisma's 5 s transaction budget — the feedback transaction holds the change-request ROW LOCK across N comment writes on other connections, so concurrent deliveries queue behind it and their check rows are DROPPED

Done1348

MOTIR-4193(motir-marketing) motir.co has NO not-found page — a 404 is Next's stock black-on-white screen with no chrome, no landmark and no way back, on four routes that call notFound()MOTIR-4245Design — motir.co's not-found room: what a lost visitor is told, and where the page sends them, drawn inside the public chromeMOTIR-4214Provision the runtime configuration — the certificates token scoped to the motir-marketing app and the base-domain variables, set on both Fly apps and read back from the platform (manual)MOTIR-4208Register the tenant base domain, point it at the motir-marketing Fly app, and issue its wildcard certificate (manual)MOTIR-4103Delete content/legal/ and app/(public)/legal/ from motir-core — the 84-file referrer sweep, the CI content arm, and every dangling citationMOTIR-4211Design — project settings › Public address: the subdomain claim, the custom-domain flow with its DNS instructions and every certificate state, the primary control and the tier upsellMOTIR-423217 (motir-core) Soft playful OVERFLOWS the left nav rail at both widths — its 40px `--height-control` is 1px wider than the 56px collapsed rail's content box, and pushes the expanded rail past the fold 68–76px earlier than the default styleMOTIR-4205Design — the Public page room in project settings: where a project admin edits the tagline, tags and README on app.motir.co (the entrance, the room, its states)MOTIR-42303938 (motir-core) The signed-in app shell masks the 3D / Immersive atmosphere with an opaque page-background layerMOTIR-4233(motir-marketing) The 30-day erasure promise loses its guard with content/legal/ — no repository asserts that the Privacy Policy §6 number is the one ACCOUNT_ERASURE_WINDOW_DAYS runs onMOTIR-3932motir.co renders the public reading surface — the shared chrome, /explore, /docs and /legal in motir-marketing over the public APIMOTIR-4195(motir-marketing) /docs/mcp/tools renders the PUBLISHED catalogue through lib/docs.ts — the list returns, and the copy does notMOTIR-4194(motir-core) Publish the MCP tool catalogue as an anonymous artifact — the derived grouping served at a stable path, the way the OpenAPI spec already isMOTIR-4204(motir-core) app.motir.co/legal/<slug> answers 500 for EVERY slug since the manifest reader deployed — `generateStaticParams` over a runtime-only env var yields no params at build, so the redirect stub renders statically and the locale cookie read throwsMOTIR-4167(motir-core) The rail's `Docs` row is a DEAD link — it still hard-codes `/docs` after MOTIR-3932 moved that surface to motir-marketing, while the `Legal` row beside it got the configured-url treatmentMOTIR-4102Confirm the legal gate is LIVE on the deployed application — the manifest is what holds a reader, not the filesMOTIR-4122E2E (Playwright) + acceptance video — the whole /p/* journey on motir.co, paced for a person to watchMOTIR-4121Vitest gate (motir-marketing) — the /p/* coverage floor, the public-API seam, and the standing no-database-client ruleMOTIR-4120Vitest gate (motir-core) — the new public reads, the act path's posture, and the host-only session cookie asserted rather than assumedMOTIR-4119The act affordances on motir.co — follow, subscribe, vote, upvote, comment and in-place overview editing, exactly as the amendment decidedMOTIR-4118motir.co's crawl surface covers /p/* — the Atom feed route, the sitemap entries and the per-project OpenGraph cardMOTIR-4117motir.co serves the two detail pages and the feature-request intake — /items/[key], /requests/[requestKey] and the submit formMOTIR-4116motir.co serves the five tabs — Board, Items, Tree, Roadmap and ChangelogMOTIR-4115motir.co serves /p/[identifier] — the layout, the tab nav, the Overview and the page's own entity signalMOTIR-4114The act path the amendment decided — motir-core's half, with the session cookie left host-onlyMOTIR-4112motir-marketing grows a Playwright lane — the harness, the CI job and the acceptance-video upload this story's E2E needsMOTIR-4111The crawl surface's two missing endpoints — the changelog Atom feed, and the public-project index motir.co's sitemap readsMOTIR-4110The two DETAIL reads get public routes — one work item, and one feature requestMOTIR-4109The Board tab and the Roadmap's first page get public read routes — /api/public/p/{identifier}/board and …/roadmap with no cursorMOTIR-4108Decision (ADR amendment) — what becomes of /p/*'s session-aware affordances once the page is cross-origin from the sessionMOTIR-3877Public project pages move to motir.co — rendered by motir-marketing over motir-core's public contractMOTIR-4180(motir-marketing) motir.co/docs/mcp/tools hand-copies motir-core's tool registry with NO guard — 24 of 55 tools in five invented groups, the one outcome MOTIR-4046's own criterion named unacceptableMOTIR-4169motir.co's /explore, /explore/topic and /docs pages render NO main landmark — the skip link has no target and a screen reader re-reads the banner on every navigationMOTIR-4130(motir-core) design/shell's rail assets draw 2 of the 6 rows the shipped bottom nav renders — Git, Legal, Job runs and Security are absent at all three widthsMOTIR-4139The subprocessor seam proves its LOGIC and not the live AGREEMENT — nothing compares the published page against the manifest motir-core is actually servingMOTIR-4113Design — motir.co/p/*: the project page, its five tabs and its two detail pages inside the public chromeMOTIR-4093(motir-core) The acceptance-lane lifecycle guard has NEVER checked a receipt in CI — no job sets its credential, so MOTIR-2770 always passes and the lane has grown back to 23 specsMOTIR-4133(motir-marketing) The legal documents moved without their MATERIALITY guard — no repository now asserts that a Terms revision was read before it shippedMOTIR-4147(motir-marketing) The Privacy Policy's §7 data-rights link is a RELATIVE path — on motir.co it is a 404, so the export/deletion promise leads nowhereMOTIR-4015Playwright E2E + acceptance video (motir-core) — configured and unconfigured legal links, and the cloud re-consent hold over the manifestMOTIR-4014Vitest gate (motir-core) — the CONFIGURED manifest seam end to end, and both arms of the unconfigured caseMOTIR-4011Vitest gate (motir-marketing) — the seven routes, the front-matter contract, and the no-database assertionMOTIR-4010The three legal-link surfaces render from configuration — sign-up, the rail row and the re-consent document rows, with the unconfigured armMOTIR-4008The subprocessor disclosure's evidence stays where the dependencies are — re-home subprocessor-list-guard per the decisionMOTIR-4007lib/legal/documents.ts becomes a CONFIGURED manifest reader — the re-consent gate keeps working with no content/legal/ in the treeMOTIR-4004Decide what motir-core reads once content/legal/ leaves — the legal-document manifest, the unconfigured default, and where the subprocessor guard's evidence livesMOTIR-3909motir-core reads its legal documents from a CONFIGURED MANIFEST — the links, the re-consent gate over it, the subprocessor split, and the hosted provisioningMOTIR-4097(nextjs-prisma-vercel-starter) Follow motir-core's acceptance-lane rename — every scaffolded project ships a check called `Acceptance video` for a lane that publishes nothingMOTIR-4162(motir-core, manual) Mint `MOTIR_GUARD_TOKEN` — a Motir PAT granted `project:browse` and nothing else — and store it as a repository Actions secret, so the acceptance-lane guard has a credential to bind withMOTIR-4144(motir-core) The acceptance-receipt STATUS has no read path — `GET /api/work-items/<key>/acceptance-evidence` is 405, so MOTIR-2770's approved-receipt guard fails open and can never fire, credential or notMOTIR-4096(motir-core) The lane is called `Acceptance video` and no longer publishes one — rename it to the acceptance TESTS and retire the CI publisher, now that the agent uploads the receipt over MCPMOTIR-4138(motir-core) `Deploy freshness` never prints the report it exists to print — `bash -e` kills the step at the command substitution, so the run summary is empty on exactly the red runsMOTIR-4012SET the legal-document manifest on the moooon cloud deployment, and read it back from the platform — before the reader that consumes it deploysMOTIR-4095(motir-core) A QUARTER of the acceptance lane's main baselines never run — the concurrency group evicts the QUEUED push run, destroying the per-merge attribution MOTIR-2760 exists forMOTIR-4137(motir-core) `main` has not deployed since 2026-09-01 20:53 — MOTIR-4094 promoted two specs into a lane whose port and whose mock registration order they were never written forMOTIR-4094(motir-core) Drain the acceptance lane back to the in-flight stories — promote or retire the 23 specs sitting in a lane whose own header says its steady state is zeroMOTIR-4006Design amendment — the UNCONFIGURED arm of every motir-core surface that shows a legal link: sign-up, the rail row, the re-consent document rowsMOTIR-40898.11 (motir-core) planningTargetLockGate real-concurrency race times out under loaded Vitest shardMOTIR-4043The shared stripComments strips BLOCK comments first, so a line comment containing `/*` swallows the code below it — every source-scanning guard built on it can go silently blindMOTIR-4039The base style's shape tokens inherit from the ancestor — a scoped warm-editorial preview wears the ACTIVE style's --shadow-* because the base has no [data-style] blockMOTIR-4042A self-hosted build still publishes an OpenAPI contract for a public surface it does not serve — /api/openapi/public.json is outside the gateMOTIR-4046motir.co serves /docs — the eight generated pages, the mechanism decided and recorded before they are writtenMOTIR-4045motir.co serves /explore and /explore/topic/[slug] — the project square against /api/public/explore + /api/public/categoriesMOTIR-3951motir-core stops serving public pages — delete app/(public), its 21 components and its Server Actions, and retire the page-facing service surfaceMOTIR-3886Playwright E2E + acceptance video — the whole public journey on one host, and the old app-host paths redirectingMOTIR-3884301 app.motir.co/{explore,docs,legal,p}/* and / to motir.co — plus the in-code sweep of every absolute-URL readerMOTIR-4009motir.co serves the seven documents — the /legal index, /legal/[slug], the front-matter loader and the crawl surfaceMOTIR-4052Re-pin @motir/design-system to 0.1.3 — the style gallery isolates under glassmorphismMOTIR-4038Story-level E2E — the publish affordance and the public surface, both armsMOTIR-4037Story-level vitest — coverage floor, integration seams, and the single-reader/architecture guards (both arms)MOTIR-4036Derived-not-remembered totality guard — enumerate the gated public surface from the filesystemMOTIR-4035Gate the publish affordance and the accessLevel='public' write path behind isCloud()MOTIR-4034Gate app/api/public/* behind isCloud() — every anonymous route returns 404 when MOTIR_CLOUD is unsetMOTIR-4033isCloud() predicate beside isCloudBilling() — the cloud-build flag, with a single-reader guard testMOTIR-3908Public projects are a CLOUD capability — with MOTIR_CLOUD false the feature is ABSENT, and a self-hosted Motir is single-tenantMOTIR-3999Cut `design-system-v0.1.3` — push the tag on the merge commit, watch the release lane, and pull the tarball anonymouslyMOTIR-4051Bump @motir/design-system to 0.1.3 — the commit `design-system-v0.1.3` is cut fromMOTIR-4047`origin/main` does not typecheck — 11 errors in the runs surface, red for every open PRMOTIR-3998Nothing in the guard tier can SEE a material leak — the cascade model skips every combinator by construction, so the style axis needs a rendered isolation guardMOTIR-4005Design — motir.co/legal: the index and the document page, drawn inside the public chromeMOTIR-3880Design — one public chrome for motir.co: the landing, /explore, /docs and /legal under a single header, nav and footerMOTIR-3997Move the style axis's 69 material rules under `@scope (…) to ([data-style])` — and re-point `styleRegistry.test.ts`'s parser, which cannot survive the moveMOTIR-6568.3 Marketing site + brand markMOTIR-4003`design/marketing`'s `.png` re-export is a process this repository documents and cannot perform — every design card here has borrowed a sibling repository's chromiumMOTIR-4028`landing.mock.html` has drifted from the shipped landing beyond the eyebrow — a nav entry it never gained, a footer whose whole column set is different, and eleven strings the site has since re-writtenMOTIR-3991The base palette's `done` status dot is 2.93:1 on the card it sits on — the second ink under 1.4.11's 3:1, and the one that rides a Tier-0 semantic three other families spendMOTIR-4001`motir-marketing` has no design-asset guard lane — and a PORT of motir-core's mock scanner would be green on all 54 sites it was asked to catchMOTIR-4000`landing.mock.html` does not draw the pillars eyebrow the landing ships — so the asset's own element scan could not see the AA defect that element carriedMOTIR-3989(motir-core) The release lane's digest-table commit is SKIPPED by an unawaited `$GITHUB_OUTPUT` write — `cli-v0.4.0` was the first release to exercise MOTIR-2699's automation and it silently recorded nothingMOTIR-3996(motir-marketing) Re-pin `@motir/design-system` to 0.1.2 — ten palette tiles resolve ten accents on `/design`, light and darkMOTIR-3985`design/marketing/**`'s board CHROME fails AA at 54 sites — and the assets assert it is exempt, in a repository whose sibling decided the opposite and shipped the guardMOTIR-3934`update_plan_proposal` does not resolve a `MOTIR-<n>` key in `patch.blockedByAdd/Remove` — it stores the raw string, and the dangling ref surfaces at APPROVE, which is the failure the correction door's own gate promised to preventMOTIR-3965Cut `design-system-v0.1.2` — push the tag on the merge commit, watch the release lane, and pull the tarball anonymouslyMOTIR-3990The public contract reaches TOTALITY — the remaining nine operations, and a coverage guard that fails on a route with no declarationMOTIR-3946The public read surface gets its OWN versioned contract — same machinery as v1, its own version, document and drift guard (the spine + the three core reads)MOTIR-3945The public project SUBJECT gets a route — app/api/public/p/[identifier], the one endpoint the page's own subject has never hadMOTIR-3885Vitest gate (motir-core) — the public read contract, the anonymous posture per route, and both arms of the origin seamMOTIR-3881The public origin motir-core EMITS — the follow-digest links, and what app/sitemap.ts contains once nothing public is servedMOTIR-3879Decision (ADR) — one origin per audience: motir.co is served by motir-marketing over motir-core's public API, and motir-core keeps no public pagesMOTIR-3726`app.motir.co/robots.txt` 404s — motir-core ships a sitemap, JSON-LD and canonicals on its public surface but no `app/robots.ts`MOTIR-3876motir-core becomes an application plus a public read API — the project-subject route, and the contract a second repository depends onMOTIR-3995(motir-core) Bump `@motir/design-system` to 0.1.2 — the commit `design-system-v0.1.2` is cut fromMOTIR-3984motir.co's footer ships `--el-text-muted` on `--el-surface-soft` — 4.34:1 on EVERY page of the site, and `aaMatrix`'s PAIRS carries that ink against the card but not against the bandMOTIR-3905Global lessons added since the day-one seed batch do not RETRIEVE — two rows queried near-verbatim are absent from the ranked set, and every global row `search_lessons` returns carries a `cmr11*` idMOTIR-3992Planning bug: MOTIR-3965 put a human MERGE between two of its own acceptance criteria — a release authored as one card, sized for the publish aloneMOTIR-3954The base palette's `implemented` status dot is 2.66:1 on the card it sits on — under 1.4.11's 3:1, and the guard that would catch it skips the base palette by constructionMOTIR-3947Scoped design previews are not ISOLATED — 69 `[data-style='X'] <descendant>` material rules cross the nesting boundary, so 10 of 11 style previews wear the ancestor's styleMOTIR-3931The `/design` asset draws muted captions on `--el-surface-soft` — 4.34:1, under AA in the default palette, and its own AA sweep never measured the pairMOTIR-3850(motir-core) `sandbox-staleness` has failed EVERY scheduled run for 17 days — the tripwire is right: `packages/cli` is 30 commits past `cli-v0.3.0` and the published sandbox image is what users pullMOTIR-3760(motir-core) A merge reaches production hours late — `Deploy to Fly` sits behind the whole verification matrix a second time, and a merge burst leaves only the newest runMOTIR-3933A scoped `StyleVignette` shows the ACTIVE palette, not its own — `data-appearance-scope` is missing, the `motir` base has no block, and the nine palette DARK blocks are compound selectors a nested scope cannot matchMOTIR-3928(motir-core) Every E2E leg DISCARDS the shared `.next` artifact and rebuilds the app — `webServer.command` runs `next build` unconditionally, 110 s of it re-running TypeScript the `TypeScript` job already ranMOTIR-3950(motir-core) Turn the Vitest leg count 8 → 12 — the dial MOTIR-3912 deferred until the balanced lane had been measured, which it now hasMOTIR-3915(motir-core) `roadmap-flow.spec.ts`'s seed races the status-derivation job — the SECOND spec in this class, and `retries: 1` made the run greenMOTIR-10438.3.16 The public design showcase at motir.co (`/design`) — live Style × Palette × Type over the published `@motir/design-system` (motir-marketing)MOTIR-3921The story’s gate — what each PHASE’s cell can discharge, end to end from a real passMOTIR-3920Re-audit `phase-skeleton` and `phase-deepen` on the act test — the design gate moves to skeletonMOTIR-3919Re-tag `core` on the act test — six segments to `phase-skeleton`, two divided, no new packsMOTIR-3918`buildGenerationSystemPrompt` takes a PHASE — the skeleton framing stops reaching a deepen sessionMOTIR-3917Decision: what decides a rule’s PHASE? Settle the ACT test before any rule text movesMOTIR-3916The PHASE axis, applied — the framing takes a phase, and `core` splits on what a session can DISCHARGEMOTIR-392717 Roadmap canvas draws ARCHIVED cards as red "blocked elsewhere" ghosts — the level read excludes them as nodes, then its edge read puts them straight back, by nameMOTIR-3913(motir-core) With Vitest balanced, E2E becomes CI's ceiling at ~15.5 min — five bulk legs carry 1705 s of test work behind a 178 s per-leg boot nobody has costedMOTIR-3912(motir-core) 19 of the 30 most expensive test files landed on ONE Vitest leg — `--shard` slices the alphabet, so the `tests/integration/**` cluster travels togetherMOTIR-3901The story's coverage + integration gate — the assembled selector, end to end from a generation passMOTIR-3900Re-cut 3 of 3 — the TYPE packs: what each of the 14 types receives, and what it must notMOTIR-3899Re-cut 2 of 3 — the KIND packs: `epic`, `story` and `bug` at deepenMOTIR-3898Re-cut 1 of 3 — the CROSS-CUTTING rules: what every cell gets, and the back-reference rewritesMOTIR-3897The selector re-cut — phase → kind at skeleton, kind OR type at deepen, and the cell space becomes a SUMMOTIR-3896`type` becomes an output of SKELETON — `propose_node` carries it, and `bug` leaves the typed setMOTIR-3870Mirror the pack restructure into motir-meta — and teach `split.py` about packs that do not exist in the pre-split corpusMOTIR-3892Decision: is a LINE still a RULE? Settle the clause unit before any rule text movesMOTIR-3891The planning rule packs, re-cut on a phase → kind | type selector — and `type` becomes an output of SKELETONMOTIR-3902(motir-core) The Vitest lane is CI's critical path at 24.8 min — 1.6x the next-longest job — and the runners it would need to halve that are sitting idle (queue time is zero)MOTIR-38748.3.18 The `/design` design asset predates the package it draws — both mocks inline 0.1.0's dark accent ink, and the current-page nav treatment is justified by a 4.41:1 that is now 5.76:1 (motir-marketing)MOTIR-3866One pack PER TYPE, and containers get their packs at `deepen` — eight types have no authoring bar, and `deepen/epic` and `deepen/story` compose byte-identicallyMOTIR-3869`replan` is `plan` — retire the operation axis from rule selection, because a fresh plan already carries the reconcile TOOLS without the reconcile RULESMOTIR-3853The `type` axis reaches only 4 of 14 types, and `phase-deepen` carries the other ten's rules — every deepen cell pays 78,304 chars it cannot all needMOTIR-38728.3.17 motir.co serves `@motir/design-system@0.1.0`, which predates MOTIR-3745 AND MOTIR-3774 — five accent-ink cells fail AA on the live site, and `/design` is about to make every one of them reachable in one clickMOTIR-38628.3.15 Copy — the `/design` showcase page's words + the nav label, at the marketing register (motir-marketing)MOTIR-38618.3.14 Design — the public design showcase at motir.co (`/design`): the composed specimen, the three axis pickers + theme toggle, and the site's first current-page nav entry (motir-marketing)MOTIR-3768(motir-core) MOTIR-3569 bounded `ci.yml` and left 19 runner jobs across ELEVEN sibling workflows on the 6-hour default — including `sandbox-images.yml` and `runner-image.yml`, which `ci.yml` itself callsMOTIR-11548.3.7 Entity-signal SEO root at motir.co (motir-marketing) — Organization+WebSite JSON-LD, root OG, robots, GSCMOTIR-3746Planning bug: the IMPORT door's `?intent=import` has no reader and no owning card — its tracker twin got MOTIR-3639 and the import half was never carvedMOTIR-3807Planning bug: MOTIR-3735 deliverable 2 asserted `schema.prisma`'s `sessionBranch` "carries no comment" — it carries a 12-line one at the cited refMOTIR-3822Planning bug: an acceptance criterion's own COMMAND enumerated a strict superset of its claim, so the criterion was unpassable and its literal reading was destructiveMOTIR-3821Planning bug: a card generalised the side-effects-outside-the-transaction rule onto the AUDIT ROW, which is the one write that must be inside itMOTIR-3820Planning bug: a card's rung-2 evidence asserted an absent workflow edge that ships — the decision survived, the argument's KIND did notMOTIR-3805Planning bug: a card whose precondition is a DEPLOY was gated by a `blocked_by` edge, which discharges at MERGE — the RULE half (the lesson shipped)MOTIR-3801Planning bug: the delivery-reader inventory's own re-measurement was short by two — its grep cannot match `?.workItemId`MOTIR-3794Planning bug: a story was authored with a DEPLOYED-tenant verification card inside it, gating three siblings that ship at merge — so the story's own pull request could never openMOTIR-3792Planning bug: the corpus CONTRADICTS ITSELF on what approve does to a proposal's status — `_shared.md` and `run.md` say it derives nothing and cite the code, `plan-procedure.md` says it derives from the edges, and the shipped `materialize` agrees with `plan-procedure.md`MOTIR-3779Planning bug: a card that ENUMERATES the homes of a symbol quotes a grep it did not run — MOTIR-3777 named seven of tenMOTIR-3775Planning bug: MOTIR-3750's measurement block secured the SET and left the CAUSAL sentence beside it unmeasured — the file it blames the classifier for was last touched two days BEFORE the classifier existed (and the count was one high)MOTIR-3753Planning bug: the CORRECTION to MOTIR-3721's inventory was itself scoped by a one-file grep, so nine is short by seven in the same shape as five was short by fourMOTIR-3749Planning bug: MOTIR-3634's own TEST asserts a property of sibling MOTIR-3635's output, and the split left the two edge-freeMOTIR-3748Planning bug: a bug card's root cause was derived from a STALE COMMENT and from a call path a memo makes unreachable — two mechanisms, both falsified at the first grepMOTIR-3741Planning bug: a card's second half was inferred from a MODULE PATH — `lib/ai/codeContext` was read as "calls motir-ai" while its whole import closure is PrismaMOTIR-3740Planning bug: MOTIR-3739 called a neighbouring line "protected" without reading its call chain, and named ONE instance of a copy-pasted pattern as the populationMOTIR-3733Planning bug: MOTIR-3721 inherited its reader inventory from the ADR that authorised the retirement, so the readers the replacement CANNOT serve were never countedMOTIR-3729Planning bug: MOTIR-3721's dependency on a sibling's OPEN pull request was written as prose, not a `blocked_by` — and two cards in the same story shipped with a null `explanationMd`MOTIR-3804(motir-core) A `modify` proposal's body cannot carry an intra-plan CHIP — materialize rewrites `motir-ref:planItem:` on `add`s only, so an amendment naming a card the same plan proposes ships an inert linkMOTIR-11528.3.6 Build the motir-marketing landing (new repo) — THREE cross-origin doors: idea hero · import existing · start freeMOTIR-37438.43 `motir-marketing` is provisioned but NOT connected to Motir — `targetRepo` is refused and a merge on that repo moves no cardMOTIR-37508.45 `motir-marketing` publishes no DESIGN RESULT — it has no publish lane at all, and a `<name>.design-notes.md` basename is invisible to the classifier in either repoMOTIR-37558.46 (motir-core) Adding a repo from GitHub's OWN installation settings always shows "We couldn't finish setting up the GitHub App" — the install SUCCEEDED, and only the signed `state` is missingMOTIR-1565E2E flake: a bulk shard's whole shell-flows suite reds when the Playwright webServer / inngest dev server fails to come up (sign-up 404 + inngest 404)MOTIR-13158.18 Hand-Drawn style stops short of the app shell — rail/top-bar frame borders aren't roughenedMOTIR-13148.17 /dashboard (DashboardsHome) list card has no data-surface — Neumorphism (and glass/aurora) material never reaches itMOTIR-13138.16 Create-work-item modal renders "Explanation" twice (disclosure header + editor label)MOTIR-13128.15 Switching org leaves stale old-org content in the page body (switchers refresh in place; no navigation)MOTIR-672bug-e2e-custom-fields-empty-state-hydration-flake Custom-fields E2E spec flakes on the Fields-admin empty state — finding-#89 hydration churn recurs on a surface bug-e2e-suite-flaky-specs did not coverMOTIR-671bug-e2e-suite-flaky-specs E2E suite has flaky specs that intermittently red CI on unrelated PRs (drag-reorder reload, at-scale cursor paging, inline-edit reload, watch-popover hydration)MOTIR-38028.3.13 Publish `@motir/brand@0.1.0` to npm by hand + configure its Trusted Publisher (manual)MOTIR-3793Planning bug: a card's post-merge PUBLISH obligation was recorded as a comment and offered as a question ("say so and I will propose one") instead of filed as a card — MOTIR-1456 went `done` with `@motir/brand` unpublished, and MOTIR-1152 hit it eight hours laterMOTIR-11448.3.4 Content — motir-marketing landing copy + positioning (idea · import-existing · tracker-first audiences)MOTIR-11438.3.3 Design — motir-marketing landing (motir.co): THREE entry doors (idea hero · import existing · start free) + descriptive blocksMOTIR-3771Planning bug: a card proposed 'restore the yield, not the stepping' — the two are not separable, and the record it cited already said soMOTIR-3569(motir-core) 11 of ci.yml's 14 jobs declare NO `timeout-minutes`, so a hung job burns SIX HOURS and is indistinguishable from a slow one — the same gap MOTIR-2970 closed at one call siteMOTIR-3413Own the job substrate — a Postgres-backed queue replaces Inngest, and the serverless-shaped stepping goes with itMOTIR-3739(motir-core) `code-graph-refresh-engine.spec.ts` hand-rolls a TRUNCATE that bypasses `db-reset.ts`'s 40P01 retry — it deadlocks against the E2E job worker and reds unrelated PRsMOTIR-3730(motir-core) A double-click of Replay RAISES P2002 out of the dashboard action — the engine's DLQ replay enqueues by INSERT and does not treat the dedup violation as "already enqueued"MOTIR-14558.3.10 Provision the motir-marketing repo + motir.co domain + Fly app + CI (manual)MOTIR-3731(motir-core) The engine has NO per-job concurrency, and a job that wanted one lost it silently — `account/data-export.requested` declared `{ limit: 1, key: userId }` and the engine never read the fieldMOTIR-3714Planning bug: MOTIR-3693 enumerated its population by hand-reading ONE folder — the guard it was filed about counts 18 assets across 9 areas, not 6MOTIR-3696Planning bug: a design that merges AFTER the card it gates re-opens that card's SIZING, and MOTIR-1136 reached dispatch at 5 pts / 65 min for a ten-card featureMOTIR-3690Planning bug: a diagnosed defect was recorded ONLY inside another card's body — "this paragraph is currently the only record" — and then ran unnoticed for 23 daysMOTIR-3689Planning bug: a card ABOUT a stale population count carried a stale population count — MOTIR-3682 says "exactly one thing" remains on Inngest, and three didMOTIR-3641Planning bug: the ADR allocated the account-SUSPEND action to a card while the suspension MECHANISM — a schema column, session revocation and a sign-in refusal — was owned by nobody and priced into nothingMOTIR-3723Planning bug: two stories in different epics planned the SAME deliverable (`@motir/design-system`) two days apart, with no edge — MOTIR-1524 shipped it and MOTIR-1456 stayed claimable for eight weeksMOTIR-3654A plan proposal's `type` is a bare `z.string()` while every enum beside it is a `z.enum` — an out-of-enum value is stored, passes validate, and 500s at approveMOTIR-3718Planning bug: MOTIR-3230 deferred its filing-time limb with NO card — the prerequisite has since landed, and the duplicate that limb exists to prevent was filed two hours laterMOTIR-3720Planning bug: a card's central premise was a config COMMENT quoted as fact — six counter-examples sat nine lines below it, and two "options" were both already shippedMOTIR-3418Retire Inngest — delete the SDK, the serve route and the dependency, and prove the substrate stands aloneMOTIR-3230Planning bug: the `subsumption` advisory only sees MERGED pull requests — a defect filed 48 min into the OPEN window of the PR fixing it is invisible to every checkMOTIR-14568.3.11 Ship Motir's BRAND chrome for cross-repo reuse — the design-system half already shipped as `@motir/design-system`MOTIR-11558.3.8 Google Search Console — motir.co property setup + verification (manual)MOTIR-37248.3.12 Decision — where Motir's BRAND chrome lives for cross-repo reuse, given `@motir/design-system` is installed by every scaffolded productMOTIR-2854Decision (ADR) — where does the motir-marketing site (motir.co) run? 8.3.10 plans a NEW Vercel project while MOTIR-2396 is closing the accountMOTIR-3489(motir-core) Cut the THREE container supervisors over IN PRODUCTION — ADD the ids to `MOTIR_POSTGRES_JOB_IDS`, watch a real push coalesce, boot and index

Cancelled13

MOTIR-3524(motir-core) The re-plan submit SETS `context.replanTrigger` — MOTIR-3324 ships a consumer that nothing populatesMOTIR-3907The `motir-meta` MIRROR — the SUM cut and the PHASE cut, in one pass over the same two filesMOTIR-3856Split `VERIFY_EVERY_PRECONDITION` into its numbered limbs — one segment of 49,449 chars is 24% of the corpus and cannot be selected off any cellMOTIR-3205Sandbox: the `claude` profile build is broken by an UNPINNED `@anthropic-ai/claude-code` — 2.1.237 needs its postinstall, npm's allowScripts default skips it, and the arm's smoke test fails every CI runMOTIR-3143(motir-core) CI: stop RUNNING apt — `install-deps` is defensive on a cache hit, and it is the only thing in the E2E path the Ubuntu mirror can hangMOTIR-2613Cut `cli-v0.2.1` — `package.json` has said 0.2.1 since MOTIR-2537 and four CLI commits sit unreleased, including a user-visible `motir link` error fix and the ACME copy rename the docs already showMOTIR-2380(motir-core) The Vercel deployment fails on `main` AND on every open PR — read the build log; `next build` is green in CI, so the failure is after the buildMOTIR-7626.12.13 Public work-item detail page — read-only public view (with child / sub-issue panel) at /p/[identifier]/items/[key]MOTIR-7992.8.8 [design] Work-item ⋯ actions menu (detail/list/board) + Archive action flow + archived-item stateMOTIR-8002.8.9 Work-item ⋯ actions menu + Archive action (detail/list/board) — route + UI + page-stateMOTIR-1288startSprint locks committedPoints=null when items are unestimated at start — immutable baseline never reflects later estimates (breaks burndown/velocity/report)MOTIR-3946.10.9 Copy-on-create — seed a new workspace’s config from the source workspace (the "looks-inherited" behaviour)MOTIR-458bug-notification-pref-transitioned-still-disabled-after-5-4-shipped Notification preferences: the "An item you're watching changes status" row is still drawn disabled with "Soon" + "Available once issue-watching ships (Story 5.4)" copy, but Story 5.4 (issue-watching) shipped — the row should be settable

Showing the first 200 cards on this board. The Items tab lists every public work item, a page at a time.