@harness-engineering/cli 1.15.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 (495) 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 +123 -14
  100. package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +6 -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-security-review/SKILL.md +27 -7
  110. package/dist/agents/skills/claude-code/harness-security-scan/SKILL.md +52 -0
  111. package/dist/agents/skills/claude-code/harness-supply-chain-audit/SKILL.md +281 -0
  112. package/dist/agents/skills/claude-code/harness-supply-chain-audit/skill.yaml +51 -0
  113. package/dist/agents/skills/codex/add-harness-component/SKILL.md +192 -0
  114. package/dist/agents/skills/codex/add-harness-component/skill.yaml +33 -0
  115. package/dist/agents/skills/codex/align-documentation/SKILL.md +213 -0
  116. package/dist/agents/skills/codex/align-documentation/skill.yaml +32 -0
  117. package/dist/agents/skills/codex/check-mechanical-constraints/SKILL.md +191 -0
  118. package/dist/agents/skills/codex/check-mechanical-constraints/skill.yaml +33 -0
  119. package/dist/agents/skills/codex/cleanup-dead-code/SKILL.md +245 -0
  120. package/dist/agents/skills/codex/cleanup-dead-code/skill.yaml +34 -0
  121. package/dist/agents/skills/codex/detect-doc-drift/SKILL.md +179 -0
  122. package/dist/agents/skills/codex/detect-doc-drift/skill.yaml +31 -0
  123. package/dist/agents/skills/codex/enforce-architecture/SKILL.md +296 -0
  124. package/dist/agents/skills/codex/enforce-architecture/skill.yaml +35 -0
  125. package/dist/agents/skills/codex/harness-accessibility/SKILL.md +281 -0
  126. package/dist/agents/skills/codex/harness-accessibility/skill.yaml +52 -0
  127. package/dist/agents/skills/codex/harness-api-design/SKILL.md +356 -0
  128. package/dist/agents/skills/codex/harness-api-design/skill.yaml +74 -0
  129. package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +449 -0
  130. package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +49 -0
  131. package/dist/agents/skills/codex/harness-auth/SKILL.md +331 -0
  132. package/dist/agents/skills/codex/harness-auth/skill.yaml +81 -0
  133. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +916 -0
  134. package/dist/agents/skills/codex/harness-autopilot/skill.yaml +67 -0
  135. package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +406 -0
  136. package/dist/agents/skills/codex/harness-brainstorming/skill.yaml +50 -0
  137. package/dist/agents/skills/codex/harness-caching/SKILL.md +309 -0
  138. package/dist/agents/skills/codex/harness-caching/skill.yaml +73 -0
  139. package/dist/agents/skills/codex/harness-chaos/SKILL.md +295 -0
  140. package/dist/agents/skills/codex/harness-chaos/skill.yaml +72 -0
  141. package/dist/agents/skills/codex/harness-code-review/SKILL.md +857 -0
  142. package/dist/agents/skills/codex/harness-code-review/skill.yaml +52 -0
  143. package/dist/agents/skills/codex/harness-codebase-cleanup/SKILL.md +224 -0
  144. package/dist/agents/skills/codex/harness-codebase-cleanup/skill.yaml +65 -0
  145. package/dist/agents/skills/codex/harness-compliance/SKILL.md +303 -0
  146. package/dist/agents/skills/codex/harness-compliance/skill.yaml +78 -0
  147. package/dist/agents/skills/codex/harness-containerization/SKILL.md +284 -0
  148. package/dist/agents/skills/codex/harness-containerization/skill.yaml +80 -0
  149. package/dist/agents/skills/codex/harness-data-pipeline/SKILL.md +274 -0
  150. package/dist/agents/skills/codex/harness-data-pipeline/skill.yaml +81 -0
  151. package/dist/agents/skills/codex/harness-data-validation/SKILL.md +343 -0
  152. package/dist/agents/skills/codex/harness-data-validation/skill.yaml +75 -0
  153. package/dist/agents/skills/codex/harness-database/SKILL.md +310 -0
  154. package/dist/agents/skills/codex/harness-database/skill.yaml +80 -0
  155. package/dist/agents/skills/codex/harness-debugging/SKILL.md +366 -0
  156. package/dist/agents/skills/codex/harness-debugging/skill.yaml +48 -0
  157. package/dist/agents/skills/codex/harness-dependency-health/SKILL.md +179 -0
  158. package/dist/agents/skills/codex/harness-dependency-health/skill.yaml +42 -0
  159. package/dist/agents/skills/codex/harness-deployment/SKILL.md +307 -0
  160. package/dist/agents/skills/codex/harness-deployment/skill.yaml +77 -0
  161. package/dist/agents/skills/codex/harness-design/SKILL.md +265 -0
  162. package/dist/agents/skills/codex/harness-design/skill.yaml +54 -0
  163. package/dist/agents/skills/codex/harness-design-mobile/SKILL.md +336 -0
  164. package/dist/agents/skills/codex/harness-design-mobile/skill.yaml +50 -0
  165. package/dist/agents/skills/codex/harness-design-system/SKILL.md +282 -0
  166. package/dist/agents/skills/codex/harness-design-system/skill.yaml +51 -0
  167. package/dist/agents/skills/codex/harness-design-web/SKILL.md +360 -0
  168. package/dist/agents/skills/codex/harness-design-web/skill.yaml +53 -0
  169. package/dist/agents/skills/codex/harness-diagnostics/SKILL.md +318 -0
  170. package/dist/agents/skills/codex/harness-diagnostics/skill.yaml +51 -0
  171. package/dist/agents/skills/codex/harness-docs-pipeline/SKILL.md +460 -0
  172. package/dist/agents/skills/codex/harness-docs-pipeline/skill.yaml +70 -0
  173. package/dist/agents/skills/codex/harness-dx/SKILL.md +276 -0
  174. package/dist/agents/skills/codex/harness-dx/skill.yaml +76 -0
  175. package/dist/agents/skills/codex/harness-e2e/SKILL.md +245 -0
  176. package/dist/agents/skills/codex/harness-e2e/skill.yaml +78 -0
  177. package/dist/agents/skills/codex/harness-event-driven/SKILL.md +280 -0
  178. package/dist/agents/skills/codex/harness-event-driven/skill.yaml +77 -0
  179. package/dist/agents/skills/codex/harness-execution/SKILL.md +510 -0
  180. package/dist/agents/skills/codex/harness-execution/skill.yaml +52 -0
  181. package/dist/agents/skills/codex/harness-feature-flags/SKILL.md +287 -0
  182. package/dist/agents/skills/codex/harness-feature-flags/skill.yaml +74 -0
  183. package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +268 -0
  184. package/dist/agents/skills/codex/harness-git-workflow/skill.yaml +32 -0
  185. package/dist/agents/skills/codex/harness-hotspot-detector/SKILL.md +161 -0
  186. package/dist/agents/skills/codex/harness-hotspot-detector/skill.yaml +45 -0
  187. package/dist/agents/skills/codex/harness-i18n/SKILL.md +484 -0
  188. package/dist/agents/skills/codex/harness-i18n/skill.yaml +55 -0
  189. package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +388 -0
  190. package/dist/agents/skills/codex/harness-i18n-process/skill.yaml +44 -0
  191. package/dist/agents/skills/codex/harness-i18n-workflow/SKILL.md +512 -0
  192. package/dist/agents/skills/codex/harness-i18n-workflow/skill.yaml +54 -0
  193. package/dist/agents/skills/codex/harness-impact-analysis/SKILL.md +184 -0
  194. package/dist/agents/skills/codex/harness-impact-analysis/skill.yaml +45 -0
  195. package/dist/agents/skills/codex/harness-incident-response/SKILL.md +223 -0
  196. package/dist/agents/skills/codex/harness-incident-response/skill.yaml +78 -0
  197. package/dist/agents/skills/codex/harness-infrastructure-as-code/SKILL.md +279 -0
  198. package/dist/agents/skills/codex/harness-infrastructure-as-code/skill.yaml +80 -0
  199. package/dist/agents/skills/codex/harness-integration-test/SKILL.md +271 -0
  200. package/dist/agents/skills/codex/harness-integration-test/skill.yaml +73 -0
  201. package/dist/agents/skills/codex/harness-integrity/SKILL.md +167 -0
  202. package/dist/agents/skills/codex/harness-integrity/skill.yaml +48 -0
  203. package/dist/agents/skills/codex/harness-knowledge-mapper/SKILL.md +195 -0
  204. package/dist/agents/skills/codex/harness-knowledge-mapper/skill.yaml +50 -0
  205. package/dist/agents/skills/codex/harness-load-testing/SKILL.md +274 -0
  206. package/dist/agents/skills/codex/harness-load-testing/skill.yaml +79 -0
  207. package/dist/agents/skills/codex/harness-ml-ops/SKILL.md +341 -0
  208. package/dist/agents/skills/codex/harness-ml-ops/skill.yaml +79 -0
  209. package/dist/agents/skills/codex/harness-mobile-patterns/SKILL.md +326 -0
  210. package/dist/agents/skills/codex/harness-mobile-patterns/skill.yaml +82 -0
  211. package/dist/agents/skills/codex/harness-mutation-test/SKILL.md +251 -0
  212. package/dist/agents/skills/codex/harness-mutation-test/skill.yaml +70 -0
  213. package/dist/agents/skills/codex/harness-observability/SKILL.md +283 -0
  214. package/dist/agents/skills/codex/harness-observability/skill.yaml +78 -0
  215. package/dist/agents/skills/codex/harness-onboarding/SKILL.md +288 -0
  216. package/dist/agents/skills/codex/harness-onboarding/skill.yaml +31 -0
  217. package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +256 -0
  218. package/dist/agents/skills/codex/harness-parallel-agents/skill.yaml +34 -0
  219. package/dist/agents/skills/codex/harness-perf/SKILL.md +260 -0
  220. package/dist/agents/skills/codex/harness-perf/skill.yaml +51 -0
  221. package/dist/agents/skills/codex/harness-perf-tdd/SKILL.md +249 -0
  222. package/dist/agents/skills/codex/harness-perf-tdd/skill.yaml +48 -0
  223. package/dist/agents/skills/codex/harness-planning/SKILL.md +579 -0
  224. package/dist/agents/skills/codex/harness-planning/skill.yaml +56 -0
  225. package/dist/agents/skills/codex/harness-pre-commit-review/SKILL.md +324 -0
  226. package/dist/agents/skills/codex/harness-pre-commit-review/skill.yaml +34 -0
  227. package/dist/agents/skills/codex/harness-product-spec/SKILL.md +285 -0
  228. package/dist/agents/skills/codex/harness-product-spec/skill.yaml +72 -0
  229. package/dist/agents/skills/codex/harness-property-test/SKILL.md +281 -0
  230. package/dist/agents/skills/codex/harness-property-test/skill.yaml +71 -0
  231. package/dist/agents/skills/codex/harness-refactoring/SKILL.md +169 -0
  232. package/dist/agents/skills/codex/harness-refactoring/skill.yaml +34 -0
  233. package/dist/agents/skills/codex/harness-release-readiness/SKILL.md +689 -0
  234. package/dist/agents/skills/codex/harness-release-readiness/skill.yaml +58 -0
  235. package/dist/agents/skills/codex/harness-resilience/SKILL.md +255 -0
  236. package/dist/agents/skills/codex/harness-resilience/skill.yaml +76 -0
  237. package/dist/agents/skills/codex/harness-roadmap/SKILL.md +595 -0
  238. package/dist/agents/skills/codex/harness-roadmap/skill.yaml +44 -0
  239. package/dist/agents/skills/codex/harness-secrets/SKILL.md +293 -0
  240. package/dist/agents/skills/codex/harness-secrets/skill.yaml +76 -0
  241. package/dist/agents/skills/codex/harness-security-review/SKILL.md +260 -0
  242. package/dist/agents/skills/codex/harness-security-review/skill.yaml +53 -0
  243. package/dist/agents/skills/codex/harness-security-scan/SKILL.md +154 -0
  244. package/dist/agents/skills/codex/harness-security-scan/skill.yaml +42 -0
  245. package/dist/agents/skills/codex/harness-skill-authoring/SKILL.md +292 -0
  246. package/dist/agents/skills/codex/harness-skill-authoring/skill.yaml +33 -0
  247. package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +1267 -0
  248. package/dist/agents/skills/codex/harness-soundness-review/skill.yaml +49 -0
  249. package/dist/agents/skills/codex/harness-sql-review/SKILL.md +315 -0
  250. package/dist/agents/skills/codex/harness-sql-review/skill.yaml +74 -0
  251. package/dist/agents/skills/codex/harness-state-management/SKILL.md +309 -0
  252. package/dist/agents/skills/codex/harness-state-management/skill.yaml +33 -0
  253. package/dist/agents/skills/codex/harness-supply-chain-audit/SKILL.md +281 -0
  254. package/dist/agents/skills/codex/harness-supply-chain-audit/skill.yaml +51 -0
  255. package/dist/agents/skills/codex/harness-tdd/SKILL.md +177 -0
  256. package/dist/agents/skills/codex/harness-tdd/skill.yaml +49 -0
  257. package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +160 -0
  258. package/dist/agents/skills/codex/harness-test-advisor/skill.yaml +45 -0
  259. package/dist/agents/skills/codex/harness-test-data/SKILL.md +268 -0
  260. package/dist/agents/skills/codex/harness-test-data/skill.yaml +74 -0
  261. package/dist/agents/skills/codex/harness-ux-copy/SKILL.md +271 -0
  262. package/dist/agents/skills/codex/harness-ux-copy/skill.yaml +77 -0
  263. package/dist/agents/skills/codex/harness-verification/SKILL.md +421 -0
  264. package/dist/agents/skills/codex/harness-verification/skill.yaml +43 -0
  265. package/dist/agents/skills/codex/harness-verify/SKILL.md +159 -0
  266. package/dist/agents/skills/codex/harness-verify/skill.yaml +41 -0
  267. package/dist/agents/skills/codex/harness-visual-regression/SKILL.md +257 -0
  268. package/dist/agents/skills/codex/harness-visual-regression/skill.yaml +74 -0
  269. package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +232 -0
  270. package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +32 -0
  271. package/dist/agents/skills/codex/validate-context-engineering/SKILL.md +150 -0
  272. package/dist/agents/skills/codex/validate-context-engineering/skill.yaml +32 -0
  273. package/dist/agents/skills/cursor/add-harness-component/SKILL.md +192 -0
  274. package/dist/agents/skills/cursor/add-harness-component/skill.yaml +33 -0
  275. package/dist/agents/skills/cursor/align-documentation/SKILL.md +213 -0
  276. package/dist/agents/skills/cursor/align-documentation/skill.yaml +32 -0
  277. package/dist/agents/skills/cursor/check-mechanical-constraints/SKILL.md +191 -0
  278. package/dist/agents/skills/cursor/check-mechanical-constraints/skill.yaml +33 -0
  279. package/dist/agents/skills/cursor/cleanup-dead-code/SKILL.md +245 -0
  280. package/dist/agents/skills/cursor/cleanup-dead-code/skill.yaml +34 -0
  281. package/dist/agents/skills/cursor/detect-doc-drift/SKILL.md +179 -0
  282. package/dist/agents/skills/cursor/detect-doc-drift/skill.yaml +31 -0
  283. package/dist/agents/skills/cursor/enforce-architecture/SKILL.md +296 -0
  284. package/dist/agents/skills/cursor/enforce-architecture/skill.yaml +35 -0
  285. package/dist/agents/skills/cursor/harness-accessibility/SKILL.md +281 -0
  286. package/dist/agents/skills/cursor/harness-accessibility/skill.yaml +52 -0
  287. package/dist/agents/skills/cursor/harness-api-design/SKILL.md +356 -0
  288. package/dist/agents/skills/cursor/harness-api-design/skill.yaml +74 -0
  289. package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +449 -0
  290. package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +49 -0
  291. package/dist/agents/skills/cursor/harness-auth/SKILL.md +331 -0
  292. package/dist/agents/skills/cursor/harness-auth/skill.yaml +81 -0
  293. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +916 -0
  294. package/dist/agents/skills/cursor/harness-autopilot/skill.yaml +67 -0
  295. package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +406 -0
  296. package/dist/agents/skills/cursor/harness-brainstorming/skill.yaml +50 -0
  297. package/dist/agents/skills/cursor/harness-caching/SKILL.md +309 -0
  298. package/dist/agents/skills/cursor/harness-caching/skill.yaml +73 -0
  299. package/dist/agents/skills/cursor/harness-chaos/SKILL.md +295 -0
  300. package/dist/agents/skills/cursor/harness-chaos/skill.yaml +72 -0
  301. package/dist/agents/skills/cursor/harness-code-review/SKILL.md +857 -0
  302. package/dist/agents/skills/cursor/harness-code-review/skill.yaml +52 -0
  303. package/dist/agents/skills/cursor/harness-codebase-cleanup/SKILL.md +224 -0
  304. package/dist/agents/skills/cursor/harness-codebase-cleanup/skill.yaml +65 -0
  305. package/dist/agents/skills/cursor/harness-compliance/SKILL.md +303 -0
  306. package/dist/agents/skills/cursor/harness-compliance/skill.yaml +78 -0
  307. package/dist/agents/skills/cursor/harness-containerization/SKILL.md +284 -0
  308. package/dist/agents/skills/cursor/harness-containerization/skill.yaml +80 -0
  309. package/dist/agents/skills/cursor/harness-data-pipeline/SKILL.md +274 -0
  310. package/dist/agents/skills/cursor/harness-data-pipeline/skill.yaml +81 -0
  311. package/dist/agents/skills/cursor/harness-data-validation/SKILL.md +343 -0
  312. package/dist/agents/skills/cursor/harness-data-validation/skill.yaml +75 -0
  313. package/dist/agents/skills/cursor/harness-database/SKILL.md +310 -0
  314. package/dist/agents/skills/cursor/harness-database/skill.yaml +80 -0
  315. package/dist/agents/skills/cursor/harness-debugging/SKILL.md +366 -0
  316. package/dist/agents/skills/cursor/harness-debugging/skill.yaml +48 -0
  317. package/dist/agents/skills/cursor/harness-dependency-health/SKILL.md +179 -0
  318. package/dist/agents/skills/cursor/harness-dependency-health/skill.yaml +42 -0
  319. package/dist/agents/skills/cursor/harness-deployment/SKILL.md +307 -0
  320. package/dist/agents/skills/cursor/harness-deployment/skill.yaml +77 -0
  321. package/dist/agents/skills/cursor/harness-design/SKILL.md +265 -0
  322. package/dist/agents/skills/cursor/harness-design/skill.yaml +54 -0
  323. package/dist/agents/skills/cursor/harness-design-mobile/SKILL.md +336 -0
  324. package/dist/agents/skills/cursor/harness-design-mobile/skill.yaml +50 -0
  325. package/dist/agents/skills/cursor/harness-design-system/SKILL.md +282 -0
  326. package/dist/agents/skills/cursor/harness-design-system/skill.yaml +51 -0
  327. package/dist/agents/skills/cursor/harness-design-web/SKILL.md +360 -0
  328. package/dist/agents/skills/cursor/harness-design-web/skill.yaml +53 -0
  329. package/dist/agents/skills/cursor/harness-diagnostics/SKILL.md +318 -0
  330. package/dist/agents/skills/cursor/harness-diagnostics/skill.yaml +51 -0
  331. package/dist/agents/skills/cursor/harness-docs-pipeline/SKILL.md +460 -0
  332. package/dist/agents/skills/cursor/harness-docs-pipeline/skill.yaml +70 -0
  333. package/dist/agents/skills/cursor/harness-dx/SKILL.md +276 -0
  334. package/dist/agents/skills/cursor/harness-dx/skill.yaml +76 -0
  335. package/dist/agents/skills/cursor/harness-e2e/SKILL.md +245 -0
  336. package/dist/agents/skills/cursor/harness-e2e/skill.yaml +78 -0
  337. package/dist/agents/skills/cursor/harness-event-driven/SKILL.md +280 -0
  338. package/dist/agents/skills/cursor/harness-event-driven/skill.yaml +77 -0
  339. package/dist/agents/skills/cursor/harness-execution/SKILL.md +510 -0
  340. package/dist/agents/skills/cursor/harness-execution/skill.yaml +52 -0
  341. package/dist/agents/skills/cursor/harness-feature-flags/SKILL.md +287 -0
  342. package/dist/agents/skills/cursor/harness-feature-flags/skill.yaml +74 -0
  343. package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +268 -0
  344. package/dist/agents/skills/cursor/harness-git-workflow/skill.yaml +32 -0
  345. package/dist/agents/skills/cursor/harness-hotspot-detector/SKILL.md +161 -0
  346. package/dist/agents/skills/cursor/harness-hotspot-detector/skill.yaml +45 -0
  347. package/dist/agents/skills/cursor/harness-i18n/SKILL.md +484 -0
  348. package/dist/agents/skills/cursor/harness-i18n/skill.yaml +55 -0
  349. package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +388 -0
  350. package/dist/agents/skills/cursor/harness-i18n-process/skill.yaml +44 -0
  351. package/dist/agents/skills/cursor/harness-i18n-workflow/SKILL.md +512 -0
  352. package/dist/agents/skills/cursor/harness-i18n-workflow/skill.yaml +54 -0
  353. package/dist/agents/skills/cursor/harness-impact-analysis/SKILL.md +184 -0
  354. package/dist/agents/skills/cursor/harness-impact-analysis/skill.yaml +45 -0
  355. package/dist/agents/skills/cursor/harness-incident-response/SKILL.md +223 -0
  356. package/dist/agents/skills/cursor/harness-incident-response/skill.yaml +78 -0
  357. package/dist/agents/skills/cursor/harness-infrastructure-as-code/SKILL.md +279 -0
  358. package/dist/agents/skills/cursor/harness-infrastructure-as-code/skill.yaml +80 -0
  359. package/dist/agents/skills/cursor/harness-integration-test/SKILL.md +271 -0
  360. package/dist/agents/skills/cursor/harness-integration-test/skill.yaml +73 -0
  361. package/dist/agents/skills/cursor/harness-integrity/SKILL.md +167 -0
  362. package/dist/agents/skills/cursor/harness-integrity/skill.yaml +48 -0
  363. package/dist/agents/skills/cursor/harness-knowledge-mapper/SKILL.md +195 -0
  364. package/dist/agents/skills/cursor/harness-knowledge-mapper/skill.yaml +50 -0
  365. package/dist/agents/skills/cursor/harness-load-testing/SKILL.md +274 -0
  366. package/dist/agents/skills/cursor/harness-load-testing/skill.yaml +79 -0
  367. package/dist/agents/skills/cursor/harness-ml-ops/SKILL.md +341 -0
  368. package/dist/agents/skills/cursor/harness-ml-ops/skill.yaml +79 -0
  369. package/dist/agents/skills/cursor/harness-mobile-patterns/SKILL.md +326 -0
  370. package/dist/agents/skills/cursor/harness-mobile-patterns/skill.yaml +82 -0
  371. package/dist/agents/skills/cursor/harness-mutation-test/SKILL.md +251 -0
  372. package/dist/agents/skills/cursor/harness-mutation-test/skill.yaml +70 -0
  373. package/dist/agents/skills/cursor/harness-observability/SKILL.md +283 -0
  374. package/dist/agents/skills/cursor/harness-observability/skill.yaml +78 -0
  375. package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +288 -0
  376. package/dist/agents/skills/cursor/harness-onboarding/skill.yaml +31 -0
  377. package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +256 -0
  378. package/dist/agents/skills/cursor/harness-parallel-agents/skill.yaml +34 -0
  379. package/dist/agents/skills/cursor/harness-perf/SKILL.md +260 -0
  380. package/dist/agents/skills/cursor/harness-perf/skill.yaml +51 -0
  381. package/dist/agents/skills/cursor/harness-perf-tdd/SKILL.md +249 -0
  382. package/dist/agents/skills/cursor/harness-perf-tdd/skill.yaml +48 -0
  383. package/dist/agents/skills/cursor/harness-planning/SKILL.md +579 -0
  384. package/dist/agents/skills/cursor/harness-planning/skill.yaml +56 -0
  385. package/dist/agents/skills/cursor/harness-pre-commit-review/SKILL.md +324 -0
  386. package/dist/agents/skills/cursor/harness-pre-commit-review/skill.yaml +34 -0
  387. package/dist/agents/skills/cursor/harness-product-spec/SKILL.md +285 -0
  388. package/dist/agents/skills/cursor/harness-product-spec/skill.yaml +72 -0
  389. package/dist/agents/skills/cursor/harness-property-test/SKILL.md +281 -0
  390. package/dist/agents/skills/cursor/harness-property-test/skill.yaml +71 -0
  391. package/dist/agents/skills/cursor/harness-refactoring/SKILL.md +169 -0
  392. package/dist/agents/skills/cursor/harness-refactoring/skill.yaml +34 -0
  393. package/dist/agents/skills/cursor/harness-release-readiness/SKILL.md +689 -0
  394. package/dist/agents/skills/cursor/harness-release-readiness/skill.yaml +58 -0
  395. package/dist/agents/skills/cursor/harness-resilience/SKILL.md +255 -0
  396. package/dist/agents/skills/cursor/harness-resilience/skill.yaml +76 -0
  397. package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +595 -0
  398. package/dist/agents/skills/cursor/harness-roadmap/skill.yaml +44 -0
  399. package/dist/agents/skills/cursor/harness-secrets/SKILL.md +293 -0
  400. package/dist/agents/skills/cursor/harness-secrets/skill.yaml +76 -0
  401. package/dist/agents/skills/cursor/harness-security-review/SKILL.md +260 -0
  402. package/dist/agents/skills/cursor/harness-security-review/skill.yaml +53 -0
  403. package/dist/agents/skills/cursor/harness-security-scan/SKILL.md +154 -0
  404. package/dist/agents/skills/cursor/harness-security-scan/skill.yaml +42 -0
  405. package/dist/agents/skills/cursor/harness-skill-authoring/SKILL.md +292 -0
  406. package/dist/agents/skills/cursor/harness-skill-authoring/skill.yaml +33 -0
  407. package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +1267 -0
  408. package/dist/agents/skills/cursor/harness-soundness-review/skill.yaml +49 -0
  409. package/dist/agents/skills/cursor/harness-sql-review/SKILL.md +315 -0
  410. package/dist/agents/skills/cursor/harness-sql-review/skill.yaml +74 -0
  411. package/dist/agents/skills/cursor/harness-state-management/SKILL.md +309 -0
  412. package/dist/agents/skills/cursor/harness-state-management/skill.yaml +33 -0
  413. package/dist/agents/skills/cursor/harness-supply-chain-audit/SKILL.md +281 -0
  414. package/dist/agents/skills/cursor/harness-supply-chain-audit/skill.yaml +51 -0
  415. package/dist/agents/skills/cursor/harness-tdd/SKILL.md +177 -0
  416. package/dist/agents/skills/cursor/harness-tdd/skill.yaml +49 -0
  417. package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +160 -0
  418. package/dist/agents/skills/cursor/harness-test-advisor/skill.yaml +45 -0
  419. package/dist/agents/skills/cursor/harness-test-data/SKILL.md +268 -0
  420. package/dist/agents/skills/cursor/harness-test-data/skill.yaml +74 -0
  421. package/dist/agents/skills/cursor/harness-ux-copy/SKILL.md +271 -0
  422. package/dist/agents/skills/cursor/harness-ux-copy/skill.yaml +77 -0
  423. package/dist/agents/skills/cursor/harness-verification/SKILL.md +421 -0
  424. package/dist/agents/skills/cursor/harness-verification/skill.yaml +43 -0
  425. package/dist/agents/skills/cursor/harness-verify/SKILL.md +159 -0
  426. package/dist/agents/skills/cursor/harness-verify/skill.yaml +41 -0
  427. package/dist/agents/skills/cursor/harness-visual-regression/SKILL.md +257 -0
  428. package/dist/agents/skills/cursor/harness-visual-regression/skill.yaml +74 -0
  429. package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +232 -0
  430. package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +32 -0
  431. package/dist/agents/skills/cursor/validate-context-engineering/SKILL.md +150 -0
  432. package/dist/agents/skills/cursor/validate-context-engineering/skill.yaml +32 -0
  433. package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +52 -0
  434. package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +52 -0
  435. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +52 -0
  436. package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +52 -0
  437. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +123 -14
  438. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +6 -0
  439. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +97 -3
  440. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +6 -0
  441. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +2 -4
  442. package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +52 -0
  443. package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +52 -0
  444. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +99 -3
  445. package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +6 -0
  446. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +1 -1
  447. package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +27 -7
  448. package/dist/agents/skills/gemini-cli/harness-security-scan/SKILL.md +52 -0
  449. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/SKILL.md +281 -0
  450. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/skill.yaml +51 -0
  451. package/dist/agents/skills/templates/discipline-template.md +49 -0
  452. package/dist/agents/skills/tests/schema.ts +1 -1
  453. package/dist/{agents-md-ZGNIDWAF.js → agents-md-VYDFPIRW.js} +1 -1
  454. package/dist/{architecture-ZLIH5533.js → architecture-K5HSRBGB.js} +2 -2
  455. package/dist/bin/harness-mcp.js +13 -13
  456. package/dist/bin/harness.js +18 -18
  457. package/dist/{check-phase-gate-ZOXVBDCN.js → check-phase-gate-5AS6SXL6.js} +3 -3
  458. package/dist/{chunk-LGYBN7Y6.js → chunk-5ZXHMCPL.js} +1 -1
  459. package/dist/{chunk-RCWZBSK5.js → chunk-6KWBH4EO.js} +1 -1
  460. package/dist/{chunk-Z2OOPXJO.js → chunk-ALFKNAZW.js} +1172 -74
  461. package/dist/{chunk-VEPAJXBW.js → chunk-AV6KMDO5.js} +2 -2
  462. package/dist/{chunk-2BKLWLY6.js → chunk-C7DTKLPW.js} +4 -4
  463. package/dist/{chunk-ZOAWBDWU.js → chunk-CJDVBBPB.js} +5 -1
  464. package/dist/{chunk-EDXIVMAP.js → chunk-DNDBFIZN.js} +18 -4
  465. package/dist/{chunk-XYLGHKG6.js → chunk-HKUX2X7O.js} +11 -2
  466. package/dist/{chunk-NNHDDXYT.js → chunk-JOP2NDNB.js} +396 -114
  467. package/dist/{chunk-YBJ262QL.js → chunk-LRG3B43J.js} +1 -1
  468. package/dist/{chunk-AOZRDOIP.js → chunk-M6TIO6NF.js} +1 -1
  469. package/dist/{chunk-B2HKP423.js → chunk-OCDDCGDE.js} +9 -1
  470. package/dist/{chunk-3ZZKVN62.js → chunk-QDF7COPQ.js} +1 -1
  471. package/dist/{chunk-YLXFKVJE.js → chunk-RWZPHW4H.js} +3 -3
  472. package/dist/{chunk-N25INEIX.js → chunk-SFRGPAK6.js} +1 -1
  473. package/dist/{chunk-J4RAX7YB.js → chunk-SHYWICGA.js} +1677 -501
  474. package/dist/{chunk-OFXQSFOW.js → chunk-TF6ZLHJV.js} +2 -2
  475. package/dist/{chunk-ND2ENWDM.js → chunk-ZJMU7MEV.js} +1 -1
  476. package/dist/{ci-workflow-765LSHRD.js → ci-workflow-CRWU723U.js} +1 -1
  477. package/dist/{create-skill-XSWHMSM5.js → create-skill-NDXQSTIK.js} +2 -2
  478. package/dist/{dist-ALQDD67R.js → dist-4LPXJYVZ.js} +59 -1
  479. package/dist/{docs-NRMQCOJ6.js → docs-4JRHTLUZ.js} +3 -3
  480. package/dist/{engine-3RB7MXPP.js → engine-3G3VIM6L.js} +1 -1
  481. package/dist/{entropy-6AGX2ZUN.js → entropy-G6CZ2A6P.js} +2 -2
  482. package/dist/{feedback-MY4QZIFD.js → feedback-QYKQ65HB.js} +1 -1
  483. package/dist/{generate-agent-definitions-ZAE726AU.js → generate-agent-definitions-SAAOAPT4.js} +3 -3
  484. package/dist/index.d.ts +33 -12
  485. package/dist/index.js +18 -18
  486. package/dist/{loader-UUTVMQCC.js → loader-VCOK3PF7.js} +1 -1
  487. package/dist/{mcp-VU5FMO52.js → mcp-YENEPHBW.js} +13 -13
  488. package/dist/{performance-2D7G6NMJ.js → performance-UBCFI2UP.js} +4 -2
  489. package/dist/{review-pipeline-RAQ55ISU.js → review-pipeline-IQAVCWAX.js} +1 -1
  490. package/dist/{runtime-BCK5RRZQ.js → runtime-PYFFIESU.js} +1 -1
  491. package/dist/{security-2RPQEN62.js → security-ZDADTPYW.js} +1 -1
  492. package/dist/{skill-executor-XZLYZYAK.js → skill-executor-XEVDGXUM.js} +2 -2
  493. package/dist/{validate-KBYQAEWE.js → validate-VRTUHALQ.js} +2 -2
  494. package/dist/{validate-cross-check-OABMREW4.js → validate-cross-check-4Y6NHNK3.js} +1 -1
  495. package/package.json +6 -5
