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,372 @@
1
+ # Release Boundary
2
+
3
+ ## 1. Scope
4
+
5
+ The release boundary is the **temporal boundary between versions of a service**; the window
6
+ where new code enters production and either stabilizes or is rolled back.
7
+
8
+ Covers: progressive delivery strategies, Flagger canary analysis, Argo Rollouts, OpenFeature
9
+ feature flags, GitOps engine reconcile observability, and Kubernetes operator reconcile metrics.
10
+
11
+ Out of scope: SLI/SLO definitions and error budget math (see `slo.md`); dashboard layout
12
+ and code (see `../observability-as-code.md`); post-incident timelines (see `../incident-forensics.md`).
13
+
14
+ This boundary **consumes** SLI/SLO metrics as promotion gates; it does not define SLOs.
15
+
16
+ ---
17
+
18
+ ## 2. Progressive Delivery Strategies
19
+
20
+ | Strategy | Traffic split | Blast radius | Metric feedback speed | When to use |
21
+ |----------|--------------|-------------|----------------------|-------------|
22
+ | **Blue/Green** | Full switch | High | Fast (all traffic) | Low-frequency, reversible deploys |
23
+ | **Canary** | Gradual % shift | Low to high | Progressive | Most stateless services |
24
+ | **A/B testing** | Cohort split | Low | Slow (UX signal) | Product/UX variant evaluation |
25
+
26
+ Choose based on: blast radius tolerance × metric feedback speed. Canary is the default
27
+ recommendation for services with Prometheus SLI coverage.
28
+
29
+ ---
30
+
31
+ ## 3. Flagger (CNCF Graduated, part of Flux)
32
+
33
+ Source: <https://flagger.app>
34
+
35
+ Flagger automates canary promotion and rollback decisions using Prometheus, Datadog, or
36
+ NewRelic metric queries. It integrates natively with Flux and supports any service mesh or
37
+ ingress (Istio, Linkerd, Nginx, Contour).
38
+
39
+ **Feedback loop:** Flagger samples metrics on a configurable interval (30s–60s). If the
40
+ metric breaches the threshold for N consecutive samples (`failureThreshold`), it rolls back.
41
+ Promotion requires all metric checks to pass for the full `iterations` count.
42
+
43
+ ```yaml
44
+ # Flagger Canary CR — canary analysis referencing PromQL SLI
45
+ apiVersion: flagger.app/v1beta1
46
+ kind: Canary
47
+ metadata:
48
+ name: checkout
49
+ namespace: prod
50
+ spec:
51
+ targetRef:
52
+ apiVersion: apps/v1
53
+ kind: Deployment
54
+ name: checkout
55
+ progressDeadlineSeconds: 600
56
+ service:
57
+ port: 8080
58
+ analysis:
59
+ interval: 60s # sample every 60 seconds
60
+ threshold: 5 # max failed checks before rollback
61
+ maxWeight: 50 # max canary traffic weight (%)
62
+ stepWeight: 10 # increment per successful check
63
+ metrics:
64
+ - name: error-rate
65
+ templateRef:
66
+ name: error-rate
67
+ namespace: flagger-system
68
+ thresholdRange:
69
+ max: 1 # fail if error rate > 1%
70
+ interval: 60s
71
+ - name: latency-p99
72
+ templateRef:
73
+ name: latency
74
+ namespace: flagger-system
75
+ thresholdRange:
76
+ max: 500 # fail if p99 > 500ms
77
+ interval: 60s
78
+ ---
79
+ apiVersion: flagger.app/v1beta1
80
+ kind: MetricTemplate
81
+ metadata:
82
+ name: error-rate
83
+ namespace: flagger-system
84
+ spec:
85
+ provider:
86
+ type: prometheus
87
+ address: http://prometheus.monitoring:9090
88
+ query: |
89
+ sum(rate(http_requests_total{
90
+ namespace="{{ namespace }}",
91
+ service="{{ target }}",
92
+ status=~"5.."
93
+ }[{{ interval }}]))
94
+ /
95
+ sum(rate(http_requests_total{
96
+ namespace="{{ namespace }}",
97
+ service="{{ target }}"
98
+ }[{{ interval }}])) * 100
99
+ ```
100
+
101
+ Cross-ref `slo.md §3` for the full SLI PromQL patterns used as the canary threshold source.
102
+
103
+ ---
104
+
105
+ ## 4. Argo Rollouts
106
+
107
+ Source: <https://argoproj.github.io/rollouts>
108
+
109
+ Argo Rollouts integrates with Argo CD for GitOps-native progressive delivery. Supports
110
+ canary, blue-green, and experiment steps. `AnalysisTemplate` CRD gates promotion with
111
+ metric-based pass/fail.
112
+
113
+ ```yaml
114
+ # Argo Rollout — canary with AnalysisTemplate reference
115
+ apiVersion: argoproj.io/v1alpha1
116
+ kind: Rollout
117
+ metadata:
118
+ name: checkout
119
+ spec:
120
+ replicas: 5
121
+ strategy:
122
+ canary:
123
+ steps:
124
+ - setWeight: 20
125
+ - pause: { duration: 2m }
126
+ - analysis:
127
+ templates:
128
+ - templateName: error-rate-check
129
+ - setWeight: 50
130
+ - pause: { duration: 5m }
131
+ - analysis:
132
+ templates:
133
+ - templateName: error-rate-check
134
+ canaryService: checkout-canary
135
+ stableService: checkout-stable
136
+ ---
137
+ apiVersion: argoproj.io/v1alpha1
138
+ kind: AnalysisTemplate
139
+ metadata:
140
+ name: error-rate-check
141
+ spec:
142
+ metrics:
143
+ - name: error-rate
144
+ interval: 60s
145
+ successCondition: result[0] < 1.0 # < 1% error rate
146
+ failureLimit: 3
147
+ provider:
148
+ prometheus:
149
+ address: http://prometheus.monitoring:9090
150
+ query: |
151
+ sum(rate(http_requests_total{
152
+ job="checkout-canary",
153
+ status=~"5.."
154
+ }[5m]))
155
+ /
156
+ sum(rate(http_requests_total{
157
+ job="checkout-canary"
158
+ }[5m])) * 100
159
+ ```
160
+
161
+ ---
162
+
163
+ ## 5. Feature Flags via OpenFeature (CNCF Incubating, 2023-11-21)
164
+
165
+ Source: <https://openfeature.dev> | CNCF graduation: <https://www.cncf.io/projects/openfeature/>
166
+
167
+ OpenFeature defines a vendor-agnostic SDK specification for feature flag evaluation via the
168
+ **OFREP** (OpenFeature Remote Evaluation Protocol). The SDK core is provider-agnostic;
169
+ teams swap providers without changing application code.
170
+
171
+ **Supported providers:** LaunchDarkly, Flagsmith, GrowthBook, Unleash, ConfigCat, Harness FF.
172
+
173
+ **Evaluation context** carries targeting attributes:
174
+
175
+ | Attribute | Example | Use |
176
+ |-----------|---------|-----|
177
+ | `user.id` | `usr_abc123` | Per-user targeting |
178
+ | `tenant.id` | `org_xyz` | Tenant-gated rollout |
179
+ | `environment` | `production` | Environment guard |
180
+ | `app.version` | `2.4.1` | Version-gated flag |
181
+
182
+ Integration with Flagger/Rollouts: use feature flags to gate traffic routing at the
183
+ application layer while Flagger controls infrastructure-level traffic weight.
184
+
185
+ ---
186
+
187
+ ## 6. Observing Feature Flag Evaluations
188
+
189
+ OTel semantic conventions: `feature_flag.*` (Release Candidate as of semconv 1.43.0).
190
+
191
+ Key span attributes emitted on each flag evaluation:
192
+
193
+ ```
194
+ feature_flag.key = "checkout-v2-enabled"
195
+ feature_flag.variant = "on"
196
+ feature_flag.provider_name = "flagsmith"
197
+ ```
198
+
199
+ Example span attributes (JSON log-compatible):
200
+
201
+ ```json
202
+ {
203
+ "name": "feature_flag.evaluation",
204
+ "attributes": {
205
+ "feature_flag.key": "checkout-v2-enabled",
206
+ "feature_flag.variant": "on",
207
+ "feature_flag.provider_name": "flagsmith",
208
+ "user.id": "usr_abc123",
209
+ "tenant.id": "org_enterprise"
210
+ }
211
+ }
212
+ ```
213
+
214
+ **Metrics to track per flag:**
215
+
216
+ | Metric | Labels | Purpose |
217
+ |--------|--------|---------|
218
+ | `feature_flag_evaluation_total` | `flag`, `variant`, `tenant` | Variant distribution |
219
+ | Error rate delta per variant | `flag`, `variant` | A/B regression detection |
220
+ | Latency p99 delta per variant | `flag`, `variant` | Performance regression |
221
+
222
+ Dashboards cross-ref `../observability-as-code.md` for the flag evaluation panel template.
223
+
224
+ ---
225
+
226
+ ## 7. GitOps Engines
227
+
228
+ ### 7.1 Argo CD
229
+
230
+ Source: <https://argo-cd.readthedocs.io>
231
+
232
+ Declarative Kubernetes sync using app-of-apps pattern. Reconcile metrics exposed via `/metrics`:
233
+
234
+ | Metric | Type | Description |
235
+ |--------|------|-------------|
236
+ | `argocd_app_info` | Gauge | App metadata; sync status label |
237
+ | `argocd_app_sync_total` | Counter | Sync operations by phase |
238
+ | `argocd_app_reconcile_bucket` | Histogram | Reconcile latency distribution |
239
+
240
+ Drift detection alert (cluster state ≠ git manifest):
241
+
242
+ ```promql
243
+ argocd_app_info{sync_status="OutOfSync"} == 1
244
+ ```
245
+
246
+ ### 7.2 Flux (CNCF Graduated)
247
+
248
+ Source: <https://fluxcd.io>; Flagger ships as part of the Flux ecosystem.
249
+
250
+ | Metric | Type | Description |
251
+ |--------|------|-------------|
252
+ | `gotk_reconcile_duration_seconds` | Histogram | Per-controller reconcile latency |
253
+ | `gotk_reconcile_condition` | Gauge | `ready` or `stalled` per resource |
254
+
255
+ Stalled resource alert:
256
+
257
+ ```promql
258
+ gotk_reconcile_condition{type="Ready",status="False"} == 1
259
+ ```
260
+
261
+ Cross-ref `../signals/metrics.md` for Prometheus scrape config snippets for both engines.
262
+
263
+ ---
264
+
265
+ ## 8. Kubernetes Operator Reconcile Observability
266
+
267
+ Every operator built on `controller-runtime` exposes `/metrics` automatically.
268
+
269
+ **Built-in metrics:**
270
+
271
+ | Metric | Type | Description |
272
+ |--------|------|-------------|
273
+ | `controller_runtime_reconcile_total` | Counter | Reconcile attempts by result |
274
+ | `controller_runtime_reconcile_errors_total` | Counter | Failed reconcile loops |
275
+ | `controller_runtime_reconcile_time_seconds` | Histogram | Reconcile loop duration |
276
+
277
+ Monitor CRD readiness via `.status.conditions[]`:
278
+
279
+ ```promql
280
+ # Alert on reconcile error spike
281
+ rate(controller_runtime_reconcile_errors_total[5m]) > 0.1
282
+ ```
283
+
284
+ Custom CRDs must emit reconcile metrics. Pattern: wrap reconcile logic in `ObservedGeneration`
285
+ guard and expose a `status.conditions` entry per managed resource.
286
+
287
+ ---
288
+
289
+ ## 9. Release Markers in Telemetry
290
+
291
+ - `service.version` (OTel Stable): set on every span, metric data point, and log record
292
+ via the OTel Resource at SDK initialization. Never patch per-signal.
293
+ - Emit a **deployment event** at release time:
294
+
295
+ ```json
296
+ {
297
+ "event.name": "deployment",
298
+ "service.name": "checkout",
299
+ "service.version": "2.4.1",
300
+ "deployment.environment": "production",
301
+ "timestamp": "2026-04-21T10:00:00Z"
302
+ }
303
+ ```
304
+
305
+ - Pipeline this event to Grafana → vertical annotation line on all timeseries dashboards.
306
+ - **Correlation rule:** incidents within ≤30 minutes of a deployment event are flagged as
307
+ release suspects. Cross-ref `../incident-forensics.md §Scenario C` for the triage playbook.
308
+
309
+ ---
310
+
311
+ ## 10. Canary Analysis Metric Suite
312
+
313
+ | Signal | Source | Gate |
314
+ |--------|--------|------|
315
+ | SLI compliance | `slo.md` PromQL | Pass/fail per iteration |
316
+ | Error rate delta (new vs prev) | `http_requests_total` | Max +0.5% allowed |
317
+ | Latency p99 delta | `http_request_duration_seconds_bucket` | Max +50ms allowed |
318
+ | Crash-Free Rate delta | Cross-ref `../layers/L7-application/crash-analytics.md` | Mobile/web only |
319
+ | Conversion / revenue delta | Product analytics | Product team domain; not in Flagger |
320
+
321
+ ---
322
+
323
+ ## 11. Rollback and Hotfix Pipeline
324
+
325
+ | Trigger | Mechanism | Action |
326
+ |---------|-----------|--------|
327
+ | Metric breach (N consecutive) | Flagger / Argo Rollouts automated | Instant rollback to stable |
328
+ | Manual override | `kubectl argo rollouts abort` or Flagger annotation | Operator-initiated |
329
+ | Hotfix deploy | Standard pipeline, skip canary analysis steps if authorized | Requires audit entry |
330
+
331
+ Manual override always remains possible regardless of automated analysis state.
332
+
333
+ Post-mortem audit trail required for every rollback event.
334
+ Cross-ref `../signals/audit.md` for the required audit log fields.
335
+
336
+ ---
337
+
338
+ ## 12. Matrix.md Cells (release row)
339
+
340
+ | Layer | Signal | Status | Detail |
341
+ |-------|--------|--------|--------|
342
+ | L7 × release | metrics | PASS | Canary SLI delta; error rate and latency per version |
343
+ | L7 × release | logs | PASS | Deployment events with `service.version` |
344
+ | L7 × release | traces | PASS | `service.version` tagging on every span |
345
+ | L7 × release | profiles | PARTIAL | Regression comparison v(new) vs v(prev); tooling-dependent |
346
+ | L7 × release | cost | PARTIAL | Cost delta per variant requires OpenCost label propagation |
347
+ | mesh × release | metrics | PARTIAL | Canary routing rules observable via Envoy stats if mesh present |
348
+
349
+ ---
350
+
351
+ ## 13. Anti-Patterns (candidates for `../anti-patterns.md §Section E Release & Deployment`)
352
+
353
+ | Anti-pattern | Problem | Fix |
354
+ |-------------|---------|-----|
355
+ | No release markers in telemetry | Cannot correlate deploys to incidents | Set `service.version` on OTel Resource; emit deployment event |
356
+ | Canary analysis without SLI metric | Promotion is blind; regressions ship silently | Add MetricTemplate/AnalysisTemplate referencing PromQL SLI |
357
+ | Feature flag evaluation not observed | Variant effect invisible; A/B regression undetected | Emit `feature_flag.*` span attributes on every evaluation |
358
+ | GitOps drift unalerted | Ghost state; cluster diverges from git manifest silently | Alert on `argocd_app_info{sync_status="OutOfSync"}` or `gotk_reconcile_condition{status="False"}` |
359
+ | Rollback without post-mortem audit trail | No learning loop; same failure repeats | Record rollback event in audit log; cross-ref `../signals/audit.md` |
360
+
361
+ ---
362
+
363
+ ## References
364
+
365
+ - Flagger: <https://flagger.app>
366
+ - Argo Rollouts: <https://argoproj.github.io/rollouts>
367
+ - OpenFeature: <https://openfeature.dev>
368
+ - CNCF OpenFeature incubating announcement: <https://cncf.io/blog/2023/12/>
369
+ - Flux (includes Flagger): <https://fluxcd.io>
370
+ - Argo CD: <https://argo-cd.readthedocs.io>
371
+ - OTel feature_flag semconv: <https://opentelemetry.io/docs/specs/semconv/feature-flags/>
372
+ - controller-runtime metrics: <https://book.kubebuilder.io/reference/metrics>
@@ -0,0 +1,225 @@
1
+ # SLO Boundary
2
+
3
+ ## 1. Scope
4
+
5
+ SLO (Service Level Objective) is the contractual reliability target bounding acceptable error rates
6
+ and response times. Covers: SLI definition, SLO math, error budget, burn-rate alerts, tool options.
7
+
8
+ Out of scope: dashboard config (`observability-as-code.md`); progressive delivery gates (`release.md`);
9
+ pipeline SLOs (`../meta-observability.md §Section F`).
10
+
11
+ ---
12
+
13
+ ## 2. Terminology
14
+
15
+ | Term | Definition | Example |
16
+ |------|-----------|---------|
17
+ | **SLI** | Measurable property of a service | 99.2% of requests returned 2xx in past 30d |
18
+ | **SLO** | Internal reliability target | 99.9% availability, 28-day rolling window |
19
+ | **SLA** | Customer contract with consequences | SLO − buffer; breach triggers credits |
20
+ | **Error budget** | `100% − SLO`; headroom before breach | 0.1% = 43.2 min/month at 99.9% SLO |
21
+
22
+ Rule: SLA target < SLO target. Never set SLA = SLO (no operations buffer).
23
+
24
+ ---
25
+
26
+ ## 3. SLI Selection
27
+
28
+ | Method | Best for | Signals |
29
+ |--------|---------|---------|
30
+ | Golden Signals (Google SRE) | Any service | Latency, Traffic, Errors, Saturation |
31
+ | RED | Request-serving | Rate, Errors, Duration |
32
+ | USE | Resources | Utilization, Saturation, Errors |
33
+
34
+ Cross-ref `../signals/metrics.md §SLI` for PromQL sketches per method.
35
+
36
+ ---
37
+
38
+ ## 4. SLO Math
39
+
40
+ Availability SLI (28-day rolling window):
41
+
42
+ ```promql
43
+ sum(rate(http_requests_total{status=~"2..|3.."}[28d]))
44
+ / sum(rate(http_requests_total[28d]))
45
+ ```
46
+
47
+ Latency SLI (fraction of requests under 300ms):
48
+
49
+ ```promql
50
+ sum(rate(http_request_duration_seconds_bucket{le="0.3"}[28d]))
51
+ / sum(rate(http_request_duration_seconds_count[28d]))
52
+ ```
53
+
54
+ ---
55
+
56
+ ## 5. OpenSLO Spec
57
+
58
+ Source: <https://openslo.com>; community-driven, not CNCF. Vendor-neutral YAML; validate support in the selected consumer or adapter. Sloth and Pyrra native formats are separate.
59
+
60
+ ```yaml
61
+ apiVersion: openslo/v1
62
+ kind: SLO
63
+ metadata:
64
+ name: checkout-availability
65
+ spec:
66
+ service: checkout
67
+ budgetingMethod: Occurrences
68
+ timeWindow:
69
+ - duration: 28d
70
+ isRolling: true
71
+ objectives:
72
+ - target: 0.999
73
+ indicator:
74
+ metadata:
75
+ name: checkout-success-ratio
76
+ spec:
77
+ ratioMetric:
78
+ counter: false # queries return window counts, not monotonic counters
79
+ good:
80
+ metricSource:
81
+ type: Prometheus
82
+ spec:
83
+ query: sum(increase(http_requests_total{service="checkout",status=~"2..|3.."}[28d]))
84
+ total:
85
+ metricSource:
86
+ type: Prometheus
87
+ spec:
88
+ query: sum(increase(http_requests_total{service="checkout"}[28d]))
89
+ ```
90
+
91
+ The v1 structure follows <https://openslo.com/specification/>.
92
+ `metricSource.spec` is implementation-defined: verify the chosen consumer's
93
+ Prometheus adapter, window evaluation, and counter semantics. This example
94
+ does not imply Sloth or Pyrra directly accepts OpenSLO; native definitions
95
+ require a verified adapter/conversion if OpenSLO is the input.
96
+
97
+ ---
98
+
99
+ ## 6. Tool Options (as of 2026-Q2)
100
+
101
+ | Tool | Type | CNCF | Output |
102
+ |------|------|------|--------|
103
+ | Sloth | OSS CLI + k8s operator | No | PrometheusRule CRDs |
104
+ | Pyrra | OSS CLI + k8s operator | No | PrometheusRule CRDs |
105
+ | Grafana SLO | Grafana Cloud product | No | Cloud-native alerts |
106
+ | Nobl9 | Commercial SaaS | No | Multi-backend |
107
+ | Google Cloud Service Monitoring | GCP-native | No | GCP alerts |
108
+
109
+ Cross-ref `../vendor-categories.md §OSS Full-Stack`. Sloth and Pyrra are the recommended OSS path
110
+ for Kubernetes-native GitOps deployments.
111
+
112
+ ---
113
+
114
+ ## 7. Burn-Rate Alert Design
115
+
116
+ ### 7.1 Problem
117
+
118
+ A simple error-budget-exhausted alert fires after damage is done. Multi-window burn-rate alerts
119
+ detect fast-burning incidents while they still have budget remaining.
120
+
121
+ Source: <https://sre.google/workbook/alerting-on-slos/>
122
+
123
+ ### 7.2 Multi-Window Tiers (99.9% SLO)
124
+
125
+ | Tier | Budget consumed | Long window | Short window | Multiplier | Action |
126
+ |------|----------------|------------|-------------|-----------|--------|
127
+ | Fast burn | About 2.14% of 28d in 1h | 1h | 5m | 14.4× | Page immediately |
128
+ | Slow burn | About 5.36% of 28d in 6h | 6h | 30m | 6× | Create ticket |
129
+
130
+ **Window arithmetic:** a 28-day window is 672h. The classic 30-day
131
+ thresholds 14.4× and 6× consume about 2.14% in 1h and 5.36% in 6h
132
+ when used unchanged for 28d. For exactly 2% and 5%, use 13.44× and
133
+ 5.6× respectively. Full-budget exhaustion at constant burn is
134
+ `window_hours / burn_rate`; remaining budget changes that horizon.
135
+
136
+ ### 7.3 Fast Burn PromQL
137
+
138
+ ```promql
139
+ (
140
+ (1 - sum(rate(http_requests_total{status=~"2..|3.."}[1h]))
141
+ / sum(rate(http_requests_total[1h])))
142
+ > (1 - 0.999) * 14.4
143
+ )
144
+ and
145
+ (
146
+ (1 - sum(rate(http_requests_total{status=~"2..|3.."}[5m]))
147
+ / sum(rate(http_requests_total[5m])))
148
+ > (1 - 0.999) * 14.4
149
+ )
150
+ ```
151
+
152
+ ### 7.4 Slow Burn PromQL
153
+
154
+ ```promql
155
+ (
156
+ (1 - sum(rate(http_requests_total{status=~"2..|3.."}[6h]))
157
+ / sum(rate(http_requests_total[6h])))
158
+ > (1 - 0.999) * 6
159
+ )
160
+ and
161
+ (
162
+ (1 - sum(rate(http_requests_total{status=~"2..|3.."}[30m]))
163
+ / sum(rate(http_requests_total[30m])))
164
+ > (1 - 0.999) * 6
165
+ )
166
+ ```
167
+
168
+ The short window gates the long window: long window detects sustained burns; short window
169
+ suppresses false positives from transient spikes.
170
+
171
+ ---
172
+
173
+ ## 8. Error Budget Policy
174
+
175
+ | Budget remaining | Action |
176
+ |-----------------|--------|
177
+ | > 50% | Normal feature velocity |
178
+ | 25–50% | Review reliability vs feature ratio |
179
+ | < 25% | Reliability sprint |
180
+ | 0% (exhausted) | Freeze deploys until budget recovers |
181
+
182
+ Cross-ref `release.md`; Flagger and Argo Rollouts use the SLI error rate as canary promotion gate;
183
+ the same threshold enforces budget-aware deployment freeze.
184
+
185
+ ---
186
+
187
+ ## 9. Cross-Integration
188
+
189
+ | File | Integration |
190
+ |------|------------|
191
+ | `release.md` | Flagger/Argo use SLI metric for canary promotion; SLO failure = rollback |
192
+ | `observability-as-code.md` | OpenSLO YAML in Git; Sloth/Pyrra generate PrometheusRule CRDs in CI |
193
+ | `../meta-observability.md §Section F` | Pipeline has its own burn-rate alerts for computation lag |
194
+
195
+ ---
196
+
197
+ ## 10. Matrix Coverage (slo row)
198
+
199
+ | Layer | Signal | Status | Detail |
200
+ |-------|--------|--------|--------|
201
+ | L7-application | metrics | PASS | SLI calculation from HTTP/gRPC counters and histograms |
202
+ | L7-application | logs | PARTIAL | Burn-rate source when metrics unavailable; higher latency |
203
+ | L7-application | traces | PARTIAL | Critical path traces complement metrics-based SLI |
204
+ | mesh | metrics | PASS | Golden signals from Envoy; zero-code instrumentation |
205
+
206
+ ---
207
+
208
+ ## 11. Anti-Patterns (candidates for `../anti-patterns.md §Section D`)
209
+
210
+ | Anti-pattern | Problem | Fix |
211
+ |-------------|---------|-----|
212
+ | SLO without burn-rate alert | Alert fires after budget exhausted | Add multi-window PrometheusRule |
213
+ | Burn-rate without multi-window | False alarms (short) or slow detection (long) | Gate long window with short window |
214
+ | SLO without error budget policy | No action framework for budget consumption | Define policy table (§8) |
215
+ | Customer SLA = SLO | No buffer; any breach triggers penalty | Set SLA target below SLO target |
216
+
217
+ ---
218
+
219
+ ## References
220
+
221
+ - Google SRE Workbook: Alerting on SLOs: <https://sre.google/workbook/alerting-on-slos/>
222
+ - OpenSLO specification: <https://openslo.com>
223
+ - Sloth: <https://github.com/slok/sloth>
224
+ - Pyrra: <https://github.com/pyrra-dev/pyrra>
225
+ - Grafana SLO plugin: <https://grafana.com/grafana/plugins/grafana-slo-app>