oh-my-agent-commandcode 0.0.0-stage → 20.38.4

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 (334) hide show
  1. package/README.md +35 -2
  2. package/filter-test-output.sh +52 -0
  3. package/mods/oma.ts +347 -0
  4. package/package.json +30 -4
  5. package/skills/_shared/conditional/experiment-ledger.md +28 -0
  6. package/skills/_shared/conditional/exploration-loop.md +22 -0
  7. package/skills/_shared/conditional/quality-score.md +33 -0
  8. package/skills/_shared/core/anti-ai-prose.md +191 -0
  9. package/skills/_shared/core/api-contracts/README.md +28 -0
  10. package/skills/_shared/core/api-contracts/template.md +90 -0
  11. package/skills/_shared/core/clarification-protocol.md +23 -0
  12. package/skills/_shared/core/code-intelligence.md +46 -0
  13. package/skills/_shared/core/collaboration-policy.md +28 -0
  14. package/skills/_shared/core/common-checklist.md +28 -0
  15. package/skills/_shared/core/context-budget.md +22 -0
  16. package/skills/_shared/core/context-loading.md +34 -0
  17. package/skills/_shared/core/difficulty-guide.md +26 -0
  18. package/skills/_shared/core/execution-policy.md +31 -0
  19. package/skills/_shared/core/lessons-learned.md +33 -0
  20. package/skills/_shared/core/prompt-structure.md +18 -0
  21. package/skills/_shared/core/quality-principles.md +11 -0
  22. package/skills/_shared/core/session-metrics.md +35 -0
  23. package/skills/_shared/core/skill-routing.md +39 -0
  24. package/skills/_shared/core/test-approach.md +54 -0
  25. package/skills/_shared/core/vendor-detection.md +52 -0
  26. package/skills/_shared/runtime/memory-protocol.md +118 -0
  27. package/skills/_shared/runtime/result-contract.md +64 -0
  28. package/skills/_shared/ui-interaction-quality.md +133 -0
  29. package/skills/oma-academic-writing/SKILL.md +181 -0
  30. package/skills/oma-academic-writing/resources/abstract-guide.md +51 -0
  31. package/skills/oma-academic-writing/resources/academic-verb-tiers.md +42 -0
  32. package/skills/oma-academic-writing/resources/anti-ai-checklist.md +52 -0
  33. package/skills/oma-academic-writing/resources/hedging-guide.md +132 -0
  34. package/skills/oma-academic-writing/resources/sentence-structure-reference.md +151 -0
  35. package/skills/oma-architecture/SKILL.md +203 -0
  36. package/skills/oma-architecture/resources/api-evolution.md +41 -0
  37. package/skills/oma-architecture/resources/checklist.md +42 -0
  38. package/skills/oma-architecture/resources/execution-protocol.md +115 -0
  39. package/skills/oma-architecture/resources/methodology-selection.md +92 -0
  40. package/skills/oma-architecture/resources/migration-patterns.md +28 -0
  41. package/skills/oma-architecture/resources/output-templates.md +111 -0
  42. package/skills/oma-architecture/resources/stakeholder-synthesis.md +80 -0
  43. package/skills/oma-backend/SKILL.md +202 -0
  44. package/skills/oma-backend/resources/checklist.md +45 -0
  45. package/skills/oma-backend/resources/error-playbook.md +97 -0
  46. package/skills/oma-backend/resources/execution-protocol.md +39 -0
  47. package/skills/oma-backend/resources/orm-reference.md +61 -0
  48. package/skills/oma-backend/variants/node/api-template.ts +315 -0
  49. package/skills/oma-backend/variants/node/snippets.md +475 -0
  50. package/skills/oma-backend/variants/node/stack.yaml +21 -0
  51. package/skills/oma-backend/variants/node/tech-stack.md +33 -0
  52. package/skills/oma-backend/variants/python/api-template.py +378 -0
  53. package/skills/oma-backend/variants/python/snippets.md +199 -0
  54. package/skills/oma-backend/variants/python/stack.yaml +18 -0
  55. package/skills/oma-backend/variants/python/tech-stack.md +45 -0
  56. package/skills/oma-backend/variants/rust/api-template.rs +635 -0
  57. package/skills/oma-backend/variants/rust/snippets.md +471 -0
  58. package/skills/oma-backend/variants/rust/stack.yaml +20 -0
  59. package/skills/oma-backend/variants/rust/tech-stack.md +36 -0
  60. package/skills/oma-backend/variants/stack.schema.json +73 -0
  61. package/skills/oma-brainstorm/SKILL.md +166 -0
  62. package/skills/oma-brainstorm/resources/triz-lite.md +117 -0
  63. package/skills/oma-coordination/SKILL.md +171 -0
  64. package/skills/oma-db/SKILL.md +201 -0
  65. package/skills/oma-db/resources/anti-patterns.md +177 -0
  66. package/skills/oma-db/resources/checklist.md +67 -0
  67. package/skills/oma-db/resources/document-templates.md +107 -0
  68. package/skills/oma-db/resources/error-playbook.md +50 -0
  69. package/skills/oma-db/resources/examples.md +170 -0
  70. package/skills/oma-db/resources/execution-protocol.md +127 -0
  71. package/skills/oma-db/resources/iso-controls.md +98 -0
  72. package/skills/oma-db/resources/migration-playbook.md +93 -0
  73. package/skills/oma-db/resources/query-tuning.md +57 -0
  74. package/skills/oma-db/resources/vector-db.md +159 -0
  75. package/skills/oma-debug/SKILL.md +146 -0
  76. package/skills/oma-debug/resources/bug-report-template.md +327 -0
  77. package/skills/oma-debug/resources/checklist.md +31 -0
  78. package/skills/oma-debug/resources/common-patterns.md +734 -0
  79. package/skills/oma-debug/resources/debugging-checklist.md +364 -0
  80. package/skills/oma-debug/resources/error-playbook.md +94 -0
  81. package/skills/oma-debug/resources/execution-protocol.md +40 -0
  82. package/skills/oma-design/SKILL.md +135 -0
  83. package/skills/oma-design/resources/asset-strategy.md +34 -0
  84. package/skills/oma-design/resources/checklist.md +63 -0
  85. package/skills/oma-design/resources/data-grid.md +48 -0
  86. package/skills/oma-design/resources/design-md-spec.md +107 -0
  87. package/skills/oma-design/resources/design-tokens.md +53 -0
  88. package/skills/oma-design/resources/error-playbook.md +18 -0
  89. package/skills/oma-design/resources/execution-protocol.md +95 -0
  90. package/skills/oma-design/resources/external-design-skills.md +130 -0
  91. package/skills/oma-design/resources/getdesign-fetcher.md +104 -0
  92. package/skills/oma-design/resources/product-interface-review.md +59 -0
  93. package/skills/oma-design/resources/redesign-protocol.md +52 -0
  94. package/skills/oma-design/resources/stitch-integration.md +244 -0
  95. package/skills/oma-dev-workflow/SKILL.md +375 -0
  96. package/skills/oma-dev-workflow/resources/affected-checks.py +58 -0
  97. package/skills/oma-dev-workflow/resources/api-workflows.md +58 -0
  98. package/skills/oma-dev-workflow/resources/database-patterns.md +107 -0
  99. package/skills/oma-dev-workflow/resources/i18n-patterns.md +63 -0
  100. package/skills/oma-dev-workflow/resources/release-coordination.md +240 -0
  101. package/skills/oma-dev-workflow/resources/tooling-profiles.md +217 -0
  102. package/skills/oma-dev-workflow/resources/troubleshooting.md +78 -0
  103. package/skills/oma-dev-workflow/resources/validation-pipeline.md +246 -0
  104. package/skills/oma-docs/SKILL.md +77 -0
  105. package/skills/oma-docs/resources/commands.md +76 -0
  106. package/skills/oma-explanation/SKILL.md +212 -0
  107. package/skills/oma-explanation/resources/document-structure.md +115 -0
  108. package/skills/oma-explanation/resources/draft-format.md +199 -0
  109. package/skills/oma-explanation/resources/html-contract.md +102 -0
  110. package/skills/oma-frontend/SKILL.md +227 -0
  111. package/skills/oma-frontend/resources/angular-rules.md +110 -0
  112. package/skills/oma-frontend/resources/checklist.md +76 -0
  113. package/skills/oma-frontend/resources/error-playbook.md +125 -0
  114. package/skills/oma-frontend/resources/execution-protocol.md +46 -0
  115. package/skills/oma-frontend/resources/snippets.md +354 -0
  116. package/skills/oma-frontend/resources/specialized-visual-implementation.md +193 -0
  117. package/skills/oma-frontend/resources/tailwind-rules.md +83 -0
  118. package/skills/oma-frontend/resources/tech-stack.md +156 -0
  119. package/skills/oma-hwp/SKILL.md +166 -0
  120. package/skills/oma-hwp/config/hwp-config.yaml +35 -0
  121. package/skills/oma-hwp/resources/balanced-tables.ts +39 -0
  122. package/skills/oma-hwp/resources/execution-protocol.md +145 -0
  123. package/skills/oma-hwp/resources/flatten-tables.ts +101 -0
  124. package/skills/oma-hwp/resources/package.json +13 -0
  125. package/skills/oma-hwp/resources/troubleshooting.md +70 -0
  126. package/skills/oma-hwp/resources/tsconfig.json +10 -0
  127. package/skills/oma-hwp/resources/turndown-plugin-gfm.d.ts +9 -0
  128. package/skills/oma-image/SKILL.md +142 -0
  129. package/skills/oma-image/config/image-config.yaml +70 -0
  130. package/skills/oma-image/resources/checklist.md +18 -0
  131. package/skills/oma-image/resources/execution-protocol.md +117 -0
  132. package/skills/oma-image/resources/invocation.md +105 -0
  133. package/skills/oma-image/resources/prompt-tips.md +71 -0
  134. package/skills/oma-image/resources/vendor-matrix.md +90 -0
  135. package/skills/oma-market/SKILL.md +142 -0
  136. package/skills/oma-market/resources/checklist.md +12 -0
  137. package/skills/oma-market/resources/error-playbook.md +12 -0
  138. package/skills/oma-market/resources/execution-protocol.md +60 -0
  139. package/skills/oma-market/resources/frameworks/pestel.md +101 -0
  140. package/skills/oma-market/resources/frameworks/porters-5f.md +90 -0
  141. package/skills/oma-market/resources/frameworks/swot.md +61 -0
  142. package/skills/oma-market/resources/intent-rules.md +35 -0
  143. package/skills/oma-market/resources/output-laws.md +53 -0
  144. package/skills/oma-mobile/SKILL.md +168 -0
  145. package/skills/oma-mobile/resources/checklist.md +77 -0
  146. package/skills/oma-mobile/resources/error-playbook.md +198 -0
  147. package/skills/oma-mobile/resources/execution-protocol.md +47 -0
  148. package/skills/oma-mobile/resources/screen-template.dart +331 -0
  149. package/skills/oma-mobile/resources/screen-template.swift +239 -0
  150. package/skills/oma-mobile/resources/screen-template.tsx +179 -0
  151. package/skills/oma-mobile/resources/tech-stack.md +69 -0
  152. package/skills/oma-mobile/variants/README.md +45 -0
  153. package/skills/oma-mobile/variants/flutter/api-template.dart +461 -0
  154. package/skills/oma-mobile/variants/flutter/snippets.md +1353 -0
  155. package/skills/oma-mobile/variants/flutter/stack.yaml +21 -0
  156. package/skills/oma-mobile/variants/flutter/tech-stack.md +201 -0
  157. package/skills/oma-mobile/variants/kotlin-android/api-template.kt +182 -0
  158. package/skills/oma-mobile/variants/kotlin-android/snippets.md +871 -0
  159. package/skills/oma-mobile/variants/kotlin-android/stack.yaml +32 -0
  160. package/skills/oma-mobile/variants/kotlin-android/tech-stack.md +159 -0
  161. package/skills/oma-mobile/variants/react-native/api-template.ts +531 -0
  162. package/skills/oma-mobile/variants/react-native/snippets.md +1014 -0
  163. package/skills/oma-mobile/variants/react-native/stack.yaml +22 -0
  164. package/skills/oma-mobile/variants/react-native/tech-stack.md +192 -0
  165. package/skills/oma-mobile/variants/stack.schema.json +68 -0
  166. package/skills/oma-mobile/variants/swift-ios/api-template.swift +165 -0
  167. package/skills/oma-mobile/variants/swift-ios/snippets.md +1028 -0
  168. package/skills/oma-mobile/variants/swift-ios/stack.yaml +25 -0
  169. package/skills/oma-mobile/variants/swift-ios/tech-stack.md +174 -0
  170. package/skills/oma-observability/SKILL.md +225 -0
  171. package/skills/oma-observability/resources/anti-patterns.md +555 -0
  172. package/skills/oma-observability/resources/boundaries/cross-application.md +348 -0
  173. package/skills/oma-observability/resources/boundaries/multi-tenant.md +290 -0
  174. package/skills/oma-observability/resources/boundaries/release.md +372 -0
  175. package/skills/oma-observability/resources/boundaries/slo.md +225 -0
  176. package/skills/oma-observability/resources/checklist.md +123 -0
  177. package/skills/oma-observability/resources/examples.md +448 -0
  178. package/skills/oma-observability/resources/execution-protocol.md +166 -0
  179. package/skills/oma-observability/resources/incident-forensics.md +348 -0
  180. package/skills/oma-observability/resources/intent-rules.md +307 -0
  181. package/skills/oma-observability/resources/layers/L3-network.md +281 -0
  182. package/skills/oma-observability/resources/layers/L4-transport.md +299 -0
  183. package/skills/oma-observability/resources/layers/L7-application/crash-analytics.md +359 -0
  184. package/skills/oma-observability/resources/layers/L7-application/mobile-rum.md +278 -0
  185. package/skills/oma-observability/resources/layers/L7-application/waf.md +246 -0
  186. package/skills/oma-observability/resources/layers/L7-application/web-rum.md +350 -0
  187. package/skills/oma-observability/resources/layers/mesh.md +368 -0
  188. package/skills/oma-observability/resources/matrix.md +177 -0
  189. package/skills/oma-observability/resources/meta-observability.md +605 -0
  190. package/skills/oma-observability/resources/observability-as-code.md +666 -0
  191. package/skills/oma-observability/resources/signals/audit.md +310 -0
  192. package/skills/oma-observability/resources/signals/cost.md +303 -0
  193. package/skills/oma-observability/resources/signals/logs.md +263 -0
  194. package/skills/oma-observability/resources/signals/metrics.md +478 -0
  195. package/skills/oma-observability/resources/signals/privacy.md +351 -0
  196. package/skills/oma-observability/resources/signals/profiles.md +245 -0
  197. package/skills/oma-observability/resources/signals/traces.md +360 -0
  198. package/skills/oma-observability/resources/standards.md +214 -0
  199. package/skills/oma-observability/resources/transport/collector-topology.md +308 -0
  200. package/skills/oma-observability/resources/transport/otlp-grpc-vs-http.md +256 -0
  201. package/skills/oma-observability/resources/transport/sampling-recipes.md +297 -0
  202. package/skills/oma-observability/resources/transport/udp-statsd-mtu.md +167 -0
  203. package/skills/oma-observability/resources/vendor-categories.md +352 -0
  204. package/skills/oma-orchestration/SKILL.md +302 -0
  205. package/skills/oma-orchestration/config/cli-config.yaml +92 -0
  206. package/skills/oma-orchestration/resources/memory-schema.md +232 -0
  207. package/skills/oma-orchestration/resources/subagent-prompt-template.md +30 -0
  208. package/skills/oma-orchestration/scripts/parallel-run.sh +6 -0
  209. package/skills/oma-orchestration/scripts/spawn-agent.sh +5 -0
  210. package/skills/oma-orchestration/scripts/verify.sh +20 -0
  211. package/skills/oma-orchestration/templates/backend-task.md +19 -0
  212. package/skills/oma-orchestration/templates/debug-task.md +16 -0
  213. package/skills/oma-orchestration/templates/frontend-task.md +18 -0
  214. package/skills/oma-orchestration/templates/mobile-task.md +18 -0
  215. package/skills/oma-orchestration/templates/qa-task.md +16 -0
  216. package/skills/oma-orchestration/templates/tasks-example.yaml +15 -0
  217. package/skills/oma-pdf/SKILL.md +162 -0
  218. package/skills/oma-pdf/config/pdf-config.yaml +27 -0
  219. package/skills/oma-pdf/resources/execution-protocol.md +127 -0
  220. package/skills/oma-pm/SKILL.md +157 -0
  221. package/skills/oma-pm/resources/error-playbook.md +75 -0
  222. package/skills/oma-pm/resources/examples.md +439 -0
  223. package/skills/oma-pm/resources/execution-protocol.md +62 -0
  224. package/skills/oma-pm/resources/iso-planning.md +110 -0
  225. package/skills/oma-pm/resources/plan-phase-protocol.md +66 -0
  226. package/skills/oma-pm/resources/task-template.json +86 -0
  227. package/skills/oma-qa/SKILL.md +141 -0
  228. package/skills/oma-qa/resources/checklist.md +339 -0
  229. package/skills/oma-qa/resources/error-playbook.md +98 -0
  230. package/skills/oma-qa/resources/execution-protocol.md +169 -0
  231. package/skills/oma-qa/resources/iso-quality.md +82 -0
  232. package/skills/oma-qa/resources/verify-ship-protocol.md +116 -0
  233. package/skills/oma-recap/SKILL.md +245 -0
  234. package/skills/oma-recap/resources/output-formats.md +83 -0
  235. package/skills/oma-refactor/SKILL.md +184 -0
  236. package/skills/oma-refactor/resources/definition.md +108 -0
  237. package/skills/oma-refactor/resources/governance.md +33 -0
  238. package/skills/oma-refactor/resources/hotspots.py +44 -0
  239. package/skills/oma-refactor/resources/measurement.md +93 -0
  240. package/skills/oma-scholar/SKILL.md +276 -0
  241. package/skills/oma-scholar/config/scholar-config.yaml +79 -0
  242. package/skills/oma-scholar/resources/api-endpoints.md +174 -0
  243. package/skills/oma-scholar/resources/checklist.md +92 -0
  244. package/skills/oma-scholar/resources/execution-protocol.md +224 -0
  245. package/skills/oma-scholar/resources/fallback-providers.md +143 -0
  246. package/skills/oma-scholar/resources/setup-openalex.md +85 -0
  247. package/skills/oma-scholar/resources/sidecar-spec.md +341 -0
  248. package/skills/oma-scholar/resources/upstream-spec-cache.md +972 -0
  249. package/skills/oma-scm/SKILL.md +103 -0
  250. package/skills/oma-scm/resources/cm-operations.md +56 -0
  251. package/skills/oma-scm/resources/codeowners-playbook.md +45 -0
  252. package/skills/oma-scm/resources/conventional-commits.md +108 -0
  253. package/skills/oma-scm/resources/merge-risk.md +76 -0
  254. package/skills/oma-scm/resources/onboarding-risk-signals.md +71 -0
  255. package/skills/oma-search/SKILL.md +125 -0
  256. package/skills/oma-search/resources/checklist.md +36 -0
  257. package/skills/oma-search/resources/error-playbook.md +66 -0
  258. package/skills/oma-search/resources/examples.md +80 -0
  259. package/skills/oma-search/resources/execution-protocol.md +86 -0
  260. package/skills/oma-search/resources/intent-rules.md +47 -0
  261. package/skills/oma-search/resources/trust-registry.md +53 -0
  262. package/skills/oma-security/SKILL.md +172 -0
  263. package/skills/oma-security/resources/artex.md +108 -0
  264. package/skills/oma-security/resources/ci.md +134 -0
  265. package/skills/oma-security/resources/cisco-source.md +108 -0
  266. package/skills/oma-security/resources/deepsec-config.md +45 -0
  267. package/skills/oma-security/resources/deepsec-matchers.md +35 -0
  268. package/skills/oma-security/resources/deepsec-scanning.md +45 -0
  269. package/skills/oma-security/resources/deepsec-setup.md +41 -0
  270. package/skills/oma-security/resources/findings-contract.md +408 -0
  271. package/skills/oma-security/resources/mcp-scanning.md +122 -0
  272. package/skills/oma-security/resources/skill-scanning.md +106 -0
  273. package/skills/oma-security/resources/validation.md +71 -0
  274. package/skills/oma-skill-creation/SKILL.md +84 -0
  275. package/skills/oma-skill-creation/resources/prompt-evaluation.md +36 -0
  276. package/skills/oma-skill-creation/resources/ssl-lite-template.md +108 -0
  277. package/skills/oma-skill-creation/resources/validation-checklist.md +101 -0
  278. package/skills/oma-slide/SKILL.md +277 -0
  279. package/skills/oma-slide/resources/animation-patterns.md +245 -0
  280. package/skills/oma-slide/resources/assets/deck-stage.js +514 -0
  281. package/skills/oma-slide/resources/assets/viewport-base.css +257 -0
  282. package/skills/oma-slide/resources/canva-integration.md +203 -0
  283. package/skills/oma-slide/resources/checklist.md +46 -0
  284. package/skills/oma-slide/resources/design-doctrine.md +260 -0
  285. package/skills/oma-slide/resources/fixed-stage.md +232 -0
  286. package/skills/oma-slide/resources/generation-protocol.md +393 -0
  287. package/skills/oma-slide/resources/native-pptx.md +84 -0
  288. package/skills/oma-slide/resources/selection-index.json +461 -0
  289. package/skills/oma-slide/resources/style-presets.LICENSE +10 -0
  290. package/skills/oma-slide/resources/style-presets.md +520 -0
  291. package/skills/oma-tf-infra/SKILL.md +201 -0
  292. package/skills/oma-tf-infra/resources/checklist.md +53 -0
  293. package/skills/oma-tf-infra/resources/cost-optimization.md +574 -0
  294. package/skills/oma-tf-infra/resources/error-playbook.md +68 -0
  295. package/skills/oma-tf-infra/resources/examples.md +38 -0
  296. package/skills/oma-tf-infra/resources/execution-protocol.md +129 -0
  297. package/skills/oma-tf-infra/resources/iso-42001-infra.md +229 -0
  298. package/skills/oma-tf-infra/resources/multi-cloud-examples.md +241 -0
  299. package/skills/oma-tf-infra/resources/policy-testing-examples.md +332 -0
  300. package/skills/oma-translation/SKILL.md +229 -0
  301. package/skills/oma-translation/resources/anti-ai-patterns.md +104 -0
  302. package/skills/oma-translation/resources/lang/_template.md +73 -0
  303. package/skills/oma-translation/resources/lang/en.md +123 -0
  304. package/skills/oma-translation/resources/lang/ja.md +274 -0
  305. package/skills/oma-translation/resources/lang/ko.md +228 -0
  306. package/skills/oma-translation/resources/lang/zh.md +285 -0
  307. package/skills/oma-translation/resources/style-skills.md +104 -0
  308. package/skills/oma-translation/resources/translation-rubric.md +126 -0
  309. package/skills/oma-video/SKILL.md +229 -0
  310. package/skills/oma-video/config/video-config.yaml +60 -0
  311. package/skills/oma-video/resources/checklist.md +26 -0
  312. package/skills/oma-video/resources/execution-protocol.md +122 -0
  313. package/skills/oma-video/resources/existing-media.md +185 -0
  314. package/skills/oma-video/resources/hyperframes-authoring/README.md +44 -0
  315. package/skills/oma-video/resources/hyperframes-authoring/demo.md +31 -0
  316. package/skills/oma-video/resources/hyperframes-authoring/explainer.md +10 -0
  317. package/skills/oma-video/resources/hyperframes-authoring/shorts.md +10 -0
  318. package/skills/oma-video/resources/motion-principles.md +81 -0
  319. package/skills/oma-video/resources/mpt/driver.py +301 -0
  320. package/skills/oma-video/resources/prompt-tips.md +75 -0
  321. package/skills/oma-video/resources/script-schema.md +81 -0
  322. package/skills/oma-video/resources/sound-design.md +127 -0
  323. package/skills/oma-video/resources/strudel/package.json +11 -0
  324. package/skills/oma-video/resources/strudel/page.html +87 -0
  325. package/skills/oma-video/resources/strudel/render.mjs +295 -0
  326. package/skills/oma-video/resources/vendor-matrix.md +124 -0
  327. package/skills/oma-voice/SKILL.md +249 -0
  328. package/skills/oma-voice/config/voice-config.yaml +30 -0
  329. package/skills/oma-voice/resources/audio-processing.md +119 -0
  330. package/skills/oma-voice/resources/checklist.md +47 -0
  331. package/skills/oma-voice/resources/execution-protocol.md +215 -0
  332. package/skills/oma-voice/resources/prompt-tips.md +43 -0
  333. package/skills/oma-voice/resources/voice-matrix.md +51 -0
  334. package/skills/oma-voice/resources/voicestudio.md +87 -0