@@ -0,0 +1,192 @@
1
+ # Add Harness Component
2
+
3
+ > Add layers, documentation, components, or skills to an existing harness project with proper integration. Validate against existing constraints, wire into architecture, and verify the result.
4
+
5
+ ## When to Use
6
+
7
+ - Adding a new layer to the project's architecture
8
+ - Adding a new documentation file that harness should track
9
+ - Adding a new component (module, service, package) that must be wired into existing layer boundaries
10
+ - Adding a new skill to the project's skill library
11
+ - When a plan calls for introducing a new architectural boundary or module
12
+ - NOT when initializing a project from scratch (use initialize-harness-project)
13
+ - NOT when modifying an existing component (use standard editing workflows)
14
+ - NOT when removing components (manual process — removing requires careful dependency analysis)
15
+
16
+ ## Process
17
+
18
+ ### Phase 1: DETERMINE — Identify What to Add
19
+
20
+ 1. **Clarify the component type.** Ask if not obvious from context:
21
+ - **Layer:** A new architectural boundary (e.g., adding an "infrastructure" layer to a project that only has "business" and "data")
22
+ - **Document:** A documentation file that harness should track for drift detection (e.g., API docs, architecture decision records)
23
+ - **Component:** A code module, service, or package that lives within an existing layer
24
+ - **Skill:** A new harness skill definition for the project's workflow
25
+
26
+ 2. **Gather requirements.** For each type:
27
+ - **Layer:** Name, which directories belong to it, which layers it can import from, which layers can import from it
28
+ - **Document:** Path, what it documents, which code files it relates to
29
+ - **Component:** Name, which layer it belongs to, what it depends on, what will depend on it
30
+ - **Skill:** Name, purpose, type (rigid or flexible), triggers
31
+
32
+ 3. **Check prerequisites.** The project must already be initialized with harness. If `harness.yaml` does not exist, stop and run initialize-harness-project first.
33
+
34
+ ### Phase 2: VALIDATE — Check Against Existing Constraints
35
+
36
+ 1. **Read the current configuration.** Load `harness.yaml` and `AGENTS.md` to understand existing layers, constraints, and architecture.
37
+
38
+ 2. **Verify the new component does not conflict:**
39
+ - Does the layer name already exist?
40
+ - Does the component directory already exist?
41
+ - Would the new dependency relationships create circular imports?
42
+ - Does the component violate any existing forbidden-import rules?
43
+
44
+ 3. **If conflicts are found,** report them clearly: "Adding layer X would conflict with existing layer Y because [reason]. Options: [A] rename, [B] merge into existing layer, [C] restructure. Which do you prefer?"
45
+
46
+ 4. **Run `harness check-deps`** on the current state to establish a clean baseline. If it already fails, fix existing violations before adding new components.
47
+
48
+ ### Phase 3: ADD — Create the Component
49
+
50
+ 1. **Run `harness add` with appropriate arguments:**
51
+ - Layer: `harness add layer <name> --dirs <dir1,dir2> --imports <allowed-layers>`
52
+ - Document: `harness add doc <path> --tracks <related-code-paths>`
53
+ - Component: `harness add component <name> --layer <layer-name>`
54
+ - Skill: `harness add skill <name> --type <rigid|flexible>`
55
+
56
+ 2. **Review generated files and configuration changes.** `harness add` modifies `harness.yaml` and may generate template files. Check that the changes look correct.
57
+
58
+ 3. **Create the actual code or content.** `harness add` creates the configuration entry but not necessarily the implementation. Create the directories, files, and initial code as needed.
59
+
60
+ ### Phase 4: WIRE — Integrate into Architecture
61
+
62
+ 1. **Update imports and exports.** If the new component needs to be imported by existing code, add the imports. If existing code needs to be aware of the new layer, update barrel files or index modules.
63
+
64
+ 2. **Update `AGENTS.md`.** Add the new component to the architecture section. Document its purpose, boundaries, and relationships to other components. This keeps agent instructions accurate.
65
+
66
+ 3. **Update layer configuration** if the new component changes dependency relationships. Ensure `harness.yaml` reflects the actual import graph.
67
+
68
+ 4. **For new skills:** Write the `skill.yaml` and `SKILL.md` files following the harness skill format. Use harness-skill-authoring for guidance on writing good skill content.
69
+
70
+ ### Phase 5: VERIFY — Confirm Integration
71
+
72
+ 1. **Run `harness validate`** to verify the full project configuration is still valid after the addition.
73
+
74
+ 2. **Run `harness check-deps`** to verify no dependency violations were introduced. The new component's imports must respect layer boundaries.
75
+
76
+ ### Graph Refresh
77
+
78
+ If a knowledge graph exists at `.harness/graph/`, refresh it after code changes to keep graph queries accurate:
79
+
80
+ ```
81
+ harness scan [path]
82
+ ```
83
+
84
+ Skipping this step means subsequent graph queries (impact analysis, dependency health, test advisor) may return stale results.
85
+
86
+ 3. **If validation fails,** fix the issues before committing. Common causes:
87
+ - New layer not properly registered in `harness.yaml`
88
+ - Component placed in wrong directory for its declared layer
89
+ - Imports from forbidden layers
90
+ - `AGENTS.md` references outdated architecture
91
+
92
+ 4. **Commit the addition.** All new and modified files in a single atomic commit.
93
+
94
+ ## Harness Integration
95
+
96
+ - **`harness add layer <name>`** — Register a new architectural layer with directory mappings and import rules.
97
+ - **`harness add doc <path>`** — Register a documentation file for drift tracking.
98
+ - **`harness add component <name> --layer <layer>`** — Register a new code component within an existing layer.
99
+ - **`harness add skill <name> --type <type>`** — Scaffold a new skill definition.
100
+ - **`harness validate`** — Verify project configuration after the addition.
101
+ - **`harness check-deps`** — Verify dependency constraints are respected after the addition.
102
+
103
+ ## Success Criteria
104
+
105
+ - The new component is properly registered in `harness.yaml`
106
+ - The component's files exist in the correct directories for its declared layer
107
+ - `AGENTS.md` is updated to reflect the new component
108
+ - `harness validate` passes after the addition
109
+ - `harness check-deps` passes after the addition (no new violations)
110
+ - No circular dependencies were introduced
111
+ - The addition is committed as a single atomic commit
112
+
113
+ ## Examples
114
+
115
+ ### Example: Adding a New Layer
116
+
117
+ ```
118
+ Human: "We need an infrastructure layer for external API clients."
119
+
120
+ DETERMINE: Adding a layer. Name: infrastructure. Dirs: src/infrastructure/.
121
+ Imports from: (none — infrastructure is a leaf layer, no internal dependencies).
122
+ Imported by: business layer (services call external APIs through infrastructure).
123
+
124
+ VALIDATE:
125
+ Read harness.yaml — existing layers: presentation, business, data.
126
+ No conflict with "infrastructure" name.
127
+ Run: harness check-deps — passes (clean baseline).
128
+
129
+ ADD:
130
+ harness add layer infrastructure --dirs src/infrastructure --imports none
131
+ mkdir -p src/infrastructure
132
+
133
+ WIRE:
134
+ Update harness.yaml: allow business → infrastructure imports.
135
+ Update AGENTS.md: document infrastructure layer purpose and boundaries.
136
+
137
+ VERIFY:
138
+ harness validate # Pass
139
+ harness check-deps # Pass
140
+ git add harness.yaml AGENTS.md src/infrastructure/
141
+ git commit -m "feat: add infrastructure layer for external API clients"
142
+ ```
143
+
144
+ ### Example: Adding a Document for Drift Tracking
145
+
146
+ ```
147
+ Human: "Track our API specification for documentation drift."
148
+
149
+ DETERMINE: Adding a document. Path: docs/api-spec.md.
150
+ Tracks: src/routes/, src/models/response.ts.
151
+
152
+ ADD:
153
+ harness add doc docs/api-spec.md --tracks src/routes,src/models/response.ts
154
+
155
+ WIRE:
156
+ Update AGENTS.md: note that docs/api-spec.md is tracked for drift.
157
+
158
+ VERIFY:
159
+ harness validate # Pass
160
+ git add harness.yaml AGENTS.md
161
+ git commit -m "feat: track API spec for documentation drift detection"
162
+ ```
163
+
164
+ ### Example: Adding a Component to an Existing Layer
165
+
166
+ ```
167
+ Human: "Add a notification service to the business layer."
168
+
169
+ DETERMINE: Adding a component. Name: notification-service. Layer: business.
170
+ Depends on: data layer (notification repository). Depended on by: presentation layer (routes).
171
+
172
+ VALIDATE:
173
+ Read harness.yaml — business layer exists, maps to src/services/.
174
+ No existing notification-service directory.
175
+ business → data is an allowed import. Presentation → business is allowed.
176
+ Run: harness check-deps — passes.
177
+
178
+ ADD:
179
+ harness add component notification-service --layer business
180
+ Create src/services/notification-service.ts
181
+ Create src/services/notification-service.test.ts
182
+
183
+ WIRE:
184
+ Add export to src/services/index.ts (if barrel file exists).
185
+ Update AGENTS.md: add notification service to business layer component list.
186
+
187
+ VERIFY:
188
+ harness validate # Pass
189
+ harness check-deps # Pass
190
+ git add harness.yaml AGENTS.md src/services/notification-service.*
191
+ git commit -m "feat: add notification service to business layer"
192
+ ```
@@ -0,0 +1,33 @@
1
+ name: add-harness-component
2
+ version: "1.0.0"
3
+ description: Add a component to an existing harness project
4
+ cognitive_mode: constructive-architect
5
+ triggers:
6
+ - manual
7
+ platforms:
8
+ - claude-code
9
+ - gemini-cli
10
+ tools:
11
+ - Bash
12
+ - Read
13
+ - Write
14
+ - Edit
15
+ - Glob
16
+ cli:
17
+ command: harness skill run add-harness-component
18
+ args:
19
+ - name: path
20
+ description: Project root path
21
+ required: false
22
+ mcp:
23
+ tool: run_skill
24
+ input:
25
+ skill: add-harness-component
26
+ path: string
27
+ type: flexible
28
+ tier: 1
29
+ state:
30
+ persistent: false
31
+ files: []
32
+ depends_on:
33
+ - initialize-harness-project
@@ -0,0 +1,213 @@
1
+ # Align Documentation
2
+
3
+ > Sync documentation with code after implementation changes. Keep AGENTS.md, API docs, and architecture docs accurate by mapping code changes to their documentation impact.
4
+
5
+ ## When to Use
6
+
7
+ - After completing a feature implementation (post-merge or post-commit)
8
+ - After fixing a bug that changes observable behavior
9
+ - After a refactoring that renames, moves, or restructures code
10
+ - When detect-doc-drift reports findings that need fixing
11
+ - When `on_post_feature` or `on_post_merge` triggers fire
12
+ - NOT during active development — wait until the code is stable
13
+ - NOT for creating documentation for a brand-new project (use validate-context-engineering for initial setup)
14
+ - NOT for fixing code — this skill only changes documentation
15
+
16
+ ## Process
17
+
18
+ ### Phase 1: Detect — Identify What Changed
19
+
20
+ 1. **Run `git diff` against the appropriate baseline.** Choose the baseline based on context:
21
+ - After a feature: diff against the branch point (`git diff main...HEAD`)
22
+ - After a bug fix: diff against the commit before the fix
23
+ - After a refactoring: diff against the commit before refactoring started
24
+ - Periodic sync: diff against the last documentation sync commit
25
+
26
+ 2. **Extract the list of changed files.** For each changed file, note:
27
+ - File path (current and previous if renamed/moved)
28
+ - Nature of change (added, modified, deleted, renamed)
29
+ - Changed exports (new, removed, renamed, signature changed)
30
+ - Changed behavior (different return values, new error types, new side effects)
31
+
32
+ 3. **Run `harness check-docs`** to identify any documentation that already has broken references due to the changes.
33
+
34
+ ### Graph-Enhanced Context (when available)
35
+
36
+ When a knowledge graph exists at `.harness/graph/`, use graph queries for faster, more accurate context:
37
+
38
+ - `query_graph` — find `documents` edges pointing to nodes changed in this diff
39
+ - `get_impact` — auto-suggest which docs need updating after code changes
40
+
41
+ Replaces manual doc-to-code correlation. Fall back to file-based commands if no graph is available.
42
+
43
+ ### Pipeline Context (when orchestrated)
44
+
45
+ When invoked by `harness-docs-pipeline`, check for a `pipeline` field in `.harness/handoff.json`:
46
+
47
+ - If `pipeline` field exists: read `DocPipelineContext` from it
48
+ - Read `pipeline.driftFindings` to know which fixes to apply (pre-classified by safety)
49
+ - If `pipeline.fixBatch` is set, apply only those specific fixes rather than running full detection
50
+ - Write applied fixes as `DocFix[]` back to `pipeline.fixesApplied`
51
+ - This enables the convergence loop to track fix verification status
52
+ - If `pipeline` field does not exist: behave exactly as today (standalone mode)
53
+
54
+ No changes to the skill's interface or output format — the pipeline field is purely additive.
55
+
56
+ ### Phase 2: Map — Connect Code Changes to Documentation
57
+
58
+ For each changed file, identify all documentation that references it:
59
+
60
+ **AGENTS.md sections:**
61
+
62
+ - Knowledge map entries that reference the file path
63
+ - Architecture descriptions that mention the module
64
+ - Constraint documentation that references the file's layer or patterns
65
+ - Onboarding guides that walk through the file
66
+
67
+ **API documentation:**
68
+
69
+ - JSDoc/TSDoc comments in the changed files themselves
70
+ - Generated API doc pages that pull from the changed files
71
+ - README examples that demonstrate the changed functions
72
+ - Tutorial or guide pages that use the changed code
73
+
74
+ **Architecture documentation:**
75
+
76
+ - Diagrams that include the changed module
77
+ - Data flow descriptions that reference the changed functions
78
+ - Layer descriptions that list the changed file
79
+ - Dependency documentation that references the changed imports
80
+
81
+ **Inline code comments:**
82
+
83
+ - Comments in OTHER files that reference the changed file or function
84
+ - TODO comments that reference the changed behavior
85
+ - Workaround comments that may no longer apply after the change
86
+
87
+ ### Phase 3: Generate — Draft Documentation Updates
88
+
89
+ For each affected documentation location:
90
+
91
+ 1. **Draft the specific text change.** Show the old text and the new text. Keep the existing style and tone — documentation updates should be invisible in terms of voice.
92
+
93
+ 2. **Preserve context.** When updating a section, do not just change the specific reference — read the surrounding paragraph and ensure it still makes sense. A renamed function may require updating the explanatory text around it, not just the function name.
94
+
95
+ 3. **Handle deletions carefully.** When code is deleted, do not just delete the documentation reference. Consider whether the section should be removed entirely, replaced with information about the replacement, or noted as deprecated.
96
+
97
+ 4. **Add new sections when needed.** If a new module was added, draft a complete documentation section following the existing AGENTS.md structure and style.
98
+
99
+ ### Phase 4: Validate — Verify Documentation Accuracy
100
+
101
+ 1. **Run `harness check-docs`** to verify all links and references resolve correctly after the updates.
102
+
103
+ 2. **Cross-check each update against the actual code.** Read the updated documentation and verify every claim by looking at the code. Documentation that is wrong is worse than documentation that is missing.
104
+
105
+ 3. **Verify no orphaned references remain.** Search documentation files for any remaining references to old names, old paths, or deleted features.
106
+
107
+ 4. **Run `harness fix-drift`** to catch any remaining simple drift issues that manual review missed.
108
+
109
+ ### Graph Refresh
110
+
111
+ If a knowledge graph exists at `.harness/graph/`, refresh it after code changes to keep graph queries accurate:
112
+
113
+ ```
114
+ harness scan [path]
115
+ ```
116
+
117
+ Skipping this step means subsequent graph queries (impact analysis, dependency health, test advisor) may return stale results.
118
+
119
+ 5. **Commit the documentation update.** Use a commit message that references the original change: "docs: update AGENTS.md for notification service refactoring" or "docs: sync API docs after auth module rename."
120
+
121
+ ## What to Update
122
+
123
+ ### AGENTS.md Knowledge Map
124
+
125
+ - File paths and module names (renamed or moved files)
126
+ - Module purpose descriptions (changed responsibilities)
127
+ - Constraint descriptions (new or changed rules)
128
+ - Relationship descriptions (new or changed dependencies)
129
+ - Gotcha sections (resolved gotchas, new gotchas)
130
+
131
+ ### Inline Code Comments
132
+
133
+ - Function/class doc comments in the changed files (JSDoc, TSDoc)
134
+ - Comments in other files that reference the changed code
135
+ - TODO comments that reference completed or changed work
136
+ - Workaround comments for issues that may now be resolved
137
+
138
+ ### Documentation Pages (docs/)
139
+
140
+ - API reference pages that describe changed functions
141
+ - Architecture pages that diagram changed modules
142
+ - Tutorial and guide pages that demonstrate changed code
143
+ - Getting-started guides if entry points changed
144
+ - Changelog entries for user-facing changes
145
+
146
+ ## Harness Integration
147
+
148
+ - **`harness check-docs`** — Run before and after updates. Identifies broken references and validates that all documentation links resolve.
149
+ - **`harness fix-drift`** — Auto-fix simple drift issues (broken file paths, renamed references) after manual review confirms correctness.
150
+ - **`harness fix-drift --json`** — Machine-readable output for tracking what was auto-fixed.
151
+ - **`harness validate`** — Run after documentation changes to verify overall project health is maintained.
152
+
153
+ ## Success Criteria
154
+
155
+ - `harness check-docs` passes with zero errors after documentation updates
156
+ - Every code change from the diff has been mapped to its documentation impact
157
+ - All file paths in documentation match current file locations
158
+ - All function/class names in documentation match current code
159
+ - All behavioral descriptions in documentation match current implementation
160
+ - Documentation updates are committed with clear references to the triggering code change
161
+ - No orphaned references to old names, paths, or deleted features remain
162
+
163
+ ## Examples
164
+
165
+ ### Example: Syncing docs after a module rename
166
+
167
+ **Code change:** `src/services/mailer.ts` renamed to `src/services/email-service.ts`. Functions `sendMail()` and `formatMailBody()` renamed to `sendEmail()` and `formatEmailBody()`.
168
+
169
+ **Documentation impact map:**
170
+
171
+ ```
172
+ AGENTS.md:34 — "mailer.ts handles email delivery" → update path and description
173
+ AGENTS.md:78 — "Use sendMail() for all outbound email" → update function name
174
+ docs/api.md:156 — sendMail() API reference → update name and import path
175
+ docs/arch.md:45 — architecture diagram lists "mailer" → update to "email-service"
176
+ src/controllers/user-controller.ts:12 — comment "// delegates to mailer" → update
177
+ ```
178
+
179
+ **Updates applied:**
180
+
181
+ - AGENTS.md: updated two sections with new file path and function names
182
+ - docs/api.md: updated function reference and import example
183
+ - docs/arch.md: updated module name in architecture description
184
+ - src/controllers/user-controller.ts: updated inline comment
185
+
186
+ **Validation:** `harness check-docs` passes. All references resolve. Commit: "docs: sync documentation after mailer rename to email-service"
187
+
188
+ ### Example: Syncing docs after adding error handling
189
+
190
+ **Code change:** `createUser()` in `src/services/user-service.ts` now throws `ValidationError` instead of returning `null` on invalid input.
191
+
192
+ **Documentation impact map:**
193
+
194
+ ```
195
+ docs/api.md:89 — "Returns null if validation fails" → update to describe thrown error
196
+ AGENTS.md:52 — No mention of error handling → add note about ValidationError
197
+ src/services/user-service.ts:15 — JSDoc @returns tag → update, add @throws tag
198
+ ```
199
+
200
+ **Updates applied:**
201
+
202
+ - docs/api.md: replaced "returns null" with "throws ValidationError" and added example
203
+ - AGENTS.md: added note about error handling pattern in user-service section
204
+ - JSDoc: updated @returns, added @throws ValidationError
205
+
206
+ **Validation:** `harness check-docs` passes. Commit: "docs: update documentation for createUser error handling change"
207
+
208
+ ## Escalation
209
+
210
+ - **When you cannot determine what documentation is affected:** Run `harness check-docs` for automated detection. For manual analysis, search all `.md` files and code comments for the old name/path. If the change is large, use detect-doc-drift first to get a complete inventory.
211
+ - **When documentation is in an external system (wiki, Confluence):** Document the needed change and flag it for manual update. Include the specific text that needs changing and the correct replacement.
212
+ - **When the code change is so large that documentation needs a rewrite:** Break the documentation update into sections. Update one section at a time, validating after each. Do not attempt a full rewrite in one pass.
213
+ - **When you disagree with the existing documentation style:** Follow the existing style. Documentation alignment is about accuracy, not style improvement. Style changes should be a separate, deliberate effort.
@@ -0,0 +1,32 @@
1
+ name: align-documentation
2
+ version: "1.0.0"
3
+ description: Auto-fix documentation drift issues
4
+ cognitive_mode: meticulous-verifier
5
+ triggers:
6
+ - manual
7
+ platforms:
8
+ - claude-code
9
+ - gemini-cli
10
+ tools:
11
+ - Bash
12
+ - Read
13
+ - Write
14
+ - Edit
15
+ cli:
16
+ command: harness skill run align-documentation
17
+ args:
18
+ - name: path
19
+ description: Project root path
20
+ required: false
21
+ mcp:
22
+ tool: run_skill
23
+ input:
24
+ skill: align-documentation
25
+ path: string
26
+ type: flexible
27
+ internal: true
28
+ state:
29
+ persistent: false
30
+ files: []
31
+ depends_on:
32
+ - detect-doc-drift
@@ -0,0 +1,191 @@
1
+ # Check Mechanical Constraints
2
+
3
+ > Run all mechanical constraint checks: linter rules, boundary schemas, and forbidden imports. These are automated, enforceable rules — if it can be checked by a machine, it must be.
4
+
5
+ ## When to Use
6
+
7
+ - Before every commit (ideally via pre-commit hook)
8
+ - Before submitting a pull request for review
9
+ - After any code generation or automated refactoring
10
+ - When `on_pre_commit` or `on_validate` triggers fire
11
+ - After resolving merge conflicts (constraints may have been silently violated)
12
+ - NOT as a substitute for code review — mechanical constraints catch structural issues, not logic errors
13
+ - NOT when only editing non-code files (docs, config) unless those files have their own schema constraints
14
+
15
+ ## Process
16
+
17
+ ### Phase 1: Run All Checks
18
+
19
+ 1. **Run `harness validate`** to check project-wide constraints: file structure, naming conventions, required files, and configuration validity.
20
+
21
+ 2. **Run `harness linter validate`** to check all linter rules: code style, import restrictions, forbidden patterns, and boundary schemas.
22
+
23
+ 3. **Run `harness check-deps`** to check architectural layer boundaries. This is included here because dependency violations are mechanical — they can be detected purely from import statements and the constraint config.
24
+
25
+ 4. **Capture all output.** Combine results from all three commands into a single violation list for triage.
26
+
27
+ ### Phase 2: Categorize Violations by Severity
28
+
29
+ Organize violations into three tiers:
30
+
31
+ **Tier 1 — Errors (must fix before commit):**
32
+
33
+ - Forbidden imports (importing banned modules)
34
+ - Layer boundary violations (importing across architectural boundaries)
35
+ - Schema violations (config files that do not match required schema)
36
+ - Missing required files (every package must have index.ts, etc.)
37
+
38
+ **Tier 2 — Warnings (must fix before merge):**
39
+
40
+ - Naming convention violations (wrong casing, wrong prefix)
41
+ - Import ordering issues
42
+ - Unused exports detected by linter
43
+ - Documentation file references that do not resolve
44
+
45
+ **Tier 3 — Info (fix when convenient):**
46
+
47
+ - Style suggestions (formatting that does not affect behavior)
48
+ - Complexity warnings (functions exceeding thresholds)
49
+ - Minor inconsistencies with project conventions
50
+
51
+ ### Phase 3: Auto-Fix Where Safe
52
+
53
+ Some violations can be fixed automatically without risk:
54
+
55
+ - **Import ordering** — reorder imports to match the configured convention. This never changes behavior.
56
+ - **Formatting** — apply the project's formatter (prettier, etc.). Pure whitespace and style changes.
57
+ - **Simple forbidden imports** — when a forbidden import has a known replacement (e.g., `import lodash` to `import lodash-es`), apply the substitution.
58
+ - **Missing trailing commas, semicolons** — mechanical formatting fixes.
59
+
60
+ **Rules for auto-fix:**
61
+
62
+ - ONLY auto-fix violations that cannot change runtime behavior
63
+ - Run the test suite after auto-fixing to confirm nothing broke
64
+ - Present the auto-fix diff to the user for awareness (do not silently change code)
65
+ - If unsure whether a fix is safe, do NOT auto-fix — report it for manual resolution
66
+
67
+ ### Phase 4: Report Remaining Violations
68
+
69
+ For each violation that was not auto-fixed, report:
70
+
71
+ 1. **File and line number** — exact location of the violation
72
+ 2. **Rule name** — which constraint was violated
73
+ 3. **What it protects against** — why this rule exists (see reference below)
74
+ 4. **How to fix** — specific guidance for resolving this type of violation
75
+ 5. **Severity tier** — whether it blocks commit, merge, or is informational
76
+
77
+ ## What Each Constraint Type Protects Against
78
+
79
+ ### Forbidden Imports
80
+
81
+ **Protects against:** Implementation detail leakage and unwanted coupling. When a library is forbidden in a layer, it is because using it there would create a dependency that makes the layer harder to test, replace, or maintain. Example: forbidding `fs` in the UI layer ensures UI code never directly accesses the filesystem.
82
+
83
+ ### Layer Boundaries
84
+
85
+ **Protects against:** Architectural erosion. Without enforced boundaries, codebases gradually become a tangle where everything depends on everything. Layer boundaries ensure changes in one area do not ripple unpredictably through the whole system.
86
+
87
+ ### Boundary Schemas
88
+
89
+ **Protects against:** Configuration drift and invalid state. When config files must match a schema, you catch invalid configurations at lint time rather than at runtime. This prevents deployment failures and hard-to-debug runtime errors.
90
+
91
+ ### Naming Conventions
92
+
93
+ **Protects against:** Cognitive overhead and inconsistency. Consistent naming means developers (human and AI) can predict file locations, function names, and module structure without searching. It also ensures automated tools that rely on naming patterns continue to work.
94
+
95
+ ### Required File Rules
96
+
97
+ **Protects against:** Incomplete modules. When every package must have an `index.ts` or every component must have a test file, you ensure that the project structure remains complete and navigable.
98
+
99
+ ### Import Ordering
100
+
101
+ **Protects against:** Merge conflicts and readability issues. Consistent import ordering reduces git conflicts when multiple developers add imports to the same file. It also makes imports scannable at a glance.
102
+
103
+ ## Harness Integration
104
+
105
+ - **`harness validate`** — Project-wide structural validation. Checks file structure, naming conventions, required files, and configuration schemas.
106
+ - **`harness validate --json`** — Machine-readable output for parsing and categorization.
107
+ - **`harness linter validate`** — Runs all configured linter rules. Checks code patterns, import restrictions, and style conventions.
108
+ - **`harness check-deps`** — Architectural boundary enforcement. Checks all imports against the layer model.
109
+ - **`harness check-deps --json`** — Machine-readable dependency check output.
110
+
111
+ ## Success Criteria
112
+
113
+ - All three commands (`harness validate`, `harness linter validate`, `harness check-deps`) pass with zero errors
114
+ - All Tier 1 violations are resolved before any commit
115
+ - All Tier 2 violations are resolved before any merge to main
116
+ - Auto-fixed changes are verified by running the test suite
117
+ - No violations are suppressed without explicit team approval and a documented reason
118
+
119
+ ## Examples
120
+
121
+ ### Example: Forbidden import detected
122
+
123
+ **Violation:**
124
+
125
+ ```
126
+ ERROR [forbidden-import] src/components/Dashboard.tsx:3
127
+ Import 'pg' is forbidden in layer 'ui'
128
+ Rule: ui layer must not import database drivers
129
+ ```
130
+
131
+ **What it protects against:** The UI layer importing a PostgreSQL driver means UI code could execute raw SQL queries, bypassing the service and repository layers entirely. This breaks testability (tests need a real database) and security (SQL injection risk from UI layer).
132
+
133
+ **Fix:** Remove the direct database call. Add the needed query to the appropriate repository, expose it through the service layer, and call the service from the UI component.
134
+
135
+ ### Example: Auto-fixable import ordering
136
+
137
+ **Violation:**
138
+
139
+ ```
140
+ WARNING [import-order] src/services/auth-service.ts:1-8
141
+ Imports are not in the configured order
142
+ Expected: builtin -> external -> internal -> relative
143
+ Found: relative -> external -> builtin
144
+ ```
145
+
146
+ **Auto-fix applied:**
147
+
148
+ ```typescript
149
+ // BEFORE
150
+ import { hashPassword } from './utils';
151
+ import bcrypt from 'bcrypt';
152
+ import { createHash } from 'crypto';
153
+
154
+ // AFTER (auto-fixed)
155
+ import { createHash } from 'crypto';
156
+ import bcrypt from 'bcrypt';
157
+ import { hashPassword } from './utils';
158
+ ```
159
+
160
+ Tests re-run: all passing. No behavioral change.
161
+
162
+ ### Example: Schema violation in config
163
+
164
+ **Violation:**
165
+
166
+ ```
167
+ ERROR [schema-violation] harness.config.json:24
168
+ Property 'layers[2].allowedImports' must be an array of strings
169
+ Found: number (42)
170
+ Schema: harness-config-schema.json#/properties/layers/items/properties/allowedImports
171
+ ```
172
+
173
+ **What it protects against:** An invalid config means `harness check-deps` will either crash or silently skip validation. The layer constraints would not be enforced, allowing violations to slip through undetected.
174
+
175
+ **Fix:** Correct the config value to be a valid string array: `"allowedImports": ["@shared/types", "@shared/utils"]`.
176
+
177
+ ## Gates
178
+
179
+ These are hard stops. Mechanical constraints are non-negotiable.
180
+
181
+ - **No commits with Tier 1 violations.** Errors must be resolved before the code is committed. No exceptions.
182
+ - **No merges with Tier 2 violations.** Warnings must be resolved before merging to the main branch.
183
+ - **No suppressing rules without documentation.** If a rule must be disabled for a specific line or file, the suppression comment must explain WHY (not just disable the rule).
184
+ - **No auto-fix without test verification.** Every auto-fix must be followed by a test run to confirm no behavioral change.
185
+
186
+ ## Escalation
187
+
188
+ - **When a rule seems wrong for the project:** Rules are configured in `harness.config.json` and linter configs. If a rule does not fit, propose a config change with justification. Do not disable the rule inline.
189
+ - **When a violation cannot be fixed without a larger refactor:** Document the violation, create a task for the refactor, and get team approval for a temporary inline suppression with a TODO linking to the task.
190
+ - **When auto-fix produces unexpected changes:** Undo the auto-fix, report the issue, and fix manually. Auto-fix tools are not infallible.
191
+ - **When multiple constraints conflict:** The stricter constraint wins. If `harness validate` says a file is required but `harness linter validate` says its contents violate a rule, fix the contents to satisfy both. Escalate if truly irreconcilable.