@sylix/coworker 2.0.10 → 2.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/dist/commands/slash/config.d.ts.map +1 -1
  2. package/dist/commands/slash/config.js +23 -5
  3. package/dist/commands/slash/config.js.map +1 -1
  4. package/dist/commands/slash/todo.js +1 -1
  5. package/dist/commands/slash/todo.js.map +1 -1
  6. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  7. package/dist/core/CoWorkerAgent.js +6 -3
  8. package/dist/core/CoWorkerAgent.js.map +1 -1
  9. package/dist/permissions/PermissionInterceptor.js +1 -1
  10. package/dist/permissions/PermissionInterceptor.js.map +1 -1
  11. package/dist/skills/defaults/accessibility/screen-reader-testing.md +545 -0
  12. package/dist/skills/defaults/accessibility/wcag-audit-patterns.md +555 -0
  13. package/dist/skills/defaults/ai-ml/rag.md +276 -0
  14. package/dist/skills/defaults/backend-development/api-design-principles.md +528 -0
  15. package/dist/skills/defaults/backend-development/api-design.md +285 -0
  16. package/dist/skills/defaults/backend-development/architecture-patterns.md +494 -0
  17. package/dist/skills/defaults/backend-development/async-python.md +237 -0
  18. package/dist/skills/defaults/backend-development/auth-implementation-patterns.md +638 -0
  19. package/dist/skills/defaults/backend-development/bazel-build-optimization.md +387 -0
  20. package/dist/skills/defaults/backend-development/billing-automation/SKILL.md +566 -0
  21. package/dist/skills/defaults/backend-development/code-review-excellence.md +538 -0
  22. package/dist/skills/defaults/backend-development/cqrs-implementation.md +554 -0
  23. package/dist/skills/defaults/backend-development/database-design.md +305 -0
  24. package/dist/skills/defaults/backend-development/debugging-strategies.md +536 -0
  25. package/dist/skills/defaults/backend-development/e2e-testing-patterns.md +544 -0
  26. package/dist/skills/defaults/backend-development/error-handling-patterns.md +641 -0
  27. package/dist/skills/defaults/backend-development/fastapi-templates.md +559 -0
  28. package/dist/skills/defaults/backend-development/fastapi.md +309 -0
  29. package/dist/skills/defaults/backend-development/git-advanced-workflows.md +405 -0
  30. package/dist/skills/defaults/backend-development/microservices-patterns.md +595 -0
  31. package/dist/skills/defaults/backend-development/microservices.md +284 -0
  32. package/dist/skills/defaults/backend-development/monorepo-management.md +623 -0
  33. package/dist/skills/defaults/backend-development/nodejs-backend-patterns.md +1048 -0
  34. package/dist/skills/defaults/backend-development/nx-workspace-patterns.md +457 -0
  35. package/dist/skills/defaults/backend-development/paypal-integration/SKILL.md +478 -0
  36. package/dist/skills/defaults/backend-development/pci-compliance/SKILL.md +480 -0
  37. package/dist/skills/defaults/backend-development/python-anti-patterns.md +349 -0
  38. package/dist/skills/defaults/backend-development/python-background-jobs.md +364 -0
  39. package/dist/skills/defaults/backend-development/python-code-style.md +360 -0
  40. package/dist/skills/defaults/backend-development/python-configuration.md +368 -0
  41. package/dist/skills/defaults/backend-development/python-design-patterns.md +296 -0
  42. package/dist/skills/defaults/backend-development/python-error-handling.md +323 -0
  43. package/dist/skills/defaults/backend-development/python-packaging.md +887 -0
  44. package/dist/skills/defaults/backend-development/python-performance-optimization.md +874 -0
  45. package/dist/skills/defaults/backend-development/python-project-structure.md +252 -0
  46. package/dist/skills/defaults/backend-development/python-resilience.md +376 -0
  47. package/dist/skills/defaults/backend-development/python-resource-management.md +421 -0
  48. package/dist/skills/defaults/backend-development/python-type-safety.md +428 -0
  49. package/dist/skills/defaults/backend-development/sql-optimization-patterns.md +509 -0
  50. package/dist/skills/defaults/backend-development/stripe-integration/SKILL.md +522 -0
  51. package/dist/skills/defaults/backend-development/turborepo-caching.md +376 -0
  52. package/dist/skills/defaults/blockchain/defi-protocol-templates.md +430 -0
  53. package/dist/skills/defaults/blockchain/nft-standards.md +364 -0
  54. package/dist/skills/defaults/blockchain/solidity-security.md +514 -0
  55. package/dist/skills/defaults/blockchain/web3-testing.md +360 -0
  56. package/dist/skills/defaults/business/competitive-landscape/SKILL.md +527 -0
  57. package/dist/skills/defaults/business/market-sizing-analysis/SKILL.md +451 -0
  58. package/dist/skills/defaults/business/startup-financial-modeling/SKILL.md +494 -0
  59. package/dist/skills/defaults/business/startup-metrics-framework/SKILL.md +564 -0
  60. package/dist/skills/defaults/business/team-composition-analysis.md +437 -0
  61. package/dist/skills/defaults/compliance/employment-contract-templates/SKILL.md +527 -0
  62. package/dist/skills/defaults/compliance/gdpr-data-handling/SKILL.md +630 -0
  63. package/dist/skills/defaults/data-engineering/airflow-dag-patterns.md +436 -0
  64. package/dist/skills/defaults/data-engineering/airflow.md +519 -0
  65. package/dist/skills/defaults/data-engineering/data-quality.md +583 -0
  66. package/dist/skills/defaults/data-engineering/dbt-transformation-patterns.md +482 -0
  67. package/dist/skills/defaults/data-engineering/dbt.md +556 -0
  68. package/dist/skills/defaults/data-engineering/ml-pipeline-workflow/SKILL.md +247 -0
  69. package/dist/skills/defaults/data-engineering/spark-optimization.md +348 -0
  70. package/dist/skills/defaults/data-engineering/spark.md +411 -0
  71. package/dist/skills/defaults/database/postgresql.md +202 -0
  72. package/dist/skills/defaults/debugging/systematic-debugging.md +249 -0
  73. package/dist/skills/defaults/devops/architecture-decision-records.md +448 -0
  74. package/dist/skills/defaults/devops/changelog-automation.md +580 -0
  75. package/dist/skills/defaults/devops/cicd.md +314 -0
  76. package/dist/skills/defaults/devops/cloud.md +263 -0
  77. package/dist/skills/defaults/devops/code-review-excellence.md +299 -0
  78. package/dist/skills/defaults/devops/cost-optimization.md +295 -0
  79. package/dist/skills/defaults/devops/deployment-pipeline-design.md +356 -0
  80. package/dist/skills/defaults/devops/docker.md +281 -0
  81. package/dist/skills/defaults/devops/git-workflows.md +205 -0
  82. package/dist/skills/defaults/devops/github-actions.md +311 -0
  83. package/dist/skills/defaults/devops/gitlab-ci-patterns.md +266 -0
  84. package/dist/skills/defaults/devops/hybrid-cloud-networking.md +241 -0
  85. package/dist/skills/defaults/devops/istio-traffic-management.md +327 -0
  86. package/dist/skills/defaults/devops/kubernetes.md +339 -0
  87. package/dist/skills/defaults/devops/linkerd-patterns.md +311 -0
  88. package/dist/skills/defaults/devops/multi-cloud-architecture.md +181 -0
  89. package/dist/skills/defaults/devops/observability.md +243 -0
  90. package/dist/skills/defaults/devops/openapi-spec-generation.md +1024 -0
  91. package/dist/skills/defaults/devops/postmortem-writing.md +396 -0
  92. package/dist/skills/defaults/devops/prometheus-configuration.md +265 -0
  93. package/dist/skills/defaults/devops/secrets-management.md +341 -0
  94. package/dist/skills/defaults/devops/service-mesh-observability.md +385 -0
  95. package/dist/skills/defaults/devops/terraform-module-library.md +244 -0
  96. package/dist/skills/defaults/finance/backtesting-frameworks/SKILL.md +663 -0
  97. package/dist/skills/defaults/finance/risk-metrics-calculation/SKILL.md +557 -0
  98. package/dist/skills/defaults/frontend/accessibility-compliance.md +420 -0
  99. package/dist/skills/defaults/frontend/design-system-patterns.md +337 -0
  100. package/dist/skills/defaults/frontend/interaction-design.md +327 -0
  101. package/dist/skills/defaults/frontend/javascript.md +311 -0
  102. package/dist/skills/defaults/frontend/modern-javascript-patterns.md +927 -0
  103. package/dist/skills/defaults/frontend/react-native-design.md +440 -0
  104. package/dist/skills/defaults/frontend/react.md +345 -0
  105. package/dist/skills/defaults/frontend/responsive-design.md +472 -0
  106. package/dist/skills/defaults/frontend/tailwind-design-system.md +337 -0
  107. package/dist/skills/defaults/frontend/typescript-advanced-types.md +724 -0
  108. package/dist/skills/defaults/frontend/typescript.md +334 -0
  109. package/dist/skills/defaults/frontend/visual-design-foundations.md +326 -0
  110. package/dist/skills/defaults/frontend/web-component-design.md +279 -0
  111. package/dist/skills/defaults/game-development/godot-gdscript-patterns.md +188 -0
  112. package/dist/skills/defaults/game-development/unity-ecs-patterns.md +594 -0
  113. package/dist/skills/defaults/kubernetes/gitops-workflow.md +285 -0
  114. package/dist/skills/defaults/kubernetes/gitops.md +280 -0
  115. package/dist/skills/defaults/kubernetes/helm-chart-scaffolding.md +553 -0
  116. package/dist/skills/defaults/kubernetes/helm.md +343 -0
  117. package/dist/skills/defaults/kubernetes/k8s-manifest-generator.md +501 -0
  118. package/dist/skills/defaults/kubernetes/k8s-security-policies.md +342 -0
  119. package/dist/skills/defaults/kubernetes/manifests.md +330 -0
  120. package/dist/skills/defaults/kubernetes/security.md +337 -0
  121. package/dist/skills/defaults/llm-application/embedding-strategies.md +608 -0
  122. package/dist/skills/defaults/llm-application/hybrid-search-implementation.md +570 -0
  123. package/dist/skills/defaults/llm-application/hybrid-search.md +570 -0
  124. package/dist/skills/defaults/llm-application/langchain-architecture.md +666 -0
  125. package/dist/skills/defaults/llm-application/langchain.md +259 -0
  126. package/dist/skills/defaults/llm-application/llm-evaluation.md +695 -0
  127. package/dist/skills/defaults/llm-application/prompt-engineering-patterns.md +449 -0
  128. package/dist/skills/defaults/llm-application/prompt-engineering.md +219 -0
  129. package/dist/skills/defaults/llm-application/rag-implementation.md +434 -0
  130. package/dist/skills/defaults/llm-application/similarity-search-patterns.md +560 -0
  131. package/dist/skills/defaults/llm-application/similarity-search.md +560 -0
  132. package/dist/skills/defaults/llm-application/vector-index-tuning.md +523 -0
  133. package/dist/skills/defaults/mobile/mobile-android-design.md +440 -0
  134. package/dist/skills/defaults/mobile/mobile-ios-design.md +266 -0
  135. package/dist/skills/defaults/monitoring/distributed-tracing.md +436 -0
  136. package/dist/skills/defaults/monitoring/grafana-dashboards.md +370 -0
  137. package/dist/skills/defaults/monitoring/prometheus-configuration.md +379 -0
  138. package/dist/skills/defaults/monitoring/slo-implementation.md +323 -0
  139. package/dist/skills/defaults/refactoring/code-refactoring.md +349 -0
  140. package/dist/skills/defaults/security/anti-reversing-techniques/SKILL.md +559 -0
  141. package/dist/skills/defaults/security/auditor.md +168 -0
  142. package/dist/skills/defaults/security/binary-analysis-patterns/SKILL.md +438 -0
  143. package/dist/skills/defaults/security/memory-forensics/SKILL.md +483 -0
  144. package/dist/skills/defaults/security/mtls-configuration.md +349 -0
  145. package/dist/skills/defaults/security/protocol-reverse-engineering/SKILL.md +520 -0
  146. package/dist/skills/defaults/security/sast-configuration.md +182 -0
  147. package/dist/skills/defaults/security/security.md +313 -0
  148. package/dist/skills/defaults/security/stride-analysis.md +273 -0
  149. package/dist/skills/defaults/security/threat-mitigation-mapping.md +290 -0
  150. package/dist/skills/defaults/systems/bash-defensive-patterns/SKILL.md +539 -0
  151. package/dist/skills/defaults/systems/bats-testing-patterns/SKILL.md +631 -0
  152. package/dist/skills/defaults/systems/go-concurrency-patterns.md +657 -0
  153. package/dist/skills/defaults/systems/memory-safety-patterns.md +605 -0
  154. package/dist/skills/defaults/systems/rust-async-patterns.md +519 -0
  155. package/dist/skills/defaults/systems/shellcheck-configuration/SKILL.md +456 -0
  156. package/dist/skills/defaults/team-collaboration/multi-reviewer-patterns.md +126 -0
  157. package/dist/skills/defaults/team-collaboration/parallel-feature-development.md +151 -0
  158. package/dist/skills/defaults/testing/javascript-testing-patterns.md +1021 -0
  159. package/dist/skills/defaults/testing/python-testing-patterns.md +351 -0
  160. package/dist/skills/defaults/testing/testing.md +332 -0
  161. package/dist/skills/defaults/workflows/context-driven-development.md +384 -0
  162. package/dist/skills/defaults/workflows/track-management.md +592 -0
  163. package/dist/skills/defaults/workflows/workflow-patterns.md +622 -0
  164. package/dist/skills/index.d.ts +11 -0
  165. package/dist/skills/index.d.ts.map +1 -0
  166. package/dist/skills/index.js +129 -0
  167. package/dist/skills/index.js.map +1 -0
  168. package/dist/utils/character.js +6 -9
  169. package/dist/utils/character.js.map +1 -1
  170. package/dist/utils/contextManager.js +3 -7
  171. package/dist/utils/contextManager.js.map +1 -1
  172. package/dist/utils/inputbar.d.ts.map +1 -1
  173. package/dist/utils/inputbar.js +8 -1
  174. package/dist/utils/inputbar.js.map +1 -1
  175. package/dist/utils/output.d.ts.map +1 -1
  176. package/dist/utils/output.js +3 -35
  177. package/dist/utils/output.js.map +1 -1
  178. package/package.json +1 -1
