[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FEWCZDXGMAVPXP3855S6M2":3,"skill-same:01M6FEWCZDXGMAVPXP3855S6M2":49},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":22,"linkOnly":23,"markdownContent":24,"markdownBody":24,"frontMatter":25,"refName":26,"commitSha":27,"skillDirectory":28,"forksCount":29,"repositoryHtmlUrl":30,"repositoryHomepageUrl":31,"ownerHtmlUrl":32,"ownerBlogUrl":6,"ownerDescription":33,"updatedAt":34,"install":35,"resources":48},"01M6FEWCZDXGMAVPXP3855S6M2","bazel-build-optimization",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Frmyndharis\u002Fantigravity-skills\u002Fbazel-build-optimization\u002FSKILL.md",[],[18,19,20,21],"bazel","Optimization","build","bazel build optimization","2026-11-10 10:12:30",false,"# Bazel Build Optimization\n\nProduction patterns for Bazel in large-scale monorepos.\n\n## Do not use this skill when\n\n- The task is unrelated to bazel build optimization\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources\u002Fimplementation-playbook.md`.\n\n## Use this skill when\n\n- Setting up Bazel for monorepos\n- Configuring remote caching\u002Fexecution\n- Optimizing build times\n- Writing custom Bazel rules\n- Debugging build issues\n- Migrating to Bazel\n\n## Core Concepts\n\n### 1. Bazel Architecture\n\n```\nworkspace\u002F\n├── WORKSPACE.bazel       # External dependencies\n├── .bazelrc              # Build configurations\n├── .bazelversion         # Bazel version\n├── BUILD.bazel           # Root build file\n├── apps\u002F\n│   └── web\u002F\n│       └── BUILD.bazel\n├── libs\u002F\n│   └── utils\u002F\n│       └── BUILD.bazel\n└── tools\u002F\n    └── bazel\u002F\n        └── rules\u002F\n```\n\n### 2. Key Concepts\n\n| Concept | Description |\n|---------|-------------|\n| **Target** | Buildable unit (library, binary, test) |\n| **Package** | Directory with BUILD file |\n| **Label** | Target identifier `\u002F\u002Fpath\u002Fto:target` |\n| **Rule** | Defines how to build a target |\n| **Aspect** | Cross-cutting build behavior |\n\n## Templates\n\n### Template 1: WORKSPACE Configuration\n\n```python\n# WORKSPACE.bazel\nworkspace(name = \"myproject\")\n\nload(\"@bazel_tools\u002F\u002Ftools\u002Fbuild_defs\u002Frepo:http.bzl\", \"http_archive\")\n\n# Rules for JavaScript\u002FTypeScript\nhttp_archive(\n    name = \"aspect_rules_js\",\n    sha256 = \"...\",\n    strip_prefix = \"rules_js-1.34.0\",\n    url = \"https:\u002F\u002Fgithub.com\u002Faspect-build\u002Frules_js\u002Freleases\u002Fdownload\u002Fv1.34.0\u002Frules_js-v1.34.0.tar.gz\",\n)\n\nload(\"@aspect_rules_js\u002F\u002Fjs:repositories.bzl\", \"rules_js_dependencies\")\nrules_js_dependencies()\n\nload(\"@rules_nodejs\u002F\u002Fnodejs:repositories.bzl\", \"nodejs_register_toolchains\")\nnodejs_register_toolchains(\n    name = \"nodejs\",\n    node_version = \"20.9.0\",\n)\n\nload(\"@aspect_rules_js\u002F\u002Fnpm:repositories.bzl\", \"npm_translate_lock\")\nnpm_translate_lock(\n    name = \"npm\",\n    pnpm_lock = \"\u002F\u002F:pnpm-lock.yaml\",\n    verify_node_modules_ignored = \"\u002F\u002F:.bazelignore\",\n)\n\nload(\"@npm\u002F\u002F:repositories.bzl\", \"npm_repositories\")\nnpm_repositories()\n\n# Rules for Python\nhttp_archive(\n    name = \"rules_python\",\n    sha256 = \"...\",\n    strip_prefix = \"rules_python-0.27.0\",\n    url = \"https:\u002F\u002Fgithub.com\u002Fbazelbuild\u002Frules_python\u002Freleases\u002Fdownload\u002F0.27.0\u002Frules_python-0.27.0.tar.gz\",\n)\n\nload(\"@rules_python\u002F\u002Fpython:repositories.bzl\", \"py_repositories\")\npy_repositories()\n```\n\n### Template 2: .bazelrc Configuration\n\n```bash\n# .bazelrc\n\n# Build settings\nbuild --enable_platform_specific_config\nbuild --incompatible_enable_cc_toolchain_resolution\nbuild --experimental_strict_conflict_checks\n\n# Performance\nbuild --jobs=auto\nbuild --local_cpu_resources=HOST_CPUS*.75\nbuild --local_ram_resources=HOST_RAM*.75\n\n# Caching\nbuild --disk_cache=~\u002F.cache\u002Fbazel-disk\nbuild --repository_cache=~\u002F.cache\u002Fbazel-repo\n\n# Remote caching (optional)\nbuild:remote-cache --remote_cache=grpcs:\u002F\u002Fcache.example.com\nbuild:remote-cache --remote_upload_local_results=true\nbuild:remote-cache --remote_timeout=3600\n\n# Remote execution (optional)\nbuild:remote-exec --remote_executor=grpcs:\u002F\u002Fremote.example.com\nbuild:remote-exec --remote_instance_name=projects\u002Fmyproject\u002Finstances\u002Fdefault\nbuild:remote-exec --jobs=500\n\n# Platform configurations\nbuild:linux --platforms=\u002F\u002Fplatforms:linux_x86_64\nbuild:macos --platforms=\u002F\u002Fplatforms:macos_arm64\n\n# CI configuration\nbuild:ci --config=remote-cache\nbuild:ci --build_metadata=ROLE=CI\nbuild:ci --bes_results_url=https:\u002F\u002Fresults.example.com\u002Finvocation\u002F\nbuild:ci --bes_backend=grpcs:\u002F\u002Fbes.example.com\n\n# Test settings\ntest --test_output=errors\ntest --test_summary=detailed\n\n# Coverage\ncoverage --combined_report=lcov\ncoverage --instrumentation_filter=\"\u002F\u002F...\"\n\n# Convenience aliases\nbuild:opt --compilation_mode=opt\nbuild:dbg --compilation_mode=dbg\n\n# Import user settings\ntry-import %workspace%\u002Fuser.bazelrc\n```\n\n### Template 3: TypeScript Library BUILD\n\n```python\n# libs\u002Futils\u002FBUILD.bazel\nload(\"@aspect_rules_ts\u002F\u002Fts:defs.bzl\", \"ts_project\")\nload(\"@aspect_rules_js\u002F\u002Fjs:defs.bzl\", \"js_library\")\nload(\"@npm\u002F\u002F:defs.bzl\", \"npm_link_all_packages\")\n\nnpm_link_all_packages(name = \"node_modules\")\n\nts_project(\n    name = \"utils_ts\",\n    srcs = glob([\"src\u002F**\u002F*.ts\"]),\n    declaration = True,\n    source_map = True,\n    tsconfig = \"\u002F\u002F:tsconfig.json\",\n    deps = [\n        \":node_modules\u002F@types\u002Fnode\",\n    ],\n)\n\njs_library(\n    name = \"utils\",\n    srcs = [\":utils_ts\"],\n    visibility = [\"\u002F\u002Fvisibility:public\"],\n)\n\n# Tests\nload(\"@aspect_rules_jest\u002F\u002Fjest:defs.bzl\", \"jest_test\")\n\njest_test(\n    name = \"utils_test\",\n    config = \"\u002F\u002F:jest.config.js\",\n    data = [\n        \":utils\",\n        \"\u002F\u002F:node_modules\u002Fjest\",\n    ],\n    node_modules = \"\u002F\u002F:node_modules\",\n)\n```\n\n### Template 4: Python Library BUILD\n\n```python\n# libs\u002Fml\u002FBUILD.bazel\nload(\"@rules_python\u002F\u002Fpython:defs.bzl\", \"py_library\", \"py_test\", \"py_binary\")\nload(\"@pip\u002F\u002F:requirements.bzl\", \"requirement\")\n\npy_library(\n    name = \"ml\",\n    srcs = glob([\"src\u002F**\u002F*.py\"]),\n    deps = [\n        requirement(\"numpy\"),\n        requirement(\"pandas\"),\n        requirement(\"scikit-learn\"),\n        \"\u002F\u002Flibs\u002Futils:utils_py\",\n    ],\n    visibility = [\"\u002F\u002Fvisibility:public\"],\n)\n\npy_test(\n    name = \"ml_test\",\n    srcs = glob([\"tests\u002F**\u002F*.py\"]),\n    deps = [\n        \":ml\",\n        requirement(\"pytest\"),\n    ],\n    size = \"medium\",\n    timeout = \"moderate\",\n)\n\npy_binary(\n    name = \"train\",\n    srcs = [\"train.py\"],\n    deps = [\":ml\"],\n    data = [\"\u002F\u002Fdata:training_data\"],\n)\n```\n\n### Template 5: Custom Rule for Docker\n\n```python\n# tools\u002Fbazel\u002Frules\u002Fdocker.bzl\ndef _docker_image_impl(ctx):\n    dockerfile = ctx.file.dockerfile\n    base_image = ctx.attr.base_image\n    layers = ctx.files.layers\n\n    # Build the image\n    output = ctx.actions.declare_file(ctx.attr.name + \".tar\")\n\n    args = ctx.actions.args()\n    args.add(\"--dockerfile\", dockerfile)\n    args.add(\"--output\", output)\n    args.add(\"--base\", base_image)\n    args.add_all(\"--layer\", layers)\n\n    ctx.actions.run(\n        inputs = [dockerfile] + layers,\n        outputs = [output],\n        executable = ctx.executable._builder,\n        arguments = [args],\n        mnemonic = \"DockerBuild\",\n        progress_message = \"Building Docker image %s\" % ctx.label,\n    )\n\n    return [DefaultInfo(files = depset([output]))]\n\ndocker_image = rule(\n    implementation = _docker_image_impl,\n    attrs = {\n        \"dockerfile\": attr.label(\n            allow_single_file = [\".dockerfile\", \"Dockerfile\"],\n            mandatory = True,\n        ),\n        \"base_image\": attr.string(mandatory = True),\n        \"layers\": attr.label_list(allow_files = True),\n        \"_builder\": attr.label(\n            default = \"\u002F\u002Ftools\u002Fdocker:builder\",\n            executable = True,\n            cfg = \"exec\",\n        ),\n    },\n)\n```\n\n### Template 6: Query and Dependency Analysis\n\n```bash\n# Find all dependencies of a target\nbazel query \"deps(\u002F\u002Fapps\u002Fweb:web)\"\n\n# Find reverse dependencies (what depends on this)\nbazel query \"rdeps(\u002F\u002F..., \u002F\u002Flibs\u002Futils:utils)\"\n\n# Find all targets in a package\nbazel query \"\u002F\u002Flibs\u002F...\"\n\n# Find changed targets since commit\nbazel query \"rdeps(\u002F\u002F..., set($(git diff --name-only HEAD~1 | sed 's\u002F.*\u002F\"&\"\u002F' | tr '\\n' ' ')))\"\n\n# Generate dependency graph\nbazel query \"deps(\u002F\u002Fapps\u002Fweb:web)\" --output=graph | dot -Tpng > deps.png\n\n# Find all test targets\nbazel query \"kind('.*_test', \u002F\u002F...)\"\n\n# Find targets with specific tag\nbazel query \"attr(tags, 'integration', \u002F\u002F...)\"\n\n# Compute build graph size\nbazel query \"deps(\u002F\u002F...)\" --output=package | wc -l\n```\n\n### Template 7: Remote Execution Setup\n\n```python\n# platforms\u002FBUILD.bazel\nplatform(\n    name = \"linux_x86_64\",\n    constraint_values = [\n        \"@platforms\u002F\u002Fos:linux\",\n        \"@platforms\u002F\u002Fcpu:x86_64\",\n    ],\n    exec_properties = {\n        \"container-image\": \"docker:\u002F\u002Fgcr.io\u002Fmyproject\u002Fbazel-worker:latest\",\n        \"OSFamily\": \"Linux\",\n    },\n)\n\nplatform(\n    name = \"remote_linux\",\n    parents = [\":linux_x86_64\"],\n    exec_properties = {\n        \"Pool\": \"default\",\n        \"dockerNetwork\": \"standard\",\n    },\n)\n\n# toolchains\u002FBUILD.bazel\ntoolchain(\n    name = \"cc_toolchain_linux\",\n    exec_compatible_with = [\n        \"@platforms\u002F\u002Fos:linux\",\n        \"@platforms\u002F\u002Fcpu:x86_64\",\n    ],\n    target_compatible_with = [\n        \"@platforms\u002F\u002Fos:linux\",\n        \"@platforms\u002F\u002Fcpu:x86_64\",\n    ],\n    toolchain = \"@remotejdk11_linux\u002F\u002F:jdk\",\n    toolchain_type = \"@bazel_tools\u002F\u002Ftools\u002Fjdk:runtime_toolchain_type\",\n)\n```\n\n## Performance Optimization\n\n```bash\n# Profile build\nbazel build \u002F\u002F... --profile=profile.json\nbazel analyze-profile profile.json\n\n# Identify slow actions\nbazel build \u002F\u002F... --execution_log_json_file=exec_log.json\n\n# Memory profiling\nbazel build \u002F\u002F... --memory_profile=memory.json\n\n# Skip analysis cache\nbazel build \u002F\u002F... --notrack_incremental_state\n```\n\n## Best Practices\n\n### Do's\n- **Use fine-grained targets** - Better caching\n- **Pin dependencies** - Reproducible builds\n- **Enable remote caching** - Share build artifacts\n- **Use visibility wisely** - Enforce architecture\n- **Write BUILD files per directory** - Standard convention\n\n### Don'ts\n- **Don't use glob for deps** - Explicit is better\n- **Don't commit bazel-* dirs** - Add to .gitignore\n- **Don't skip WORKSPACE setup** - Foundation of build\n- **Don't ignore build warnings** - Technical debt\n\n## Resources\n\n- [Bazel Documentation](https:\u002F\u002Fbazel.build\u002Fdocs)\n- [Bazel Remote Execution](https:\u002F\u002Fbazel.build\u002Fdocs\u002Fremote-execution)\n- [rules_js](https:\u002F\u002Fgithub.com\u002Faspect-build\u002Frules_js)\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Frmyndharis\u002Fantigravity-skills\u002Fbazel-build-optimization",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":36,"prompt":46,"zipAvailable":47},[37,40,43],{"tool":38,"command":39},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill bazel-build-optimization",{"tool":41,"command":42},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill bazel-build-optimization",{"tool":44,"command":45},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill bazel-build-optimization","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Frmyndharis\u002Fantigravity-skills\u002Fbazel-build-optimization\u002FSKILL.md",true,[],[50,64,74,83,89,96],{"skillNo":51,"name":52,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":60,"publishedAt":22},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[55],{"categoryNo":56,"categoryName":57,"taxonomyType":58,"taxonomyTypeDesc":59},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[61,62,63],"model","model hierarchy","model hierarchy skill",{"skillNo":65,"name":66,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":70,"publishedAt":22},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[69],{"categoryNo":56,"categoryName":57,"taxonomyType":58,"taxonomyTypeDesc":59},[71,72,73],"MCP","zoom","zoom mcp",{"skillNo":75,"name":76,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":22},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[80,81,82,72],"sdk","zoom apps sdk","apps",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":22},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[85],{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":22},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[94],{"categoryNo":56,"categoryName":57,"taxonomyType":58,"taxonomyTypeDesc":59},[91],{"skillNo":97,"name":98,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":22},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[98]]