[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACZ2CRCD8Y524DAD3ZSCBA":3,"skill-same:01M6ACZ2CRCD8Y524DAD3ZSCBA":70},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":41,"ownerHtmlUrl":42,"ownerBlogUrl":43,"ownerDescription":6,"updatedAt":44,"install":45,"resources":57},"01M6ACZ2CRCD8Y524DAD3ZSCBA","compile",null,"Build the SkyWalking Java agent — full build, skip tests, single module, or plugin test scenarios","apache\u002Fskywalking-java","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACYZ6PKW201HRNNKQAZBTR",928,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking-java\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcompile\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[5,24,25,26,27,28],"test","plugin","skywalking","java","plugin test","2026-11-10 10:12:30",false,"---\nname: compile\ndescription: Build the SkyWalking Java agent — full build, skip tests, single module, or plugin test scenarios\nuser-invocable: true\nallowed-tools: Bash, Read, Glob, Grep\n---\n\n# Compile SkyWalking Java Agent\n\nBuild the project based on user request. Detect what they want to build and run the appropriate command.\n\n## Prerequisites\n\n- JDK 17, 21, or 25 (JDK 8 is supported at runtime but JDK 17+ is needed to compile)\n- Maven is bundled as `.\u002Fmvnw` (Maven wrapper)\n- Git submodules must be initialized for protocol definitions\n\nCheck JDK version first:\n```bash\njava -version\n```\n\nIf submodules are not initialized:\n```bash\ngit submodule init && git submodule update\n```\n\n## Build Commands\n\n### Full build (with tests)\n```bash\n.\u002Fmvnw clean package -Pall\n```\n\n### Full build (skip tests — recommended for development)\n```bash\n.\u002Fmvnw clean package -Dmaven.test.skip=true\n```\n\n### CI build (with javadoc verification)\n```bash\n.\u002Fmvnw clean verify install javadoc:javadoc -Dmaven.test.skip=true\n```\n\n### Build a single plugin module\n```bash\n.\u002Fmvnw clean package -pl apm-sniffer\u002Fapm-sdk-plugin\u002F{plugin-name} -am -Dmaven.test.skip=true\n```\nThe `-am` flag builds required dependencies. Replace `{plugin-name}` with the actual plugin directory name.\n\n### Run checkstyle only\n```bash\n.\u002Fmvnw checkstyle:check\n```\n\n### Run unit tests for a single module\n```bash\n.\u002Fmvnw test -pl apm-sniffer\u002Fapm-sdk-plugin\u002F{plugin-name}\n```\n\n### Build agent distribution only (after full build)\nThe built agent is in `skywalking-agent\u002F` directory after a full build.\n\n### Run a plugin E2E test scenario\n\nThe E2E test framework has a **two-phase build** (matching CI):\n\n**Phase 1 — Build agent + test tools + Docker images (one-time setup):**\n```bash\n# Build the agent (JDK 17+ required)\n.\u002Fmvnw clean package -Dmaven.test.skip=true\n\n# Switch to JDK 8 to build test tools and Docker images\n# The test\u002Fplugin\u002Fpom.xml builds: runner-helper, agent-test-tools, JVM\u002FTomcat container images\nexport JAVA_HOME=$(\u002Fusr\u002Flibexec\u002Fjava_home -v 8)\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\n.\u002Fmvnw --batch-mode -f test\u002Fplugin\u002Fpom.xml \\\n  -Dmaven.test.skip \\\n  -Dbase_image_java=eclipse-temurin:8-jdk \\\n  -Dbase_image_tomcat=tomcat:8.5-jdk8-openjdk \\\n  -Dcontainer_image_version=1.0.0 \\\n  clean package\n```\n\nThis builds `skywalking\u002Fagent-test-jvm:1.0.0` and `skywalking\u002Fagent-test-tomcat:1.0.0` Docker images,\nplus `test\u002Fplugin\u002Fdist\u002Fplugin-runner-helper.jar` and `test\u002Fplugin\u002Fagent-test-tools\u002Fdist\u002F` (mock-collector, validator).\n\n**Phase 2 — Run test scenarios (per scenario):**\n```bash\n# Use JDK 8 (matching CI). JDK 17 works for runner-helper but JDK 8 matches CI exactly.\nexport JAVA_HOME=$(\u002Fusr\u002Flibexec\u002Fjava_home -v 8)\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\n# Run WITHOUT -f (reuses pre-built tools and images from Phase 1)\nbash .\u002Ftest\u002Fplugin\u002Frun.sh --debug {scenario-name}\n```\n\n**IMPORTANT flags:**\n- `--debug` — keeps workspace with logs and `actualData.yaml` for inspection after test\n- `-f` (force) — rebuilds ALL test tools and Docker images from scratch. **Do NOT use** if Phase 1 already completed — it re-clones `skywalking-agent-test-tool` from GitHub and rebuilds everything, which is slow and may fail due to network issues.\n- Without `-f` — reuses existing tools\u002Fimages. This is the normal way to run tests.\n\n**Key rules:**\n- Run scenarios **one at a time** — they share Docker ports (8080, etc.) and will conflict if parallel\n- JDK 8 test scenarios use `eclipse-temurin:8-jdk` base image\n- JDK 17 test scenarios (in `plugins-jdk17-test` workflows) use `eclipse-temurin:17-jdk` base image\n- After a test, check `test\u002Fplugin\u002Fworkspace\u002F{scenario}\u002F{version}\u002Fdata\u002FactualData.yaml` vs `expectedData.yaml` for debugging failures\n- Check `test\u002Fplugin\u002Fworkspace\u002F{scenario}\u002F{version}\u002Flogs\u002F` for container logs\n\n**Diagnosing \"startup script not exists\" failures:**\nThis error means the scenario ZIP wasn't built or copied into the container. The root cause is almost always a **silent Maven build failure** — `run.sh` uses `mvnw -q` (quiet mode) which hides errors. Common causes:\n1. **Maven Central network timeout** — downloading a new library version fails silently. The `mvnw clean package` exits non-zero but the `-q` flag hides the error, and `run.sh` continues with missing artifacts.\n2. **Docker Hub timeout** — pulling dependency images (mongo, mysql, kafka, zookeeper) fails with EOF\u002FTLS errors.\n3. **Killed previous run** — if a prior parallel run was killed mid-execution, leftover state in `test\u002Fplugin\u002Fworkspace\u002F` can interfere. Always `rm -rf test\u002Fplugin\u002Fworkspace\u002F{scenario}` before rerunning.\n\nTo debug: run the Maven build manually in the scenario directory with verbose output:\n```bash\ncd test\u002Fplugin\u002Fscenarios\u002F{scenario-name}\n..\u002F..\u002F..\u002F..\u002Fmvnw clean package -Dtest.framework.version={version} -Dmaven.test.skip=true\n```\nIf this succeeds but `run.sh` fails, it's likely a transient Maven Central network issue. Pre-download dependencies first:\n```bash\n# Pre-warm Maven cache for all versions before running tests\nfor v in $(grep -v '^#' test\u002Fplugin\u002Fscenarios\u002F{scenario}\u002Fsupport-version.list | grep -v '^$'); do\n  cd test\u002Fplugin\u002Fscenarios\u002F{scenario}\n  ..\u002F..\u002F..\u002F..\u002Fmvnw dependency:resolve -Dtest.framework.version=$v -q\n  cd -\ndone\n```\n\n**Pre-pulling Docker dependency images:**\nScenarios with `dependencies:` in `configuration.yml` need external Docker images. Pre-pull them before running tests to avoid mid-test Docker Hub failures:\n```bash\n# Check what images a scenario needs\ngrep \"image:\" test\u002Fplugin\u002Fscenarios\u002F{scenario}\u002Fconfiguration.yml\n# Pull them\ndocker pull {image:tag}\n```\n\n### Generate protobuf sources (needed before IDE import)\n```bash\n.\u002Fmvnw compile -Dmaven.test.skip=true\n```\nThen mark `*\u002Ftarget\u002Fgenerated-sources\u002Fprotobuf\u002Fjava` and `*\u002Ftarget\u002Fgenerated-sources\u002Fprotobuf\u002Fgrpc-java` as generated source folders in your IDE.\n\n## Common Issues\n\n- **Submodule not initialized**: If proto files are missing, run `git submodule init && git submodule update`\n- **Wrong JDK version**: Agent build requires JDK 17+. Test tools build (test\u002Fplugin\u002Fpom.xml) works best with JDK 8. Check with `java -version`.\n- **Checkstyle failures**: Run `.\u002Fmvnw checkstyle:check` to see violations. Common: star imports, unused imports, System.out.println, missing @Override.\n- **Test scenario Docker issues**: Ensure Docker daemon is running. Use `--debug` flag to inspect `actualData.yaml`.\n- **`run.sh -f` fails on agent-test-tools**: The `-f` flag clones `skywalking-agent-test-tool` from GitHub and rebuilds from source. If GitHub is slow or unreachable, this fails. Solution: run Phase 1 build separately (see above), then use `run.sh` without `-f`.\n- **Lombok errors in runner-helper on JDK 25**: The test framework uses Lombok 1.18.20 which doesn't support JDK 25. Use JDK 8 or JDK 17 for building and running test tools.\n- **\"startup script not exists\" inside container**: The scenario ZIP wasn't built or copied correctly. Check that `mvnw clean package` succeeds in the scenario directory and produces both a `.jar` and `.zip` in `target\u002F`.\n- **Port conflicts**: Never run multiple E2E scenarios simultaneously — they all bind to the same Docker ports.\n","# Compile SkyWalking Java Agent\n\nBuild the project based on user request. Detect what they want to build and run the appropriate command.\n\n## Prerequisites\n\n- JDK 17, 21, or 25 (JDK 8 is supported at runtime but JDK 17+ is needed to compile)\n- Maven is bundled as `.\u002Fmvnw` (Maven wrapper)\n- Git submodules must be initialized for protocol definitions\n\nCheck JDK version first:\n```bash\njava -version\n```\n\nIf submodules are not initialized:\n```bash\ngit submodule init && git submodule update\n```\n\n## Build Commands\n\n### Full build (with tests)\n```bash\n.\u002Fmvnw clean package -Pall\n```\n\n### Full build (skip tests — recommended for development)\n```bash\n.\u002Fmvnw clean package -Dmaven.test.skip=true\n```\n\n### CI build (with javadoc verification)\n```bash\n.\u002Fmvnw clean verify install javadoc:javadoc -Dmaven.test.skip=true\n```\n\n### Build a single plugin module\n```bash\n.\u002Fmvnw clean package -pl apm-sniffer\u002Fapm-sdk-plugin\u002F{plugin-name} -am -Dmaven.test.skip=true\n```\nThe `-am` flag builds required dependencies. Replace `{plugin-name}` with the actual plugin directory name.\n\n### Run checkstyle only\n```bash\n.\u002Fmvnw checkstyle:check\n```\n\n### Run unit tests for a single module\n```bash\n.\u002Fmvnw test -pl apm-sniffer\u002Fapm-sdk-plugin\u002F{plugin-name}\n```\n\n### Build agent distribution only (after full build)\nThe built agent is in `skywalking-agent\u002F` directory after a full build.\n\n### Run a plugin E2E test scenario\n\nThe E2E test framework has a **two-phase build** (matching CI):\n\n**Phase 1 — Build agent + test tools + Docker images (one-time setup):**\n```bash\n# Build the agent (JDK 17+ required)\n.\u002Fmvnw clean package -Dmaven.test.skip=true\n\n# Switch to JDK 8 to build test tools and Docker images\n# The test\u002Fplugin\u002Fpom.xml builds: runner-helper, agent-test-tools, JVM\u002FTomcat container images\nexport JAVA_HOME=$(\u002Fusr\u002Flibexec\u002Fjava_home -v 8)\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\n.\u002Fmvnw --batch-mode -f test\u002Fplugin\u002Fpom.xml \\\n  -Dmaven.test.skip \\\n  -Dbase_image_java=eclipse-temurin:8-jdk \\\n  -Dbase_image_tomcat=tomcat:8.5-jdk8-openjdk \\\n  -Dcontainer_image_version=1.0.0 \\\n  clean package\n```\n\nThis builds `skywalking\u002Fagent-test-jvm:1.0.0` and `skywalking\u002Fagent-test-tomcat:1.0.0` Docker images,\nplus `test\u002Fplugin\u002Fdist\u002Fplugin-runner-helper.jar` and `test\u002Fplugin\u002Fagent-test-tools\u002Fdist\u002F` (mock-collector, validator).\n\n**Phase 2 — Run test scenarios (per scenario):**\n```bash\n# Use JDK 8 (matching CI). JDK 17 works for runner-helper but JDK 8 matches CI exactly.\nexport JAVA_HOME=$(\u002Fusr\u002Flibexec\u002Fjava_home -v 8)\nexport PATH=$JAVA_HOME\u002Fbin:$PATH\n\n# Run WITHOUT -f (reuses pre-built tools and images from Phase 1)\nbash .\u002Ftest\u002Fplugin\u002Frun.sh --debug {scenario-name}\n```\n\n**IMPORTANT flags:**\n- `--debug` — keeps workspace with logs and `actualData.yaml` for inspection after test\n- `-f` (force) — rebuilds ALL test tools and Docker images from scratch. **Do NOT use** if Phase 1 already completed — it re-clones `skywalking-agent-test-tool` from GitHub and rebuilds everything, which is slow and may fail due to network issues.\n- Without `-f` — reuses existing tools\u002Fimages. This is the normal way to run tests.\n\n**Key rules:**\n- Run scenarios **one at a time** — they share Docker ports (8080, etc.) and will conflict if parallel\n- JDK 8 test scenarios use `eclipse-temurin:8-jdk` base image\n- JDK 17 test scenarios (in `plugins-jdk17-test` workflows) use `eclipse-temurin:17-jdk` base image\n- After a test, check `test\u002Fplugin\u002Fworkspace\u002F{scenario}\u002F{version}\u002Fdata\u002FactualData.yaml` vs `expectedData.yaml` for debugging failures\n- Check `test\u002Fplugin\u002Fworkspace\u002F{scenario}\u002F{version}\u002Flogs\u002F` for container logs\n\n**Diagnosing \"startup script not exists\" failures:**\nThis error means the scenario ZIP wasn't built or copied into the container. The root cause is almost always a **silent Maven build failure** — `run.sh` uses `mvnw -q` (quiet mode) which hides errors. Common causes:\n1. **Maven Central network timeout** — downloading a new library version fails silently. The `mvnw clean package` exits non-zero but the `-q` flag hides the error, and `run.sh` continues with missing artifacts.\n2. **Docker Hub timeout** — pulling dependency images (mongo, mysql, kafka, zookeeper) fails with EOF\u002FTLS errors.\n3. **Killed previous run** — if a prior parallel run was killed mid-execution, leftover state in `test\u002Fplugin\u002Fworkspace\u002F` can interfere. Always `rm -rf test\u002Fplugin\u002Fworkspace\u002F{scenario}` before rerunning.\n\nTo debug: run the Maven build manually in the scenario directory with verbose output:\n```bash\ncd test\u002Fplugin\u002Fscenarios\u002F{scenario-name}\n..\u002F..\u002F..\u002F..\u002Fmvnw clean package -Dtest.framework.version={version} -Dmaven.test.skip=true\n```\nIf this succeeds but `run.sh` fails, it's likely a transient Maven Central network issue. Pre-download dependencies first:\n```bash\n# Pre-warm Maven cache for all versions before running tests\nfor v in $(grep -v '^#' test\u002Fplugin\u002Fscenarios\u002F{scenario}\u002Fsupport-version.list | grep -v '^$'); do\n  cd test\u002Fplugin\u002Fscenarios\u002F{scenario}\n  ..\u002F..\u002F..\u002F..\u002Fmvnw dependency:resolve -Dtest.framework.version=$v -q\n  cd -\ndone\n```\n\n**Pre-pulling Docker dependency images:**\nScenarios with `dependencies:` in `configuration.yml` need external Docker images. Pre-pull them before running tests to avoid mid-test Docker Hub failures:\n```bash\n# Check what images a scenario needs\ngrep \"image:\" test\u002Fplugin\u002Fscenarios\u002F{scenario}\u002Fconfiguration.yml\n# Pull them\ndocker pull {image:tag}\n```\n\n### Generate protobuf sources (needed before IDE import)\n```bash\n.\u002Fmvnw compile -Dmaven.test.skip=true\n```\nThen mark `*\u002Ftarget\u002Fgenerated-sources\u002Fprotobuf\u002Fjava` and `*\u002Ftarget\u002Fgenerated-sources\u002Fprotobuf\u002Fgrpc-java` as generated source folders in your IDE.\n\n## Common Issues\n\n- **Submodule not initialized**: If proto files are missing, run `git submodule init && git submodule update`\n- **Wrong JDK version**: Agent build requires JDK 17+. Test tools build (test\u002Fplugin\u002Fpom.xml) works best with JDK 8. Check with `java -version`.\n- **Checkstyle failures**: Run `.\u002Fmvnw checkstyle:check` to see violations. Common: star imports, unused imports, System.out.println, missing @Override.\n- **Test scenario Docker issues**: Ensure Docker daemon is running. Use `--debug` flag to inspect `actualData.yaml`.\n- **`run.sh -f` fails on agent-test-tools**: The `-f` flag clones `skywalking-agent-test-tool` from GitHub and rebuilds from source. If GitHub is slow or unreachable, this fails. Solution: run Phase 1 build separately (see above), then use `run.sh` without `-f`.\n- **Lombok errors in runner-helper on JDK 25**: The test framework uses Lombok 1.18.20 which doesn't support JDK 25. Use JDK 8 or JDK 17 for building and running test tools.\n- **\"startup script not exists\" inside container**: The scenario ZIP wasn't built or copied correctly. Check that `mvnw clean package` succeeds in the scenario directory and produces both a `.jar` and `.zip` in `target\u002F`.\n- **Port conflicts**: Never run multiple E2E scenarios simultaneously — they all bind to the same Docker ports.\n",{"name":5,"description":7,"allowed-tools":34,"user-invocable":35},"Bash, Read, Glob, Grep",true,"main","1716cc51b9c91da8b1324ea915a17b4caa184896",".claude\u002Fskills\u002Fcompile",693,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking-java","https:\u002F\u002Fskywalking.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-03 10:04:05",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":35},[47,50,53],{"tool":48,"command":49},"npx","npx skills add apache\u002Fskywalking-java --skill compile",{"tool":51,"command":52},"bunx","bunx skills add apache\u002Fskywalking-java --skill compile",{"tool":54,"command":55},"pnpm","pnpm dlx skills add apache\u002Fskywalking-java --skill compile","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking-java\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcompile\u002FSKILL.md",[58,64],{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"agents\u002Fopenai.yaml","REFERENCE","参考文档",103,"https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdiagnosing-bugs\u002Fagents\u002Fopenai.yaml",{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"scripts\u002Fhitl-loop.template.sh","SCRIPT","脚本",1316,"https:\u002F\u002Fgithub.com\u002Fmingster\u002Fdotfiles\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fdiagnosing-bugs\u002Fscripts\u002Fhitl-loop.template.sh",[71],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":80,"publishedAt":29},"01M6ACZ58HRBZAY0EM8NTBSMZB","new-plugin","Develop a new SkyWalking Java agent plugin — instrumentation, interceptor, tracing\u002Fmeter, tests, and all boilerplate","https:\u002F\u002Fgithub.com\u002Fapache\u002Fskywalking-java\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fnew-plugin\u002FSKILL.md",[77],{"categoryNo":78,"categoryName":79,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[25,81,26,27,82],"new plugin","tracing"]