@@ -0,0 +1,387 @@
1
+ ---
2
+ name: bazel-build-optimization
3
+ description: Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.
4
+ ---
5
+
6
+ # Bazel Build Optimization
7
+
8
+ Production patterns for Bazel in large-scale monorepos.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Setting up Bazel for monorepos
13
+ - Configuring remote caching/execution
14
+ - Optimizing build times
15
+ - Writing custom Bazel rules
16
+ - Debugging build issues
17
+ - Migrating to Bazel
18
+
19
+ ## Core Concepts
20
+
21
+ ### 1. Bazel Architecture
22
+
23
+ ```
24
+ workspace/
25
+ ├── WORKSPACE.bazel # External dependencies
26
+ ├── .bazelrc # Build configurations
27
+ ├── .bazelversion # Bazel version
28
+ ├── BUILD.bazel # Root build file
29
+ ├── apps/
30
+ │ └── web/
31
+ │ └── BUILD.bazel
32
+ ├── libs/
33
+ │ └── utils/
34
+ │ └── BUILD.bazel
35
+ └── tools/
36
+ └── bazel/
37
+ └── rules/
38
+ ```
39
+
40
+ ### 2. Key Concepts
41
+
42
+ | Concept | Description |
43
+ | ----------- | -------------------------------------- |
44
+ | **Target** | Buildable unit (library, binary, test) |
45
+ | **Package** | Directory with BUILD file |
46
+ | **Label** | Target identifier `//path/to:target` |
47
+ | **Rule** | Defines how to build a target |
48
+ | **Aspect** | Cross-cutting build behavior |
49
+
50
+ ## Templates
51
+
52
+ ### Template 1: WORKSPACE Configuration
53
+
54
+ ```python
55
+ # WORKSPACE.bazel
56
+ workspace(name = "myproject")
57
+
58
+ load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
59
+
60
+ # Rules for JavaScript/TypeScript
61
+ http_archive(
62
+ name = "aspect_rules_js",
63
+ sha256 = "...",
64
+ strip_prefix = "rules_js-1.34.0",
65
+ url = "https://github.com/aspect-build/rules_js/releases/download/v1.34.0/rules_js-v1.34.0.tar.gz",
66
+ )
67
+
68
+ load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
69
+ rules_js_dependencies()
70
+
71
+ load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains")
72
+ nodejs_register_toolchains(
73
+ name = "nodejs",
74
+ node_version = "20.9.0",
75
+ )
76
+
77
+ load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
78
+ npm_translate_lock(
79
+ name = "npm",
80
+ pnpm_lock = "//:pnpm-lock.yaml",
81
+ verify_node_modules_ignored = "//:.bazelignore",
82
+ )
83
+
84
+ load("@npm//:repositories.bzl", "npm_repositories")
85
+ npm_repositories()
86
+
87
+ # Rules for Python
88
+ http_archive(
89
+ name = "rules_python",
90
+ sha256 = "...",
91
+ strip_prefix = "rules_python-0.27.0",
92
+ url = "https://github.com/bazelbuild/rules_python/releases/download/0.27.0/rules_python-0.27.0.tar.gz",
93
+ )
94
+
95
+ load("@rules_python//python:repositories.bzl", "py_repositories")
96
+ py_repositories()
97
+ ```
98
+
99
+ ### Template 2: .bazelrc Configuration
100
+
101
+ ```bash
102
+ # .bazelrc
103
+
104
+ # Build settings
105
+ build --enable_platform_specific_config
106
+ build --incompatible_enable_cc_toolchain_resolution
107
+ build --experimental_strict_conflict_checks
108
+
109
+ # Performance
110
+ build --jobs=auto
111
+ build --local_cpu_resources=HOST_CPUS*.75
112
+ build --local_ram_resources=HOST_RAM*.75
113
+
114
+ # Caching
115
+ build --disk_cache=~/.cache/bazel-disk
116
+ build --repository_cache=~/.cache/bazel-repo
117
+
118
+ # Remote caching (optional)
119
+ build:remote-cache --remote_cache=grpcs://cache.example.com
120
+ build:remote-cache --remote_upload_local_results=true
121
+ build:remote-cache --remote_timeout=3600
122
+
123
+ # Remote execution (optional)
124
+ build:remote-exec --remote_executor=grpcs://remote.example.com
125
+ build:remote-exec --remote_instance_name=projects/myproject/instances/default
126
+ build:remote-exec --jobs=500
127
+
128
+ # Platform configurations
129
+ build:linux --platforms=//platforms:linux_x86_64
130
+ build:macos --platforms=//platforms:macos_arm64
131
+
132
+ # CI configuration
133
+ build:ci --config=remote-cache
134
+ build:ci --build_metadata=ROLE=CI
135
+ build:ci --bes_results_url=https://results.example.com/invocation/
136
+ build:ci --bes_backend=grpcs://bes.example.com
137
+
138
+ # Test settings
139
+ test --test_output=errors
140
+ test --test_summary=detailed
141
+
142
+ # Coverage
143
+ coverage --combined_report=lcov
144
+ coverage --instrumentation_filter="//..."
145
+
146
+ # Convenience aliases
147
+ build:opt --compilation_mode=opt
148
+ build:dbg --compilation_mode=dbg
149
+
150
+ # Import user settings
151
+ try-import %workspace%/user.bazelrc
152
+ ```
153
+
154
+ ### Template 3: TypeScript Library BUILD
155
+
156
+ ```python
157
+ # libs/utils/BUILD.bazel
158
+ load("@aspect_rules_ts//ts:defs.bzl", "ts_project")
159
+ load("@aspect_rules_js//js:defs.bzl", "js_library")
160
+ load("@npm//:defs.bzl", "npm_link_all_packages")
161
+
162
+ npm_link_all_packages(name = "node_modules")
163
+
164
+ ts_project(
165
+ name = "utils_ts",
166
+ srcs = glob(["src/**/*.ts"]),
167
+ declaration = True,
168
+ source_map = True,
169
+ tsconfig = "//:tsconfig.json",
170
+ deps = [
171
+ ":node_modules/@types/node",
172
+ ],
173
+ )
174
+
175
+ js_library(
176
+ name = "utils",
177
+ srcs = [":utils_ts"],
178
+ visibility = ["//visibility:public"],
179
+ )
180
+
181
+ # Tests
182
+ load("@aspect_rules_jest//jest:defs.bzl", "jest_test")
183
+
184
+ jest_test(
185
+ name = "utils_test",
186
+ config = "//:jest.config.js",
187
+ data = [
188
+ ":utils",
189
+ "//:node_modules/jest",
190
+ ],
191
+ node_modules = "//:node_modules",
192
+ )
193
+ ```
194
+
195
+ ### Template 4: Python Library BUILD
196
+
197
+ ```python
198
+ # libs/ml/BUILD.bazel
199
+ load("@rules_python//python:defs.bzl", "py_library", "py_test", "py_binary")
200
+ load("@pip//:requirements.bzl", "requirement")
201
+
202
+ py_library(
203
+ name = "ml",
204
+ srcs = glob(["src/**/*.py"]),
205
+ deps = [
206
+ requirement("numpy"),
207
+ requirement("pandas"),
208
+ requirement("scikit-learn"),
209
+ "//libs/utils:utils_py",
210
+ ],
211
+ visibility = ["//visibility:public"],
212
+ )
213
+
214
+ py_test(
215
+ name = "ml_test",
216
+ srcs = glob(["tests/**/*.py"]),
217
+ deps = [
218
+ ":ml",
219
+ requirement("pytest"),
220
+ ],
221
+ size = "medium",
222
+ timeout = "moderate",
223
+ )
224
+
225
+ py_binary(
226
+ name = "train",
227
+ srcs = ["train.py"],
228
+ deps = [":ml"],
229
+ data = ["//data:training_data"],
230
+ )
231
+ ```
232
+
233
+ ### Template 5: Custom Rule for Docker
234
+
235
+ ```python
236
+ # tools/bazel/rules/docker.bzl
237
+ def _docker_image_impl(ctx):
238
+ dockerfile = ctx.file.dockerfile
239
+ base_image = ctx.attr.base_image
240
+ layers = ctx.files.layers
241
+
242
+ # Build the image
243
+ output = ctx.actions.declare_file(ctx.attr.name + ".tar")
244
+
245
+ args = ctx.actions.args()
246
+ args.add("--dockerfile", dockerfile)
247
+ args.add("--output", output)
248
+ args.add("--base", base_image)
249
+ args.add_all("--layer", layers)
250
+
251
+ ctx.actions.run(
252
+ inputs = [dockerfile] + layers,
253
+ outputs = [output],
254
+ executable = ctx.executable._builder,
255
+ arguments = [args],
256
+ mnemonic = "DockerBuild",
257
+ progress_message = "Building Docker image %s" % ctx.label,
258
+ )
259
+
260
+ return [DefaultInfo(files = depset([output]))]
261
+
262
+ docker_image = rule(
263
+ implementation = _docker_image_impl,
264
+ attrs = {
265
+ "dockerfile": attr.label(
266
+ allow_single_file = [".dockerfile", "Dockerfile"],
267
+ mandatory = True,
268
+ ),
269
+ "base_image": attr.string(mandatory = True),
270
+ "layers": attr.label_list(allow_files = True),
271
+ "_builder": attr.label(
272
+ default = "//tools/docker:builder",
273
+ executable = True,
274
+ cfg = "exec",
275
+ ),
276
+ },
277
+ )
278
+ ```
279
+
280
+ ### Template 6: Query and Dependency Analysis
281
+
282
+ ```bash
283
+ # Find all dependencies of a target
284
+ bazel query "deps(//apps/web:web)"
285
+
286
+ # Find reverse dependencies (what depends on this)
287
+ bazel query "rdeps(//..., //libs/utils:utils)"
288
+
289
+ # Find all targets in a package
290
+ bazel query "//libs/..."
291
+
292
+ # Find changed targets since commit
293
+ bazel query "rdeps(//..., set($(git diff --name-only HEAD~1 | sed 's/.*/"&"/' | tr '\n' ' ')))"
294
+
295
+ # Generate dependency graph
296
+ bazel query "deps(//apps/web:web)" --output=graph | dot -Tpng > deps.png
297
+
298
+ # Find all test targets
299
+ bazel query "kind('.*_test', //...)"
300
+
301
+ # Find targets with specific tag
302
+ bazel query "attr(tags, 'integration', //...)"
303
+
304
+ # Compute build graph size
305
+ bazel query "deps(//...)" --output=package | wc -l
306
+ ```
307
+
308
+ ### Template 7: Remote Execution Setup
309
+
310
+ ```python
311
+ # platforms/BUILD.bazel
312
+ platform(
313
+ name = "linux_x86_64",
314
+ constraint_values = [
315
+ "@platforms//os:linux",
316
+ "@platforms//cpu:x86_64",
317
+ ],
318
+ exec_properties = {
319
+ "container-image": "docker://gcr.io/myproject/bazel-worker:latest",
320
+ "OSFamily": "Linux",
321
+ },
322
+ )
323
+
324
+ platform(
325
+ name = "remote_linux",
326
+ parents = [":linux_x86_64"],
327
+ exec_properties = {
328
+ "Pool": "default",
329
+ "dockerNetwork": "standard",
330
+ },
331
+ )
332
+
333
+ # toolchains/BUILD.bazel
334
+ toolchain(
335
+ name = "cc_toolchain_linux",
336
+ exec_compatible_with = [
337
+ "@platforms//os:linux",
338
+ "@platforms//cpu:x86_64",
339
+ ],
340
+ target_compatible_with = [
341
+ "@platforms//os:linux",
342
+ "@platforms//cpu:x86_64",
343
+ ],
344
+ toolchain = "@remotejdk11_linux//:jdk",
345
+ toolchain_type = "@bazel_tools//tools/jdk:runtime_toolchain_type",
346
+ )
347
+ ```
348
+
349
+ ## Performance Optimization
350
+
351
+ ```bash
352
+ # Profile build
353
+ bazel build //... --profile=profile.json
354
+ bazel analyze-profile profile.json
355
+
356
+ # Identify slow actions
357
+ bazel build //... --execution_log_json_file=exec_log.json
358
+
359
+ # Memory profiling
360
+ bazel build //... --memory_profile=memory.json
361
+
362
+ # Skip analysis cache
363
+ bazel build //... --notrack_incremental_state
364
+ ```
365
+
366
+ ## Best Practices
367
+
368
+ ### Do's
369
+
370
+ - **Use fine-grained targets** - Better caching
371
+ - **Pin dependencies** - Reproducible builds
372
+ - **Enable remote caching** - Share build artifacts
373
+ - **Use visibility wisely** - Enforce architecture
374
+ - **Write BUILD files per directory** - Standard convention
375
+
376
+ ### Don'ts
377
+
378
+ - **Don't use glob for deps** - Explicit is better
379
+ - **Don't commit bazel-\* dirs** - Add to .gitignore
380
+ - **Don't skip WORKSPACE setup** - Foundation of build
381
+ - **Don't ignore build warnings** - Technical debt
382
+
383
+ ## Resources
384
+
385
+ - [Bazel Documentation](https://bazel.build/docs)
386
+ - [Bazel Remote Execution](https://bazel.build/docs/remote-execution)
387
+ - [rules_js](https://github.com/aspect-build/rules_js)