@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,303 @@
1
+ # Harness Compliance
2
+
3
+ > SOC2, HIPAA, GDPR compliance checks, audit trails, and regulatory checklists. Scans codebases for compliance-relevant patterns, classifies data by sensitivity, audits implementation against framework-specific controls, and generates gap analysis reports with remediation plans.
4
+
5
+ ## When to Use
6
+
7
+ - At milestone boundaries to audit compliance posture before releases to regulated markets
8
+ - On PRs that modify data handling, storage, logging, or user-facing privacy features
9
+ - When preparing for external audits (SOC2 Type II, HIPAA assessment, GDPR DPA review)
10
+ - NOT for runtime security scanning or vulnerability detection (use harness-security-scan)
11
+ - NOT for authentication or authorization implementation (use harness-auth)
12
+ - NOT for infrastructure security hardening (use harness-security-review)
13
+
14
+ ## Process
15
+
16
+ ### Phase 1: SCAN -- Detect Applicable Frameworks and Data Patterns
17
+
18
+ 1. **Identify applicable compliance frameworks.** Scan for indicators:
19
+ - SOC2: presence of `docs/compliance/soc2/`, audit logging implementation, access control patterns
20
+ - HIPAA: healthcare-related data models (patient, diagnosis, prescription), PHI field markers
21
+ - GDPR: EU user data handling, consent collection, cookie banners, privacy policy references
22
+ - PCI-DSS: payment processing, credit card fields, tokenization, PCI scope markers
23
+ - Detect from existing compliance documentation, data models, and configuration files
24
+
25
+ 2. **Inventory data stores.** Map all locations where user data is persisted:
26
+ - Databases: table schemas, column names, migration files
27
+ - Object storage: S3 buckets, GCS buckets, Azure Blob containers
28
+ - Caches: Redis keys, Memcached namespaces
29
+ - Log files: structured logging output, log aggregation configuration
30
+ - Third-party services: analytics (Segment, Mixpanel), CRM (Salesforce, HubSpot), email (SendGrid, Mailchimp)
31
+
32
+ 3. **Trace data flows.** Map how user data moves through the system:
33
+ - Ingestion: API endpoints that accept user input, form submissions, file uploads
34
+ - Processing: services that transform, aggregate, or enrich user data
35
+ - Storage: where processed data is persisted (primary database, cache, search index)
36
+ - Egress: data shared with third parties, exported, or displayed to other users
37
+ - Deletion: how data is removed when retention expires or deletion is requested
38
+
39
+ 4. **Check for existing compliance artifacts.** Look for:
40
+ - Privacy policy: `PRIVACY.md`, `privacy-policy.md`, or served via web route
41
+ - Security policy: `SECURITY.md`, security disclosure process
42
+ - Data processing agreements: `docs/compliance/dpa/`
43
+ - Audit trail implementation: `src/**/audit/**`, event sourcing patterns
44
+ - Consent management: cookie consent banners, preference centers
45
+
46
+ 5. **Detect sensitive data patterns.** Grep for fields and patterns that indicate regulated data:
47
+ - PII: email, phone, address, SSN, date of birth, government ID
48
+ - PHI: diagnosis, treatment, prescription, medical record number, insurance ID
49
+ - Financial: credit card number, bank account, routing number, transaction amount
50
+ - Authentication: password (even hashed), API key, secret, token
51
+
52
+ ---
53
+
54
+ ### Phase 2: CLASSIFY -- Data Sensitivity and Regulatory Scope
55
+
56
+ 1. **Classify data fields by sensitivity.** Apply a tiered classification:
57
+ - **Critical:** Data whose exposure triggers mandatory breach notification (SSN, credit card, PHI)
58
+ - **Sensitive:** PII that identifies individuals (email, phone, address, name + DOB)
59
+ - **Internal:** Business data not publicly available (order history, usage metrics, preferences)
60
+ - **Public:** Data intentionally shared (username, public profile, published content)
61
+
62
+ 2. **Map regulatory scope per data class.** Determine which frameworks apply to each data class:
63
+ - Critical financial data -> PCI-DSS scope
64
+ - PHI data -> HIPAA scope
65
+ - EU resident PII -> GDPR scope
66
+ - All customer data in a SOC2-audited system -> SOC2 scope
67
+
68
+ 3. **Identify cross-border data flows.** For GDPR compliance:
69
+ - Where are data stores physically located? (AWS region, GCP region, Azure region)
70
+ - Does data transfer to non-EU countries? (US servers, CDN nodes, third-party processors)
71
+ - Are Standard Contractual Clauses (SCCs) or adequacy decisions in place?
72
+ - Is data residency configurable per tenant?
73
+
74
+ 4. **Document data retention policies.** For each data class:
75
+ - What is the defined retention period?
76
+ - Is automatic deletion implemented (TTL, scheduled job, lifecycle policy)?
77
+ - What happens to data in backups after retention expires?
78
+ - Are retention policies documented and accessible?
79
+
80
+ 5. **Produce the data classification matrix.** Output a structured inventory:
81
+ - Data field, classification tier, applicable frameworks, storage location, retention policy, encryption status
82
+
83
+ ---
84
+
85
+ ### Phase 3: AUDIT -- Check Against Framework Controls
86
+
87
+ 1. **SOC2 Trust Services Criteria audit.** Check implementation against key controls:
88
+ - **CC6.1 (Logical Access):** Are all endpoints authenticated? Is RBAC/ABAC enforced?
89
+ - **CC6.2 (Credential Management):** Are passwords hashed with strong algorithms? Is MFA available?
90
+ - **CC6.3 (Encryption):** Is data encrypted at rest (database, file storage) and in transit (TLS)?
91
+ - **CC7.2 (System Monitoring):** Are security events logged? Are alerts configured for anomalies?
92
+ - **CC8.1 (Change Management):** Is there a code review process? Are deployments auditable?
93
+
94
+ 2. **HIPAA Security Rule audit.** If PHI is present:
95
+ - **164.312(a)(1) Access Control:** Unique user identification, emergency access, automatic logoff, encryption
96
+ - **164.312(b) Audit Controls:** Record and examine activity in information systems containing PHI
97
+ - **164.312(c)(1) Integrity:** Protect electronic PHI from improper alteration or destruction
98
+ - **164.312(d) Authentication:** Verify identity of person or entity seeking access to PHI
99
+ - **164.312(e)(1) Transmission Security:** Encrypt PHI during electronic transmission
100
+
101
+ 3. **GDPR compliance audit.** If EU data is processed:
102
+ - **Article 6 (Lawful Basis):** Is consent collected? Is legitimate interest documented?
103
+ - **Article 13/14 (Transparency):** Is a privacy notice provided at data collection points?
104
+ - **Article 15 (Right of Access):** Can users export their data? Is there a data export endpoint?
105
+ - **Article 17 (Right to Erasure):** Can users request deletion? Is it implemented across all stores?
106
+ - **Article 25 (Data Protection by Design):** Are privacy defaults enforced (minimal data collection)?
107
+ - **Article 30 (Records of Processing):** Is there a processing activities register?
108
+ - **Article 32 (Security of Processing):** Encryption, pseudonymization, resilience, regular testing
109
+ - **Article 33 (Breach Notification):** Is there a 72-hour breach notification process?
110
+
111
+ 4. **PCI-DSS audit.** If payment data is present:
112
+ - **Requirement 3:** Is cardholder data encrypted at rest? Is PAN masked in displays?
113
+ - **Requirement 4:** Is cardholder data encrypted in transit?
114
+ - **Requirement 6:** Are secure development practices followed? Is input validated?
115
+ - **Requirement 8:** Is access to cardholder data authenticated and authorized?
116
+ - **Requirement 10:** Are all access events to cardholder data logged?
117
+
118
+ 5. **Audit trail verification.** For all applicable frameworks:
119
+ - Are audit events immutable (append-only log, write-once storage)?
120
+ - Do audit records include who, what, when, where, and outcome?
121
+ - Is the audit log protected from tampering (separate access controls, checksums)?
122
+ - Is the audit log retained for the required period (SOC2: 1 year, HIPAA: 6 years, GDPR: varies)?
123
+
124
+ ---
125
+
126
+ ### Phase 4: REPORT -- Generate Gap Analysis and Remediation Plan
127
+
128
+ 1. **Score compliance posture per framework.** For each applicable framework:
129
+ - Total controls assessed
130
+ - Controls fully met, partially met, and not met
131
+ - Overall compliance percentage
132
+ - Risk rating: High (critical controls missing), Medium (non-critical gaps), Low (minor gaps)
133
+
134
+ 2. **Produce the gap analysis.** For each control not fully met:
135
+ - Control identifier and description
136
+ - Current implementation status (not started, partial, misconfigured)
137
+ - Specific code locations or configurations that need change
138
+ - Remediation steps with effort estimate (hours/days)
139
+ - Priority based on risk and audit timeline
140
+
141
+ 3. **Generate audit-ready checklists.** Produce framework-specific checklists:
142
+ - SOC2: Trust Services Criteria checklist with evidence references
143
+ - HIPAA: Security Rule safeguard checklist with implementation status
144
+ - GDPR: Article-by-article compliance checklist with data flow references
145
+ - PCI-DSS: Requirement checklist with scope boundaries
146
+
147
+ 4. **Create remediation plan.** Organize gaps into actionable work:
148
+ - **Phase 1 (Critical, 0-2 weeks):** Fix blocking gaps that would fail an audit
149
+ - **Phase 2 (Important, 2-6 weeks):** Address significant gaps that reduce compliance posture
150
+ - **Phase 3 (Improvement, 6-12 weeks):** Enhance documentation, monitoring, and process maturity
151
+ - Each item includes: description, affected control, owner placeholder, effort estimate
152
+
153
+ 5. **Output the compliance report.** Generate `docs/compliance/audit-report-YYYY-MM-DD.md`:
154
+
155
+ ```
156
+ Compliance Audit Report — YYYY-MM-DD
157
+
158
+ Frameworks Assessed: SOC2, GDPR
159
+ Data Classifications: 12 critical, 28 sensitive, 45 internal, 15 public
160
+
161
+ SOC2 Status: 78% (18/23 controls met, 3 partial, 2 not met)
162
+ NOT MET:
163
+ CC7.2 — No security event alerting configured
164
+ CC8.1 — No deployment audit trail
165
+ PARTIAL:
166
+ CC6.1 — RBAC exists but 4 endpoints lack authorization checks
167
+ CC6.3 — TLS in transit, but database encryption at rest not configured
168
+ CC6.2 — Passwords hashed, but no MFA available
169
+
170
+ GDPR Status: 65% (11/17 controls met, 4 partial, 2 not met)
171
+ NOT MET:
172
+ Article 17 — No data deletion endpoint implemented
173
+ Article 30 — No processing activities register
174
+ PARTIAL:
175
+ Article 15 — Data export exists but incomplete (missing analytics data)
176
+ ...
177
+
178
+ Remediation Plan: 7 items (2 critical, 3 important, 2 improvement)
179
+ Estimated total effort: 45 engineering-hours
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Harness Integration
185
+
186
+ - **`harness skill run harness-compliance`** -- Primary CLI entry point. Runs all four phases.
187
+ - **`harness validate`** -- Run after generating compliance artifacts to verify project structure.
188
+ - **`harness check-deps`** -- Verify that compliance-related dependencies (audit logging libraries, encryption modules) are declared.
189
+ - **`emit_interaction`** -- Used at framework selection (checkpoint:decision) when multiple frameworks apply and the team wants to prioritize, and at remediation plan review (checkpoint:human-verify).
190
+ - **`Glob`** -- Discover compliance documentation, audit trail implementations, privacy policies, and data models.
191
+ - **`Grep`** -- Search for PII field patterns, encryption configurations, consent collection, logging patterns, and sensitive data handling.
192
+ - **`Write`** -- Generate compliance reports, audit checklists, and remediation plans.
193
+ - **`Edit`** -- Update existing compliance documentation with current audit status.
194
+
195
+ ## Success Criteria
196
+
197
+ - All applicable compliance frameworks are identified with justification for inclusion
198
+ - Data classification matrix covers all persisted user data fields with sensitivity tier and storage location
199
+ - Audit checks reference specific framework control identifiers (SOC2 CC6.1, GDPR Article 17, etc.)
200
+ - Gap analysis includes specific file locations and code references, not just abstract control descriptions
201
+ - Remediation plan items have effort estimates and are prioritized by risk and audit timeline
202
+ - Audit-ready checklists can be handed directly to an external auditor as evidence documentation
203
+
204
+ ## Examples
205
+
206
+ ### Example: SaaS Application with SOC2 and GDPR Requirements
207
+
208
+ ```
209
+ Phase 1: SCAN
210
+ Frameworks detected:
211
+ - SOC2: docs/compliance/soc2/ directory exists, audit logging in src/audit/
212
+ - GDPR: EU customers present (detected from i18n locales and privacy policy)
213
+ - PCI-DSS: Not applicable (payments via Stripe, card data never touches servers)
214
+ Data stores: PostgreSQL (primary), Redis (cache/sessions), S3 (file uploads)
215
+ Third-party processors: Stripe, SendGrid, Segment, Datadog
216
+
217
+ Phase 2: CLASSIFY
218
+ Critical: None (no SSN, card data handled by Stripe)
219
+ Sensitive: email, phone, address (users table), IP address (access_logs)
220
+ Internal: order_history, preferences, usage_metrics
221
+ Public: username, display_name, avatar_url
222
+ Cross-border: Primary DB in us-east-1, CDN globally, Segment data to US
223
+ GDPR gap: No SCCs documented for US-based sub-processors
224
+
225
+ Phase 3: AUDIT
226
+ SOC2: 78% compliant (18/23)
227
+ CC6.3 — PostgreSQL not using column-level encryption for sensitive fields
228
+ CC7.2 — Datadog alerts exist but no security-specific monitors
229
+ GDPR: 65% compliant (11/17)
230
+ Article 17 — DELETE /api/users/:id exists but does not cascade to S3 files or Segment
231
+ Article 30 — No Records of Processing Activities document
232
+
233
+ Phase 4: REPORT
234
+ Generated: docs/compliance/audit-report-2026-03-27.md
235
+ Remediation plan:
236
+ Critical (week 1-2):
237
+ 1. Implement cascading deletion across PostgreSQL, S3, Segment, SendGrid
238
+ 2. Create Records of Processing Activities document
239
+ Important (week 3-6):
240
+ 3. Add column-level encryption for email, phone, address fields
241
+ 4. Create security-specific Datadog monitors for auth failures
242
+ 5. Document SCCs for all US-based sub-processors
243
+ Improvement (week 7-12):
244
+ 6. Implement data export endpoint including Segment analytics data
245
+ 7. Add automated retention enforcement with TTL-based cleanup jobs
246
+ ```
247
+
248
+ ### Example: Healthcare Platform with HIPAA Requirements
249
+
250
+ ```
251
+ Phase 1: SCAN
252
+ Frameworks detected:
253
+ - HIPAA: patient, diagnosis, prescription models in src/models/
254
+ - SOC2: Required by enterprise customers, docs/compliance/soc2/ present
255
+ Data stores: PostgreSQL (primary), Redis (session cache), AWS S3 (medical records)
256
+ Third-party processors: Twilio (patient notifications), AWS (infrastructure)
257
+ BAA status: AWS BAA signed, Twilio BAA signed
258
+
259
+ Phase 2: CLASSIFY
260
+ Critical (PHI):
261
+ - patient_records: name, DOB, SSN, diagnosis_code, treatment_plan
262
+ - prescriptions: medication, dosage, prescribing_physician
263
+ - medical_images: stored in S3 bucket 'patient-records-prod'
264
+ Sensitive: provider email, staff credentials, appointment schedules
265
+ PHI field count: 23 fields across 8 tables
266
+
267
+ Phase 3: AUDIT
268
+ HIPAA Security Rule: 72% compliant
269
+ 164.312(a)(1) — Access control exists but no automatic session logoff
270
+ 164.312(b) — Audit log captures reads but not all PHI access events
271
+ 164.312(c)(1) — No integrity checksums on medical records in S3
272
+ 164.312(e)(1) — TLS 1.2 in transit, AES-256 at rest in PostgreSQL and S3
273
+ SOC2: 81% compliant
274
+ All findings overlap with HIPAA gaps
275
+
276
+ Phase 4: REPORT
277
+ Generated: docs/compliance/hipaa-audit-2026-03-27.md
278
+ Remediation plan:
279
+ Critical (week 1-2):
280
+ 1. Add automatic session timeout (15 min idle) for clinical users
281
+ 2. Extend audit logging to capture all PHI read events with user context
282
+ 3. Add SHA-256 integrity checksums to S3 medical record objects
283
+ Important (week 3-6):
284
+ 4. Implement minimum necessary access — restrict PHI queries to treating providers
285
+ 5. Add PHI access review report for compliance officer (monthly)
286
+ Improvement (week 7-12):
287
+ 6. Implement emergency access ("break the glass") with post-access audit
288
+ 7. Add automated HIPAA compliance regression tests to CI pipeline
289
+ ```
290
+
291
+ ## Gates
292
+
293
+ - **No compliance report without data classification.** A compliance audit that does not inventory and classify data fields is incomplete. The classification matrix must be produced before controls can be meaningfully assessed. Without knowing what data exists and where, control checks are theoretical.
294
+ - **No critical control gaps left without remediation plan.** Every control marked "not met" must have a corresponding remediation item with effort estimate and priority. Identifying gaps without a path to closure is shelf-ware.
295
+ - **No PII/PHI field handling changes without re-audit.** When a PR adds or modifies fields classified as sensitive or critical, the compliance audit for affected frameworks must be re-run. Data handling changes can invalidate previous compliance assessments.
296
+ - **No third-party data sharing without documented basis.** Every third-party that receives user data must have a documented lawful basis (GDPR), BAA (HIPAA), or be within scope boundaries (SOC2/PCI-DSS). Undocumented data sharing is a blocking compliance gap.
297
+
298
+ ## Escalation
299
+
300
+ - **When compliance requirements conflict with business timelines:** Report: "The GDPR Article 17 implementation requires [N] engineering-hours and touches [M] services. If the audit deadline is [date], recommend prioritizing the critical controls and documenting a remediation timeline for the remaining gaps. Partial compliance with a credible plan is better than no plan."
301
+ - **When legal interpretation is needed:** Report: "The application of [specific regulation article] to [specific data handling pattern] requires legal interpretation. This skill identifies technical implementation gaps but cannot determine legal applicability. Recommend consulting with legal counsel on [specific question]."
302
+ - **When third-party processors lack required agreements:** Report: "[Processor] handles [data type] but no [BAA/DPA/SCC] is on file. This is a blocking compliance gap. Options: (1) execute the required agreement with the processor, (2) migrate to an alternative processor with agreements in place, (3) stop sending regulated data to this processor."
303
+ - **When audit trail implementation requires significant architecture changes:** Report: "The current logging infrastructure does not support immutable, tamper-evident audit trails required by [framework]. Options: (1) add append-only audit table with separate write credentials, (2) use a dedicated audit service (e.g., AWS CloudTrail, custom event store), (3) adopt event sourcing for regulated data flows. Effort estimate: [N] weeks."
@@ -0,0 +1,78 @@
1
+ name: harness-compliance
2
+ version: "1.0.0"
3
+ description: SOC2, HIPAA, GDPR compliance checks, audit trails, and regulatory checklists
4
+ cognitive_mode: meticulous-verifier
5
+ triggers:
6
+ - manual
7
+ - on_milestone
8
+ - on_pr
9
+ platforms:
10
+ - claude-code
11
+ - gemini-cli
12
+ tools:
13
+ - Bash
14
+ - Read
15
+ - Write
16
+ - Edit
17
+ - Glob
18
+ - Grep
19
+ - emit_interaction
20
+ cli:
21
+ command: harness skill run harness-compliance
22
+ args:
23
+ - name: path
24
+ description: Project root path
25
+ required: false
26
+ - name: framework
27
+ description: "Compliance framework: soc2, hipaa, gdpr, pci-dss, or all. Defaults to all detected."
28
+ required: false
29
+ - name: scope
30
+ description: "Audit scope: full, changed-only, or data-flows. Defaults to full."
31
+ required: false
32
+ mcp:
33
+ tool: run_skill
34
+ input:
35
+ skill: harness-compliance
36
+ path: string
37
+ type: rigid
38
+ tier: 3
39
+ internal: false
40
+ keywords:
41
+ - compliance
42
+ - SOC2
43
+ - HIPAA
44
+ - GDPR
45
+ - PCI-DSS
46
+ - audit trail
47
+ - data retention
48
+ - privacy
49
+ - PII
50
+ - data classification
51
+ - right to deletion
52
+ - consent
53
+ - DPA
54
+ stack_signals:
55
+ - "docs/compliance/"
56
+ - "audit/"
57
+ - "src/**/audit/**"
58
+ - "src/**/*gdpr*"
59
+ - "src/**/*privacy*"
60
+ - "SECURITY.md"
61
+ - "PRIVACY.md"
62
+ phases:
63
+ - name: scan
64
+ description: Detect applicable compliance frameworks and inventory data handling patterns
65
+ required: true
66
+ - name: classify
67
+ description: Classify data by sensitivity, identify PII flows, and map regulatory scope
68
+ required: true
69
+ - name: audit
70
+ description: Check implementation against framework-specific control requirements
71
+ required: true
72
+ - name: report
73
+ description: Generate compliance gap analysis, remediation plan, and audit-ready documentation
74
+ required: true
75
+ state:
76
+ persistent: false
77
+ files: []
78
+ depends_on: []
@@ -0,0 +1,284 @@
1
+ # Harness Containerization
2
+
3
+ > Dockerfile review, Kubernetes manifest validation, and container optimization. Smaller images, safer containers, correct orchestration.
4
+
5
+ ## When to Use
6
+
7
+ - When reviewing Dockerfiles for image size, security, and layer efficiency
8
+ - When auditing Kubernetes manifests, Helm charts, or docker-compose files
9
+ - On PRs that modify container configuration files
10
+ - NOT for CI/CD pipeline design (use harness-deployment)
11
+ - NOT for infrastructure provisioning (use harness-infrastructure-as-code)
12
+ - NOT for application-level security review (use harness-security-review)
13
+
14
+ ## Process
15
+
16
+ ### Phase 1: SCAN -- Discover Container Configuration
17
+
18
+ 1. **Locate container files.** Search the project for container-related configuration:
19
+ - `Dockerfile`, `Dockerfile.*` (multi-target builds)
20
+ - `docker-compose.yml`, `docker-compose.*.yml` (override files)
21
+ - `.dockerignore`
22
+ - `k8s/`, `kubernetes/`, `manifests/` directories
23
+ - `helm/`, `charts/` directories
24
+ - `skaffold.yaml`, `tilt.json` (dev tooling)
25
+
26
+ 2. **Identify base images.** Parse each Dockerfile for FROM directives:
27
+ - Record base image name, tag, and digest (if pinned)
28
+ - Flag images using `latest` tag
29
+ - Flag images from untrusted registries
30
+ - Note multi-stage build structure (builder vs. runtime stages)
31
+
32
+ 3. **Inventory Kubernetes resources.** Parse manifest files and record:
33
+ - Resource types (Deployment, Service, ConfigMap, Secret, Ingress, HPA)
34
+ - Namespaces used
35
+ - Image references in pod specs
36
+ - Resource requests and limits
37
+ - Volume mounts and persistent volume claims
38
+
39
+ 4. **Detect Helm usage.** If Helm charts exist:
40
+ - Parse `Chart.yaml` for version and dependencies
41
+ - Parse `values.yaml` for configurable parameters
42
+ - Identify template files and their output resource types
43
+
44
+ 5. **Present scan summary:**
45
+
46
+ ```
47
+ Container Scan:
48
+ Dockerfiles: 2 (app, worker)
49
+ Compose files: 1 (docker-compose.yml + docker-compose.dev.yml)
50
+ K8s manifests: 8 resources across 2 namespaces
51
+ Helm charts: 1 (app chart with 3 subcharts)
52
+ Base images: node:20-alpine, python:3.12-slim
53
+ ```
54
+
55
+ ---
56
+
57
+ ### Phase 2: ANALYZE -- Evaluate Best Practices
58
+
59
+ 1. **Analyze Dockerfile layer efficiency.** Check each Dockerfile for:
60
+ - COPY/ADD placement relative to dependency installation (cache busting)
61
+ - Multi-stage builds separating build dependencies from runtime
62
+ - Layer count optimization (combining related RUN commands)
63
+ - Unnecessary files copied into the image (node_modules, .git, tests)
64
+ - `.dockerignore` completeness
65
+
66
+ 2. **Check container security posture.** Evaluate:
67
+ - Running as non-root user (USER directive present)
68
+ - No secrets in build args or environment variables
69
+ - Base image currency (is the tag reasonably current)
70
+ - HEALTHCHECK directive present
71
+ - Read-only filesystem where possible
72
+ - No privileged mode in compose or K8s specs
73
+ - Security contexts in Kubernetes pod specs (runAsNonRoot, readOnlyRootFilesystem)
74
+
75
+ 3. **Evaluate Kubernetes resource definitions.** For each Deployment/StatefulSet:
76
+ - Resource requests and limits are set (CPU and memory)
77
+ - Liveness and readiness probes are configured
78
+ - Pod disruption budgets exist for production workloads
79
+ - Horizontal pod autoscaler is configured where appropriate
80
+ - Image pull policy is set (Always for mutable tags, IfNotPresent for digests)
81
+
82
+ 4. **Analyze docker-compose configuration.** Check for:
83
+ - Service dependency ordering (depends_on with health checks)
84
+ - Volume mount correctness (host paths vs. named volumes)
85
+ - Network isolation between services
86
+ - Environment variable management (env_file vs. inline)
87
+ - Port mapping conflicts
88
+
89
+ 5. **Check image tag strategy.** Verify:
90
+ - Production images use immutable tags (semver or digest)
91
+ - Development images use descriptive tags (branch name, commit SHA)
92
+ - No `latest` tag in production manifests
93
+ - Registry URL is consistent across all references
94
+
95
+ ---
96
+
97
+ ### Phase 3: OPTIMIZE -- Recommend Improvements
98
+
99
+ 1. **Recommend image size reduction.** For each Dockerfile:
100
+ - Switch to minimal base images (alpine, distroless, scratch)
101
+ - Remove build-only dependencies in multi-stage builds
102
+ - Use `.dockerignore` to exclude test files, docs, and dev configs
103
+ - Estimate size savings for each recommendation
104
+
105
+ 2. **Recommend build performance improvements.**
106
+ - Reorder COPY directives to maximize layer cache hits
107
+ - Use BuildKit features (cache mounts for package managers)
108
+ - Split slow-changing layers (OS packages) from fast-changing layers (app code)
109
+ - Example for Node.js:
110
+
111
+ ```dockerfile
112
+ # Good: dependency layer cached separately
113
+ COPY package.json package-lock.json ./
114
+ RUN npm ci --production
115
+ COPY src/ ./src/
116
+ ```
117
+
118
+ 3. **Recommend Kubernetes improvements.**
119
+ - Add missing resource limits with reasonable defaults
120
+ - Configure probes with appropriate initial delays and periods
121
+ - Add pod anti-affinity for high-availability workloads
122
+ - Recommend namespace isolation for multi-tenant clusters
123
+ - Add network policies to restrict pod-to-pod communication
124
+
125
+ 4. **Recommend security hardening.**
126
+ - Add non-root USER directive with specific UID
127
+ - Add security context to Kubernetes pods
128
+ - Pin base images to digest for supply chain security
129
+ - Remove unnecessary capabilities (drop ALL, add only what is needed)
130
+
131
+ 5. **Generate optimization summary with estimated impact:**
132
+
133
+ ```
134
+ Optimization Summary:
135
+ Image size: 850MB -> ~180MB (switch to alpine + multi-stage)
136
+ Build time: ~4m -> ~2m (layer reordering + cache mounts)
137
+ Security: 3 findings (non-root, capabilities, image pinning)
138
+ K8s: 5 resources missing resource limits
139
+ ```
140
+
141
+ ---
142
+
143
+ ### Phase 4: VALIDATE -- Verify Configuration Correctness
144
+
145
+ 1. **Validate Dockerfile syntax.** Run `docker build --check` or parse for common errors:
146
+ - Invalid instruction ordering (e.g., CMD before COPY)
147
+ - Missing required arguments
148
+ - Deprecated instructions (MAINTAINER)
149
+ - Shell form vs. exec form for CMD/ENTRYPOINT
150
+
151
+ 2. **Validate Kubernetes manifests.** Check for:
152
+ - Valid YAML structure
153
+ - Required fields present (apiVersion, kind, metadata, spec)
154
+ - Label selectors match between Deployment and Service
155
+ - Port numbers are consistent across Service and container specs
156
+ - ConfigMap and Secret references resolve to existing resources
157
+
158
+ 3. **Validate Helm charts.** If Helm is used:
159
+ - `helm lint` passes
160
+ - Template rendering with default values produces valid manifests
161
+ - Values schema matches actual usage in templates
162
+ - Dependencies are declared and version-locked
163
+
164
+ 4. **Validate docker-compose.** Check for:
165
+ - Valid YAML and compose file version
166
+ - All referenced images exist or have build contexts
167
+ - Port mappings do not conflict
168
+ - Named volumes are declared in the top-level volumes section
169
+ - Networks are declared before use
170
+
171
+ 5. **Generate validation report:**
172
+
173
+ ```
174
+ Container Validation: [PASS/WARN/FAIL]
175
+
176
+ Dockerfiles: PASS (2/2 valid)
177
+ K8s manifests: WARN (label mismatch in worker-service.yaml)
178
+ Helm chart: PASS (lint clean)
179
+ Compose: PASS (valid structure)
180
+
181
+ Issues:
182
+ 1. k8s/worker-service.yaml: selector "app: worker" does not match
183
+ deployment label "app: worker-v2" -- requests will not route
184
+ ```
185
+
186
+ ---
187
+
188
+ ## Harness Integration
189
+
190
+ - **`harness skill run harness-containerization`** -- Primary invocation for container review.
191
+ - **`harness validate`** -- Run after configuration changes to verify project health.
192
+ - **`harness check-deps`** -- Verify container tooling dependencies are available.
193
+ - **`emit_interaction`** -- Present optimization recommendations and gather decisions.
194
+
195
+ ## Success Criteria
196
+
197
+ - All container configuration files in the project are discovered and cataloged
198
+ - Dockerfiles are analyzed for layer efficiency, security, and size
199
+ - Kubernetes manifests are validated for correctness and best practices
200
+ - Resource requests and limits are verified for all production workloads
201
+ - Image tag strategy is evaluated (no `latest` in production)
202
+ - Optimization recommendations include estimated impact
203
+
204
+ ## Examples
205
+
206
+ ### Example: Node.js Monorepo with Docker and Kubernetes
207
+
208
+ ```
209
+ Phase 1: SCAN
210
+ Found: Dockerfile (app), Dockerfile.worker, docker-compose.dev.yml
211
+ K8s: 12 manifests in k8s/ (2 Deployments, 2 Services, 2 ConfigMaps,
212
+ 2 HPA, 2 Ingress, 2 PDB)
213
+ Base images: node:20 (not alpine), node:20 (worker)
214
+
215
+ Phase 2: ANALYZE
216
+ Dockerfile issues:
217
+ - node:20 full image (940MB) -- use node:20-alpine (180MB)
218
+ - No .dockerignore -- node_modules and .git copied into image
219
+ - No USER directive -- running as root
220
+ - No HEALTHCHECK
221
+ K8s issues:
222
+ - worker deployment missing memory limits
223
+ - No network policies defined
224
+ - Liveness probe on /healthz but no readiness probe
225
+
226
+ Phase 3: OPTIMIZE
227
+ 1. Switch to node:20-alpine -- saves ~760MB per image
228
+ 2. Add .dockerignore with node_modules, .git, tests, docs
229
+ 3. Add multi-stage build: builder stage for npm ci, runtime for app
230
+ 4. Add USER node (UID 1000) after COPY
231
+ 5. Add readiness probe on /ready endpoint
232
+ 6. Add memory limit of 512Mi to worker deployment
233
+
234
+ Phase 4: VALIDATE
235
+ Dockerfiles: WARN (2 security findings, 1 size finding)
236
+ K8s manifests: WARN (missing limits, missing readiness probe)
237
+ Compose: PASS
238
+ Result: WARN -- 6 actionable improvements identified
239
+ ```
240
+
241
+ ### Example: Python FastAPI with Helm and Distroless
242
+
243
+ ```
244
+ Phase 1: SCAN
245
+ Found: Dockerfile (multi-stage with distroless runtime)
246
+ Helm chart: charts/api/ with values.yaml
247
+ Base images: python:3.12-slim (builder), gcr.io/distroless/python3 (runtime)
248
+
249
+ Phase 2: ANALYZE
250
+ Dockerfile: Well-structured multi-stage build
251
+ - Builder installs dependencies, runtime copies only venv
252
+ - Distroless base (no shell, minimal attack surface)
253
+ - Non-root user configured
254
+ Helm:
255
+ - Resource limits set in values.yaml
256
+ - Probes configured with appropriate timeouts
257
+ - HPA configured for 2-10 replicas
258
+
259
+ Phase 3: OPTIMIZE
260
+ Minor recommendations only:
261
+ - Pin distroless image to digest for reproducibility
262
+ - Add --mount=type=cache for pip downloads in builder stage
263
+ - Add pod anti-affinity to spread replicas across nodes
264
+
265
+ Phase 4: VALIDATE
266
+ Dockerfile: PASS
267
+ Helm lint: PASS
268
+ Template render: PASS (all values resolve)
269
+ Result: PASS -- well-configured container setup
270
+ ```
271
+
272
+ ## Gates
273
+
274
+ - **No `latest` tag in production manifests.** Production Kubernetes manifests or compose files using `latest` image tags are blocking findings. Immutable tags or digests are required.
275
+ - **No containers running as root in production.** Missing USER directive in Dockerfiles or missing security context in K8s pods targeting production are blocking findings.
276
+ - **No missing resource limits in production.** Kubernetes Deployments without CPU and memory limits are blocking warnings for production namespaces.
277
+ - **No invalid manifest references.** Label selector mismatches between Services and Deployments, or ConfigMap/Secret references to nonexistent resources, are blocking errors.
278
+
279
+ ## Escalation
280
+
281
+ - **When base images have known CVEs:** Flag the specific CVEs and recommend upgrading to a patched version. If no patched version exists, recommend an alternative base image and document the migration path.
282
+ - **When Kubernetes manifest complexity exceeds review scope:** For clusters with 50+ resources, recommend focusing on changed resources only (`--changed-only` flag) and scheduling a full audit separately.
283
+ - **When Helm chart dependencies are outdated:** Report the version gap and recommend updating. If the update includes breaking changes, flag it as a decision point and present the changelog.
284
+ - **When docker-compose is used for production:** Flag this as an architectural concern. Docker Compose is appropriate for development but production workloads should use an orchestrator (Kubernetes, ECS, Cloud Run). Present migration options.