This repository is training infrastructure for computer-use agents. Each mock site should behave like a rigorous, self-contained sandbox version of a real commercial product. The goal is not just visual similarity; the goal is to make RL tasks reliable by removing dead ends, fake affordances, state-sync bugs, and surprising UI failures.
-
UI completeness matters most. If a control is visible and appears clickable, it must do something coherent. Do not leave clickable placeholders, “not implemented” toasts, empty menus, fake buttons, or no-op flows. Computer-use agents will click edges humans might avoid.
-
Preserve task compatibility. Do not break existing task schemas. Never remove or rename fields from app state, API responses, or fixtures. Prefer additive fields only when necessary. Existing
/go,/post,/upload,/files, initial state, current state, and diff behavior must remain backward compatible. -
Realistic product shape. Compare against the real product’s high-level navigation and first screen. If the real app has a homepage, dashboard, inbox, file picker, or document list before the editor, the mock should too. Direct-editor-only mocks are acceptable only when that is how the real product opens.
-
No gray placeholder graveyards. Avoid disabled menu items as a substitute for implementation. Either implement a local sandbox version, hide the item, or move it to a real dialog/state. Disabled controls are acceptable only for transient state that the real app also disables, such as Undo with an empty undo stack.
-
File interactions are first-class. Upload, download, import, export, attachment, file picker, preview, and generated files are high-value training surfaces. Implement them locally with real browser/file behavior whenever possible. Server endpoints must serve uploaded/downloaded files with useful content type and disposition.
-
State must be inspectable and deterministic. User-visible edits must persist through local state and sync to the mock server for the current
sid./go?sid=...must expose meaningfulinitial_state,current_state, andstate_diff. The initial baseline must be created before the first mutation so diffs are stable. -
Sandbox actions should be safe and local. For cloud/collaboration actions, implement local analogs: share dialogs, local drafts, local version history, local folder movement, local trash, local notifications. Do not call external services.
-
Browser QA is mandatory. Build success is not enough. Use Browser Use against localhost to click realistic workflows, edge menus, dialogs, file actions, keyboard shortcuts, mobile-ish/narrow states when relevant, and
/gostate inspection.
-
Sparse pull only the target folder. Keep the working set small. Each worker owns exactly one app folder unless explicitly coordinating a shared helper.
-
Understand the real product shape. Identify the first screen, primary navigation, common object lifecycle, and file-related flows. Use stable knowledge and local screenshots. Browse only when current product details matter.
-
Inventory fake affordances. Search for:
placeholderTODOcoming soonnot availablenot implementedtoast- empty
onClick - disabled menu items
- menu items with no action
- buttons that only show a dead-end message
-
Test like a computer-use agent. Cover:
- first screen and route navigation
- menus and submenus
- create/open/edit/delete/duplicate flows
- search/filter/sort
- upload/download/import/export
- dialogs/modals/context menus
- keyboard shortcuts
- selection/drag/hover/resize/z-index behavior
- responsive and clipped layouts
/go?sid=...after mutations
-
Implement local behavior. Prefer real, minimal local behavior over fake feedback. Examples:
- Share opens a local access dialog and copy-link action.
- Email opens a local draft composer.
- Version history shows undo/history entries.
- Move updates a local folder label.
- Trash marks or moves the item locally.
- Download creates an actual file blob.
- Upload/import parses the file and updates app state.
- Charts/images/comments/notes create local state and visible UI.
-
Preserve schema. Use existing state fields if available. If adding fields, make them optional/additive and ensure initial fixtures still load. Do not deep-merge user state in a way that changes existing semantics unless the app already does so safely.
-
Fix server sync. Ensure save-state logic posts
set_currentfor bothsidand no-sid cases when the app supports server inspection. Ensure the server creates an initial baseline if missing, usinginitial_state || state. -
Verify. Run the app’s build command. Use Browser Use to validate several real workflows and inspect
/go. Record what was tested in the commit or final report. -
Commit one app at a time. Commit after one app reaches a meaningful quality bar. Do not bundle unrelated apps in one commit unless the change is a shared infrastructure fix.
An app is ready when:
- The first screen matches the real product’s expected entry point.
- No obvious clickable placeholder remains.
- Menus do not contain gray disabled items except state-dependent controls such as empty undo.
- Core create/edit/delete/search/filter/sort flows work.
- File upload/download/import/export surfaces work where relevant.
- Visual layers do not overlap incorrectly; hover, selection, and resize affordances render above the right surfaces.
- Dialogs can be opened and closed with mouse and Escape where expected.
- Mutations persist and appear in
/gostate/diff for the activesid. npm run buildor equivalent passes.- Browser Use QA covers at least three meaningful workflows.
Each worker must:
- Own one folder only, for example
websites/google_drive_mock/. - Not edit shared files unless explicitly assigned.
- Not revert or overwrite commits from other workers.
- Keep schema changes backward compatible.
- Prefer local sandbox implementations over external network behavior.
- Run searches for placeholders and fake affordances before finishing.
- Run build and Browser Use or a documented equivalent if Browser Use is unavailable in the worker context.
- Commit its app with a focused message after verification.
- Report changed files, workflows tested, residual risks, and commit hash.
Suggested worker prompt:
You own
websites/<app>_mockonly. ReadSANDBOX_COMPLETENESS_GUIDE.md. Sparse-checkout the folder if needed. QA the mock like a computer-use-agent training sandbox. Compare to the real product shape, remove clickable placeholders, implement local versions of visible features, preserve existing data schemas, fix state sync if needed, run build, validate in browser, and commit only your app changes to localmain. Do not edit other app folders. Final report: commit hash, key fixes, tests, remaining risks.
Batch A: high-value productivity/collaboration apps
google_drive_mockgoogle_docs_mockgoogle_calendar_mockslack_mocktrello_mockjira_mock
Batch B: operational SaaS apps
notion_mockairtable_mockasana_mocklinear_mockgithub_mocksalesforce_mock
Batch C: file/form-heavy or high-stakes workflow mocks
docusign_mockworkday_mockgreenhouse_mockquickbooks_mockstripe_dashboard_mockhubspot_mock
Batch D: commerce/travel/consumer workflows
amazon_mockbooking_com_mockexpedia_mockuber_eats_mockshopify_admin_mockzillow_mock
gmail_mock: state sync and compose draft/send behavior were fixed; compose clipping was improved.google_sheets_mock: homepage, editor route, file downloads/import, menu actions, local share/email/version/history, chart/image/note/comment/data-validation/named-range actions, grid z-index, and server baseline sync were improved.