[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71EVQH2Z145RW68RDHJC5M5":3,"skill-same:01M71EVQH2Z145RW68RDHJC5M5":67},{"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":26,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M71EVQH2Z145RW68RDHJC5M5","test-browser",null,"Run browser tests on pages affected by current PR or branch","shyamsridhar123\u002Fkevin-copilot","shyamsridhar123","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F117464342?v=4","01M71ESN8NA3Z6Z47CJS9WBT0B","Shyam Sridhar","01M71ESNA9HE4YA6ZZSCNYCGJR",8,"MIT","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftest-browser\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38],"test","browser","test browser","pr","run","branch","tests","pages","name","port","affected","number","2026-11-10 10:12:30",false,"---\nname: test-browser\ndescription: Run browser tests on pages affected by current PR or branch\nargument-hint: \"[PR number, branch name, 'current', or --port PORT]\"\n---\n\n# Browser Test Skill\n\nRun end-to-end browser tests on pages affected by a PR or branch changes using the `agent-browser` CLI.\n\n## Use `agent-browser` Only For Browser Automation\n\nThis workflow uses the `agent-browser` CLI exclusively. Do not use any alternative browser automation system, browser MCP integration, or built-in browser-control tool. If the platform offers multiple ways to control a browser, always choose `agent-browser`.\n\nUse `agent-browser` for: opening pages, clicking elements, filling forms, taking screenshots, and scraping rendered content.\n\nPlatform-specific hints:\n- In Claude Code, do not use Chrome MCP tools (`mcp__claude-in-chrome__*`).\n- In Codex, do not substitute unrelated browsing tools.\n\n## Prerequisites\n\n- Local development server running (e.g., `bin\u002Fdev`, `rails server`, `npm run dev`)\n- `agent-browser` CLI installed (see Setup below)\n- Git repository with changes to test\n\n## Setup\n\n```bash\ncommand -v agent-browser >\u002Fdev\u002Fnull 2>&1 && echo \"Installed\" || echo \"NOT INSTALLED\"\n```\n\nInstall if needed:\n```bash\nnpm install -g agent-browser\nagent-browser install\n```\n\nSee the `agent-browser` skill for detailed usage.\n\n## Workflow\n\n### 1. Verify Installation\n\nBefore starting, verify `agent-browser` is available:\n\n```bash\ncommand -v agent-browser >\u002Fdev\u002Fnull 2>&1 && echo \"Ready\" || (echo \"Installing...\" && npm install -g agent-browser && agent-browser install)\n```\n\nIf installation fails, inform the user and stop.\n\n### 2. Ask Browser Mode\n\nAsk the user whether to run headed or headless (using the platform's question tool — e.g., `AskUserQuestion` in Claude Code, `request_user_input` in Codex, `ask_user` in Gemini — or present options and wait for a reply):\n\n```\nDo you want to watch the browser tests run?\n\n1. Headed (watch) - Opens visible browser window so you can see tests run\n2. Headless (faster) - Runs in background, faster but invisible\n```\n\nStore the choice and use the `--headed` flag when the user selects option 1.\n\n### 3. Determine Test Scope\n\n**If PR number provided:**\n```bash\ngh pr view [number] --json files -q '.files[].path'\n```\n\n**If 'current' or empty:**\n```bash\ngit diff --name-only main...HEAD\n```\n\n**If branch name provided:**\n```bash\ngit diff --name-only main...[branch]\n```\n\n### 4. Map Files to Routes\n\nMap changed files to testable routes:\n\n| File Pattern | Route(s) |\n|-------------|----------|\n| `app\u002Fviews\u002Fusers\u002F*` | `\u002Fusers`, `\u002Fusers\u002F:id`, `\u002Fusers\u002Fnew` |\n| `app\u002Fcontrollers\u002Fsettings_controller.rb` | `\u002Fsettings` |\n| `app\u002Fjavascript\u002Fcontrollers\u002F*_controller.js` | Pages using that Stimulus controller |\n| `app\u002Fcomponents\u002F*_component.rb` | Pages rendering that component |\n| `app\u002Fviews\u002Flayouts\u002F*` | All pages (test homepage at minimum) |\n| `app\u002Fassets\u002Fstylesheets\u002F*` | Visual regression on key pages |\n| `app\u002Fhelpers\u002F*_helper.rb` | Pages using that helper |\n| `src\u002Fapp\u002F*` (Next.js) | Corresponding routes |\n| `src\u002Fcomponents\u002F*` | Pages using those components |\n\nBuild a list of URLs to test based on the mapping.\n\n### 5. Detect Dev Server Port\n\nDetermine the dev server port using this priority:\n\n1. **Explicit argument** — if the user passed `--port 5000`, use that directly\n2. **Project instructions** — check `AGENTS.md`, `CLAUDE.md`, or other instruction files for port references\n3. **package.json** — check dev\u002Fstart scripts for `--port` flags\n4. **Environment files** — check `.env`, `.env.local`, `.env.development` for `PORT=`\n5. **Default** — fall back to `3000`\n\n```bash\nPORT=\"${EXPLICIT_PORT:-}\"\nif [ -z \"$PORT\" ]; then\n  PORT=$(grep -Eio '(port\\s*[:=]\\s*|localhost:)([0-9]{4,5})' AGENTS.md 2>\u002Fdev\u002Fnull | grep -Eo '[0-9]{4,5}' | head -1)\n  if [ -z \"$PORT\" ]; then\n    PORT=$(grep -Eio '(port\\s*[:=]\\s*|localhost:)([0-9]{4,5})' CLAUDE.md 2>\u002Fdev\u002Fnull | grep -Eo '[0-9]{4,5}' | head -1)\n  fi\nfi\nif [ -z \"$PORT\" ]; then\n  PORT=$(grep -Eo '\\-\\-port[= ]+[0-9]{4,5}' package.json 2>\u002Fdev\u002Fnull | grep -Eo '[0-9]{4,5}' | head -1)\nfi\nif [ -z \"$PORT\" ]; then\n  PORT=$(grep -h '^PORT=' .env .env.local .env.development 2>\u002Fdev\u002Fnull | tail -1 | cut -d= -f2)\nfi\nPORT=\"${PORT:-3000}\"\necho \"Using dev server port: $PORT\"\n```\n\n### 6. Verify Server is Running\n\n```bash\nagent-browser open http:\u002F\u002Flocalhost:${PORT}\nagent-browser snapshot -i\n```\n\nIf the server is not running, inform the user:\n\n```\nServer not running on port ${PORT}\n\nPlease start your development server:\n- Rails: `bin\u002Fdev` or `rails server`\n- Node\u002FNext.js: `npm run dev`\n- Custom port: run this skill again with `--port \u003Cyour-port>`\n\nThen re-run this skill.\n```\n\n### 7. Test Each Affected Page\n\nFor each affected route:\n\n**Navigate and capture snapshot:**\n```bash\nagent-browser open \"http:\u002F\u002Flocalhost:${PORT}\u002F[route]\"\nagent-browser snapshot -i\n```\n\n**For headed mode:**\n```bash\nagent-browser --headed open \"http:\u002F\u002Flocalhost:${PORT}\u002F[route]\"\nagent-browser --headed snapshot -i\n```\n\n**Verify key elements:**\n- Use `agent-browser snapshot -i` to get interactive elements with refs\n- Page title\u002Fheading present\n- Primary content rendered\n- No error messages visible\n- Forms have expected fields\n\n**Test critical interactions:**\n```bash\nagent-browser click @e1\nagent-browser snapshot -i\n```\n\n**Take screenshots:**\n```bash\nagent-browser screenshot page-name.png\nagent-browser screenshot --full page-name-full.png\n```\n\n### 8. Human Verification (When Required)\n\nPause for human input when testing touches flows that require external interaction:\n\n| Flow Type | What to Ask |\n|-----------|-------------|\n| OAuth | \"Please sign in with [provider] and confirm it works\" |\n| Email | \"Check your inbox for the test email and confirm receipt\" |\n| Payments | \"Complete a test purchase in sandbox mode\" |\n| SMS | \"Verify you received the SMS code\" |\n| External APIs | \"Confirm the [service] integration is working\" |\n\nAsk the user (using the platform's question tool, or present numbered options and wait):\n\n```\nHuman Verification Needed\n\nThis test touches [flow type]. Please:\n1. [Action to take]\n2. [What to verify]\n\nDid it work correctly?\n1. Yes - continue testing\n2. No - describe the issue\n```\n\n### 9. Handle Failures\n\nWhen a test fails:\n\n1. **Document the failure:**\n   - Screenshot the error state: `agent-browser screenshot error.png`\n   - Note the exact reproduction steps\n\n2. **Ask the user how to proceed:**\n\n   ```\n   Test Failed: [route]\n\n   Issue: [description]\n   Console errors: [if any]\n\n   How to proceed?\n   1. Fix now - I'll help debug and fix\n   2. Create todo - Add a todo for later (using the todo-create skill)\n   3. Skip - Continue testing other pages\n   ```\n\n3. **If \"Fix now\":** investigate, propose a fix, apply, re-run the failing test\n4. **If \"Create todo\":** load the `todo-create` skill and create a todo with priority p1 and description `browser-test-{description}`, continue\n5. **If \"Skip\":** log as skipped, continue\n\n### 10. Test Summary\n\nAfter all tests complete, present a summary:\n\n```markdown\n## Browser Test Results\n\n**Test Scope:** PR #[number] \u002F [branch name]\n**Server:** http:\u002F\u002Flocalhost:${PORT}\n\n### Pages Tested: [count]\n\n| Route | Status | Notes |\n|-------|--------|-------|\n| `\u002Fusers` | Pass | |\n| `\u002Fsettings` | Pass | |\n| `\u002Fdashboard` | Fail | Console error: [msg] |\n| `\u002Fcheckout` | Skip | Requires payment credentials |\n\n### Console Errors: [count]\n- [List any errors found]\n\n### Human Verifications: [count]\n- OAuth flow: Confirmed\n- Email delivery: Confirmed\n\n### Failures: [count]\n- `\u002Fdashboard` - [issue description]\n\n### Created Todos: [count]\n- `005-pending-p1-browser-test-dashboard-error.md`\n\n### Result: [PASS \u002F FAIL \u002F PARTIAL]\n```\n\n## Quick Usage Examples\n\n```bash\n# Test current branch changes (auto-detects port)\n\u002Ftest-browser\n\n# Test specific PR\n\u002Ftest-browser 847\n\n# Test specific branch\n\u002Ftest-browser feature\u002Fnew-dashboard\n\n# Test on a specific port\n\u002Ftest-browser --port 5000\n```\n\n## agent-browser CLI Reference\n\n```bash\n# Navigation\nagent-browser open \u003Curl>           # Navigate to URL\nagent-browser back                 # Go back\nagent-browser close                # Close browser\n\n# Snapshots (get element refs)\nagent-browser snapshot -i          # Interactive elements with refs (@e1, @e2, etc.)\nagent-browser snapshot -i --json   # JSON output\n\n# Interactions (use refs from snapshot)\nagent-browser click @e1            # Click element\nagent-browser fill @e1 \"text\"      # Fill input\nagent-browser type @e1 \"text\"      # Type without clearing\nagent-browser press Enter          # Press key\n\n# Screenshots\nagent-browser screenshot out.png       # Viewport screenshot\nagent-browser screenshot --full out.png # Full page screenshot\n\n# Headed mode (visible browser)\nagent-browser --headed open \u003Curl>      # Open with visible browser\nagent-browser --headed click @e1       # Click in visible browser\n\n# Wait\nagent-browser wait @e1             # Wait for element\nagent-browser wait 2000            # Wait milliseconds\n```\n","# Browser Test Skill\n\nRun end-to-end browser tests on pages affected by a PR or branch changes using the `agent-browser` CLI.\n\n## Use `agent-browser` Only For Browser Automation\n\nThis workflow uses the `agent-browser` CLI exclusively. Do not use any alternative browser automation system, browser MCP integration, or built-in browser-control tool. If the platform offers multiple ways to control a browser, always choose `agent-browser`.\n\nUse `agent-browser` for: opening pages, clicking elements, filling forms, taking screenshots, and scraping rendered content.\n\nPlatform-specific hints:\n- In Claude Code, do not use Chrome MCP tools (`mcp__claude-in-chrome__*`).\n- In Codex, do not substitute unrelated browsing tools.\n\n## Prerequisites\n\n- Local development server running (e.g., `bin\u002Fdev`, `rails server`, `npm run dev`)\n- `agent-browser` CLI installed (see Setup below)\n- Git repository with changes to test\n\n## Setup\n\n```bash\ncommand -v agent-browser >\u002Fdev\u002Fnull 2>&1 && echo \"Installed\" || echo \"NOT INSTALLED\"\n```\n\nInstall if needed:\n```bash\nnpm install -g agent-browser\nagent-browser install\n```\n\nSee the `agent-browser` skill for detailed usage.\n\n## Workflow\n\n### 1. Verify Installation\n\nBefore starting, verify `agent-browser` is available:\n\n```bash\ncommand -v agent-browser >\u002Fdev\u002Fnull 2>&1 && echo \"Ready\" || (echo \"Installing...\" && npm install -g agent-browser && agent-browser install)\n```\n\nIf installation fails, inform the user and stop.\n\n### 2. Ask Browser Mode\n\nAsk the user whether to run headed or headless (using the platform's question tool — e.g., `AskUserQuestion` in Claude Code, `request_user_input` in Codex, `ask_user` in Gemini — or present options and wait for a reply):\n\n```\nDo you want to watch the browser tests run?\n\n1. Headed (watch) - Opens visible browser window so you can see tests run\n2. Headless (faster) - Runs in background, faster but invisible\n```\n\nStore the choice and use the `--headed` flag when the user selects option 1.\n\n### 3. Determine Test Scope\n\n**If PR number provided:**\n```bash\ngh pr view [number] --json files -q '.files[].path'\n```\n\n**If 'current' or empty:**\n```bash\ngit diff --name-only main...HEAD\n```\n\n**If branch name provided:**\n```bash\ngit diff --name-only main...[branch]\n```\n\n### 4. Map Files to Routes\n\nMap changed files to testable routes:\n\n| File Pattern | Route(s) |\n|-------------|----------|\n| `app\u002Fviews\u002Fusers\u002F*` | `\u002Fusers`, `\u002Fusers\u002F:id`, `\u002Fusers\u002Fnew` |\n| `app\u002Fcontrollers\u002Fsettings_controller.rb` | `\u002Fsettings` |\n| `app\u002Fjavascript\u002Fcontrollers\u002F*_controller.js` | Pages using that Stimulus controller |\n| `app\u002Fcomponents\u002F*_component.rb` | Pages rendering that component |\n| `app\u002Fviews\u002Flayouts\u002F*` | All pages (test homepage at minimum) |\n| `app\u002Fassets\u002Fstylesheets\u002F*` | Visual regression on key pages |\n| `app\u002Fhelpers\u002F*_helper.rb` | Pages using that helper |\n| `src\u002Fapp\u002F*` (Next.js) | Corresponding routes |\n| `src\u002Fcomponents\u002F*` | Pages using those components |\n\nBuild a list of URLs to test based on the mapping.\n\n### 5. Detect Dev Server Port\n\nDetermine the dev server port using this priority:\n\n1. **Explicit argument** — if the user passed `--port 5000`, use that directly\n2. **Project instructions** — check `AGENTS.md`, `CLAUDE.md`, or other instruction files for port references\n3. **package.json** — check dev\u002Fstart scripts for `--port` flags\n4. **Environment files** — check `.env`, `.env.local`, `.env.development` for `PORT=`\n5. **Default** — fall back to `3000`\n\n```bash\nPORT=\"${EXPLICIT_PORT:-}\"\nif [ -z \"$PORT\" ]; then\n  PORT=$(grep -Eio '(port\\s*[:=]\\s*|localhost:)([0-9]{4,5})' AGENTS.md 2>\u002Fdev\u002Fnull | grep -Eo '[0-9]{4,5}' | head -1)\n  if [ -z \"$PORT\" ]; then\n    PORT=$(grep -Eio '(port\\s*[:=]\\s*|localhost:)([0-9]{4,5})' CLAUDE.md 2>\u002Fdev\u002Fnull | grep -Eo '[0-9]{4,5}' | head -1)\n  fi\nfi\nif [ -z \"$PORT\" ]; then\n  PORT=$(grep -Eo '\\-\\-port[= ]+[0-9]{4,5}' package.json 2>\u002Fdev\u002Fnull | grep -Eo '[0-9]{4,5}' | head -1)\nfi\nif [ -z \"$PORT\" ]; then\n  PORT=$(grep -h '^PORT=' .env .env.local .env.development 2>\u002Fdev\u002Fnull | tail -1 | cut -d= -f2)\nfi\nPORT=\"${PORT:-3000}\"\necho \"Using dev server port: $PORT\"\n```\n\n### 6. Verify Server is Running\n\n```bash\nagent-browser open http:\u002F\u002Flocalhost:${PORT}\nagent-browser snapshot -i\n```\n\nIf the server is not running, inform the user:\n\n```\nServer not running on port ${PORT}\n\nPlease start your development server:\n- Rails: `bin\u002Fdev` or `rails server`\n- Node\u002FNext.js: `npm run dev`\n- Custom port: run this skill again with `--port \u003Cyour-port>`\n\nThen re-run this skill.\n```\n\n### 7. Test Each Affected Page\n\nFor each affected route:\n\n**Navigate and capture snapshot:**\n```bash\nagent-browser open \"http:\u002F\u002Flocalhost:${PORT}\u002F[route]\"\nagent-browser snapshot -i\n```\n\n**For headed mode:**\n```bash\nagent-browser --headed open \"http:\u002F\u002Flocalhost:${PORT}\u002F[route]\"\nagent-browser --headed snapshot -i\n```\n\n**Verify key elements:**\n- Use `agent-browser snapshot -i` to get interactive elements with refs\n- Page title\u002Fheading present\n- Primary content rendered\n- No error messages visible\n- Forms have expected fields\n\n**Test critical interactions:**\n```bash\nagent-browser click @e1\nagent-browser snapshot -i\n```\n\n**Take screenshots:**\n```bash\nagent-browser screenshot page-name.png\nagent-browser screenshot --full page-name-full.png\n```\n\n### 8. Human Verification (When Required)\n\nPause for human input when testing touches flows that require external interaction:\n\n| Flow Type | What to Ask |\n|-----------|-------------|\n| OAuth | \"Please sign in with [provider] and confirm it works\" |\n| Email | \"Check your inbox for the test email and confirm receipt\" |\n| Payments | \"Complete a test purchase in sandbox mode\" |\n| SMS | \"Verify you received the SMS code\" |\n| External APIs | \"Confirm the [service] integration is working\" |\n\nAsk the user (using the platform's question tool, or present numbered options and wait):\n\n```\nHuman Verification Needed\n\nThis test touches [flow type]. Please:\n1. [Action to take]\n2. [What to verify]\n\nDid it work correctly?\n1. Yes - continue testing\n2. No - describe the issue\n```\n\n### 9. Handle Failures\n\nWhen a test fails:\n\n1. **Document the failure:**\n   - Screenshot the error state: `agent-browser screenshot error.png`\n   - Note the exact reproduction steps\n\n2. **Ask the user how to proceed:**\n\n   ```\n   Test Failed: [route]\n\n   Issue: [description]\n   Console errors: [if any]\n\n   How to proceed?\n   1. Fix now - I'll help debug and fix\n   2. Create todo - Add a todo for later (using the todo-create skill)\n   3. Skip - Continue testing other pages\n   ```\n\n3. **If \"Fix now\":** investigate, propose a fix, apply, re-run the failing test\n4. **If \"Create todo\":** load the `todo-create` skill and create a todo with priority p1 and description `browser-test-{description}`, continue\n5. **If \"Skip\":** log as skipped, continue\n\n### 10. Test Summary\n\nAfter all tests complete, present a summary:\n\n```markdown\n## Browser Test Results\n\n**Test Scope:** PR #[number] \u002F [branch name]\n**Server:** http:\u002F\u002Flocalhost:${PORT}\n\n### Pages Tested: [count]\n\n| Route | Status | Notes |\n|-------|--------|-------|\n| `\u002Fusers` | Pass | |\n| `\u002Fsettings` | Pass | |\n| `\u002Fdashboard` | Fail | Console error: [msg] |\n| `\u002Fcheckout` | Skip | Requires payment credentials |\n\n### Console Errors: [count]\n- [List any errors found]\n\n### Human Verifications: [count]\n- OAuth flow: Confirmed\n- Email delivery: Confirmed\n\n### Failures: [count]\n- `\u002Fdashboard` - [issue description]\n\n### Created Todos: [count]\n- `005-pending-p1-browser-test-dashboard-error.md`\n\n### Result: [PASS \u002F FAIL \u002F PARTIAL]\n```\n\n## Quick Usage Examples\n\n```bash\n# Test current branch changes (auto-detects port)\n\u002Ftest-browser\n\n# Test specific PR\n\u002Ftest-browser 847\n\n# Test specific branch\n\u002Ftest-browser feature\u002Fnew-dashboard\n\n# Test on a specific port\n\u002Ftest-browser --port 5000\n```\n\n## agent-browser CLI Reference\n\n```bash\n# Navigation\nagent-browser open \u003Curl>           # Navigate to URL\nagent-browser back                 # Go back\nagent-browser close                # Close browser\n\n# Snapshots (get element refs)\nagent-browser snapshot -i          # Interactive elements with refs (@e1, @e2, etc.)\nagent-browser snapshot -i --json   # JSON output\n\n# Interactions (use refs from snapshot)\nagent-browser click @e1            # Click element\nagent-browser fill @e1 \"text\"      # Fill input\nagent-browser type @e1 \"text\"      # Type without clearing\nagent-browser press Enter          # Press key\n\n# Screenshots\nagent-browser screenshot out.png       # Viewport screenshot\nagent-browser screenshot --full out.png # Full page screenshot\n\n# Headed mode (visible browser)\nagent-browser --headed open \u003Curl>      # Open with visible browser\nagent-browser --headed click @e1       # Click in visible browser\n\n# Wait\nagent-browser wait @e1             # Wait for element\nagent-browser wait 2000            # Wait milliseconds\n```\n",{"name":5,"description":7,"argument-hint":44},"[PR number, branch name, 'current', or --port PORT]","main","0256fccfa68825bb93a1b37467a7377bd34280af",".github\u002Fskills\u002Ftest-browser",1,"https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123","Engineer, Printf Debugger, Vibe Coder, AI Enthusiast","2026-08-25 22:42:12",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add shyamsridhar123\u002Fkevin-copilot --skill test-browser",{"tool":59,"command":60},"bunx","bunx skills add shyamsridhar123\u002Fkevin-copilot --skill test-browser",{"tool":62,"command":63},"pnpm","pnpm dlx skills add shyamsridhar123\u002Fkevin-copilot --skill test-browser","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftest-browser\u002FSKILL.md",true,[],[68,83,102,116,134,147],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":39},"01M71EW4N5RQ70SERKYZB2GBDM","kevin-review","Review a diff and emit concise, evidence-backed findings.","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fkevin-review\u002FSKILL.md",[],[75,76,77,78,79,80,32,81,82],"kevin review","review","request","concise","evidence","diff","pull","pull request",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":39},"01M71EW36CP1KVDES6KGB8APZZ","kevin-merit","Audit a diff for over-engineering and report it as a corporate merit cycle. Satire; the subject is the code, never a person.","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fkevin-merit\u002FSKILL.md",[],[90,80,82,91,92,81,93,94,32,95,96,97,98,99,100,101,77],"kevin merit","code","report","audit","engineering","never","cycle","as","it","corporate","for","person",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":39},"01M71EW0YHNR57136MENKW4YSD","kevin-help","Show Kevin modes, commands, and runtime controls.","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fkevin-help\u002FSKILL.md",[],[109,110,111,112,113,114,115],"kevin help","help","commands","modes","show","runtime","controls",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":39},"01M71EVYYH5QASNZ1KB6C3GMDJ","kevin-enlighten","Explain a topic to someone with no background as a self-contained HTML picture explainer.","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fkevin-enlighten\u002FSKILL.md",[],[123,124,125,126,127,128,129,97,130,131,132,133],"kevin enlighten","enlighten","repository","explainer","explain","html","self","with","path","self-contained","background",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":39},"01M71EVX29VAGHZJZKAKQ97M7X","kevin-compress","Compress an answer without losing required information or safety warnings.","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fkevin-compress\u002FSKILL.md",[],[141,142,143,144,145,146],"kevin compress","compress","Safety","text","information","answer",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":39},"01M71EVVDWF888W10KA0D3N4W5","kevin-commit","Generate a terse Conventional Commits message from the staged diff.","https:\u002F\u002Fgithub.com\u002Fshyamsridhar123\u002Fkevin-copilot\u002Fblob\u002Fmain\u002Fplugin\u002Fskills\u002Fkevin-commit\u002FSKILL.md",[],[154,155,156,157,80,158,159,160,161,162],"commit","kevin commit","generate","commits","conventional commits","message","focus","staged","terse"]