com um clique
comfy-qa-setup
// Set up the comfy-qa skill for a frontend repository. Adds .claude/skills/comfy-qa/SKILL.md, playwright.qa.config.ts, and a starter qa.spec.ts tailored to the repo stack.
// Set up the comfy-qa skill for a frontend repository. Adds .claude/skills/comfy-qa/SKILL.md, playwright.qa.config.ts, and a starter qa.spec.ts tailored to the repo stack.
Generate high-quality narrated QA demo videos for Comfy-Org products. Takes a PR, issue, feature doc, or product URL as input and produces a story, Playwright spec, and MP4 video with TTS narration and HUD overlay.
Generate high-quality narrated QA demo videos for Comfy-Org products. Given a target (PR, issue, feature doc, or product URL), generates a story, Playwright spec, and MP4 video with TTS narration. Enforces user-journey-first authoring: probe → story → videoScript → playwright.
| name | comfy-qa-setup |
| description | Set up the comfy-qa skill for a frontend repository. Adds .claude/skills/comfy-qa/SKILL.md, playwright.qa.config.ts, and a starter qa.spec.ts tailored to the repo stack. |
Add QA automation infrastructure to a frontend repository so that the comfy-qa
CLI and Claude agents can run Playwright E2E tests with video recording.
.claude/skills/comfy-qa/
SKILL.md # Repo-specific QA instructions for agents
REPRODUCE.md # Interactive issue reproduction guide
playwright.qa.config.ts # Playwright config (video ON, trace ON)
tests/e2e/qa.spec.ts # Starter smoke tests for key routes/features
Read package.json to determine:
| Field | What to look for |
|---|---|
| Framework | next → Next.js, nuxt → Nuxt, vue + vite → Vue+Vite |
| Package manager | bun.lock → bun, pnpm-lock.yaml → pnpm, yarn.lock → yarn, else npm |
| Auth | firebase, vuefire, react-firebase-hooks → Firebase Auth |
| UI library | primevue, flowbite-react, @mui/* |
| Existing tests | @playwright/test, vitest, jest in devDeps |
| Dev port | Check scripts.dev or framework config file |
No mocks. QA must run against real servers. The decision of which backend to use depends on whether the QA target (the PR/issue being tested) touches backend code or behavior.
Is the QA target related to the backend?
├─ YES → Clone backend repo to tmp/, build & run locally, point frontend to localhost
└─ NO → Use the staging server (the repo's default local dev config)
"Related to backend" means: the bug/feature involves API responses, data flow, WebSocket messages, auth behavior, or anything where the backend's behavior is part of what's being tested.
"Unrelated to backend" means: pure UI bugs, layout, CSS, i18n, theme switching, client-side interactions — anything that behaves the same regardless of which backend serves the data.
Most frontend repos already point to a staging API server in their
.env.development or equivalent config. Just start the frontend dev server —
it will use staging automatically.
# Read the repo's env config to find the staging URL
cat .env.development | grep API
# Start the frontend — API calls go to staging
PKG_MANAGER run dev
Clone the backend repo into tmp/, build it, run it locally, and point the
frontend to the local backend for debugging/QA.
# 1. Clone the backend into the workspace
git clone --depth 10 BACKEND_REPO_URL tmp/BACKEND_DIR
cd tmp/BACKEND_DIR
# 2. Install deps and start
# - For Python backends: venv + pip install + python main.py
# - For Go backends: go get + start script
# - For Node backends: npm install + npm start
# 3. If the backend needs a database, set it up:
# - Supabase: `supabase start` (local Postgres)
# - Docker: `docker compose up -d`
# - SQLite: often no setup needed
# 4. Point the frontend to local backend
API_BASE_URL=http://localhost:BACKEND_PORT PKG_MANAGER run dev
If the project uses Firebase Auth or similar, start the auth emulator locally:
firebase emulators:start --only auth
Check if @playwright/test is already in devDeps. If not:
PKG_MANAGER add -D @playwright/test
npx playwright install chromium
Adapt this template based on the repo's framework and port:
import { defineConfig, devices } from "@playwright/test";
export default defineConfig({
reporter: [["list"], ["html", { open: "never" }]],
timeout: 60000,
use: {
baseURL: "http://localhost:PORT", // ← fill in from dev server
trace: "on",
screenshot: "on",
video: "on",
},
expect: { timeout: 10000 },
projects: [
{ name: "chromium", use: { ...devices["Desktop Chrome"] } },
],
outputDir: "./tmp/qa-results/",
testDir: "./tests/e2e",
});
Common port defaults: Next.js → 3000, Nuxt → 3000, Vite → 5173.
Write a repo-specific SKILL.md describing:
data-testid conventions used in the codebaseUse grep -r 'data-testid' --include='*.vue' --include='*.tsx' --include='*.jsx'
to discover existing test selectors.
Write a repo-specific issue reproduction guide covering:
Write starter smoke tests that cover the repo's critical paths. The tests should:
Ensure the repo's .gitignore includes:
tmp/
Run the QA tests locally to make sure they pass:
PKG_MANAGER run dev &
npx playwright test --config playwright.qa.config.ts