@harness-engineering/cli 1.15.0 → 1.17.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 (508) 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-roadmap-pilot/SKILL.md +204 -0
  110. package/dist/agents/skills/claude-code/harness-roadmap-pilot/skill.yaml +52 -0
  111. package/dist/agents/skills/claude-code/harness-security-review/SKILL.md +27 -7
  112. package/dist/agents/skills/claude-code/harness-security-scan/SKILL.md +52 -0
  113. package/dist/agents/skills/claude-code/harness-supply-chain-audit/SKILL.md +281 -0
  114. package/dist/agents/skills/claude-code/harness-supply-chain-audit/skill.yaml +51 -0
  115. package/dist/agents/skills/codex/add-harness-component/SKILL.md +192 -0
  116. package/dist/agents/skills/codex/add-harness-component/skill.yaml +33 -0
  117. package/dist/agents/skills/codex/align-documentation/SKILL.md +213 -0
  118. package/dist/agents/skills/codex/align-documentation/skill.yaml +32 -0
  119. package/dist/agents/skills/codex/check-mechanical-constraints/SKILL.md +191 -0
  120. package/dist/agents/skills/codex/check-mechanical-constraints/skill.yaml +33 -0
  121. package/dist/agents/skills/codex/cleanup-dead-code/SKILL.md +245 -0
  122. package/dist/agents/skills/codex/cleanup-dead-code/skill.yaml +34 -0
  123. package/dist/agents/skills/codex/detect-doc-drift/SKILL.md +179 -0
  124. package/dist/agents/skills/codex/detect-doc-drift/skill.yaml +31 -0
  125. package/dist/agents/skills/codex/enforce-architecture/SKILL.md +296 -0
  126. package/dist/agents/skills/codex/enforce-architecture/skill.yaml +35 -0
  127. package/dist/agents/skills/codex/harness-accessibility/SKILL.md +281 -0
  128. package/dist/agents/skills/codex/harness-accessibility/skill.yaml +52 -0
  129. package/dist/agents/skills/codex/harness-api-design/SKILL.md +356 -0
  130. package/dist/agents/skills/codex/harness-api-design/skill.yaml +74 -0
  131. package/dist/agents/skills/codex/harness-architecture-advisor/SKILL.md +449 -0
  132. package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +49 -0
  133. package/dist/agents/skills/codex/harness-auth/SKILL.md +331 -0
  134. package/dist/agents/skills/codex/harness-auth/skill.yaml +81 -0
  135. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +916 -0
  136. package/dist/agents/skills/codex/harness-autopilot/skill.yaml +67 -0
  137. package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +406 -0
  138. package/dist/agents/skills/codex/harness-brainstorming/skill.yaml +50 -0
  139. package/dist/agents/skills/codex/harness-caching/SKILL.md +309 -0
  140. package/dist/agents/skills/codex/harness-caching/skill.yaml +73 -0
  141. package/dist/agents/skills/codex/harness-chaos/SKILL.md +295 -0
  142. package/dist/agents/skills/codex/harness-chaos/skill.yaml +72 -0
  143. package/dist/agents/skills/codex/harness-code-review/SKILL.md +857 -0
  144. package/dist/agents/skills/codex/harness-code-review/skill.yaml +52 -0
  145. package/dist/agents/skills/codex/harness-codebase-cleanup/SKILL.md +224 -0
  146. package/dist/agents/skills/codex/harness-codebase-cleanup/skill.yaml +65 -0
  147. package/dist/agents/skills/codex/harness-compliance/SKILL.md +303 -0
  148. package/dist/agents/skills/codex/harness-compliance/skill.yaml +78 -0
  149. package/dist/agents/skills/codex/harness-containerization/SKILL.md +284 -0
  150. package/dist/agents/skills/codex/harness-containerization/skill.yaml +80 -0
  151. package/dist/agents/skills/codex/harness-data-pipeline/SKILL.md +274 -0
  152. package/dist/agents/skills/codex/harness-data-pipeline/skill.yaml +81 -0
  153. package/dist/agents/skills/codex/harness-data-validation/SKILL.md +343 -0
  154. package/dist/agents/skills/codex/harness-data-validation/skill.yaml +75 -0
  155. package/dist/agents/skills/codex/harness-database/SKILL.md +310 -0
  156. package/dist/agents/skills/codex/harness-database/skill.yaml +80 -0
  157. package/dist/agents/skills/codex/harness-debugging/SKILL.md +366 -0
  158. package/dist/agents/skills/codex/harness-debugging/skill.yaml +48 -0
  159. package/dist/agents/skills/codex/harness-dependency-health/SKILL.md +179 -0
  160. package/dist/agents/skills/codex/harness-dependency-health/skill.yaml +42 -0
  161. package/dist/agents/skills/codex/harness-deployment/SKILL.md +307 -0
  162. package/dist/agents/skills/codex/harness-deployment/skill.yaml +77 -0
  163. package/dist/agents/skills/codex/harness-design/SKILL.md +265 -0
  164. package/dist/agents/skills/codex/harness-design/skill.yaml +54 -0
  165. package/dist/agents/skills/codex/harness-design-mobile/SKILL.md +336 -0
  166. package/dist/agents/skills/codex/harness-design-mobile/skill.yaml +50 -0
  167. package/dist/agents/skills/codex/harness-design-system/SKILL.md +282 -0
  168. package/dist/agents/skills/codex/harness-design-system/skill.yaml +51 -0
  169. package/dist/agents/skills/codex/harness-design-web/SKILL.md +360 -0
  170. package/dist/agents/skills/codex/harness-design-web/skill.yaml +53 -0
  171. package/dist/agents/skills/codex/harness-diagnostics/SKILL.md +318 -0
  172. package/dist/agents/skills/codex/harness-diagnostics/skill.yaml +51 -0
  173. package/dist/agents/skills/codex/harness-docs-pipeline/SKILL.md +460 -0
  174. package/dist/agents/skills/codex/harness-docs-pipeline/skill.yaml +70 -0
  175. package/dist/agents/skills/codex/harness-dx/SKILL.md +276 -0
  176. package/dist/agents/skills/codex/harness-dx/skill.yaml +76 -0
  177. package/dist/agents/skills/codex/harness-e2e/SKILL.md +245 -0
  178. package/dist/agents/skills/codex/harness-e2e/skill.yaml +78 -0
  179. package/dist/agents/skills/codex/harness-event-driven/SKILL.md +280 -0
  180. package/dist/agents/skills/codex/harness-event-driven/skill.yaml +77 -0
  181. package/dist/agents/skills/codex/harness-execution/SKILL.md +510 -0
  182. package/dist/agents/skills/codex/harness-execution/skill.yaml +52 -0
  183. package/dist/agents/skills/codex/harness-feature-flags/SKILL.md +287 -0
  184. package/dist/agents/skills/codex/harness-feature-flags/skill.yaml +74 -0
  185. package/dist/agents/skills/codex/harness-git-workflow/SKILL.md +268 -0
  186. package/dist/agents/skills/codex/harness-git-workflow/skill.yaml +32 -0
  187. package/dist/agents/skills/codex/harness-hotspot-detector/SKILL.md +161 -0
  188. package/dist/agents/skills/codex/harness-hotspot-detector/skill.yaml +45 -0
  189. package/dist/agents/skills/codex/harness-i18n/SKILL.md +484 -0
  190. package/dist/agents/skills/codex/harness-i18n/skill.yaml +55 -0
  191. package/dist/agents/skills/codex/harness-i18n-process/SKILL.md +388 -0
  192. package/dist/agents/skills/codex/harness-i18n-process/skill.yaml +44 -0
  193. package/dist/agents/skills/codex/harness-i18n-workflow/SKILL.md +512 -0
  194. package/dist/agents/skills/codex/harness-i18n-workflow/skill.yaml +54 -0
  195. package/dist/agents/skills/codex/harness-impact-analysis/SKILL.md +184 -0
  196. package/dist/agents/skills/codex/harness-impact-analysis/skill.yaml +45 -0
  197. package/dist/agents/skills/codex/harness-incident-response/SKILL.md +223 -0
  198. package/dist/agents/skills/codex/harness-incident-response/skill.yaml +78 -0
  199. package/dist/agents/skills/codex/harness-infrastructure-as-code/SKILL.md +279 -0
  200. package/dist/agents/skills/codex/harness-infrastructure-as-code/skill.yaml +80 -0
  201. package/dist/agents/skills/codex/harness-integration-test/SKILL.md +271 -0
  202. package/dist/agents/skills/codex/harness-integration-test/skill.yaml +73 -0
  203. package/dist/agents/skills/codex/harness-integrity/SKILL.md +167 -0
  204. package/dist/agents/skills/codex/harness-integrity/skill.yaml +48 -0
  205. package/dist/agents/skills/codex/harness-knowledge-mapper/SKILL.md +195 -0
  206. package/dist/agents/skills/codex/harness-knowledge-mapper/skill.yaml +50 -0
  207. package/dist/agents/skills/codex/harness-load-testing/SKILL.md +274 -0
  208. package/dist/agents/skills/codex/harness-load-testing/skill.yaml +79 -0
  209. package/dist/agents/skills/codex/harness-ml-ops/SKILL.md +341 -0
  210. package/dist/agents/skills/codex/harness-ml-ops/skill.yaml +79 -0
  211. package/dist/agents/skills/codex/harness-mobile-patterns/SKILL.md +326 -0
  212. package/dist/agents/skills/codex/harness-mobile-patterns/skill.yaml +82 -0
  213. package/dist/agents/skills/codex/harness-mutation-test/SKILL.md +251 -0
  214. package/dist/agents/skills/codex/harness-mutation-test/skill.yaml +70 -0
  215. package/dist/agents/skills/codex/harness-observability/SKILL.md +283 -0
  216. package/dist/agents/skills/codex/harness-observability/skill.yaml +78 -0
  217. package/dist/agents/skills/codex/harness-onboarding/SKILL.md +288 -0
  218. package/dist/agents/skills/codex/harness-onboarding/skill.yaml +31 -0
  219. package/dist/agents/skills/codex/harness-parallel-agents/SKILL.md +256 -0
  220. package/dist/agents/skills/codex/harness-parallel-agents/skill.yaml +34 -0
  221. package/dist/agents/skills/codex/harness-perf/SKILL.md +260 -0
  222. package/dist/agents/skills/codex/harness-perf/skill.yaml +51 -0
  223. package/dist/agents/skills/codex/harness-perf-tdd/SKILL.md +249 -0
  224. package/dist/agents/skills/codex/harness-perf-tdd/skill.yaml +48 -0
  225. package/dist/agents/skills/codex/harness-planning/SKILL.md +579 -0
  226. package/dist/agents/skills/codex/harness-planning/skill.yaml +56 -0
  227. package/dist/agents/skills/codex/harness-pre-commit-review/SKILL.md +324 -0
  228. package/dist/agents/skills/codex/harness-pre-commit-review/skill.yaml +34 -0
  229. package/dist/agents/skills/codex/harness-product-spec/SKILL.md +285 -0
  230. package/dist/agents/skills/codex/harness-product-spec/skill.yaml +72 -0
  231. package/dist/agents/skills/codex/harness-property-test/SKILL.md +281 -0
  232. package/dist/agents/skills/codex/harness-property-test/skill.yaml +71 -0
  233. package/dist/agents/skills/codex/harness-refactoring/SKILL.md +169 -0
  234. package/dist/agents/skills/codex/harness-refactoring/skill.yaml +34 -0
  235. package/dist/agents/skills/codex/harness-release-readiness/SKILL.md +689 -0
  236. package/dist/agents/skills/codex/harness-release-readiness/skill.yaml +58 -0
  237. package/dist/agents/skills/codex/harness-resilience/SKILL.md +255 -0
  238. package/dist/agents/skills/codex/harness-resilience/skill.yaml +76 -0
  239. package/dist/agents/skills/codex/harness-roadmap/SKILL.md +595 -0
  240. package/dist/agents/skills/codex/harness-roadmap/skill.yaml +44 -0
  241. package/dist/agents/skills/codex/harness-roadmap-pilot/SKILL.md +204 -0
  242. package/dist/agents/skills/codex/harness-roadmap-pilot/skill.yaml +52 -0
  243. package/dist/agents/skills/codex/harness-secrets/SKILL.md +293 -0
  244. package/dist/agents/skills/codex/harness-secrets/skill.yaml +76 -0
  245. package/dist/agents/skills/codex/harness-security-review/SKILL.md +260 -0
  246. package/dist/agents/skills/codex/harness-security-review/skill.yaml +53 -0
  247. package/dist/agents/skills/codex/harness-security-scan/SKILL.md +154 -0
  248. package/dist/agents/skills/codex/harness-security-scan/skill.yaml +42 -0
  249. package/dist/agents/skills/codex/harness-skill-authoring/SKILL.md +292 -0
  250. package/dist/agents/skills/codex/harness-skill-authoring/skill.yaml +33 -0
  251. package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +1267 -0
  252. package/dist/agents/skills/codex/harness-soundness-review/skill.yaml +49 -0
  253. package/dist/agents/skills/codex/harness-sql-review/SKILL.md +315 -0
  254. package/dist/agents/skills/codex/harness-sql-review/skill.yaml +74 -0
  255. package/dist/agents/skills/codex/harness-state-management/SKILL.md +309 -0
  256. package/dist/agents/skills/codex/harness-state-management/skill.yaml +33 -0
  257. package/dist/agents/skills/codex/harness-supply-chain-audit/SKILL.md +281 -0
  258. package/dist/agents/skills/codex/harness-supply-chain-audit/skill.yaml +51 -0
  259. package/dist/agents/skills/codex/harness-tdd/SKILL.md +177 -0
  260. package/dist/agents/skills/codex/harness-tdd/skill.yaml +49 -0
  261. package/dist/agents/skills/codex/harness-test-advisor/SKILL.md +160 -0
  262. package/dist/agents/skills/codex/harness-test-advisor/skill.yaml +45 -0
  263. package/dist/agents/skills/codex/harness-test-data/SKILL.md +268 -0
  264. package/dist/agents/skills/codex/harness-test-data/skill.yaml +74 -0
  265. package/dist/agents/skills/codex/harness-ux-copy/SKILL.md +271 -0
  266. package/dist/agents/skills/codex/harness-ux-copy/skill.yaml +77 -0
  267. package/dist/agents/skills/codex/harness-verification/SKILL.md +421 -0
  268. package/dist/agents/skills/codex/harness-verification/skill.yaml +43 -0
  269. package/dist/agents/skills/codex/harness-verify/SKILL.md +159 -0
  270. package/dist/agents/skills/codex/harness-verify/skill.yaml +41 -0
  271. package/dist/agents/skills/codex/harness-visual-regression/SKILL.md +257 -0
  272. package/dist/agents/skills/codex/harness-visual-regression/skill.yaml +74 -0
  273. package/dist/agents/skills/codex/initialize-harness-project/SKILL.md +232 -0
  274. package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +32 -0
  275. package/dist/agents/skills/codex/validate-context-engineering/SKILL.md +150 -0
  276. package/dist/agents/skills/codex/validate-context-engineering/skill.yaml +32 -0
  277. package/dist/agents/skills/cursor/add-harness-component/SKILL.md +192 -0
  278. package/dist/agents/skills/cursor/add-harness-component/skill.yaml +33 -0
  279. package/dist/agents/skills/cursor/align-documentation/SKILL.md +213 -0
  280. package/dist/agents/skills/cursor/align-documentation/skill.yaml +32 -0
  281. package/dist/agents/skills/cursor/check-mechanical-constraints/SKILL.md +191 -0
  282. package/dist/agents/skills/cursor/check-mechanical-constraints/skill.yaml +33 -0
  283. package/dist/agents/skills/cursor/cleanup-dead-code/SKILL.md +245 -0
  284. package/dist/agents/skills/cursor/cleanup-dead-code/skill.yaml +34 -0
  285. package/dist/agents/skills/cursor/detect-doc-drift/SKILL.md +179 -0
  286. package/dist/agents/skills/cursor/detect-doc-drift/skill.yaml +31 -0
  287. package/dist/agents/skills/cursor/enforce-architecture/SKILL.md +296 -0
  288. package/dist/agents/skills/cursor/enforce-architecture/skill.yaml +35 -0
  289. package/dist/agents/skills/cursor/harness-accessibility/SKILL.md +281 -0
  290. package/dist/agents/skills/cursor/harness-accessibility/skill.yaml +52 -0
  291. package/dist/agents/skills/cursor/harness-api-design/SKILL.md +356 -0
  292. package/dist/agents/skills/cursor/harness-api-design/skill.yaml +74 -0
  293. package/dist/agents/skills/cursor/harness-architecture-advisor/SKILL.md +449 -0
  294. package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +49 -0
  295. package/dist/agents/skills/cursor/harness-auth/SKILL.md +331 -0
  296. package/dist/agents/skills/cursor/harness-auth/skill.yaml +81 -0
  297. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +916 -0
  298. package/dist/agents/skills/cursor/harness-autopilot/skill.yaml +67 -0
  299. package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +406 -0
  300. package/dist/agents/skills/cursor/harness-brainstorming/skill.yaml +50 -0
  301. package/dist/agents/skills/cursor/harness-caching/SKILL.md +309 -0
  302. package/dist/agents/skills/cursor/harness-caching/skill.yaml +73 -0
  303. package/dist/agents/skills/cursor/harness-chaos/SKILL.md +295 -0
  304. package/dist/agents/skills/cursor/harness-chaos/skill.yaml +72 -0
  305. package/dist/agents/skills/cursor/harness-code-review/SKILL.md +857 -0
  306. package/dist/agents/skills/cursor/harness-code-review/skill.yaml +52 -0
  307. package/dist/agents/skills/cursor/harness-codebase-cleanup/SKILL.md +224 -0
  308. package/dist/agents/skills/cursor/harness-codebase-cleanup/skill.yaml +65 -0
  309. package/dist/agents/skills/cursor/harness-compliance/SKILL.md +303 -0
  310. package/dist/agents/skills/cursor/harness-compliance/skill.yaml +78 -0
  311. package/dist/agents/skills/cursor/harness-containerization/SKILL.md +284 -0
  312. package/dist/agents/skills/cursor/harness-containerization/skill.yaml +80 -0
  313. package/dist/agents/skills/cursor/harness-data-pipeline/SKILL.md +274 -0
  314. package/dist/agents/skills/cursor/harness-data-pipeline/skill.yaml +81 -0
  315. package/dist/agents/skills/cursor/harness-data-validation/SKILL.md +343 -0
  316. package/dist/agents/skills/cursor/harness-data-validation/skill.yaml +75 -0
  317. package/dist/agents/skills/cursor/harness-database/SKILL.md +310 -0
  318. package/dist/agents/skills/cursor/harness-database/skill.yaml +80 -0
  319. package/dist/agents/skills/cursor/harness-debugging/SKILL.md +366 -0
  320. package/dist/agents/skills/cursor/harness-debugging/skill.yaml +48 -0
  321. package/dist/agents/skills/cursor/harness-dependency-health/SKILL.md +179 -0
  322. package/dist/agents/skills/cursor/harness-dependency-health/skill.yaml +42 -0
  323. package/dist/agents/skills/cursor/harness-deployment/SKILL.md +307 -0
  324. package/dist/agents/skills/cursor/harness-deployment/skill.yaml +77 -0
  325. package/dist/agents/skills/cursor/harness-design/SKILL.md +265 -0
  326. package/dist/agents/skills/cursor/harness-design/skill.yaml +54 -0
  327. package/dist/agents/skills/cursor/harness-design-mobile/SKILL.md +336 -0
  328. package/dist/agents/skills/cursor/harness-design-mobile/skill.yaml +50 -0
  329. package/dist/agents/skills/cursor/harness-design-system/SKILL.md +282 -0
  330. package/dist/agents/skills/cursor/harness-design-system/skill.yaml +51 -0
  331. package/dist/agents/skills/cursor/harness-design-web/SKILL.md +360 -0
  332. package/dist/agents/skills/cursor/harness-design-web/skill.yaml +53 -0
  333. package/dist/agents/skills/cursor/harness-diagnostics/SKILL.md +318 -0
  334. package/dist/agents/skills/cursor/harness-diagnostics/skill.yaml +51 -0
  335. package/dist/agents/skills/cursor/harness-docs-pipeline/SKILL.md +460 -0
  336. package/dist/agents/skills/cursor/harness-docs-pipeline/skill.yaml +70 -0
  337. package/dist/agents/skills/cursor/harness-dx/SKILL.md +276 -0
  338. package/dist/agents/skills/cursor/harness-dx/skill.yaml +76 -0
  339. package/dist/agents/skills/cursor/harness-e2e/SKILL.md +245 -0
  340. package/dist/agents/skills/cursor/harness-e2e/skill.yaml +78 -0
  341. package/dist/agents/skills/cursor/harness-event-driven/SKILL.md +280 -0
  342. package/dist/agents/skills/cursor/harness-event-driven/skill.yaml +77 -0
  343. package/dist/agents/skills/cursor/harness-execution/SKILL.md +510 -0
  344. package/dist/agents/skills/cursor/harness-execution/skill.yaml +52 -0
  345. package/dist/agents/skills/cursor/harness-feature-flags/SKILL.md +287 -0
  346. package/dist/agents/skills/cursor/harness-feature-flags/skill.yaml +74 -0
  347. package/dist/agents/skills/cursor/harness-git-workflow/SKILL.md +268 -0
  348. package/dist/agents/skills/cursor/harness-git-workflow/skill.yaml +32 -0
  349. package/dist/agents/skills/cursor/harness-hotspot-detector/SKILL.md +161 -0
  350. package/dist/agents/skills/cursor/harness-hotspot-detector/skill.yaml +45 -0
  351. package/dist/agents/skills/cursor/harness-i18n/SKILL.md +484 -0
  352. package/dist/agents/skills/cursor/harness-i18n/skill.yaml +55 -0
  353. package/dist/agents/skills/cursor/harness-i18n-process/SKILL.md +388 -0
  354. package/dist/agents/skills/cursor/harness-i18n-process/skill.yaml +44 -0
  355. package/dist/agents/skills/cursor/harness-i18n-workflow/SKILL.md +512 -0
  356. package/dist/agents/skills/cursor/harness-i18n-workflow/skill.yaml +54 -0
  357. package/dist/agents/skills/cursor/harness-impact-analysis/SKILL.md +184 -0
  358. package/dist/agents/skills/cursor/harness-impact-analysis/skill.yaml +45 -0
  359. package/dist/agents/skills/cursor/harness-incident-response/SKILL.md +223 -0
  360. package/dist/agents/skills/cursor/harness-incident-response/skill.yaml +78 -0
  361. package/dist/agents/skills/cursor/harness-infrastructure-as-code/SKILL.md +279 -0
  362. package/dist/agents/skills/cursor/harness-infrastructure-as-code/skill.yaml +80 -0
  363. package/dist/agents/skills/cursor/harness-integration-test/SKILL.md +271 -0
  364. package/dist/agents/skills/cursor/harness-integration-test/skill.yaml +73 -0
  365. package/dist/agents/skills/cursor/harness-integrity/SKILL.md +167 -0
  366. package/dist/agents/skills/cursor/harness-integrity/skill.yaml +48 -0
  367. package/dist/agents/skills/cursor/harness-knowledge-mapper/SKILL.md +195 -0
  368. package/dist/agents/skills/cursor/harness-knowledge-mapper/skill.yaml +50 -0
  369. package/dist/agents/skills/cursor/harness-load-testing/SKILL.md +274 -0
  370. package/dist/agents/skills/cursor/harness-load-testing/skill.yaml +79 -0
  371. package/dist/agents/skills/cursor/harness-ml-ops/SKILL.md +341 -0
  372. package/dist/agents/skills/cursor/harness-ml-ops/skill.yaml +79 -0
  373. package/dist/agents/skills/cursor/harness-mobile-patterns/SKILL.md +326 -0
  374. package/dist/agents/skills/cursor/harness-mobile-patterns/skill.yaml +82 -0
  375. package/dist/agents/skills/cursor/harness-mutation-test/SKILL.md +251 -0
  376. package/dist/agents/skills/cursor/harness-mutation-test/skill.yaml +70 -0
  377. package/dist/agents/skills/cursor/harness-observability/SKILL.md +283 -0
  378. package/dist/agents/skills/cursor/harness-observability/skill.yaml +78 -0
  379. package/dist/agents/skills/cursor/harness-onboarding/SKILL.md +288 -0
  380. package/dist/agents/skills/cursor/harness-onboarding/skill.yaml +31 -0
  381. package/dist/agents/skills/cursor/harness-parallel-agents/SKILL.md +256 -0
  382. package/dist/agents/skills/cursor/harness-parallel-agents/skill.yaml +34 -0
  383. package/dist/agents/skills/cursor/harness-perf/SKILL.md +260 -0
  384. package/dist/agents/skills/cursor/harness-perf/skill.yaml +51 -0
  385. package/dist/agents/skills/cursor/harness-perf-tdd/SKILL.md +249 -0
  386. package/dist/agents/skills/cursor/harness-perf-tdd/skill.yaml +48 -0
  387. package/dist/agents/skills/cursor/harness-planning/SKILL.md +579 -0
  388. package/dist/agents/skills/cursor/harness-planning/skill.yaml +56 -0
  389. package/dist/agents/skills/cursor/harness-pre-commit-review/SKILL.md +324 -0
  390. package/dist/agents/skills/cursor/harness-pre-commit-review/skill.yaml +34 -0
  391. package/dist/agents/skills/cursor/harness-product-spec/SKILL.md +285 -0
  392. package/dist/agents/skills/cursor/harness-product-spec/skill.yaml +72 -0
  393. package/dist/agents/skills/cursor/harness-property-test/SKILL.md +281 -0
  394. package/dist/agents/skills/cursor/harness-property-test/skill.yaml +71 -0
  395. package/dist/agents/skills/cursor/harness-refactoring/SKILL.md +169 -0
  396. package/dist/agents/skills/cursor/harness-refactoring/skill.yaml +34 -0
  397. package/dist/agents/skills/cursor/harness-release-readiness/SKILL.md +689 -0
  398. package/dist/agents/skills/cursor/harness-release-readiness/skill.yaml +58 -0
  399. package/dist/agents/skills/cursor/harness-resilience/SKILL.md +255 -0
  400. package/dist/agents/skills/cursor/harness-resilience/skill.yaml +76 -0
  401. package/dist/agents/skills/cursor/harness-roadmap/SKILL.md +595 -0
  402. package/dist/agents/skills/cursor/harness-roadmap/skill.yaml +44 -0
  403. package/dist/agents/skills/cursor/harness-roadmap-pilot/SKILL.md +204 -0
  404. package/dist/agents/skills/cursor/harness-roadmap-pilot/skill.yaml +52 -0
  405. package/dist/agents/skills/cursor/harness-secrets/SKILL.md +293 -0
  406. package/dist/agents/skills/cursor/harness-secrets/skill.yaml +76 -0
  407. package/dist/agents/skills/cursor/harness-security-review/SKILL.md +260 -0
  408. package/dist/agents/skills/cursor/harness-security-review/skill.yaml +53 -0
  409. package/dist/agents/skills/cursor/harness-security-scan/SKILL.md +154 -0
  410. package/dist/agents/skills/cursor/harness-security-scan/skill.yaml +42 -0
  411. package/dist/agents/skills/cursor/harness-skill-authoring/SKILL.md +292 -0
  412. package/dist/agents/skills/cursor/harness-skill-authoring/skill.yaml +33 -0
  413. package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +1267 -0
  414. package/dist/agents/skills/cursor/harness-soundness-review/skill.yaml +49 -0
  415. package/dist/agents/skills/cursor/harness-sql-review/SKILL.md +315 -0
  416. package/dist/agents/skills/cursor/harness-sql-review/skill.yaml +74 -0
  417. package/dist/agents/skills/cursor/harness-state-management/SKILL.md +309 -0
  418. package/dist/agents/skills/cursor/harness-state-management/skill.yaml +33 -0
  419. package/dist/agents/skills/cursor/harness-supply-chain-audit/SKILL.md +281 -0
  420. package/dist/agents/skills/cursor/harness-supply-chain-audit/skill.yaml +51 -0
  421. package/dist/agents/skills/cursor/harness-tdd/SKILL.md +177 -0
  422. package/dist/agents/skills/cursor/harness-tdd/skill.yaml +49 -0
  423. package/dist/agents/skills/cursor/harness-test-advisor/SKILL.md +160 -0
  424. package/dist/agents/skills/cursor/harness-test-advisor/skill.yaml +45 -0
  425. package/dist/agents/skills/cursor/harness-test-data/SKILL.md +268 -0
  426. package/dist/agents/skills/cursor/harness-test-data/skill.yaml +74 -0
  427. package/dist/agents/skills/cursor/harness-ux-copy/SKILL.md +271 -0
  428. package/dist/agents/skills/cursor/harness-ux-copy/skill.yaml +77 -0
  429. package/dist/agents/skills/cursor/harness-verification/SKILL.md +421 -0
  430. package/dist/agents/skills/cursor/harness-verification/skill.yaml +43 -0
  431. package/dist/agents/skills/cursor/harness-verify/SKILL.md +159 -0
  432. package/dist/agents/skills/cursor/harness-verify/skill.yaml +41 -0
  433. package/dist/agents/skills/cursor/harness-visual-regression/SKILL.md +257 -0
  434. package/dist/agents/skills/cursor/harness-visual-regression/skill.yaml +74 -0
  435. package/dist/agents/skills/cursor/initialize-harness-project/SKILL.md +232 -0
  436. package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +32 -0
  437. package/dist/agents/skills/cursor/validate-context-engineering/SKILL.md +150 -0
  438. package/dist/agents/skills/cursor/validate-context-engineering/skill.yaml +32 -0
  439. package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +52 -0
  440. package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +52 -0
  441. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +52 -0
  442. package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +52 -0
  443. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +123 -14
  444. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +6 -0
  445. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +97 -3
  446. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +6 -0
  447. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +2 -4
  448. package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +52 -0
  449. package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +52 -0
  450. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +99 -3
  451. package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +6 -0
  452. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +1 -1
  453. package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/SKILL.md +204 -0
  454. package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/skill.yaml +52 -0
  455. package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +27 -7
  456. package/dist/agents/skills/gemini-cli/harness-security-scan/SKILL.md +52 -0
  457. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/SKILL.md +281 -0
  458. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/skill.yaml +51 -0
  459. package/dist/agents/skills/package.json +5 -5
  460. package/dist/agents/skills/templates/discipline-template.md +49 -0
  461. package/dist/agents/skills/tests/schema.ts +1 -1
  462. package/dist/{agents-md-ZGNIDWAF.js → agents-md-DUYNKHJZ.js} +1 -1
  463. package/dist/{architecture-ZLIH5533.js → architecture-UBO5KKUV.js} +2 -2
  464. package/dist/bin/harness-mcp.js +14 -14
  465. package/dist/bin/harness.js +20 -20
  466. package/dist/{check-phase-gate-ZOXVBDCN.js → check-phase-gate-OSHN2AEL.js} +3 -3
  467. package/dist/{chunk-NNHDDXYT.js → chunk-2DMIQ35P.js} +486 -132
  468. package/dist/{chunk-OFXQSFOW.js → chunk-5FM64G6D.js} +2 -2
  469. package/dist/{chunk-RCWZBSK5.js → chunk-6KWBH4EO.js} +1 -1
  470. package/dist/{chunk-LGYBN7Y6.js → chunk-ABQUCXRE.js} +2 -1
  471. package/dist/{chunk-VEPAJXBW.js → chunk-APNPXLB2.js} +4 -4
  472. package/dist/{chunk-ZOAWBDWU.js → chunk-CJDVBBPB.js} +5 -1
  473. package/dist/{chunk-FTMXDOR6.js → chunk-CZZXE6BL.js} +1 -1
  474. package/dist/{chunk-N25INEIX.js → chunk-GWXP3JVA.js} +3 -3
  475. package/dist/{chunk-XYLGHKG6.js → chunk-HKUX2X7O.js} +11 -2
  476. package/dist/{chunk-YBJ262QL.js → chunk-LRG3B43J.js} +1 -1
  477. package/dist/{chunk-AOZRDOIP.js → chunk-M6TIO6NF.js} +1 -1
  478. package/dist/{chunk-J4RAX7YB.js → chunk-OA3MOZGG.js} +1683 -507
  479. package/dist/{chunk-YLXFKVJE.js → chunk-OHZVGIPE.js} +9 -9
  480. package/dist/{chunk-2BKLWLY6.js → chunk-QSRRBNLY.js} +8 -8
  481. package/dist/{chunk-3ZZKVN62.js → chunk-TG7IUJ3J.js} +1 -1
  482. package/dist/{chunk-EDXIVMAP.js → chunk-TZIHFNEG.js} +20 -6
  483. package/dist/{chunk-ND2ENWDM.js → chunk-UX3JHYEA.js} +1 -1
  484. package/dist/{chunk-Z2OOPXJO.js → chunk-VF23UTNB.js} +1771 -164
  485. package/dist/{chunk-7MJAPE3Z.js → chunk-YLN34N65.js} +1 -0
  486. package/dist/{chunk-B2HKP423.js → chunk-ZA2I7S3E.js} +28 -1
  487. package/dist/{ci-workflow-765LSHRD.js → ci-workflow-FJZMNZPT.js} +1 -1
  488. package/dist/{create-skill-XSWHMSM5.js → create-skill-NDXQSTIK.js} +2 -2
  489. package/dist/{dist-ALQDD67R.js → dist-MF5BK5AD.js} +77 -1
  490. package/dist/{dist-B26DFXMP.js → dist-U7EAO6T2.js} +110 -60
  491. package/dist/{docs-NRMQCOJ6.js → docs-WZHW4N4P.js} +3 -3
  492. package/dist/{engine-3RB7MXPP.js → engine-VS6ZJ2VZ.js} +2 -2
  493. package/dist/{entropy-6AGX2ZUN.js → entropy-FCIGJIIT.js} +2 -2
  494. package/dist/{feedback-MY4QZIFD.js → feedback-O3FYTZIE.js} +1 -1
  495. package/dist/{generate-agent-definitions-ZAE726AU.js → generate-agent-definitions-EYG263XD.js} +3 -3
  496. package/dist/{graph-loader-2M2HXDQI.js → graph-loader-KMHDQYDT.js} +1 -1
  497. package/dist/index.d.ts +95 -15
  498. package/dist/index.js +20 -20
  499. package/dist/{loader-UUTVMQCC.js → loader-B4XWX4K6.js} +1 -1
  500. package/dist/{mcp-VU5FMO52.js → mcp-DVVUODN7.js} +14 -14
  501. package/dist/{performance-2D7G6NMJ.js → performance-NMJDV6HF.js} +4 -2
  502. package/dist/{review-pipeline-RAQ55ISU.js → review-pipeline-MSEJWTKM.js} +1 -1
  503. package/dist/{runtime-BCK5RRZQ.js → runtime-YHVLJNPG.js} +1 -1
  504. package/dist/{security-2RPQEN62.js → security-HTDKKGMX.js} +1 -1
  505. package/dist/{skill-executor-XZLYZYAK.js → skill-executor-XEVDGXUM.js} +2 -2
  506. package/dist/{validate-KBYQAEWE.js → validate-SPSTH2YW.js} +2 -2
  507. package/dist/{validate-cross-check-OABMREW4.js → validate-cross-check-YTDWIMFI.js} +1 -1
  508. package/package.json +20 -20
