traceforge-toolkit 0.1.0__py3-none-any.whl

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 (205) hide show
  1. traceforge/__init__.py +72 -0
  2. traceforge/__main__.py +5 -0
  3. traceforge/_generated.py +254 -0
  4. traceforge/adapters/__init__.py +12 -0
  5. traceforge/adapters/base.py +82 -0
  6. traceforge/adapters/genai_otel.py +164 -0
  7. traceforge/adapters/mapped_json.py +297 -0
  8. traceforge/adapters/otel.py +220 -0
  9. traceforge/boundary/__init__.py +46 -0
  10. traceforge/boundary/data/boundary-model.joblib +0 -0
  11. traceforge/boundary/decode.py +87 -0
  12. traceforge/boundary/features.py +137 -0
  13. traceforge/boundary/inference.py +267 -0
  14. traceforge/boundary/inferencer.py +146 -0
  15. traceforge/classify/__init__.py +95 -0
  16. traceforge/classify/cmd.py +109 -0
  17. traceforge/classify/coding.py +213 -0
  18. traceforge/classify/config.py +554 -0
  19. traceforge/classify/core.py +266 -0
  20. traceforge/classify/data/binary_info.yaml +358 -0
  21. traceforge/classify/data/canonical_tools.yaml +251 -0
  22. traceforge/classify/data/effect_overrides.yaml +480 -0
  23. traceforge/classify/data/mcp_profiles.yaml +711 -0
  24. traceforge/classify/data/recommendation_rules.yaml +111 -0
  25. traceforge/classify/data/risk.yaml +534 -0
  26. traceforge/classify/data/shell_defaults.yaml +95 -0
  27. traceforge/classify/data/shell_rules.yaml +1192 -0
  28. traceforge/classify/data/tool_classifications.yaml +215 -0
  29. traceforge/classify/data/verb_inference.yaml +218 -0
  30. traceforge/classify/mcp.py +181 -0
  31. traceforge/classify/phases.py +75 -0
  32. traceforge/classify/powershell.py +93 -0
  33. traceforge/classify/registry.py +138 -0
  34. traceforge/classify/risk.py +553 -0
  35. traceforge/classify/rules.py +215 -0
  36. traceforge/classify/schema.yaml +282 -0
  37. traceforge/classify/shell.py +503 -0
  38. traceforge/classify/tools.py +91 -0
  39. traceforge/classify/workflow.py +32 -0
  40. traceforge/cli/__init__.py +42 -0
  41. traceforge/cli/config_cmd.py +130 -0
  42. traceforge/cli/detect.py +46 -0
  43. traceforge/cli/download_cmd.py +74 -0
  44. traceforge/cli/factory.py +60 -0
  45. traceforge/cli/gate_cmd.py +30 -0
  46. traceforge/cli/init_cmd.py +86 -0
  47. traceforge/cli/replay.py +130 -0
  48. traceforge/cli/runner.py +181 -0
  49. traceforge/cli/score.py +217 -0
  50. traceforge/cli/status.py +65 -0
  51. traceforge/cli/watch.py +297 -0
  52. traceforge/config/__init__.py +80 -0
  53. traceforge/config/defaults.py +149 -0
  54. traceforge/config/loader.py +239 -0
  55. traceforge/config/mappings.py +104 -0
  56. traceforge/config/models.py +579 -0
  57. traceforge/enricher.py +576 -0
  58. traceforge/formatting/__init__.py +12 -0
  59. traceforge/formatting/budget.py +92 -0
  60. traceforge/formatting/density.py +154 -0
  61. traceforge/gate/__init__.py +17 -0
  62. traceforge/gate/client.py +145 -0
  63. traceforge/gate/external.py +305 -0
  64. traceforge/gate/registry.py +108 -0
  65. traceforge/gate/server.py +174 -0
  66. traceforge/gates/__init__.py +8 -0
  67. traceforge/gates/pii.py +352 -0
  68. traceforge/gates/pii_patterns.yaml +228 -0
  69. traceforge/governance/__init__.py +121 -0
  70. traceforge/governance/assessor.py +441 -0
  71. traceforge/governance/budget.py +59 -0
  72. traceforge/governance/canonical.py +56 -0
  73. traceforge/governance/codec.py +414 -0
  74. traceforge/governance/context.py +249 -0
  75. traceforge/governance/drift.py +196 -0
  76. traceforge/governance/emitter.py +234 -0
  77. traceforge/governance/envelope.py +138 -0
  78. traceforge/governance/ifc.py +364 -0
  79. traceforge/governance/integrity.py +162 -0
  80. traceforge/governance/labeler.py +250 -0
  81. traceforge/governance/mcp_drift.py +328 -0
  82. traceforge/governance/monitor.py +539 -0
  83. traceforge/governance/observer.py +276 -0
  84. traceforge/governance/persistence.py +401 -0
  85. traceforge/governance/phase1.py +77 -0
  86. traceforge/governance/pii.py +276 -0
  87. traceforge/governance/pipeline.py +840 -0
  88. traceforge/governance/registry.py +110 -0
  89. traceforge/governance/results.py +183 -0
  90. traceforge/governance/risk_wrapper.py +113 -0
  91. traceforge/governance/rules.py +368 -0
  92. traceforge/governance/scorer.py +262 -0
  93. traceforge/governance/shield.py +318 -0
  94. traceforge/governance/state.py +466 -0
  95. traceforge/governance/types.py +176 -0
  96. traceforge/mappings/__init__.py +1 -0
  97. traceforge/mappings/aider.yaml +216 -0
  98. traceforge/mappings/aider_markdown.yaml +113 -0
  99. traceforge/mappings/amazonq.yaml +56 -0
  100. traceforge/mappings/antigravity.yaml +88 -0
  101. traceforge/mappings/claude.yaml +93 -0
  102. traceforge/mappings/cline.yaml +286 -0
  103. traceforge/mappings/codex.yaml +158 -0
  104. traceforge/mappings/continue_dev.yaml +57 -0
  105. traceforge/mappings/copilot.yaml +266 -0
  106. traceforge/mappings/copilot_markdown.yaml +72 -0
  107. traceforge/mappings/copilot_vscode.yaml +181 -0
  108. traceforge/mappings/crewai.yaml +592 -0
  109. traceforge/mappings/goose.yaml +128 -0
  110. traceforge/mappings/langgraph.yaml +165 -0
  111. traceforge/mappings/maf.yaml +90 -0
  112. traceforge/mappings/maf_transcript.yaml +99 -0
  113. traceforge/mappings/openai_agents.yaml +144 -0
  114. traceforge/mappings/opencode.yaml +473 -0
  115. traceforge/mappings/openhands.yaml +320 -0
  116. traceforge/mappings/pydantic_ai.yaml +183 -0
  117. traceforge/mappings/smolagents.yaml +89 -0
  118. traceforge/mappings/sweagent.yaml +82 -0
  119. traceforge/migrations/__init__.py +1 -0
  120. traceforge/migrations/env.py +60 -0
  121. traceforge/migrations/models.py +145 -0
  122. traceforge/migrations/runner.py +44 -0
  123. traceforge/migrations/script.py.mako +25 -0
  124. traceforge/migrations/versions/0001_initial.py +176 -0
  125. traceforge/migrations/versions/__init__.py +4 -0
  126. traceforge/models.py +29 -0
  127. traceforge/parsers/__init__.py +21 -0
  128. traceforge/parsers/aider.py +416 -0
  129. traceforge/parsers/base.py +226 -0
  130. traceforge/parsers/copilot.py +314 -0
  131. traceforge/phase/__init__.py +50 -0
  132. traceforge/phase/data/phase-model.joblib +0 -0
  133. traceforge/phase/data/potion-base-8M/README.md +99 -0
  134. traceforge/phase/data/potion-base-8M/config.json +13 -0
  135. traceforge/phase/data/potion-base-8M/model.safetensors +0 -0
  136. traceforge/phase/data/potion-base-8M/modules.json +14 -0
  137. traceforge/phase/data/potion-base-8M/tokenizer.json +1 -0
  138. traceforge/phase/event_rows.py +107 -0
  139. traceforge/phase/features.py +468 -0
  140. traceforge/phase/inference.py +279 -0
  141. traceforge/phase/inferencer.py +171 -0
  142. traceforge/phase/segmentation.py +258 -0
  143. traceforge/pipeline.py +891 -0
  144. traceforge/preprocessors/__init__.py +34 -0
  145. traceforge/preprocessors/amazonq.py +224 -0
  146. traceforge/preprocessors/antigravity.py +116 -0
  147. traceforge/preprocessors/claude.py +95 -0
  148. traceforge/preprocessors/cline.py +36 -0
  149. traceforge/preprocessors/codex.py +311 -0
  150. traceforge/preprocessors/continue_dev.py +119 -0
  151. traceforge/preprocessors/copilot_vscode.py +171 -0
  152. traceforge/preprocessors/goose.py +156 -0
  153. traceforge/preprocessors/maf_transcript.py +84 -0
  154. traceforge/preprocessors/openai_agents.py +86 -0
  155. traceforge/preprocessors/opencode.py +85 -0
  156. traceforge/preprocessors/openhands.py +36 -0
  157. traceforge/preprocessors/pydantic_ai.py +62 -0
  158. traceforge/preprocessors/registry.py +24 -0
  159. traceforge/preprocessors/smolagents.py +90 -0
  160. traceforge/py.typed +0 -0
  161. traceforge/sdk/__init__.py +59 -0
  162. traceforge/sdk/gate_policy.py +63 -0
  163. traceforge/sdk/gate_types.py +140 -0
  164. traceforge/sdk/pipeline.py +265 -0
  165. traceforge/sdk/verdict.py +81 -0
  166. traceforge/sinks/__init__.py +23 -0
  167. traceforge/sinks/base.py +95 -0
  168. traceforge/sinks/callback.py +132 -0
  169. traceforge/sinks/console.py +112 -0
  170. traceforge/sinks/factory.py +94 -0
  171. traceforge/sinks/jsonl.py +125 -0
  172. traceforge/sinks/otel_exporter.py +212 -0
  173. traceforge/sinks/parquet.py +260 -0
  174. traceforge/sinks/s3.py +206 -0
  175. traceforge/sinks/sqlite_output.py +234 -0
  176. traceforge/sinks/webhook.py +136 -0
  177. traceforge/sources/__init__.py +18 -0
  178. traceforge/sources/auto_detect.py +173 -0
  179. traceforge/sources/base.py +45 -0
  180. traceforge/sources/file_poll.py +136 -0
  181. traceforge/sources/file_watch.py +221 -0
  182. traceforge/sources/http_poll.py +141 -0
  183. traceforge/sources/replay.py +63 -0
  184. traceforge/sources/sqlite.py +187 -0
  185. traceforge/sources/sse.py +198 -0
  186. traceforge/telemetry/__init__.py +192 -0
  187. traceforge/title/__init__.py +23 -0
  188. traceforge/title/_resolve.py +79 -0
  189. traceforge/title/context.py +295 -0
  190. traceforge/title/data/boilerplate_files.json +14 -0
  191. traceforge/title/heuristics.py +429 -0
  192. traceforge/title/hygiene.py +90 -0
  193. traceforge/title/inference.py +314 -0
  194. traceforge/title/inferencer.py +477 -0
  195. traceforge/title/naming.py +398 -0
  196. traceforge/trace.py +291 -0
  197. traceforge/tracking/__init__.py +30 -0
  198. traceforge/tracking/models.py +115 -0
  199. traceforge/tracking/phase_tracker.py +288 -0
  200. traceforge/types.py +315 -0
  201. traceforge_toolkit-0.1.0.dist-info/METADATA +188 -0
  202. traceforge_toolkit-0.1.0.dist-info/RECORD +205 -0
  203. traceforge_toolkit-0.1.0.dist-info/WHEEL +4 -0
  204. traceforge_toolkit-0.1.0.dist-info/entry_points.txt +2 -0
  205. traceforge_toolkit-0.1.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,1192 @@
