Automates verification of cv-builder changes, covering dev server setup, data cleanup, and automated UI testing via Playwright.

Install

mkdir -p .claude/skills/verify-lenincuadra && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18997" && unzip -o skill.zip -d .claude/skills/verify-lenincuadra && rm skill.zip

Installs to .claude/skills/verify-lenincuadra

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

How to build, run and drive cv-builder to verify a change end-to-end (dev server, Playwright recipe, data hygiene, cleanup).
124 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Build and launch the cv-builder dev server
  • Drive the UI using Playwright
  • Maintain data hygiene with mock data
  • Clean up test data after verification
  • Verify feature changes end-to-end

How it works

The skill guides building and launching the cv-builder dev server, driving its UI with Playwright, and managing data hygiene. It outlines flows for wizard, pending, and delivery archive.

Inputs & outputs

You give it
cv-builder changes
You get back
Verified cv-builder functionality and cleaned test data

When to use verify

  • Verify feature changes in the dev environment
  • Run automated UI tests for cv-builder
  • Cleanup test data after local verification
  • Debug UI interaction issues

About this skill

Verifying cv-builder changes

Build / launch

  • npm test (vitest) and npm run build are CI checks — the real surface is the web app.
  • Dev server: npm run dev (port 3000). Next 16 refuses a second dev server for the same dir — if one is already running (check lsof -nP -iTCP:3000 -sTCP:LISTEN), drive that one: it hot-reloads the working tree, so it already serves your changes.

Data hygiene (important)

  • Local dev uses the user's REAL data: data/registry.json (private applications) and data/cvs/. Create test rows with obviously fake company names, then clean up: curl -X DELETE localhost:3000/api/registry/<code> and rm -rf data/cvs/<folder>.
  • .env.local may have GDOCS_* set — a real generation then creates REAL Google Docs in the user's Drive. The app cannot delete them; capture driveFolder from the row before deleting it and tell the user to remove the folder manually (or unset the env vars first and restart the server).

Driving the UI (Playwright)

  • Playwright isn't a project dep. A working copy lives in the npx cache: find ~/.npm/_npx -maxdepth 3 -name playwright -type d → import <that-path>/index.mjs directly from a scratchpad .mjs script (NODE_PATH does not work for ESM).
  • Selector gotchas:
    • "Empresa" label is ambiguous (table cells carry aria-labels) — use #company, #email, etc.
    • IconSelect dropdowns (Canal, Foco…) are DS DropdownMenus: options are getByRole("menuitemcheckbox", { name: ... }), not option.
    • Toasts: [data-sonner-toast] filtered by text.
    • Wizard steps: wait on getByText("Paso N de 4").
    • Generation fires a browser download — grab page.waitForEvent("download") before clicking Generar.
    • Confirmar's optional cover letter/preguntas actions swap the wizard's own body+footer for a takeover (own Cancelar/Guardar) — getByRole("button", { name: "Atrás" }) disappears while one is open; wait on the takeover's own heading (e.g. getByText("Nueva pregunta")) instead of the step counter.

Flows worth driving

  • Wizard: card "Nueva aplicación" → step 1 empresa → step 2 opcionales (fork "Registrar sin CV" lives here; canal Email + empty email disables both exits) → 3 idioma/foco → 4 confirmar (code preview + folder). Confirmar's end has two optional cards, "Cover letter" and "Preguntas" — clicking their button silently creates the Borrador row (reusing the code already shown in the folder preview) then opens the same takeover the row detail drawer uses; cancelling out of the cover letter form there does not create a Drive doc or download (no data/cvs/ cleanup needed) as long as you stop before "Generar y entregar".
  • Pending flow: row shows muted FileClock in Seguimiento; drawer → card Entrega → "Generar CV" opens the deferred wizard at step 3 with the reserved code.
  • Delivery archive: GET /api/cvs/<folder>/<file>.docx (200 attachment), invalid paths → 400, missing → 404; files land in data/cvs/<folder>/.

When not to use it

  • When a dev server for the same directory is already running and you intend to launch a new one

Limitations

  • Next 16 refuses a second dev server for the same directory
  • Local dev uses the user's REAL data
  • The app cannot delete Google Docs created by real generation

How it compares

This skill provides a structured approach to end-to-end verification of cv-builder changes, including dev server management, data hygiene, and Playwright-driven UI testing, unlike manual testing.

Compared to similar skills

verify side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
verify (this skill)015dCautionIntermediate
playwright-browser-automation297moReviewIntermediate
documenso-local-dev-loop210dReviewBeginner
customerio-local-dev-loop110dReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

playwright-browser-automation

lackeyjb

Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.

29146

documenso-local-dev-loop

jeremylongshore

Set up local development environment and testing workflow for Documenso. Use when configuring dev environment, setting up test workflows, or establishing rapid iteration patterns with Documenso. Trigger with phrases like "documenso local dev", "documenso development", "test documenso locally", "documenso dev environment".

26

customerio-local-dev-loop

jeremylongshore

Configure Customer.io local development workflow. Use when setting up local testing, development environment, or offline development for Customer.io integrations. Trigger with phrases like "customer.io local dev", "test customer.io locally", "customer.io development environment", "customer.io sandbox".

12

firecrawl-local-dev-loop

jeremylongshore

Configure FireCrawl local development with hot reload and testing. Use when setting up a development environment, configuring test workflows, or establishing a fast iteration cycle with FireCrawl. Trigger with phrases like "firecrawl dev setup", "firecrawl local development", "firecrawl dev environment", "develop with firecrawl".

12

deepgram-local-dev-loop

jeremylongshore

Configure Deepgram local development workflow with testing and iteration. Use when setting up development environment, configuring test fixtures, or establishing rapid iteration patterns for Deepgram integration. Trigger with phrases like "deepgram local dev", "deepgram development setup", "deepgram test environment", "deepgram dev workflow".

11

maintainx-local-dev-loop

jeremylongshore

Set up a local development loop for MaintainX integration development. Use when configuring dev environment, testing API calls locally, or setting up a sandbox workflow for MaintainX. Trigger with phrases like "maintainx dev setup", "maintainx local", "maintainx development environment", "maintainx testing setup".

11

Search skills

Search the agent skills registry