[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699CVGGTRSE9XPMP5PD891E":3,"skill-same:01M699CVGGTRSE9XPMP5PD891E":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M699CVGGTRSE9XPMP5PD891E","record-video",null,"Record a short WebM video of a web page or web-based app with Playwright's page.screencast, demonstrating a feature or bug fix. Use when asked to record evidence, demo a change, show that it works, record a video, or capture a screencast.","microsoft\u002Fvscode","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998NK2WED5M549DX06VBCH",195271,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fextensions\u002Fcopilot\u002Fassets\u002Fprompts\u002Fskills\u002Frecord-video\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"record video","Video","record","fix","when","with","app","feature","show","bug","evidence","use","playwright","short","capture","page","bug fix","demo","change","web","2026-11-10 10:12:30",false,"---\nname: record-video\ndescription: Record a short WebM video of a web page or web-based app with Playwright's page.screencast, demonstrating a feature or bug fix. Use when asked to record evidence, demo a change, show that it works, record a video, or capture a screencast.\n---\n\n# Record video\n\nRecord a short `.webm` video of the real outcome with Playwright's\n`page.screencast`, and return it with the script that produced it.\n\nUse whichever Playwright `page` is available: the Integrated Browser's\n`runPlaywrightCode` tool, or a Playwright session another skill attaches to an\napp (for example `@playwright\u002Fcli run-code`). If a skill exists for launching\nthe app under test, follow it to get the page.\n\n## Rules\n\n- Show real behavior. Never fake a result or hide a failed assertion.\n- Don't bypass sign-in, CAPTCHAs, or paywalls; don't record secrets or\n  private data; ask before side effects on real services.\n- Keep it under a minute, in a few clear chapters.\n\n## Prepare\n\n1. Get a Playwright page for the app and make sure it is visible\n   (`document.visibilityState === 'visible'`); ask the user to reveal it if not.\n   For the Integrated Browser, open a fresh page with `openBrowserPage`\n   (`forceNew: true`); if the browser tools are missing, explain that\n   `workbench.browser.enableChatTools` must be enabled and stop.\n2. Dry-run the scenario without recording. Find stable role\u002Fname locators and\n   check the assertions. Reset test data to a known start state.\n3. Write the complete script before recording, so no locators need to be\n   discovered mid-recording.\n\n## Record in one call\n\nRun the whole script in a single Playwright call so pauses between calls don't\nend up in the video. Allow enough timeout for the scenario.\n\nSave the video and script in the current session's storage folder, not in\nthe workspace, and name them after the scenario, for example\n`\u003Csession folder>\u002Fadd-and-complete-task.webm`.\n\n```js\nconst viewport = await page.evaluate(() => ({ width: innerWidth, height: innerHeight }));\nconst even = v => Math.max(2, Math.floor(v \u002F 2) * 2);\nconst scale = Math.min(1, 1280 \u002F viewport.width);\nawait page.screencast.start({\n  path: '\u003Csession folder>\u002Fadd-and-complete-task.webm',\n  size: { width: even(viewport.width * scale), height: even(viewport.height * scale) },\n});\ntry {\n  await page.screencast.showActions();\n  await page.screencast.showChapter('Add a task');\n  const input = page.getByRole('textbox', { name: 'New task' });\n  await input.pressSequentially('Buy milk', { delay: 60 });\n  await input.press('Enter');\n  const task = page.getByRole('checkbox', { name: 'Buy milk', exact: true });\n  if (await task.isChecked()) {\n    throw new Error('New task was unexpectedly completed.');\n  }\n  await page.waitForTimeout(1000);\n  await page.screencast.showChapter('Complete the task');\n  await task.check();\n  if (!await task.isChecked()) {\n    throw new Error('Task did not become completed.');\n  }\n  await page.waitForTimeout(1500);\n} finally {\n  await page.screencast.stop();\n}\n```\n\nThe video is only finalized by `stop()`, so always use `try\u002Ffinally`. If the\nscenario fails, keep the partial video and report the error.\n\n## Hand off\n\nReturn links to the video and the script, plus a short list of expected vs.\nactual outcomes. A demo supplements tests and code review; it doesn't replace them.\n","# Record video\n\nRecord a short `.webm` video of the real outcome with Playwright's\n`page.screencast`, and return it with the script that produced it.\n\nUse whichever Playwright `page` is available: the Integrated Browser's\n`runPlaywrightCode` tool, or a Playwright session another skill attaches to an\napp (for example `@playwright\u002Fcli run-code`). If a skill exists for launching\nthe app under test, follow it to get the page.\n\n## Rules\n\n- Show real behavior. Never fake a result or hide a failed assertion.\n- Don't bypass sign-in, CAPTCHAs, or paywalls; don't record secrets or\n  private data; ask before side effects on real services.\n- Keep it under a minute, in a few clear chapters.\n\n## Prepare\n\n1. Get a Playwright page for the app and make sure it is visible\n   (`document.visibilityState === 'visible'`); ask the user to reveal it if not.\n   For the Integrated Browser, open a fresh page with `openBrowserPage`\n   (`forceNew: true`); if the browser tools are missing, explain that\n   `workbench.browser.enableChatTools` must be enabled and stop.\n2. Dry-run the scenario without recording. Find stable role\u002Fname locators and\n   check the assertions. Reset test data to a known start state.\n3. Write the complete script before recording, so no locators need to be\n   discovered mid-recording.\n\n## Record in one call\n\nRun the whole script in a single Playwright call so pauses between calls don't\nend up in the video. Allow enough timeout for the scenario.\n\nSave the video and script in the current session's storage folder, not in\nthe workspace, and name them after the scenario, for example\n`\u003Csession folder>\u002Fadd-and-complete-task.webm`.\n\n```js\nconst viewport = await page.evaluate(() => ({ width: innerWidth, height: innerHeight }));\nconst even = v => Math.max(2, Math.floor(v \u002F 2) * 2);\nconst scale = Math.min(1, 1280 \u002F viewport.width);\nawait page.screencast.start({\n  path: '\u003Csession folder>\u002Fadd-and-complete-task.webm',\n  size: { width: even(viewport.width * scale), height: even(viewport.height * scale) },\n});\ntry {\n  await page.screencast.showActions();\n  await page.screencast.showChapter('Add a task');\n  const input = page.getByRole('textbox', { name: 'New task' });\n  await input.pressSequentially('Buy milk', { delay: 60 });\n  await input.press('Enter');\n  const task = page.getByRole('checkbox', { name: 'Buy milk', exact: true });\n  if (await task.isChecked()) {\n    throw new Error('New task was unexpectedly completed.');\n  }\n  await page.waitForTimeout(1000);\n  await page.screencast.showChapter('Complete the task');\n  await task.check();\n  if (!await task.isChecked()) {\n    throw new Error('Task did not become completed.');\n  }\n  await page.waitForTimeout(1500);\n} finally {\n  await page.screencast.stop();\n}\n```\n\nThe video is only finalized by `stop()`, so always use `try\u002Ffinally`. If the\nscenario fails, keep the partial video and report the error.\n\n## Hand off\n\nReturn links to the video and the script, plus a short list of expected vs.\nactual outcomes. A demo supplements tests and code review; it doesn't replace them.\n",{"name":5,"description":7},"main","11ba54a90a0ff8720cf47c086f5a9948eef9cf2c","extensions\u002Fcopilot\u002Fassets\u002Fprompts\u002Fskills\u002Frecord-video",43773,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode","https:\u002F\u002Fcode.visualstudio.com","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 08:47:49",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add microsoft\u002Fvscode --skill record-video",{"tool":65,"command":66},"bunx","bunx skills add microsoft\u002Fvscode --skill record-video",{"tool":68,"command":69},"pnpm","pnpm dlx skills add microsoft\u002Fvscode --skill record-video","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fextensions\u002Fcopilot\u002Fassets\u002Fprompts\u002Fskills\u002Frecord-video\u002FSKILL.md",true,[73],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"agents\u002Fopenai.yaml","REFERENCE","参考文档",283,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002F.agents\u002Fskills\u002Fgstack-unfreeze\u002Fagents\u002Fopenai.yaml",[80,105,127,141,155,171],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":44},"01M70H0ANBKZAVEP1NVV4K28M3","sweeper-query","Answer natural-language questions about the VS Code Sweeper's published issue index (index-\u003Cname>.json for microsoft\u002Fvscode and the enrolled family repos) — which issues are agent-ready to implement or plan, what the sweeper proposed for an assignee or area, whether the sweeper knows a report as a duplicate, the highest-value open bugs in a lane — and, for one issue, the review's full record (evidence with file citations, fix brief, proposed comment). Use ONLY when the request explicitly names the sweeper — \"sweeper\", \"vscodesweeper\", \"sweeper-query\", a sweeper verdict, record, brief or index, an agent-ready issue — or asks what \"the sweeper\" found, proposed or knows. Do NOT use for general questions about issues, duplicates, priorities or ranking that do not mention the sweeper. Read-only; discovery only.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsweeper-query\u002FSKILL.md",[],[87,88,89,90,27,28,91,92,93,94,95,96,97,98,99,100,101,102,103,104],"sweeper query","query","sweeper","review","request","which","natural-language","ranking","duplicates","ready","only","read","plan","open","Citations","brief","issues","code",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":44},"01M699DRJS4YJCV600Q72SVVWE","update-skills","Create or update repository skills and instructions when major learnings are discovered during a session. Use when the user says \"learn!\", when a significant pattern or pitfall is identified, or when reusable domain knowledge should be captured for future sessions.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fsrc\u002Fvs\u002Fsessions\u002Fskills\u002Fupdate-skills\u002FSKILL.md",[],[112,113,114,115,116,117,118,35,119,120,121,122,123,124,125,126,28],"update","update skills","for","pattern","domain","learnings","reusable","session","user","instructions","knowledge","repository","learn","create","sessions",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":44},"01M699DPWHZ72B66P82EW31RNE","update-pr","Update the pull request for the current session. Use when the user wants to push new changes to an existing PR.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fsrc\u002Fvs\u002Fsessions\u002Fskills\u002Fupdate-pr\u002FSKILL.md",[],[112,134,135,28,91,136,114,35,119,120,137,138,139,140],"pr","update pr","Existing","push","pull","pull request","changes",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":44},"01M699DJMR6CE1MH5XCJZ0GFQ0","sync","Sync the current session branch with its upstream branch, or publish the current session branch to a remote. Use when the user asks to sync a branch, pull latest changes, rebase onto upstream, push current branch, publish branch, or set upstream.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fsrc\u002Fvs\u002Fsessions\u002Fskills\u002Fsync\u002FSKILL.md",[],[143,148,149,137,138,150,28,140,151,29,152,153,35,119,120,154],"SET","publish","rebase","latest","remote","upstream","branch",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":44},"01M699DGXHX6A2A72X57R6GGHJ","sync-upstream","Update a stale session branch by rebasing onto the latest origin. Use when the upstream has moved significantly and the session needs to catch up, resolving conflicts by preserving upstream changes and adapting session work to fit.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fsrc\u002Fvs\u002Fsessions\u002Fskills\u002Fsync-upstream\u002FSKILL.md",[],[153,143,162,163,28,164,165,140,151,166,167,168,169,35,119,154,170,112],"sync upstream","fit","catch","catch up","origin","conflicts","stale","up","work",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":44},"01M699DEXYFWDGW0BAXJ5QQ377","merge","Merge changes from the topic branch to the merge base branch. Use when the user wants to merge their session's work back to the base branch.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fvscode\u002Fblob\u002Fmain\u002Fsrc\u002Fvs\u002Fsessions\u002Fskills\u002Fmerge\u002FSKILL.md",[],[173,119,35,170,154,120,28,178,179,140],"back","base"]