@@ -247,6 +247,58 @@ Phase 4: VALIDATE
247
247
  - **No deploy without rollback.** Every deployment target must have a documented or automated rollback mechanism. Missing rollback is a blocking warning.
248
248
  - **No skipping pipeline lint.** Pipeline configuration must pass syntax validation before recommendations are made.
249
249
 
250
+ ## Evidence Requirements
251
+
252
+ When this skill makes claims about existing code, architecture, or behavior,
253
+ it MUST cite evidence using one of:
254
+
255
+ 1. **File reference:** `file:line` format (e.g., `src/auth.ts:42`)
256
+ 2. **Code pattern reference:** `file` with description (e.g., `src/utils/hash.ts` —
257
+ "existing bcrypt wrapper")
258
+ 3. **Test/command output:** Inline or referenced output from a test run or CLI command
259
+ 4. **Session evidence:** Write to the `evidence` session section via `manage_state`
260
+
261
+ **Uncited claims:** Technical assertions without citations MUST be prefixed with
262
+ `[UNVERIFIED]`. Example: `[UNVERIFIED] The auth middleware supports refresh tokens`.
263
+
264
+ ## Red Flags
265
+
266
+ ### Universal
267
+
268
+ These apply to ALL skills. If you catch yourself doing any of these, STOP.
269
+
270
+ - **"I believe the codebase does X"** — Stop. Read the code and cite a file:line
271
+ reference. Belief is not evidence.
272
+ - **"Let me recommend [pattern] for this"** without checking existing patterns — Stop.
273
+ Search the codebase first. The project may already have a convention.
274
+ - **"While we're here, we should also [unrelated improvement]"** — Stop. Flag the idea
275
+ but do not expand scope beyond the stated task.
276
+
277
+ ### Domain-Specific
278
+
279
+ - **"Deploying without a health check endpoint"** — Stop. Without health checks, the orchestrator cannot detect failed deployments. Add health checks before deploying.
280
+ - **"Skipping canary deployment, it's a small change"** — Stop. Small changes cause outages too. Follow the deployment policy regardless of change size.
281
+ - **"Rolling back manually if something goes wrong"** — Stop. Manual rollback under incident pressure fails. Automate rollback before deploying.
282
+ - **"We can update the runbook after the deploy"** — Stop. If the deployment changes operational behavior, update the runbook first. Stale runbooks during incidents cause escalations.
283
+
284
+ ## Rationalizations to Reject
285
+
286
+ ### Universal
287
+
288
+ These reasoning patterns sound plausible but lead to bad outcomes. Reject them.
289
+
290
+ - **"It's probably fine"** — "Probably" is not evidence. Verify before asserting.
291
+ - **"This is best practice"** — Best practice in what context? Cite the source and
292
+ confirm it applies to this codebase.
293
+ - **"We can fix it later"** — If it is worth flagging, it is worth documenting now
294
+ with a concrete follow-up plan.
295
+
296
+ ### Domain-Specific
297
+
298
+ - **"It's just a config change, not a code change"** — Config changes cause outages at the same rate as code changes. Deploy them with the same rigor and rollback strategy.
299
+ - **"We tested this in staging"** — Staging is not production. Traffic patterns, data volume, and edge cases differ. Staging success does not guarantee production safety.
300
+ - **"Downtime will be brief"** — Brief is not zero. Quantify the expected impact and communicate it to stakeholders before deploying.
301
+
250
302
  ## Escalation