@@ -0,0 +1,307 @@
1
+ ---
2
+ otel_spec: "1.x (stable API/SDK)"
3
+ otel_semconv: "1.43.0 (2026-07)"
4
+ ---
5
+
6
+ # Intent Classification Rules
7
+
8
+ ## Purpose
9
+
10
+ - Classify a user query into one of 7 intents to route to the right resources
11
+ - Used by Step 1 of `execution-protocol.md`
12
+ - This file is an **English-only intent classification reference**. Multi-language keyword detection (Korean, Japanese, Chinese, etc.) is owned by `.agents/hooks/core/triggers.json §oma-observability.keywords`; do not duplicate per-locale tokens here.
13
+
14
+ ## Classification Priority
15
+
16
+ 1. **Override flags**: always win, skip classification entirely (e.g., `--investigate`, `--tune`)
17
+ 2. **Keyword pattern matching**: scan query for intent-specific keywords
18
+ 3. **Signal detection**: contextual clues (tool names, error messages, metric names, cloud regions)
19
+ 4. **Fallback**: `investigate + tune` parallel when no clear signal
20
+
21
+ ## Override Flags
22
+
23
+ | Flag | Forced Intent |
24
+ |------|--------------|
25
+ | `--setup` | `setup` |
26
+ | `--migrate` | `migrate` |
27
+ | `--investigate` | `investigate` |
28
+ | `--alert` | `alert` |
29
+ | `--trace` | `trace` |
30
+ | `--tune` | `tune` |
31
+ | `--route` | `route` |
32
+
33
+ ---
34
+
35
+ ## The 7 Intents
36
+
37
+ ### Intent 1: `setup`
38
+
39
+ Bootstrap a new observability pipeline or instrument a new service from scratch.
40
+ Use when the user is starting fresh: no existing pipeline, first-time SDK integration, or onboarding a new environment.
41
+
42
+ #### Keywords
43
+
44
+ | Category | Tokens |
45
+ |----------|--------|
46
+ | Primary | setup, install, bootstrap, instrument, configure, onboard, initialize, start, enable, add, integrate, begin, getting started, first time |
47
+ | Synonyms | init, SDK setup, OTel setup, collector setup, agent install |
48
+
49
+ **Signals:**
50
+ - "How do I add OTel to ..." queries
51
+ - Service name + "for the first time"
52
+ - New environment or cluster name mentioned with no existing config
53
+
54
+ #### Example Queries
55
+
56
+ - "Set up OTel stack on our k8s cluster"
57
+ - "Instrument our Node.js backend with OTel"
58
+ - "How do I enable tracing on a new Spring Boot service?"
59
+
60
+ #### Primary Route
61
+
62
+ `resources/vendor-categories.md` → category selection; `resources/transport/collector-topology.md` for Kubernetes
63
+
64
+ #### Secondary Considerations
65
+
66
+ `resources/standards.md` for semconv requirements before first instrumentation commit
67
+
68
+ ---
69
+
70
+ ### Intent 2: `migrate`
71
+
72
+ Move from a legacy tool to a modern equivalent. Applies to logging agents, APM platforms, and deprecated CNCF projects.
73
+
74
+ #### Keywords
75
+
76
+ | Category | Tokens |
77
+ |----------|--------|
78
+ | Primary | migrate, migration, transition, move, replace, upgrade, modernize, switch, deprecate, port, convert, off-board, phase out |
79
+ | Synonyms | Fluentd → Fluent Bit, legacy APM → OTel, lift-and-shift, rip-and-replace |
80
+
81
+ **Signals:**
82
+ - Source tool name (Fluentd, New Relic, Datadog, old APM) + destination intent
83
+ - "Replace", "away from", "moving off of"
84
+ - Explicit migration requirements or measured resource/plugin constraints
85
+
86
+ #### Example Queries
87
+
88
+ - "Migrating Fluentd to Fluent Bit per CNCF guidance"
89
+ - "Move from New Relic to OpenTelemetry"
90
+ - "How do I port StatsD metrics to OTLP?"
91
+
92
+ #### Primary Route
93
+
94
+ `resources/vendor-categories.md §(h) Log Pipeline` (support and conversion notes); CNCF 2025-10 Fluentd migration guide
95
+
96
+ #### Secondary Considerations
97
+
98
+ `resources/transport/otlp-grpc-vs-http.md` for destination protocol selection during migration
99
+
100
+ ---
101
+
102
+ ### Intent 3: `investigate`
103
+
104
+ Production incident or bug root-cause analysis. Use when something is broken, degraded, or unexpectedly slow right now.
105
+
106
+ #### Keywords
107
+
108
+ | Category | Tokens |
109
+ |----------|--------|
110
+ | Primary | investigate, debug, diagnose, incident, outage, postmortem, forensics, root-cause, why, broken, failing, spike, degraded, 5xx, 403 storm, error rate, latency, slow, down, regression, N+1, slow query, connection pool, pool exhaustion, db span, memory leak, OOM, flame graph, stuck, WAF block, WAF false positive, firewall block, ruleset rollback, cascading failure, dependency outage, third-party outage, fail-closed, status page |
111
+ | Synonyms | RCA, postmortem, blameless review, p99 spike, tail latency, DB timeout, FP storm, edge 403, ruleset bump, third-party down |
112
+
113
+ **Signals:**
114
+ - HTTP status codes (5xx, 4xx) or error rate numbers
115
+ - Cloud region name mentioned with a problem symptom
116
+ - Service name + "suddenly", "again", "just started"
117
+ - Time window phrase ("since 14:00", "after deploy")
118
+
119
+ #### Example Queries
120
+
121
+ - "5xx spike in ap-northeast-2, need to find root cause"
122
+ - "Why is checkout service p99 high?"
123
+ - "Auth service started timing out after today's release; help"
124
+ - "Customers report 403s but our backend looks fine; check the WAF"
125
+ - "Stripe webhooks failing in bursts — is it us or a third-party outage?"
126
+
127
+ #### Primary Route
128
+
129
+ `resources/incident-forensics.md` (MRA + 6-dimension localization flow)
130
+
131
+ #### Secondary Considerations
132
+
133
+ `resources/signals/traces.md`, `resources/signals/logs.md`, `resources/boundaries/multi-tenant.md` (if single-tenant degradation pattern), `resources/layers/L7-application/waf.md` (if edge 403 storm / WAF FP suspected), `resources/boundaries/cross-application.md` (if third-party dependency outage suspected)
134
+
135
+ ---
136
+
137
+ ### Intent 4: `alert`
138
+
139
+ Define alerts, SLO burn-rate rules, or monitor configuration. Use when the user wants to be notified proactively before or during an incident.
140
+
141
+ #### Keywords
142
+
143
+ | Category | Tokens |
144
+ |----------|--------|
145
+ | Primary | alert, alarm, notification, burn-rate, SLO, SLI, SLA, threshold, page, warn, monitor, PrometheusRule, alerting rule, error budget, firing |
146
+ | Synonyms | burn rate alert, fast burn, slow burn, PD (PagerDuty), firing rule, recording rule |
147
+
148
+ **Signals:**
149
+ - SLO/SLI/SLA acronyms
150
+ - "Alert when ...", "notify me if ..."
151
+ - PrometheusRule, Alertmanager, or burn-rate framing
152
+ - Error budget percentage mentioned
153
+
154
+ #### Example Queries
155
+
156
+ - "Set up SLO burn-rate alert for payment service"
157
+ - "Need alerts when error budget is burning fast"
158
+ - "How do I configure a slow-burn SLO alert in Grafana?"
159
+
160
+ #### Primary Route
161
+
162
+ `resources/boundaries/slo.md`; `resources/observability-as-code.md` (PrometheusRule CRD, OpenSLO YAML)
163
+
164
+ #### Secondary Considerations
165
+
166
+ `resources/meta-observability.md §Section F` for meta-observability pipeline health alerts
167
+
168
+ ---
169
+
170
+ ### Intent 5: `trace`
171
+
172
+ Design or debug distributed tracing: propagators, baggage, cross-service context, or mesh trace continuity.
173
+
174
+ #### Keywords
175
+
176
+ | Category | Tokens |
177
+ |----------|--------|
178
+ | Primary | trace, tracing, propagator, traceparent, tracestate, baggage, span, distributed, context propagation, correlation, W3C, X-Amzn-Trace-Id, context break, missing spans |
179
+ | Synonyms | W3C Trace Context, B3, Zipkin, X-Ray trace, OpenTelemetry tracing, end-to-end trace |
180
+
181
+ **Signals:**
182
+ - "Trace breaks", "missing parent span", "trace not showing"
183
+ - Propagator format names (W3C, B3, X-Ray, Jaeger)
184
+ - Mesh or gateway name + trace context question
185
+ - Baggage field name mentioned
186
+
187
+ #### Example Queries
188
+
189
+ - "Our traces break at the Istio ingress; how to propagate context?"
190
+ - "Design baggage for multi-tenant trace correlation"
191
+ - "How do I bridge AWS X-Ray trace headers into W3C Trace Context?"
192
+
193
+ #### Primary Route
194
+
195
+ `resources/boundaries/cross-application.md` (propagator matrix); `resources/layers/mesh.md` (zero-code auto-instrumentation)
196
+
197
+ #### Secondary Considerations
198
+
199
+ `resources/signals/privacy.md` (baggage PII rules; no user identifiers in traceparent/baggage without redaction)
200
+
201
+ ---
202
+
203
+ ### Intent 6: `tune`
204
+
205
+ Optimize performance, reduce cost, tame cardinality, configure sampling, or fix throughput bottlenecks in the telemetry pipeline.
206
+
207
+ #### Keywords
208
+
209
+ | Category | Tokens |
210
+ |----------|--------|
211
+ | Primary | tune, optimize, performance, throughput, cost, cardinality, sampling, budget, reduce, bandwidth, MTU, rate-limit, too much, expensive, overhead, head sampling, tail sampling, drop |
212
+ | Synonyms | high cardinality, metric explosion, bill shock, DPM (data points per minute), ingest cost, backpressure |
213
+
214
+ **Signals:**
215
+ - Cost number with "jumped", "tripled", "too high"
216
+ - Cardinality, label explosion, or DPM framing
217
+ - UDP MTU or OTLP throughput question
218
+ - Sampling ratio or rate-limit configuration
219
+
220
+ #### Example Queries
221
+
222
+ - "Datadog bill jumped 3x: need to reduce cardinality"
223
+ - "UDP statsd throughput is low at peak"
224
+ - "How do I set a cost-aware tail sampling policy for the checkout service?"
225
+
226
+ #### Primary Route
227
+
228
+ `resources/transport/` (all 4 files: `udp-statsd-mtu.md`, `otlp-grpc-vs-http.md`, `collector-topology.md`, `sampling-recipes.md`); `resources/meta-observability.md §Cardinality`
229
+
230
+ #### Secondary Considerations
231
+
232
+ `resources/vendor-categories.md` for alternative tool selection when current vendor is causing the cost spike
233
+
234
+ ---
235
+
236
+ ### Intent 7: `route`
237
+
238
+ Multi-tenant, multi-cloud, or multi-region telemetry routing, isolation, data residency, or federation.
239
+
240
+ #### Keywords
241
+
242
+ | Category | Tokens |
243
+ |----------|--------|
244
+ | Primary | route, routing, multi-tenant, multi-cloud, region, residency, isolation, segregation, gateway, fan-out, federation, data locality, GDPR residency, pipeline split, tenant routing |
245
+ | Synonyms | data sovereignty, geo-fencing, per-tenant collector, routing_connector, OTel Collector routing |
246
+
247
+ **Signals:**
248
+ - Specific cloud region name + compliance or residency requirement
249
+ - "Tenant A vs Tenant B" pipeline separation
250
+ - Multiple collectors or clusters mentioned with routing context
251
+ - GDPR, PIPA, or data sovereignty regulation cited
252
+
253
+ #### Example Queries
254
+
255
+ - "Route tenant A telemetry to ap-northeast-2 only (GDPR residency)"
256
+ - "Federated collectors across 3 k8s clusters"
257
+ - "How do I fan-out logs to two different Loki stacks by tenant tier?"
258
+
259
+ #### Primary Route
260
+
261
+ `resources/boundaries/multi-tenant.md`; `resources/transport/collector-topology.md`
262
+
263
+ #### Secondary Considerations
264
+
265
+ `resources/boundaries/cross-application.md` for trust boundary enforcement when routing crosses application domains
266
+
267
+ ---
268
+
269
+ ## Ambiguous / Fallback
270
+
271
+ When no intent is detected with confidence:
272
+
273
+ - Default to `investigate + tune` in parallel (observability work is often both diagnosing a problem and reducing noise)
274
+ - Present both result sets; let the user pick
275
+ - If automation is critical (e.g., CI pipeline), require the user to pass an explicit flag
276
+
277
+ **Ambiguity resolution examples:**
278
+
279
+ | Query | Detected Intent | Reason |
280
+ |-------|----------------|--------|
281
+ | "OTel Collector configuration" | `setup` (or `tune` if already deployed) | "configure" matches setup; check for existing deployment context |
282
+ | "p99 high, why?" | `investigate` | Problem symptom + causal question |
283
+ | "How do I sample?" | `tune` | Sampling = throughput/cost optimization |
284
+ | "Tenant data isolation" | `route` | Isolation + tenant framing |
285
+ | "SLO alert setup" | `alert` | SLO + alarm keywords |
286
+ | "Want to drop Fluentd" | `migrate` | Explicit replacement intent |
287
+ | "Istio trace propagation" | `trace` | Mesh + trace context propagation |
288
+ | "Something off with OTel" (no detail) | `investigate + tune` fallback | No specific signal; dispatch parallel |
289
+
290
+ ---
291
+
292
+ ## Matching Algorithm
293
+
294
+ 1. Lower-case both query and keyword list
295
+ 2. For each intent, count keyword hits (whole-word boundary match)
296
+ 3. Pick the intent with the highest score
297
+ 4. On a tie, apply tiebreak priority: `investigate` > `setup` > `tune` > `alert` > `trace` > `route` > `migrate` (ordered by business-incident impact)
298
+ 5. If all scores are zero: fall back to `investigate + tune` parallel with a clarification prompt
299
+
300
+ ---
301
+
302
+ ## Integration with Hooks
303
+
304
+ - **Multi-language keyword detection** at `UserPromptSubmit` is owned by `.agents/hooks/core/triggers.json §oma-observability.keywords` (entries for `*`, `en`, `ko`, `ja`, `zh`). That file is the single source of truth for activation tokens.
305
+ - This file documents the **English intent classification rules** consumed by `resources/execution-protocol.md §Step 1` once the skill has been activated.
306
+ - Override flags (`--investigate`, etc.) bypass keyword scoring entirely and force the named intent.
307
+ - When adding tokens for a new domain (e.g., WAF, cascading failure), update both: (a) English tokens in the relevant intent's Keywords table here, and (b) per-locale activation tokens in `triggers.json`.
@@ -0,0 +1,281 @@
1
+ ---
2
+ otel_spec: "1.x (stable API/SDK)"
3
+ otel_semconv: "1.43.0 (2026-07)"
4
+ ---
5
+
6
+ # L3-Network Layer Observability
7
+
8
+ ## 1. Scope
9
+
10
+ **In scope**: IP routing, VPC flow logs, ICMP (reachability and PMTUD), Path MTU Discovery, and; for organizations with their own Autonomous System Number (ASN); BGP/BMP inter-AS routing monitoring.
11
+
12
+ **Out of scope**: L1 physical (NIC, cable, IPMI) and L2 data-link (MAC, VLAN, STP). Those domains belong to vendor DCIM tooling (Nlyte, Sunbird, Device42). See `../SKILL.md §Out of Scope` for the full boundary declaration.
13
+
14
+ **SaaS / cloud-native teams**: the primary artifact is cloud-provider VPC flow logs (Section 3). BGP/BMP (Section 6) applies only to ISPs, CDNs, and organizations that announce their own prefixes. SaaS-only teams using only VPC routing can skip Section 6.
15
+
16
+ ---
17
+
18
+ ## 2. OTel Semantic Conventions Relevant to L3
19
+
20
+ The following attributes from the `network.*` group are **Stable** (semconv 1.43.0) and safe for production instrumentation. Reference: `../standards.md §3` for the full stability tier table.
21
+
22
+ | Attribute | Type | Example values | Notes |
23
+ |-----------|------|----------------|-------|
24
+ | `network.type` | string enum | `ipv4`, `ipv6` | Stable; always set on socket-level spans |
25
+ | `network.transport` | string enum | `tcp`, `udp`, `quic` | Stable; distinguish protocol at L4 framing |
26
+ | `network.local.address` | string | `10.0.1.5` | Stable; local IP of the socket |
27
+ | `network.local.port` | int | `443` | Stable; local port |
28
+ | `network.peer.address` | string | `192.0.2.10` | Stable; remote IP; treat as PII, see Section 7 |
29
+ | `network.peer.port` | int | `8080` | Stable; remote port |
30
+ | `network.protocol.name` | string | `http`, `grpc` | Stable; application protocol atop L3/L4 |
31
+
32
+ Note: `network.connection.*` (e.g., `network.connection.type`, `network.connection.subtype`) are **Development** tier and should not be used in production SLOs. Reference: <https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/>
33
+
34
+ OTel does not define BGP-specific semconv. BGP monitoring uses a separate pipeline (Section 6) that is explicitly outside the OTLP ecosystem.
35
+
36
+ ---
37
+
38
+ ## 3. Cloud VPC Flow Logs
39
+
40
+ VPC flow logs capture IP-layer traffic metadata: source address, destination address, bytes, packets, protocol, and firewall action. They are the primary L3 observability artifact for cloud-native teams.
41
+
42
+ ### 3.1 Per-Cloud Collection Pipeline
43
+
44
+ | Cloud | Flow log source | Recommended OTel receiver | Key config |
45
+ |-------|----------------|--------------------------|------------|
46
+ | AWS | VPC Flow Logs → CloudWatch Logs or S3 | `cloudwatchlogsreceiver` or `filelogreceiver` (S3 path) | Enable `pkt-srcaddr`, `pkt-dstaddr`, `bytes`, `packets`, `action`, `protocol` fields in flow log format v3+ |
47
+ | GCP | VPC Flow Logs → Cloud Logging | `googlecloudpubsubreceiver` (via Pub/Sub export sink) | Configure aggregation interval (5s–15min); lower interval increases cost |
48
+ | Azure | NSG Flow Logs v2 → Storage Account → Event Hubs | `kafkareceiver` (Event Hubs uses Kafka protocol) | Enable Traffic Analytics for enriched flow data |
49
+
50
+ References:
51
+ - AWS: <https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html>
52
+ - GCP: <https://cloud.google.com/vpc/docs/flow-logs>
53
+ - Azure: <https://learn.microsoft.com/azure/network-watcher/nsg-flow-logs-overview>
54
+
55
+ ### 3.2 Key Flow Log Fields
56
+
57
+ | Field | AWS name | GCP name | Azure name | Notes |
58
+ |-------|----------|----------|------------|-------|
59
+ | Source IP | `srcaddr` | `src_ip` | `sourceAddress` | PII; see Section 7 |
60
+ | Destination IP | `dstaddr` | `dest_ip` | `destinationAddress` | PII; see Section 7 |
61
+ | Source port | `srcport` | `src_port` | `sourcePort` | |
62
+ | Destination port | `dstport` | `dest_port` | `destinationPort` | |
63
+ | Protocol | `protocol` | `protocol` | `protocol` | IANA protocol number |
64
+ | Bytes | `bytes` | `bytes_sent` | `bytesForwardedDenied` + `bytesForwardedAllowed` | Used for egress cost attribution |
65
+ | Packets | `packets` | `packets_sent` | `packetsForwardedAllowed` | |
66
+ | Firewall action | `action` | N/A (use firewall logs) | `trafficType` | `ACCEPT` / `REJECT`; audit signal |
67
+ | Start/end time | `start`, `end` | `start_time`, `end_time` | `startTime`, `endTime` | |
68
+
69
+ ### 3.3 Privacy Note
70
+
71
+ `srcaddr` and `dstaddr` (and their equivalents) are IP addresses. Under GDPR Article 4(1) and PIPA, IP addresses linked to natural persons are personal data. Before long-term retention:
72
+
73
+ - Truncate the last octet for IPv4 (e.g., `203.0.113.0/24` prefix preservation).
74
+ - Hash with a rotating salt (SHA-256 minimum) for per-flow pseudonymization.
75
+ - Do not store raw IP addresses in shared observability backends unless the tenant has explicit lawful basis.
76
+
77
+ Cross-reference: `../signals/privacy.md §IP addresses` for the full masking decision tree.
78
+
79
+ ---
80
+
81
+ ## 4. PMTUD: Path MTU Discovery
82
+
83
+ ### 4.1 Mechanism
84
+
85
+ Path MTU Discovery (PMTUD, RFC 1191 for IPv4; RFC 8201 for IPv6) allows a sender to discover the maximum transmission unit supported along an end-to-end path without fragmentation. RFC 8899 defines Datagram PLPMTUD (DPLPMTUD), a transport-level variant used by QUIC and SCTP that does not rely on ICMP.
86
+
87
+ IPv4 PMTUD relies on ICMP Type 3 Code 4 ("Fragmentation Needed, DF set") messages returned by intermediate routers when a packet is too large and the DF (Don't Fragment) bit is set. The sender reduces its segment size upon receiving this ICMP message.
88
+
89
+ ### 4.2 PMTUD Black Hole
90
+
91
+ **Root cause**: firewall rules that block ICMP Type 3 Code 4 prevent the sender from receiving the path MTU signal. The sender continues transmitting oversized segments that are silently dropped.
92
+
93
+ **Symptom pattern**:
94
+ - Small payloads (< 576 bytes) succeed; large payloads (> path MTU) stall or fail.
95
+ - TCP connection establishes (SYN/SYN-ACK are small) but bulk data transfer hangs.
96
+ - HTTP responses for large objects time out; health checks (small packets) pass.
97
+
98
+ **Detection in flow logs**: look for sessions with normal packet counts but abnormally low byte counts per session; correlate with application-layer timeout logs.
99
+
100
+ **Remediation options**:
101
+ 1. **MSS clamping** (TCP Maximum Segment Size): configure at the firewall or router to clamp MSS to `interface_MTU - 40` (IPv4) or `interface_MTU - 60` (IPv6). This is the preferred fix for VPN and tunnel endpoints.
102
+ 2. **Explicit MTU pinning**: set the outgoing interface MTU on the host to a conservative value (e.g., 1452 for PPPoE, 1422 for GRE over IPSec).
103
+ 3. **ICMP passthrough**: allow ICMP Type 3 Code 4 through security groups and firewalls. Verify with: `ping -M do -s 1472 <destination>`.
104
+
105
+ Cross-reference: `../transport/udp-statsd-mtu.md` for related UDP MTU thresholds (1472 IPv4, 1452 IPv6, 8192 UDS) that interact with the same path MTU constraints.
106
+
107
+ ---
108
+
109
+ ## 5. ICMP Observability
110
+
111
+ ### 5.1 Active Monitoring Tools
112
+
113
+ | Tool | Signal type | Use case |
114
+ |------|------------|---------|
115
+ | Blackbox Exporter (Prometheus) | ICMP echo probe | Synthetic availability from a vantage point |
116
+ | SmokePing | ICMP RTT time series | Long-term latency trend and packet-loss distribution |
117
+ | `ping` (scripted) | ICMP echo RTT | Ad hoc reachability during incident investigation |
118
+ | `traceroute` / `mtr` | ICMP TTL-exceeded path | Hop-by-hop latency and packet-loss localization |
119
+
120
+ ### 5.2 Cloud Provider ICMP Constraints
121
+
122
+ | Cloud | ICMP behavior | Notes |
123
+ |-------|--------------|-------|
124
+ | AWS | ICMP echo blocked by default on security groups | Explicitly allow inbound ICMP Type 8 (echo request) for Blackbox Exporter probes to work |
125
+ | GCP | ICMP echo allowed by default in default VPC firewall rules | Review custom VPC firewall rules |
126
+ | Azure | ICMP echo allowed; NSG allows by default for same-VNet | Blocked at NSG if explicit deny rule added |
127
+
128
+ ICMP Rate limits: all major clouds rate-limit ICMP responses from managed infrastructure (e.g., NAT gateways, load balancers). Do not interpret ICMP loss at these endpoints as a network fault; correlate with TCP-level application metrics.
129
+
130
+ ### 5.3 ICMP in OTel
131
+
132
+ OTel does not define ICMP-specific semconv. Use the Blackbox Exporter's native Prometheus metrics (`probe_success`, `probe_duration_seconds`, `probe_icmp_reply_hop_limit`) and scrape them via the OTel Collector `prometheusreceiver`. Tag probes with `network.peer.address` for correlation.
133
+
134
+ ---
135
+
136
+ ## 6. BGP / Inter-AS Routing (Advanced Subsection)
137
+
138
+ **Scope boundary**: this subsection applies to **ISPs, CDNs, and organizations that own and operate an Autonomous System (ASN)** and announce their own IP prefixes via BGP. SaaS-only teams that rely entirely on cloud-provider VPC routing can skip this subsection.
139
+
140
+ OTel does not define BGP semconv. BGP monitoring is a parallel pipeline ecosystem documented here for completeness. It does not use OTLP as the transport.
141
+
142
+ ### 6.1 BGP Monitoring Protocol (BMP)
143
+
144
+ BMP (RFC 7854, <https://www.rfc-editor.org/rfc/rfc7854>) is the standard protocol for exporting real-time BGP session state, RIB (Routing Information Base) snapshots, and route change events from a BGP speaker to a monitoring collector.
145
+
146
+ **BMP exporters** (BGP speakers that support BMP):
147
+
148
+ | Platform | BMP support |
149
+ |----------|------------|
150
+ | FRRouting (OSS) | Native BMP export (`bmp` config stanza) |
151
+ | Cisco IOS-XR | Native BMP (`router bgp ... bmp server`) |
152
+ | Juniper Junos | Native BMP (`protocols bgp monitoring-protocol bmp`) |
153
+ | BIRD 2.x | BMP via `bmp` protocol block |
154
+
155
+ ### 6.2 BMP Collectors and Aggregators
156
+
157
+ | Tool | Role | Notes |
158
+ |------|------|-------|
159
+ | OpenBMP | Open-source BMP collector + PostgreSQL/ClickHouse backend | Reference implementation; supports MOAS detection |
160
+ | pmacct | Multi-purpose network accounting; BMP + BGP support | Used at large ISPs; outputs to Kafka, InfluxDB, Elasticsearch |
161
+ | SNAS (Streaming Network Analytics System) | BMP → Kafka pipeline; CAIDA-affiliated | Suitable for research and large-scale ISP deployments |
162
+ | GoBMP | Lightweight Go BMP collector | Good for parsing and forwarding to custom pipelines |
163
+
164
+ ### 6.3 Recommended Pipeline
165
+
166
+ ```
167
+ BGP Speaker (FRR / IOS-XR / Junos)
168
+ | BMP (RFC 7854, TCP port 11019)
169
+ v
170
+ BMP Collector (OpenBMP / pmacct / GoBMP)
171
+ | Kafka topic: bgp.updates
172
+ v
173
+ Stream Processor (Kafka Streams / Flink)
174
+ | enrichment: RPKI ROA lookup, MOAS detection
175
+ v
176
+ ClickHouse (columnar storage for BGP RIB history)
177
+ |
178
+ v
179
+ Grafana (BGP topology dashboards, hijack alerts)
180
+ ```
181
+
182
+ This pipeline is **not OTel**. It operates independently of OTLP. The two pipelines (OTel metrics/logs/traces and BGP BMP) share only the storage and visualization layer (ClickHouse + Grafana).
183
+
184
+ ### 6.4 Security Observability: Hijack and Route Leak Detection
185
+
186
+ #### BGP Hijack: MOAS Detection
187
+
188
+ A BGP hijack occurs when a rogue AS announces a prefix it does not legitimately own, diverting traffic. Multiple Origin AS (MOAS) detection identifies prefixes announced by more than one origin AS simultaneously.
189
+
190
+ Detection: compare real-time BMP route updates against a known-good origin AS database (your own RPKI ROAs + IRR records). Alert on any observed origin AS that does not match the expected set.
191
+
192
+ Tools: OpenBMP includes MOAS detection; BGPalerter (<https://github.com/nttgin/BGPalerter>) provides real-time alerting on MOAS, route leaks, and more-specific prefix announcements.
193
+
194
+ #### Route Leaks
195
+
196
+ A route leak occurs when a route received from one BGP neighbor is re-announced to another neighbor in violation of routing policy (e.g., customer routes leaked to a peer). Detection requires policy-aware analysis of AS_PATH attributes.
197
+
198
+ Tool: ARTEMIS (<https://github.com/FORTH-ICS-INSPIRE/artemis>) provides automated detection and mitigation orchestration for both hijacks and route leaks.
199
+
200
+ #### RPKI-ROV (Route Origin Validation)
201
+
202
+ RPKI (Resource Public Key Infrastructure) and ROA (Route Origin Authorization) records bind a prefix to an authorized origin AS with a cryptographic signature. ROV (Route Origin Validation) is the process of checking incoming BGP announcements against the RPKI trust anchor.
203
+
204
+ **Verify your own prefixes**: ensure all prefixes you announce have valid ROA records in your RIR (ARIN, RIPE NCC, APNIC, LACNIC, AFRINIC). An announced prefix without an ROA is marked "Not Found" by downstream validators; not "Invalid", but not cryptographically anchored either.
205
+
206
+ **Enforce ROV on your router**: configure BGP to drop or de-prefer routes with RPKI Invalid status. Reference NIST SP 800-189 (<https://csrc.nist.gov/publications/detail/sp/800-189/final>) for deployment guidance.
207
+
208
+ **Tools**: Cloudflare Radar RPKI dashboard (<https://radar.cloudflare.com/routing/rpki>) provides global visibility into ROA coverage and RPKI Invalid route counts by ASN.
209
+
210
+ ### 6.5 Public BGP Feeds for Baselining
211
+
212
+ | Feed | Provider | Use |
213
+ |------|----------|-----|
214
+ | RIPE RIS (Routing Information Service) | RIPE NCC | Global BGP route collector data; MRT format |
215
+ | RouteViews | University of Oregon / CAIDA | Historical BGP table snapshots; MRT format |
216
+ | BGPStream | CAIDA | Streaming API over RIPE RIS + RouteViews; Python/C library |
217
+ | Cloudflare Radar | Cloudflare | Public BGP anomaly detection; hijack and outage notifications |
218
+
219
+ Use these feeds to baseline what your prefixes look like to the global routing table and to cross-check your own RPKI ROA coverage.
220
+
221
+ ---
222
+
223
+ ## 7. Matrix Cross-Reference (L3 Row)
224
+
225
+ The L3 row of `../matrix.md` covers 28 cells (4 boundaries × 7 signals). The following summarizes the coverage status and primary artifacts:
226
+
227
+ | Boundary | metrics | logs | traces | profiles | cost | audit | privacy |
228
+ |----------|---------|------|--------|----------|------|-------|---------|
229
+ | multi-tenant | PASS per-tenant egress byte/packet counters from VPC flow logs | PASS VPC flow stream tagged by tenant CIDR | PARTIAL trace-ID egress tagging only; no native L3 trace context | N/A | PARTIAL egress byte attribution as cost proxy | PASS VPC flow audit trail tagged by tenant | PARTIAL IP addresses are PII (GDPR/PIPA); mask before retention |
230
+ | cross-application | PASS inter-VPC peering flow metrics | PASS VPC flow logs across peering / transit gateway | PARTIAL socket 5-tuple correlation to L7 spans only | N/A | PARTIAL cross-VPC egress cost proxy | PASS inter-VPC flow audit for SOC2 network controls | PARTIAL source/destination IPs crossing app boundary are PII candidates |
231
+ | slo | N/A; SLO belongs at L7 | N/A | N/A | N/A | N/A | N/A | N/A |
232
+ | release | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
233
+
234
+ Notes:
235
+ - **SLO cells**: all N/A. SLO error budgets are computed from L7 application metrics. If an L3 event (BGP hijack, PMTUD black hole) causes an SLO burn, the causal chain surfaces as an L7 error-rate spike first. Investigate via `../incident-forensics.md` 6-dimension localization.
236
+ - **Audit cells**: VPC flow logs with `ACCEPT`/`REJECT` actions satisfy SOC2 CC6.6 (network access control) audit evidence requirements. Store in WORM-compatible storage (S3 Object Lock, GCS retention policy, Azure immutable blob) per `../signals/audit.md`.
237
+ - **Privacy cells**: cross-reference `../signals/privacy.md §IP addresses` for the masking decision tree. The threshold for masking versus pseudonymization depends on the data's correlation potential with other identifiers.
238
+
239
+ ---
240
+
241
+ ## 8. Anti-Patterns
242
+
243
+ The following are candidates for `../anti-patterns.md §Section H` (L3-specific):
244
+
245
+ | Anti-pattern | Risk | Remediation |
246
+ |-------------|------|------------|
247
+ | Own-ASN BGP hijack left unmonitored | Prefix hijack undetected for hours or days; traffic silently diverted | Deploy BGPalerter or ARTEMIS with MOAS detection; subscribe to Cloudflare Radar alerts for your prefixes |
248
+ | Raw IP addresses retained in logs without redaction | GDPR Article 5(1)(c) data minimization violation; 4% global turnover fine risk | Truncate last octet on ingest; use rotating-salt SHA-256 for pseudonymization; see `../signals/privacy.md` |
249
+ | RPKI-ROV not configured on advertised prefixes | Rogue origin AS can announce your prefixes without RPKI Invalid signal to downstream validators | Create ROA records at your RIR; enable ROV enforcement on border routers |
250
+ | PMTUD black hole left uncorrected | Large TCP transfers stall; health checks pass (small packets), masking the problem | Enable MSS clamping at VPN/tunnel endpoints; allow ICMP Type 3 Code 4 through firewalls |
251
+
252
+ ---
253
+
254
+ ## 9. References
255
+
256
+
257
+ Internal cross-references:
258
+
259
+ - `../standards.md §3`: OTel semconv stability tiers
260
+ - `../matrix.md §Layer: L3-network`; full 28-cell coverage map
261
+ - `../signals/privacy.md §IP addresses`: IP address masking decision tree
262
+ - `../signals/audit.md`: WORM storage and SOC2 audit trail requirements
263
+ - `../signals/cost.md §egress attribution`: L3 egress byte cost proxy
264
+ - `../transport/udp-statsd-mtu.md`: UDP MTU thresholds (1472/1452/1432/8192/16K)
265
+ - `../incident-forensics.md`: 6-dimension localization when L3 event causes L7 SLO burn
266
+
267
+ ## References
268
+
269
+ - RFC 7854: BGP Monitoring Protocol (BMP): <https://www.rfc-editor.org/rfc/rfc7854>
270
+ - RFC 1191: Path MTU Discovery (IPv4): <https://www.rfc-editor.org/rfc/rfc1191>
271
+ - RFC 8201: Path MTU Discovery for IPv6: <https://www.rfc-editor.org/rfc/rfc8201>
272
+ - RFC 8899: Datagram PLPMTUD (used by QUIC/SCTP): <https://www.rfc-editor.org/rfc/rfc8899>
273
+ - RFC 6811: BGP Prefix Origin Validation (RPKI-ROV): <https://www.rfc-editor.org/rfc/rfc6811>
274
+ - IANA ICMP Type registry: <https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml>
275
+ - IANA protocol numbers: <https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml>
276
+ - NIST SP 800-189 (RPKI deployment): <https://csrc.nist.gov/publications/detail/sp/800-189/final>
277
+ - Cloudflare Radar (public BGP + RPKI): <https://radar.cloudflare.com/routing>
278
+ - OTel network semconv registry: <https://opentelemetry.io/docs/specs/semconv/attributes-registry/network/>
279
+ - AWS VPC Flow Logs: <https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html>
280
+ - GCP VPC Flow Logs: <https://cloud.google.com/vpc/docs/flow-logs>
281
+ - Azure NSG Flow Logs: <https://learn.microsoft.com/azure/network-watcher/nsg-flow-logs-overview>