[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACB4BE8BHHJX3TF2KHWM60":3,"skill-same:01M6ACB4BE8BHHJX3TF2KHWM60":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":31,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":66},"01M6ACB4BE8BHHJX3TF2KHWM60","ci-e2e-debug",null,"Download and inspect CI e2e test logs from GitHub Actions artifacts. Use when investigating e2e test failures in CI.","apache\u002Fskywalking","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACB19NRCBY51M74TPEM71Y",25003,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fci-e2e-debug\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37],"debug","ci e2e debug","github","test","run","artifacts","2026-11-10 10:12:30",false,"---\nname: ci-e2e-debug\ndescription: Download and inspect CI e2e test logs from GitHub Actions artifacts. Use when investigating e2e test failures in CI.\nargument-hint: \"\u003CRUN_ID or GitHub Actions URL>\"\n---\n\n# CI E2E Debug Skill\n\nDownload test log artifacts from a GitHub Actions CI run and inspect them for errors.\n\n## Steps\n\n1. **Find the artifact**: Use `gh api` to list artifacts for the given CI run:\n   ```bash\n   gh api repos\u002Fapache\u002Fskywalking\u002Factions\u002Fruns\u002F\u003CRUN_ID>\u002Fartifacts --jq '.artifacts[] | {id: .id, name: .name}'\n   ```\n\n2. **Download and extract**: Download the artifact zip and extract it:\n   ```bash\n   cd \u002Ftmp && rm -rf e2e-debug-logs && mkdir e2e-debug-logs && cd e2e-debug-logs\n   gh api repos\u002Fapache\u002Fskywalking\u002Factions\u002Fartifacts\u002F\u003CARTIFACT_ID>\u002Fzip > artifact.zip\n   unzip -o artifact.zip\n   ```\n\n3. **Inspect OAP logs**: Look for errors in the OAP server logs:\n   ```bash\n   # Find OAP log files\n   find \u002Ftmp\u002Fe2e-debug-logs -name \"skywalking-oap-*.log\" -o -name \"oap.log\"\n   # Check for errors\n   grep -E \"ERROR|Exception|FATAL|CannotCompileException\" \u003Clog_file> | head -30\n   ```\n\n4. **Inspect other component logs**: Check BanyanDB, UI, and other pod logs as needed.\n\n5. **Report findings**: Summarize the root cause error from the logs.\n\n## Notes\n- CI artifacts are automatically uploaded by the e2e test framework to `$SW_INFRA_E2E_LOG_DIR`\n- Log files are organized by namespace\u002Fpod name\n- OAP init pods may have different errors than the main OAP pod — check all of them\n- Common errors: MAL\u002FLAL\u002FOAL compilation failures, storage connection issues, module initialization errors\n- **Profile exporter tests** (e.g., Trace Profiling ES): the exporter runs as a separate process with `MockCoreModuleProvider`. If a new service is added to `CoreModule.services()` but not registered in the mock, the exporter fails at startup with `requiredCheck()` error — but the OAP logs will show no errors (OAP is fine, the exporter subprocess is what fails). Check the test step that runs `profile_exporter.sh`.\n- **When OAP logs are clean but tests fail**: look at which specific test step failed. Some e2e tests invoke standalone tools (profile exporter, data generator) that boot with mock providers and may fail independently of OAP.\n","# CI E2E Debug Skill\n\nDownload test log artifacts from a GitHub Actions CI run and inspect them for errors.\n\n## Steps\n\n1. **Find the artifact**: Use `gh api` to list artifacts for the given CI run:\n   ```bash\n   gh api repos\u002Fapache\u002Fskywalking\u002Factions\u002Fruns\u002F\u003CRUN_ID>\u002Fartifacts --jq '.artifacts[] | {id: .id, name: .name}'\n   ```\n\n2. **Download and extract**: Download the artifact zip and extract it:\n   ```bash\n   cd \u002Ftmp && rm -rf e2e-debug-logs && mkdir e2e-debug-logs && cd e2e-debug-logs\n   gh api repos\u002Fapache\u002Fskywalking\u002Factions\u002Fartifacts\u002F\u003CARTIFACT_ID>\u002Fzip > artifact.zip\n   unzip -o artifact.zip\n   ```\n\n3. **Inspect OAP logs**: Look for errors in the OAP server logs:\n   ```bash\n   # Find OAP log files\n   find \u002Ftmp\u002Fe2e-debug-logs -name \"skywalking-oap-*.log\" -o -name \"oap.log\"\n   # Check for errors\n   grep -E \"ERROR|Exception|FATAL|CannotCompileException\" \u003Clog_file> | head -30\n   ```\n\n4. **Inspect other component logs**: Check BanyanDB, UI, and other pod logs as needed.\n\n5. **Report findings**: Summarize the root cause error from the logs.\n\n## Notes\n- CI artifacts are automatically uploaded by the e2e test framework to `$SW_INFRA_E2E_LOG_DIR`\n- Log files are organized by namespace\u002Fpod name\n- OAP init pods may have different errors than the main OAP pod — check all of them\n- Common errors: MAL\u002FLAL\u002FOAL compilation failures, storage connection issues, module initialization errors\n- **Profile exporter tests** (e.g., Trace Profiling ES): the exporter runs as a separate process with `MockCoreModuleProvider`. If a new service is added to `CoreModule.services()` but not registered in the mock, the exporter fails at startup with `requiredCheck()` error — but the OAP logs will show no errors (OAP is fine, the exporter subprocess is what fails). Check the test step that runs `profile_exporter.sh`.\n- **When OAP logs are clean but tests fail**: look at which specific test step failed. Some e2e tests invoke standalone tools (profile exporter, data generator) that boot with mock providers and may fail independently of OAP.\n",{"name":5,"description":7,"argument-hint":43},"\u003CRUN_ID or GitHub Actions URL>","master","f4d38fdc21e5a929ef89556a1d7c337957523aa9",".claude\u002Fskills\u002Fci-e2e-debug",6625,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking","https:\u002F\u002Fskywalking.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-13 22:48:26",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add apache\u002Fskywalking --skill ci-e2e-debug",{"tool":59,"command":60},"bunx","bunx skills add apache\u002Fskywalking --skill ci-e2e-debug",{"tool":62,"command":63},"pnpm","pnpm dlx skills add apache\u002Fskywalking --skill ci-e2e-debug","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fci-e2e-debug\u002FSKILL.md",true,[],[68,79,90,104,114,121],{"skillNo":69,"name":35,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":74,"publishedAt":38},"01M6ACBTY89EEM81A0WWN0QQT3","Run unit tests, integration tests, or slow integration tests matching CI. Use to validate changes before submitting a PR.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftest\u002FSKILL.md",[73],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[35,75,76,77,36,78],"pr","integration tests","unit tests","validate",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":86,"publishedAt":38},"01M6ACBRBNXZ57EN1G8GREKFY5","run-e2e","Run SkyWalking E2E tests locally","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Frun-e2e\u002FSKILL.md",[85],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[36,87,88,89,35],"run e2e","e2e tests","skywalking",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":100,"publishedAt":38},"01M6ACBNH0HSYFX2K9CYJSPAVM","package","Rebuild the SkyWalking distribution and OAP Docker image after source changes. Use before running e2e tests so the image reflects your code changes. Avoids the \"image looks updated but runtime has stale jars\" trap.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fpackage\u002FSKILL.md",[96,97],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":98,"categoryName":99,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[92,88,101,102,103,89],"code","image","docker",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":38},"01M6ACBJQMZV0S42P4WMCFFPGP","new-monitoring-feature","Add a new monitoring target \u002F layer to SkyWalking OAP. Orients you to the OAL \u002F MAL \u002F LAL \u002F TAL \u002F SpanListener extension points, the UI template + submodule touchpoints, the docs set that must move together, and the cross-cutting traps that don't live in any one skill.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fnew-monitoring-feature\u002FSKILL.md",[],[111,112,113,89],"new monitoring feature","extension points","docs",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":38},"01M6ACBG5P0NY2A7AEX89BZNFH","license","Check and fix Apache 2.0 license headers and dependency licenses using skywalking-eyes. Use before submitting a PR.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Flicense\u002FSKILL.md",[],[116,75,9,89],{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":130,"publishedAt":38},"01M6ACBDKKTXZ8Y36YHBADT8JA","gh-pull-request","Verify, commit, and push changes on a PR branch. Runs pre-flight checks (compile, checkstyle, license headers) before every push. Also creates the PR if one doesn't exist yet.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgh-pull-request\u002FSKILL.md",[127],{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",[131,132,133,134,135,75,136],"gh pull request","pull","pull request","commit","compile","push"]