251
303
 
252
304
  - **When the CI/CD platform is unsupported:** Report which platform was detected and that analysis is limited to general best practices. Recommend the user provide platform-specific documentation for deeper analysis.
@@ -22,6 +22,21 @@ A plan with vague tasks like "add validation" or "implement the service" is not
22
22
 
23
23
  ---
24
24
 
25
+ ### Rigor Levels
26
+
27
+ The `rigorLevel` is passed to the planner by autopilot (or set via `--fast`/`--thorough` flags in standalone invocation). Default is `standard`.
28
+
29
+ | Phase | `fast` | `standard` (default) | `thorough` |
30
+ | --------- | ---------------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------------------------- |
31
+ | SCOPE | No change — always derive observable truths. | No change. | No change. |
32
+ | DECOMPOSE | Skip skeleton pass. Produce full tasks directly after file map. | Skeleton if estimated task count >= 8. Full tasks if < 8. | Always produce skeleton. Require human approval before expanding to full tasks. |
33
+ | SEQUENCE | No change — always order by dependency. | No change. | No change. |
34
+ | VALIDATE | No change — always run harness validate and verify completeness. | No change. | No change. |
35
+
36
+ The skeleton pass is the primary rigor lever for planning. Fast mode trusts the direction and goes straight to full detail. Thorough mode always validates direction before investing tokens in full task expansion.
37
+
38
+ ---
39
+
25
40
  ### Phase 1: SCOPE — Derive Must-Haves from Goals
