Skip to content

showcase: witness - evidence-first QA with real desktop browsers#1123

Open
texasich wants to merge 1 commit into
RhysSullivan:mainfrom
texasich:feat/witness-integration
Open

showcase: witness - evidence-first QA with real desktop browsers#1123
texasich wants to merge 1 commit into
RhysSullivan:mainfrom
texasich:feat/witness-integration

Conversation

@texasich

Copy link
Copy Markdown

Witness — an open-source QA tool that drives real Chrome through test flows, records video evidence, and reports pass/fail.

Built in response to your tweet asking for an "OpenDevin for autonomous QA."

How it works

pip install git+https://github.com/texasich/witness.git
witness init
witness test witness.yaml

Test spec (TodoMVC — 8/8 passed)

name: "TodoMVC QA"
target: https://todomvc.com/examples/react/dist/
browser: chrome
steps:
  - action: type
    target: "New Todo Input"
    value: "Buy groceries"
  - action: press_key
    key: enter
  - assert:
      text_contains: "Buy groceries"
  - action: click
    target: "checkbox near Buy groceries"
  - assert:
      text_contains: "0 items left!"

Key differences

  • Real Chrome — your actual browser, not headless proxy
  • Background execution — no focus steal
  • Natural language targeting — "checkbox near Buy groceries" instead of CSS
  • Video evidence — automatic on every run
  • Cross-platform — Windows, macOS, Linux via cua-driver

Witness + Executor

Witness could use Executor as its tool backend for API/GraphQL/MCP calls during test flows.

Status

Would love your feedback — happy to jump on a call.

@greptile-apps

greptile-apps Bot commented Jun 24, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds a single showcase/witness/README.md that documents Witness, an external open-source QA tool, and describes how it could integrate with Executor as its tool backend.

  • The file is purely documentation: no code, tests, or configuration changes are included.
  • One em-dash appears in the opening paragraph, violating the project-wide ban in AGENTS.md.
  • The "API + UI E2E" YAML example uses an executor_call action that is not yet implemented in Witness; the PR description frames this as aspirational but the README does not make that boundary clear.

Confidence Score: 4/5

Safe to merge after fixing the em-dash and clarifying the executor_call example.

The change is documentation-only with no runtime impact. The two issues are a style rule violation (em-dash) and a YAML example that could mislead readers into thinking executor integration already works when it does not.

showcase/witness/README.md needs the em-dash corrected and the executor_call YAML example annotated or moved to a planned section.

Important Files Changed

Filename Overview
showcase/witness/README.md New showcase README for the external Witness QA tool; contains one em-dash violating the project style rule and a YAML example that presents an unimplemented executor_call action as if it were working.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[witness.yaml spec] --> B[witness CLI]
    B --> C[cua-driver]
    C --> D[Real Chrome browser]
    B --> E[Video recording: recording.mp4]
    B --> F[Per-step screenshots]
    B --> G[UIA tree snapshots]
    B --> H[results.json pass/fail]
    B -.->|planned| I[Executor tool backend]
    I -.-> J[OpenAPI / GraphQL / MCP tools]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[witness.yaml spec] --> B[witness CLI]
    B --> C[cua-driver]
    C --> D[Real Chrome browser]
    B --> E[Video recording: recording.mp4]
    B --> F[Per-step screenshots]
    B --> G[UIA tree snapshots]
    B --> H[results.json pass/fail]
    B -.->|planned| I[Executor tool backend]
    I -.-> J[OpenAPI / GraphQL / MCP tools]
Loading

Reviews (1): Last reviewed commit: "showcase: add witness — evidence-first Q..." | Re-trigger Greptile

@@ -0,0 +1,80 @@
# Witness + Executor

[Witness](https://github.com/texasich/witness) is an evidence-first QA tool that drives real desktop browsers (via [cua-driver](https://github.com/trycua/cua)) through test flows, records video evidence, and reports pass/fail — all from a simple YAML spec.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The em-dash () on this line violates the project's style rule in AGENTS.md, which bans em-dashes everywhere: prose, docs, code comments, and PRs. Use a comma or restructure the sentence instead.

Suggested change
[Witness](https://github.com/texasich/witness) is an evidence-first QA tool that drives real desktop browsers (via [cua-driver](https://github.com/trycua/cua)) through test flows, records video evidence, and reports pass/fail all from a simple YAML spec.
[Witness](https://github.com/texasich/witness) is an evidence-first QA tool that drives real desktop browsers (via [cua-driver](https://github.com/trycua/cua)) through test flows, records video evidence, and reports pass/fail, all from a simple YAML spec.

Context Used: AGENTS.md (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment on lines +38 to +47
target: https://myapp.com
browser: chrome
steps:
# Use Executor to reset test state via API
- action: executor_call
tool: "myapp resetTestData"
args: '{"user": "test@example.com"}'

# Then drive the real browser
- action: navigate

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 executor_call presented as an implemented action

The YAML block shows action: executor_call as a working step, but the PR description describes this integration as aspirational ("Witness could use Executor as its tool backend"). A reader may try this spec and get a runtime error when the action is unrecognised. The Status section at the bottom lists no ✅ for Executor integration, which is easy to miss. Consider adding a note like # planned above the executor_call step, or moving it under a separate "Planned integrations" heading, so the capability boundary is unambiguous.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant