Skip to content

Add verify-deepbreathing skill + helpers (first-run proof included) - #73

Draft
abiassi wants to merge 2 commits into
mainfrom
cursor/verification-skill-761c
Draft

Add verify-deepbreathing skill + helpers (first-run proof included)#73
abiassi wants to merge 2 commits into
mainfrom
cursor/verification-skill-761c

Conversation

@abiassi

@abiassi abiassi commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator

This adds a project-local verification skill for the Deep Breathing Exercises web app and proves it on a running local instance.

What’s included

  • .cursor/skills/verify-deepbreathing/SKILL.md (name: verify-deepbreathing)
  • Helpers (all executable):
    • bin/launch.sh — start isolated Next.js dev on a dedicated port
    • bin/doctor.mjs — health check (pid + HTTP + ownership)
    • bin/drive-home-breathing.mjs — drive homepage orb (Start→Pause) [see note]
    • bin/drive-visualizer.mjs — generic driver for any /breathe/* route
    • bin/drive-duration.mjs — drive duration selection (no audio required)
    • bin/cleanup.sh — kill only what we started; preserve evidence
  • Feature map:
    • features/README.md
    • features/{homepage-breathing,pattern-box,languages-index,duration-selection}.md
  • First‑run proof artifacts under evidence/

Proof run (launch → doctor → drive ONE feature → evidence → cleanup)

  • Instance URL/port: http://localhost:4317
  • Driven feature: Homepage duration selection (chips under the orb)
  • Evidence paths (left in repo after cleanup):
    • .cursor/skills/verify-deepbreathing/evidence/2026-08-31T19-28-01-809Z/homepage-duration-1min.png
    • .cursor/skills/verify-deepbreathing/evidence/2026-08-31T19-28-01-809Z/homepage-duration-1min.aria.json
  • Cleanup: server stopped; evidence preserved

Notes on the homepage Start→Pause path

  • The visualizer’s Start→Pause transition requires WebAudio to resume. In fully headless automation Chromium’s AudioContext.resume() can remain suspended; in that mode the orb’s aria-label stays “Start Session.”
  • The harness still ships the Start driver (bin/drive-home-breathing.mjs) and a generic visualizer driver. Running those in a headed browser (HEADLESS=false) or with a virtual/unlocked audio context should flip to “Pause Session.”

How to run locally

  1. Launch: .cursor/skills/verify-deepbreathing/bin/launch.sh 4317
  2. Doctor: node .cursor/skills/verify-deepbreathing/bin/doctor.mjs
  3. Drive one mapped feature (examples):
    • Homepage Start (see note): node .cursor/skills/verify-deepbreathing/bin/drive-home-breathing.mjs
    • Generic visualizer (Box): node .cursor/skills/verify-deepbreathing/bin/drive-visualizer.mjs --path /breathe/box --evidence box
    • Duration selection: node .cursor/skills/verify-deepbreathing/bin/drive-duration.mjs
  4. Cleanup: .cursor/skills/verify-deepbreathing/bin/cleanup.sh

Implementation notes

  • Primary surface confirmed: Next.js 15 web UI at / (NATIVE_I18N_MODE=proxy). Expo apps exist under apps/, but are not part of this first driver.
  • The harness uses Playwright (Chromium) with ARIA-first selectors and CDP Accessibility.getFullAXTree for the ARIA snapshot.
  • Isolation: dedicated PORT (default 4317) and a unique user-data-dir per run under .cursor/skills/verify-deepbreathing/profile/.

Never merge this PR; it is a verification skill + proof drop.

Open in Web Open in Cursor 

Co-authored-by: Amorim Abiassi Ferreira <abiassi@users.noreply.github.com>
@vercel

vercel Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
deepbreathing-tmmj Error Error Aug 31, 2026 7:31pm

Request Review

Co-authored-by: Amorim Abiassi Ferreira <abiassi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants