@harness-engineering/cli 1.14.0 → 1.16.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 (499) hide show
  1. package/dist/agents/commands/codex/AGENTS.md +39 -0
  2. package/dist/agents/commands/codex/harness/add-harness-component/SKILL.md +195 -0
  3. package/dist/agents/commands/codex/harness/add-harness-component/agents/openai.yaml +3 -0
  4. package/dist/agents/commands/codex/harness/cleanup-dead-code/SKILL.md +248 -0
  5. package/dist/agents/commands/codex/harness/cleanup-dead-code/agents/openai.yaml +3 -0
  6. package/dist/agents/commands/codex/harness/detect-doc-drift/SKILL.md +182 -0
  7. package/dist/agents/commands/codex/harness/detect-doc-drift/agents/openai.yaml +3 -0
  8. package/dist/agents/commands/codex/harness/enforce-architecture/SKILL.md +299 -0
  9. package/dist/agents/commands/codex/harness/enforce-architecture/agents/openai.yaml +3 -0
  10. package/dist/agents/commands/codex/harness/harness-architecture-advisor/SKILL.md +452 -0
  11. package/dist/agents/commands/codex/harness/harness-architecture-advisor/agents/openai.yaml +3 -0
  12. package/dist/agents/commands/codex/harness/harness-autopilot/SKILL.md +919 -0
  13. package/dist/agents/commands/codex/harness/harness-autopilot/agents/openai.yaml +3 -0
  14. package/dist/agents/commands/codex/harness/harness-brainstorming/SKILL.md +409 -0
  15. package/dist/agents/commands/codex/harness/harness-brainstorming/agents/openai.yaml +3 -0
  16. package/dist/agents/commands/codex/harness/harness-code-review/SKILL.md +860 -0
  17. package/dist/agents/commands/codex/harness/harness-code-review/agents/openai.yaml +3 -0
  18. package/dist/agents/commands/codex/harness/harness-codebase-cleanup/SKILL.md +227 -0
  19. package/dist/agents/commands/codex/harness/harness-codebase-cleanup/agents/openai.yaml +3 -0
  20. package/dist/agents/commands/codex/harness/harness-debugging/SKILL.md +369 -0
  21. package/dist/agents/commands/codex/harness/harness-debugging/agents/openai.yaml +3 -0
  22. package/dist/agents/commands/codex/harness/harness-dependency-health/SKILL.md +182 -0
  23. package/dist/agents/commands/codex/harness/harness-dependency-health/agents/openai.yaml +3 -0
  24. package/dist/agents/commands/codex/harness/harness-docs-pipeline/SKILL.md +463 -0
  25. package/dist/agents/commands/codex/harness/harness-docs-pipeline/agents/openai.yaml +3 -0
  26. package/dist/agents/commands/codex/harness/harness-execution/SKILL.md +513 -0
  27. package/dist/agents/commands/codex/harness/harness-execution/agents/openai.yaml +3 -0
  28. package/dist/agents/commands/codex/harness/harness-hotspot-detector/SKILL.md +164 -0
  29. package/dist/agents/commands/codex/harness/harness-hotspot-detector/agents/openai.yaml +3 -0
  30. package/dist/agents/commands/codex/harness/harness-impact-analysis/SKILL.md +187 -0
  31. package/dist/agents/commands/codex/harness/harness-impact-analysis/agents/openai.yaml +3 -0
  32. package/dist/agents/commands/codex/harness/harness-integrity/SKILL.md +170 -0
  33. package/dist/agents/commands/codex/harness/harness-integrity/agents/openai.yaml +3 -0
  34. package/dist/agents/commands/codex/harness/harness-onboarding/SKILL.md +291 -0
  35. package/dist/agents/commands/codex/harness/harness-onboarding/agents/openai.yaml +3 -0
  36. package/dist/agents/commands/codex/harness/harness-perf/SKILL.md +263 -0
  37. package/dist/agents/commands/codex/harness/harness-perf/agents/openai.yaml +3 -0
  38. package/dist/agents/commands/codex/harness/harness-planning/SKILL.md +582 -0
  39. package/dist/agents/commands/codex/harness/harness-planning/agents/openai.yaml +3 -0
  40. package/dist/agents/commands/codex/harness/harness-refactoring/SKILL.md +172 -0
  41. package/dist/agents/commands/codex/harness/harness-refactoring/agents/openai.yaml +3 -0
  42. package/dist/agents/commands/codex/harness/harness-release-readiness/SKILL.md +692 -0
  43. package/dist/agents/commands/codex/harness/harness-release-readiness/agents/openai.yaml +3 -0
  44. package/dist/agents/commands/codex/harness/harness-roadmap/SKILL.md +598 -0
  45. package/dist/agents/commands/codex/harness/harness-roadmap/agents/openai.yaml +3 -0
  46. package/dist/agents/commands/codex/harness/harness-security-scan/SKILL.md +157 -0
  47. package/dist/agents/commands/codex/harness/harness-security-scan/agents/openai.yaml +3 -0
  48. package/dist/agents/commands/codex/harness/harness-skill-authoring/SKILL.md +295 -0
  49. package/dist/agents/commands/codex/harness/harness-skill-authoring/agents/openai.yaml +3 -0
  50. package/dist/agents/commands/codex/harness/harness-soundness-review/SKILL.md +1270 -0
  51. package/dist/agents/commands/codex/harness/harness-soundness-review/agents/openai.yaml +3 -0
  52. package/dist/agents/commands/codex/harness/harness-supply-chain-audit/SKILL.md +247 -0
  53. package/dist/agents/commands/codex/harness/harness-supply-chain-audit/agents/openai.yaml +3 -0
  54. package/dist/agents/commands/codex/harness/harness-tdd/SKILL.md +180 -0
  55. package/dist/agents/commands/codex/harness/harness-tdd/agents/openai.yaml +3 -0
  56. package/dist/agents/commands/codex/harness/harness-test-advisor/SKILL.md +163 -0
  57. package/dist/agents/commands/codex/harness/harness-test-advisor/agents/openai.yaml +3 -0
  58. package/dist/agents/commands/codex/harness/harness-verification/SKILL.md +424 -0
  59. package/dist/agents/commands/codex/harness/harness-verification/agents/openai.yaml +3 -0
  60. package/dist/agents/commands/codex/harness/harness-verify/SKILL.md +162 -0
  61. package/dist/agents/commands/codex/harness/harness-verify/agents/openai.yaml +3 -0
  62. package/dist/agents/commands/codex/harness/initialize-harness-project/SKILL.md +235 -0
  63. package/dist/agents/commands/codex/harness/initialize-harness-project/agents/openai.yaml +3 -0
  64. package/dist/agents/commands/cursor/harness/add-harness-component.mdc +200 -0
  65. package/dist/agents/commands/cursor/harness/cleanup-dead-code.mdc +253 -0
  66. package/dist/agents/commands/cursor/harness/detect-doc-drift.mdc +187 -0
  67. package/dist/agents/commands/cursor/harness/enforce-architecture.mdc +304 -0
  68. package/dist/agents/commands/cursor/harness/harness-architecture-advisor.mdc +457 -0
  69. package/dist/agents/commands/cursor/harness/harness-autopilot.mdc +924 -0
  70. package/dist/agents/commands/cursor/harness/harness-brainstorming.mdc +414 -0
  71. package/dist/agents/commands/cursor/harness/harness-code-review.mdc +865 -0
  72. package/dist/agents/commands/cursor/harness/harness-codebase-cleanup.mdc +232 -0
  73. package/dist/agents/commands/cursor/harness/harness-debugging.mdc +374 -0
  74. package/dist/agents/commands/cursor/harness/harness-dependency-health.mdc +187 -0
  75. package/dist/agents/commands/cursor/harness/harness-docs-pipeline.mdc +468 -0
  76. package/dist/agents/commands/cursor/harness/harness-execution.mdc +518 -0
  77. package/dist/agents/commands/cursor/harness/harness-hotspot-detector.mdc +169 -0
  78. package/dist/agents/commands/cursor/harness/harness-impact-analysis.mdc +192 -0
  79. package/dist/agents/commands/cursor/harness/harness-integrity.mdc +175 -0
  80. package/dist/agents/commands/cursor/harness/harness-onboarding.mdc +296 -0
  81. package/dist/agents/commands/cursor/harness/harness-perf.mdc +268 -0
  82. package/dist/agents/commands/cursor/harness/harness-planning.mdc +587 -0
  83. package/dist/agents/commands/cursor/harness/harness-refactoring.mdc +177 -0
  84. package/dist/agents/commands/cursor/harness/harness-release-readiness.mdc +697 -0
  85. package/dist/agents/commands/cursor/harness/harness-roadmap.mdc +603 -0
  86. package/dist/agents/commands/cursor/harness/harness-security-scan.mdc +162 -0
  87. package/dist/agents/commands/cursor/harness/harness-skill-authoring.mdc +300 -0
  88. package/dist/agents/commands/cursor/harness/harness-soundness-review.mdc +1275 -0
  89. package/dist/agents/commands/cursor/harness/harness-supply-chain-audit.mdc +252 -0
  90. package/dist/agents/commands/cursor/harness/harness-tdd.mdc +185 -0
  91. package/dist/agents/commands/cursor/harness/harness-test-advisor.mdc +168 -0
  92. package/dist/agents/commands/cursor/harness/harness-verification.mdc +429 -0
  93. package/dist/agents/commands/cursor/harness/harness-verify.mdc +167 -0
  94. package/dist/agents/commands/cursor/harness/initialize-harness-project.mdc +240 -0
  95. package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +52 -0
  96. package/dist/agents/skills/claude-code/harness-api-design/SKILL.md +52 -0
  97. package/dist/agents/skills/claude-code/harness-architecture-advisor/SKILL.md +52 -0
  98. package/dist/agents/skills/claude-code/harness-auth/SKILL.md +52 -0
  99. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +355 -45
  100. package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +12 -0
  101. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +97 -3
  102. package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +6 -0
  103. package/dist/agents/skills/claude-code/harness-codebase-cleanup/SKILL.md +2 -4
  104. package/dist/agents/skills/claude-code/harness-database/SKILL.md +52 -0
  105. package/dist/agents/skills/claude-code/harness-deployment/SKILL.md +52 -0
  106. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +99 -3
  107. package/dist/agents/skills/claude-code/harness-planning/skill.yaml +6 -0
  108. package/dist/agents/skills/claude-code/harness-pre-commit-review/SKILL.md +1 -1
  109. package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +5 -5
  110. package/dist/agents/skills/claude-code/harness-security-review/SKILL.md +27 -7
  111. package/dist/agents/skills/claude-code/harness-security-scan/SKILL.md +52 -0
  112. package/dist/agents/skills/claude-code/harness-supply-chain-audit/SKILL.md +281 -0
  113. package/dist/agents/skills/claude-code/harness-supply-chain-audit/skill.yaml +51 -0
  114. package/dist/agents/skills/codex/add-harness-component/SKILL.md +192 -0
  115. package/dist/agents/skills/codex/add-harness-component/skill.yaml +33 -0
  116. package/dist/agents/skills/codex/align-documentation/SKILL.md +213 -0
  117. package/dist/agents/skills/codex/align-documentation/skill.yaml +32 -0
  118. package/dist/agents/skills/codex/check-mechanical-constraints/SKILL.md +191 -0
  119. package/dist/agents/skills/codex/check-mechanical-constraints/skill.yaml +33 -0
  120. package/dist/agents/skills/codex/cleanup-dead-code/SKILL.md +245 -0
  121. package/dist/agents/skills/codex/cleanup-dead-code/skill.yaml +34 -0
  122. package/dist/agents/skills/codex/detect-doc-drift/SKILL.md +179 -0
  123. package/dist/agents/skills/codex/detect-doc-drift/skill.yaml +31 -0
  124. package/dist/agents/skills/codex/enforce-architecture/SKILL.md +296 -0
  125. package/dist/agents/skills/codex/enforce-architecture/skill.yaml +35 -0
  126. package/dist/agents/skills/codex/harness-accessibility/SKILL.md +281 -0
  127. package/dist/agents/skills/codex/harness-accessibility/skill.yaml +52 -0
  128. package/dist/agents/skills/codex/harness-api-design/SKILL.md +356 -0
  129. package/dist/agents/skills/codex/harness-api-design/skill.yaml +74 -0
  130. package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +449 -0
  131. package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +49 -0
  132. package/dist/agents/skills/codex/harness-auth/SKILL.md +331 -0
  133. package/dist/agents/skills/codex/harness-auth/skill.yaml +81 -0
  134. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +916 -0
  135. package/dist/agents/skills/codex/harness-autopilot/skill.yaml +67 -0
  136. package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +406 -0
  137. package/dist/agents/skills/codex/harness-brainstorming/skill.yaml +50 -0
  138. package/dist/agents/skills/codex/harness-caching/SKILL.md +309 -0
  139. package/dist/agents/skills/codex/harness-caching/skill.yaml +73 -0
  140. package/dist/agents/skills/codex/harness-chaos/SKILL.md +295 -0
  141. package/dist/agents/skills/codex/harness-chaos/skill.yaml +72 -0
  142. package/dist/agents/skills/codex/harness-code-review/SKILL.md +857 -0
  143. package/dist/agents/skills/codex/harness-code-review/skill.yaml +52 -0
  144. package/dist/agents/skills/codex/harness-codebase-cleanup/SKILL.md +224 -0
  145. package/dist/agents/skills/codex/harness-codebase-cleanup/skill.yaml +65 -0
  146. package/dist/agents/skills/codex/harness-compliance/SKILL.md +303 -0
  147. package/dist/agents/skills/codex/harness-compliance/skill.yaml +78 -0
  148. package/dist/agents/skills/codex/harness-containerization/SKILL.md +284 -0
  149. package/dist/agents/skills/codex/harness-containerization/skill.yaml +80 -0
  150. package/dist/agents/skills/codex/harness-data-pipeline/SKILL.md +274 -0
  151. package/dist/agents/skills/codex/harness-data-pipeline/skill.yaml +81 -0
  152. package/dist/agents/skills/codex/harness-data-validation/SKILL.md +343 -0
  153. package/dist/agents/skills/codex/harness-data-validation/skill.yaml +75 -0
  154. package/dist/agents/skills/codex/harness-database/SKILL.md +310 -0
  155. package/dist/agents/skills/codex/harness-database/skill.yaml +80 -0
  156. package/dist/agents/skills/codex/harness-debugging/SKILL.md +366 -0
  157. package/dist/agents/skills/codex/harness-debugging/skill.yaml +48 -0
  158. package/dist/agents/skills/codex/harness-dependency-health/SKILL.md +179 -0
  159. package/dist/agents/skills/codex/harness-dependency-health/skill.yaml +42 -0
  160. package/dist/agents/skills/codex/harness-deployment/SKILL.md +307 -0
  161. package/dist/agents/skills/codex/harness-deployment/skill.yaml +77 -0
  162. package/dist/agents/skills/codex/harness-design/SKILL.md +265 -0
  163. package/dist/agents/skills/codex/harness-design/skill.yaml +54 -0
  164. package/dist/agents/skills/codex/harness-design-mobile/SKILL.md +336 -0
  165. package/dist/agents/skills/codex/harness-design-mobile/skill.yaml +50 -0
  166. package/dist/agents/skills/codex/harness-design-system/SKILL.md +282 -0
  167. package/dist/agents/skills/codex/harness-design-system/skill.yaml +51 -0
  168. package/dist/agents/skills/codex/harness-design-web/SKILL.md +360 -0
  169. package/dist/agents/skills/codex/harness-design-web/skill.yaml +53 -0
  170. package/dist/agents/skills/codex/harness-diagnostics/SKILL.md +318 -0
  171. package/dist/agents/skills/codex/harness-diagnostics/skill.yaml +51 -0
  172. package/dist/agents/skills/codex/harness-docs-pipeline/SKILL.md +460 -0
  173. package/dist/agents/skills/codex/harness-docs-pipeline/skill.yaml +70 -0
  174. package/dist/agents/skills/codex/harness-dx/SKILL.md +276 -0
  175. package/dist/agents/skills/codex/harness-dx/skill.yaml +76 -0
  176. package/dist/agents/skills/codex/harness-e2e/SKILL.md +245 -0
  177. package/dist/agents/skills/codex/harness-e2e/skill.yaml +78 -0
  178. package/dist/agents/skills/codex/harness-event-driven/SKILL.md +280 -0
  179. package/dist/agents/skills/codex/harness-event-driven/skill.yaml +77 -0
  180. package/dist/agents/skills/codex/harness-execution/SKILL.md +510 -0
  181. package/dist/agents/skills/codex/harness-execution/skill.yaml +52 -0
  182. package/dist/agents/skills/codex/harness-feature-flags/SKILL.md +287 -0
  183. package/dist/agents/skills/codex/harness-feature-flags/skill.yaml +74 -0
  184. package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +268 -0
  185. package/dist/agents/skills/codex/harness-git-workflow/skill.yaml +32 -0
  186. package/dist/agents/skills/codex/harness-hotspot-detector/SKILL.md +161 -0
  187. package/dist/agents/skills/codex/harness-hotspot-detector/skill.yaml +45 -0
  188. package/dist/agents/skills/codex/harness-i18n/SKILL.md +484 -0
  189. package/dist/agents/skills/codex/harness-i18n/skill.yaml +55 -0
  190. package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +388 -0
  191. package/dist/agents/skills/codex/harness-i18n-process/skill.yaml +44 -0
  192. package/dist/agents/skills/codex/harness-i18n-workflow/SKILL.md +512 -0
  193. package/dist/agents/skills/codex/harness-i18n-workflow/skill.yaml +54 -0
  194. package/dist/agents/skills/codex/harness-impact-analysis/SKILL.md +184 -0
  195. package/dist/agents/skills/codex/harness-impact-analysis/skill.yaml +45 -0
  196. package/dist/agents/skills/codex/harness-incident-response/SKILL.md +223 -0
  197. package/dist/agents/skills/codex/harness-incident-response/skill.yaml +78 -0
  198. package/dist/agents/skills/codex/harness-infrastructure-as-code/SKILL.md +279 -0
  199. package/dist/agents/skills/codex/harness-infrastructure-as-code/skill.yaml +80 -0
  200. package/dist/agents/skills/codex/harness-integration-test/SKILL.md +271 -0
  201. package/dist/agents/skills/codex/harness-integration-test/skill.yaml +73 -0
  202. package/dist/agents/skills/codex/harness-integrity/SKILL.md +167 -0
  203. package/dist/agents/skills/codex/harness-integrity/skill.yaml +48 -0
  204. package/dist/agents/skills/codex/harness-knowledge-mapper/SKILL.md +195 -0
  205. package/dist/agents/skills/codex/harness-knowledge-mapper/skill.yaml +50 -0
  206. package/dist/agents/skills/codex/harness-load-testing/SKILL.md +274 -0
  207. package/dist/agents/skills/codex/harness-load-testing/skill.yaml +79 -0
  208. package/dist/agents/skills/codex/harness-ml-ops/SKILL.md +341 -0
  209. package/dist/agents/skills/codex/harness-ml-ops/skill.yaml +79 -0
  210. package/dist/agents/skills/codex/harness-mobile-patterns/SKILL.md +326 -0
  211. package/dist/agents/skills/codex/harness-mobile-patterns/skill.yaml +82 -0
  212. package/dist/agents/skills/codex/harness-mutation-test/SKILL.md +251 -0
  213. package/dist/agents/skills/codex/harness-mutation-test/skill.yaml +70 -0
  214. package/dist/agents/skills/codex/harness-observability/SKILL.md +283 -0
  215. package/dist/agents/skills/codex/harness-observability/skill.yaml +78 -0
  216. package/dist/agents/skills/codex/harness-onboarding/SKILL.md +288 -0
  217. package/dist/agents/skills/codex/harness-onboarding/skill.yaml +31 -0
  218. package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +256 -0
  219. package/dist/agents/skills/codex/harness-parallel-agents/skill.yaml +34 -0
  220. package/dist/agents/skills/codex/harness-perf/SKILL.md +260 -0
  221. package/dist/agents/skills/codex/harness-perf/skill.yaml +51 -0
  222. package/dist/agents/skills/codex/harness-perf-tdd/SKILL.md +249 -0
  223. package/dist/agents/skills/codex/harness-perf-tdd/skill.yaml +48 -0
  224. package/dist/agents/skills/codex/harness-planning/SKILL.md +579 -0
  225. package/dist/agents/skills/codex/harness-planning/skill.yaml +56 -0
  226. package/dist/agents/skills/codex/harness-pre-commit-review/SKILL.md +324 -0
  227. package/dist/agents/skills/codex/harness-pre-commit-review/skill.yaml +34 -0
  228. package/dist/agents/skills/codex/harness-product-spec/SKILL.md +285 -0
  229. package/dist/agents/skills/codex/harness-product-spec/skill.yaml +72 -0
  230. package/dist/agents/skills/codex/harness-property-test/SKILL.md +281 -0
  231. package/dist/agents/skills/codex/harness-property-test/skill.yaml +71 -0
  232. package/dist/agents/skills/codex/harness-refactoring/SKILL.md +169 -0
  233. package/dist/agents/skills/codex/harness-refactoring/skill.yaml +34 -0
  234. package/dist/agents/skills/codex/harness-release-readiness/SKILL.md +689 -0
  235. package/dist/agents/skills/codex/harness-release-readiness/skill.yaml +58 -0
  236. package/dist/agents/skills/codex/harness-resilience/SKILL.md +255 -0
  237. package/dist/agents/skills/codex/harness-resilience/skill.yaml +76 -0
  238. package/dist/agents/skills/codex/harness-roadmap/SKILL.md +595 -0
  239. package/dist/agents/skills/codex/harness-roadmap/skill.yaml +44 -0
  240. package/dist/agents/skills/codex/harness-secrets/SKILL.md +293 -0
  241. package/dist/agents/skills/codex/harness-secrets/skill.yaml +76 -0
  242. package/dist/agents/skills/codex/harness-security-review/SKILL.md +260 -0
  243. package/dist/agents/skills/codex/harness-security-review/skill.yaml +53 -0
  244. package/dist/agents/skills/codex/harness-security-scan/SKILL.md +154 -0
  245. package/dist/agents/skills/codex/harness-security-scan/skill.yaml +42 -0
  246. package/dist/agents/skills/codex/harness-skill-authoring/SKILL.md +292 -0
  247. package/dist/agents/skills/codex/harness-skill-authoring/skill.yaml +33 -0
  248. package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +1267 -0
  249. package/dist/agents/skills/codex/harness-soundness-review/skill.yaml +49 -0
  250. package/dist/agents/skills/codex/harness-sql-review/SKILL.md +315 -0
  251. package/dist/agents/skills/codex/harness-sql-review/skill.yaml +74 -0
  252. package/dist/agents/skills/codex/harness-state-management/SKILL.md +309 -0
  253. package/dist/agents/skills/codex/harness-state-management/skill.yaml +33 -0
  254. package/dist/agents/skills/codex/harness-supply-chain-audit/SKILL.md +281 -0
  255. package/dist/agents/skills/codex/harness-supply-chain-audit/skill.yaml +51 -0
  256. package/dist/agents/skills/codex/harness-tdd/SKILL.md +177 -0
  257. package/dist/agents/skills/codex/harness-tdd/skill.yaml +49 -0
  258. package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +160 -0
  259. package/dist/agents/skills/codex/harness-test-advisor/skill.yaml +45 -0
  260. package/dist/agents/skills/codex/harness-test-data/SKILL.md +268 -0
  261. package/dist/agents/skills/codex/harness-test-data/skill.yaml +74 -0
  262. package/dist/agents/skills/codex/harness-ux-copy/SKILL.md +271 -0
  263. package/dist/agents/skills/codex/harness-ux-copy/skill.yaml +77 -0
  264. package/dist/agents/skills/codex/harness-verification/SKILL.md +421 -0
  265. package/dist/agents/skills/codex/harness-verification/skill.yaml +43 -0
  266. package/dist/agents/skills/codex/harness-verify/SKILL.md +159 -0
  267. package/dist/agents/skills/codex/harness-verify/skill.yaml +41 -0
  268. package/dist/agents/skills/codex/harness-visual-regression/SKILL.md +257 -0
  269. package/dist/agents/skills/codex/harness-visual-regression/skill.yaml +74 -0
  270. package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +232 -0
  271. package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +32 -0
  272. package/dist/agents/skills/codex/validate-context-engineering/SKILL.md +150 -0
  273. package/dist/agents/skills/codex/validate-context-engineering/skill.yaml +32 -0
  274. package/dist/agents/skills/cursor/add-harness-component/SKILL.md +192 -0
  275. package/dist/agents/skills/cursor/add-harness-component/skill.yaml +33 -0
  276. package/dist/agents/skills/cursor/align-documentation/SKILL.md +213 -0
  277. package/dist/agents/skills/cursor/align-documentation/skill.yaml +32 -0
  278. package/dist/agents/skills/cursor/check-mechanical-constraints/SKILL.md +191 -0
  279. package/dist/agents/skills/cursor/check-mechanical-constraints/skill.yaml +33 -0
  280. package/dist/agents/skills/cursor/cleanup-dead-code/SKILL.md +245 -0
  281. package/dist/agents/skills/cursor/cleanup-dead-code/skill.yaml +34 -0
  282. package/dist/agents/skills/cursor/detect-doc-drift/SKILL.md +179 -0
  283. package/dist/agents/skills/cursor/detect-doc-drift/skill.yaml +31 -0
  284. package/dist/agents/skills/cursor/enforce-architecture/SKILL.md +296 -0
  285. package/dist/agents/skills/cursor/enforce-architecture/skill.yaml +35 -0
  286. package/dist/agents/skills/cursor/harness-accessibility/SKILL.md +281 -0
  287. package/dist/agents/skills/cursor/harness-accessibility/skill.yaml +52 -0
  288. package/dist/agents/skills/cursor/harness-api-design/SKILL.md +356 -0
  289. package/dist/agents/skills/cursor/harness-api-design/skill.yaml +74 -0
  290. package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +449 -0
  291. package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +49 -0
  292. package/dist/agents/skills/cursor/harness-auth/SKILL.md +331 -0
  293. package/dist/agents/skills/cursor/harness-auth/skill.yaml +81 -0
  294. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +916 -0
  295. package/dist/agents/skills/cursor/harness-autopilot/skill.yaml +67 -0
  296. package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +406 -0
  297. package/dist/agents/skills/cursor/harness-brainstorming/skill.yaml +50 -0
  298. package/dist/agents/skills/cursor/harness-caching/SKILL.md +309 -0
  299. package/dist/agents/skills/cursor/harness-caching/skill.yaml +73 -0
  300. package/dist/agents/skills/cursor/harness-chaos/SKILL.md +295 -0
  301. package/dist/agents/skills/cursor/harness-chaos/skill.yaml +72 -0
  302. package/dist/agents/skills/cursor/harness-code-review/SKILL.md +857 -0
  303. package/dist/agents/skills/cursor/harness-code-review/skill.yaml +52 -0
  304. package/dist/agents/skills/cursor/harness-codebase-cleanup/SKILL.md +224 -0
  305. package/dist/agents/skills/cursor/harness-codebase-cleanup/skill.yaml +65 -0
  306. package/dist/agents/skills/cursor/harness-compliance/SKILL.md +303 -0
  307. package/dist/agents/skills/cursor/harness-compliance/skill.yaml +78 -0
  308. package/dist/agents/skills/cursor/harness-containerization/SKILL.md +284 -0
  309. package/dist/agents/skills/cursor/harness-containerization/skill.yaml +80 -0
  310. package/dist/agents/skills/cursor/harness-data-pipeline/SKILL.md +274 -0
  311. package/dist/agents/skills/cursor/harness-data-pipeline/skill.yaml +81 -0
  312. package/dist/agents/skills/cursor/harness-data-validation/SKILL.md +343 -0
  313. package/dist/agents/skills/cursor/harness-data-validation/skill.yaml +75 -0
  314. package/dist/agents/skills/cursor/harness-database/SKILL.md +310 -0
  315. package/dist/agents/skills/cursor/harness-database/skill.yaml +80 -0
  316. package/dist/agents/skills/cursor/harness-debugging/SKILL.md +366 -0
  317. package/dist/agents/skills/cursor/harness-debugging/skill.yaml +48 -0
  318. package/dist/agents/skills/cursor/harness-dependency-health/SKILL.md +179 -0
  319. package/dist/agents/skills/cursor/harness-dependency-health/skill.yaml +42 -0
  320. package/dist/agents/skills/cursor/harness-deployment/SKILL.md +307 -0
  321. package/dist/agents/skills/cursor/harness-deployment/skill.yaml +77 -0
  322. package/dist/agents/skills/cursor/harness-design/SKILL.md +265 -0
  323. package/dist/agents/skills/cursor/harness-design/skill.yaml +54 -0
  324. package/dist/agents/skills/cursor/harness-design-mobile/SKILL.md +336 -0
  325. package/dist/agents/skills/cursor/harness-design-mobile/skill.yaml +50 -0
  326. package/dist/agents/skills/cursor/harness-design-system/SKILL.md +282 -0
  327. package/dist/agents/skills/cursor/harness-design-system/skill.yaml +51 -0
  328. package/dist/agents/skills/cursor/harness-design-web/SKILL.md +360 -0
  329. package/dist/agents/skills/cursor/harness-design-web/skill.yaml +53 -0
  330. package/dist/agents/skills/cursor/harness-diagnostics/SKILL.md +318 -0
  331. package/dist/agents/skills/cursor/harness-diagnostics/skill.yaml +51 -0
  332. package/dist/agents/skills/cursor/harness-docs-pipeline/SKILL.md +460 -0
  333. package/dist/agents/skills/cursor/harness-docs-pipeline/skill.yaml +70 -0
  334. package/dist/agents/skills/cursor/harness-dx/SKILL.md +276 -0
  335. package/dist/agents/skills/cursor/harness-dx/skill.yaml +76 -0
  336. package/dist/agents/skills/cursor/harness-e2e/SKILL.md +245 -0
  337. package/dist/agents/skills/cursor/harness-e2e/skill.yaml +78 -0
  338. package/dist/agents/skills/cursor/harness-event-driven/SKILL.md +280 -0
  339. package/dist/agents/skills/cursor/harness-event-driven/skill.yaml +77 -0
  340. package/dist/agents/skills/cursor/harness-execution/SKILL.md +510 -0
  341. package/dist/agents/skills/cursor/harness-execution/skill.yaml +52 -0
  342. package/dist/agents/skills/cursor/harness-feature-flags/SKILL.md +287 -0
  343. package/dist/agents/skills/cursor/harness-feature-flags/skill.yaml +74 -0
  344. package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +268 -0
  345. package/dist/agents/skills/cursor/harness-git-workflow/skill.yaml +32 -0
  346. package/dist/agents/skills/cursor/harness-hotspot-detector/SKILL.md +161 -0
  347. package/dist/agents/skills/cursor/harness-hotspot-detector/skill.yaml +45 -0
  348. package/dist/agents/skills/cursor/harness-i18n/SKILL.md +484 -0
  349. package/dist/agents/skills/cursor/harness-i18n/skill.yaml +55 -0
  350. package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +388 -0
  351. package/dist/agents/skills/cursor/harness-i18n-process/skill.yaml +44 -0
  352. package/dist/agents/skills/cursor/harness-i18n-workflow/SKILL.md +512 -0
  353. package/dist/agents/skills/cursor/harness-i18n-workflow/skill.yaml +54 -0
  354. package/dist/agents/skills/cursor/harness-impact-analysis/SKILL.md +184 -0
  355. package/dist/agents/skills/cursor/harness-impact-analysis/skill.yaml +45 -0
  356. package/dist/agents/skills/cursor/harness-incident-response/SKILL.md +223 -0
  357. package/dist/agents/skills/cursor/harness-incident-response/skill.yaml +78 -0
  358. package/dist/agents/skills/cursor/harness-infrastructure-as-code/SKILL.md +279 -0
  359. package/dist/agents/skills/cursor/harness-infrastructure-as-code/skill.yaml +80 -0
  360. package/dist/agents/skills/cursor/harness-integration-test/SKILL.md +271 -0
  361. package/dist/agents/skills/cursor/harness-integration-test/skill.yaml +73 -0
  362. package/dist/agents/skills/cursor/harness-integrity/SKILL.md +167 -0
  363. package/dist/agents/skills/cursor/harness-integrity/skill.yaml +48 -0
  364. package/dist/agents/skills/cursor/harness-knowledge-mapper/SKILL.md +195 -0
  365. package/dist/agents/skills/cursor/harness-knowledge-mapper/skill.yaml +50 -0
  366. package/dist/agents/skills/cursor/harness-load-testing/SKILL.md +274 -0
  367. package/dist/agents/skills/cursor/harness-load-testing/skill.yaml +79 -0
  368. package/dist/agents/skills/cursor/harness-ml-ops/SKILL.md +341 -0
  369. package/dist/agents/skills/cursor/harness-ml-ops/skill.yaml +79 -0
  370. package/dist/agents/skills/cursor/harness-mobile-patterns/SKILL.md +326 -0
  371. package/dist/agents/skills/cursor/harness-mobile-patterns/skill.yaml +82 -0
  372. package/dist/agents/skills/cursor/harness-mutation-test/SKILL.md +251 -0
  373. package/dist/agents/skills/cursor/harness-mutation-test/skill.yaml +70 -0
  374. package/dist/agents/skills/cursor/harness-observability/SKILL.md +283 -0
  375. package/dist/agents/skills/cursor/harness-observability/skill.yaml +78 -0
  376. package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +288 -0
  377. package/dist/agents/skills/cursor/harness-onboarding/skill.yaml +31 -0
  378. package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +256 -0
  379. package/dist/agents/skills/cursor/harness-parallel-agents/skill.yaml +34 -0
  380. package/dist/agents/skills/cursor/harness-perf/SKILL.md +260 -0
  381. package/dist/agents/skills/cursor/harness-perf/skill.yaml +51 -0
  382. package/dist/agents/skills/cursor/harness-perf-tdd/SKILL.md +249 -0
  383. package/dist/agents/skills/cursor/harness-perf-tdd/skill.yaml +48 -0
  384. package/dist/agents/skills/cursor/harness-planning/SKILL.md +579 -0
  385. package/dist/agents/skills/cursor/harness-planning/skill.yaml +56 -0
  386. package/dist/agents/skills/cursor/harness-pre-commit-review/SKILL.md +324 -0
  387. package/dist/agents/skills/cursor/harness-pre-commit-review/skill.yaml +34 -0
  388. package/dist/agents/skills/cursor/harness-product-spec/SKILL.md +285 -0
  389. package/dist/agents/skills/cursor/harness-product-spec/skill.yaml +72 -0
  390. package/dist/agents/skills/cursor/harness-property-test/SKILL.md +281 -0
  391. package/dist/agents/skills/cursor/harness-property-test/skill.yaml +71 -0
  392. package/dist/agents/skills/cursor/harness-refactoring/SKILL.md +169 -0
  393. package/dist/agents/skills/cursor/harness-refactoring/skill.yaml +34 -0
  394. package/dist/agents/skills/cursor/harness-release-readiness/SKILL.md +689 -0
  395. package/dist/agents/skills/cursor/harness-release-readiness/skill.yaml +58 -0
  396. package/dist/agents/skills/cursor/harness-resilience/SKILL.md +255 -0
  397. package/dist/agents/skills/cursor/harness-resilience/skill.yaml +76 -0
  398. package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +595 -0
  399. package/dist/agents/skills/cursor/harness-roadmap/skill.yaml +44 -0
  400. package/dist/agents/skills/cursor/harness-secrets/SKILL.md +293 -0
  401. package/dist/agents/skills/cursor/harness-secrets/skill.yaml +76 -0
  402. package/dist/agents/skills/cursor/harness-security-review/SKILL.md +260 -0
  403. package/dist/agents/skills/cursor/harness-security-review/skill.yaml +53 -0
  404. package/dist/agents/skills/cursor/harness-security-scan/SKILL.md +154 -0
  405. package/dist/agents/skills/cursor/harness-security-scan/skill.yaml +42 -0
  406. package/dist/agents/skills/cursor/harness-skill-authoring/SKILL.md +292 -0
  407. package/dist/agents/skills/cursor/harness-skill-authoring/skill.yaml +33 -0
  408. package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +1267 -0
  409. package/dist/agents/skills/cursor/harness-soundness-review/skill.yaml +49 -0
  410. package/dist/agents/skills/cursor/harness-sql-review/SKILL.md +315 -0
  411. package/dist/agents/skills/cursor/harness-sql-review/skill.yaml +74 -0
  412. package/dist/agents/skills/cursor/harness-state-management/SKILL.md +309 -0
  413. package/dist/agents/skills/cursor/harness-state-management/skill.yaml +33 -0
  414. package/dist/agents/skills/cursor/harness-supply-chain-audit/SKILL.md +281 -0
  415. package/dist/agents/skills/cursor/harness-supply-chain-audit/skill.yaml +51 -0
  416. package/dist/agents/skills/cursor/harness-tdd/SKILL.md +177 -0
  417. package/dist/agents/skills/cursor/harness-tdd/skill.yaml +49 -0
  418. package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +160 -0
  419. package/dist/agents/skills/cursor/harness-test-advisor/skill.yaml +45 -0
  420. package/dist/agents/skills/cursor/harness-test-data/SKILL.md +268 -0
  421. package/dist/agents/skills/cursor/harness-test-data/skill.yaml +74 -0
  422. package/dist/agents/skills/cursor/harness-ux-copy/SKILL.md +271 -0
  423. package/dist/agents/skills/cursor/harness-ux-copy/skill.yaml +77 -0
  424. package/dist/agents/skills/cursor/harness-verification/SKILL.md +421 -0
  425. package/dist/agents/skills/cursor/harness-verification/skill.yaml +43 -0
  426. package/dist/agents/skills/cursor/harness-verify/SKILL.md +159 -0
  427. package/dist/agents/skills/cursor/harness-verify/skill.yaml +41 -0
  428. package/dist/agents/skills/cursor/harness-visual-regression/SKILL.md +257 -0
  429. package/dist/agents/skills/cursor/harness-visual-regression/skill.yaml +74 -0
  430. package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +232 -0
  431. package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +32 -0
  432. package/dist/agents/skills/cursor/validate-context-engineering/SKILL.md +150 -0
  433. package/dist/agents/skills/cursor/validate-context-engineering/skill.yaml +32 -0
  434. package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +52 -0
  435. package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +52 -0
  436. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +52 -0
  437. package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +52 -0
  438. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +355 -45
  439. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +12 -0
  440. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +97 -3
  441. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +6 -0
  442. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +2 -4
  443. package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +52 -0
  444. package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +52 -0
  445. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +99 -3
  446. package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +6 -0
  447. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +1 -1
  448. package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +5 -5
  449. package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +27 -7
  450. package/dist/agents/skills/gemini-cli/harness-security-scan/SKILL.md +52 -0
  451. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/SKILL.md +281 -0
  452. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/skill.yaml +51 -0
  453. package/dist/agents/skills/package.json +1 -0
  454. package/dist/agents/skills/templates/discipline-template.md +49 -0
  455. package/dist/agents/skills/tests/schema.ts +1 -1
  456. package/dist/agents/skills/vitest.config.mts +5 -0
  457. package/dist/{agents-md-YTYQDA3P.js → agents-md-VYDFPIRW.js} +1 -1
  458. package/dist/{architecture-JQZYM4US.js → architecture-K5HSRBGB.js} +2 -2
  459. package/dist/bin/harness-mcp.js +13 -13
  460. package/dist/bin/harness.js +21 -19
  461. package/dist/{check-phase-gate-L3RADYWO.js → check-phase-gate-5AS6SXL6.js} +3 -3
  462. package/dist/{chunk-6KTUUFRN.js → chunk-5ZXHMCPL.js} +1 -1
  463. package/dist/{chunk-RCWZBSK5.js → chunk-6KWBH4EO.js} +1 -1
  464. package/dist/{chunk-ABQHQ6I5.js → chunk-ALFKNAZW.js} +2436 -233
  465. package/dist/{chunk-OXLLOSSR.js → chunk-AV6KMDO5.js} +2 -2
  466. package/dist/{chunk-7IP4JIFL.js → chunk-C7DTKLPW.js} +4 -4
  467. package/dist/{chunk-ZOAWBDWU.js → chunk-CJDVBBPB.js} +5 -1
  468. package/dist/{chunk-YPYGXRDR.js → chunk-DNDBFIZN.js} +18 -4
  469. package/dist/{chunk-XYLGHKG6.js → chunk-HKUX2X7O.js} +11 -2
  470. package/dist/{chunk-YZD2MRNQ.js → chunk-JOP2NDNB.js} +684 -142
  471. package/dist/{chunk-YBJ262QL.js → chunk-LRG3B43J.js} +1 -1
  472. package/dist/{chunk-AOZRDOIP.js → chunk-M6TIO6NF.js} +1 -1
  473. package/dist/{chunk-O5OJVPL6.js → chunk-OCDDCGDE.js} +9 -1
  474. package/dist/{chunk-OSXBPAMK.js → chunk-QDF7COPQ.js} +1 -1
  475. package/dist/{chunk-TPOTOBR7.js → chunk-RWZPHW4H.js} +3 -3
  476. package/dist/{chunk-3C2MLBPJ.js → chunk-SFRGPAK6.js} +1 -1
  477. package/dist/{chunk-XKECDXJS.js → chunk-SHYWICGA.js} +2184 -456
  478. package/dist/{chunk-S2FXOWOR.js → chunk-TF6ZLHJV.js} +2 -2
  479. package/dist/{chunk-NLVUVUGD.js → chunk-ZJMU7MEV.js} +1 -1
  480. package/dist/{ci-workflow-EQZFVX3P.js → ci-workflow-CRWU723U.js} +1 -1
  481. package/dist/{create-skill-XSWHMSM5.js → create-skill-NDXQSTIK.js} +2 -2
  482. package/dist/{dist-HWXF2C3R.js → dist-4LPXJYVZ.js} +105 -1
  483. package/dist/{docs-7ECGYMAV.js → docs-4JRHTLUZ.js} +3 -3
  484. package/dist/{engine-EG4EH4IX.js → engine-3G3VIM6L.js} +1 -1
  485. package/dist/{entropy-5USWKLVS.js → entropy-G6CZ2A6P.js} +2 -2
  486. package/dist/{feedback-UTBXZZHF.js → feedback-QYKQ65HB.js} +1 -1
  487. package/dist/{generate-agent-definitions-3PM5EU7V.js → generate-agent-definitions-SAAOAPT4.js} +3 -3
  488. package/dist/index.d.ts +25 -4
  489. package/dist/index.js +18 -18
  490. package/dist/{loader-ZPALXIVR.js → loader-VCOK3PF7.js} +1 -1
  491. package/dist/{mcp-362EZHF4.js → mcp-YENEPHBW.js} +13 -13
  492. package/dist/{performance-OQAFMJUD.js → performance-UBCFI2UP.js} +4 -2
  493. package/dist/{review-pipeline-C4GCFVGP.js → review-pipeline-IQAVCWAX.js} +1 -1
  494. package/dist/{runtime-7YLVK453.js → runtime-PYFFIESU.js} +1 -1
  495. package/dist/{security-PZOX7AQS.js → security-ZDADTPYW.js} +1 -1
  496. package/dist/{skill-executor-XZLYZYAK.js → skill-executor-XEVDGXUM.js} +2 -2
  497. package/dist/{validate-FD3Z6VJD.js → validate-VRTUHALQ.js} +2 -2
  498. package/dist/{validate-cross-check-WNJM6H2D.js → validate-cross-check-4Y6NHNK3.js} +1 -1
  499. package/package.json +8 -5
