@harness-engineering/cli 1.13.0 → 1.14.0

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 (367) hide show
  1. package/dist/agents/skills/claude-code/add-harness-component/skill.yaml +1 -0
  2. package/dist/agents/skills/claude-code/align-documentation/skill.yaml +1 -0
  3. package/dist/agents/skills/claude-code/check-mechanical-constraints/skill.yaml +1 -0
  4. package/dist/agents/skills/claude-code/cleanup-dead-code/skill.yaml +1 -0
  5. package/dist/agents/skills/claude-code/detect-doc-drift/skill.yaml +1 -0
  6. package/dist/agents/skills/claude-code/enforce-architecture/skill.yaml +1 -0
  7. package/dist/agents/skills/claude-code/harness-accessibility/skill.yaml +1 -0
  8. package/dist/agents/skills/claude-code/harness-api-design/SKILL.md +304 -0
  9. package/dist/agents/skills/claude-code/harness-api-design/skill.yaml +74 -0
  10. package/dist/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +1 -0
  11. package/dist/agents/skills/claude-code/harness-auth/SKILL.md +279 -0
  12. package/dist/agents/skills/claude-code/harness-auth/skill.yaml +81 -0
  13. package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +1 -0
  14. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +39 -0
  15. package/dist/agents/skills/claude-code/harness-brainstorming/skill.yaml +1 -0
  16. package/dist/agents/skills/claude-code/harness-caching/SKILL.md +309 -0
  17. package/dist/agents/skills/claude-code/harness-caching/skill.yaml +73 -0
  18. package/dist/agents/skills/claude-code/harness-chaos/SKILL.md +295 -0
  19. package/dist/agents/skills/claude-code/harness-chaos/skill.yaml +72 -0
  20. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +44 -0
  21. package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +1 -0
  22. package/dist/agents/skills/claude-code/harness-codebase-cleanup/skill.yaml +1 -0
  23. package/dist/agents/skills/claude-code/harness-compliance/SKILL.md +303 -0
  24. package/dist/agents/skills/claude-code/harness-compliance/skill.yaml +78 -0
  25. package/dist/agents/skills/claude-code/harness-containerization/SKILL.md +284 -0
  26. package/dist/agents/skills/claude-code/harness-containerization/skill.yaml +80 -0
  27. package/dist/agents/skills/claude-code/harness-data-pipeline/SKILL.md +274 -0
  28. package/dist/agents/skills/claude-code/harness-data-pipeline/skill.yaml +81 -0
  29. package/dist/agents/skills/claude-code/harness-data-validation/SKILL.md +343 -0
  30. package/dist/agents/skills/claude-code/harness-data-validation/skill.yaml +75 -0
  31. package/dist/agents/skills/claude-code/harness-database/SKILL.md +258 -0
  32. package/dist/agents/skills/claude-code/harness-database/skill.yaml +80 -0
  33. package/dist/agents/skills/claude-code/harness-debugging/skill.yaml +1 -0
  34. package/dist/agents/skills/claude-code/harness-dependency-health/skill.yaml +1 -0
  35. package/dist/agents/skills/claude-code/harness-deployment/SKILL.md +255 -0
  36. package/dist/agents/skills/claude-code/harness-deployment/skill.yaml +77 -0
  37. package/dist/agents/skills/claude-code/harness-design/skill.yaml +1 -0
  38. package/dist/agents/skills/claude-code/harness-design-mobile/skill.yaml +1 -0
  39. package/dist/agents/skills/claude-code/harness-design-system/skill.yaml +1 -0
  40. package/dist/agents/skills/claude-code/harness-design-web/skill.yaml +1 -0
  41. package/dist/agents/skills/claude-code/harness-diagnostics/skill.yaml +1 -0
  42. package/dist/agents/skills/claude-code/harness-docs-pipeline/skill.yaml +1 -0
  43. package/dist/agents/skills/claude-code/harness-dx/SKILL.md +276 -0
  44. package/dist/agents/skills/claude-code/harness-dx/skill.yaml +76 -0
  45. package/dist/agents/skills/claude-code/harness-e2e/SKILL.md +245 -0
  46. package/dist/agents/skills/claude-code/harness-e2e/skill.yaml +78 -0
  47. package/dist/agents/skills/claude-code/harness-event-driven/SKILL.md +280 -0
  48. package/dist/agents/skills/claude-code/harness-event-driven/skill.yaml +77 -0
  49. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +44 -0
  50. package/dist/agents/skills/claude-code/harness-execution/skill.yaml +1 -0
  51. package/dist/agents/skills/claude-code/harness-feature-flags/SKILL.md +287 -0
  52. package/dist/agents/skills/claude-code/harness-feature-flags/skill.yaml +74 -0
  53. package/dist/agents/skills/claude-code/harness-git-workflow/skill.yaml +1 -0
  54. package/dist/agents/skills/claude-code/harness-hotspot-detector/skill.yaml +1 -0
  55. package/dist/agents/skills/claude-code/harness-i18n/skill.yaml +1 -0
  56. package/dist/agents/skills/claude-code/harness-i18n-process/skill.yaml +1 -0
  57. package/dist/agents/skills/claude-code/harness-i18n-workflow/skill.yaml +1 -0
  58. package/dist/agents/skills/claude-code/harness-impact-analysis/skill.yaml +1 -0
  59. package/dist/agents/skills/claude-code/harness-incident-response/SKILL.md +223 -0
  60. package/dist/agents/skills/claude-code/harness-incident-response/skill.yaml +78 -0
  61. package/dist/agents/skills/claude-code/harness-infrastructure-as-code/SKILL.md +279 -0
  62. package/dist/agents/skills/claude-code/harness-infrastructure-as-code/skill.yaml +80 -0
  63. package/dist/agents/skills/claude-code/harness-integration-test/SKILL.md +271 -0
  64. package/dist/agents/skills/claude-code/harness-integration-test/skill.yaml +73 -0
  65. package/dist/agents/skills/claude-code/harness-integrity/skill.yaml +1 -0
  66. package/dist/agents/skills/claude-code/harness-knowledge-mapper/skill.yaml +1 -0
  67. package/dist/agents/skills/claude-code/harness-load-testing/SKILL.md +274 -0
  68. package/dist/agents/skills/claude-code/harness-load-testing/skill.yaml +79 -0
  69. package/dist/agents/skills/claude-code/harness-ml-ops/SKILL.md +341 -0
  70. package/dist/agents/skills/claude-code/harness-ml-ops/skill.yaml +79 -0
  71. package/dist/agents/skills/claude-code/harness-mobile-patterns/SKILL.md +326 -0
  72. package/dist/agents/skills/claude-code/harness-mobile-patterns/skill.yaml +82 -0
  73. package/dist/agents/skills/claude-code/harness-mutation-test/SKILL.md +251 -0
  74. package/dist/agents/skills/claude-code/harness-mutation-test/skill.yaml +70 -0
  75. package/dist/agents/skills/claude-code/harness-observability/SKILL.md +283 -0
  76. package/dist/agents/skills/claude-code/harness-observability/skill.yaml +78 -0
  77. package/dist/agents/skills/claude-code/harness-onboarding/skill.yaml +1 -0
  78. package/dist/agents/skills/claude-code/harness-parallel-agents/skill.yaml +1 -0
  79. package/dist/agents/skills/claude-code/harness-perf/skill.yaml +1 -0
  80. package/dist/agents/skills/claude-code/harness-perf-tdd/skill.yaml +1 -0
  81. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +39 -0
  82. package/dist/agents/skills/claude-code/harness-planning/skill.yaml +1 -0
  83. package/dist/agents/skills/claude-code/harness-pre-commit-review/skill.yaml +1 -0
  84. package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +285 -0
  85. package/dist/agents/skills/claude-code/harness-product-spec/skill.yaml +72 -0
  86. package/dist/agents/skills/claude-code/harness-property-test/SKILL.md +281 -0
  87. package/dist/agents/skills/claude-code/harness-property-test/skill.yaml +71 -0
  88. package/dist/agents/skills/claude-code/harness-refactoring/skill.yaml +1 -0
  89. package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +3 -3
  90. package/dist/agents/skills/claude-code/harness-release-readiness/skill.yaml +1 -0
  91. package/dist/agents/skills/claude-code/harness-resilience/SKILL.md +255 -0
  92. package/dist/agents/skills/claude-code/harness-resilience/skill.yaml +76 -0
  93. package/dist/agents/skills/claude-code/harness-roadmap/skill.yaml +1 -0
  94. package/dist/agents/skills/claude-code/harness-secrets/SKILL.md +293 -0
  95. package/dist/agents/skills/claude-code/harness-secrets/skill.yaml +76 -0
  96. package/dist/agents/skills/claude-code/harness-security-review/skill.yaml +1 -0
  97. package/dist/agents/skills/claude-code/harness-security-scan/skill.yaml +1 -0
  98. package/dist/agents/skills/claude-code/harness-skill-authoring/skill.yaml +1 -0
  99. package/dist/agents/skills/claude-code/harness-soundness-review/skill.yaml +1 -0
  100. package/dist/agents/skills/claude-code/harness-sql-review/SKILL.md +315 -0
  101. package/dist/agents/skills/claude-code/harness-sql-review/skill.yaml +74 -0
  102. package/dist/agents/skills/claude-code/harness-state-management/skill.yaml +1 -0
  103. package/dist/agents/skills/claude-code/harness-tdd/skill.yaml +1 -0
  104. package/dist/agents/skills/claude-code/harness-test-advisor/skill.yaml +1 -0
  105. package/dist/agents/skills/claude-code/harness-test-data/SKILL.md +268 -0
  106. package/dist/agents/skills/claude-code/harness-test-data/skill.yaml +74 -0
  107. package/dist/agents/skills/claude-code/harness-ux-copy/SKILL.md +271 -0
  108. package/dist/agents/skills/claude-code/harness-ux-copy/skill.yaml +77 -0
  109. package/dist/agents/skills/claude-code/harness-verification/SKILL.md +35 -0
  110. package/dist/agents/skills/claude-code/harness-verification/skill.yaml +1 -0
  111. package/dist/agents/skills/claude-code/harness-verify/skill.yaml +1 -0
  112. package/dist/agents/skills/claude-code/harness-visual-regression/SKILL.md +257 -0
  113. package/dist/agents/skills/claude-code/harness-visual-regression/skill.yaml +74 -0
  114. package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +11 -3
  115. package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +1 -0
  116. package/dist/agents/skills/claude-code/validate-context-engineering/skill.yaml +1 -0
  117. package/dist/agents/skills/gemini-cli/add-harness-component/skill.yaml +1 -0
  118. package/dist/agents/skills/gemini-cli/align-documentation/skill.yaml +1 -0
  119. package/dist/agents/skills/gemini-cli/check-mechanical-constraints/skill.yaml +1 -0
  120. package/dist/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +1 -0
  121. package/dist/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +1 -0
  122. package/dist/agents/skills/gemini-cli/enforce-architecture/skill.yaml +1 -0
  123. package/dist/agents/skills/gemini-cli/harness-accessibility/skill.yaml +1 -0
  124. package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +304 -0
  125. package/dist/agents/skills/gemini-cli/harness-api-design/skill.yaml +74 -0
  126. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +1 -0
  127. package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +279 -0
  128. package/dist/agents/skills/gemini-cli/harness-auth/skill.yaml +81 -0
  129. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +1 -0
  130. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +39 -0
  131. package/dist/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +1 -0
  132. package/dist/agents/skills/gemini-cli/harness-caching/SKILL.md +309 -0
  133. package/dist/agents/skills/gemini-cli/harness-caching/skill.yaml +73 -0
  134. package/dist/agents/skills/gemini-cli/harness-chaos/SKILL.md +295 -0
  135. package/dist/agents/skills/gemini-cli/harness-chaos/skill.yaml +72 -0
  136. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +44 -0
  137. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +1 -0
  138. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/skill.yaml +1 -0
  139. package/dist/agents/skills/gemini-cli/harness-compliance/SKILL.md +303 -0
  140. package/dist/agents/skills/gemini-cli/harness-compliance/skill.yaml +78 -0
  141. package/dist/agents/skills/gemini-cli/harness-containerization/SKILL.md +284 -0
  142. package/dist/agents/skills/gemini-cli/harness-containerization/skill.yaml +80 -0
  143. package/dist/agents/skills/gemini-cli/harness-data-pipeline/SKILL.md +274 -0
  144. package/dist/agents/skills/gemini-cli/harness-data-pipeline/skill.yaml +81 -0
  145. package/dist/agents/skills/gemini-cli/harness-data-validation/SKILL.md +343 -0
  146. package/dist/agents/skills/gemini-cli/harness-data-validation/skill.yaml +75 -0
  147. package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +258 -0
  148. package/dist/agents/skills/gemini-cli/harness-database/skill.yaml +80 -0
  149. package/dist/agents/skills/gemini-cli/harness-debugging/skill.yaml +1 -0
  150. package/dist/agents/skills/gemini-cli/harness-dependency-health/skill.yaml +1 -0
  151. package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +255 -0
  152. package/dist/agents/skills/gemini-cli/harness-deployment/skill.yaml +77 -0
  153. package/dist/agents/skills/gemini-cli/harness-design/skill.yaml +1 -0
  154. package/dist/agents/skills/gemini-cli/harness-design-mobile/skill.yaml +1 -0
  155. package/dist/agents/skills/gemini-cli/harness-design-system/skill.yaml +1 -0
  156. package/dist/agents/skills/gemini-cli/harness-design-web/skill.yaml +1 -0
  157. package/dist/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +1 -0
  158. package/dist/agents/skills/gemini-cli/harness-docs-pipeline/skill.yaml +1 -0
  159. package/dist/agents/skills/gemini-cli/harness-dx/SKILL.md +276 -0
  160. package/dist/agents/skills/gemini-cli/harness-dx/skill.yaml +76 -0
  161. package/dist/agents/skills/gemini-cli/harness-e2e/SKILL.md +245 -0
  162. package/dist/agents/skills/gemini-cli/harness-e2e/skill.yaml +78 -0
  163. package/dist/agents/skills/gemini-cli/harness-event-driven/SKILL.md +280 -0
  164. package/dist/agents/skills/gemini-cli/harness-event-driven/skill.yaml +77 -0
  165. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +44 -0
  166. package/dist/agents/skills/gemini-cli/harness-execution/skill.yaml +1 -0
  167. package/dist/agents/skills/gemini-cli/harness-feature-flags/SKILL.md +287 -0
  168. package/dist/agents/skills/gemini-cli/harness-feature-flags/skill.yaml +74 -0
  169. package/dist/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +1 -0
  170. package/dist/agents/skills/gemini-cli/harness-hotspot-detector/skill.yaml +1 -0
  171. package/dist/agents/skills/gemini-cli/harness-i18n/skill.yaml +1 -0
  172. package/dist/agents/skills/gemini-cli/harness-i18n-process/skill.yaml +1 -0
  173. package/dist/agents/skills/gemini-cli/harness-i18n-workflow/skill.yaml +1 -0
  174. package/dist/agents/skills/gemini-cli/harness-impact-analysis/skill.yaml +1 -0
  175. package/dist/agents/skills/gemini-cli/harness-incident-response/SKILL.md +223 -0
  176. package/dist/agents/skills/gemini-cli/harness-incident-response/skill.yaml +78 -0
  177. package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/SKILL.md +279 -0
  178. package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/skill.yaml +80 -0
  179. package/dist/agents/skills/gemini-cli/harness-integration-test/SKILL.md +271 -0
  180. package/dist/agents/skills/gemini-cli/harness-integration-test/skill.yaml +73 -0
  181. package/dist/agents/skills/gemini-cli/harness-integrity/skill.yaml +1 -0
  182. package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/skill.yaml +1 -0
  183. package/dist/agents/skills/gemini-cli/harness-load-testing/SKILL.md +274 -0
  184. package/dist/agents/skills/gemini-cli/harness-load-testing/skill.yaml +79 -0
  185. package/dist/agents/skills/gemini-cli/harness-ml-ops/SKILL.md +341 -0
  186. package/dist/agents/skills/gemini-cli/harness-ml-ops/skill.yaml +79 -0
  187. package/dist/agents/skills/gemini-cli/harness-mobile-patterns/SKILL.md +326 -0
  188. package/dist/agents/skills/gemini-cli/harness-mobile-patterns/skill.yaml +82 -0
  189. package/dist/agents/skills/gemini-cli/harness-mutation-test/SKILL.md +251 -0
  190. package/dist/agents/skills/gemini-cli/harness-mutation-test/skill.yaml +70 -0
  191. package/dist/agents/skills/gemini-cli/harness-observability/SKILL.md +283 -0
  192. package/dist/agents/skills/gemini-cli/harness-observability/skill.yaml +78 -0
  193. package/dist/agents/skills/gemini-cli/harness-onboarding/skill.yaml +1 -0
  194. package/dist/agents/skills/gemini-cli/harness-parallel-agents/skill.yaml +1 -0
  195. package/dist/agents/skills/gemini-cli/harness-perf/skill.yaml +1 -0
  196. package/dist/agents/skills/gemini-cli/harness-perf-tdd/skill.yaml +1 -0
  197. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +39 -0
  198. package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +1 -0
  199. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +1 -0
  200. package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +285 -0
  201. package/dist/agents/skills/gemini-cli/harness-product-spec/skill.yaml +72 -0
  202. package/dist/agents/skills/gemini-cli/harness-property-test/SKILL.md +281 -0
  203. package/dist/agents/skills/gemini-cli/harness-property-test/skill.yaml +71 -0
  204. package/dist/agents/skills/gemini-cli/harness-refactoring/skill.yaml +1 -0
  205. package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +3 -3
  206. package/dist/agents/skills/gemini-cli/harness-release-readiness/skill.yaml +1 -0
  207. package/dist/agents/skills/gemini-cli/harness-resilience/SKILL.md +255 -0
  208. package/dist/agents/skills/gemini-cli/harness-resilience/skill.yaml +76 -0
  209. package/dist/agents/skills/gemini-cli/harness-roadmap/skill.yaml +1 -0
  210. package/dist/agents/skills/gemini-cli/harness-secrets/SKILL.md +293 -0
  211. package/dist/agents/skills/gemini-cli/harness-secrets/skill.yaml +76 -0
  212. package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +240 -0
  213. package/dist/agents/skills/gemini-cli/harness-security-review/skill.yaml +1 -0
  214. package/dist/agents/skills/gemini-cli/harness-security-scan/skill.yaml +1 -0
  215. package/dist/agents/skills/gemini-cli/harness-skill-authoring/skill.yaml +1 -0
  216. package/dist/agents/skills/gemini-cli/harness-soundness-review/skill.yaml +1 -0
  217. package/dist/agents/skills/gemini-cli/harness-sql-review/SKILL.md +315 -0
  218. package/dist/agents/skills/gemini-cli/harness-sql-review/skill.yaml +74 -0
  219. package/dist/agents/skills/gemini-cli/harness-state-management/skill.yaml +1 -0
  220. package/dist/agents/skills/gemini-cli/harness-tdd/skill.yaml +1 -0
  221. package/dist/agents/skills/gemini-cli/harness-test-advisor/skill.yaml +1 -0
  222. package/dist/agents/skills/gemini-cli/harness-test-data/SKILL.md +268 -0
  223. package/dist/agents/skills/gemini-cli/harness-test-data/skill.yaml +74 -0
  224. package/dist/agents/skills/gemini-cli/harness-ux-copy/SKILL.md +271 -0
  225. package/dist/agents/skills/gemini-cli/harness-ux-copy/skill.yaml +77 -0
  226. package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +35 -0
  227. package/dist/agents/skills/gemini-cli/harness-verification/skill.yaml +1 -0
  228. package/dist/agents/skills/gemini-cli/harness-verify/skill.yaml +1 -0
  229. package/dist/agents/skills/gemini-cli/harness-visual-regression/SKILL.md +257 -0
  230. package/dist/agents/skills/gemini-cli/harness-visual-regression/skill.yaml +74 -0
  231. package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +11 -3
  232. package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +1 -0
  233. package/dist/agents/skills/gemini-cli/validate-context-engineering/skill.yaml +1 -0
  234. package/dist/agents-md-YTYQDA3P.js +8 -0
  235. package/dist/{architecture-ESOOE26S.js → architecture-JQZYM4US.js} +4 -4
  236. package/dist/bin/harness-mcp.js +16 -15
  237. package/dist/bin/harness.js +31 -30
  238. package/dist/{check-phase-gate-S2MZKLFQ.js → check-phase-gate-L3RADYWO.js} +4 -3
  239. package/dist/{chunk-WPPDRIJL.js → chunk-3C2MLBPJ.js} +4 -4
  240. package/dist/chunk-6KTUUFRN.js +217 -0
  241. package/dist/{chunk-MI5XJQDY.js → chunk-7IP4JIFL.js} +24 -10
  242. package/dist/{chunk-C2ERUR3L.js → chunk-7MJAPE3Z.js} +165 -49
  243. package/dist/{chunk-KELT6K6M.js → chunk-ABQHQ6I5.js} +1861 -1418
  244. package/dist/{chunk-L2KLU56K.js → chunk-AOZRDOIP.js} +2 -2
  245. package/dist/{chunk-QPEH2QPG.js → chunk-DBSOCI3G.js} +53 -54
  246. package/dist/{chunk-MHBMTPW7.js → chunk-ERS5EVUZ.js} +9 -0
  247. package/dist/{chunk-JSTQ3AWB.js → chunk-FIAPHX37.js} +1 -1
  248. package/dist/{chunk-2YPZKGAG.js → chunk-FTMXDOR6.js} +1 -1
  249. package/dist/{chunk-72GHBOL2.js → chunk-GZKSBLQL.js} +1 -1
  250. package/dist/{chunk-K6XAPGML.js → chunk-H7Y5CKTM.js} +1 -1
  251. package/dist/{chunk-HD4IBGLA.js → chunk-N5G5QMS3.js} +24 -1
  252. package/dist/{chunk-LD3DKUK5.js → chunk-NLVUVUGD.js} +1 -1
  253. package/dist/{chunk-3KOLLWWE.js → chunk-O5OJVPL6.js} +26 -211
  254. package/dist/{chunk-NKDM3FMH.js → chunk-OD3S2NHN.js} +1 -1
  255. package/dist/{chunk-5VY23YK3.js → chunk-OSXBPAMK.js} +2 -2
  256. package/dist/{chunk-MACVXDZK.js → chunk-OXLLOSSR.js} +45 -47
  257. package/dist/{chunk-GNGELAXY.js → chunk-RCWZBSK5.js} +2 -2
  258. package/dist/{chunk-PSNN4LWX.js → chunk-S2FXOWOR.js} +3 -3
  259. package/dist/{chunk-VUCPTQ6G.js → chunk-SD3SQOZ2.js} +1 -1
  260. package/dist/{chunk-7PZWR4LI.js → chunk-TPOTOBR7.js} +9 -9
  261. package/dist/{chunk-RZSUJBZZ.js → chunk-XKECDXJS.js} +452 -353
  262. package/dist/{chunk-VRFZWGMS.js → chunk-XYLGHKG6.js} +5 -1
  263. package/dist/{chunk-6N4R6FVX.js → chunk-YBJ262QL.js} +1 -1
  264. package/dist/{chunk-2VU4MFM3.js → chunk-YPYGXRDR.js} +7 -7
  265. package/dist/{chunk-Q6AB7W5Z.js → chunk-YQ6KC6TE.js} +1 -1
  266. package/dist/{chunk-7KQSUZVG.js → chunk-YZD2MRNQ.js} +1528 -1010
  267. package/dist/ci-workflow-EQZFVX3P.js +8 -0
  268. package/dist/{create-skill-WPXHSLX2.js → create-skill-XSWHMSM5.js} +2 -2
  269. package/dist/{dist-M6BQODWC.js → dist-B26DFXMP.js} +573 -480
  270. package/dist/{dist-L7LAAQAS.js → dist-DZ63LLUD.js} +1 -1
  271. package/dist/{dist-WF4C7A4A.js → dist-HWXF2C3R.js} +18 -2
  272. package/dist/{dist-D4RYGUZE.js → dist-USY2C5JL.js} +3 -1
  273. package/dist/{docs-BPYCN2DR.js → docs-7ECGYMAV.js} +5 -3
  274. package/dist/engine-EG4EH4IX.js +8 -0
  275. package/dist/{entropy-4VDVV5CR.js → entropy-5USWKLVS.js} +3 -3
  276. package/dist/{feedback-63QB5RCA.js → feedback-UTBXZZHF.js} +1 -1
  277. package/dist/{generate-agent-definitions-QABOJG56.js → generate-agent-definitions-3PM5EU7V.js} +5 -5
  278. package/dist/{glob-helper-5OHBUQAI.js → glob-helper-R5FXNUPS.js} +1 -1
  279. package/dist/{graph-loader-KO4GJ5N2.js → graph-loader-2M2HXDQI.js} +1 -1
  280. package/dist/index.d.ts +183 -17
  281. package/dist/index.js +32 -30
  282. package/dist/loader-ZPALXIVR.js +10 -0
  283. package/dist/mcp-362EZHF4.js +35 -0
  284. package/dist/{performance-26BH47O4.js → performance-OQAFMJUD.js} +3 -3
  285. package/dist/{review-pipeline-GHR3WFBI.js → review-pipeline-C4GCFVGP.js} +1 -1
  286. package/dist/runtime-7YLVK453.js +9 -0
  287. package/dist/{security-UQFUZXEN.js → security-PZOX7AQS.js} +1 -1
  288. package/dist/skill-executor-XZLYZYAK.js +8 -0
  289. package/dist/templates/axum/Cargo.toml.hbs +8 -0
  290. package/dist/templates/axum/src/main.rs +12 -0
  291. package/dist/templates/axum/template.json +16 -0
  292. package/dist/templates/django/manage.py.hbs +19 -0
  293. package/dist/templates/django/requirements.txt.hbs +1 -0
  294. package/dist/templates/django/src/settings.py.hbs +44 -0
  295. package/dist/templates/django/src/urls.py +6 -0
  296. package/dist/templates/django/src/wsgi.py.hbs +9 -0
  297. package/dist/templates/django/template.json +21 -0
  298. package/dist/templates/express/package.json.hbs +15 -0
  299. package/dist/templates/express/src/app.ts +12 -0
  300. package/dist/templates/express/src/lib/.gitkeep +0 -0
  301. package/dist/templates/express/template.json +16 -0
  302. package/dist/templates/fastapi/requirements.txt.hbs +2 -0
  303. package/dist/templates/fastapi/src/main.py +8 -0
  304. package/dist/templates/fastapi/template.json +20 -0
  305. package/dist/templates/gin/go.mod.hbs +5 -0
  306. package/dist/templates/gin/main.go +15 -0
  307. package/dist/templates/gin/template.json +19 -0
  308. package/dist/templates/go-base/.golangci.yml +16 -0
  309. package/dist/templates/go-base/AGENTS.md.hbs +35 -0
  310. package/dist/templates/go-base/go.mod.hbs +3 -0
  311. package/dist/templates/go-base/harness.config.json.hbs +17 -0
  312. package/dist/templates/go-base/main.go +7 -0
  313. package/dist/templates/go-base/template.json +14 -0
  314. package/dist/templates/java-base/AGENTS.md.hbs +35 -0
  315. package/dist/templates/java-base/checkstyle.xml +20 -0
  316. package/dist/templates/java-base/harness.config.json.hbs +16 -0
  317. package/dist/templates/java-base/pom.xml.hbs +39 -0
  318. package/dist/templates/java-base/src/main/java/App.java.hbs +5 -0
  319. package/dist/templates/java-base/template.json +13 -0
  320. package/dist/templates/nestjs/nest-cli.json +5 -0
  321. package/dist/templates/nestjs/package.json.hbs +18 -0
  322. package/dist/templates/nestjs/src/app.module.ts +8 -0
  323. package/dist/templates/nestjs/src/lib/.gitkeep +0 -0
  324. package/dist/templates/nestjs/src/main.ts +11 -0
  325. package/dist/templates/nestjs/template.json +16 -0
  326. package/dist/templates/nextjs/template.json +15 -1
  327. package/dist/templates/python-base/.python-version +1 -0
  328. package/dist/templates/python-base/AGENTS.md.hbs +32 -0
  329. package/dist/templates/python-base/harness.config.json.hbs +16 -0
  330. package/dist/templates/python-base/pyproject.toml.hbs +18 -0
  331. package/dist/templates/python-base/ruff.toml +5 -0
  332. package/dist/templates/python-base/src/__init__.py +0 -0
  333. package/dist/templates/python-base/template.json +13 -0
  334. package/dist/templates/react-vite/index.html +12 -0
  335. package/dist/templates/react-vite/package.json.hbs +18 -0
  336. package/dist/templates/react-vite/src/App.tsx +7 -0
  337. package/dist/templates/react-vite/src/lib/.gitkeep +0 -0
  338. package/dist/templates/react-vite/src/main.tsx +9 -0
  339. package/dist/templates/react-vite/template.json +19 -0
  340. package/dist/templates/react-vite/vite.config.ts +6 -0
  341. package/dist/templates/rust-base/AGENTS.md.hbs +35 -0
  342. package/dist/templates/rust-base/Cargo.toml.hbs +6 -0
  343. package/dist/templates/rust-base/clippy.toml +2 -0
  344. package/dist/templates/rust-base/harness.config.json.hbs +17 -0
  345. package/dist/templates/rust-base/src/main.rs +3 -0
  346. package/dist/templates/rust-base/template.json +14 -0
  347. package/dist/templates/spring-boot/pom.xml.hbs +50 -0
  348. package/dist/templates/spring-boot/src/main/java/Application.java.hbs +19 -0
  349. package/dist/templates/spring-boot/template.json +15 -0
  350. package/dist/templates/vue/index.html +12 -0
  351. package/dist/templates/vue/package.json.hbs +16 -0
  352. package/dist/templates/vue/src/App.vue +7 -0
  353. package/dist/templates/vue/src/lib/.gitkeep +0 -0
  354. package/dist/templates/vue/src/main.ts +4 -0
  355. package/dist/templates/vue/template.json +19 -0
  356. package/dist/templates/vue/vite.config.ts +6 -0
  357. package/dist/{validate-N7QJOKFZ.js → validate-FD3Z6VJD.js} +4 -4
  358. package/dist/validate-cross-check-WNJM6H2D.js +8 -0
  359. package/package.json +6 -6
  360. package/dist/agents-md-P2RHSUV7.js +0 -8
  361. package/dist/ci-workflow-4NYBUG6R.js +0 -8
  362. package/dist/engine-LXLIWQQ3.js +0 -8
  363. package/dist/loader-Z2IT7QX3.js +0 -10
  364. package/dist/mcp-KQHEL5IF.js +0 -34
  365. package/dist/runtime-PDWD7UIK.js +0 -9
  366. package/dist/skill-executor-RG45LUO5.js +0 -8
  367. package/dist/validate-cross-check-EDQ5QGTM.js +0 -8