26
41
 
27
42
  Work backward from the goal. Do not start with "what should we build?" Start with "what must be true when we are done?"
@@ -129,21 +144,63 @@ When presenting the task breakdown, use progress markers:
129
144
  MODIFY src/api/routes/users.ts (add notification trigger)
130
145
  ```
131
146
 
132
- 2. **Decompose into atomic tasks.** Each task must:
147
+ 2. **Skeleton pass (rigor-gated).** Before writing full task details, produce a lightweight skeleton that validates direction. The skeleton is ~200 tokens and catches structural errors before investing in full expansion.
148
+
149
+ **Gating logic:**
150
+ - `rigorLevel == "fast"`: Skip this step entirely. Proceed directly to full task decomposition.
151
+ - `rigorLevel == "standard"`: Estimate the task count from the file map. If >= 8 tasks, produce the skeleton and present for approval. If < 8 tasks, skip the skeleton and proceed to full decomposition.
152
+ - `rigorLevel == "thorough"`: Always produce the skeleton and require human approval before expanding.
153
+
154
+ **Skeleton format:**
155
+
156
+ ```
157
+ ## Skeleton
158
+
159
+ 1. Foundation types and interfaces (~3 tasks, ~10 min)
160
+ 2. Core scoring module with TDD (~2 tasks, ~8 min)
161
+ 3. CLI integration and flag parsing (~4 tasks, ~15 min)
162
+ 4. Integration tests and validation (~3 tasks, ~10 min)
163
+
164
+ **Estimated total:** 12 tasks, ~43 minutes
165
+ ```
166
+
167
+ Each line is a logical group of tasks with an estimated count and time. The skeleton does NOT contain file paths, code, or detailed instructions — those come in the expansion step.
168
+
169
+ **Approval gate:**
170
+
171
+ When the skeleton is produced, present it to the human:
172
+
173
+ ```json
174
+ emit_interaction({
175
+ path: "<project-root>",
176
+ type: "confirmation",
177
+ confirmation: {
178
+ text: "Approve skeleton direction?",
179
+ context: "<estimated task count> tasks across <group count> groups. <one-sentence summary of approach>",
180
+ impact: "Approving proceeds to full task expansion. Rejecting allows direction change before detail investment.",
181
+ risk: "low"
182
+ }
183
+ })
184
+ ```
185
+
186
+ - **If approved:** Proceed to full task decomposition (step 3).
187
+ - **If rejected:** Ask what should change. Revise the skeleton. Re-present for approval. Do not expand until approved.
188
+
189
+ 3. **Decompose into atomic tasks.** Each task must:
133
190
  - Be completable in 2-5 minutes
134
191
  - Fit in a single context window
135
192
  - Have a clear, testable outcome
136
193
  - Follow TDD: write test, fail, implement, pass, commit
137
194
  - Produce one atomic commit
138
195
 
139
- 3. **Write complete instructions for each task.** Not summaries — complete executable instructions:
196
+ 4. **Write complete instructions for each task.** Not summaries — complete executable instructions:
140
197
  - **Exact file paths** to create or modify
141
198
  - **Exact code** to write (not "add validation logic" — write the actual validation code)
142
199
  - **Exact test commands** to run (e.g., `npx vitest run src/services/notification-service.test.ts`)
143
200
  - **Exact commit message** to use
144
201
  - **`harness validate`** as the final step
145
202
 
146
- 4. **Include checkpoints.** Mark tasks that require human verification, decisions, or actions:
203
+ 5. **Include checkpoints.** Mark tasks that require human verification, decisions, or actions:
147
204
  - `[checkpoint:human-verify]` — Pause, show result, wait for confirmation
148
205
  - `[checkpoint:decision]` — Pause, present options, wait for choice
149
206
  - `[checkpoint:human-action]` — Pause, instruct human on what they need to do
@@ -281,6 +338,15 @@ One sentence.
281
338
  - CREATE path/to/file.ts
282
339
  - MODIFY path/to/other-file.ts
283
340
 
341
+ ## Skeleton (if produced)
342
+
343
+ 1. <group name> (~N tasks, ~N min)
344
+ 2. <group name> (~N tasks, ~N min)
345
+
346
+ **Estimated total:** N tasks, ~N minutes
347
+
348
+ _Skeleton approved: yes/no. If no, note the revision._
349
+
284
350
  ## Tasks
285
351
 
286
352
  ### Task 1: <descriptive name>
@@ -359,6 +425,8 @@ When this skill makes claims about existing code structure, file locations, or i
359
425
  - **Handoff to harness-execution** — Once the plan is approved, invoke harness-execution to begin task-by-task implementation.
360
426
  - **Task commands** — Every task includes exact harness CLI commands to run (e.g., `harness validate`, `harness check-deps`).
361
427
  - **`emit_interaction`** -- Call at the end of Phase 4 to suggest transitioning to harness-execution. Uses confirmed transition (waits for user approval).
428
+ - **Rigor levels** — `--fast` / `--thorough` flags control the skeleton pass in DECOMPOSE. Fast skips skeleton entirely. Standard produces skeleton for plans with >= 8 tasks. Thorough always produces skeleton and requires approval. See the Rigor Levels table for details.
429
+ - **Two-pass planning** — Skeleton pass produces a ~200-token outline before full task expansion. Catches directional errors early. Gated by rigor level and estimated task count.
362
430
 
363
431
  ## Change Specifications
364
432
 
@@ -394,6 +462,11 @@ When `docs/changes/` exists in the project, produce `docs/changes/<feature>/delt
394
462
  - `harness validate` passes before the plan is written
