testuiux
Autonomous visual UI/UX defect detector and responsive layout verification engine powered by Playwright and Qwen2.5-VL. Captures multi-viewport screenshots, recognizes layout bugs, generates structured report.json, and triggers a lightweight triage model (SLM) to produce an executive briefing directly consumable by primary coding agents.
Features
- Multi-Viewport Automated Capture: Uses Playwright to render mobile (
375x812), tablet (768x1024), and desktop (1440x900) viewports. - Vision-Language QA Inspection: Evaluates screenshots with Qwen2.5-VL to spot element collisions, text overlap, truncation, unconstrained horizontal overflows, broken assets, and unreadable color contrast.
- Visual Defect Highlighting: Uses Pillow to render color-coded bounding boxes and severity badges.
- Structured JSON Reporting: Automatically exports
report.jsonwith coordinate boundaries, severity ratings, and CSS remedies. - Dual-Model Autonomous Triage: Feeds raw audit data into a compact language model (
qwen2.5:1.5b) to synthesize an executive briefing (agent_briefing.txt) for primary AI coding assistants. - Antigravity Skill Native: Registered as a persistent skill (
testuiux) invoked automatically whenever frontend UI changes are implemented.
Requirements
- Python 3.10+
- Playwright Chromium (
playwright install chromium) - Ollama with
qwen2.5-vl:3bandqwen2.5:1.5b(or--mode mockfor dry-run verification)
Installation
git clone https://github.com/yanzyuyu/testuiux.git
cd testuiux
pip install -r requirements.txt
playwright install chromium
Usage
1. Test Run on Bundled Demo Fixture
Execute a verification run against demo/buggy_site.html:
python -m bughunter.cli demo/buggy_site.html --mode mock --format json
2. Live Scan with Local AI Models (Ollama)
Ensure local Ollama models are running:
ollama run qwen2.5-vl:3b
ollama run qwen2.5:1.5b
Run audit against development or staging server:
python -m bughunter.cli http://localhost:3000 --mode api --format json --notify
3. Generate All Artifacts (JSON + HTML Report)
python -m bughunter.cli http://localhost:3000 --mode api --format all --output-dir ./audit_results
Generated Artifacts
audit_results/
├── report.json # Structured machine-readable defects data
├── agent_briefing.txt # Executive briefing for primary AI agent
├── report.html # Standalone side-by-side comparison report
├── screenshot_mobile.png # Clean capture
└── annotated_mobile.png # Highlighted defects capture
Defect Categories
| Issue Type | Description |
|---|---|
ELEMENT_COLLISION |
Fixed footers, modals, or floating buttons occluding interactive UI |
HORIZONTAL_OVERFLOW |
Containers exceeding screen boundaries causing horizontal scroll |
TEXT_OVERLAP |
Colliding labels or texts rendering over other visual components |
TEXT_TRUNCATION |
Prematurely clipped strings lacking proper CSS ellipsis rules |
BROKEN_ASSET |
Failed image requests and unrendered placeholder graphics |
CONTRAST_LOW |
Text violating accessibility contrast standards against background |
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.
Metadata
Release files for testuiux 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| testuiux-0.1.0.tar.gz | 19.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| testuiux-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.5 kB
Release files / testuiux-0.1.0.tar.gz
| Download URL | testuiux-0.1.0.tar.gz |
|---|---|
| Size | 19.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
82b7b1373e1d69873d86475f4b0b40049e40179cef29fad437790082533a81df
|
|
BLAKE2b-256 checksum How to use checksums |
203173364c790c203a03c0241de02b714fadaedfa430a10a93a849d13e9fc76e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / testuiux-0.1.0-py3-none-any.whl
| Download URL | testuiux-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe554b951c05bd382e173e0e71eb326abf24c0fe5f9f08dcd4b8f3a53e92c9ac
|
|
BLAKE2b-256 checksum How to use checksums |
e036a958433076e1389d8b927db18e7372ddc75efd44e1f46de79fa2cd7c1739
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|