@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
@@ -58,6 +58,58 @@
58
58
  - **`harness.config.json`** — Security section configures severity threshold and file exclusions.
59
59
  - **codebase-health-analyst persona** — Invokes this skill as part of its sweep.
60
60
 
61
+ ## Evidence Requirements
62
+
63
+ When this skill makes claims about existing code, architecture, or behavior,
64
+ it MUST cite evidence using one of:
65
+
66
+ 1. **File reference:** `file:line` format (e.g., `src/auth.ts:42`)
67
+ 2. **Code pattern reference:** `file` with description (e.g., `src/utils/hash.ts` —
68
+ "existing bcrypt wrapper")
69
+ 3. **Test/command output:** Inline or referenced output from a test run or CLI command
70
+ 4. **Session evidence:** Write to the `evidence` session section via `manage_state`
71
+
72
+ **Uncited claims:** Technical assertions without citations MUST be prefixed with
73
+ `[UNVERIFIED]`. Example: `[UNVERIFIED] The auth middleware supports refresh tokens`.
74
+
75
+ ## Red Flags
76
+
77
+ ### Universal
78
+
79
+ These apply to ALL skills. If you catch yourself doing any of these, STOP.
80
+
81
+ - **"I believe the codebase does X"** — Stop. Read the code and cite a file:line
82
+ reference. Belief is not evidence.
83
+ - **"Let me recommend [pattern] for this"** without checking existing patterns — Stop.
84
+ Search the codebase first. The project may already have a convention.
85
+ - **"While we're here, we should also [unrelated improvement]"** — Stop. Flag the idea
86
+ but do not expand scope beyond the stated task.
87
+
88
+ ### Domain-Specific
89
+
90
+ - **"This finding is in test code, so it's not a real issue"** — Stop. Test code can leak secrets, establish bad patterns, and be copy-pasted to production.
91
+ - **"This dependency is widely used, so it's safe"** — Stop. Popularity is not a security guarantee. Check CVE databases and advisory feeds.
92
+ - **"This is a low-severity finding, skipping"** — Stop. Low-severity findings compound. Document why you are deprioritizing, do not silently skip.
93
+ - **"The scanner didn't flag it, so it's clean"** — Stop. Scanners have false negatives. A clean scan is not proof of security — it is absence of evidence.
94
+
95
+ ## Rationalizations to Reject
96
+
97
+ ### Universal
98
+
99
+ These reasoning patterns sound plausible but lead to bad outcomes. Reject them.
100
+
101
+ - **"It's probably fine"** — "Probably" is not evidence. Verify before asserting.
102
+ - **"This is best practice"** — Best practice in what context? Cite the source and
103
+ confirm it applies to this codebase.
104
+ - **"We can fix it later"** — If it is worth flagging, it is worth documenting now
105
+ with a concrete follow-up plan.
106
+
107
+ ### Domain-Specific
108
+
109
+ - **"No attacker would find this"** — Security by obscurity. If the code is wrong, flag it regardless of discoverability.
110
+ - **"We're behind a firewall"** — Network boundaries change. Code should be secure at every layer regardless of deployment topology.
111
+ - **"The framework handles this for us"** — Verify the framework's actual behavior. Misuse of a secure framework is still insecure.
112
+
61
113
  ## Escalation
62
114
 
63
115
  - **When error-severity findings are disputed:** The scanner is mechanical — it may flag false positives. If a finding is a false positive, add a `// harness-ignore SEC-XXX` comment on the line and document the rationale. Do not suppress without explanation.