395
463
  - `harness validate` is included as a step in every task
396
464
  - The human has reviewed and approved the plan
465
+ - When `rigorLevel` is `fast`, the skeleton pass is skipped and full tasks are produced directly
466
+ - When `rigorLevel` is `thorough`, a skeleton is always produced and requires human approval before expansion
467
+ - When `rigorLevel` is `standard` and task count >= 8, a skeleton is produced for approval
468
+ - When `rigorLevel` is `standard` and task count < 8, the skeleton is skipped
469
+ - The skeleton format is lightweight (~200 tokens): numbered groups with task count and time estimates
397
470
 
398
471
  ## Examples
399
472
 
@@ -420,6 +493,10 @@ MODIFY src/api/routes/users.ts
420
493
  MODIFY src/api/routes/users.test.ts
421
494
  ```
422
495
 
496
+ **Skeleton (standard mode, 6 tasks — skeleton skipped because < 8 tasks)**
497
+
498
+ _Skeleton not produced — task count (6) below threshold (8)._
499
+
423
500
  **Task 1: Define notification types**
424
501
 
425
502
  ```
@@ -463,6 +540,25 @@ Files: src/services/notification-service.ts, src/services/notification-service.t
463
540
  6. Commit: "feat(notifications): add list and expiry to NotificationService"
