From a09436f062ccccef37ee5c066dc5f066381528d1 Mon Sep 17 00:00:00 2001 From: Shawn Pana Date: Wed, 17 Jun 2026 17:31:36 -0700 Subject: [PATCH] Add Codex support for the qa plugin (dual-host) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ports the existing skills-based qa plugin to Codex by adding a .codex-plugin/ manifest alongside the existing .claude-plugin/ in the same dir — the skills/ directory is shared, so there's no duplicated skill content. Claude reads .claude-plugin/, Codex reads .codex-plugin/, each ignores the other. - qa/.codex-plugin/plugin.json — Codex manifest + interface metadata - .agents/plugins/marketplace.json — Codex catalog (lists qa) - qa/skills/qa/SKILL.md — install line made host-agnostic (claude plugin install … OR codex plugin add …) No MCP involved. Validated with codex-cli 0.133.0: marketplace add -> plugin list -> plugin add all succeed and the shared skill + references land in the install cache. Follow-up: browser-harness is remote-sourced from its own repo, so its .codex-plugin/ manifest belongs there; qa needs the browser-harness CLI (host-independent uv/pip install) regardless. Co-Authored-By: Claude Opus 4.8 (1M context) --- .agents/plugins/marketplace.json | 19 +++++++++++++++++++ qa/.codex-plugin/plugin.json | 17 +++++++++++++++++ qa/skills/qa/SKILL.md | 2 +- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 .agents/plugins/marketplace.json create mode 100644 qa/.codex-plugin/plugin.json diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..84ff550 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,19 @@ +{ + "name": "browser-use", + "interface": { + "displayName": "Browser Use" + }, + "plugins": [ + { + "name": "qa", + "source": { + "source": "local", + "path": "./qa" + }, + "policy": { + "installation": "AVAILABLE" + }, + "category": "Productivity" + } + ] +} diff --git a/qa/.codex-plugin/plugin.json b/qa/.codex-plugin/plugin.json new file mode 100644 index 0000000..237e178 --- /dev/null +++ b/qa/.codex-plugin/plugin.json @@ -0,0 +1,17 @@ +{ + "name": "qa", + "version": "0.1.0", + "description": "QA-test any website or app with a real browser and return a 1-5 score with evidence. Drives a Browser Use cloud browser (tunnels localhost automatically). Requires the browser-harness CLI.", + "author": { + "name": "Browser Use", + "url": "https://browser-use.com" + }, + "skills": "./skills/", + "interface": { + "displayName": "QA", + "shortDescription": "QA-test a site or app and return a 1-5 score with evidence.", + "longDescription": "Drives a real Browser Use cloud browser to test a website or app and return a 1-5 quality score (5 = flawless, 1 = broken) with evidence. Tunnels a localhost dev server automatically. Run as /qa . Requires the browser-harness CLI (a one-time uv/pip install).", + "category": "Productivity", + "websiteURL": "https://browser-use.com" + } +} diff --git a/qa/skills/qa/SKILL.md b/qa/skills/qa/SKILL.md index bea0da8..14a42a3 100644 --- a/qa/skills/qa/SKILL.md +++ b/qa/skills/qa/SKILL.md @@ -26,7 +26,7 @@ PY ``` If `browser-harness` is **not** on `PATH`, stop and tell the user to install it, then resume: -- Plugin: `claude plugin install browser-harness@browser-use` +- Plugin: install the `browser-harness` plugin for your agent — `claude plugin install browser-harness@browser-use` (Claude Code) or `codex plugin add browser-harness@browser-use` (Codex) - CLI (one-time): see the browser-harness skill's `references/install.md` (it's a `uv`/pip install of the `browser-harness` package). Repo: https://github.com/browser-use/browser-harness Do not attempt to QA with anything other than browser-harness + a cloud browser.