@@ -0,0 +1,307 @@
1
+ # Harness Deployment
2
+
3
+ > CI/CD pipeline analysis, deployment strategy design, and environment management. From commit to production with confidence.
4
+
5
+ ## When to Use
6
+
7
+ - When setting up or reviewing CI/CD pipelines for a new or existing project
8
+ - When evaluating deployment strategies (blue-green, canary, rolling) for a service
9
+ - When auditing environment separation and promotion workflows
10
+ - NOT for container image building or registry management (use harness-containerization)
11
+ - NOT for infrastructure provisioning (use harness-infrastructure-as-code)
12
+ - NOT for application performance under load (use harness-perf)
13
+
14
+ ## Process
15
+
16
+ ### Phase 1: DETECT -- Identify Pipeline and Environment Configuration
17
+
18
+ 1. **Scan for CI/CD configuration files.** Search the project root for pipeline definitions:
19
+ - `.github/workflows/*.yml` -- GitHub Actions
20
+ - `.gitlab-ci.yml` -- GitLab CI
21
+ - `Jenkinsfile` -- Jenkins
22
+ - `.circleci/config.yml` -- CircleCI
23
+ - `bitbucket-pipelines.yml` -- Bitbucket Pipelines
24
+ - `azure-pipelines.yml` -- Azure DevOps
25
+ - `deploy/`, `scripts/deploy*` -- custom deployment scripts
26
+
27
+ 2. **Identify deployment targets.** Parse pipeline files for deployment steps and extract:
28
+ - Target environments (dev, staging, production)
29
+ - Deployment mechanisms (kubectl apply, aws ecs update-service, serverless deploy, rsync)
30
+ - Cloud provider and region information
31
+ - Container registry references
32
+
33
+ 3. **Detect environment configuration.** Look for environment-specific config:
34
+ - `.env.production`, `.env.staging` files
35
+ - Environment variable injection in pipeline definitions
36
+ - Secret references (GitHub Secrets, GitLab CI variables, Vault paths)
37
+ - Feature flag provider configuration per environment
38
+
39
+ 4. **Map the deployment topology.** Build a summary of what gets deployed where:
40
+ - Service name, pipeline file, target environment, deployment mechanism
41
+ - Dependencies between services (deploy order constraints)
42
+ - Manual approval gates vs. automatic promotion
43
+
44
+ 5. **Present detection summary.** Output the discovered topology before proceeding:
45
+
46
+ ```
47
+ Deployment Topology:
48
+ Platform: GitHub Actions
49
+ Pipelines: 3 workflow files
50
+ Environments: dev, staging, production
51
+ Strategy: Rolling (detected from kubectl rolling-update)
52
+ Approval gates: production (manual)
53
+ ```
54
+
55
+ ---
56
+
57
+ ### Phase 2: ANALYZE -- Evaluate Pipeline Quality and Gaps
58
+
59
+ 1. **Check pipeline stage completeness.** A mature pipeline includes these stages. Flag any that are missing:
60
+ - Build and compile
61
+ - Unit tests
62
+ - Integration tests
63
+ - Security scan (SAST/DAST)
64
+ - Artifact packaging
65
+ - Deploy to staging
66
+ - Smoke tests post-deploy
67
+ - Deploy to production
68
+ - Post-deploy verification
69
+
70
+ 2. **Evaluate environment isolation.** Verify that environments are properly separated:
71
+ - Staging and production use different credentials
72
+ - Environment-specific variables are not shared across environments
73
+ - Database connections point to the correct environment
74
+ - No hardcoded production URLs in non-production configs
75
+
76
+ 3. **Check deployment safety mechanisms.** Verify the pipeline includes:
77
+ - Rollback procedures (automatic or documented manual)
78
+ - Health checks after deployment
79
+ - Timeout configuration on deployment steps
80
+ - Concurrency controls (prevent parallel deploys to the same environment)
81
+ - Branch protection rules that gate production deploys
82
+
83
+ 4. **Analyze pipeline performance.** Identify bottlenecks:
84
+ - Steps that could run in parallel but are sequential
85
+ - Missing caching (dependencies, build artifacts, Docker layers)
86
+ - Redundant steps across workflows
87
+ - Total pipeline duration from commit to production
88
+
89
+ 5. **Check secret hygiene in pipelines.** Verify:
90
+ - No secrets hardcoded in pipeline files
91
+ - Secrets are scoped to the minimum required environment
92
+ - Secret rotation is possible without pipeline changes
93
+ - OIDC or workload identity is used where available instead of long-lived credentials
94
+
95
+ ---
96
+
97
+ ### Phase 3: DESIGN -- Recommend Strategy Improvements
98
+
99
+ 1. **Recommend deployment strategy.** Based on the service characteristics:
100
+ - **Rolling** -- suitable for stateless services with backward-compatible changes
101
+ - **Blue-green** -- suitable when zero-downtime cutover is required and rollback must be instant
102
+ - **Canary** -- suitable for high-traffic services where gradual validation reduces blast radius
103
+ - **Recreate** -- suitable only for development environments or when downtime is acceptable
104
+
105
+ 2. **Design missing pipeline stages.** For each gap identified in Phase 2, provide:
106
+ - The stage definition in the project's CI/CD platform syntax
107
+ - Where it fits in the pipeline order
108
+ - What tools or services it requires
109
+ - Example configuration snippet
110
+
111
+ 3. **Recommend environment promotion workflow.** Design the path from commit to production:
112
+ - Automatic promotion from dev to staging after tests pass
113
+ - Manual approval gate before production (with notification to the team channel)
114
+ - Smoke test suite that runs post-deploy in each environment
115
+ - Rollback trigger conditions (error rate spike, health check failure)
116
+
117
+ 4. **Design rollback procedure.** Every deployment must have a documented rollback:
118
+ - For container deployments: revert to previous image tag
119
+ - For serverless: revert to previous function version
120
+ - For database migrations: backward-compatible migration strategy
121
+ - Maximum rollback time target (e.g., under 5 minutes)
122
+
123
+ 5. **Recommend monitoring integration.** Connect deployment events to observability:
124
+ - Deploy markers in APM tools (Datadog, New Relic, Grafana)
125
+ - Automated alerts on error rate increase after deploy
126
+ - Deployment frequency and lead time tracking
127
+
128
+ ---
129
+
130
+ ### Phase 4: VALIDATE -- Verify Pipeline Correctness
131
+
132
+ 1. **Lint pipeline configuration.** Run syntax validation:
133
+ - GitHub Actions: `actionlint` or YAML schema validation
134
+ - GitLab CI: `gitlab-ci-lint` API endpoint
135
+ - Jenkinsfile: Groovy syntax check
136
+ - General: YAML structure validation for all config files
137
+
138
+ 2. **Verify environment variable completeness.** For each environment:
139
+ - All required variables are defined
140
+ - No placeholder values remain (TODO, CHANGEME, xxx)
141
+ - Variables referenced in code exist in the pipeline configuration
142
+
143
+ 3. **Verify branch protection alignment.** Confirm that:
144
+ - Production deploy pipelines only trigger from protected branches
145
+ - Required status checks match the pipeline stages
146
+ - Force-push is disabled on deployment branches
147
+
148
+ 4. **Generate deployment readiness report.** Summarize findings:
149
+
150
+ ```
151
+ Deployment Readiness: [PASS/WARN/FAIL]
152
+
153
+ Pipeline stages: 7/9 present (missing: security scan, smoke tests)
154
+ Environment isolation: PASS
155
+ Rollback procedure: WARN (documented but not automated)
156
+ Secret hygiene: PASS
157
+ Pipeline performance: 12m avg (recommend parallelizing test stages)
158
+
159
+ Recommendations:
160
+ 1. Add SAST scan stage between build and deploy
161
+ 2. Add post-deploy smoke test stage
162
+ 3. Automate rollback on health check failure
163
+ ```
164
+
165
+ 5. **Present results.** Use `emit_interaction` to deliver the report and ask whether to proceed with implementing recommendations.
166
+
167
+ ---
168
+
169
+ ## Harness Integration
170
+
171
+ - **`harness skill run harness-deployment`** -- Primary invocation for deployment analysis.
172
+ - **`harness validate`** -- Run after any pipeline configuration changes to verify project health.
173
+ - **`harness check-deps`** -- Verify deployment script dependencies are available.
174
+ - **`emit_interaction`** -- Present deployment readiness report and gather decisions on strategy.
175
+
176
+ ## Success Criteria
177
+
178
+ - All CI/CD configuration files in the project are identified and cataloged
179
+ - Pipeline stage completeness is assessed against the standard checklist
180
+ - Environment isolation is verified with no cross-environment credential leakage
181
+ - A deployment strategy recommendation is provided with rationale
182
+ - Rollback procedures are documented or flagged as missing
183
+ - Pipeline lint passes without errors
184
+
185
+ ## Examples
186
+
187
+ ### Example: Node.js API with GitHub Actions
188
+
189
+ ```
190
+ Phase 1: DETECT
191
+ Found: .github/workflows/ci.yml, .github/workflows/deploy.yml
192
+ Environments: staging (auto), production (manual dispatch)
193
+ Strategy: Rolling (kubectl set image)
194
+ Registry: ghcr.io/org/api-server
195
+
196
+ Phase 2: ANALYZE
197
+ Missing stages: security scan, post-deploy smoke tests
198
+ Environment isolation: PASS
199
+ Secret hygiene: WARN -- AWS_ACCESS_KEY_ID used instead of OIDC
200
+ Pipeline duration: 18m (test and lint run sequentially)
201
+
202
+ Phase 3: DESIGN
203
+ Recommendation: Add trivy scan after Docker build
204
+ Recommendation: Switch to AWS OIDC for keyless authentication
205
+ Recommendation: Parallelize lint and test jobs (saves ~4m)
206
+ Recommendation: Add smoke test job after deploy-staging
207
+
208
+ Phase 4: VALIDATE
209
+ actionlint: PASS
210
+ Environment variables: PASS
211
+ Branch protection: WARN -- main branch allows force-push
212
+ Result: WARN -- 3 recommendations, 1 security improvement needed
213
+ ```
214
+
215
+ ### Example: Python Service with GitLab CI and Canary Deploy
216
+
217
+ ```
218
+ Phase 1: DETECT
219
+ Found: .gitlab-ci.yml with 5 stages
220
+ Environments: dev, staging, production
221
+ Strategy: Canary (Istio VirtualService weight shifting)
222
+ Registry: registry.gitlab.com/org/service
223
+
224
+ Phase 2: ANALYZE
225
+ All 9 standard stages present
226
+ Environment isolation: PASS
227
+ Canary configuration: 5% -> 25% -> 75% -> 100% over 30 minutes
228
+ Rollback: Automatic on 5xx rate > 1%
229
+
230
+ Phase 3: DESIGN
231
+ Current strategy is well-configured. Minor recommendations:
232
+ - Add canary duration metrics to Grafana dashboard
233
+ - Add deployment event annotation to Prometheus
234
+ - Consider adding a manual gate between 75% and 100%
235
+
236
+ Phase 4: VALIDATE
237
+ GitLab CI lint: PASS
238
+ Environment variables: PASS
239
+ Branch protection: PASS
240
+ Result: PASS -- pipeline is production-ready
241
+ ```
242
+
243
+ ## Gates
244
+
245
+ - **No production deploy without staging validation.** If the pipeline allows direct-to-production deployment without a prior staging step, flag as a blocking issue.
246
+ - **No long-lived credentials in pipelines.** Hardcoded secrets or long-lived access keys in pipeline files are blocking findings. OIDC or short-lived tokens must be used.
247
+ - **No deploy without rollback.** Every deployment target must have a documented or automated rollback mechanism. Missing rollback is a blocking warning.
248
+ - **No skipping pipeline lint.** Pipeline configuration must pass syntax validation before recommendations are made.
249
+
250
+ ## Evidence Requirements
251
+
252
+ When this skill makes claims about existing code, architecture, or behavior,
253
+ it MUST cite evidence using one of:
254
+
255
+ 1. **File reference:** `file:line` format (e.g., `src/auth.ts:42`)
256
+ 2. **Code pattern reference:** `file` with description (e.g., `src/utils/hash.ts` —
257
+ "existing bcrypt wrapper")
258
+ 3. **Test/command output:** Inline or referenced output from a test run or CLI command
259
+ 4. **Session evidence:** Write to the `evidence` session section via `manage_state`
260
+
261
+ **Uncited claims:** Technical assertions without citations MUST be prefixed with
262
+ `[UNVERIFIED]`. Example: `[UNVERIFIED] The auth middleware supports refresh tokens`.
263
+
264
+ ## Red Flags
265
+
266
+ ### Universal
267
+
268
+ These apply to ALL skills. If you catch yourself doing any of these, STOP.
269
+
270
+ - **"I believe the codebase does X"** — Stop. Read the code and cite a file:line
271
+ reference. Belief is not evidence.
272
+ - **"Let me recommend [pattern] for this"** without checking existing patterns — Stop.
273
+ Search the codebase first. The project may already have a convention.
274
+ - **"While we're here, we should also [unrelated improvement]"** — Stop. Flag the idea
275
+ but do not expand scope beyond the stated task.
276
+
277
+ ### Domain-Specific
278
+
279
+ - **"Deploying without a health check endpoint"** — Stop. Without health checks, the orchestrator cannot detect failed deployments. Add health checks before deploying.
280
+ - **"Skipping canary deployment, it's a small change"** — Stop. Small changes cause outages too. Follow the deployment policy regardless of change size.
281
+ - **"Rolling back manually if something goes wrong"** — Stop. Manual rollback under incident pressure fails. Automate rollback before deploying.
282
+ - **"We can update the runbook after the deploy"** — Stop. If the deployment changes operational behavior, update the runbook first. Stale runbooks during incidents cause escalations.
283
+
284
+ ## Rationalizations to Reject
285
+
286
+ ### Universal
287
+
288
+ These reasoning patterns sound plausible but lead to bad outcomes. Reject them.
289
+
290
+ - **"It's probably fine"** — "Probably" is not evidence. Verify before asserting.
291
+ - **"This is best practice"** — Best practice in what context? Cite the source and
292
+ confirm it applies to this codebase.
293
+ - **"We can fix it later"** — If it is worth flagging, it is worth documenting now
294
+ with a concrete follow-up plan.
295
+
296
+ ### Domain-Specific
297
+
298
+ - **"It's just a config change, not a code change"** — Config changes cause outages at the same rate as code changes. Deploy them with the same rigor and rollback strategy.
299
+ - **"We tested this in staging"** — Staging is not production. Traffic patterns, data volume, and edge cases differ. Staging success does not guarantee production safety.
300
+ - **"Downtime will be brief"** — Brief is not zero. Quantify the expected impact and communicate it to stakeholders before deploying.
301
+
302
+ ## Escalation
303
+
304
+ - **When the CI/CD platform is unsupported:** Report which platform was detected and that analysis is limited to general best practices. Recommend the user provide platform-specific documentation for deeper analysis.
305
+ - **When secrets are found hardcoded in pipeline files:** Immediately flag as a critical finding. Do not proceed with strategy recommendations until secrets are remediated. Recommend rotating the exposed credentials.
306
+ - **When multiple deployment strategies are mixed across environments:** This is valid (e.g., rolling for staging, canary for production). Analyze each independently and verify the promotion workflow handles the strategy transition.
307
+ - **When pipeline configuration is generated by a tool (Terraform, Pulumi):** Analyze the generated output but note that fixes must be applied to the generator configuration, not the output files.
@@ -0,0 +1,77 @@
1
+ name: harness-deployment
2
+ version: "1.0.0"
3
+ description: CI/CD pipelines, blue-green, canary, and environment management
4
+ cognitive_mode: advisory-guide
5
+ tier: 3
6
+ internal: false
7
+ keywords:
8
+ - deployment
9
+ - CI/CD
10
+ - pipeline
11
+ - GitHub Actions
12
+ - GitLab CI
13
+ - Jenkins
14
+ - blue-green
15
+ - canary
16
+ - rolling
17
+ - environment
18
+ - staging
19
+ - production
20
+ - CD
21
+ stack_signals:
22
+ - ".github/workflows/"
23
+ - ".gitlab-ci.yml"
24
+ - "Jenkinsfile"
25
+ - "deploy/"
26
+ - "infrastructure/"
27
+ - ".circleci/"
28
+ - "bitbucket-pipelines.yml"
29
+ triggers:
30
+ - manual
31
+ - on_new_feature
32
+ platforms:
33
+ - claude-code
34
+ - gemini-cli
35
+ tools:
36
+ - Bash
37
+ - Read
38
+ - Write
39
+ - Edit
40
+ - Glob
41
+ - Grep
42
+ - emit_interaction
43
+ cli:
44
+ command: harness skill run harness-deployment
45
+ args:
46
+ - name: path
47
+ description: Project root path
48
+ required: false
49
+ - name: strategy
50
+ description: Deployment strategy to evaluate (blue-green, canary, rolling)
51
+ required: false
52
+ - name: platform
53
+ description: Target CI/CD platform (github-actions, gitlab-ci, jenkins)
54
+ required: false
55
+ mcp:
56
+ tool: run_skill
57
+ input:
58
+ skill: harness-deployment
59
+ path: string
60
+ type: rigid
61
+ phases:
62
+ - name: detect
63
+ description: Identify existing CI/CD configuration and deployment targets
64
+ required: true
65
+ - name: analyze
66
+ description: Evaluate pipeline structure, stages, and environment separation
67
+ required: true
68
+ - name: design
69
+ description: Recommend deployment strategy improvements and missing stages
70
+ required: true
71
+ - name: validate
72
+ description: Verify pipeline correctness and environment isolation
73
+ required: true
74
+ state:
75
+ persistent: false
76
+ files: []
77
+ depends_on: []
@@ -0,0 +1,265 @@
1
+ # Harness Design
2
+
3
+ > Aesthetic direction workflow. Capture design intent, generate DESIGN.md with anti-patterns and platform notes, review components against aesthetic guidelines, and enforce design constraints at configurable strictness levels.
4
+
5
+ ## When to Use
6
+
7
+ - Establishing aesthetic direction for a new or existing project (style, tone, differentiator)
8
+ - When `on_new_feature` triggers fire and the feature has design scope requiring aesthetic guidance
9
+ - Reviewing existing components against declared design intent and anti-patterns
10
+ - Enforcing design constraints via the knowledge graph with configurable strictness
11
+ - Generating or updating `design-system/DESIGN.md` with aesthetic direction, anti-patterns, and platform notes
12
+ - NOT for design token generation or palette selection (use harness-design-system)
13
+ - NOT for accessibility auditing or WCAG compliance (use harness-accessibility)
14
+ - NOT for platform-specific token implementation into CSS/Tailwind/etc. (use harness-design-web/mobile, Phase 5)
15
+
16
+ ## Process
17
+
18
+ ### Phase 1: INTENT -- Capture Aesthetic Intent
19
+
20
+ 1. **Read existing design artifacts.** Search for:
21
+ - `design-system/DESIGN.md` -- existing aesthetic direction documentation (from harness-design-system output)
22
+ - `design-system/tokens.json` -- existing W3C DTCG tokens (palette, typography, spacing defined by harness-design-system)
23
+ - `harness.config.json` -- project configuration for design settings
24
+
25
+ 2. **Check harness configuration.** Read `harness.config.json` for:
26
+ - `design.strictness` -- enforcement level (`strict`, `standard`, `permissive`). If not set, default to `standard`.
27
+ - `design.platforms` -- which platforms are enabled (web, mobile)
28
+ - `design.aestheticIntent` -- path to design intent doc (default: `design-system/DESIGN.md`)
29
+
30
+ 3. **Load industry profile.** If an industry is specified (via CLI `--industry` arg or config), read the industry profile from `agents/skills/shared/design-knowledge/industries/{industry}.yaml`. Available industries include: `saas`, `fintech`, `healthcare`, `ecommerce`, `creative`, `emerging-tech`, `lifestyle`, `services`. The profile provides sector-specific guidance on:
31
+ - Recommended visual style and tone
32
+ - Industry conventions and user expectations
33
+ - Regulatory or cultural considerations
34
+ - Common anti-patterns for the sector
35
+
36
+ 4. **Capture user intent.** Ask the user to define:
37
+ - **Style:** minimal, expressive, corporate, playful, editorial, or custom
38
+ - **Tone:** warm, cool, neutral, bold, muted, or custom
39
+ - **Key differentiator:** what makes this product's visual identity unique
40
+ - **Anti-patterns:** specific design choices to explicitly avoid (e.g., "no gradients on data elements," "no decorative borders on cards")
41
+
42
+ 5. **Load shared design knowledge.** Read anti-pattern awareness from `agents/skills/shared/design-knowledge/`:
43
+ - `palettes/curated.yaml` -- curated palettes to understand which aesthetic families are available
44
+ - `typography/pairings.yaml` -- typography pairings to understand which font combinations are recommended
45
+ - Industry-specific anti-pattern guidance from the loaded industry profile
46
+
47
+ 6. **Confirm intent before proceeding.** Present a summary of the captured aesthetic intent to the user. This is a hard gate -- no DESIGN.md generation without the user confirming their aesthetic intent.
48
+
49
+ ### Phase 2: DIRECTION -- Generate DESIGN.md
50
+
51
+ 1. **Generate or update `design-system/DESIGN.md`.** The document must contain the following sections:
52
+
53
+ **Aesthetic Direction:**
54
+ - Style declaration (the chosen style and what it means for this project)
55
+ - Tone description (how the tone manifests in color usage, typography weight, spacing density)
56
+ - Key differentiator (the unique visual identity aspect and how it is expressed)
57
+
58
+ **Anti-Patterns:**
59
+ - Project-specific anti-patterns (from user input in Phase 1)
60
+ - Industry-informed anti-patterns (from the loaded industry profile)
61
+ - Each anti-pattern includes: name, description, example of what NOT to do, and why it conflicts with the declared intent
62
+
63
+ **Platform Notes:**
64
+ - Web-specific guidance (CSS strategy, responsive behavior, animation preferences)
65
+ - Mobile-specific guidance (touch targets, native component usage, platform conventions)
66
+ - Cross-platform consistency rules (which elements must be identical vs. platform-adapted)
67
+
68
+ **Strictness Override:**
69
+ - Current `designStrictness` level and what it means
70
+ - Instructions for changing strictness in `harness.config.json`
71
+ - Behavior differences per level:
72
+ - `permissive` -- all design violations reported as `info` (nothing blocks)
73
+ - `standard` -- anti-pattern and accessibility violations are `warn`, critical violations are `error` (default)
74
+ - `strict` -- accessibility violations are `error` (blocks CI/PR merge), anti-pattern violations are `warn`
75
+
76
+ 2. **Populate the knowledge graph.** If a graph exists at `.harness/graph/`:
77
+ - Create an `AestheticIntent` node with properties: style, tone, differentiator, strictness level. Use `DesignIngestor` from `packages/graph/src/ingest/DesignIngestor.ts` for graph ingestion.
78
+ - Create a `DECLARES_INTENT` edge from the project node to the `AestheticIntent` node.
79
+ - This enables downstream skills (harness-accessibility, harness-impact-analysis) to query the declared design intent.
80
+
81
+ 3. **Run harness validate.** After generating DESIGN.md, verify the project still passes all constraints. The new file must not break existing validations.
82
+
83
+ ### Phase 3: REVIEW -- Review Components Against Design Intent
84
+
85
+ 1. **Scan for anti-pattern violations.** Use Grep to search the codebase for patterns that match declared anti-patterns:
86
+ - Hardcoded color values not present in `design-system/tokens.json` (suggests off-brand color usage)
87
+ - Font families flagged as anti-patterns in the design intent (e.g., decorative fonts in a minimal project)
88
+ - Layout patterns on the forbidden list (e.g., excessive drop shadows in a flat design, gradients on data elements)
89
+ - CSS properties or values that contradict the declared style (e.g., rounded corners in a sharp-edge design)
90
+
91
+ 2. **Load detection rules from shared design knowledge.** Read from `agents/skills/shared/design-knowledge/`:
92
+ - `anti-patterns/typography.yaml` — font combinations, size, weight, and line-height issues that clash with the declared style
93
+ - `anti-patterns/color.yaml` — hardcoded colors, insufficient contrast, color-only indicators that undermine the declared tone
94
+ - `anti-patterns/layout.yaml` — spacing inconsistencies, missing touch targets, fixed-width containers
95
+ - `anti-patterns/motion.yaml` — missing prefers-reduced-motion, long animations, scroll-jacking
96
+ - `industries/{industry}.yaml` — industry-specific rules from the loaded industry profile
97
+
98
+ 3. **Cross-reference with graph constraints.** If a graph exists at `.harness/graph/`:
99
+ - Query for existing `VIOLATES_DESIGN` edges using `DesignConstraintAdapter` from `packages/graph/src/constraints/DesignConstraintAdapter.ts`
100
+ - Compare current findings against previously recorded violations
101
+ - Identify new violations and resolved violations
102
+
103
+ 4. **Assign severity based on `designStrictness`:**
104
+ - `permissive` -- all findings are `info` severity
105
+ - `standard` -- anti-pattern violations and accessibility-related findings are `warn`, critical design constraint violations are `error`
106
+ - `strict` -- accessibility violations are `error` (blocks), anti-pattern violations are `warn`
107
+
108
+ 5. **Report findings.** Present each finding with:
109
+ - File path and line number
110
+ - Violation description and which anti-pattern or design constraint it violates
111
+ - Severity level (based on current strictness)
112
+ - Suggested remediation
113
+
114
+ ### Phase 4: ENFORCE -- Surface and Record Violations
115
+
116
+ 1. **Create constraint nodes in the graph.** For each violated design rule, if a graph exists at `.harness/graph/`:
117
+ - Create a `DesignConstraint` node for the rule being violated (if one does not already exist)
118
+ - Create a `VIOLATES_DESIGN` edge from the violating component to the `DesignConstraint` node
119
+ - Use `DesignConstraintAdapter` from `packages/graph/src/constraints/DesignConstraintAdapter.ts` to manage constraint creation and violation recording
120
+
121
+ 2. **Format violation output.** Each violation follows a numbered format:
122
+
123
+ ```
124
+ DESIGN-001 [warn] Anti-pattern: gradient used on data visualization element
125
+ File: src/components/Chart.tsx
126
+ Line: 42
127
+ Constraint: No gradients on data elements
128
+ Intent: Style "minimal" prohibits decorative effects on informational components
129
+ Fix: Replace linear-gradient with solid color from token "neutral.100"
130
+
131
+ DESIGN-002 [error] Off-brand color: hardcoded #ff6b35 not in token set
132
+ File: src/components/Alert.tsx
133
+ Line: 18
134
+ Constraint: All colors must reference design tokens
135
+ Intent: Tone "cool" conflicts with warm orange accent
136
+ Fix: Use token "semantic.warning" (#f59e0b) or add color to tokens.json via harness-design-system
137
+
138
+ DESIGN-003 [info] Typography: decorative font "Playfair Display" used in component
139
+ File: src/components/Hero.tsx
140
+ Line: 8
141
+ Constraint: Heading font must match declared typography pairing
142
+ Intent: Style "minimal" uses Inter for all headings
143
+ Fix: Replace with token "typography.heading.fontFamily"
144
+ ```
145
+
146
+ 3. **Control severity by `designStrictness`:**
147
+ - `permissive` -- all violations output as `info` (DESIGN-001 [info], DESIGN-002 [info], etc.)
148
+ - `standard` -- anti-patterns and a11y = `warn`, off-brand tokens = `error` (default)
149
+ - `strict` -- a11y violations = `error` (blocks CI), anti-patterns = `warn`, off-brand tokens = `error`
150
+
151
+ 4. **Run harness validate.** After recording violations in the graph, run validation to ensure the enforcement pass is consistent with the project state.
152
+
153
+ ## Harness Integration
154
+
155
+ - **`harness validate`** -- Run after generating DESIGN.md and after enforcement passes. Design violations surface as constraint violations at the configured strictness level.
156
+ - **`harness scan`** -- Run after changes to refresh the knowledge graph. Updated graph enables accurate violation detection and impact analysis.
157
+ - **`DesignIngestor`** (`packages/graph/src/ingest/DesignIngestor.ts`) -- Parses `tokens.json` and `DESIGN.md` to create graph nodes representing the design system. Creates `AestheticIntent` nodes and `DECLARES_INTENT` edges during the DIRECTION phase.
158
+ - **`DesignConstraintAdapter`** (`packages/graph/src/constraints/DesignConstraintAdapter.ts`) -- Manages `DesignConstraint` nodes and `VIOLATES_DESIGN` edges in the graph. Reads `design.strictness` to control violation severity. Used during REVIEW and ENFORCE phases.
159
+
160
+ **Graph naming convention:** This skill uses PascalCase for node types (`AestheticIntent`, `DesignToken`, `DesignConstraint`) and UPPER_SNAKE for edge types (`DECLARES_INTENT`, `VIOLATES_DESIGN`, `USES_TOKEN`, `PLATFORM_BINDING`) as conceptual labels. The graph schema registers these as snake_case identifiers (`aesthetic_intent`, `design_token`, `design_constraint`, `declares_intent`, `violates_design`, `uses_token`, `platform_binding`). The adapter classes (`DesignIngestor`, `DesignConstraintAdapter`) handle the mapping — always use the adapters rather than constructing graph queries with raw type names.
161
+
162
+ - **`harness-design-system`** -- Dependency. This skill reads tokens and design intent generated by harness-design-system. Token-level issues (palette changes, new colors) are resolved by running harness-design-system, not this skill.
163
+ - **`harness-impact-analysis`** -- When design tokens change, impact analysis traces which components consume affected tokens. Use this to determine which components need re-review after token updates.
164
+
165
+ ## Success Criteria
166
+
167
+ - `design-system/DESIGN.md` exists with all required sections: Aesthetic Direction, Anti-Patterns, Platform Notes, Strictness Override
168
+ - Anti-patterns are detected in the codebase and reported with file paths, line numbers, and severity
169
+ - `designStrictness` configuration is read from `harness.config.json` and respected in all severity assignments
170
+ - `AestheticIntent` node created in the knowledge graph with style, tone, differentiator, and strictness properties
171
+ - `DECLARES_INTENT` edge connects the project to the aesthetic intent node
172
+ - `DesignConstraint` nodes created for each violated design rule
173
+ - `VIOLATES_DESIGN` edges connect violating components to their constraint nodes
174
+ - Violations output in numbered format (DESIGN-001, DESIGN-002, etc.) with severity matching strictness level
175
+ - `harness validate` passes after DESIGN.md generation and enforcement
176
+ - User confirmed aesthetic intent before DESIGN.md generation (hard gate)
177
+
178
+ ## Examples
179
+
180
+ ### Example: SaaS Analytics Dashboard Aesthetic Direction
181
+
182
+ **Context:** A SaaS analytics dashboard project. Industry: `saas`. Design tokens already generated by harness-design-system. No existing DESIGN.md aesthetic direction.
183
+
184
+ **INTENT capture:**
185
+
186
+ ```
187
+ Industry profile: Loaded (saas) -- recommends professional, data-focused aesthetic
188
+ Style: Minimal
189
+ Tone: Cool, professional
190
+ Differentiator: Dense information display with generous whitespace between sections
191
+ Anti-patterns: No gradients on data elements, no decorative borders on cards,
192
+ no more than 2 font weights per component
193
+ Strictness: standard (from harness.config.json)
194
+ ```
195
+
196
+ **DIRECTION output (DESIGN.md excerpt):**
197
+
198
+ ```markdown
199
+ ## Aesthetic Direction
200
+
201
+ **Style:** Minimal -- clean lines, flat surfaces, no decorative elements that do not serve
202
+ an informational purpose. Every visual element must earn its place by conveying data or
203
+ guiding the user's eye.
204
+
205
+ **Tone:** Cool, professional -- slate and blue palette dominates. Warm colors reserved
206
+ exclusively for semantic states (warning, error). No warm accents in neutral UI.
207
+
208
+ **Differentiator:** Dense information display with generous whitespace between sections.
209
+ Components are compact internally but breathe externally. Card padding is tight (12px),
210
+ but gaps between cards are generous (24px+).
211
+
212
+ ## Anti-Patterns
213
+
214
+ | Pattern | Description | Why It Conflicts |
215
+ | -------------------------- | -------------------------------------------- | ------------------------------------------ |
216
+ | Gradients on data elements | linear-gradient on charts, tables, cards | Minimal style: flat surfaces only |
217
+ | Decorative card borders | border with color on .card elements | Minimal style: borders are structural only |
218
+ | Excess font weights | More than 2 font-weight values per component | Minimal style: typographic restraint |
219
+
220
+ ## Strictness Override
221
+
222
+ Current level: **standard**
223
+
224
+ To change, update `harness.config.json`:
225
+ "design": { "strictness": "strict" | "standard" | "permissive" }
226
+ ```
227
+
228
+ **REVIEW findings:**
229
+
230
+ ```
231
+ Found 3 anti-pattern violations in 2 files:
232
+
233
+ DESIGN-001 [warn] Gradient on data element
234
+ File: src/components/RevenueChart.tsx:42
235
+ Constraint: No gradients on data elements
236
+ Fix: Replace linear-gradient(#3b82f6, #1d4ed8) with solid token "primary.500"
237
+
238
+ DESIGN-002 [warn] Decorative border on card
239
+ File: src/components/MetricCard.tsx:15
240
+ Constraint: No decorative borders on cards
241
+ Fix: Remove border-color: #3b82f6, use border-color: transparent or remove border
242
+
243
+ DESIGN-003 [info] Three font weights in one component
244
+ File: src/components/MetricCard.tsx:8
245
+ Constraint: Max 2 font weights per component
246
+ Fix: Consolidate font-weight values to 400 (body) and 600 (heading) only
247
+ ```
248
+
249
+ ## Gates
250
+
251
+ These are hard stops. Violating any gate means the process has broken down.
252
+
253
+ - **No DESIGN.md generated without the user confirming aesthetic intent.** The INTENT phase must end with explicit user confirmation of style, tone, differentiator, and anti-patterns. Do not generate based on assumptions.
254
+ - **No enforcement without reading tokens from harness-design-system.** The REVIEW and ENFORCE phases require `design-system/tokens.json` to exist. If tokens have not been generated, instruct the user to run harness-design-system first.
255
+ - **Strictness must be read from configuration, not assumed.** Read `design.strictness` from `harness.config.json`. If the key does not exist, default to `standard` and report the default to the user. Never hardcode a strictness level.
256
+ - **No anti-pattern detection without a declared intent.** The REVIEW phase requires an existing DESIGN.md with declared anti-patterns. If no intent has been captured, run the INTENT and DIRECTION phases first.
257
+ - **No graph mutations without validating node types.** When creating `AestheticIntent`, `DesignConstraint`, or `VIOLATES_DESIGN` edges, verify the node and edge types are registered in the graph schema before writing.
258
+
259
+ ## Escalation
260
+
261
+ - **When the user cannot articulate a style or tone:** Suggest industry-based defaults from the loaded industry profile. Present 2-3 options with examples: "Based on the saas industry profile, common styles are: (1) Minimal -- clean, data-focused, (2) Corporate -- structured, trustworthy, (3) Expressive -- colorful, engaging. Which resonates most?"
262
+ - **When declared anti-patterns conflict with existing code:** Present a migration path rather than flagging every instance as a violation. Report: "Found 47 instances of gradients on data elements. Recommend a phased migration: (1) Update new components immediately, (2) Schedule legacy component updates over 3 sprints. Set strictness to 'permissive' during migration to avoid blocking CI."
263
+ - **When tokens do not exist yet:** Do not attempt to infer a token set. Instruct the user: "Design tokens have not been generated. Run harness-design-system first to create `design-system/tokens.json`, then re-run harness-design for aesthetic direction."
264
+ - **When strictness level conflicts with team velocity:** Explain the tradeoffs: "Strict mode blocks PRs on any design violation. If this is slowing the team, consider 'standard' mode which blocks only on critical violations (off-brand colors, accessibility) and warns on anti-patterns."
265
+ - **When the knowledge graph is unavailable:** Skip graph operations in DIRECTION and ENFORCE phases. Log: "Graph not available at `.harness/graph/` -- skipping AestheticIntent node creation and violation recording. Run `harness scan` later to populate." Continue with file-based operations.