@@ -0,0 +1,70 @@
1
+ name: harness-mutation-test
2
+ version: "1.0.0"
3
+ description: Test quality validation through mutation testing with Stryker and mutation scoring
4
+ cognitive_mode: adversarial-reviewer
5
+ triggers:
6
+ - manual
7
+ - on_milestone
8
+ platforms:
9
+ - claude-code
10
+ - gemini-cli
11
+ tools:
12
+ - Bash
13
+ - Read
14
+ - Write
15
+ - Edit
16
+ - Glob
17
+ - Grep
18
+ - emit_interaction
19
+ cli:
20
+ command: harness skill run harness-mutation-test
21
+ args:
22
+ - name: path
23
+ description: Project root path
24
+ required: false
25
+ - name: target
26
+ description: "Target file or directory for mutation testing. Runs project-wide when omitted."
27
+ required: false
28
+ - name: threshold
29
+ description: "Minimum mutation score (0-100). Defaults to 80."
30
+ required: false
31
+ mcp:
32
+ tool: run_skill
33
+ input:
34
+ skill: harness-mutation-test
35
+ path: string
36
+ type: rigid
37
+ tier: 3
38
+ internal: false
39
+ keywords:
40
+ - mutation testing
41
+ - Stryker
42
+ - mutant
43
+ - mutation score
44
+ - test quality
45
+ - test effectiveness
46
+ - survived mutant
47
+ - killed mutant
48
+ - test strength
49
+ stack_signals:
50
+ - "stryker.conf.*"
51
+ - ".stryker-tmp/"
52
+ - "mutation-report/"
53
+ - "stryker.config.*"
54
+ phases:
55
+ - name: configure
56
+ description: Set up mutation testing framework, identify target modules, and define mutant operators
57
+ required: true
58
+ - name: generate
59
+ description: Generate mutants by applying code transformations to production source
60
+ required: true
61
+ - name: execute
62
+ description: Run test suite against each mutant and classify as killed or survived
63
+ required: true
64
+ - name: analyze
65
+ description: Calculate mutation score, identify weak tests, and recommend improvements
66
+ required: true
67
+ state:
68
+ persistent: false
69
+ files: []
70
+ depends_on: []
@@ -0,0 +1,283 @@
1
+ # Harness Observability
2
+
3
+ > Structured logging, metrics, distributed tracing, and alerting strategy. The three pillars of observability, assessed and designed for production readiness.
4
+
5
+ ## When to Use
6
+
7
+ - When designing or reviewing observability instrumentation for a service
8
+ - When auditing logging, metrics, or tracing coverage gaps
9
+ - When defining SLIs, SLOs, and alerting strategies for a new feature
10
+ - NOT for application performance benchmarking (use harness-perf)
11
+ - NOT for security-focused log analysis (use harness-security-review)
12
+ - NOT for incident response procedures (use harness-incident-response)
13
+
14
+ ## Process
15
+
16
+ ### Phase 1: DETECT -- Identify Existing Instrumentation
17
+
18
+ 1. **Scan for observability libraries.** Check package manifests for instrumentation dependencies:
19
+ - **Logging:** winston, pino, bunyan, log4js, structlog, serilog, zap, logrus
20
+ - **Metrics:** prom-client, micrometer, statsd-client, @opentelemetry/sdk-metrics
21
+ - **Tracing:** @opentelemetry/sdk-trace-node, dd-trace, jaeger-client, zipkin
22
+ - **Platforms:** @datadog/browser-rum, newrelic, @sentry/node, elastic-apm-node
23
+
24
+ 2. **Locate instrumentation code.** Search for logger, metrics, and tracing initialization:
25
+ - Logger configuration files (log levels, formatters, transports)
26
+ - Metrics registry and custom metric definitions
27
+ - Tracer initialization and span creation patterns
28
+ - Middleware for automatic HTTP instrumentation
29
+
30
+ 3. **Detect collector and exporter configuration.** Look for:
31
+ - OpenTelemetry Collector config (`otel-collector-config.yaml`)
32
+ - Prometheus scrape configuration (`prometheus.yml`)
33
+ - Grafana dashboards (`grafana/dashboards/`)
34
+ - Datadog agent configuration (`datadog.yaml`)
35
+ - Fluentd or Fluent Bit configuration for log forwarding
36
+
37
+ 4. **Identify alerting configuration.** Search for:
38
+ - Prometheus alerting rules (`alert.rules.yml`)
39
+ - Grafana alert definitions
40
+ - PagerDuty, Opsgenie, or Slack integration configs
41
+ - SLO definitions in monitoring-as-code format
42
+
43
+ 5. **Present detection summary:**
44
+
45
+ ```
46
+ Observability Detection:
47
+ Logging: pino (structured JSON) -- 12 logger instances found
48
+ Metrics: prom-client -- 8 custom metrics defined
49
+ Tracing: @opentelemetry/sdk-trace-node -- initialized in src/tracing.ts
50
+ Collector: OpenTelemetry Collector -> Grafana Cloud
51
+ Alerting: 3 Prometheus alert rules, Slack integration
52
+ ```
53
+
54
+ ---
55
+
56
+ ### Phase 2: AUDIT -- Evaluate Coverage and Quality
57
+
58
+ 1. **Audit logging quality.** Evaluate each logger usage for:
59
+ - **Structured format:** JSON output with consistent field names, not string concatenation
60
+ - **Log levels:** Appropriate use of error, warn, info, debug (not everything at info)
61
+ - **Context fields:** Request ID, user ID, operation name included in log entries
62
+ - **Correlation IDs:** Trace ID propagated through log entries for cross-service correlation
63
+ - **Sensitive data:** No PII, credentials, or tokens logged
64
+ - **Error logging:** Stack traces included for errors, not just error messages
65
+
66
+ 2. **Audit metrics coverage.** Check for standard metrics:
67
+ - **RED metrics:** Request rate, error rate, duration for every HTTP endpoint
68
+ - **USE metrics:** Utilization, saturation, errors for system resources
69
+ - **Custom business metrics:** Domain-specific counters and gauges
70
+ - **Histogram buckets:** Appropriate bucket boundaries for latency histograms
71
+ - **Label cardinality:** No high-cardinality labels (user ID, request ID as metric labels)
72
+
73
+ 3. **Audit tracing implementation.** Verify:
74
+ - **Span creation:** Entry points create root spans, downstream calls create child spans
75
+ - **Context propagation:** Trace context flows across HTTP boundaries (W3C or B3 headers)
76
+ - **Span attributes:** Meaningful attributes set on spans (not empty spans)
77
+ - **Error recording:** Exceptions recorded on spans with status codes
78
+ - **Sampling strategy:** Configured and appropriate (not sampling 100% in production)
79
+
80
+ 4. **Audit alerting effectiveness.** Check each alert for:
81
+ - **Actionability:** Does the alert tell the on-call engineer what to do?
82
+ - **Signal quality:** Based on symptoms (error rate) not causes (CPU usage)
83
+ - **Thresholds:** Based on SLO burn rate, not arbitrary values
84
+ - **Runbook link:** Each alert has a link to a runbook or troubleshooting guide
85
+ - **Routing:** Alerts route to the correct team and escalation path
86
+
87
+ 5. **Score each pillar and identify gaps:**
88
+
89
+ ```
90
+ Observability Audit:
91
+ Logging: 7/10 -- structured, but missing correlation IDs in 4 services
92
+ Metrics: 5/10 -- RED metrics partial, no business metrics
93
+ Tracing: 8/10 -- good coverage, sampling needs tuning
94
+ Alerting: 3/10 -- only 3 rules, no SLO-based alerts, no runbooks
95
+ ```
96
+
97
+ ---
98
+
99
+ ### Phase 3: DESIGN -- Recommend Instrumentation Strategy
100
+
101
+ 1. **Design logging strategy.** Recommend:
102
+ - Standard log format with required fields (timestamp, level, service, traceId, message)
103
+ - Logger factory that injects correlation context automatically
104
+ - Log level configuration per environment (debug in dev, info in production)
105
+ - Log aggregation pipeline (application -> collector -> storage -> query)
106
+ - Retention policy per environment
107
+
108
+ 2. **Design metrics strategy.** Recommend:
109
+ - Standard RED metrics for every HTTP endpoint using middleware
110
+ - Custom business metrics aligned with product KPIs
111
+ - Histogram bucket configuration based on expected latency distribution
112
+ - Metric naming convention following Prometheus best practices (`http_request_duration_seconds`)
113
+ - Dashboard templates for standard service views
114
+
115
+ 3. **Design tracing strategy.** Recommend:
116
+ - Automatic instrumentation for HTTP, database, and message queue operations
117
+ - Manual span creation for business-critical code paths
118
+ - Sampling strategy (head-based for development, tail-based for production)
119
+ - Baggage propagation for cross-cutting concerns (tenant ID, feature flags)
120
+ - Trace-to-log correlation via trace ID injection
121
+
122
+ 4. **Define SLIs and SLOs.** For each service endpoint:
123
+ - **Availability SLI:** Proportion of successful requests (non-5xx)
124
+ - **Latency SLI:** Proportion of requests faster than threshold (p99 < 500ms)
125
+ - **SLO target:** 99.9% availability, 99% latency within budget
126
+ - **Error budget:** Calculation and burn rate alerting
127
+ - **SLO dashboard:** Visual budget remaining over rolling window
128
+
129
+ 5. **Design alerting strategy.** Recommend:
130
+ - Multi-window, multi-burn-rate alerts based on SLOs
131
+ - Page-worthy alerts (high burn rate) vs. ticket-worthy alerts (slow burn)
132
+ - Alert grouping to reduce noise (one alert per service, not per instance)
133
+ - Escalation paths with timeouts
134
+ - Regular alert review cadence (monthly) to retire noisy alerts
135
+
136
+ ---
137
+
138
+ ### Phase 4: VALIDATE -- Verify Instrumentation Correctness
139
+
140
+ 1. **Validate log output.** Check that logs from a test run:
141
+ - Parse as valid JSON (if structured logging is configured)
142
+ - Contain required fields (timestamp, level, service name)
143
+ - Include trace IDs when tracing is active
144
+ - Do not contain sensitive data (grep for common patterns: password, token, secret)
145
+ - Use appropriate log levels (no error-level logs for normal operations)
146
+
147
+ 2. **Validate metric exposition.** Verify:
148
+ - Metrics endpoint (`/metrics`) is accessible and returns Prometheus format
149
+ - All declared custom metrics appear in the output
150
+ - Histogram buckets are populated with reasonable values
151
+ - No high-cardinality label combinations (check label count)
152
+ - Counter values increment correctly (not resetting unexpectedly)
153
+
154
+ 3. **Validate trace propagation.** Verify end-to-end:
155
+ - A request to the entry service generates a trace visible in the tracing backend
156
+ - Child spans appear for downstream service calls
157
+ - Span attributes are populated with expected values
158
+ - Error spans have appropriate status and exception recording
159
+ - Sampling is working as configured (not dropping all traces or keeping all)
160
+
161
+ 4. **Validate alerting rules.** Check:
162
+ - Alert expressions are syntactically valid (PromQL, LogQL)
163
+ - Alert thresholds fire on historical data that represents real incidents
164
+ - Alert routing sends to the correct channel or pager
165
+ - Runbook links resolve to actual documentation
166
+
167
+ 5. **Generate observability report:**
168
+
169
+ ```
170
+ Observability Validation: [PASS/WARN/FAIL]
171
+
172
+ Logging: PASS (structured, correlated, no PII detected)
173
+ Metrics: WARN (RED metrics present, missing business metrics)
174
+ Tracing: PASS (propagation verified, sampling at 10%)
175
+ Alerting: FAIL (no SLO-based alerts, 2 of 3 rules missing runbooks)
176
+
177
+ Priority actions:
178
+ 1. Define SLOs for /api/orders and /api/payments endpoints
179
+ 2. Add multi-burn-rate alerts based on SLO error budget
180
+ 3. Write runbooks for existing alerts
181
+ 4. Add order_total and payment_success_rate business metrics
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Harness Integration
187
+
188
+ - **`harness skill run harness-observability`** -- Primary invocation for observability audit.
189
+ - **`harness validate`** -- Run after instrumentation changes to verify project health.
190
+ - **`harness check-deps`** -- Verify observability library dependencies are installed.
191
+ - **`emit_interaction`** -- Present audit results and SLO design recommendations.
192
+
193
+ ## Success Criteria
194
+
195
+ - All three observability pillars (logging, metrics, tracing) are assessed
196
+ - Coverage gaps are identified with specific remediation recommendations
197
+ - SLI/SLO definitions are provided for critical service endpoints
198
+ - Alerting strategy is evaluated for actionability and signal quality
199
+ - No sensitive data detected in log output
200
+ - Correlation between logs and traces is verified
201
+
202
+ ## Examples
203
+
204
+ ### Example: Express.js API with OpenTelemetry
205
+
206
+ ```
207
+ Phase 1: DETECT
208
+ Logging: pino with pino-http middleware
209
+ Metrics: @opentelemetry/sdk-metrics -> Prometheus
210
+ Tracing: @opentelemetry/sdk-trace-node -> Jaeger
211
+ Collector: OTel Collector (otel-collector-config.yaml)
212
+ Alerting: 5 Prometheus rules in monitoring/alerts.yml
213
+
214
+ Phase 2: AUDIT
215
+ Logging: 8/10 -- structured JSON, trace IDs present, missing request body size
216
+ Metrics: 6/10 -- http_request_duration_seconds present, missing queue depth
217
+ and business metrics (orders_created_total)
218
+ Tracing: 9/10 -- auto-instrumented HTTP + pg + Redis, manual spans on
219
+ checkout flow
220
+ Alerting: 4/10 -- static thresholds, no SLO burn rate, 2 missing runbooks
221
+
222
+ Phase 3: DESIGN
223
+ SLOs recommended:
224
+ - POST /api/orders: 99.9% availability, p99 < 800ms
225
+ - GET /api/products: 99.95% availability, p99 < 200ms
226
+ Alerting: Replace static "error rate > 5%" with multi-window burn rate
227
+ Metrics: Add orders_created_total, cart_abandonment_rate gauges
228
+ Logging: Add request/response body size for capacity planning
229
+
230
+ Phase 4: VALIDATE
231
+ Log output: PASS (valid JSON, no PII)
232
+ Metrics endpoint: PASS (all custom metrics present)
233
+ Trace propagation: PASS (end-to-end verified)
234
+ Alert rules: WARN (valid PromQL, but thresholds not SLO-based)
235
+ Result: WARN -- alerting strategy needs SLO alignment
236
+ ```
237
+
238
+ ### Example: Go Microservices with Datadog
239
+
240
+ ```
241
+ Phase 1: DETECT
242
+ Logging: zap (structured) across 4 services
243
+ Metrics: Datadog dogstatsd client
244
+ Tracing: dd-trace-go with automatic HTTP/gRPC instrumentation
245
+ Collector: Datadog Agent (datadog.yaml in k8s/)
246
+ Alerting: 12 monitors in Datadog (Terraform-managed)
247
+
248
+ Phase 2: AUDIT
249
+ Logging: 9/10 -- consistent structured format, correlation IDs, no PII
250
+ Metrics: 7/10 -- RED metrics present, custom counters for business events,
251
+ but missing histogram for gRPC call duration
252
+ Tracing: 8/10 -- HTTP and gRPC instrumented, database spans present,
253
+ Redis spans missing
254
+ Alerting: 6/10 -- good coverage but static thresholds, no error budgets
255
+
256
+ Phase 3: DESIGN
257
+ 1. Add dd-trace-go Redis integration for complete trace picture
258
+ 2. Add grpc_server_handling_seconds histogram
259
+ 3. Define SLOs in Datadog for top 5 endpoints
260
+ 4. Convert 4 highest-priority monitors to SLO burn rate alerts
261
+ 5. Add Datadog SLO dashboard for team visibility
262
+
263
+ Phase 4: VALIDATE
264
+ Log output: PASS
265
+ Metrics: WARN (missing gRPC histogram)
266
+ Traces: WARN (Redis spans missing)
267
+ Alerts: WARN (no SLO-based alerts)
268
+ Result: WARN -- 3 instrumentation gaps, alerting needs SLO alignment
269
+ ```
270
+
271
+ ## Gates
272
+
273
+ - **No sensitive data in logs.** If PII, credentials, or tokens are detected in log output, it is a blocking finding. The logging configuration must sanitize or redact sensitive fields before any other improvements are made.
274
+ - **No high-cardinality metric labels.** Metric labels with unbounded values (user IDs, request IDs, timestamps) cause storage explosion and query timeouts. This is a blocking finding.
275
+ - **No alerting without runbooks.** Production alerts that lack a runbook link are incomplete. Every page-worthy alert must have actionable documentation.
276
+ - **No tracing without context propagation.** Traces that do not propagate context across service boundaries provide incomplete pictures and mislead investigations. Broken propagation is a blocking finding.
277
+
278
+ ## Escalation
279
+
280
+ - **When observability libraries conflict:** Some combinations (e.g., dd-trace and OTel auto-instrumentation) cause duplicate spans or metric conflicts. Recommend choosing one provider and removing the other. If migration is needed, present a phased approach.
281
+ - **When sampling drops critical traces:** If tail-based sampling is misconfigured, critical error traces may be dropped. Recommend always-sample rules for error responses and critical code paths, with probabilistic sampling for normal traffic.
282
+ - **When metric cardinality is already out of control:** Do not attempt to fix retroactively in the metrics backend. Recommend adding new metrics with correct labels and deprecating the high-cardinality ones. Set a timeline for removal.
283
+ - **When no observability infrastructure exists:** This is a design-from-scratch scenario. Start with structured logging (lowest barrier), then add metrics (RED for HTTP endpoints), then tracing. Do not attempt all three at once.
@@ -0,0 +1,78 @@
1
+ name: harness-observability
2
+ version: "1.0.0"
3
+ description: Structured logging, metrics, distributed tracing, and alerting strategies
4
+ cognitive_mode: advisory-guide
5
+ tier: 3
6
+ internal: false
7
+ keywords:
8
+ - logging
9
+ - metrics
10
+ - tracing
11
+ - observability
12
+ - OpenTelemetry
13
+ - Prometheus
14
+ - Grafana
15
+ - Datadog
16
+ - alerting
17
+ - SLI
18
+ - SLO
19
+ - structured logging
20
+ - correlation ID
21
+ - spans
22
+ stack_signals:
23
+ - "src/**/logger*"
24
+ - "src/**/metrics*"
25
+ - "src/**/tracing*"
26
+ - "otel-collector*"
27
+ - "prometheus.yml"
28
+ - "grafana/"
29
+ - "datadog.yaml"
30
+ triggers:
31
+ - manual
32
+ - on_new_feature
33
+ platforms:
34
+ - claude-code
35
+ - gemini-cli
36
+ tools:
37
+ - Bash
38
+ - Read
39
+ - Write
40
+ - Edit
41
+ - Glob
42
+ - Grep
43
+ - emit_interaction
44
+ cli:
45
+ command: harness skill run harness-observability
46
+ args:
47
+ - name: path
48
+ description: Project root path
49
+ required: false
50
+ - name: pillar
51
+ description: Observability pillar to focus on (logging, metrics, tracing, all)
52
+ required: false
53
+ - name: provider
54
+ description: Observability provider context (otel, datadog, prometheus)
55
+ required: false
56
+ mcp:
57
+ tool: run_skill
58
+ input:
59
+ skill: harness-observability
60
+ path: string
61
+ type: rigid
62
+ phases:
63
+ - name: detect
64
+ description: Identify existing observability instrumentation and providers
65
+ required: true
66
+ - name: audit
67
+ description: Evaluate coverage gaps across logging, metrics, and tracing
68
+ required: true
69
+ - name: design
70
+ description: Recommend instrumentation strategy and SLI/SLO definitions
71
+ required: true
72
+ - name: validate
73
+ description: Verify instrumentation correctness and alerting configuration
74
+ required: true
75
+ state:
76
+ persistent: false
77
+ files: []
78
+ depends_on: []
@@ -24,6 +24,7 @@ mcp:
24
24
  skill: harness-onboarding
25
25
  path: string
26
26
  type: flexible
27
+ tier: 1
27
28
  state:
28
29
  persistent: false
29
30
  files: []
@@ -27,6 +27,7 @@ mcp:
27
27
  skill: harness-parallel-agents
28
28
  path: string
29
29
  type: flexible
30
+ internal: true
30
31
  state:
31
32
  persistent: false
32
33
  files: []
@@ -30,6 +30,7 @@ mcp:
30
30
  skill: harness-perf
31
31
  path: string
32
32
  type: rigid
33
+ tier: 2
33
34
  phases:
34
35
  - name: analyze
35
36
  description: Run structural complexity and coupling checks
@@ -26,6 +26,7 @@ mcp:
26
26
  skill: harness-perf-tdd
27
27
  path: string
28
28
  type: rigid
29
+ tier: 3
29
30
  phases:
30
31
  - name: red
31
32
  description: Write failing test and benchmark assertion
@@ -312,6 +312,45 @@ One sentence.
312
312
 
313
313
  ````
314
314
 
315
+ ## Session State
316
+
317
+ This skill reads and writes to the following session sections via `manage_state`:
318
+
319
+ | Section | Read | Write | Purpose |
320
+ |---------|------|-------|---------|
321
+ | terminology | yes | no | Reads domain terms to use consistent language in plan |
322
+ | decisions | yes | yes | Reads brainstorming decisions; records planning-phase decisions |
323
+ | constraints | yes | yes | Reads existing constraints; adds constraints discovered during decomposition |
324
+ | risks | yes | yes | Reads existing risks; adds implementation risks identified during task design |
325
+ | openQuestions | yes | yes | Reads unresolved questions; adds new questions, resolves answered ones |
326
+ | evidence | yes | yes | Reads prior evidence from brainstorming; writes file:line citations for task specifications |
327
+
328
+ **When to write:** During Phase 1 (SCOPE) write newly discovered constraints and risks. During Phase 2 (DECOMPOSE) write decisions about task structure and sequencing. Mark resolved questions during Phase 4 (VALIDATE).
329
+
330
+ **When to read:** At the start of Phase 1 (SCOPE), read all sections via `gather_context` with `include: ["sessions"]` to inherit context from brainstorming. Use terminology for consistent naming in task descriptions.
331
+
332
+ ## Evidence Requirements
333
+
334
+ When this skill makes claims about existing code structure, file locations, or implementation patterns in task specifications, it MUST cite evidence using one of:
335
+
336
+ 1. **File reference:** `file:line` format (e.g., `src/services/index.ts:15` -- "barrel export exists, will add new export here")
337
+ 2. **Code pattern reference:** `file:line` format with pattern description (e.g., `src/services/user-service.ts:1-30` -- "existing service follows constructor injection pattern, new service will match")
338
+ 3. **Test output:** Include the command and its observed output when referencing current test state
339
+ 4. **Session evidence:** Write to the `evidence` session section:
340
+ ```json
341
+ manage_state({
342
+ action: "append_entry",
343
+ session: "<current-session>",
344
+ section: "evidence",
345
+ authorSkill: "harness-planning",
346
+ content: "src/services/index.ts:15 -- barrel export pattern confirmed for new service integration"
347
+ })
348
+ ```
349
+
350
+ **When to cite:** During Phase 1 (SCOPE) when referencing existing files for observable truths. During Phase 2 (DECOMPOSE) when specifying exact file paths and code patterns in task instructions. When the file map references existing files for modification.
351
+
352
+ **Uncited claims:** Technical assertions about existing code without citations MUST be prefixed with `[UNVERIFIED]`. Example: `[UNVERIFIED] The service barrel exports all services`. Uncited claims are flagged during review (Wave 2.2).
353
+
315
354
  ## Harness Integration
316
355
 
317
356
  - **`harness validate`** — Run during Phase 4 (before writing the plan) and included as a step in every task.
@@ -28,6 +28,7 @@ mcp:
28
28
  skill: harness-planning
29
29
  path: string
30
30
  type: rigid
31
+ tier: 1
31
32
  phases:
32
33
  - name: scope
33
34
  description: Define goals and constraints
@@ -16,6 +16,7 @@ mcp:
16
16
  skill: harness-pre-commit-review
17
17
  path: string
18
18
  type: rigid
19
+ tier: 3
19
20
  phases:
20
21
  - name: mechanical-checks
21
22
  description: Run deterministic checks (lint, typecheck, tests)