[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-cypress-cypress-tap":3,"mdc--nkribu-key":39,"related-repo-cypress-cypress-tap":1122,"related-org-cypress-cypress-tap":1176},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":34,"sourceUrl":37,"mdContent":38},"cypress-tap","drive and inspect Cypress test sessions","Drives a running Cypress open-mode session through `cypress tap` to run and rerun specs, wait for fresh results, inspect reporter and command logs, and query or rewind the app under test through DOM, accessibility, styles, and snapshots. Use when authoring or debugging Cypress e2e or component specs, discovering selectors, diagnosing failures, or verifying test behavior without GUI interaction. Not for one-shot headless runs. Requires Cypress 15.21+, a Chromium-family browser, and a running `cypress open` session.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"cypress","Cypress","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fcypress.png","cypress-io",[13,15,18,21],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"E2E Testing","e2e-testing",{"name":19,"slug":20,"type":14},"Testing","testing",{"name":22,"slug":23,"type":14},"Debugging","debugging",39,"https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fai-toolkit","2026-08-26T04:11:18.490315",null,3,[30,31,32,8,33,20],"agent-skills","ai","ai-tools","skills",{"repoUrl":25,"stars":24,"forks":28,"topics":35,"description":36},[30,31,32,8,33,20],"Fast, flexible, and open tooling for building intelligent workflows with Cypress.","https:\u002F\u002Fgithub.com\u002Fcypress-io\u002Fai-toolkit\u002Ftree\u002FHEAD\u002Fskills\u002Fcypress-tap","---\nname: cypress-tap\ndescription: >-\n  Drives a running Cypress open-mode session through `cypress tap` to run and\n  rerun specs, wait for fresh results, inspect reporter and command logs, and\n  query or rewind the app under test through DOM, accessibility, styles, and\n  snapshots. Use when authoring or debugging Cypress e2e or component specs,\n  discovering selectors, diagnosing failures, or verifying test behavior\n  without GUI interaction. Not for one-shot headless runs. Requires Cypress\n  15.21+, a Chromium-family browser, and a running `cypress open` session.\nmetadata:\n  version: 1.0.0\n---\n\n# Driving Cypress with `cypress tap`\n\n`cypress tap` controls an already-running `cypress open` session. Use it to iterate on specs,\ninspect the reporter and command log, and read the app under test without GUI interaction.\nUse `cypress run` instead for a one-shot headless batch.\n\n## Prerequisites\n\n- Confirm from package metadata or the lockfile that the resolved Cypress is 15.21.0+ and\n  contains `tap`. Do not use `tap --help` to probe an unknown older build; prereleases below the\n  version floor may attempt session discovery instead of printing help.\n- The session must use Electron, Chrome, Chromium, or Edge. Firefox and WebKit are unsupported.\n- `cypress open` and any configured `baseUrl` dev server must already be running.\n- The cwd chooses both the Cypress binary and the automatically selected session. When the\n  target project pins an older Cypress, run `tap` from a compatible checkout and pass\n  `--session \u003Cpid>` on every call.\n\n## Route by task\n\n- **Start, select, or poll a session:** read\n  [session-lifecycle.md](references\u002Fsession-lifecycle.md).\n- **Run a spec or read its results:** read [session-lifecycle.md](references\u002Fsession-lifecycle.md)\n  and [reading-results.md](references\u002Freading-results.md).\n- **Author or inspect a spec:** read [recipes.md](references\u002Frecipes.md) and\n  [reading-the-app.md](references\u002Freading-the-app.md).\n- **Diagnose a failure:** read [recipes.md](references\u002Frecipes.md),\n  [reading-results.md](references\u002Freading-results.md), and\n  [reading-the-app.md](references\u002Freading-the-app.md).\n- **Command failure, hang, wrong project, or surprising output:** read\n  [troubleshooting.md](references\u002Ftroubleshooting.md).\n- **One noninteractive batch:** use `cypress run`, not `tap`.\n\nRead only the references required for the current task.\n\n## Core commands\n\n- `sessions`: reachable sessions, project roots, testing types, and browsers; JSON adds support\n  and renderer health.\n- `status`: lifecycle stage, selected spec, run identity, counts, build error, and active pin.\n- `specs`: runnable project-relative spec paths for the session's testing type.\n- `run \u003Cspec>`: dispatches a spec and returns immediately.\n- `reporter`: spec overview and test ids; with `--test-id`, the complete test attempt.\n- `command`: one command-log row with network data, snapshots, and console properties.\n- `pin`: rewinds the app frame to a command snapshot.\n- `dom`, `aria`, `inspect`: read the settled app or currently pinned snapshot.\n\nAll commands accept `--session \u003Cpid>`, `--json`, and `--timeout \u003Cms>`. On a confirmed supported\nbuild, use `npx cypress tap \u003Ccommand> --help` for command-specific flags.\n\n## The non-negotiable verdict rule\n\n`run` confirms dispatch, not execution, and returns before the new run starts. During that gap,\n`status` and app reads can still return the previous run's plausible verdict and page.\n\nFor every explicit run:\n\n1. Read the current `startedAt`.\n2. Dispatch exactly one spec.\n3. Poll one `status --json` response at a time.\n4. Accept only `passed` or `failed` for the expected `spec` with a non-empty, changed\n   `startedAt`. `startedAt` is null only when no run has ever started for that spec in the\n   session — a build failure on first selection. A build that fails on rerun or on a watcher\n   rebuild still advances `startedAt`, so it takes the normal path. Keep the null fallback\n   (a changed observable baseline, or a preceding `loading`\u002F`running` observation) for the\n   first-selection case only.\n5. Bound the loop and fail if no matching fresh verdict arrives.\n\nSaving the active spec triggers an automatic watcher run. After editing, either use that run or\nlet it settle before taking a baseline and dispatching another. Never intentionally put two runs\nin flight.\n\nBlank and partial payloads from a successful `status` call occur transiently. Treat missing\nfields as \"keep waiting,\" not as a state change. A nonzero `status` exit is a command failure,\nnot a partial read: stop polling and report it.\n\nOnly `passed` and `failed` are verdicts. A build failure is `failed` with the diagnostic in\n`status.error`, possibly before any tests exist. `status` is the only surface that carries that\ndiagnostic — `reporter` renders a failed build as an empty spec.\n\n## Critical correctness rules\n\n1. **Target the intended session.** If several sessions exist, or auto-selection behaves oddly,\n   inspect `sessions` and pass `--session \u003Cpid>`. Auto-selection can choose another project or an\n   unresponsive session.\n2. **Preserve the binary location.** Cwd controls `npx` resolution on every call. When the\n   project pins an older Cypress, run commands from a compatible checkout and pass\n   `--session \u003Cpid>`.\n3. **Do not parse failed commands.** Check the exit code before parsing JSON. Supported-build\n   failures generally use stderr, but older compatibility failures may use stdout. An ambiguous\n   selector is the intentional exception: it exits `1` and lists matches on stdout.\n4. **Do not discard dispatch stdout while checking compatibility.** An older Cypress may print\n   `Unknown command \"tap\"` and usage text to stdout; redirecting it hides the cause.\n5. **Redirect potentially large JSON.** `reporter --test-id --json` and `command --json` can be\n   hundreds of kilobytes. Save them to a file and parse the file.\n6. **Check truncation before concluding absence.** `dom` and `aria` cap output. Narrow the\n   selector or raise the limit when `(output truncated)` appears.\n7. **Sanity-check the live frame before concluding absence.** A trailing pending\u002Fskipped test\n   can leave the settled runner on a blank placeholder while app reads still exit `0`. Confirm a\n   known app anchor. If the frame is blank, pin a snapshot from the last real command and read\n   that state instead.\n8. **Read results before editing or deleting the spec.** Results and snapshots live in the\n   Cypress app's memory and can disappear on rerun, restart, rename, or deletion.\n9. **Clear pins.** After inspecting a command snapshot, run `pin --clear`; otherwise later app\n   reads continue to describe the pinned past. An exit-`0` `cleared:false` result is a benign\n   no-op even if human output says `FAILED TO CLEAR PIN`.\n10. **Use the right reader for live state.** Use `aria` for current form-control values:\n    `dom` and `inspect` can show the initial HTML `value` attribute, and `inspect` may omit the\n    accessibility value. Use `dom` for exact live-region, toast, status, and label text because\n    `aria` may omit descendant text.\n\n## Output contract\n\n- Human output is for reading; `--json` is for parsing and may contain much more data.\n- `status` exits `0` for known lifecycle stages, including `not connected`. Discovery,\n  compatibility, unsupported-browser, and renderer failures exit `1`, sometimes with no stdout;\n  a poller must fail fast on that nonzero exit.\n- `dom`, `aria`, and `inspect` require exactly one selected element. Ambiguity exits `1` with\n  candidate selectors. A miss is not a CLI failure: `dom` and `inspect` report `found:false`;\n  `aria` returns an empty tree both for a miss and for an element with no accessibility node.\n- Failures are prose without stable error codes. Branch on exit status, not message text.\n\n## Performance defaults\n\n- Prefer one `reporter --test-id` read over one `command` call per row.\n- After a fresh verdict and live-frame sanity check, independent app reads may run concurrently.\n- If bounded status polling fails, inspect `sessions` for `rendererResponsive: false`; restart a\n  wedged renderer instead of increasing `--timeout`.\n",{"data":40,"body":43},{"name":4,"description":6,"metadata":41},{"version":42},"1.0.0",{"type":44,"children":45},"root",[46,62,89,96,165,171,306,311,317,431,466,472,490,495,600,605,624,672,678,946,952,1061,1067],{"type":47,"tag":48,"props":49,"children":51},"element","h1",{"id":50},"driving-cypress-with-cypress-tap",[52,55],{"type":53,"value":54},"text","Driving Cypress with ",{"type":47,"tag":56,"props":57,"children":59},"code",{"className":58},[],[60],{"type":53,"value":61},"cypress tap",{"type":47,"tag":63,"props":64,"children":65},"p",{},[66,71,73,79,81,87],{"type":47,"tag":56,"props":67,"children":69},{"className":68},[],[70],{"type":53,"value":61},{"type":53,"value":72}," controls an already-running ",{"type":47,"tag":56,"props":74,"children":76},{"className":75},[],[77],{"type":53,"value":78},"cypress open",{"type":53,"value":80}," session. Use it to iterate on specs,\ninspect the reporter and command log, and read the app under test without GUI interaction.\nUse ",{"type":47,"tag":56,"props":82,"children":84},{"className":83},[],[85],{"type":53,"value":86},"cypress run",{"type":53,"value":88}," instead for a one-shot headless batch.",{"type":47,"tag":90,"props":91,"children":93},"h2",{"id":92},"prerequisites",[94],{"type":53,"value":95},"Prerequisites",{"type":47,"tag":97,"props":98,"children":99},"ul",{},[100,122,127,145],{"type":47,"tag":101,"props":102,"children":103},"li",{},[104,106,112,114,120],{"type":53,"value":105},"Confirm from package metadata or the lockfile that the resolved Cypress is 15.21.0+ and\ncontains ",{"type":47,"tag":56,"props":107,"children":109},{"className":108},[],[110],{"type":53,"value":111},"tap",{"type":53,"value":113},". Do not use ",{"type":47,"tag":56,"props":115,"children":117},{"className":116},[],[118],{"type":53,"value":119},"tap --help",{"type":53,"value":121}," to probe an unknown older build; prereleases below the\nversion floor may attempt session discovery instead of printing help.",{"type":47,"tag":101,"props":123,"children":124},{},[125],{"type":53,"value":126},"The session must use Electron, Chrome, Chromium, or Edge. Firefox and WebKit are unsupported.",{"type":47,"tag":101,"props":128,"children":129},{},[130,135,137,143],{"type":47,"tag":56,"props":131,"children":133},{"className":132},[],[134],{"type":53,"value":78},{"type":53,"value":136}," and any configured ",{"type":47,"tag":56,"props":138,"children":140},{"className":139},[],[141],{"type":53,"value":142},"baseUrl",{"type":53,"value":144}," dev server must already be running.",{"type":47,"tag":101,"props":146,"children":147},{},[148,150,155,157,163],{"type":53,"value":149},"The cwd chooses both the Cypress binary and the automatically selected session. When the\ntarget project pins an older Cypress, run ",{"type":47,"tag":56,"props":151,"children":153},{"className":152},[],[154],{"type":53,"value":111},{"type":53,"value":156}," from a compatible checkout and pass\n",{"type":47,"tag":56,"props":158,"children":160},{"className":159},[],[161],{"type":53,"value":162},"--session \u003Cpid>",{"type":53,"value":164}," on every call.",{"type":47,"tag":90,"props":166,"children":168},{"id":167},"route-by-task",[169],{"type":53,"value":170},"Route by task",{"type":47,"tag":97,"props":172,"children":173},{},[174,194,217,241,267,283],{"type":47,"tag":101,"props":175,"children":176},{},[177,183,185,192],{"type":47,"tag":178,"props":179,"children":180},"strong",{},[181],{"type":53,"value":182},"Start, select, or poll a session:",{"type":53,"value":184}," read\n",{"type":47,"tag":186,"props":187,"children":189},"a",{"href":188},"references\u002Fsession-lifecycle.md",[190],{"type":53,"value":191},"session-lifecycle.md",{"type":53,"value":193},".",{"type":47,"tag":101,"props":195,"children":196},{},[197,202,204,208,210,216],{"type":47,"tag":178,"props":198,"children":199},{},[200],{"type":53,"value":201},"Run a spec or read its results:",{"type":53,"value":203}," read ",{"type":47,"tag":186,"props":205,"children":206},{"href":188},[207],{"type":53,"value":191},{"type":53,"value":209},"\nand ",{"type":47,"tag":186,"props":211,"children":213},{"href":212},"references\u002Freading-results.md",[214],{"type":53,"value":215},"reading-results.md",{"type":53,"value":193},{"type":47,"tag":101,"props":218,"children":219},{},[220,225,226,232,234,240],{"type":47,"tag":178,"props":221,"children":222},{},[223],{"type":53,"value":224},"Author or inspect a spec:",{"type":53,"value":203},{"type":47,"tag":186,"props":227,"children":229},{"href":228},"references\u002Frecipes.md",[230],{"type":53,"value":231},"recipes.md",{"type":53,"value":233}," and\n",{"type":47,"tag":186,"props":235,"children":237},{"href":236},"references\u002Freading-the-app.md",[238],{"type":53,"value":239},"reading-the-app.md",{"type":53,"value":193},{"type":47,"tag":101,"props":242,"children":243},{},[244,249,250,254,256,260,262,266],{"type":47,"tag":178,"props":245,"children":246},{},[247],{"type":53,"value":248},"Diagnose a failure:",{"type":53,"value":203},{"type":47,"tag":186,"props":251,"children":252},{"href":228},[253],{"type":53,"value":231},{"type":53,"value":255},",\n",{"type":47,"tag":186,"props":257,"children":258},{"href":212},[259],{"type":53,"value":215},{"type":53,"value":261},", and\n",{"type":47,"tag":186,"props":263,"children":264},{"href":236},[265],{"type":53,"value":239},{"type":53,"value":193},{"type":47,"tag":101,"props":268,"children":269},{},[270,275,276,282],{"type":47,"tag":178,"props":271,"children":272},{},[273],{"type":53,"value":274},"Command failure, hang, wrong project, or surprising output:",{"type":53,"value":184},{"type":47,"tag":186,"props":277,"children":279},{"href":278},"references\u002Ftroubleshooting.md",[280],{"type":53,"value":281},"troubleshooting.md",{"type":53,"value":193},{"type":47,"tag":101,"props":284,"children":285},{},[286,291,293,298,300,305],{"type":47,"tag":178,"props":287,"children":288},{},[289],{"type":53,"value":290},"One noninteractive batch:",{"type":53,"value":292}," use ",{"type":47,"tag":56,"props":294,"children":296},{"className":295},[],[297],{"type":53,"value":86},{"type":53,"value":299},", not ",{"type":47,"tag":56,"props":301,"children":303},{"className":302},[],[304],{"type":53,"value":111},{"type":53,"value":193},{"type":47,"tag":63,"props":307,"children":308},{},[309],{"type":53,"value":310},"Read only the references required for the current task.",{"type":47,"tag":90,"props":312,"children":314},{"id":313},"core-commands",[315],{"type":53,"value":316},"Core commands",{"type":47,"tag":97,"props":318,"children":319},{},[320,331,342,353,364,383,394,405],{"type":47,"tag":101,"props":321,"children":322},{},[323,329],{"type":47,"tag":56,"props":324,"children":326},{"className":325},[],[327],{"type":53,"value":328},"sessions",{"type":53,"value":330},": reachable sessions, project roots, testing types, and browsers; JSON adds support\nand renderer health.",{"type":47,"tag":101,"props":332,"children":333},{},[334,340],{"type":47,"tag":56,"props":335,"children":337},{"className":336},[],[338],{"type":53,"value":339},"status",{"type":53,"value":341},": lifecycle stage, selected spec, run identity, counts, build error, and active pin.",{"type":47,"tag":101,"props":343,"children":344},{},[345,351],{"type":47,"tag":56,"props":346,"children":348},{"className":347},[],[349],{"type":53,"value":350},"specs",{"type":53,"value":352},": runnable project-relative spec paths for the session's testing type.",{"type":47,"tag":101,"props":354,"children":355},{},[356,362],{"type":47,"tag":56,"props":357,"children":359},{"className":358},[],[360],{"type":53,"value":361},"run \u003Cspec>",{"type":53,"value":363},": dispatches a spec and returns immediately.",{"type":47,"tag":101,"props":365,"children":366},{},[367,373,375,381],{"type":47,"tag":56,"props":368,"children":370},{"className":369},[],[371],{"type":53,"value":372},"reporter",{"type":53,"value":374},": spec overview and test ids; with ",{"type":47,"tag":56,"props":376,"children":378},{"className":377},[],[379],{"type":53,"value":380},"--test-id",{"type":53,"value":382},", the complete test attempt.",{"type":47,"tag":101,"props":384,"children":385},{},[386,392],{"type":47,"tag":56,"props":387,"children":389},{"className":388},[],[390],{"type":53,"value":391},"command",{"type":53,"value":393},": one command-log row with network data, snapshots, and console properties.",{"type":47,"tag":101,"props":395,"children":396},{},[397,403],{"type":47,"tag":56,"props":398,"children":400},{"className":399},[],[401],{"type":53,"value":402},"pin",{"type":53,"value":404},": rewinds the app frame to a command snapshot.",{"type":47,"tag":101,"props":406,"children":407},{},[408,414,416,422,423,429],{"type":47,"tag":56,"props":409,"children":411},{"className":410},[],[412],{"type":53,"value":413},"dom",{"type":53,"value":415},", ",{"type":47,"tag":56,"props":417,"children":419},{"className":418},[],[420],{"type":53,"value":421},"aria",{"type":53,"value":415},{"type":47,"tag":56,"props":424,"children":426},{"className":425},[],[427],{"type":53,"value":428},"inspect",{"type":53,"value":430},": read the settled app or currently pinned snapshot.",{"type":47,"tag":63,"props":432,"children":433},{},[434,436,441,442,448,450,456,458,464],{"type":53,"value":435},"All commands accept ",{"type":47,"tag":56,"props":437,"children":439},{"className":438},[],[440],{"type":53,"value":162},{"type":53,"value":415},{"type":47,"tag":56,"props":443,"children":445},{"className":444},[],[446],{"type":53,"value":447},"--json",{"type":53,"value":449},", and ",{"type":47,"tag":56,"props":451,"children":453},{"className":452},[],[454],{"type":53,"value":455},"--timeout \u003Cms>",{"type":53,"value":457},". On a confirmed supported\nbuild, use ",{"type":47,"tag":56,"props":459,"children":461},{"className":460},[],[462],{"type":53,"value":463},"npx cypress tap \u003Ccommand> --help",{"type":53,"value":465}," for command-specific flags.",{"type":47,"tag":90,"props":467,"children":469},{"id":468},"the-non-negotiable-verdict-rule",[470],{"type":53,"value":471},"The non-negotiable verdict rule",{"type":47,"tag":63,"props":473,"children":474},{},[475,481,483,488],{"type":47,"tag":56,"props":476,"children":478},{"className":477},[],[479],{"type":53,"value":480},"run",{"type":53,"value":482}," confirms dispatch, not execution, and returns before the new run starts. During that gap,\n",{"type":47,"tag":56,"props":484,"children":486},{"className":485},[],[487],{"type":53,"value":339},{"type":53,"value":489}," and app reads can still return the previous run's plausible verdict and page.",{"type":47,"tag":63,"props":491,"children":492},{},[493],{"type":53,"value":494},"For every explicit run:",{"type":47,"tag":496,"props":497,"children":498},"ol",{},[499,511,516,529,595],{"type":47,"tag":101,"props":500,"children":501},{},[502,504,510],{"type":53,"value":503},"Read the current ",{"type":47,"tag":56,"props":505,"children":507},{"className":506},[],[508],{"type":53,"value":509},"startedAt",{"type":53,"value":193},{"type":47,"tag":101,"props":512,"children":513},{},[514],{"type":53,"value":515},"Dispatch exactly one spec.",{"type":47,"tag":101,"props":517,"children":518},{},[519,521,527],{"type":53,"value":520},"Poll one ",{"type":47,"tag":56,"props":522,"children":524},{"className":523},[],[525],{"type":53,"value":526},"status --json",{"type":53,"value":528}," response at a time.",{"type":47,"tag":101,"props":530,"children":531},{},[532,534,540,542,548,550,556,558,563,565,570,572,577,579,585,587,593],{"type":53,"value":533},"Accept only ",{"type":47,"tag":56,"props":535,"children":537},{"className":536},[],[538],{"type":53,"value":539},"passed",{"type":53,"value":541}," or ",{"type":47,"tag":56,"props":543,"children":545},{"className":544},[],[546],{"type":53,"value":547},"failed",{"type":53,"value":549}," for the expected ",{"type":47,"tag":56,"props":551,"children":553},{"className":552},[],[554],{"type":53,"value":555},"spec",{"type":53,"value":557}," with a non-empty, changed\n",{"type":47,"tag":56,"props":559,"children":561},{"className":560},[],[562],{"type":53,"value":509},{"type":53,"value":564},". ",{"type":47,"tag":56,"props":566,"children":568},{"className":567},[],[569],{"type":53,"value":509},{"type":53,"value":571}," is null only when no run has ever started for that spec in the\nsession — a build failure on first selection. A build that fails on rerun or on a watcher\nrebuild still advances ",{"type":47,"tag":56,"props":573,"children":575},{"className":574},[],[576],{"type":53,"value":509},{"type":53,"value":578},", so it takes the normal path. Keep the null fallback\n(a changed observable baseline, or a preceding ",{"type":47,"tag":56,"props":580,"children":582},{"className":581},[],[583],{"type":53,"value":584},"loading",{"type":53,"value":586},"\u002F",{"type":47,"tag":56,"props":588,"children":590},{"className":589},[],[591],{"type":53,"value":592},"running",{"type":53,"value":594}," observation) for the\nfirst-selection case only.",{"type":47,"tag":101,"props":596,"children":597},{},[598],{"type":53,"value":599},"Bound the loop and fail if no matching fresh verdict arrives.",{"type":47,"tag":63,"props":601,"children":602},{},[603],{"type":53,"value":604},"Saving the active spec triggers an automatic watcher run. After editing, either use that run or\nlet it settle before taking a baseline and dispatching another. Never intentionally put two runs\nin flight.",{"type":47,"tag":63,"props":606,"children":607},{},[608,610,615,617,622],{"type":53,"value":609},"Blank and partial payloads from a successful ",{"type":47,"tag":56,"props":611,"children":613},{"className":612},[],[614],{"type":53,"value":339},{"type":53,"value":616}," call occur transiently. Treat missing\nfields as \"keep waiting,\" not as a state change. A nonzero ",{"type":47,"tag":56,"props":618,"children":620},{"className":619},[],[621],{"type":53,"value":339},{"type":53,"value":623}," exit is a command failure,\nnot a partial read: stop polling and report it.",{"type":47,"tag":63,"props":625,"children":626},{},[627,629,634,636,641,643,648,650,656,658,663,665,670],{"type":53,"value":628},"Only ",{"type":47,"tag":56,"props":630,"children":632},{"className":631},[],[633],{"type":53,"value":539},{"type":53,"value":635}," and ",{"type":47,"tag":56,"props":637,"children":639},{"className":638},[],[640],{"type":53,"value":547},{"type":53,"value":642}," are verdicts. A build failure is ",{"type":47,"tag":56,"props":644,"children":646},{"className":645},[],[647],{"type":53,"value":547},{"type":53,"value":649}," with the diagnostic in\n",{"type":47,"tag":56,"props":651,"children":653},{"className":652},[],[654],{"type":53,"value":655},"status.error",{"type":53,"value":657},", possibly before any tests exist. ",{"type":47,"tag":56,"props":659,"children":661},{"className":660},[],[662],{"type":53,"value":339},{"type":53,"value":664}," is the only surface that carries that\ndiagnostic — ",{"type":47,"tag":56,"props":666,"children":668},{"className":667},[],[669],{"type":53,"value":372},{"type":53,"value":671}," renders a failed build as an empty spec.",{"type":47,"tag":90,"props":673,"children":675},{"id":674},"critical-correctness-rules",[676],{"type":53,"value":677},"Critical correctness rules",{"type":47,"tag":496,"props":679,"children":680},{},[681,705,729,747,765,790,820,838,848,887],{"type":47,"tag":101,"props":682,"children":683},{},[684,689,691,696,698,703],{"type":47,"tag":178,"props":685,"children":686},{},[687],{"type":53,"value":688},"Target the intended session.",{"type":53,"value":690}," If several sessions exist, or auto-selection behaves oddly,\ninspect ",{"type":47,"tag":56,"props":692,"children":694},{"className":693},[],[695],{"type":53,"value":328},{"type":53,"value":697}," and pass ",{"type":47,"tag":56,"props":699,"children":701},{"className":700},[],[702],{"type":53,"value":162},{"type":53,"value":704},". Auto-selection can choose another project or an\nunresponsive session.",{"type":47,"tag":101,"props":706,"children":707},{},[708,713,715,721,723,728],{"type":47,"tag":178,"props":709,"children":710},{},[711],{"type":53,"value":712},"Preserve the binary location.",{"type":53,"value":714}," Cwd controls ",{"type":47,"tag":56,"props":716,"children":718},{"className":717},[],[719],{"type":53,"value":720},"npx",{"type":53,"value":722}," resolution on every call. When the\nproject pins an older Cypress, run commands from a compatible checkout and pass\n",{"type":47,"tag":56,"props":724,"children":726},{"className":725},[],[727],{"type":53,"value":162},{"type":53,"value":193},{"type":47,"tag":101,"props":730,"children":731},{},[732,737,739,745],{"type":47,"tag":178,"props":733,"children":734},{},[735],{"type":53,"value":736},"Do not parse failed commands.",{"type":53,"value":738}," Check the exit code before parsing JSON. Supported-build\nfailures generally use stderr, but older compatibility failures may use stdout. An ambiguous\nselector is the intentional exception: it exits ",{"type":47,"tag":56,"props":740,"children":742},{"className":741},[],[743],{"type":53,"value":744},"1",{"type":53,"value":746}," and lists matches on stdout.",{"type":47,"tag":101,"props":748,"children":749},{},[750,755,757,763],{"type":47,"tag":178,"props":751,"children":752},{},[753],{"type":53,"value":754},"Do not discard dispatch stdout while checking compatibility.",{"type":53,"value":756}," An older Cypress may print\n",{"type":47,"tag":56,"props":758,"children":760},{"className":759},[],[761],{"type":53,"value":762},"Unknown command \"tap\"",{"type":53,"value":764}," and usage text to stdout; redirecting it hides the cause.",{"type":47,"tag":101,"props":766,"children":767},{},[768,773,775,781,782,788],{"type":47,"tag":178,"props":769,"children":770},{},[771],{"type":53,"value":772},"Redirect potentially large JSON.",{"type":53,"value":774}," ",{"type":47,"tag":56,"props":776,"children":778},{"className":777},[],[779],{"type":53,"value":780},"reporter --test-id --json",{"type":53,"value":635},{"type":47,"tag":56,"props":783,"children":785},{"className":784},[],[786],{"type":53,"value":787},"command --json",{"type":53,"value":789}," can be\nhundreds of kilobytes. Save them to a file and parse the file.",{"type":47,"tag":101,"props":791,"children":792},{},[793,798,799,804,805,810,812,818],{"type":47,"tag":178,"props":794,"children":795},{},[796],{"type":53,"value":797},"Check truncation before concluding absence.",{"type":53,"value":774},{"type":47,"tag":56,"props":800,"children":802},{"className":801},[],[803],{"type":53,"value":413},{"type":53,"value":635},{"type":47,"tag":56,"props":806,"children":808},{"className":807},[],[809],{"type":53,"value":421},{"type":53,"value":811}," cap output. Narrow the\nselector or raise the limit when ",{"type":47,"tag":56,"props":813,"children":815},{"className":814},[],[816],{"type":53,"value":817},"(output truncated)",{"type":53,"value":819}," appears.",{"type":47,"tag":101,"props":821,"children":822},{},[823,828,830,836],{"type":47,"tag":178,"props":824,"children":825},{},[826],{"type":53,"value":827},"Sanity-check the live frame before concluding absence.",{"type":53,"value":829}," A trailing pending\u002Fskipped test\ncan leave the settled runner on a blank placeholder while app reads still exit ",{"type":47,"tag":56,"props":831,"children":833},{"className":832},[],[834],{"type":53,"value":835},"0",{"type":53,"value":837},". Confirm a\nknown app anchor. If the frame is blank, pin a snapshot from the last real command and read\nthat state instead.",{"type":47,"tag":101,"props":839,"children":840},{},[841,846],{"type":47,"tag":178,"props":842,"children":843},{},[844],{"type":53,"value":845},"Read results before editing or deleting the spec.",{"type":53,"value":847}," Results and snapshots live in the\nCypress app's memory and can disappear on rerun, restart, rename, or deletion.",{"type":47,"tag":101,"props":849,"children":850},{},[851,856,858,864,866,871,872,878,880,886],{"type":47,"tag":178,"props":852,"children":853},{},[854],{"type":53,"value":855},"Clear pins.",{"type":53,"value":857}," After inspecting a command snapshot, run ",{"type":47,"tag":56,"props":859,"children":861},{"className":860},[],[862],{"type":53,"value":863},"pin --clear",{"type":53,"value":865},"; otherwise later app\nreads continue to describe the pinned past. An exit-",{"type":47,"tag":56,"props":867,"children":869},{"className":868},[],[870],{"type":53,"value":835},{"type":53,"value":774},{"type":47,"tag":56,"props":873,"children":875},{"className":874},[],[876],{"type":53,"value":877},"cleared:false",{"type":53,"value":879}," result is a benign\nno-op even if human output says ",{"type":47,"tag":56,"props":881,"children":883},{"className":882},[],[884],{"type":53,"value":885},"FAILED TO CLEAR PIN",{"type":53,"value":193},{"type":47,"tag":101,"props":888,"children":889},{},[890,895,897,902,904,909,910,915,917,923,925,930,932,937,939,944],{"type":47,"tag":178,"props":891,"children":892},{},[893],{"type":53,"value":894},"Use the right reader for live state.",{"type":53,"value":896}," Use ",{"type":47,"tag":56,"props":898,"children":900},{"className":899},[],[901],{"type":53,"value":421},{"type":53,"value":903}," for current form-control values:\n",{"type":47,"tag":56,"props":905,"children":907},{"className":906},[],[908],{"type":53,"value":413},{"type":53,"value":635},{"type":47,"tag":56,"props":911,"children":913},{"className":912},[],[914],{"type":53,"value":428},{"type":53,"value":916}," can show the initial HTML ",{"type":47,"tag":56,"props":918,"children":920},{"className":919},[],[921],{"type":53,"value":922},"value",{"type":53,"value":924}," attribute, and ",{"type":47,"tag":56,"props":926,"children":928},{"className":927},[],[929],{"type":53,"value":428},{"type":53,"value":931}," may omit the\naccessibility value. Use ",{"type":47,"tag":56,"props":933,"children":935},{"className":934},[],[936],{"type":53,"value":413},{"type":53,"value":938}," for exact live-region, toast, status, and label text because\n",{"type":47,"tag":56,"props":940,"children":942},{"className":941},[],[943],{"type":53,"value":421},{"type":53,"value":945}," may omit descendant text.",{"type":47,"tag":90,"props":947,"children":949},{"id":948},"output-contract",[950],{"type":53,"value":951},"Output contract",{"type":47,"tag":97,"props":953,"children":954},{},[955,967,999,1056],{"type":47,"tag":101,"props":956,"children":957},{},[958,960,965],{"type":53,"value":959},"Human output is for reading; ",{"type":47,"tag":56,"props":961,"children":963},{"className":962},[],[964],{"type":53,"value":447},{"type":53,"value":966}," is for parsing and may contain much more data.",{"type":47,"tag":101,"props":968,"children":969},{},[970,975,977,982,984,990,992,997],{"type":47,"tag":56,"props":971,"children":973},{"className":972},[],[974],{"type":53,"value":339},{"type":53,"value":976}," exits ",{"type":47,"tag":56,"props":978,"children":980},{"className":979},[],[981],{"type":53,"value":835},{"type":53,"value":983}," for known lifecycle stages, including ",{"type":47,"tag":56,"props":985,"children":987},{"className":986},[],[988],{"type":53,"value":989},"not connected",{"type":53,"value":991},". Discovery,\ncompatibility, unsupported-browser, and renderer failures exit ",{"type":47,"tag":56,"props":993,"children":995},{"className":994},[],[996],{"type":53,"value":744},{"type":53,"value":998},", sometimes with no stdout;\na poller must fail fast on that nonzero exit.",{"type":47,"tag":101,"props":1000,"children":1001},{},[1002,1007,1008,1013,1014,1019,1021,1026,1028,1033,1034,1039,1041,1047,1049,1054],{"type":47,"tag":56,"props":1003,"children":1005},{"className":1004},[],[1006],{"type":53,"value":413},{"type":53,"value":415},{"type":47,"tag":56,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":53,"value":421},{"type":53,"value":449},{"type":47,"tag":56,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":53,"value":428},{"type":53,"value":1020}," require exactly one selected element. Ambiguity exits ",{"type":47,"tag":56,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":53,"value":744},{"type":53,"value":1027}," with\ncandidate selectors. A miss is not a CLI failure: ",{"type":47,"tag":56,"props":1029,"children":1031},{"className":1030},[],[1032],{"type":53,"value":413},{"type":53,"value":635},{"type":47,"tag":56,"props":1035,"children":1037},{"className":1036},[],[1038],{"type":53,"value":428},{"type":53,"value":1040}," report ",{"type":47,"tag":56,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":53,"value":1046},"found:false",{"type":53,"value":1048},";\n",{"type":47,"tag":56,"props":1050,"children":1052},{"className":1051},[],[1053],{"type":53,"value":421},{"type":53,"value":1055}," returns an empty tree both for a miss and for an element with no accessibility node.",{"type":47,"tag":101,"props":1057,"children":1058},{},[1059],{"type":53,"value":1060},"Failures are prose without stable error codes. Branch on exit status, not message text.",{"type":47,"tag":90,"props":1062,"children":1064},{"id":1063},"performance-defaults",[1065],{"type":53,"value":1066},"Performance defaults",{"type":47,"tag":97,"props":1068,"children":1069},{},[1070,1090,1095],{"type":47,"tag":101,"props":1071,"children":1072},{},[1073,1075,1081,1083,1088],{"type":53,"value":1074},"Prefer one ",{"type":47,"tag":56,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":53,"value":1080},"reporter --test-id",{"type":53,"value":1082}," read over one ",{"type":47,"tag":56,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":53,"value":391},{"type":53,"value":1089}," call per row.",{"type":47,"tag":101,"props":1091,"children":1092},{},[1093],{"type":53,"value":1094},"After a fresh verdict and live-frame sanity check, independent app reads may run concurrently.",{"type":47,"tag":101,"props":1096,"children":1097},{},[1098,1100,1105,1107,1113,1115,1121],{"type":53,"value":1099},"If bounded status polling fails, inspect ",{"type":47,"tag":56,"props":1101,"children":1103},{"className":1102},[],[1104],{"type":53,"value":328},{"type":53,"value":1106}," for ",{"type":47,"tag":56,"props":1108,"children":1110},{"className":1109},[],[1111],{"type":53,"value":1112},"rendererResponsive: false",{"type":53,"value":1114},"; restart a\nwedged renderer instead of increasing ",{"type":47,"tag":56,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":53,"value":1120},"--timeout",{"type":53,"value":193},{"items":1123,"total":1175},[1124,1140,1155,1168],{"slug":1125,"name":1125,"fn":1126,"description":1127,"org":1128,"tags":1129,"stars":24,"repoUrl":25,"updatedAt":1139},"cypress-author","create and fix Cypress tests","Creates, updates, and fixes Cypress tests (E2E\u002Fend-to-end and component tests). Use when the user asks to create tests, add tests, write tests, update tests, test this file\u002Fcomponent, new spec, or fix a failing or flaky test. Apply even when the user does not say 'Cypress' (e.g. 'create tests for this file'). Prefer cypress-explain when the user only wants to explain or review tests without changing code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1130,1131,1132,1135,1138],{"name":9,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":1133,"slug":1134,"type":14},"Engineering","engineering",{"name":1136,"slug":1137,"type":14},"QA","qa",{"name":19,"slug":20,"type":14},"2026-07-12T07:58:26.471244",{"slug":1141,"name":1141,"fn":1142,"description":1143,"org":1144,"tags":1145,"stars":24,"repoUrl":25,"updatedAt":1154},"cypress-docs","retrieve Cypress documentation and references","Search and extract Cypress information from official documentation (docs.cypress.io, cypress.io); prefer LLM markdown under \u002Fllm\u002F* and refuse unverified API or behavior claims.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1146,1147,1150,1153],{"name":9,"slug":8,"type":14},{"name":1148,"slug":1149,"type":14},"Documentation","documentation",{"name":1151,"slug":1152,"type":14},"Search","search",{"name":19,"slug":20,"type":14},"2026-07-12T07:58:24.963932",{"slug":1156,"name":1156,"fn":1157,"description":1158,"org":1159,"tags":1160,"stars":24,"repoUrl":25,"updatedAt":1167},"cypress-explain","explain and review Cypress tests","Explains Cypress tests (E2E and component tests), and answers questions about Cypress use and behavior. Use when the user asks to explain how a test works, explain how Cypress works, review or critique a test without writing code. Apply even when the user does not say 'Cypress' (e.g. 'explain this test'). Prefer the cypress-author skill when the user wants to create, fix, or update tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1161,1164,1165,1166],{"name":1162,"slug":1163,"type":14},"Code Review","code-review",{"name":9,"slug":8,"type":14},{"name":22,"slug":23,"type":14},{"name":19,"slug":20,"type":14},"2026-07-12T07:58:27.858171",{"slug":4,"name":4,"fn":5,"description":6,"org":1169,"tags":1170,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1171,1172,1173,1174],{"name":9,"slug":8,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14},{"name":19,"slug":20,"type":14},4,{"items":1177,"total":1175},[1178,1186,1193,1200],{"slug":1125,"name":1125,"fn":1126,"description":1127,"org":1179,"tags":1180,"stars":24,"repoUrl":25,"updatedAt":1139},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1181,1182,1183,1184,1185],{"name":9,"slug":8,"type":14},{"name":16,"slug":17,"type":14},{"name":1133,"slug":1134,"type":14},{"name":1136,"slug":1137,"type":14},{"name":19,"slug":20,"type":14},{"slug":1141,"name":1141,"fn":1142,"description":1143,"org":1187,"tags":1188,"stars":24,"repoUrl":25,"updatedAt":1154},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1189,1190,1191,1192],{"name":9,"slug":8,"type":14},{"name":1148,"slug":1149,"type":14},{"name":1151,"slug":1152,"type":14},{"name":19,"slug":20,"type":14},{"slug":1156,"name":1156,"fn":1157,"description":1158,"org":1194,"tags":1195,"stars":24,"repoUrl":25,"updatedAt":1167},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1196,1197,1198,1199],{"name":1162,"slug":1163,"type":14},{"name":9,"slug":8,"type":14},{"name":22,"slug":23,"type":14},{"name":19,"slug":20,"type":14},{"slug":4,"name":4,"fn":5,"description":6,"org":1201,"tags":1202,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1203,1204,1205,1206],{"name":9,"slug":8,"type":14},{"name":22,"slug":23,"type":14},{"name":16,"slug":17,"type":14},{"name":19,"slug":20,"type":14}]