1
+ # Shell command classification rules and binary metadata.
2
+ # Rules are evaluated in order — first match wins.
3
+
4
+ shell_rules:
5
+ - id: pip-pip3-install
6
+ binaries: [pip, pip3]
7
+ subcmds: [install]
8
+ activity: setup
9
+ role: orchestrator.package_manager
10
+ effect: mutating
11
+
12
+ - id: npm-pnpm-yarn-add-ci-install
13
+ binaries: [npm, pnpm, yarn]
14
+ subcmds: [add, ci, install]
15
+ activity: setup
16
+ role: orchestrator.package_manager
17
+ effect: mutating
18
+
19
+ - id: cargo-add
20
+ binaries: [cargo]
21
+ subcmds: [add]
22
+ activity: setup
23
+ role: orchestrator.package_manager
24
+ effect: mutating
25
+
26
+ - id: apt-apt-get-brew-install
27
+ binaries: [apt, apt-get, brew]
28
+ subcmds: [install]
29
+ activity: setup
30
+ role: orchestrator.package_manager
31
+ effect: mutating
32
+
33
+ - id: uv-add-pip-sync
34
+ binaries: [uv]
35
+ subcmds: [add, pip, sync]
36
+ activity: setup
37
+ role: orchestrator.package_manager
38
+ effect: mutating
39
+
40
+ - id: poetry-add-install
41
+ binaries: [poetry]
42
+ subcmds: [add, install]
43
+ activity: setup
44
+ role: orchestrator.package_manager
45
+ effect: mutating
46
+
47
+ - id: choco-scoop-winget-install
48
+ binaries: [choco, scoop, winget]
49
+ subcmds: [install]
50
+ activity: setup
51
+ role: orchestrator.package_manager
52
+ effect: mutating
53
+
54
+ # Package removal — destructive
55
+ - id: pip-pip3-uninstall-destructive
56
+ binaries: [pip, pip3]
57
+ subcmds: [uninstall]
58
+ activity: implementation
59
+ role: orchestrator.package_manager
60
+ effect: destructive
61
+ action: remove.delete
62
+
63
+ - id: npm-pnpm-yarn-uninstall-remove-destructive
64
+ binaries: [npm, pnpm, yarn]
65
+ subcmds: [uninstall, remove]
66
+ activity: implementation
67
+ role: orchestrator.package_manager
68
+ effect: destructive
69
+ action: remove.delete
70
+
71
+ - id: apt-apt-get-remove-purge-destructive
72
+ binaries: [apt, apt-get]
73
+ subcmds: [remove, purge, autoremove]
74
+ activity: implementation
75
+ role: orchestrator.package_manager
76
+ effect: destructive
77
+ action: remove.delete
78
+
79
+ - id: brew-uninstall-destructive
80
+ binaries: [brew]
81
+ subcmds: [uninstall, remove]
82
+ activity: implementation
83
+ role: orchestrator.package_manager
84
+ effect: destructive
85
+ action: remove.delete
86
+
87
+ - id: cargo-remove-destructive
88
+ binaries: [cargo]
89
+ subcmds: [remove]
90
+ activity: implementation
91
+ role: orchestrator.package_manager
92
+ effect: destructive
93
+ action: remove.delete
94
+
95
+ - id: bats-jest-mocha-nox-pest-phpunit-playwright-pytest-rspec-tox-vitest-test-runner
96
+ binaries: [bats, jest, mocha, nox, pest, phpunit, playwright, pytest, rspec, tox, vitest]
97
+ activity: verification
98
+ role: validator.test_runner
99
+ effect: read_only
100
+
101
+ - id: cargo-dart-dotnet-go-gradle-make-mvn-npm-pnpm-swift-yarn-test-tests
102
+ binaries: [cargo, dart, dotnet, go, gradle, make, mvn, npm, pnpm, swift, yarn]
103
+ subcmds: [test, tests]
104
+ activity: verification
105
+ role: validator.test_runner
106
+ effect: read_only
107
+
108
+ - id: flake8-mypy-pylint-pyright-linter
109
+ binaries: [flake8, mypy, pylint, pyright]
110
+ activity: verification
111
+ role: validator.linter
112
+ effect: read_only
113
+
114
+ - id: tsc-type-checker
115
+ binaries: [tsc]
116
+ activity: verification
117
+ role: validator.type_checker
118
+ effect: read_only
119
+
120
+ - id: ruff-check-reject-fix
121
+ binaries: [ruff]
122
+ subcmds: [check]
123
+ flags_reject: ["--fix"]
124
+ activity: verification
125
+ role: validator.linter
126
+ effect: read_only
127
+
128
+ - id: ruff-format-require-check
129
+ binaries: [ruff]
130
+ subcmds: [format]
131
+ flags_require: ["--check"]
132
+ activity: verification
133
+ role: transformer.formatter
134
+ effect: read_only
135
+
136
+ - id: eslint-reject-fix
137
+ binaries: [eslint]
138
+ flags_reject: ["--fix"]
139
+ activity: verification
140
+ role: validator.linter
141
+ effect: read_only
142
+
143
+ - id: clippy-rubocop-reject-fix
144
+ binaries: [clippy, rubocop]
145
+ flags_reject: ["--fix"]
146
+ activity: verification
147
+ role: validator.linter
148
+ effect: read_only
149
+
150
+ - id: golangci-lint-run
151
+ binaries: [golangci-lint]
152
+ subcmds: [run]
153
+ activity: verification
154
+ role: validator.linter
155
+ effect: read_only
156
+
157
+ - id: black-prettier-require-check
158
+ binaries: [black, prettier]
159
+ flags_require: ["--check"]
160
+ activity: verification
161
+ role: transformer.formatter
162
+ effect: read_only
163
+
164
+ - id: cargo-clippy
165
+ binaries: [cargo]
166
+ subcmds: [clippy]
167
+ activity: verification
168
+ role: validator.linter
169
+ effect: read_only
170
+
171
+ - id: cargo-dotnet-go-make-build
172
+ binaries: [cargo, dotnet, go, make]
173
+ subcmds: [build]
174
+ activity: verification
175
+ role: validator.build_checker
176
+ effect: mutating
177
+
178
+ - id: webpack-bundler
179
+ binaries: [webpack]
180
+ activity: verification
181
+ role: transformer.bundler
182
+ effect: mutating
183
+
184
+ - id: vite-build
185
+ binaries: [vite]
186
+ subcmds: [build]
187
+ activity: verification
188
+ role: transformer.bundler
189
+ effect: mutating
190
+
191
+ - id: npm-pnpm-yarn-run
192
+ binaries: [npm, pnpm, yarn]
193
+ subcmds: [run]
194
+ activity: verification
195
+ role: orchestrator.task_runner
196
+
197
+ - id: git-cherry-pick-commit-merge-push-rebase-reset-stash-tag
198
+ binaries: [git]
199
+ subcmds: [cherry-pick, commit, merge, push, rebase, reset, stash, tag]
200
+ activity: delivery
201
+ role: persistence.version_control
202
+ effect: mutating
203
+
204
+ - id: git-checkout-switch-mutating
205
+ binaries: [git]
206
+ subcmds: [checkout, switch]
207
+ activity: implementation
208
+ role: persistence.version_control
209
+ effect: mutating
210
+
211
+ - id: git-clean-destructive
212
+ binaries: [git]
213
+ subcmds: [clean]
214
+ activity: implementation
215
+ role: persistence.version_control
216
+ effect: destructive
217
+ action: remove.clean
218
+
219
+ - id: git-branch-delete-destructive
220
+ binaries: [git]
221
+ subcmds: [branch]
222
+ flags_require: ["-D"]
223
+ activity: implementation
224
+ role: persistence.version_control
225
+ effect: destructive
226
+ action: remove.delete
227
+
228
+ - id: git-branch-delete-lowercase-destructive
229
+ binaries: [git]
230
+ subcmds: [branch]
231
+ flags_require: ["-d"]
232
+ activity: implementation
233
+ role: persistence.version_control
234
+ effect: destructive
235
+ action: remove.delete
236
+
237
+ - id: git-branch-move-mutating
238
+ binaries: [git]
239
+ subcmds: [branch]
240
+ flags_require: ["-m"]
241
+ activity: implementation
242
+ role: persistence.version_control
243
+ effect: mutating
244
+ action: modify.rename
245
+
246
+ - id: git-branch-move-force-mutating
247
+ binaries: [git]
248
+ subcmds: [branch]
249
+ flags_require: ["-M"]
250
+ activity: implementation
251
+ role: persistence.version_control
252
+ effect: mutating
253
+ action: modify.rename
254
+
255
+ - id: git-pull-mutating
256
+ binaries: [git]
257
+ subcmds: [pull]
258
+ activity: implementation
259
+ role: persistence.version_control
260
+ effect: mutating
261
+ action: modify.merge
262
+
263
+ - id: git-clone-mutating
264
+ binaries: [git]
265
+ subcmds: [clone]
266
+ activity: setup
267
+ role: persistence.version_control
268
+ effect: mutating
269
+ action: persist.write
270
+
271
+ - id: git-restore-mutating
272
+ binaries: [git]
273
+ subcmds: [restore]
274
+ activity: implementation
275
+ role: persistence.version_control
276
+ effect: mutating
277
+ action: modify.overwrite
278
+
279
+ - id: git-blame-branch-diff-log-show-status
280
+ binaries: [git]
281
+ subcmds: [blame, branch, diff, log, show, status]
282
+ activity: investigation
283
+ role: persistence.version_control
284
+ effect: read_only
285
+
286
+ - id: build-module-invoke-build-invoke-pester-invoke-scriptanalyzer-test-connection-test-netconnection-test-path-test-runner
287
+ binaries: [build-module, invoke-build, invoke-pester, invoke-scriptanalyzer, test-connection, test-netconnection, test-path]
288
+ activity: verification
289
+ role: validator.test_runner
290
+ effect: read_only
291
+
292
+ - id: install-module-install-package-install-psresource-register-psrepository-update-module-package-manager
293
+ binaries: [install-module, install-package, install-psresource, register-psrepository, update-module]
294
+ activity: setup
295
+ role: orchestrator.package_manager
296
+ effect: mutating
297
+
298
+ - id: format-list-format-table-get-childitem-get-command-get-content-get-help-get-item-get-itemproperty-get-module-get-process-get-service-get-variable-measure-object-out-string-select-object-select-string-sort-object-where-object-file-browser
299
+ binaries: [format-list, format-table, get-childitem, get-command, get-content, get-help, get-item, get-itemproperty, get-module, get-process, get-service, get-variable, measure-object, out-string, select-object, select-string, sort-object, where-object]
300
+ activity: investigation
301
+ role: retriever.file_browser
302
+ effect: read_only
303
+
304
+ - id: find-delete-destructive
305
+ binaries: [find]
306
+ flags_require: ["-delete"]
307
+ activity: implementation
308
+ role: executor.script_runner
309
+ effect: destructive
310
+ action: remove.delete
311
+
312
+ - id: dir-find-findstr-set-tree-type-where-file-browser
313
+ binaries: [dir, find, findstr, set, tree, type, where]
314
+ activity: investigation
315
+ role: retriever.file_browser
316
+ effect: read_only
317
+
318
+ - id: docker-podman-build
319
+ binaries: [docker, podman]
320
+ subcmds: [build]
321
+ activity: verification
322
+ role: executor.container_runtime
323
+ effect: mutating
324
+ scope: artifact.container_image
325
+ action: validate.build_check
326
+
327
+ - id: docker-podman-push
328
+ binaries: [docker, podman]
329
+ subcmds: [push]
330
+ activity: implementation
331
+ role: executor.container_runtime
332
+ effect: mutating
333
+ scope: artifact.container_image
334
+ action: deliver.push
335
+
336
+ - id: docker-podman-pull
337
+ binaries: [docker, podman]
338
+ subcmds: [pull]
339
+ activity: setup
340
+ role: executor.container_runtime
341
+ effect: mutating
342
+ scope: artifact.container_image
343
+ action: persist.install
344
+
345
+ - id: docker-podman-exec-restart-run-start-stop
346
+ binaries: [docker, podman]
347
+ subcmds: [exec, restart, run, start, stop]
348
+ activity: implementation
349
+ role: executor.container_runtime
350
+ effect: mutating
351
+ scope: state.process
352
+ action: execute.run_service
353
+
354
+ - id: docker-podman-images-inspect-logs-ps-stats
355
+ binaries: [docker, podman]
356
+ subcmds: [images, inspect, logs, ps, stats]
357
+ activity: investigation
358
+ role: executor.container_runtime
359
+ effect: read_only
360
+ scope: state.process
361
+ action: retrieve.browse
362
+
363
+ - id: docker-podman-prune-rm-rmi
364
+ binaries: [docker, podman]
365
+ subcmds: [prune, rm, rmi]
366
+ activity: implementation
367
+ role: executor.container_runtime
368
+ effect: destructive
369
+ scope: artifact.container_image
370
+ action: remove.delete
371
+
372
+ - id: docker-podman-system
373
+ binaries: [docker, podman]
374
+ subcmds: [system]
375
+ activity: investigation
376
+ role: executor.container_runtime
377
+ scope: state.process
378
+ action: retrieve.browse
379
+
380
+ - id: docker-compose-restart-start-up
381
+ binaries: [docker-compose]
382
+ subcmds: [restart, start, up]
383
+ activity: implementation
384
+ role: executor.container_runtime
385
+ effect: mutating
386
+ scope: state.service
387
+ action: execute.run_service
388
+
389
+ - id: docker-compose-down-rm-stop
390
+ binaries: [docker-compose]
391
+ subcmds: [down, rm, stop]
392
+ activity: implementation
393
+ role: executor.container_runtime
394
+ effect: destructive
395
+ scope: state.service
396
+ action: remove.teardown
397
+
398
+ - id: docker-compose-build
399
+ binaries: [docker-compose]
400
+ subcmds: [build]
401
+ activity: verification
402
+ role: executor.container_runtime
403
+ effect: mutating
404
+ scope: artifact.container_image
405
+ action: validate.build_check
406
+
407
+ - id: docker-compose-logs-ps
408
+ binaries: [docker-compose]
409
+ subcmds: [logs, ps]
410
+ activity: investigation
411
+ role: executor.container_runtime
412
+ effect: read_only
413
+ scope: state.service
414
+ action: retrieve.browse
415
+
416
+ - id: kubectl-apply-create-patch-replace
417
+ binaries: [kubectl]
418
+ subcmds: [apply, create, patch, replace]
419
+ activity: implementation
420
+ role: executor.container_runtime
421
+ effect: mutating
422
+ scope: state.deployment
423
+ action: deliver.deploy
424
+
425
+ - id: kubectl-describe-events-get-logs-top
426
+ binaries: [kubectl]
427
+ subcmds: [describe, events, get, logs, top]
428
+ activity: investigation
429
+ role: executor.container_runtime
430
+ effect: read_only
431
+ scope: state.deployment
432
+ action: retrieve.browse
433
+
434
+ - id: kubectl-delete
435
+ binaries: [kubectl]
436
+ subcmds: [delete]
437
+ activity: implementation
438
+ role: executor.container_runtime
439
+ effect: destructive
440
+ scope: state.deployment
441
+ action: remove.delete
442
+
443
+ - id: kubectl-exec-port-forward-run
444
+ binaries: [kubectl]
445
+ subcmds: [exec, port-forward, run]
446
+ activity: implementation
447
+ role: executor.container_runtime
448
+ effect: mutating
449
+ scope: state.process
450
+ action: execute.run_script
451
+
452
+ - id: terraform-tofu-plan-validate
453
+ binaries: [terraform, tofu]
454
+ subcmds: [plan, validate]
455
+ activity: verification
456
+ role: orchestrator.task_runner
457
+ effect: read_only
458
+ scope: configuration.infrastructure
459
+ action: validate.build_check
460
+
461
+ - id: terraform-tofu-apply
462
+ binaries: [terraform, tofu]
463
+ subcmds: [apply]
464
+ activity: implementation
465
+ role: orchestrator.task_runner
466
+ effect: mutating
467
+ scope: configuration.infrastructure
468
+ action: deliver.deploy
469
+
470
+ - id: terraform-tofu-destroy
471
+ binaries: [terraform, tofu]
472
+ subcmds: [destroy]
473
+ activity: implementation
474
+ role: orchestrator.task_runner
475
+ effect: destructive
476
+ scope: configuration.infrastructure
477
+ action: remove.teardown
478
+
479
+ - id: terraform-tofu-init
480
+ binaries: [terraform, tofu]
481
+ subcmds: [init]
482
+ activity: setup
483
+ role: orchestrator.task_runner
484
+ effect: mutating
485
+ scope: configuration.infrastructure
486
+ action: configure.setup
487
+
488
+ - id: terraform-tofu-output-show-state
489
+ binaries: [terraform, tofu]
490
+ subcmds: [output, show, state]
491
+ activity: investigation
492
+ role: orchestrator.task_runner
493
+ effect: read_only
494
+ scope: configuration.infrastructure
495
+ action: retrieve.browse
496
+
497
+ - id: helm-install-upgrade
498
+ binaries: [helm]
499
+ subcmds: [install, upgrade]
500
+ activity: implementation
501
+ role: orchestrator.package_manager
502
+ effect: mutating
503
+ scope: state.deployment
504
+ action: deliver.deploy
505
+
506
+ - id: helm-lint-template
507
+ binaries: [helm]
508
+ subcmds: [lint, template]
509
+ activity: verification
510
+ role: orchestrator.task_runner
511
+ effect: read_only
512
+ scope: state.deployment
513
+ action: validate.build_check
514
+
515
+ - id: helm-delete-uninstall
516
+ binaries: [helm]
517
+ subcmds: [delete, uninstall]
518
+ activity: implementation
519
+ role: orchestrator.package_manager
520
+ effect: destructive
521
+ scope: state.deployment
522
+ action: remove.teardown
523
+
524
+ - id: helm-get-list-status
525
+ binaries: [helm]
526
+ subcmds: [get, list, status]
527
+ activity: investigation
528
+ role: orchestrator.task_runner
529
+ effect: read_only
530
+ scope: state.deployment
531
+ action: retrieve.browse
532
+
533
+ - id: pulumi-preview
534
+ binaries: [pulumi]
535
+ subcmds: [preview]
536
+ activity: verification
537
+ role: orchestrator.task_runner
538
+ effect: read_only
539
+ scope: configuration.infrastructure
540
+ action: validate.build_check
541
+
542
+ - id: pulumi-up
543
+ binaries: [pulumi]
544
+ subcmds: [up]
545
+ activity: implementation
546
+ role: orchestrator.task_runner
547
+ effect: mutating
548
+ scope: configuration.infrastructure
549
+ action: deliver.deploy
550
+
551
+ - id: pulumi-destroy
552
+ binaries: [pulumi]
553
+ subcmds: [destroy]
554
+ activity: implementation
555
+ role: orchestrator.task_runner
556
+ effect: destructive
557
+ scope: configuration.infrastructure
558
+ action: remove.teardown
559
+
560
+ - id: curl-require-X
561
+ binaries: [curl]
562
+ flags_require: ["-X"]
563
+ activity: implementation
564
+ role: retriever.api_client
565
+ effect: mutating
566
+ action: execute.run_script
567
+
568
+ - id: curl-require-request
569
+ binaries: [curl]
570
+ flags_require: ["--request"]
571
+ activity: implementation
572
+ role: retriever.api_client
573
+ effect: mutating
574
+ action: execute.run_script
575
+
576
+ - id: curl-require-d
577
+ binaries: [curl]
578
+ flags_require: ["-d"]
579
+ activity: implementation
580
+ role: retriever.api_client
581
+ effect: mutating
582
+ action: execute.run_script
583
+
584
+ - id: curl-require-data
585
+ binaries: [curl]
586
+ flags_require: ["--data"]
587
+ activity: implementation
588
+ role: retriever.api_client
589
+ effect: mutating
590
+ action: execute.run_script
591
+
592
+ - id: curl-require-F
593
+ binaries: [curl]
594
+ flags_require: ["-F"]
595
+ activity: implementation
596
+ role: retriever.api_client
597
+ effect: mutating
598
+ action: execute.run_script
599
+
600
+ - id: curl-require-form
601
+ binaries: [curl]
602
+ flags_require: ["--form"]
603
+ activity: implementation
604
+ role: retriever.api_client
605
+ effect: mutating
606
+ action: execute.run_script
607
+
608
+ - id: curl-require-T
609
+ binaries: [curl]
610
+ flags_require: ["-T"]
611
+ activity: implementation
612
+ role: retriever.api_client
613
+ effect: mutating
614
+ action: execute.run_script
615
+
616
+ - id: curl-require-upload-file
617
+ binaries: [curl]
618
+ flags_require: ["--upload-file"]
619
+ activity: implementation
620
+ role: retriever.api_client
621
+ effect: mutating
622
+ action: execute.run_script
623
+
624
+ - id: curl-require-o-output
625
+ binaries: [curl]
626
+ flags_require: ["-o"]
627
+ activity: implementation
628
+ role: retriever.api_client
629
+ effect: mutating
630
+ action: persist.write
631
+
632
+ - id: curl-require-O-output
633
+ binaries: [curl]
634
+ flags_require: ["-O"]
635
+ activity: implementation
636
+ role: retriever.api_client
637
+ effect: mutating
638
+ action: persist.write
639
+
640
+ - id: curl-require-output
641
+ binaries: [curl]
642
+ flags_require: ["--output"]
643
+ activity: implementation
644
+ role: retriever.api_client
645
+ effect: mutating
646
+ action: persist.write
647
+
648
+ - id: curl-api-client
649
+ binaries: [curl]
650
+ activity: investigation
651
+ role: retriever.api_client
652
+ effect: read_only
653
+ action: retrieve.read
654
+
655
+ - id: wget-api-client
656
+ binaries: [wget]
657
+ activity: implementation
658
+ role: retriever.api_client
659
+ effect: mutating
660
+ action: persist.write
661
+
662
+ - id: sed-require-i
663
+ binaries: [sed]
664
+ flags_require: ["-i"]
665
+ activity: implementation
666
+ role: modifier.file_editor
667
+ effect: mutating
668
+ action: modify.edit
669
+
670
+ - id: sed-search-index
671
+ binaries: [sed]
672
+ activity: investigation
673
+ role: retriever.search_index
674
+ effect: read_only
675
+ action: retrieve.search
676
+
677
+ - id: perl-require-i
678
+ binaries: [perl]
679
+ flags_require: ["-i"]
680
+ activity: implementation
681
+ role: modifier.file_editor
682
+ effect: mutating
683
+ action: modify.edit
684
+
685
+ - id: awk-gawk-jq-perl-yq-search-index
686
+ binaries: [awk, gawk, jq, perl, yq]
687
+ activity: investigation
688
+ role: retriever.search_index
689
+ effect: read_only
690
+ action: retrieve.search
691
+
692
+ - id: copy-cp-file-editor
693
+ binaries: [copy, cp]
694
+ activity: implementation
695
+ role: modifier.file_editor
696
+ effect: mutating
697
+ action: persist.write
698
+
699
+ - id: move-mv-rename-file-editor
700
+ binaries: [move, mv, rename]
701
+ activity: implementation
702
+ role: modifier.file_editor
703
+ effect: mutating
704
+ action: modify.edit
705
+
706
+ - id: mkdir-file-editor
707
+ binaries: [mkdir]
708
+ activity: setup
709
+ role: modifier.file_editor
710
+ effect: mutating
711
+ action: configure.setup
712
+
713
+ - id: del-erase-rd-rm-rmdir-script-runner
714
+ binaries: [del, erase, rd, rm, rmdir]
715
+ activity: implementation
716
+ role: executor.script_runner
717
+ effect: destructive
718
+ action: remove.delete
719
+
720
+ - id: chgrp-chmod-chown-icacls-script-runner
721
+ binaries: [chgrp, chmod, chown, icacls]
722
+ activity: setup
723
+ role: executor.script_runner
724
+ effect: mutating
725
+ scope: configuration.environment
726
+ action: configure.setup
727
+
728
+ - id: touch-file-editor
729
+ binaries: [touch]
730
+ activity: implementation
731
+ role: modifier.file_editor
732
+ effect: mutating
733
+ action: persist.write
734
+
735
+ - id: ln-file-editor
736
+ binaries: [ln]
737
+ activity: implementation
738
+ role: modifier.file_editor
739
+ effect: mutating
740
+ action: persist.write
741
+
742
+ - id: bat-cat-head-hexdump-less-more-tail-xxd-file-browser
743
+ binaries: [bat, cat, head, hexdump, less, more, tail, xxd]
744
+ activity: investigation
745
+ role: retriever.file_browser
746
+ effect: read_only
747
+ action: retrieve.read
748
+
749
+ - id: exa-eza-ll-ls-lsd-file-browser
750
+ binaries: [exa, eza, ll, ls, lsd]
751
+ activity: investigation
752
+ role: retriever.file_browser
753
+ effect: read_only
754
+ action: retrieve.browse
755
+
756
+ - id: tee-mutating
757
+ binaries: [tee]
758
+ activity: implementation
759
+ role: modifier.file_editor
760
+ effect: mutating
761
+ action: persist.write
762
+
763
+ - id: sort-output-mutating
764
+ binaries: [sort]
765
+ flags_require: ["-o"]
766
+ activity: implementation
767
+ role: modifier.file_editor
768
+ effect: mutating
769
+ action: persist.write
770
+
771
+ - id: comm-cut-diff-paste-sort-tr-uniq-wc-xargs-search-index
772
+ binaries: [comm, cut, diff, paste, sort, tr, uniq, wc, xargs]
773
+ activity: investigation
774
+ role: retriever.search_index
775
+ effect: read_only
776
+ action: retrieve.read
777
+
778
+ - id: ag-egrep-fgrep-grep-rg-ripgrep-search-index
779
+ binaries: [ag, egrep, fgrep, grep, rg, ripgrep]
780
+ activity: investigation
781
+ role: retriever.search_index
782
+ effect: read_only
783
+ action: retrieve.search
784
+
785
+ - id: fd-fdfind-file-browser
786
+ binaries: [fd, fdfind]
787
+ activity: investigation
788
+ role: retriever.file_browser
789
+ effect: read_only
790
+ action: retrieve.browse
791
+
792
+ - id: date-df-du-env-free-hostname-printenv-pwd-uname-uptime-whereis-which-whoami-script-runner
793
+ binaries: [date, df, du, env, free, hostname, printenv, pwd, uname, uptime, whereis, which, whoami]
794
+ activity: investigation
795
+ role: executor.script_runner
796
+ effect: read_only
797
+ action: retrieve.read
798
+
799
+ - id: conda-create-install-update
800
+ binaries: [conda]
801
+ subcmds: [create, install, update]
802
+ activity: setup
803
+ role: orchestrator.package_manager
804
+ effect: mutating
805
+ scope: configuration.environment
806
+ action: persist.install
807
+
808
+ - id: conda-activate-deactivate
809
+ binaries: [conda]
810
+ subcmds: [activate, deactivate]
811
+ activity: setup
812
+ role: orchestrator.package_manager
813
+ effect: read_only
814
+ scope: configuration.environment
815
+ action: configure.setup
816
+
817
+ - id: conda-info-list-search
818
+ binaries: [conda]
819
+ subcmds: [info, list, search]
820
+ activity: investigation
821
+ role: orchestrator.package_manager
822
+ effect: read_only
823
+ scope: configuration.environment
824
+ action: retrieve.browse
825
+
826
+ - id: venv-virtualenv-package-manager
827
+ binaries: [venv, virtualenv]
828
+ activity: setup
829
+ role: orchestrator.package_manager
830
+ effect: mutating
831
+ scope: configuration.environment
832
+ action: configure.setup
833
+
834
+ - id: asdf-fnm-mise-nvm-pyenv-rbenv-rtx-package-manager
835
+ binaries: [asdf, fnm, mise, nvm, pyenv, rbenv, rtx]
836
+ activity: setup
837
+ role: orchestrator.package_manager
838
+ effect: mutating
839
+ scope: configuration.environment
840
+ action: configure.setup
841
+
842
+ - id: bandit-safety-semgrep-snyk-trivy-security-scanner
843
+ binaries: [bandit, safety, semgrep, snyk, trivy]
844
+ activity: verification
845
+ role: validator.security_scanner
846
+ effect: read_only
847
+ action: validate.security_scan
848
+
849
+ - id: npm-pnpm-yarn-audit
850
+ binaries: [npm, pnpm, yarn]
851
+ subcmds: [audit]
852
+ activity: verification
853
+ role: validator.security_scanner
854
+ effect: read_only
855
+ action: validate.security_scan
856
+
857
+ - id: cargo-audit
858
+ binaries: [cargo]
859
+ subcmds: [audit]
860
+ activity: verification
861
+ role: validator.security_scanner
862
+ effect: read_only
863
+ action: validate.security_scan
864
+
865
+ - id: cmake-build-checker
866
+ binaries: [cmake]
867
+ activity: setup
868
+ role: validator.build_checker
869
+ effect: mutating
870
+ action: configure.setup
871
+
872
+ - id: bazel-ninja-build
873
+ binaries: [bazel, ninja]
874
+ subcmds: [build]
875
+ activity: verification
876
+ role: validator.build_checker
877
+ effect: mutating
878
+ action: validate.build_check
879
+
880
+ - id: bazel-test
881
+ binaries: [bazel]
882
+ subcmds: [test]
883
+ activity: verification
884
+ role: validator.test_runner
885
+ effect: read_only
886
+ action: validate.test
887
+
888
+ - id: gh-issue-pr-release
889
+ binaries: [gh]
890
+ subcmds: [issue, pr, release]
891
+ activity: delivery
892
+ role: persistence.version_control
893
+ effect: mutating
894
+ scope: artifact.repository
895
+
896
+ - id: gh-api-browse-gist-repo
897
+ binaries: [gh]
898
+ subcmds: [api, browse, gist, repo]
899
+ activity: investigation
900
+ role: retriever.api_client
901
+ effect: read_only
902
+ scope: artifact.repository
903
+
904
+ # ═══════════════════════════════════════════════════════════════════════════
905
+ # AWS CLI — subcommand-level classification
906
+ # ═══════════════════════════════════════════════════════════════════════════
907
+ # Effect is determined by verb_prefix_effects in effect_overrides.yaml.
908
+ # These rules match service-level subcmds for activity/scope routing.
909
+
910
+ - id: aws-s3-storage
911
+ binaries: [aws]
912
+ subcmds: [s3, s3api, glacier]
913
+ activity: implementation
914
+ role: retriever.api_client
915
+ scope: configuration.infrastructure
916
+ action: persist.write
917
+
918
+ - id: aws-iam-sts-identity
919
+ binaries: [aws]
920
+ subcmds: [iam, sts, sso, sso-admin, organizations, identitystore]
921
+ activity: implementation
922
+ role: retriever.api_client
923
+ scope: configuration.infrastructure
924
+
925
+ - id: aws-compute
926
+ binaries: [aws]
927
+ subcmds: [ec2, ecs, eks, lambda, lightsail, batch, autoscaling]
928
+ activity: implementation
929
+ role: retriever.api_client
930
+ scope: configuration.infrastructure
931
+
932
+ - id: aws-database
933
+ binaries: [aws]
934
+ subcmds: [rds, dynamodb, elasticache, redshift, docdb, neptune, dax]
935
+ activity: implementation
936
+ role: retriever.api_client
937
+ scope: configuration.infrastructure
938
+
939
+ - id: aws-analytics-ml
940
+ binaries: [aws]
941
+ subcmds: [athena, glue, emr, kinesis, firehose, sagemaker, bedrock, comprehend, rekognition, textract]
942
+ activity: implementation
943
+ role: retriever.api_client
944
+ scope: configuration.infrastructure
945
+
946
+ - id: aws-networking
947
+ binaries: [aws]
948
+ subcmds: [elb, elbv2, route53, cloudfront, apigateway, apigatewayv2, vpc-lattice]
949
+ activity: implementation
950
+ role: retriever.api_client
951
+ scope: configuration.infrastructure
952
+
953
+ - id: aws-deploy-cicd
954
+ binaries: [aws]
955
+ subcmds: [cloudformation, codebuild, codedeploy, codepipeline, codeartifact, ecr, stepfunctions]
956
+ activity: implementation
957
+ role: orchestrator.task_runner
958
+ scope: configuration.infrastructure
959
+
960
+ - id: aws-messaging
961
+ binaries: [aws]
962
+ subcmds: [sqs, sns, events, eventbridge, ses, sesv2]
963
+ activity: implementation
964
+ role: retriever.api_client
965
+ scope: configuration.infrastructure
966
+
967
+ - id: aws-security
968
+ binaries: [aws]
969
+ subcmds: [kms, secretsmanager, acm, waf, wafv2, guardduty, inspector2, securityhub]
970
+ activity: implementation
971
+ role: retriever.api_client
972
+ scope: configuration.infrastructure
973
+
974
+ - id: aws-observability
975
+ binaries: [aws]
976
+ subcmds: [logs, cloudwatch, cloudtrail, xray, ce]
977
+ activity: investigation
978
+ role: retriever.api_client
979
+ scope: configuration.infrastructure
980
+
981
+ - id: aws-config-ssm
982
+ binaries: [aws]
983
+ subcmds: [ssm, config, configservice, appconfig]
984
+ activity: implementation
985
+ role: retriever.api_client
986
+ scope: configuration.infrastructure
987
+
988
+ # ═══════════════════════════════════════════════════════════════════════════
989
+ # Azure CLI (az) — subcommand-level classification
990
+ # ═══════════════════════════════════════════════════════════════════════════
991
+
992
+ - id: az-login-account
993
+ binaries: [az]
994
+ subcmds: [login, logout, account, configure, version, feedback, find, interactive, rest, self-test, upgrade]
995
+ activity: setup
996
+ role: retriever.api_client
997
+ effect: read_only
998
+ scope: configuration.infrastructure
999
+ action: configure.setup
1000
+
1001
+ - id: az-compute
1002
+ binaries: [az]
1003
+ subcmds: [vm, vmss, sig, disk, snapshot, image, ppg, capacity]
1004
+ activity: implementation
1005
+ role: retriever.api_client
1006
+ scope: configuration.infrastructure
1007
+
1008
+ - id: az-containers
1009
+ binaries: [az]
1010
+ subcmds: [aks, acr, container, containerapp]
1011
+ activity: implementation
1012
+ role: retriever.api_client
1013
+ scope: configuration.infrastructure
1014
+
1015
+ - id: az-networking
1016
+ binaries: [az]
1017
+ subcmds: [network, cdn, frontdoor, dns, private-dns, traffic-manager]
1018
+ activity: implementation
1019
+ role: retriever.api_client
1020
+ scope: configuration.infrastructure
1021
+
1022
+ - id: az-storage-data
1023
+ binaries: [az]
1024
+ subcmds: [storage, dls]
1025
+ activity: implementation
1026
+ role: retriever.api_client
1027
+ scope: configuration.infrastructure
1028
+
1029
+ - id: az-databases
1030
+ binaries: [az]
1031
+ subcmds: [sql, cosmosdb, mysql, postgres, redis, mariadb]
1032
+ activity: implementation
1033
+ role: retriever.api_client
1034
+ scope: configuration.infrastructure
1035
+
1036
+ - id: az-identity-security
1037
+ binaries: [az]
1038
+ subcmds: [ad, role, keyvault, identity]
1039
+ activity: implementation
1040
+ role: retriever.api_client
1041
+ scope: configuration.infrastructure
1042
+
1043
+ - id: az-web-serverless
1044
+ binaries: [az]
1045
+ subcmds: [webapp, functionapp, staticwebapp, logicapp, apim, spring]
1046
+ activity: implementation
1047
+ role: retriever.api_client
1048
+ scope: configuration.infrastructure
1049
+
1050
+ - id: az-devops-deploy
1051
+ binaries: [az]
1052
+ subcmds: [deployment, group, resource, tag, lock, policy, blueprint, managedapp]
1053
+ activity: implementation
1054
+ role: orchestrator.task_runner
1055
+ scope: configuration.infrastructure
1056
+
1057
+ - id: az-messaging
1058
+ binaries: [az]
1059
+ subcmds: [servicebus, eventhubs, eventgrid, relay, notification-hub, signalr]
1060
+ activity: implementation
1061
+ role: retriever.api_client
1062
+ scope: configuration.infrastructure
1063
+
1064
+ - id: az-monitoring
1065
+ binaries: [az]
1066
+ subcmds: [monitor, advisor, alerts]
1067
+ activity: investigation
1068
+ role: retriever.api_client
1069
+ scope: configuration.infrastructure
1070
+
1071
+ # ═══════════════════════════════════════════════════════════════════════════
1072
+ # Google Cloud CLI (gcloud) — subcommand-level classification
1073
+ # ═══════════════════════════════════════════════════════════════════════════
1074
+
1075
+ - id: gcloud-auth-config
1076
+ binaries: [gcloud]
1077
+ subcmds: [auth, config, init, components, topic, version, info]
1078
+ activity: setup
1079
+ role: retriever.api_client
1080
+ effect: read_only
1081
+ scope: configuration.infrastructure
1082
+ action: configure.setup
1083
+
1084
+ - id: gcloud-compute
1085
+ binaries: [gcloud]
1086
+ subcmds: [compute]
1087
+ activity: implementation
1088
+ role: retriever.api_client
1089
+ scope: configuration.infrastructure
1090
+
1091
+ - id: gcloud-container
1092
+ binaries: [gcloud]
1093
+ subcmds: [container, artifacts]
1094
+ activity: implementation
1095
+ role: retriever.api_client
1096
+ scope: configuration.infrastructure
1097
+
1098
+ - id: gcloud-serverless
1099
+ binaries: [gcloud]
1100
+ subcmds: [run, functions, app, scheduler, tasks, workflows, eventarc]
1101
+ activity: implementation
1102
+ role: retriever.api_client
1103
+ scope: configuration.infrastructure
1104
+
1105
+ - id: gcloud-data
1106
+ binaries: [gcloud]
1107
+ subcmds: [sql, spanner, firestore, bigtable, datastore, memcache, storage, dataflow, dataproc]
1108
+ activity: implementation
1109
+ role: retriever.api_client
1110
+ scope: configuration.infrastructure
1111
+
1112
+ - id: gcloud-networking
1113
+ binaries: [gcloud]
1114
+ subcmds: [dns, domains]
1115
+ activity: implementation
1116
+ role: retriever.api_client
1117
+ scope: configuration.infrastructure
1118
+
1119
+ - id: gcloud-iam-security
1120
+ binaries: [gcloud]
1121
+ subcmds: [iam, projects, organizations, secrets, kms, access-context-manager]
1122
+ activity: implementation
1123
+ role: retriever.api_client
1124
+ scope: configuration.infrastructure
1125
+
1126
+ - id: gcloud-messaging
1127
+ binaries: [gcloud]
1128
+ subcmds: [pubsub]
1129
+ activity: implementation
1130
+ role: retriever.api_client
1131
+ scope: configuration.infrastructure
1132
+
1133
+ - id: gcloud-devops
1134
+ binaries: [gcloud]
1135
+ subcmds: [builds, deploy, source]
1136
+ activity: implementation
1137
+ role: orchestrator.task_runner
1138
+ scope: configuration.infrastructure
1139
+
1140
+ - id: gcloud-monitoring
1141
+ binaries: [gcloud]
1142
+ subcmds: [logging, monitoring, trace]
1143
+ activity: investigation
1144
+ role: retriever.api_client
1145
+ scope: configuration.infrastructure
1146
+
1147
+ # --- gsutil (legacy GCS CLI) ---
1148
+ - id: gsutil-read-only
1149
+ binaries: [gsutil]
1150
+ subcmds: [ls, cat, stat, du, hash, ver, acl, cors, defacl, iam, label, lifecycle, logging, notification, requesterpays, retention, versioning, web, signurl]
1151
+ activity: investigation
1152
+ role: retriever.api_client
1153
+ effect: read_only
1154
+ scope: configuration.infrastructure
1155
+ action: retrieve.browse
1156
+
1157
+ - id: gsutil-mutating
1158
+ binaries: [gsutil]
1159
+ subcmds: [cp, mv, mb, rsync, rewrite, compose, setmeta]
1160
+ activity: implementation
1161
+ role: retriever.api_client
1162
+ effect: mutating
1163
+ scope: configuration.infrastructure
1164
+ action: persist.write
1165
+
1166
+ - id: gsutil-destructive
1167
+ binaries: [gsutil]
1168
+ subcmds: [rm, rb]
1169
+ activity: implementation
1170
+ role: retriever.api_client
1171
+ effect: destructive
1172
+ scope: configuration.infrastructure
1173
+ action: remove.delete
1174
+
1175
+ # ═══════════════════════════════════════════════════════════════════════════
1176
+ # Cloud CLI fallback — catches unrecognized subcommands
1177
+ # ═══════════════════════════════════════════════════════════════════════════
1178
+ - id: aws-az-gcloud-fallback
1179
+ binaries: [aws, az, gcloud]
1180
+ activity: implementation
1181
+ role: retriever.api_client
1182
+ scope: configuration.infrastructure
1183
+
1184
+ - id: twine-upload
1185
+ binaries: [twine]
1186
+ subcmds: [upload]
1187
+ activity: implementation
1188
+ role: orchestrator.task_runner
1189
+ effect: mutating
1190
+ scope: artifact.package
1191
+ action: deliver.publish
1192
+