464
541
  ```
465
542
 
543
+ ### Example: Planning with Skeleton (thorough mode)
544
+
545
+ **Goal:** Add rate limiting to all API endpoints.
546
+
547
+ **Skeleton (thorough mode — always produced):**
548
+
549
+ ```
550
+ ## Skeleton
551
+
552
+ 1. Rate limit types and configuration (~2 tasks, ~7 min)
553
+ 2. Rate limit middleware with Redis backend (~3 tasks, ~12 min)
554
+ 3. Route integration and per-endpoint config (~4 tasks, ~15 min)
555
+ 4. Integration tests and load verification (~3 tasks, ~10 min)
556
+
557
+ **Estimated total:** 12 tasks, ~44 minutes
558
+ ```
559
+
560
+ _Presented for approval. User approved. Expanded to full tasks._
561
+
466
562
  ## Gates
467
563
 
468
564
  These are hard stops. Violating any gate means the process has broken down.
@@ -22,6 +22,12 @@ cli:
22
22
  - name: path
23
23
  description: Project root path
24
24
  required: false
25
+ - name: fast
26
+ description: Skip skeleton pass — produce full plan directly
27
+ required: false
28
+ - name: thorough
29
+ description: Always produce skeleton for approval before full expansion
30
+ required: false
25
31
  mcp:
26
32
  tool: run_skill
27
33
  input:
@@ -150,7 +150,7 @@ Run the built-in security scanner against staged files. This is a mechanical che
150
150
  git diff --cached --name-only --diff-filter=d | grep -E '\.(ts|tsx|js|jsx|go|py)$'
151
151
  ```
152
152
 
153
- Use the `run_security_scan` MCP tool or invoke the scanner on the staged files. Report any findings:
153
+ Run `harness check-security --changed-only` on the staged files. Report any findings:
154
154
 
155
155
  - **Error findings (blocking):** Hardcoded secrets, eval/injection, weak crypto — these block the commit just like lint failures.
156
156
  - **Warning/info findings (advisory):** CORS wildcards, HTTP URLs, disabled TLS — reported but do not block.
@@ -0,0 +1,204 @@
1
+ # Harness Roadmap Pilot
2
+
3
+ > AI-assisted selection of the next highest-impact unblocked roadmap item. Scores candidates, recommends one, assigns it, and transitions to the appropriate next skill.
4
+
5
+ ## When to Use
6
+
7
+ - When the team or individual needs to pick the next item to work on from the roadmap
8
+ - When there are multiple unblocked items and prioritization guidance is needed
9
+ - After completing a feature and looking for the next highest-impact work
10
+ - NOT when the roadmap does not exist (direct user to harness-roadmap --create)
11
+ - NOT when the user already knows what to work on (use harness-brainstorming or harness-autopilot directly)
12
+
13
+ ## Process
14
+
15
+ ### Iron Law
16
+
17
+ **Never assign or transition without the human confirming the recommendation first.**
18
+
19
+ Present the ranked candidates, the AI reasoning, and the recommended pick. Wait for explicit confirmation before making any changes.
20
+
21
+ ---
22
+
23
+ ### Phase 1: SCAN -- Score Candidates
24
+
25
+ 1. Check if `docs/roadmap.md` exists.
26
+ - If missing: error. "No roadmap found at docs/roadmap.md. Run harness-roadmap --create first."
27
+ 2. Parse the roadmap using `parseRoadmap` from `@harness-engineering/core`.
28
+ 3. Determine the current user:
29
+ - Use the `--user` argument if provided
30
+ - Otherwise, attempt to detect from git config: `git config user.name` or `git config user.email`
31
+ - If neither available, proceed without affinity scoring
32
+ 4. Call `scoreRoadmapCandidates(roadmap, { currentUser })` from `@harness-engineering/core`.
33
+ 5. If no candidates: inform the human. "No unblocked planned or backlog items found. All items are either in-progress, done, blocked, or the roadmap is empty."
34
+
35
+ Present the top 5 candidates:
36
+
37
+ ```
38
+ ROADMAP PILOT -- Candidate Scoring
39
+
40
+ Top candidates (scored by position 50%, dependents 30%, affinity 20%):
41
+
42
+ # Feature Milestone Priority Score Breakdown
43
+ 1. Feature A MVP Release P0 0.85 pos:0.9 dep:0.8 aff:1.0
44
+ 2. Feature B MVP Release P1 0.72 pos:0.8 dep:0.6 aff:0.5
45
+ 3. Feature C Q2 Release -- 0.65 pos:0.7 dep:0.5 aff:0.0
46
+ 4. Feature D Backlog -- 0.40 pos:0.3 dep:0.4 aff:0.0
47
+ 5. Feature E Backlog -- 0.35 pos:0.2 dep:0.3 aff:0.0
48
+ ```
49
+
50
+ ### Phase 2: RECOMMEND -- AI-Assisted Analysis
51
+
52
+ 1. For the top 3 candidates, read their spec files (if they exist):
53
+ - Read the spec's Overview and Goals section
54
+ - Read the spec's Success Criteria section
55
+ - Assess effort and impact from the spec content
56
+
57
+ 2. Provide a recommendation with reasoning:
58
+
59
+ ```
60
+ RECOMMENDATION
61
+
62
+ I recommend Feature A (MVP Release, P0, score: 0.85).
63
+
64
+ Reasoning:
65
+ - Highest priority (P0) with strong positional signal (first in MVP milestone)
66
+ - Unblocks 2 downstream features (Feature X, Feature Y)
67
+ - You completed its blocker "Foundation" -- high context affinity
68
+ - Spec exists with clear success criteria (12 acceptance tests)
69
+ - Estimated effort: medium (8 tasks in the plan)
70
+
71
+ Alternative: Feature B (P1, score: 0.72) -- consider if Feature A's scope is too large for the current time window.
72
+
73
+ Proceed with Feature A? (y/n/pick another)
74
+ ```
75
+
76
+ ### Phase 3: CONFIRM -- Human Decision
77
+
78
+ 1. Wait for human confirmation.
79
+ - If **yes**: proceed to Phase 4.
80
+ - If **pick another**: ask which candidate number, then proceed with that pick.
81
+ - If **no**: stop. No changes made.
82
+
83
+ ### Phase 4: ASSIGN -- Execute Assignment and Transition
84
+
85
+ 1. Call `assignFeature(roadmap, feature, currentUser, todayDate)` from `@harness-engineering/core`.
86
+ - This updates the feature's `Assignee` field
87
+ - Appends `assigned` record to assignment history (and `unassigned` for previous assignee if reassignment)
88
+
89
+ 2. Serialize and write the updated roadmap to `docs/roadmap.md`.
90
+
91
+ 3. If tracker config exists in `harness.config.json`, sync the assignment:
92
+ - Call the external tracker's `assignTicket` to push the assignment
93
+ - Log result but do not block on failure
94
+
95
+ 4. Determine the transition target:
96
+ - If the feature has a `spec` field (non-null): transition to `harness:autopilot`
97
+ - If the feature has no `spec`: transition to `harness:brainstorming`
98
+
99
+ 5. Present the transition to the human via `emit_interaction`:
100
+
101
+ ```json
102
+ emit_interaction({
103
+ path: "<project-root>",
104
+ type: "transition",
105
+ transition: {
106
+ completedPhase: "roadmap-pilot",
107
+ suggestedNext: "<brainstorming|autopilot>",
108
+ reason: "Feature '<name>' assigned and ready for <brainstorming|execution>",
109
+ artifacts: ["docs/roadmap.md"],
110
+ requiresConfirmation: true,
111
+ summary: "Assigned '<name>' to <user>. <Spec exists -- ready for autopilot|No spec -- needs brainstorming first>.",
112
+ qualityGate: {
113
+ checks: [
114
+ { "name": "roadmap-parsed", "passed": true },
115
+ { "name": "candidate-scored", "passed": true },
116
+ { "name": "human-confirmed", "passed": true },
117
+ { "name": "assignment-written", "passed": true }
118
+ ],
119
+ allPassed: true
120
+ }
121
+ }
122
+ })
123
+ ```
124
+
125
+ 6. Run `harness validate`.
126
+
127
+ ---
128
+
129
+ ## Harness Integration
130
+
131
+ - **`parseRoadmap` / `serializeRoadmap`** -- Parse and write `docs/roadmap.md`. Import from `@harness-engineering/core`.
132
+ - **`scoreRoadmapCandidates`** -- Core scoring algorithm. Import from `@harness-engineering/core`. Takes a `Roadmap` and optional `PilotScoringOptions` (currentUser for affinity).
133
+ - **`assignFeature`** -- Assignment with history tracking. Import from `@harness-engineering/core`. Handles new assignment and reassignment (unassigned + assigned records).
134
+ - **`emit_interaction`** -- Used for the skill transition at the end. Transitions to `harness:brainstorming` (no spec) or `harness:autopilot` (spec exists).
135
+ - **`harness validate`** -- Run after assignment is written.
136
+ - **External sync** -- If `harness.config.json` has tracker config, use `fullSync` or direct `assignTicket` to push assignment to external service.
137
+
138
+ ## Success Criteria
139
+
140
+ 1. Roadmap is parsed and unblocked planned/backlog items are scored
141
+ 2. Scoring uses two-tier sort: explicit priority first, then weighted score
142
+ 3. AI reads top candidates' specs and provides recommendation with reasoning
143
+ 4. Human confirms before any changes are made
144
+ 5. Assignment updates feature field, appends history records, and syncs externally
145
+ 6. Reassignment produces two history records (unassigned + assigned)
146
+ 7. Transition routes to brainstorming (no spec) or autopilot (spec exists)
147
+ 8. `harness validate` passes after all changes
148
+
149
+ ## Examples
150
+
151
+ ### Example: Pick Next Item from a Multi-Milestone Roadmap
152
+
153
+ **Context:** A roadmap with 3 milestones, 8 features. 2 are in-progress, 1 is done, 2 are blocked, 3 are planned/backlog and unblocked. User is @cwarner who completed "Core Library Design".
154
+
155
+ **Phase 1: SCAN**
156
+
157
+ ```
158
+ ROADMAP PILOT -- Candidate Scoring
159
+
160
+ Top candidates:
161
+ # Feature Milestone Priority Score Breakdown
162
+ 1. Graph Connector MVP Release P2 0.78 pos:0.8 dep:0.6 aff:1.0
163
+ 2. Performance Baselines Q3 Hardening -- 0.45 pos:0.5 dep:0.3 aff:0.0
164
+ 3. Push Notifications Backlog -- 0.30 pos:0.2 dep:0.2 aff:0.5
165
+ ```
166
+
167
+ **Phase 2: RECOMMEND**
168
+
169
+ ```
170
+ I recommend Graph Connector (MVP Release, P2, score: 0.78).
171
+
172
+ Reasoning:
173
+ - Only prioritized item among candidates (P2)
174
+ - You completed its blocker "Core Library Design" -- maximum affinity bonus
175
+ - Unblocks "API Integration" downstream
176
+ - Spec exists at docs/changes/graph-connector/proposal.md
177
+
178
+ Proceed? (y/n/pick another)
179
+ ```
180
+
181
+ Human confirms **y**.
182
+
183
+ **Phase 4: ASSIGN**
184
+
185
+ ```
186
+ Assigned: Graph Connector -> @cwarner
187
+ History: +1 record (assigned, 2026-04-02)
188
+ Roadmap updated: docs/roadmap.md
189
+ External sync: github:harness-eng/harness#43 assigned
190
+
191
+ Transitioning to harness:autopilot (spec exists)...
192
+ ```
193
+
194
+ ## Gates
195
+
196
+ - **No assignment without human confirmation.** The CONFIRM phase must complete with explicit approval. Never auto-assign.
197
+ - **No transition without assignment.** The skill must write the assignment before transitioning to the next skill.
198
+ - **No scoring without a parsed roadmap.** If `docs/roadmap.md` does not exist or fails to parse, stop with an error.
199
+
200
+ ## Escalation
201
+
202
+ - **When no unblocked candidates exist:** Inform the human. Suggest reviewing blocked items to see if blockers can be resolved, or adding new features via `harness-roadmap --add`.
203
+ - **When affinity data is unavailable:** Proceed without affinity scoring (weight falls to 0 for all candidates). Note this in the output.
204
+ - **When external sync fails:** Log the error, complete the local assignment, and note that external sync can be retried with `harness-roadmap --sync`.
@@ -0,0 +1,52 @@
1
+ name: harness-roadmap-pilot
2
+ version: "1.0.0"
3
+ description: AI-assisted selection of the next highest-impact roadmap item with scoring, assignment, and skill transition
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
+ - Grep
17
+ - emit_interaction
18
+ cli:
19
+ command: harness skill run harness-roadmap-pilot
20
+ args:
21
+ - name: path
22
+ description: Project root path
23
+ required: false
24
+ - name: user
25
+ description: "Current user identifier (e.g., @cwarner) for affinity matching"
26
+ required: false
27
+ mcp:
28
+ tool: run_skill
29
+ input:
30
+ skill: harness-roadmap-pilot
31
+ path: string
32
+ type: rigid
33
+ tier: 2
34
+ phases:
35
+ - name: scan
36
+ description: Parse roadmap, filter unblocked candidates, compute scores
37
+ required: true
38
+ - name: recommend
39
+ description: AI reads top candidates specs and provides recommendation
40
+ required: true
41
+ - name: confirm
42
+ description: Present recommendation to human for approval
43
+ required: true
44
+ - name: assign
45
+ description: Update assignee, history, sync external, transition to next skill
46
+ required: true
47
+ state:
48
+ persistent: false
49
+ depends_on:
50
+ - harness-brainstorming
51
+ - harness-autopilot
52
+ - harness-roadmap
@@ -55,16 +55,14 @@ This skill follows the Deterministic-vs-LLM Responsibility Split principle. The
55
55
 
