Build and run Sensify locally with data seeding and Playwright to verify end-to-end functionality.

Install

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

Installs to .claude/skills/verify-melnicorn

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.

Build, run, and drive Sensify locally to verify changes end-to-end
66 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Launch the Sensify application locally with specified data directory and API token
  • Seed data for push sensors through the API
  • Insert historical data directly into the SQLite database for charts and backtests
  • Insert alert rules and events into the database
  • Drive the UI using Playwright for end-to-end verification

How it works

This skill launches the Sensify application locally, seeds sensor data via API or direct database insertion, and enables UI driving with Playwright for end-to-end verification. It also allows for inserting alert rules and events.

Inputs & outputs

You give it
Sensify source code, API token, and data for seeding
You get back
Locally running Sensify app, seeded sensor data, and UI verification results

When to use verify

  • Verifying sensor data processing
  • Testing alert rules
  • Running local end-to-end tests

About this skill

Verifying Sensify changes

Launch

pnpm install
DATA_DIR=$SCRATCH/data SENSIFY_API_TOKEN=testtoken pnpm dev --port 3100

The SQLite schema is created by migrations on the first request; DATA_DIR isolates the database, and SENSIFY_API_TOKEN seeds the ingest bearer token so you can POST readings immediately. The poller (pnpm poller) is a separate process — without it, pull devices don't poll and the alert sweeper doesn't run, so dwell/cooldown only advance when new readings arrive.

Seed data

Create a push sensor through the real API:

curl -X POST http://localhost:3100/api/v1/readings \
  -H "Authorization: Bearer testtoken" -H "Content-Type: application/json" \
  -d '{"sensorId":"test-sensor","sensorName":"Living Room","data":{"temperature":{"value":21.5,"unit":"C"},"humidity":{"value":45}}}'

For history (charts, backtests) insert directly with node -e + better-sqlite3 from the repo's node_modules into the readings table (temperatures in canonical °C). Alert rules/events can be inserted into alert_rules / alert_events the same way — definitions are JSON validated by src/lib/alerts/schemas.ts.

Alert notifications with no channels configured still log to the dev-server stdout as [alert:start] <rule name>: <message> — grep the server log to verify engine behavior.

Drive the UI

Playwright is installed globally (/opt/node22/lib/node_modules/playwright, not in the repo). Symlink it into a scratch node_modules/ and launch with executablePath: '/opt/pw-browsers/chromium-1194/chrome-linux/chrome' (the bare /opt/pw-browsers/chromium path is a directory, not the binary).

Gotchas:

  • Playwright touch emulation (devices['iPhone 13'] + touchscreen.tap) does NOT synthesize the mouse-compat events real mobile browsers fire, so recharts tooltips/drag never trigger. Use page.mouse on a desktop viewport to exercise chart hover/tap/drag paths.
  • HeroUI modal slots are addressable as [data-slot="modal-body"], [data-slot="modal-dialog"] for scroll assertions.

When not to use it

  • When the poller process is not running, affecting pull devices and alert sweeper
  • When Playwright touch emulation is needed for recharts tooltips/drag
  • When Playwright is installed directly in the repository

Limitations

  • The poller (`pnpm poller`) is a separate process; without it, pull devices don't poll and the alert sweeper doesn't run
  • Playwright touch emulation does NOT synthesize mouse-compat events for recharts tooltips/drag
  • Playwright must be symlinked into a scratch `node_modules/`, not in the repo

How it compares

This workflow provides specific commands for launching Sensify, seeding data, and driving the UI with Playwright, unlike a generic local setup that might not include direct database insertion for historical data or specific UI testing consi

Compared to similar skills

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

SkillInstallsUpdatedSafetyDifficulty
verify (this skill)016dReviewIntermediate
orchardcore-tester15moReviewIntermediate
fingerprint02moReviewIntermediate
add-test04moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry