agentleFS
alphaXivalphaXiv/OpenResearch/.agents/skills/orx-testing/SKILL.md

orx-testing

Skill8k starsChanged 7 days agoMITView on GitHub

Test an OpenResearch change the way its user will find the problems, and bring evidence a reviewer can see. Covers starting from the right state, driving the real flow from its entry point, real agents and backends, states, themes, sizes, languages and failure cases, the desktop webviews on macOS, Windows and Linux, screenshots and video and checking each frame. Use before calling any change a user can see done, before filing or updating a pull request, when asked to test, verify, screenshot, record or QA, and whenever a user reports a bug that "the tests pass" on. In this repo, use it in place of any general UI testing skill, including when reviewing someone else's change.

Adopted by

Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projectsWeek of Oct 25: 0 new projectsWeek of Nov 1: 0 new projects
Sep 2026Oct 2026Nov 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 0 in all, so this is a hint, not a trend.

Who's talking about alphaXiv/OpenResearch

The biggest 5 of 34 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 34

Talked about on GitHub, Bluesky and Hacker News (34 times).

On GitHub · 22

17 more on GitHub

On Bluesky · 11

6 more on Bluesky

On Hacker News · 1

The file

Files
SKILL.md

Testing OpenResearch like its user

Start from the user's state

node dev.ts --onboarding for a first run, --state NAME for a saved one (build it up, then node dev.ts save NAME), --copy for realistic volume. AGENTS.md, "Running it", covers the rest of the dev server.

  • --copy brings the user's real projects and chats into frame. Ask before evidence from it goes into a pull request, or build a state from scratch and save it.

Walk the flow

  1. Enter where a user enters: the tile, menu item, setup step or link that leads to the change, never a URL typed straight to the new page.
  2. Go all the way to the result: the agent answers, the run finishes, the setting takes effect after a restart.
  3. Then use it naturally for a few minutes: go Back, press Escape, resize, switch chats and machines, open it again. Most bugs a user finds come from this, after the change was called verified.
  4. Use real agents where the change touches them. A cheap real model is fine (Haiku, a free OpenCode model, a local model). If an agent can't be signed in, say so and use a clearly labelled fixture; never present a fixture as a real run. The fake agent belongs to e2e/.
  5. A backend or agent change runs for real: launch, follow the logs, cancel, and confirm the cleanup, on the cheapest tier of a real account. Delete what you created on every path, success or failure, and report the cost.
  6. Score it: would a newcomer understand what to do on each screen without being told? Say where they wouldn't.

The matrix

For each surface the change touches:

AxisCover
Statesfirst run, empty, loading, error, signed out, agent not ready, one backend down, offline (OfflineBanner), a remote workspace
Themeslight and dark, judged separately
Sizesthe default window, the narrowest it allows, fullscreen and maximized on each platform, long names and long lists
LanguageEnglish and one long locale (Russian or Polish, from Settings) for truncation and wrapping
Inputmouse, Tab and Shift-Tab, Enter and Escape, a double-click on submit, typing with an IME, paste
Timinga slow response, a stream that drops mid-turn, a window that was hidden and comes back
Platformsevery platform the change can behave differently on (below)

The desktop webviews

WKWebView, WebKitGTK and WebView2 each break in their own ways (orx-look, "The desktop webviews").

  • Playwright's WebKit is the closest stand-in you can script for WKWebView and WebKitGTK: pnpm --dir e2e exec playwright install webkit, then drive the web URL with webkit.launch(). It narrows the gap; it doesn't close it.
  • On macOS, node dev.ts desktop opens this worktree's app window. Look at a visible change there before calling it done.
  • On Windows and Linux, test the window from a canary build in a VM you own, never by taking over the user's desktop. WebView2 can be driven over CDP (e2e/README.md).
  • Updater, installer, window and path changes are tested on every platform they touch.

Evidence

  • Capture with your browser tool at the web URL: its screenshots and recordings show the page without the rest of the screen.
  • Look at every frame before sending it, for capture defects (devtools left open, a stray scrollbar, an offset, the wrong flow) and for product bugs you recorded without noticing. To check a video, extract its frames: ffmpeg -i .shots/name.webm -vf fps=2 .shots/name-%03d.png. .shots/ is ignored.
  • Report as arc/contributing.md, "Evidence", asks, with the score from step 6.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.