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

Motir · Roadmap

MOTIR-4122Done

E2E (Playwright) + acceptance video — the whole /p/* journey on motir.co, paced for a person to watch

Opened by Zhu Yue ·

The story's E2E — a Playwright walk of the whole /p/* journey on motir.co, in the lane the Playwright-lane card builds — and the acceptance video a person watches to accept this story.

The spec walks the story's verification_recipe:

  1. Arrive from /explore — click a project card and land on /p/<identifier>, with the overview rendered for a logged-out visitor.
  2. Move through Board, Items, Tree, Roadmap and Changelog; page one list past its first page and expand one tree level.
  3. Open a work item from a list, and a feature request from the roadmap.
  4. Submit a feature request — ⚠️ amended 2026-09-02 (MOTIR-4166): NOT anonymous. The intake has always required a session (requireCompliantSession()), so drive the hand-off public-surface-hosts.md AMENDMENT 4 row 6 specifies: the control on motir.co is a link, the submission and its duplicate-suggestion step happen on app.motir.co, and the visitor returns to the project page with the request visible.
  5. Exercise the act affordances as the amendment specifies them for an anonymous visitor and for one signed in on the application host — including, where the mechanism is a hand-off, that the visitor returns to the page they left.
  6. Drive the empty, error and terminal states: a project with no overview, an unreachable public API, and at least one terminal/destructive action the surface offers.

It runs against the stubbed public API the lane provides, and that is correct, not a compromise. The contract itself is guarded in the producing repository (public-surface-hosts.md §3, and the motir-core gate); this spec's subject is the site. Say so in the spec's own header so the next reader does not mistake the stub for a second source of truth.

Wait on authoritative signals — a response, a URL, a rendered landmark — never a timeout (the E2E discipline in motir-core/CLAUDE.md).

The acceptance video is the story's receipt, and it must be WATCHABLE. The recorded happy path is paced for a person: the reviewer watches it in-app and approves the story on it. A run that races through the flow satisfies the letter and defeats the point — say on the card and in the spec that the recorded path is deliberately paced, and publish the clip to MOTIR-3877.

Not in scope: the app.motir.co/p/*motir.co redirect. It ships in proxy.ts and is already asserted by MOTIR-3886's acceptance spec in motir-core; re-asserting it here would be a second owner of the same check, in a repository that does not ship it.

Acceptance criteria

  • A Playwright spec walks steps 1–6 above end to end and passes in motir-marketing's e2e job, which gates deploy.
  • Every assertion waits on an authoritative signal; the spec contains no bare timeout.
  • The feature-request submission is exercised for real, including the duplicate step, and the resulting request is asserted on the project surface — ⚠️ as the SIGN-IN-TO-ACT hand-off of AMENDMENT 4 row 6, not anonymously (amended 2026-09-02, MOTIR-4166). Both session states are driven: an anonymous visitor is sent to sign in and returns, and a visitor already signed in on the application host round-trips without one.
  • The act affordances are exercised in both the anonymous and signed-in-elsewhere cases, and the return-to-the-page hand-off is asserted where the amendment specifies one.
  • The empty state, the API-unreachable error state and one terminal action are each driven and asserted.
  • The spec's header records that the public API is stubbed and names the producing repository as the contract's owner.
  • The run records and publishes an acceptance video to MOTIR-3877, and the card states that the recorded happy path is paced for a human to watch.
  • The spec does not assert the app.motir.co redirect (owned by MOTIR-3886).
  • No file outside motir-marketing is touched.

Context refs

  • motir-marketing/.github/workflows/ci.yml — the e2e job and the needs gate the lane card adds
  • motir-core/e2e/ and motir-core/CLAUDE.md § E2E — the discipline and the authoritative-signal rule
  • motir-core/docs/decisions/acceptance-video.md — the receipt, the size limit, and the withdrawn duration ceiling
  • MOTIR-3886 — the sibling story's E2E, and the redirect assertion this spec does not repeat
  • motir-core/docs/decisions/public-surface-hosts.md §3 — why the contract guard lives in the producing repository
  • motir-marketing/design/public-projects/ — the states the spec drives

⚠️ ORDINAL CORRECTED AGAIN, 2026-09-02 — it is AMENDMENT 4. MOTIR-4139 (b615991c4) merged its own AMENDMENT 3 into public-surface-hosts.md — the subprocessor seam — while this story was in flight, so the affordance table is AMENDMENT 4. Every reference to AMENDMENT 2 or AMENDMENT 3 on this card and its siblings means that section. Twice in one day: an ADR ordinal is a serialized resource and nothing in the corpus says so — the amendment's own banner now does.

Discussion

No comments yet.

Adding to this discussion signs you in on app.motir.co and brings you back to this request.

Add a comment