56
56
  Run the built-in security scanner against the project.
57
57
 
58
- 1. **Run the scanner.** Use the `run_security_scan` MCP tool or invoke `SecurityScanner` directly:
58
+ 1. **Run the scanner.** Use the `harness check-security` CLI command:
59
59
 
60
60
  ```bash
61
- # Via MCP
62
- harness scan --security
63
-
64
- # Via CLI
65
- npx vitest run packages/core/tests/security/
61
+ harness check-security
66
62
  ```
67
63
 
64
+ For machine-readable output, add `--json`. For scanning only changed files, add `--changed-only`.
65
+
68
66
  2. **Review findings.** Categorize by severity:
69
67
  - **Error (blocking):** Must fix before merge — secrets, injection, eval, weak crypto
70
68
  - **Warning (review):** Should fix — CORS wildcards, disabled TLS, path traversal patterns
@@ -103,6 +101,28 @@ After the OWASP baseline, add stack-specific checks:
103
101
  - **React:** XSS via `dangerouslySetInnerHTML`, sensitive data in client state, insecure `postMessage` listeners
104
102
  - **Go:** Race conditions in concurrent handlers, `unsafe.Pointer` usage, format string injection
105
103
 
104
+ #### Insecure Defaults Analysis
105
+
106
+ For each configuration variable that controls a security feature (auth, encryption, TLS, CORS, rate limiting), verify:
107
+
108
+ - Does the feature **fail-closed** (error/deny) when configuration is missing?
109
+ - Or does it **fail-open** (degrade to permissive/disabled)?
110
+ - Trace fallback chains: `config.x ?? env.Y ?? default` — is the final default secure?
111
+
112
+ Patterns the mechanical `SEC-DEF-*` rules cannot catch (focus here):
113
+
114
+ - Multi-line fallback chains where the insecure default is not adjacent to the security variable name
115
+ - Conditional logic that enables security features only in specific environments (e.g., `if (isProd) enableTLS()`)
116
+ - Error handlers that swallow failures in auth, session, or token validation code (multi-line `catch` blocks)
117
+ - Silent type coercions that convert truthy env vars to falsy values
118
+
119
+ **Rationalizations to reject** (adapted from Trail of Bits):
120
+
121
+ - "The default is only used in development" — production deployments inherit defaults when config is missing
122
+ - "The env var will always be set" — missing env vars are the #1 cause of fail-open in production
123
+ - "The catch block will be filled in later" — empty auth catch blocks ship to production
124
+ - "It's behind a feature flag" — feature flags can be inadvertently enabled or disabled
125
+
106
126
  ### Phase 3: THREAT-MODEL (optional, `--deep` flag; full mode or explicit `--deep` in pipeline)
107
127
 
108
128
  When invoked with `--deep`, build a lightweight threat model:
@@ -149,7 +169,7 @@ Threat Model:
149
169
 
150
170
  ## Harness Integration
151
171
 
152
- - **`run_security_scan` MCP tool** — Run the mechanical scanner programmatically
172
+ - **`harness check-security`** — Run the mechanical scanner via CLI. Use `--json` for machine-readable output.
153
173
  - **`harness validate`** — Standard project health check
154
174
  - **`query_graph` / `get_relationships`** — Used in threat modeling phase for data flow tracing
155
175
  - **`get_impact`** — Understand blast radius of security-sensitive changes
@@ -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.