[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D79JBCVR0TAP3APKJC7ZCQ":3,"skill-same:01M6D79JBCVR0TAP3APKJC7ZCQ":62},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":46,"updatedAt":47,"install":48,"resources":61},"01M6D79JBCVR0TAP3APKJC7ZCQ","testrail",null,"Sync tests with TestRail. Use when user mentions \"testrail\", \"test management\", \"test cases\", \"test run\", \"sync test cases\", \"push results to testrail\", or \"import from testrail\".","oabdelmaksoud\u002FSuperClaw","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D5CW1RHNSKCJR85GJACBFT",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fclaude-skills\u002Fengineering-team\u002Fplaywright-pro\u002Fskills\u002Ftestrail\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33],"test","sync","run","push","test run","results","management","user","use","tests","2026-11-10 10:12:30",false,"---\nname: testrail\ndescription: >-\n  Sync tests with TestRail. Use when user mentions \"testrail\", \"test management\",\n  \"test cases\", \"test run\", \"sync test cases\", \"push results to testrail\",\n  or \"import from testrail\".\n---\n\n# TestRail Integration\n\nBidirectional sync between Playwright tests and TestRail test management.\n\n## Prerequisites\n\nEnvironment variables must be set:\n- `TESTRAIL_URL` — e.g., `https:\u002F\u002Fyour-instance.testrail.io`\n- `TESTRAIL_USER` — your email\n- `TESTRAIL_API_KEY` — API key from TestRail\n\nIf not set, inform the user how to configure them and stop.\n\n## Capabilities\n\n### 1. Import Test Cases → Generate Playwright Tests\n\n```\n\u002Fpw:testrail import --project \u003Cid> --suite \u003Cid>\n```\n\nSteps:\n1. Call `testrail_get_cases` MCP tool to fetch test cases\n2. For each test case:\n   - Read title, preconditions, steps, expected results\n   - Map to a Playwright test using appropriate template\n   - Include TestRail case ID as test annotation: `test.info().annotations.push({ type: 'testrail', description: 'C12345' })`\n3. Generate test files grouped by section\n4. Report: X cases imported, Y tests generated\n\n### 2. Push Test Results → TestRail\n\n```\n\u002Fpw:testrail push --run \u003Cid>\n```\n\nSteps:\n1. Run Playwright tests with JSON reporter:\n   ```bash\n   npx playwright test --reporter=json > test-results.json\n   ```\n2. Parse results: map each test to its TestRail case ID (from annotations)\n3. Call `testrail_add_result` MCP tool for each test:\n   - Pass → status_id: 1\n   - Fail → status_id: 5, include error message\n   - Skip → status_id: 2\n4. Report: X results pushed, Y passed, Z failed\n\n### 3. Create Test Run\n\n```\n\u002Fpw:testrail run --project \u003Cid> --name \"Sprint 42 Regression\"\n```\n\nSteps:\n1. Call `testrail_add_run` MCP tool\n2. Include all test case IDs found in Playwright test annotations\n3. Return run ID for result pushing\n\n### 4. Sync Status\n\n```\n\u002Fpw:testrail status --project \u003Cid>\n```\n\nSteps:\n1. Fetch test cases from TestRail\n2. Scan local Playwright tests for TestRail annotations\n3. Report coverage:\n   ```\n   TestRail cases: 150\n   Playwright tests with TestRail IDs: 120\n   Unlinked TestRail cases: 30\n   Playwright tests without TestRail IDs: 15\n   ```\n\n### 5. Update Test Cases in TestRail\n\n```\n\u002Fpw:testrail update --case \u003Cid>\n```\n\nSteps:\n1. Read the Playwright test for this case ID\n2. Extract steps and expected results from test code\n3. Call `testrail_update_case` MCP tool to update steps\n\n## MCP Tools Used\n\n| Tool | When |\n|---|---|\n| `testrail_get_projects` | List available projects |\n| `testrail_get_suites` | List suites in project |\n| `testrail_get_cases` | Read test cases |\n| `testrail_add_case` | Create new test case |\n| `testrail_update_case` | Update existing case |\n| `testrail_add_run` | Create test run |\n| `testrail_add_result` | Push individual result |\n| `testrail_get_results` | Read historical results |\n\n## Test Annotation Format\n\nAll Playwright tests linked to TestRail include:\n\n```typescript\ntest('should login successfully', async ({ page }) => {\n  test.info().annotations.push({\n    type: 'testrail',\n    description: 'C12345',\n  });\n  \u002F\u002F ... test code\n});\n```\n\nThis annotation is the bridge between Playwright and TestRail.\n\n## Output\n\n- Operation summary with counts\n- Any errors or unmatched cases\n- Link to TestRail run\u002Fresults\n","# TestRail Integration\n\nBidirectional sync between Playwright tests and TestRail test management.\n\n## Prerequisites\n\nEnvironment variables must be set:\n- `TESTRAIL_URL` — e.g., `https:\u002F\u002Fyour-instance.testrail.io`\n- `TESTRAIL_USER` — your email\n- `TESTRAIL_API_KEY` — API key from TestRail\n\nIf not set, inform the user how to configure them and stop.\n\n## Capabilities\n\n### 1. Import Test Cases → Generate Playwright Tests\n\n```\n\u002Fpw:testrail import --project \u003Cid> --suite \u003Cid>\n```\n\nSteps:\n1. Call `testrail_get_cases` MCP tool to fetch test cases\n2. For each test case:\n   - Read title, preconditions, steps, expected results\n   - Map to a Playwright test using appropriate template\n   - Include TestRail case ID as test annotation: `test.info().annotations.push({ type: 'testrail', description: 'C12345' })`\n3. Generate test files grouped by section\n4. Report: X cases imported, Y tests generated\n\n### 2. Push Test Results → TestRail\n\n```\n\u002Fpw:testrail push --run \u003Cid>\n```\n\nSteps:\n1. Run Playwright tests with JSON reporter:\n   ```bash\n   npx playwright test --reporter=json > test-results.json\n   ```\n2. Parse results: map each test to its TestRail case ID (from annotations)\n3. Call `testrail_add_result` MCP tool for each test:\n   - Pass → status_id: 1\n   - Fail → status_id: 5, include error message\n   - Skip → status_id: 2\n4. Report: X results pushed, Y passed, Z failed\n\n### 3. Create Test Run\n\n```\n\u002Fpw:testrail run --project \u003Cid> --name \"Sprint 42 Regression\"\n```\n\nSteps:\n1. Call `testrail_add_run` MCP tool\n2. Include all test case IDs found in Playwright test annotations\n3. Return run ID for result pushing\n\n### 4. Sync Status\n\n```\n\u002Fpw:testrail status --project \u003Cid>\n```\n\nSteps:\n1. Fetch test cases from TestRail\n2. Scan local Playwright tests for TestRail annotations\n3. Report coverage:\n   ```\n   TestRail cases: 150\n   Playwright tests with TestRail IDs: 120\n   Unlinked TestRail cases: 30\n   Playwright tests without TestRail IDs: 15\n   ```\n\n### 5. Update Test Cases in TestRail\n\n```\n\u002Fpw:testrail update --case \u003Cid>\n```\n\nSteps:\n1. Read the Playwright test for this case ID\n2. Extract steps and expected results from test code\n3. Call `testrail_update_case` MCP tool to update steps\n\n## MCP Tools Used\n\n| Tool | When |\n|---|---|\n| `testrail_get_projects` | List available projects |\n| `testrail_get_suites` | List suites in project |\n| `testrail_get_cases` | Read test cases |\n| `testrail_add_case` | Create new test case |\n| `testrail_update_case` | Update existing case |\n| `testrail_add_run` | Create test run |\n| `testrail_add_result` | Push individual result |\n| `testrail_get_results` | Read historical results |\n\n## Test Annotation Format\n\nAll Playwright tests linked to TestRail include:\n\n```typescript\ntest('should login successfully', async ({ page }) => {\n  test.info().annotations.push({\n    type: 'testrail',\n    description: 'C12345',\n  });\n  \u002F\u002F ... test code\n});\n```\n\nThis annotation is the bridge between Playwright and TestRail.\n\n## Output\n\n- Operation summary with counts\n- Any errors or unmatched cases\n- Link to TestRail run\u002Fresults\n",{"name":5,"description":7},"main","7b610356e36623652299fa2acb477ff821b1d920","upstream-sync\u002Fwork\u002Fclaude-skills\u002Fengineering-team\u002Fplaywright-pro\u002Fskills\u002Ftestrail",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:12:53",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add oabdelmaksoud\u002FSuperClaw --skill testrail",{"tool":54,"command":55},"bunx","bunx skills add oabdelmaksoud\u002FSuperClaw --skill testrail",{"tool":57,"command":58},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FSuperClaw --skill testrail","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fclaude-skills\u002Fengineering-team\u002Fplaywright-pro\u002Fskills\u002Ftestrail\u002FSKILL.md",true,[],[63,82,96,122,147,166],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":72,"publishedAt":34},"01M6D88QCPTBZVCRED0NZ1Y8K8","visa-doc-translate","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[69],{"categoryNo":70,"categoryName":71,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[73,74,75,76,77,78,79,80,81],"translate","doc","visa doc translate","translation","application","create","images","PDF","documents",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":34},"01M6D88NBM95T3TFM50CYYAP65","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[89,90,91,92,93,94,95],"verification","loop","verification loop","sessions","code","claude code sessions","system",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":111,"publishedAt":34},"01M6D88JFZ2P996GVRHJNSZSTM","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[102,103,106],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":104,"categoryName":105,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[112,113,114,115,116,117,93,118,32,24,119,120,33,121],"tdd","workflow","tdd workflow","e2e tests","e2e","integration","development","refactoring","coverage","writing",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":34},"01M6D88FTHRRSVJMXF2G7MQAK3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,30,145,146],"patterns","swiftui","swiftui patterns","architecture","macos","performance","state management","best practices","state","ui","Optimization","ios","architecture patterns","Composition","performance optimization","view","swiftui architecture","navigation",{"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":154,"publishedAt":34},"01M6D88D527QTQT9DKHTRFN6EA","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[153],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[155,156,157,158,93,159,160,161,162,95,163,164,165],"swift protocol di testing","protocol","swift","testing","protocols","file","network","injection","dependency","swift testing","dependency injection",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":34},"01M6D88AJW8H2QNWSW5ZY82R43","swift-concurrency-6-2","Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FSuperClaw\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[173,174,157,175,176,39],"concurrency","swift concurrency","swift concurrency 6 2","default"]