@@ -0,0 +1,281 @@
1
+ # Harness Supply Chain Audit
2
+
3
+ > 6-factor dependency risk evaluation adapted from Trail of Bits security skill patterns. Surfaces dependency risk flags for human review — not automated verdicts.
4
+
5
+ ## When to Use
6
+
7
+ - Before a major release to assess dependency risk
8
+ - After adding new dependencies
9
+ - During security audits or compliance reviews
10
+ - When `on_milestone` trigger fires (part of release gate)
11
+ - NOT as a replacement for `npm audit` — this complements it with risk signals beyond CVEs
12
+ - NOT for license compliance (separate concern)
13
+
14
+ ## Iron Law
15
+
16
+ **Present findings as flags for human review, never as verdicts.** A dependency flagged as "high risk" may be entirely appropriate for a project. The skill surfaces signals; humans decide whether to act.
17
+
18
+ ---
19
+
20
+ ## Process
21
+
22
+ ### Phase 1: INVENTORY — Build Dependency List
23
+
24
+ 1. **Resolve project root.** Use the path argument or default to the current directory.
25
+
26
+ 2. **Detect lockfile.** Check for the following in order:
27
+ - `package-lock.json` (npm)
28
+ - `pnpm-lock.yaml` (pnpm)
29
+ - `yarn.lock` (yarn)
30
+ - If none found: report "No lockfile detected. Run `npm install` first." and stop.
31
+
32
+ 3. **Parse direct dependencies** from `package.json`:
33
+ - Read `dependencies` and `devDependencies`
34
+ - Build a list: `{ name, version, isDev }`
35
+
36
+ 4. **Parse transitive depth** from lockfile:
37
+ - For `package-lock.json`: read `packages` keys to extract the dependency tree. Nesting depth of `node_modules/` segments in keys indicates transitive depth.
38
+ - For `pnpm-lock.yaml`: read `importers` section for direct dependencies (keyed by workspace path, e.g., `.` for root). Each importer lists `dependencies` and `devDependencies` with version specifiers. Read `packages` section for resolved versions — keys are package identifiers (e.g., `/@scope/pkg@1.2.3`) with `resolution` (tarball URL + integrity hash) and `dependencies` sub-map for transitives.
39
+ - For `yarn.lock`: parse block-format entries. Each block header is `"pkg@version-range":` followed by indented fields: `version` (resolved), `resolved` (tarball URL), `integrity` (hash), and `dependencies` sub-block listing transitive deps as `"name" "version-range"` pairs.
40
+ - Assign each package a depth (0 = direct, 1 = first-level transitive, etc.)
41
+ - Flag packages with depth > 5 for transitive risk evaluation
42
+
43
+ 5. **Build inventory table:**
44
+
45
+ ```
46
+ INVENTORY: <project-name>
47
+ Direct dependencies: N
48
+ Dev dependencies: N
49
+ Total packages (including transitives): N
50
+ Deep transitive packages (depth > 5): N
51
+ ```
52
+
53
+ 6. Proceed to EVALUATE.
54
+
55
+ ---
56
+
57
+ ### Phase 2: EVALUATE — Score Dependencies on 6 Factors
58
+
59
+ For each **direct dependency** (and any transitive with depth > 5), score on 6 factors:
60
+
61
+ > Network access required: npm registry (`https://registry.npmjs.org/<pkg>`) and GitHub API (`https://api.github.com/repos/<owner>/<repo>`).
62
+ >
63
+ > - If npm registry returns 404: mark as "unresolvable", flag for manual review, skip remaining factors
64
+ > - If GitHub API rate limits hit: score `maintenance-status` as "unknown", continue with other factors
65
+ > - If no GitHub repo link in package metadata: skip `maintenance-status` factor, note in report
66
+
67
+ #### Factor 1: Maintainer Concentration
68
+
69
+ - Fetch: `GET https://registry.npmjs.org/<pkg>`
70
+ - Check: `maintainers` array length
71
+ - Score:
72
+ - **High risk:** 1 maintainer (bus factor = 1)
73
+ - **Medium risk:** 2-3 maintainers
74
+ - **Low risk:** 4+ maintainers
75
+
76
+ #### Factor 2: Maintenance Status
77
+
78
+ - Source: npm `time` field (last publish date) + GitHub API commit activity
79
+ - npm: `GET https://registry.npmjs.org/<pkg>` → `time.modified`
80
+ - GitHub: `GET https://api.github.com/repos/<owner>/<repo>/commits?per_page=1` → latest commit date
81
+ - Score:
82
+ - **High risk:** Last publish > 12 months ago AND no GitHub commits in 6 months
83
+ - **Medium risk:** Last publish > 12 months ago OR no commits in 6 months (not both)
84
+ - **Low risk:** Active in both dimensions
85
+
86
+ #### Factor 3: Popularity Signal
87
+
88
+ - Fetch: `GET https://api.npmjs.org/downloads/point/last-week/<pkg>`
89
+ - Score:
90
+ - **High risk:** < 1,000 weekly downloads
91
+ - **Medium risk:** 1,000–10,000 weekly downloads
92
+ - **Low risk:** > 10,000 weekly downloads
93
+ - **Note:** Low popularity is a signal, not a verdict — internal/niche packages are expected to be low
94
+
95
+ #### Factor 4: Install Scripts
96
+
97
+ - Read: `node_modules/<pkg>/package.json` (or lockfile-resolved path) → `scripts` field
98
+ - Check for: `preinstall`, `postinstall`, `install`, `preuninstall`, `postuninstall`
99
+ - Score:
100
+ - **High risk:** Any install script present
101
+ - **Low risk:** No install scripts
102
+ - **Note:** Some install scripts are legitimate (native addon compilation). Flag for review.
103
+
104
+ #### Factor 5: Known CVEs
105
+
106
+ - Run: `npm audit --json` or `pnpm audit --json`
107
+ - Parse: map findings to their package name
108
+ - Score:
109
+ - **Critical:** Any high/critical severity CVE
110
+ - **Medium risk:** Moderate severity CVE
111
+ - **Low risk:** No CVEs or low severity only
112
+
113
+ #### Factor 6: Transitive Risk
114
+
115
+ - Source: Lockfile depth analysis from INVENTORY phase
116
+ - Score:
117
+ - **High risk:** Depth > 5 AND subtree size > 20 transitive packages
118
+ - **Medium risk:** Depth > 5 OR subtree size > 20
119
+ - **Low risk:** Depth ≤ 5 and subtree size ≤ 20
120
+
121
+ #### Risk Scoring
122
+
123
+ Combine factor scores into an overall risk level:
124
+
125
+ | Overall Risk | Condition |
126
+ | ------------ | -------------------------------------------------------------- |
127
+ | **Critical** | Factor 5 is Critical (any high/critical CVE) |
128
+ | **High** | 2+ factors scored High, OR Factor 1 is High + Factor 2 is High |
129
+ | **Medium** | 1 factor scored High, OR 3+ factors scored Medium |
130
+ | **Low** | All factors Low or at most 1 Medium |
131
+
132
+ ---
133
+
134
+ ### Phase 3: REPORT — Generate Risk Summary
135
+
136
+ 1. **Produce risk summary table** sorted by overall risk (Critical first):
137
+
138
+ ```
139
+ Supply Chain Audit: <project-name>
140
+ Date: <ISO date>
141
+ Packages evaluated: N direct + M deep transitives
142
+
143
+ ┌─────────────────────┬──────────┬────────────┬─────────────┬────────────┬──────┬─────────────┐
144
+ │ Package │ Version │ Maintainers│ Last Publish│ Downloads │ CVEs │ Overall Risk│
145
+ ├─────────────────────┼──────────┼────────────┼─────────────┼────────────┼──────┼─────────────┤
146
+ │ example-pkg │ 1.2.3 │ 1 (HIGH) │ 18mo (HIGH) │ 500 (MED) │ none │ HIGH │
147
+ │ another-pkg │ 2.0.0 │ 12 │ 2mo │ 50k │ 1 mod│ MEDIUM │
148
+ └─────────────────────┴──────────┴────────────┴─────────────┴────────────┴──────┴─────────────┘
149
+ ```
150
+
151
+ 2. **Detail section for Critical and High risk packages:**
152
+
153
+ ```
154
+ HIGH RISK: example-pkg@1.2.3
155
+ ├── Maintainer concentration: 1 maintainer (bus factor = 1)
156
+ ├── Maintenance status: Last publish 18 months ago, no commits in 12 months
157
+ ├── Popularity: 500 weekly downloads
158
+ ├── Install scripts: none
159
+ ├── Known CVEs: none
160
+ └── Transitive risk: depth 2, subtree 4 packages
161
+ Recommendation: Consider replacing with a well-maintained alternative,
162
+ or pin the version and monitor for abandonment.
163
+ ```
164
+
165
+ 3. **Install script warnings** (any package with install scripts):
166
+
167
+ ```
168
+ INSTALL SCRIPTS DETECTED:
169
+ - node-gyp@9.4.0: postinstall — native addon compilation (likely legitimate)
170
+ - suspicious-pkg@1.0.0: postinstall — review script contents before trusting
171
+ ```
172
+
173
+ 4. **Summary line:**
174
+
175
+ ```
176
+ RESULT: 1 Critical, 2 High, 3 Medium, N Low — Review flagged items before release
177
+ ```
178
+
179
+ 5. **Output:** Print report to stdout. If `--output <file>` was passed, also write to that file.
180
+
181
+ ---
182
+
183
+ ## Gates
184
+
185
+ - **Stop if no lockfile.** Do not evaluate without a lockfile — results will be unreliable.
186
+ - **Present as flags, not verdicts.** Never state "this package is unsafe." State "this package has signals that warrant review."
187
+ - **Do not block on API failures.** If npm registry or GitHub API is unavailable, note which factors were skipped and continue with available data.
188
+
189
+ ## Harness Integration
190
+
191
+ - **`harness validate`** — Run after creating the skill files to verify they are properly placed.
192
+ - **Triggers:** `on_milestone` fires this skill as part of the milestone completion checklist.
193
+ - **Depends on:** `harness-security-scan` — run after mechanical scanning to complete the security picture.
194
+ - **Output:** Stdout report, optionally written to file via `--output`. No state files written.
195
+
196
+ ## Evidence Requirements
197
+
198
+ When reporting findings, cite the source for each factor:
199
+
200
+ - Maintainer data: `registry.npmjs.org/<pkg>` → `maintainers` field
201
+ - Publish date: `registry.npmjs.org/<pkg>` → `time.modified`
202
+ - Downloads: `api.npmjs.org/downloads/point/last-week/<pkg>`
203
+ - Install scripts: `node_modules/<pkg>/package.json` → `scripts`
204
+ - CVEs: `npm audit --json` output
205
+ - Depth: lockfile analysis
206
+
207
+ Do not assert risk scores without citing the specific data point that generated the score.
208
+
209
+ ## Success Criteria
210
+
211
+ - Running `/harness:supply-chain-audit` on a project with dependencies outputs a risk table with all 6 factors scored
212
+ - A dependency with a sole maintainer and no commits in 12 months scores "high risk"
213
+ - A dependency with a `postinstall` script is flagged in the install scripts section
214
+ - API failures produce "unknown" scores with a note, not errors that stop the audit
215
+ - All findings are framed as flags for human review, not automated verdicts
216
+
217
+ ## Escalation
218
+
219
+ - **If a critical CVE is found:** Surface immediately — do not bury it in the table. Recommend blocking the dependency update or requiring an immediate patch before merge.
220
+ - **If all maintainers are unresponsive:** Flag the package as abandoned and recommend finding an alternative. Include download counts to help the user assess how widely adopted the package is.
221
+ - **If an install script has unknown behavior:** Do not guess. State that the script requires manual review and link to the script source.
222
+ - **If the npm or GitHub API is unavailable:** Note which factors were skipped with "unknown" scores. Do not fail the audit — partial results are better than none.
223
+ - **If the user asks for a verdict ("is this safe?"):** Decline to give a binary answer. Supply chain risk is probabilistic. Present the risk signals and let the human decide.
224
+
225
+ ## Examples
226
+
227
+ ```
228
+ Supply Chain Audit: my-project
229
+ Date: 2026-03-31
230
+ Packages evaluated: 24 direct + 3 deep transitives (depth > 5)
231
+
232
+ CRITICAL (1):
233
+ lodash@4.17.20 — CVE-2021-23337 (high severity, unpatched)
234
+
235
+ HIGH (2):
236
+ abandoned-util@0.9.1 — sole maintainer, last publish 22 months ago
237
+ sketchy-helper@2.1.0 — sole maintainer, postinstall script detected
238
+
239
+ MEDIUM (3):
240
+ small-lib@1.0.0 — 800 weekly downloads (low popularity signal)
241
+ ...
242
+
243
+ LOW (18): no significant risk signals
244
+
245
+ INSTALL SCRIPTS:
246
+ node-gyp@9.4.0 — postinstall (native compilation, likely legitimate)
247
+ sketchy-helper@2.1.0 — postinstall (REVIEW: contents unknown)
248
+
249
+ RESULT: 1 Critical, 2 High, 3 Medium, 18 Low
250
+ Next steps: Update lodash to patch CVE. Review sketchy-helper postinstall script.
251
+ Consider alternatives to abandoned-util.
252
+ ```
253
+
254
+ ## Example Output
255
+
256
+ ```
257
+ Supply Chain Audit: my-project
258
+ Date: 2026-03-31
259
+ Packages evaluated: 24 direct + 3 deep transitives (depth > 5)
260
+
261
+ CRITICAL (1):
262
+ lodash@4.17.20 — CVE-2021-23337 (high severity, unpatched)
263
+
264
+ HIGH (2):
265
+ abandoned-util@0.9.1 — sole maintainer, last publish 22 months ago
266
+ sketchy-helper@2.1.0 — sole maintainer, postinstall script detected
267
+
268
+ MEDIUM (3):
269
+ small-lib@1.0.0 — 800 weekly downloads (low popularity signal)
270
+ ...
271
+
272
+ LOW (18): no significant risk signals
273
+
274
+ INSTALL SCRIPTS:
275
+ node-gyp@9.4.0 — postinstall (native compilation, likely legitimate)
276
+ sketchy-helper@2.1.0 — postinstall (REVIEW: contents unknown)
277
+
278
+ RESULT: 1 Critical, 2 High, 3 Medium, 18 Low
279
+ Next steps: Update lodash to patch CVE. Review sketchy-helper postinstall script.
280
+ Consider alternatives to abandoned-util.
281
+ ```
@@ -0,0 +1,51 @@
1
+ name: harness-supply-chain-audit
2
+ version: "1.0.0"
3
+ description: 6-factor dependency risk evaluation for supply chain security
4
+ cognitive_mode: meticulous-implementer
5
+ triggers:
6
+ - manual
7
+ - on_milestone
8
+ platforms:
9
+ - claude-code
10
+ - gemini-cli
11
+ tools:
12
+ - Bash
13
+ - Read
14
+ - Write
15
+ - Grep
16
+ - Glob
17
+ - WebFetch
18
+ cli:
19
+ command: harness skill run harness-supply-chain-audit
20
+ args:
21
+ - name: path
22
+ description: Project root path
23
+ required: false
24
+ - name: depth
25
+ description: Maximum dependency depth to evaluate (default 3)
26
+ required: false
27
+ - name: output
28
+ description: Write report to file instead of stdout
29
+ required: false
30
+ mcp:
31
+ tool: run_skill
32
+ input:
33
+ skill: harness-supply-chain-audit
34
+ path: string
35
+ type: rigid
36
+ tier: 2
37
+ phases:
38
+ - name: inventory
39
+ description: Build dependency inventory from lockfile
40
+ required: true
41
+ - name: evaluate
42
+ description: Score each dependency on 6 risk factors
43
+ required: true
44
+ - name: report
45
+ description: Generate risk report with actionable findings
46
+ required: true
47
+ state:
48
+ persistent: false
49
+ files: []
50
+ depends_on:
51
+ - harness-security-scan
@@ -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