Skip to main content
Glama
Olorinm

visual-review-workbench

by Olorinm
README.md
# Visual Review Workbench

A portable [Agent Plugins 1.0.0](https://agent-plugins.org/specification) package for reviewing real frontend UI variants.

The plugin combines:

- An Agent Skill that defines the visual-review workflow and comparison rules.
- One MCP tool that opens, refreshes, verifies, captures, and closes review surfaces.
- Dependency-free Node.js scripts that implement the review shell.

## Package boundaries

This package contains only reusable review infrastructure. It intentionally excludes:

- Product source code and product-specific review routes.
- Screenshots, recordings, captured application state, and business fixtures.
- Local usernames, absolute machine paths, browser profiles, credentials, and environment files.
- Repository commits, worktrees, and generated review output.

Project-specific adapters are generated at runtime inside the project being reviewed. Generated review output belongs in a temporary or project-selected directory, never in this plugin package.

## Components

```text
visual-review-workbench/
├── plugin.json
├── mcp.json
├── skills/
│   └── review-frontend-variants/
│       ├── SKILL.md
│       ├── references/
│       └── scripts/
├── server/
│   └── index.mjs
└── scripts/
```

The MCP server exposes one tool: `visual_review_workbench`.

Its `action` field supports `open`, `refresh`, `verify`, `capture`, and `close`. Route scaffolding, fixture capture, measurement, and recording remain internal scripts directed by the skill instead of expanding the public tool surface.

Browser-backed commands require Playwright to be resolvable from the target project or plugin runtime. Static generation and serving use only Node.js built-ins.

## Validate

```bash
npm test
```

To add organization-specific deny terms to the portability audit:

```bash
PORTABILITY_DENY_TERMS="internal-product,example-user" npm run check:portable
```

## Runtime paths

The package never embeds installation paths. The client supplies `PLUGIN_ROOT` and `PLUGIN_DATA` according to the Agent Plugins specification. MCP subprocess state and server logs use `PLUGIN_DATA`; target-project paths are accepted only as runtime tool arguments.