[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71R286YG9YC3BZBDC23P5JA":3,"skill-same:01M71R286YG9YC3BZBDC23P5JA":71},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":13,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M71R286YG9YC3BZBDC23P5JA","e2e-testing",null,"E2E testing - hybrid: e2e-test.js smoke checks + Playwright for flows, assertions, visual regression, Ollama AI analysis.","LuisAlbertoMK\u002Fgentleman-agent-gh","LuisAlbertoMK","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F96153499?v=4","01M71QZX0CF9KKGQZ8ZN9BME63","01M71QZX11P5X6Z27HE1GQDF71",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fe2e-testing\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"e2e testing","e2e","testing","ollama","hybrid","assertions","for","flows","form","visual","visual regression","smoke","interactive","regression","analysis","browser testing","browser","test","playwright","docs","2026-11-10 13:02:02",false,"---\nname: e2e-testing\ndescription: \"E2E testing - hybrid: e2e-test.js smoke checks + Playwright for flows, assertions, visual regression, Ollama AI analysis.\"\ntriggers: test, e2e, playwright, browser testing, interactive testing, form testing\nchangelog: docs\u002Fciclos\u002Fcycle28-20260815.md\ntoken_budget: 2732\n---\n## When to Use\nBrowser-level verification of user flows: smoke, forms, login\u002Fdashboard, visual regression. Quick Mode = fast smoke; Full Mode = CI pipelines, assertions, screenshots.\n## Quick Mode (e2e-test.js CLI)\n```powershell\n.\\scripts\\e2e-test.ps1 -Url \"http:\u002F\u002Flocalhost:3000\" -Actions \"click:#login\"\n.\\scripts\\e2e-test.ps1 -Url \"http:\u002F\u002Flocalhost:3000\" -Actions \"fill:#email=test,fill:#pass=test,click:#submit\"\n# or: node scripts\u002Fe2e-test.js --url http:\u002F\u002Flocalhost:3000 --actions \"click:#login\" --analyze\n```\nActions: `click:#sel` · `fill:#sel=value` · `type` · `select` · `wait:#sel`\u002F`wait:1000` · `screenshot:name.png`.\n## Full Mode (Playwright Test Runner)\nStructure: `tests\u002Fe2e\u002Flogin.spec.js`, `dashboard.spec.js`.\n```javascript\nconst { test, expect } = require('@playwright\u002Ftest');\ntest('login flow', async ({ page }) => {\n  await page.goto('http:\u002F\u002Flocalhost:3000');\n  await page.fill('#email', 'test');\n  await page.click('#submit');\n  await expect(page).toHaveURL(\u002Fdashboard\u002F);\n});\n```\nRun: `npx playwright test` · single file · `--ui` · `show-report`.\n## When to Use Which\n| Scenario | Mode | Why |\n|---|---|---|\n| Quick smoke test | Simple | Fast, no setup |\n| Form validation | Simple | Interactive actions |\n| CI\u002FCD pipeline | Full | Assertions, reporting |\n| Visual regression | Full | Screenshot comparisons |\n## Requirements\nPlaywright: `npm i -D playwright` · Chromium: `npx playwright install chromium` · Ollama (optional): AI analysis.\n## Reference\nWorked examples, testing patterns, edge cases, anti-patterns → docs\u002Fskills\u002Fe2e-testing\u002Freference.md\n## Anti-Rationalization\n| Rationalization | Red Flag | Verification |\n|-----------------|----------|--------------|\n| \"Playwright para smoke que e2e-test.js cubre\" | Full Playwright para smoke simple | Quick Mode `e2e-test.ps1` para smoke; Full solo assertions\u002Fvisual |\n| \"Flows sin assertions\" | goto\u002Fclick sin expect | Cada flow con `expect(page).toHaveURL` \u002F `toHaveScreenshot` \u002F assertions |\n| \"E2E sin viewport ni reporte\" | Solo chromium desktop sin CI report | Multi-viewport + `show-report` + Chromium install verify |\n\n## Red Flags\n- Doing work without checking output format → STOP, re-read skill\n- Second occurrence of same rationalization → force RED zone\n\n## Verification\n- Output matches skill ## Output contract + file:line citaton\n- cross-ref-check.ps1 → SKILL.md OK\n## Refs\nCross-Refs: testing-strategy | api-testing\n\n","## When to Use\nBrowser-level verification of user flows: smoke, forms, login\u002Fdashboard, visual regression. Quick Mode = fast smoke; Full Mode = CI pipelines, assertions, screenshots.\n## Quick Mode (e2e-test.js CLI)\n```powershell\n.\\scripts\\e2e-test.ps1 -Url \"http:\u002F\u002Flocalhost:3000\" -Actions \"click:#login\"\n.\\scripts\\e2e-test.ps1 -Url \"http:\u002F\u002Flocalhost:3000\" -Actions \"fill:#email=test,fill:#pass=test,click:#submit\"\n# or: node scripts\u002Fe2e-test.js --url http:\u002F\u002Flocalhost:3000 --actions \"click:#login\" --analyze\n```\nActions: `click:#sel` · `fill:#sel=value` · `type` · `select` · `wait:#sel`\u002F`wait:1000` · `screenshot:name.png`.\n## Full Mode (Playwright Test Runner)\nStructure: `tests\u002Fe2e\u002Flogin.spec.js`, `dashboard.spec.js`.\n```javascript\nconst { test, expect } = require('@playwright\u002Ftest');\ntest('login flow', async ({ page }) => {\n  await page.goto('http:\u002F\u002Flocalhost:3000');\n  await page.fill('#email', 'test');\n  await page.click('#submit');\n  await expect(page).toHaveURL(\u002Fdashboard\u002F);\n});\n```\nRun: `npx playwright test` · single file · `--ui` · `show-report`.\n## When to Use Which\n| Scenario | Mode | Why |\n|---|---|---|\n| Quick smoke test | Simple | Fast, no setup |\n| Form validation | Simple | Interactive actions |\n| CI\u002FCD pipeline | Full | Assertions, reporting |\n| Visual regression | Full | Screenshot comparisons |\n## Requirements\nPlaywright: `npm i -D playwright` · Chromium: `npx playwright install chromium` · Ollama (optional): AI analysis.\n## Reference\nWorked examples, testing patterns, edge cases, anti-patterns → docs\u002Fskills\u002Fe2e-testing\u002Freference.md\n## Anti-Rationalization\n| Rationalization | Red Flag | Verification |\n|-----------------|----------|--------------|\n| \"Playwright para smoke que e2e-test.js cubre\" | Full Playwright para smoke simple | Quick Mode `e2e-test.ps1` para smoke; Full solo assertions\u002Fvisual |\n| \"Flows sin assertions\" | goto\u002Fclick sin expect | Cada flow con `expect(page).toHaveURL` \u002F `toHaveScreenshot` \u002F assertions |\n| \"E2E sin viewport ni reporte\" | Solo chromium desktop sin CI report | Multi-viewport + `show-report` + Chromium install verify |\n\n## Red Flags\n- Doing work without checking output format → STOP, re-read skill\n- Second occurrence of same rationalization → force RED zone\n\n## Verification\n- Output matches skill ## Output contract + file:line citaton\n- cross-ref-check.ps1 → SKILL.md OK\n## Refs\nCross-Refs: testing-strategy | api-testing\n\n",{"name":5,"triggers":48,"changelog":49,"description":7,"token_budget":50},"test, e2e, playwright, browser testing, interactive testing, form testing","docs\u002Fciclos\u002Fcycle28-20260815.md",2732,"main","4af6946b30783e2c8f9182082324d530fc28f838",".agents\u002Fskills\u002Fe2e-testing","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK","2026-11-10 18:34:27",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add LuisAlbertoMK\u002Fgentleman-agent-gh --skill e2e-testing",{"tool":63,"command":64},"bunx","bunx skills add LuisAlbertoMK\u002Fgentleman-agent-gh --skill e2e-testing",{"tool":66,"command":67},"pnpm","pnpm dlx skills add LuisAlbertoMK\u002Fgentleman-agent-gh --skill e2e-testing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fe2e-testing\u002FSKILL.md",true,[],[72,113,136,155,180,205],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":92,"publishedAt":43},"01M71R7K35P668DYEPYGDQP2QA","web-quality-audit","Comprehensive web audit: performance, a11y, SEO, responsive, animation, design tokens.","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002Fdocs\u002Fciclos\u002Fc28-w1-backup\u002Fweb-quality-audit\u002FSKILL.md",[78,81,84,89],{"categoryNo":79,"categoryName":80,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":82,"categoryName":83,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":90,"categoryName":91,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000035","市场营销",[93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112],"quality","quality audit","web quality audit","audit","web","Animation","design audit","design","website","ui","responsive","seo","tokens","ui audit","Lighthouse","performance","review","optimize","a11y","page",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":43},"01M71R7H1RA7CQ568DHRK37PE2","ui-engine","UI system — Grid\u002FFlexbox\u002F@layer\u002F:has(), container queries, compositor-only animation, OKLCH tokens, component patterns","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002Fdocs\u002Fciclos\u002Fc28-w1-backup\u002Fui-engine\u002FSKILL.md",[119],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[121,122,102,98,123,124,125,112,126,105,127,128,129,100,130,131,132,133,134,135],"ui engine","engine","compositor","css","dark","system","mode","hooks","container","only","query","components","dark mode","grid","queries",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":144,"publishedAt":43},"01M71R7EPMZFKB833WE4B3GTHC","baseline-ui","Anti-slop UI — layout, typography, responsive, animation, tokens. Use for cleanup or polish.","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002Fdocs\u002Fciclos\u002Fc28-w1-backup\u002Fbaseline-ui\u002FSKILL.md",[142,143],{"categoryNo":79,"categoryName":80,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[145,146,102,98,147,148,29,149,105,150,129,100,151,152,153,106,154,131,134,109],"baseline ui","baseline","generic","slop","anti-slop","fix","interface","cleanup","design review","use",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":164,"publishedAt":43},"01M71R7CWK3FBW77Z8WD9GXQFE","skill-creator","Create new AI agent skills following Agent Skills spec -- auto-bootstrap unknown tasks, define structure, register in AGENTS.md","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002F.archive\u002Fskills\u002Fskill-creator\u002FSKILL.md",[161],{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[165,166,167,168,169,170,171,172,173,174,175,176,177,178,179],"skill creator","creator","create","structure","register","2026","spec","new","ai skill","auto","define","ai agent","unknown","tasks","bootstrap",{"skillNo":181,"name":182,"nameZh":6,"description":183,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":184,"categories":185,"keywords":188,"publishedAt":43},"01M71R78DZM1GA16F1KN8ND926","senior-engineer","Apply senior engineering competencies — system design, trade-off analysis, delegation, mentoring, and tech debt strategy","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002F.archive\u002Fskills\u002Fsenior-engineer\u002FSKILL.md",[186,187],{"categoryNo":79,"categoryName":80,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[189,190,191,192,193,194,195,100,196,37,170,197,198,199,126,200,201,202,203,204],"engineer","senior","senior engineer","system design","trade-offs","senior engineering","delegation","senior architect","debt","architect","tech","strategy","apply","trade","tech debt","engineering",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":215,"publishedAt":43},"01M71R74WQTXZMG3219RND96CE","prompt-engineering","Design effective prompts using SPEARS framework — scope, principles, examples, assertions, refinements, with ReAct and multi-agent patterns","https:\u002F\u002Fgithub.com\u002FLuisAlbertoMK\u002Fgentleman-agent-gh\u002Fblob\u002Fmain\u002F.archive\u002Fskills\u002Fprompt-engineering\u002FSKILL.md",[211,214],{"categoryNo":212,"categoryName":213,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":162,"categoryName":163,"taxonomyType":20,"taxonomyTypeDesc":21},[216,217,204,218,219,100,220,170,221,222,223,224,225,28,226,227,228,229,230,231],"prompt","prompt engineering","scope","improve","react","security","patterns","multi-agent","framework","agent patterns","examples","with","multi","principles","improve prompt","prompts"]