@harness-engineering/cli 1.24.0 → 1.24.3

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 (3869) hide show
  1. package/dist/agents/skills/claude-code/a11y-aria-patterns/skill.yaml +1 -0
  2. package/dist/agents/skills/claude-code/a11y-color-contrast/skill.yaml +1 -0
  3. package/dist/agents/skills/claude-code/a11y-form-patterns/skill.yaml +2 -0
  4. package/dist/agents/skills/claude-code/a11y-image-text-alt/skill.yaml +1 -0
  5. package/dist/agents/skills/claude-code/a11y-keyboard-navigation/skill.yaml +1 -0
  6. package/dist/agents/skills/claude-code/a11y-modal-patterns/skill.yaml +1 -0
  7. package/dist/agents/skills/claude-code/a11y-motion-animation/skill.yaml +1 -0
  8. package/dist/agents/skills/claude-code/a11y-screen-reader-testing/skill.yaml +1 -0
  9. package/dist/agents/skills/claude-code/a11y-semantic-html/skill.yaml +1 -0
  10. package/dist/agents/skills/claude-code/a11y-testing-automation/skill.yaml +1 -0
  11. package/dist/agents/skills/claude-code/add-harness-component/skill.yaml +1 -0
  12. package/dist/agents/skills/claude-code/align-documentation/skill.yaml +1 -0
  13. package/dist/agents/skills/claude-code/angular-component-pattern/skill.yaml +1 -0
  14. package/dist/agents/skills/claude-code/angular-directive-pattern/skill.yaml +1 -0
  15. package/dist/agents/skills/claude-code/angular-http-interceptors/skill.yaml +1 -0
  16. package/dist/agents/skills/claude-code/angular-lazy-loading/skill.yaml +1 -0
  17. package/dist/agents/skills/claude-code/angular-performance-patterns/skill.yaml +6 -0
  18. package/dist/agents/skills/claude-code/angular-pipe-pattern/skill.yaml +1 -0
  19. package/dist/agents/skills/claude-code/angular-reactive-forms/skill.yaml +1 -0
  20. package/dist/agents/skills/claude-code/angular-routing-guards/skill.yaml +1 -0
  21. package/dist/agents/skills/claude-code/angular-rxjs-patterns/skill.yaml +1 -0
  22. package/dist/agents/skills/claude-code/angular-schematics/skill.yaml +1 -0
  23. package/dist/agents/skills/claude-code/angular-service-di/skill.yaml +1 -0
  24. package/dist/agents/skills/claude-code/angular-signals-pattern/skill.yaml +1 -0
  25. package/dist/agents/skills/claude-code/angular-standalone-components/skill.yaml +1 -0
  26. package/dist/agents/skills/claude-code/angular-state-management/skill.yaml +1 -0
  27. package/dist/agents/skills/claude-code/angular-testing-patterns/skill.yaml +1 -0
  28. package/dist/agents/skills/claude-code/api-api-keys/SKILL.md +135 -0
  29. package/dist/agents/skills/claude-code/api-api-keys/skill.yaml +41 -0
  30. package/dist/agents/skills/claude-code/api-authentication-patterns/SKILL.md +117 -0
  31. package/dist/agents/skills/claude-code/api-authentication-patterns/skill.yaml +44 -0
  32. package/dist/agents/skills/claude-code/api-backward-compatibility/SKILL.md +170 -0
  33. package/dist/agents/skills/claude-code/api-backward-compatibility/skill.yaml +39 -0
  34. package/dist/agents/skills/claude-code/api-bulk-operations/SKILL.md +198 -0
  35. package/dist/agents/skills/claude-code/api-bulk-operations/skill.yaml +39 -0
  36. package/dist/agents/skills/claude-code/api-conditional-requests/SKILL.md +233 -0
  37. package/dist/agents/skills/claude-code/api-conditional-requests/skill.yaml +41 -0
  38. package/dist/agents/skills/claude-code/api-content-negotiation/SKILL.md +194 -0
  39. package/dist/agents/skills/claude-code/api-content-negotiation/skill.yaml +39 -0
  40. package/dist/agents/skills/claude-code/api-contract-testing/SKILL.md +222 -0
  41. package/dist/agents/skills/claude-code/api-contract-testing/skill.yaml +42 -0
  42. package/dist/agents/skills/claude-code/api-deprecation-strategy/SKILL.md +156 -0
  43. package/dist/agents/skills/claude-code/api-deprecation-strategy/skill.yaml +39 -0
  44. package/dist/agents/skills/claude-code/api-error-contracts/SKILL.md +149 -0
  45. package/dist/agents/skills/claude-code/api-error-contracts/skill.yaml +40 -0
  46. package/dist/agents/skills/claude-code/api-field-selection/SKILL.md +193 -0
  47. package/dist/agents/skills/claude-code/api-field-selection/skill.yaml +39 -0
  48. package/dist/agents/skills/claude-code/api-filtering-sorting/SKILL.md +170 -0
  49. package/dist/agents/skills/claude-code/api-filtering-sorting/skill.yaml +40 -0
  50. package/dist/agents/skills/claude-code/api-hateoas/SKILL.md +212 -0
  51. package/dist/agents/skills/claude-code/api-hateoas/skill.yaml +40 -0
  52. package/dist/agents/skills/claude-code/api-http-caching/SKILL.md +188 -0
  53. package/dist/agents/skills/claude-code/api-http-caching/skill.yaml +43 -0
  54. package/dist/agents/skills/claude-code/api-http-methods/SKILL.md +185 -0
  55. package/dist/agents/skills/claude-code/api-http-methods/skill.yaml +43 -0
  56. package/dist/agents/skills/claude-code/api-idempotency-keys/SKILL.md +176 -0
  57. package/dist/agents/skills/claude-code/api-idempotency-keys/skill.yaml +40 -0
  58. package/dist/agents/skills/claude-code/api-long-running-operations/SKILL.md +209 -0
  59. package/dist/agents/skills/claude-code/api-long-running-operations/skill.yaml +40 -0
  60. package/dist/agents/skills/claude-code/api-nested-vs-flat/SKILL.md +173 -0
  61. package/dist/agents/skills/claude-code/api-nested-vs-flat/skill.yaml +39 -0
  62. package/dist/agents/skills/claude-code/api-oauth2-flows/SKILL.md +150 -0
  63. package/dist/agents/skills/claude-code/api-oauth2-flows/skill.yaml +42 -0
  64. package/dist/agents/skills/claude-code/api-openapi-design/SKILL.md +260 -0
  65. package/dist/agents/skills/claude-code/api-openapi-design/skill.yaml +44 -0
  66. package/dist/agents/skills/claude-code/api-pagination-cursor/SKILL.md +159 -0
  67. package/dist/agents/skills/claude-code/api-pagination-cursor/skill.yaml +40 -0
  68. package/dist/agents/skills/claude-code/api-pagination-keyset/SKILL.md +167 -0
  69. package/dist/agents/skills/claude-code/api-pagination-keyset/skill.yaml +39 -0
  70. package/dist/agents/skills/claude-code/api-pagination-offset/SKILL.md +135 -0
  71. package/dist/agents/skills/claude-code/api-pagination-offset/skill.yaml +39 -0
  72. package/dist/agents/skills/claude-code/api-problem-details-rfc/SKILL.md +164 -0
  73. package/dist/agents/skills/claude-code/api-problem-details-rfc/skill.yaml +38 -0
  74. package/dist/agents/skills/claude-code/api-rate-limit-headers/SKILL.md +144 -0
  75. package/dist/agents/skills/claude-code/api-rate-limit-headers/skill.yaml +39 -0
  76. package/dist/agents/skills/claude-code/api-rate-limiting/SKILL.md +131 -0
  77. package/dist/agents/skills/claude-code/api-rate-limiting/skill.yaml +41 -0
  78. package/dist/agents/skills/claude-code/api-resource-granularity/SKILL.md +165 -0
  79. package/dist/agents/skills/claude-code/api-resource-granularity/skill.yaml +40 -0
  80. package/dist/agents/skills/claude-code/api-resource-modeling/SKILL.md +155 -0
  81. package/dist/agents/skills/claude-code/api-resource-modeling/skill.yaml +40 -0
  82. package/dist/agents/skills/claude-code/api-rest-maturity-model/SKILL.md +215 -0
  83. package/dist/agents/skills/claude-code/api-rest-maturity-model/skill.yaml +39 -0
  84. package/dist/agents/skills/claude-code/api-retry-guidance/SKILL.md +168 -0
  85. package/dist/agents/skills/claude-code/api-retry-guidance/skill.yaml +41 -0
  86. package/dist/agents/skills/claude-code/api-sdk-ergonomics/SKILL.md +194 -0
  87. package/dist/agents/skills/claude-code/api-sdk-ergonomics/skill.yaml +43 -0
  88. package/dist/agents/skills/claude-code/api-status-codes/SKILL.md +196 -0
  89. package/dist/agents/skills/claude-code/api-status-codes/skill.yaml +46 -0
  90. package/dist/agents/skills/claude-code/api-validation-errors/SKILL.md +174 -0
  91. package/dist/agents/skills/claude-code/api-validation-errors/skill.yaml +40 -0
  92. package/dist/agents/skills/claude-code/api-versioning-header/SKILL.md +177 -0
  93. package/dist/agents/skills/claude-code/api-versioning-header/skill.yaml +37 -0
  94. package/dist/agents/skills/claude-code/api-versioning-url/SKILL.md +128 -0
  95. package/dist/agents/skills/claude-code/api-versioning-url/skill.yaml +39 -0
  96. package/dist/agents/skills/claude-code/api-webhook-design/SKILL.md +165 -0
  97. package/dist/agents/skills/claude-code/api-webhook-design/skill.yaml +41 -0
  98. package/dist/agents/skills/claude-code/api-webhook-security/SKILL.md +176 -0
  99. package/dist/agents/skills/claude-code/api-webhook-security/skill.yaml +41 -0
  100. package/dist/agents/skills/claude-code/astro-component-pattern/skill.yaml +1 -0
  101. package/dist/agents/skills/claude-code/astro-content-collections/skill.yaml +1 -0
  102. package/dist/agents/skills/claude-code/astro-deployment-config/skill.yaml +1 -0
  103. package/dist/agents/skills/claude-code/astro-image-optimization/skill.yaml +1 -0
  104. package/dist/agents/skills/claude-code/astro-integration-pattern/skill.yaml +1 -0
  105. package/dist/agents/skills/claude-code/astro-islands-architecture/skill.yaml +1 -0
  106. package/dist/agents/skills/claude-code/astro-multi-framework/skill.yaml +1 -0
  107. package/dist/agents/skills/claude-code/astro-routing-pattern/skill.yaml +1 -0
  108. package/dist/agents/skills/claude-code/astro-server-endpoints/skill.yaml +1 -0
  109. package/dist/agents/skills/claude-code/astro-ssr-hybrid/skill.yaml +1 -0
  110. package/dist/agents/skills/claude-code/astro-view-transitions/skill.yaml +1 -0
  111. package/dist/agents/skills/claude-code/check-mechanical-constraints/skill.yaml +1 -0
  112. package/dist/agents/skills/claude-code/cleanup-dead-code/skill.yaml +1 -0
  113. package/dist/agents/skills/claude-code/css-animation-pattern/skill.yaml +1 -0
  114. package/dist/agents/skills/claude-code/css-component-variants/skill.yaml +1 -0
  115. package/dist/agents/skills/claude-code/css-css-modules/skill.yaml +1 -0
  116. package/dist/agents/skills/claude-code/css-custom-components/skill.yaml +1 -0
  117. package/dist/agents/skills/claude-code/css-dark-mode/skill.yaml +1 -0
  118. package/dist/agents/skills/claude-code/css-design-tokens/skill.yaml +1 -0
  119. package/dist/agents/skills/claude-code/css-headless-ui/skill.yaml +1 -0
  120. package/dist/agents/skills/claude-code/css-layout-patterns/skill.yaml +1 -0
  121. package/dist/agents/skills/claude-code/css-performance-patterns/skill.yaml +6 -0
  122. package/dist/agents/skills/claude-code/css-responsive-design/skill.yaml +1 -0
  123. package/dist/agents/skills/claude-code/css-tailwind-merge/skill.yaml +1 -0
  124. package/dist/agents/skills/claude-code/css-tailwind-pattern/skill.yaml +1 -0
  125. package/dist/agents/skills/claude-code/db-acid-in-practice/SKILL.md +215 -0
  126. package/dist/agents/skills/claude-code/db-acid-in-practice/skill.yaml +38 -0
  127. package/dist/agents/skills/claude-code/db-acid-properties/SKILL.md +190 -0
  128. package/dist/agents/skills/claude-code/db-acid-properties/skill.yaml +38 -0
  129. package/dist/agents/skills/claude-code/db-adjacency-list/SKILL.md +199 -0
  130. package/dist/agents/skills/claude-code/db-adjacency-list/skill.yaml +40 -0
  131. package/dist/agents/skills/claude-code/db-audit-trail/SKILL.md +244 -0
  132. package/dist/agents/skills/claude-code/db-audit-trail/skill.yaml +41 -0
  133. package/dist/agents/skills/claude-code/db-btree-index/SKILL.md +182 -0
  134. package/dist/agents/skills/claude-code/db-btree-index/skill.yaml +44 -0
  135. package/dist/agents/skills/claude-code/db-cap-theorem/SKILL.md +156 -0
  136. package/dist/agents/skills/claude-code/db-cap-theorem/skill.yaml +38 -0
  137. package/dist/agents/skills/claude-code/db-closure-table/SKILL.md +197 -0
  138. package/dist/agents/skills/claude-code/db-closure-table/skill.yaml +38 -0
  139. package/dist/agents/skills/claude-code/db-composite-index/SKILL.md +199 -0
  140. package/dist/agents/skills/claude-code/db-composite-index/skill.yaml +41 -0
  141. package/dist/agents/skills/claude-code/db-connection-pooling/SKILL.md +196 -0
  142. package/dist/agents/skills/claude-code/db-connection-pooling/skill.yaml +39 -0
  143. package/dist/agents/skills/claude-code/db-connection-sizing/SKILL.md +236 -0
  144. package/dist/agents/skills/claude-code/db-connection-sizing/skill.yaml +38 -0
  145. package/dist/agents/skills/claude-code/db-covering-index/SKILL.md +203 -0
  146. package/dist/agents/skills/claude-code/db-covering-index/skill.yaml +40 -0
  147. package/dist/agents/skills/claude-code/db-deadlock-prevention/SKILL.md +204 -0
  148. package/dist/agents/skills/claude-code/db-deadlock-prevention/skill.yaml +41 -0
  149. package/dist/agents/skills/claude-code/db-denormalization/SKILL.md +176 -0
  150. package/dist/agents/skills/claude-code/db-denormalization/skill.yaml +38 -0
  151. package/dist/agents/skills/claude-code/db-document-in-relational/SKILL.md +225 -0
  152. package/dist/agents/skills/claude-code/db-document-in-relational/skill.yaml +42 -0
  153. package/dist/agents/skills/claude-code/db-entity-attribute-value/SKILL.md +186 -0
  154. package/dist/agents/skills/claude-code/db-entity-attribute-value/skill.yaml +39 -0
  155. package/dist/agents/skills/claude-code/db-eventual-consistency/SKILL.md +226 -0
  156. package/dist/agents/skills/claude-code/db-eventual-consistency/skill.yaml +38 -0
  157. package/dist/agents/skills/claude-code/db-expand-contract/SKILL.md +199 -0
  158. package/dist/agents/skills/claude-code/db-expand-contract/skill.yaml +40 -0
  159. package/dist/agents/skills/claude-code/db-explain-reading/SKILL.md +213 -0
  160. package/dist/agents/skills/claude-code/db-explain-reading/skill.yaml +44 -0
  161. package/dist/agents/skills/claude-code/db-expression-index/SKILL.md +211 -0
  162. package/dist/agents/skills/claude-code/db-expression-index/skill.yaml +40 -0
  163. package/dist/agents/skills/claude-code/db-first-normal-form/SKILL.md +190 -0
  164. package/dist/agents/skills/claude-code/db-first-normal-form/skill.yaml +38 -0
  165. package/dist/agents/skills/claude-code/db-graph-in-relational/SKILL.md +212 -0
  166. package/dist/agents/skills/claude-code/db-graph-in-relational/skill.yaml +41 -0
  167. package/dist/agents/skills/claude-code/db-hash-index/SKILL.md +176 -0
  168. package/dist/agents/skills/claude-code/db-hash-index/skill.yaml +37 -0
  169. package/dist/agents/skills/claude-code/db-hierarchical-data/SKILL.md +194 -0
  170. package/dist/agents/skills/claude-code/db-hierarchical-data/skill.yaml +41 -0
  171. package/dist/agents/skills/claude-code/db-horizontal-sharding/SKILL.md +228 -0
  172. package/dist/agents/skills/claude-code/db-horizontal-sharding/skill.yaml +40 -0
  173. package/dist/agents/skills/claude-code/db-isolation-levels/SKILL.md +158 -0
  174. package/dist/agents/skills/claude-code/db-isolation-levels/skill.yaml +43 -0
  175. package/dist/agents/skills/claude-code/db-isolation-selection/SKILL.md +160 -0
  176. package/dist/agents/skills/claude-code/db-isolation-selection/skill.yaml +41 -0
  177. package/dist/agents/skills/claude-code/db-migration-rollback/SKILL.md +223 -0
  178. package/dist/agents/skills/claude-code/db-migration-rollback/skill.yaml +40 -0
  179. package/dist/agents/skills/claude-code/db-mvcc/SKILL.md +191 -0
  180. package/dist/agents/skills/claude-code/db-mvcc/skill.yaml +45 -0
  181. package/dist/agents/skills/claude-code/db-nested-sets/SKILL.md +171 -0
  182. package/dist/agents/skills/claude-code/db-nested-sets/skill.yaml +38 -0
  183. package/dist/agents/skills/claude-code/db-optimistic-locking/SKILL.md +151 -0
  184. package/dist/agents/skills/claude-code/db-optimistic-locking/skill.yaml +44 -0
  185. package/dist/agents/skills/claude-code/db-partial-index/SKILL.md +196 -0
  186. package/dist/agents/skills/claude-code/db-partial-index/skill.yaml +39 -0
  187. package/dist/agents/skills/claude-code/db-pessimistic-locking/SKILL.md +158 -0
  188. package/dist/agents/skills/claude-code/db-pessimistic-locking/skill.yaml +44 -0
  189. package/dist/agents/skills/claude-code/db-polymorphic-associations/SKILL.md +187 -0
  190. package/dist/agents/skills/claude-code/db-polymorphic-associations/skill.yaml +42 -0
  191. package/dist/agents/skills/claude-code/db-query-rewriting/SKILL.md +249 -0
  192. package/dist/agents/skills/claude-code/db-query-rewriting/skill.yaml +43 -0
  193. package/dist/agents/skills/claude-code/db-query-statistics/SKILL.md +210 -0
  194. package/dist/agents/skills/claude-code/db-query-statistics/skill.yaml +41 -0
  195. package/dist/agents/skills/claude-code/db-read-phenomena/SKILL.md +205 -0
  196. package/dist/agents/skills/claude-code/db-read-phenomena/skill.yaml +42 -0
  197. package/dist/agents/skills/claude-code/db-scan-types/SKILL.md +248 -0
  198. package/dist/agents/skills/claude-code/db-scan-types/skill.yaml +41 -0
  199. package/dist/agents/skills/claude-code/db-second-normal-form/SKILL.md +183 -0
  200. package/dist/agents/skills/claude-code/db-second-normal-form/skill.yaml +38 -0
  201. package/dist/agents/skills/claude-code/db-table-partitioning/SKILL.md +229 -0
  202. package/dist/agents/skills/claude-code/db-table-partitioning/skill.yaml +39 -0
  203. package/dist/agents/skills/claude-code/db-temporal-data/SKILL.md +194 -0
  204. package/dist/agents/skills/claude-code/db-temporal-data/skill.yaml +41 -0
  205. package/dist/agents/skills/claude-code/db-third-normal-form/SKILL.md +210 -0
  206. package/dist/agents/skills/claude-code/db-third-normal-form/skill.yaml +38 -0
  207. package/dist/agents/skills/claude-code/db-time-series/SKILL.md +196 -0
  208. package/dist/agents/skills/claude-code/db-time-series/skill.yaml +41 -0
  209. package/dist/agents/skills/claude-code/db-vertical-partitioning/SKILL.md +249 -0
  210. package/dist/agents/skills/claude-code/db-vertical-partitioning/skill.yaml +40 -0
  211. package/dist/agents/skills/claude-code/db-zero-downtime-migration/SKILL.md +199 -0
  212. package/dist/agents/skills/claude-code/db-zero-downtime-migration/skill.yaml +42 -0
  213. package/dist/agents/skills/claude-code/design-affordances/skill.yaml +1 -0
  214. package/dist/agents/skills/claude-code/design-alignment/skill.yaml +1 -0
  215. package/dist/agents/skills/claude-code/design-apple-hig/skill.yaml +1 -0
  216. package/dist/agents/skills/claude-code/design-atomic-design/skill.yaml +1 -0
  217. package/dist/agents/skills/claude-code/design-brand-consistency/skill.yaml +1 -0
  218. package/dist/agents/skills/claude-code/design-color-accessibility/skill.yaml +1 -0
  219. package/dist/agents/skills/claude-code/design-color-harmony/skill.yaml +1 -0
  220. package/dist/agents/skills/claude-code/design-color-psychology/skill.yaml +1 -0
  221. package/dist/agents/skills/claude-code/design-component-anatomy/skill.yaml +1 -0
  222. package/dist/agents/skills/claude-code/design-consistency/skill.yaml +1 -0
  223. package/dist/agents/skills/claude-code/design-content-density/skill.yaml +1 -0
  224. package/dist/agents/skills/claude-code/design-contrast-ratio/skill.yaml +1 -0
  225. package/dist/agents/skills/claude-code/design-dark-mode-color/skill.yaml +1 -0
  226. package/dist/agents/skills/claude-code/design-data-viz-design/skill.yaml +1 -0
  227. package/dist/agents/skills/claude-code/design-design-audit/skill.yaml +1 -0
  228. package/dist/agents/skills/claude-code/design-design-critique/skill.yaml +1 -0
  229. package/dist/agents/skills/claude-code/design-design-documentation/skill.yaml +1 -0
  230. package/dist/agents/skills/claude-code/design-design-governance/skill.yaml +1 -0
  231. package/dist/agents/skills/claude-code/design-elevation-shadow/skill.yaml +1 -0
  232. package/dist/agents/skills/claude-code/design-empty-error-states/skill.yaml +3 -0
  233. package/dist/agents/skills/claude-code/design-feedback-patterns/skill.yaml +5 -0
  234. package/dist/agents/skills/claude-code/design-fluent-design/skill.yaml +1 -0
  235. package/dist/agents/skills/claude-code/design-font-pairing/skill.yaml +1 -0
  236. package/dist/agents/skills/claude-code/design-form-ux/skill.yaml +2 -0
  237. package/dist/agents/skills/claude-code/design-gestalt-closure-continuity/skill.yaml +1 -0
  238. package/dist/agents/skills/claude-code/design-gestalt-common-fate/skill.yaml +1 -0
  239. package/dist/agents/skills/claude-code/design-gestalt-figure-ground/skill.yaml +1 -0
  240. package/dist/agents/skills/claude-code/design-gestalt-proximity/skill.yaml +1 -0
  241. package/dist/agents/skills/claude-code/design-gestalt-similarity/skill.yaml +1 -0
  242. package/dist/agents/skills/claude-code/design-grid-systems/skill.yaml +1 -0
  243. package/dist/agents/skills/claude-code/design-i18n-design/skill.yaml +2 -0
  244. package/dist/agents/skills/claude-code/design-iconography/skill.yaml +1 -0
  245. package/dist/agents/skills/claude-code/design-illustration-style/skill.yaml +1 -0
  246. package/dist/agents/skills/claude-code/design-imagery-photography/skill.yaml +1 -0
  247. package/dist/agents/skills/claude-code/design-information-architecture/skill.yaml +3 -0
  248. package/dist/agents/skills/claude-code/design-loading-patterns/skill.yaml +2 -0
  249. package/dist/agents/skills/claude-code/design-material-design-3/skill.yaml +1 -0
  250. package/dist/agents/skills/claude-code/design-micro-interactions/skill.yaml +1 -0
  251. package/dist/agents/skills/claude-code/design-motion-principles/skill.yaml +1 -0
  252. package/dist/agents/skills/claude-code/design-naming-conventions/skill.yaml +1 -0
  253. package/dist/agents/skills/claude-code/design-navigation-ux/skill.yaml +2 -0
  254. package/dist/agents/skills/claude-code/design-palette-construction/skill.yaml +1 -0
  255. package/dist/agents/skills/claude-code/design-parallax-scroll/skill.yaml +1 -0
  256. package/dist/agents/skills/claude-code/design-readability/skill.yaml +3 -0
  257. package/dist/agents/skills/claude-code/design-responsive-strategy/skill.yaml +1 -0
  258. package/dist/agents/skills/claude-code/design-responsive-type/skill.yaml +1 -0
  259. package/dist/agents/skills/claude-code/design-state-design/skill.yaml +1 -0
  260. package/dist/agents/skills/claude-code/design-token-architecture/skill.yaml +1 -0
  261. package/dist/agents/skills/claude-code/design-transitions-timing/skill.yaml +1 -0
  262. package/dist/agents/skills/claude-code/design-type-scale/skill.yaml +1 -0
  263. package/dist/agents/skills/claude-code/design-typographic-hierarchy/skill.yaml +1 -0
  264. package/dist/agents/skills/claude-code/design-typography-fundamentals/skill.yaml +1 -0
  265. package/dist/agents/skills/claude-code/design-visual-hierarchy/skill.yaml +1 -0
  266. package/dist/agents/skills/claude-code/design-web-fonts/skill.yaml +1 -0
  267. package/dist/agents/skills/claude-code/design-whitespace/skill.yaml +1 -0
  268. package/dist/agents/skills/claude-code/detect-doc-drift/skill.yaml +1 -0
  269. package/dist/agents/skills/claude-code/drizzle-filtering-pattern/skill.yaml +1 -0
  270. package/dist/agents/skills/claude-code/drizzle-migrations/skill.yaml +3 -0
  271. package/dist/agents/skills/claude-code/drizzle-performance-patterns/skill.yaml +8 -0
  272. package/dist/agents/skills/claude-code/drizzle-query-builder/skill.yaml +1 -0
  273. package/dist/agents/skills/claude-code/drizzle-raw-sql/skill.yaml +1 -0
  274. package/dist/agents/skills/claude-code/drizzle-relations-pattern/skill.yaml +1 -0
  275. package/dist/agents/skills/claude-code/drizzle-schema-definition/skill.yaml +4 -0
  276. package/dist/agents/skills/claude-code/drizzle-transactions/skill.yaml +4 -0
  277. package/dist/agents/skills/claude-code/drizzle-with-nextjs/skill.yaml +1 -0
  278. package/dist/agents/skills/claude-code/enforce-architecture/skill.yaml +1 -0
  279. package/dist/agents/skills/claude-code/events-event-schema/skill.yaml +1 -0
  280. package/dist/agents/skills/claude-code/events-event-storming/skill.yaml +1 -0
  281. package/dist/agents/skills/claude-code/events-idempotency/SKILL.md +1 -0
  282. package/dist/agents/skills/claude-code/events-idempotency/skill.yaml +2 -0
  283. package/dist/agents/skills/claude-code/events-kafka-patterns/skill.yaml +1 -0
  284. package/dist/agents/skills/claude-code/events-message-queue/skill.yaml +1 -0
  285. package/dist/agents/skills/claude-code/events-outbox-pattern/skill.yaml +1 -0
  286. package/dist/agents/skills/claude-code/events-pubsub-pattern/skill.yaml +1 -0
  287. package/dist/agents/skills/claude-code/events-redis-pubsub/skill.yaml +1 -0
  288. package/dist/agents/skills/claude-code/events-saga-choreography/skill.yaml +1 -0
  289. package/dist/agents/skills/claude-code/events-sse-pattern/skill.yaml +1 -0
  290. package/dist/agents/skills/claude-code/events-webhooks-pattern/SKILL.md +1 -0
  291. package/dist/agents/skills/claude-code/events-webhooks-pattern/skill.yaml +3 -0
  292. package/dist/agents/skills/claude-code/events-websocket-pattern/skill.yaml +1 -0
  293. package/dist/agents/skills/claude-code/gof-abstract-factory/skill.yaml +1 -0
  294. package/dist/agents/skills/claude-code/gof-adapter-pattern/skill.yaml +1 -0
  295. package/dist/agents/skills/claude-code/gof-bridge-pattern/skill.yaml +1 -0
  296. package/dist/agents/skills/claude-code/gof-builder-pattern/skill.yaml +1 -0
  297. package/dist/agents/skills/claude-code/gof-chain-of-responsibility/skill.yaml +1 -0
  298. package/dist/agents/skills/claude-code/gof-command-pattern/skill.yaml +1 -0
  299. package/dist/agents/skills/claude-code/gof-composite-pattern/skill.yaml +1 -0
  300. package/dist/agents/skills/claude-code/gof-decorator-pattern/skill.yaml +1 -0
  301. package/dist/agents/skills/claude-code/gof-facade-pattern/skill.yaml +1 -0
  302. package/dist/agents/skills/claude-code/gof-factory-method/skill.yaml +1 -0
  303. package/dist/agents/skills/claude-code/gof-flyweight-pattern/skill.yaml +1 -0
  304. package/dist/agents/skills/claude-code/gof-iterator-pattern/skill.yaml +1 -0
  305. package/dist/agents/skills/claude-code/gof-mediator-pattern/skill.yaml +1 -0
  306. package/dist/agents/skills/claude-code/gof-memento-pattern/skill.yaml +1 -0
  307. package/dist/agents/skills/claude-code/gof-null-object/skill.yaml +1 -0
  308. package/dist/agents/skills/claude-code/gof-observer-pattern/skill.yaml +1 -0
  309. package/dist/agents/skills/claude-code/gof-prototype-pattern/skill.yaml +1 -0
  310. package/dist/agents/skills/claude-code/gof-proxy-pattern/skill.yaml +1 -0
  311. package/dist/agents/skills/claude-code/gof-singleton/skill.yaml +1 -0
  312. package/dist/agents/skills/claude-code/gof-state-pattern/skill.yaml +1 -0
  313. package/dist/agents/skills/claude-code/gof-strategy-pattern/skill.yaml +1 -0
  314. package/dist/agents/skills/claude-code/gof-template-method/skill.yaml +1 -0
  315. package/dist/agents/skills/claude-code/gof-visitor-pattern/skill.yaml +1 -0
  316. package/dist/agents/skills/claude-code/graphql-apollo-server/skill.yaml +1 -0
  317. package/dist/agents/skills/claude-code/graphql-auth-patterns/SKILL.md +1 -0
  318. package/dist/agents/skills/claude-code/graphql-auth-patterns/skill.yaml +3 -0
  319. package/dist/agents/skills/claude-code/graphql-client-patterns/skill.yaml +1 -0
  320. package/dist/agents/skills/claude-code/graphql-codegen-pattern/skill.yaml +1 -0
  321. package/dist/agents/skills/claude-code/graphql-dataloader-pattern/skill.yaml +1 -0
  322. package/dist/agents/skills/claude-code/graphql-error-handling/SKILL.md +1 -0
  323. package/dist/agents/skills/claude-code/graphql-error-handling/skill.yaml +3 -0
  324. package/dist/agents/skills/claude-code/graphql-federation-pattern/skill.yaml +1 -0
  325. package/dist/agents/skills/claude-code/graphql-pagination-patterns/SKILL.md +1 -0
  326. package/dist/agents/skills/claude-code/graphql-pagination-patterns/skill.yaml +4 -0
  327. package/dist/agents/skills/claude-code/graphql-performance-patterns/skill.yaml +6 -0
  328. package/dist/agents/skills/claude-code/graphql-resolver-pattern/skill.yaml +1 -0
  329. package/dist/agents/skills/claude-code/graphql-schema-design/SKILL.md +1 -0
  330. package/dist/agents/skills/claude-code/graphql-schema-design/skill.yaml +3 -0
  331. package/dist/agents/skills/claude-code/graphql-subscriptions/skill.yaml +1 -0
  332. package/dist/agents/skills/claude-code/harness-accessibility/skill.yaml +1 -0
  333. package/dist/agents/skills/claude-code/harness-api-design/skill.yaml +1 -0
  334. package/dist/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +1 -0
  335. package/dist/agents/skills/claude-code/harness-auth/skill.yaml +1 -0
  336. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +171 -822
  337. package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +1 -0
  338. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +145 -195
  339. package/dist/agents/skills/claude-code/harness-brainstorming/skill.yaml +4 -0
  340. package/dist/agents/skills/claude-code/harness-caching/skill.yaml +1 -0
  341. package/dist/agents/skills/claude-code/harness-chaos/skill.yaml +1 -0
  342. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +267 -436
  343. package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +7 -0
  344. package/dist/agents/skills/claude-code/harness-codebase-cleanup/skill.yaml +1 -0
  345. package/dist/agents/skills/claude-code/harness-compliance/skill.yaml +1 -0
  346. package/dist/agents/skills/claude-code/harness-containerization/skill.yaml +1 -0
  347. package/dist/agents/skills/claude-code/harness-data-pipeline/skill.yaml +1 -0
  348. package/dist/agents/skills/claude-code/harness-data-validation/skill.yaml +1 -0
  349. package/dist/agents/skills/claude-code/harness-database/skill.yaml +1 -0
  350. package/dist/agents/skills/claude-code/harness-debugging/skill.yaml +1 -0
  351. package/dist/agents/skills/claude-code/harness-dependency-health/skill.yaml +1 -0
  352. package/dist/agents/skills/claude-code/harness-deployment/skill.yaml +1 -0
  353. package/dist/agents/skills/claude-code/harness-design/skill.yaml +1 -0
  354. package/dist/agents/skills/claude-code/harness-design-mobile/skill.yaml +1 -0
  355. package/dist/agents/skills/claude-code/harness-design-system/skill.yaml +1 -0
  356. package/dist/agents/skills/claude-code/harness-design-web/skill.yaml +1 -0
  357. package/dist/agents/skills/claude-code/harness-diagnostics/skill.yaml +1 -0
  358. package/dist/agents/skills/claude-code/harness-docs-pipeline/skill.yaml +1 -0
  359. package/dist/agents/skills/claude-code/harness-dx/skill.yaml +1 -0
  360. package/dist/agents/skills/claude-code/harness-e2e/skill.yaml +1 -0
  361. package/dist/agents/skills/claude-code/harness-event-driven/skill.yaml +1 -0
  362. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +180 -271
  363. package/dist/agents/skills/claude-code/harness-execution/skill.yaml +13 -0
  364. package/dist/agents/skills/claude-code/harness-feature-flags/skill.yaml +1 -0
  365. package/dist/agents/skills/claude-code/harness-git-workflow/skill.yaml +1 -0
  366. package/dist/agents/skills/claude-code/harness-hotspot-detector/skill.yaml +1 -0
  367. package/dist/agents/skills/claude-code/harness-i18n/skill.yaml +1 -0
  368. package/dist/agents/skills/claude-code/harness-i18n-process/skill.yaml +1 -0
  369. package/dist/agents/skills/claude-code/harness-i18n-workflow/skill.yaml +1 -0
  370. package/dist/agents/skills/claude-code/harness-impact-analysis/skill.yaml +1 -0
  371. package/dist/agents/skills/claude-code/harness-incident-response/skill.yaml +1 -0
  372. package/dist/agents/skills/claude-code/harness-infrastructure-as-code/skill.yaml +1 -0
  373. package/dist/agents/skills/claude-code/harness-integration-test/skill.yaml +1 -0
  374. package/dist/agents/skills/claude-code/harness-integrity/skill.yaml +1 -0
  375. package/dist/agents/skills/claude-code/harness-knowledge-mapper/skill.yaml +1 -0
  376. package/dist/agents/skills/claude-code/harness-load-testing/skill.yaml +1 -0
  377. package/dist/agents/skills/claude-code/harness-ml-ops/skill.yaml +1 -0
  378. package/dist/agents/skills/claude-code/harness-mobile-patterns/skill.yaml +1 -0
  379. package/dist/agents/skills/claude-code/harness-mutation-test/skill.yaml +1 -0
  380. package/dist/agents/skills/claude-code/harness-observability/skill.yaml +1 -0
  381. package/dist/agents/skills/claude-code/harness-onboarding/skill.yaml +1 -0
  382. package/dist/agents/skills/claude-code/harness-parallel-agents/skill.yaml +1 -0
  383. package/dist/agents/skills/claude-code/harness-perf/skill.yaml +1 -0
  384. package/dist/agents/skills/claude-code/harness-perf-tdd/skill.yaml +1 -0
  385. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +142 -322
  386. package/dist/agents/skills/claude-code/harness-planning/skill.yaml +7 -0
  387. package/dist/agents/skills/claude-code/harness-pre-commit-review/skill.yaml +1 -0
  388. package/dist/agents/skills/claude-code/harness-product-spec/skill.yaml +1 -0
  389. package/dist/agents/skills/claude-code/harness-property-test/skill.yaml +1 -0
  390. package/dist/agents/skills/claude-code/harness-refactoring/skill.yaml +1 -0
  391. package/dist/agents/skills/claude-code/harness-release-readiness/skill.yaml +1 -0
  392. package/dist/agents/skills/claude-code/harness-resilience/skill.yaml +1 -0
  393. package/dist/agents/skills/claude-code/harness-roadmap/skill.yaml +1 -0
  394. package/dist/agents/skills/claude-code/harness-roadmap-pilot/skill.yaml +1 -0
  395. package/dist/agents/skills/claude-code/harness-router/SKILL.md +69 -123
  396. package/dist/agents/skills/claude-code/harness-router/skill.yaml +1 -0
  397. package/dist/agents/skills/claude-code/harness-secrets/SKILL.md +3 -3
  398. package/dist/agents/skills/claude-code/harness-secrets/skill.yaml +1 -0
  399. package/dist/agents/skills/claude-code/harness-security-review/skill.yaml +6 -0
  400. package/dist/agents/skills/claude-code/harness-security-scan/skill.yaml +7 -0
  401. package/dist/agents/skills/claude-code/harness-skill-authoring/skill.yaml +1 -0
  402. package/dist/agents/skills/claude-code/harness-soundness-review/SKILL.md +483 -667
  403. package/dist/agents/skills/claude-code/harness-soundness-review/skill.yaml +1 -0
  404. package/dist/agents/skills/claude-code/harness-sql-review/skill.yaml +1 -0
  405. package/dist/agents/skills/claude-code/harness-state-management/skill.yaml +1 -0
  406. package/dist/agents/skills/claude-code/harness-supply-chain-audit/skill.yaml +1 -0
  407. package/dist/agents/skills/claude-code/harness-tdd/skill.yaml +1 -0
  408. package/dist/agents/skills/claude-code/harness-test-advisor/skill.yaml +1 -0
  409. package/dist/agents/skills/claude-code/harness-test-data/skill.yaml +1 -0
  410. package/dist/agents/skills/claude-code/harness-ux-copy/skill.yaml +13 -0
  411. package/dist/agents/skills/claude-code/harness-verification/SKILL.md +135 -221
  412. package/dist/agents/skills/claude-code/harness-verification/skill.yaml +4 -0
  413. package/dist/agents/skills/claude-code/harness-verify/skill.yaml +1 -0
  414. package/dist/agents/skills/claude-code/harness-visual-regression/skill.yaml +1 -0
  415. package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +1 -0
  416. package/dist/agents/skills/claude-code/js-abstract-factory-pattern/skill.yaml +1 -0
  417. package/dist/agents/skills/claude-code/js-adapter-pattern/skill.yaml +1 -0
  418. package/dist/agents/skills/claude-code/js-bridge-pattern/skill.yaml +1 -0
  419. package/dist/agents/skills/claude-code/js-chain-of-responsibility-pattern/skill.yaml +1 -0
  420. package/dist/agents/skills/claude-code/js-command-pattern/skill.yaml +1 -0
  421. package/dist/agents/skills/claude-code/js-composite-pattern/skill.yaml +1 -0
  422. package/dist/agents/skills/claude-code/js-constructor-pattern/skill.yaml +1 -0
  423. package/dist/agents/skills/claude-code/js-decorator-pattern/skill.yaml +1 -0
  424. package/dist/agents/skills/claude-code/js-dynamic-import/skill.yaml +1 -0
  425. package/dist/agents/skills/claude-code/js-facade-pattern/skill.yaml +1 -0
  426. package/dist/agents/skills/claude-code/js-factory-pattern/skill.yaml +1 -0
  427. package/dist/agents/skills/claude-code/js-flyweight-pattern/skill.yaml +1 -0
  428. package/dist/agents/skills/claude-code/js-iterator-pattern/skill.yaml +1 -0
  429. package/dist/agents/skills/claude-code/js-mediator-middleware-pattern/skill.yaml +1 -0
  430. package/dist/agents/skills/claude-code/js-mixin-pattern/skill.yaml +1 -0
  431. package/dist/agents/skills/claude-code/js-module-pattern/skill.yaml +1 -0
  432. package/dist/agents/skills/claude-code/js-observer-pattern/skill.yaml +1 -0
  433. package/dist/agents/skills/claude-code/js-prototype-pattern/skill.yaml +1 -0
  434. package/dist/agents/skills/claude-code/js-provider-pattern/skill.yaml +1 -0
  435. package/dist/agents/skills/claude-code/js-proxy-pattern/skill.yaml +1 -0
  436. package/dist/agents/skills/claude-code/js-revealing-module-pattern/skill.yaml +1 -0
  437. package/dist/agents/skills/claude-code/js-singleton-pattern/skill.yaml +1 -0
  438. package/dist/agents/skills/claude-code/js-state-pattern/skill.yaml +1 -0
  439. package/dist/agents/skills/claude-code/js-static-import/skill.yaml +1 -0
  440. package/dist/agents/skills/claude-code/js-strategy-pattern/skill.yaml +1 -0
  441. package/dist/agents/skills/claude-code/js-template-method-pattern/skill.yaml +1 -0
  442. package/dist/agents/skills/claude-code/js-visitor-pattern/skill.yaml +1 -0
  443. package/dist/agents/skills/claude-code/microservices-api-gateway/skill.yaml +1 -0
  444. package/dist/agents/skills/claude-code/microservices-bulkhead-pattern/skill.yaml +1 -0
  445. package/dist/agents/skills/claude-code/microservices-circuit-breaker/skill.yaml +1 -0
  446. package/dist/agents/skills/claude-code/microservices-config-server/SKILL.md +1 -1
  447. package/dist/agents/skills/claude-code/microservices-config-server/skill.yaml +1 -0
  448. package/dist/agents/skills/claude-code/microservices-cqrs-pattern/skill.yaml +3 -0
  449. package/dist/agents/skills/claude-code/microservices-decomposition/skill.yaml +1 -0
  450. package/dist/agents/skills/claude-code/microservices-distributed-tracing/skill.yaml +1 -0
  451. package/dist/agents/skills/claude-code/microservices-event-sourcing/skill.yaml +3 -0
  452. package/dist/agents/skills/claude-code/microservices-health-check/skill.yaml +1 -0
  453. package/dist/agents/skills/claude-code/microservices-outbox-pattern/skill.yaml +1 -0
  454. package/dist/agents/skills/claude-code/microservices-saga-pattern/skill.yaml +1 -0
  455. package/dist/agents/skills/claude-code/microservices-service-discovery/skill.yaml +1 -0
  456. package/dist/agents/skills/claude-code/microservices-sidecar-pattern/skill.yaml +1 -0
  457. package/dist/agents/skills/claude-code/microservices-strangler-fig/skill.yaml +1 -0
  458. package/dist/agents/skills/claude-code/mobile-animation-patterns/skill.yaml +1 -0
  459. package/dist/agents/skills/claude-code/mobile-deployment-patterns/skill.yaml +1 -0
  460. package/dist/agents/skills/claude-code/mobile-expo-setup/skill.yaml +1 -0
  461. package/dist/agents/skills/claude-code/mobile-flatlist-patterns/skill.yaml +1 -0
  462. package/dist/agents/skills/claude-code/mobile-gesture-handling/skill.yaml +1 -0
  463. package/dist/agents/skills/claude-code/mobile-native-modules/skill.yaml +1 -0
  464. package/dist/agents/skills/claude-code/mobile-navigation-pattern/skill.yaml +1 -0
  465. package/dist/agents/skills/claude-code/mobile-network-patterns/skill.yaml +1 -0
  466. package/dist/agents/skills/claude-code/mobile-performance-patterns/skill.yaml +6 -0
  467. package/dist/agents/skills/claude-code/mobile-push-notifications/skill.yaml +1 -0
  468. package/dist/agents/skills/claude-code/mobile-storage-patterns/skill.yaml +1 -0
  469. package/dist/agents/skills/claude-code/mobile-testing-patterns/skill.yaml +1 -0
  470. package/dist/agents/skills/claude-code/nestjs-config-module/skill.yaml +1 -0
  471. package/dist/agents/skills/claude-code/nestjs-controller-pattern/skill.yaml +1 -0
  472. package/dist/agents/skills/claude-code/nestjs-dependency-injection/skill.yaml +1 -0
  473. package/dist/agents/skills/claude-code/nestjs-dto-validation/skill.yaml +1 -0
  474. package/dist/agents/skills/claude-code/nestjs-event-driven/skill.yaml +1 -0
  475. package/dist/agents/skills/claude-code/nestjs-exception-filters/skill.yaml +1 -0
  476. package/dist/agents/skills/claude-code/nestjs-graphql-integration/skill.yaml +1 -0
  477. package/dist/agents/skills/claude-code/nestjs-guards-pattern/skill.yaml +1 -0
  478. package/dist/agents/skills/claude-code/nestjs-interceptors-pattern/skill.yaml +1 -0
  479. package/dist/agents/skills/claude-code/nestjs-microservices/skill.yaml +1 -0
  480. package/dist/agents/skills/claude-code/nestjs-middleware-pattern/skill.yaml +1 -0
  481. package/dist/agents/skills/claude-code/nestjs-module-pattern/skill.yaml +1 -0
  482. package/dist/agents/skills/claude-code/nestjs-pipes-pattern/skill.yaml +1 -0
  483. package/dist/agents/skills/claude-code/nestjs-service-pattern/skill.yaml +1 -0
  484. package/dist/agents/skills/claude-code/nestjs-swagger-integration/skill.yaml +1 -0
  485. package/dist/agents/skills/claude-code/nestjs-testing-patterns/skill.yaml +1 -0
  486. package/dist/agents/skills/claude-code/next-app-router/skill.yaml +1 -0
  487. package/dist/agents/skills/claude-code/next-auth-patterns/skill.yaml +1 -0
  488. package/dist/agents/skills/claude-code/next-caching-strategies/skill.yaml +1 -0
  489. package/dist/agents/skills/claude-code/next-data-fetching/skill.yaml +1 -0
  490. package/dist/agents/skills/claude-code/next-deployment-optimization/skill.yaml +1 -0
  491. package/dist/agents/skills/claude-code/next-environment-config/skill.yaml +1 -0
  492. package/dist/agents/skills/claude-code/next-error-boundaries/skill.yaml +1 -0
  493. package/dist/agents/skills/claude-code/next-image-optimization/skill.yaml +1 -0
  494. package/dist/agents/skills/claude-code/next-metadata-api/skill.yaml +1 -0
  495. package/dist/agents/skills/claude-code/next-middleware-pattern/skill.yaml +1 -0
  496. package/dist/agents/skills/claude-code/next-monorepo-setup/skill.yaml +1 -0
  497. package/dist/agents/skills/claude-code/next-parallel-intercepting-routes/skill.yaml +1 -0
  498. package/dist/agents/skills/claude-code/next-route-handlers/skill.yaml +1 -0
  499. package/dist/agents/skills/claude-code/next-server-actions/skill.yaml +1 -0
  500. package/dist/agents/skills/claude-code/next-server-components/skill.yaml +1 -0
  501. package/dist/agents/skills/claude-code/next-static-generation/skill.yaml +1 -0
  502. package/dist/agents/skills/claude-code/next-streaming-suspense/skill.yaml +1 -0
  503. package/dist/agents/skills/claude-code/next-testing-patterns/skill.yaml +1 -0
  504. package/dist/agents/skills/claude-code/node-buffer-encoding/skill.yaml +1 -0
  505. package/dist/agents/skills/claude-code/node-child-process/skill.yaml +1 -0
  506. package/dist/agents/skills/claude-code/node-crypto-patterns/skill.yaml +1 -0
  507. package/dist/agents/skills/claude-code/node-environment-config/skill.yaml +1 -0
  508. package/dist/agents/skills/claude-code/node-error-handling/skill.yaml +1 -0
  509. package/dist/agents/skills/claude-code/node-esm-patterns/skill.yaml +1 -0
  510. package/dist/agents/skills/claude-code/node-event-emitter/skill.yaml +1 -0
  511. package/dist/agents/skills/claude-code/node-express-patterns/skill.yaml +1 -0
  512. package/dist/agents/skills/claude-code/node-fastify-patterns/skill.yaml +1 -0
  513. package/dist/agents/skills/claude-code/node-http-server/skill.yaml +1 -0
  514. package/dist/agents/skills/claude-code/node-path-fs-patterns/skill.yaml +1 -0
  515. package/dist/agents/skills/claude-code/node-performance-profiling/skill.yaml +6 -0
  516. package/dist/agents/skills/claude-code/node-streams-pattern/skill.yaml +1 -0
  517. package/dist/agents/skills/claude-code/node-testing-patterns/skill.yaml +1 -0
  518. package/dist/agents/skills/claude-code/node-worker-threads/skill.yaml +1 -0
  519. package/dist/agents/skills/claude-code/nuxt-auto-imports/skill.yaml +1 -0
  520. package/dist/agents/skills/claude-code/nuxt-composables-pattern/skill.yaml +1 -0
  521. package/dist/agents/skills/claude-code/nuxt-deployment-config/skill.yaml +1 -0
  522. package/dist/agents/skills/claude-code/nuxt-layouts-pages/skill.yaml +1 -0
  523. package/dist/agents/skills/claude-code/nuxt-middleware-pattern/skill.yaml +1 -0
  524. package/dist/agents/skills/claude-code/nuxt-modules-pattern/skill.yaml +1 -0
  525. package/dist/agents/skills/claude-code/nuxt-plugins-pattern/skill.yaml +1 -0
  526. package/dist/agents/skills/claude-code/nuxt-seo-metadata/skill.yaml +1 -0
  527. package/dist/agents/skills/claude-code/nuxt-server-routes/skill.yaml +1 -0
  528. package/dist/agents/skills/claude-code/nuxt-state-management/skill.yaml +1 -0
  529. package/dist/agents/skills/claude-code/nuxt-testing-patterns/skill.yaml +1 -0
  530. package/dist/agents/skills/claude-code/otel-context-propagation/skill.yaml +1 -0
  531. package/dist/agents/skills/claude-code/otel-custom-instrumentation/skill.yaml +1 -0
  532. package/dist/agents/skills/claude-code/otel-error-tracking/skill.yaml +1 -0
  533. package/dist/agents/skills/claude-code/otel-exporter-config/skill.yaml +1 -0
  534. package/dist/agents/skills/claude-code/otel-logging-pattern/skill.yaml +1 -0
  535. package/dist/agents/skills/claude-code/otel-metrics-pattern/skill.yaml +1 -0
  536. package/dist/agents/skills/claude-code/otel-nestjs-integration/skill.yaml +1 -0
  537. package/dist/agents/skills/claude-code/otel-nextjs-integration/skill.yaml +1 -0
  538. package/dist/agents/skills/claude-code/otel-performance-insights/skill.yaml +5 -0
  539. package/dist/agents/skills/claude-code/otel-sampling-strategies/skill.yaml +1 -0
  540. package/dist/agents/skills/claude-code/otel-sdk-setup/skill.yaml +1 -0
  541. package/dist/agents/skills/claude-code/otel-tracing-pattern/skill.yaml +1 -0
  542. package/dist/agents/skills/claude-code/owasp-auth-patterns/SKILL.md +1 -0
  543. package/dist/agents/skills/claude-code/owasp-auth-patterns/skill.yaml +8 -0
  544. package/dist/agents/skills/claude-code/owasp-cryptography/skill.yaml +6 -0
  545. package/dist/agents/skills/claude-code/owasp-csrf-protection/skill.yaml +3 -0
  546. package/dist/agents/skills/claude-code/owasp-dependency-security/skill.yaml +4 -0
  547. package/dist/agents/skills/claude-code/owasp-file-upload-security/skill.yaml +3 -0
  548. package/dist/agents/skills/claude-code/owasp-idor-prevention/skill.yaml +4 -0
  549. package/dist/agents/skills/claude-code/owasp-injection-prevention/skill.yaml +4 -0
  550. package/dist/agents/skills/claude-code/owasp-logging-monitoring/skill.yaml +5 -0
  551. package/dist/agents/skills/claude-code/owasp-rate-limiting/SKILL.md +1 -0
  552. package/dist/agents/skills/claude-code/owasp-rate-limiting/skill.yaml +5 -0
  553. package/dist/agents/skills/claude-code/owasp-secrets-management/SKILL.md +2 -1
  554. package/dist/agents/skills/claude-code/owasp-secrets-management/skill.yaml +5 -0
  555. package/dist/agents/skills/claude-code/owasp-security-headers/skill.yaml +4 -0
  556. package/dist/agents/skills/claude-code/owasp-xss-prevention/skill.yaml +3 -0
  557. package/dist/agents/skills/claude-code/perf-browser-cache/SKILL.md +151 -0
  558. package/dist/agents/skills/claude-code/perf-browser-cache/skill.yaml +39 -0
  559. package/dist/agents/skills/claude-code/perf-bundle-analysis/SKILL.md +217 -0
  560. package/dist/agents/skills/claude-code/perf-bundle-analysis/skill.yaml +37 -0
  561. package/dist/agents/skills/claude-code/perf-cache-invalidation/SKILL.md +228 -0
  562. package/dist/agents/skills/claude-code/perf-cache-invalidation/skill.yaml +38 -0
  563. package/dist/agents/skills/claude-code/perf-cdn-cache-control/SKILL.md +198 -0
  564. package/dist/agents/skills/claude-code/perf-cdn-cache-control/skill.yaml +40 -0
  565. package/dist/agents/skills/claude-code/perf-cdn-strategies/SKILL.md +161 -0
  566. package/dist/agents/skills/claude-code/perf-cdn-strategies/skill.yaml +40 -0
  567. package/dist/agents/skills/claude-code/perf-client-side-rendering/SKILL.md +245 -0
  568. package/dist/agents/skills/claude-code/perf-client-side-rendering/skill.yaml +40 -0
  569. package/dist/agents/skills/claude-code/perf-code-splitting/SKILL.md +185 -0
  570. package/dist/agents/skills/claude-code/perf-code-splitting/skill.yaml +39 -0
  571. package/dist/agents/skills/claude-code/perf-compression/SKILL.md +163 -0
  572. package/dist/agents/skills/claude-code/perf-compression/skill.yaml +38 -0
  573. package/dist/agents/skills/claude-code/perf-connection-costs/SKILL.md +165 -0
  574. package/dist/agents/skills/claude-code/perf-connection-costs/skill.yaml +40 -0
  575. package/dist/agents/skills/claude-code/perf-connection-pooling/SKILL.md +250 -0
  576. package/dist/agents/skills/claude-code/perf-connection-pooling/skill.yaml +38 -0
  577. package/dist/agents/skills/claude-code/perf-critical-rendering-path/SKILL.md +167 -0
  578. package/dist/agents/skills/claude-code/perf-critical-rendering-path/skill.yaml +39 -0
  579. package/dist/agents/skills/claude-code/perf-cumulative-layout-shift/SKILL.md +180 -0
  580. package/dist/agents/skills/claude-code/perf-cumulative-layout-shift/skill.yaml +40 -0
  581. package/dist/agents/skills/claude-code/perf-dom-parsing/SKILL.md +153 -0
  582. package/dist/agents/skills/claude-code/perf-dom-parsing/skill.yaml +36 -0
  583. package/dist/agents/skills/claude-code/perf-edge-rendering/SKILL.md +222 -0
  584. package/dist/agents/skills/claude-code/perf-edge-rendering/skill.yaml +39 -0
  585. package/dist/agents/skills/claude-code/perf-event-loop/SKILL.md +203 -0
  586. package/dist/agents/skills/claude-code/perf-event-loop/skill.yaml +38 -0
  587. package/dist/agents/skills/claude-code/perf-font-loading/SKILL.md +222 -0
  588. package/dist/agents/skills/claude-code/perf-font-loading/skill.yaml +39 -0
  589. package/dist/agents/skills/claude-code/perf-garbage-collection/SKILL.md +192 -0
  590. package/dist/agents/skills/claude-code/perf-garbage-collection/skill.yaml +40 -0
  591. package/dist/agents/skills/claude-code/perf-heap-profiling/SKILL.md +160 -0
  592. package/dist/agents/skills/claude-code/perf-heap-profiling/skill.yaml +38 -0
  593. package/dist/agents/skills/claude-code/perf-http2-multiplexing/SKILL.md +163 -0
  594. package/dist/agents/skills/claude-code/perf-http2-multiplexing/skill.yaml +38 -0
  595. package/dist/agents/skills/claude-code/perf-http3-quic/SKILL.md +165 -0
  596. package/dist/agents/skills/claude-code/perf-http3-quic/skill.yaml +37 -0
  597. package/dist/agents/skills/claude-code/perf-image-formats/SKILL.md +183 -0
  598. package/dist/agents/skills/claude-code/perf-image-formats/skill.yaml +39 -0
  599. package/dist/agents/skills/claude-code/perf-index-strategies/SKILL.md +210 -0
  600. package/dist/agents/skills/claude-code/perf-index-strategies/skill.yaml +40 -0
  601. package/dist/agents/skills/claude-code/perf-interaction-to-next-paint/SKILL.md +170 -0
  602. package/dist/agents/skills/claude-code/perf-interaction-to-next-paint/skill.yaml +40 -0
  603. package/dist/agents/skills/claude-code/perf-largest-contentful-paint/SKILL.md +162 -0
  604. package/dist/agents/skills/claude-code/perf-largest-contentful-paint/skill.yaml +41 -0
  605. package/dist/agents/skills/claude-code/perf-layout-reflow/SKILL.md +187 -0
  606. package/dist/agents/skills/claude-code/perf-layout-reflow/skill.yaml +38 -0
  607. package/dist/agents/skills/claude-code/perf-lazy-loading/SKILL.md +217 -0
  608. package/dist/agents/skills/claude-code/perf-lazy-loading/skill.yaml +38 -0
  609. package/dist/agents/skills/claude-code/perf-lazy-loading-media/SKILL.md +233 -0
  610. package/dist/agents/skills/claude-code/perf-lazy-loading-media/skill.yaml +38 -0
  611. package/dist/agents/skills/claude-code/perf-long-tasks/SKILL.md +194 -0
  612. package/dist/agents/skills/claude-code/perf-long-tasks/skill.yaml +38 -0
  613. package/dist/agents/skills/claude-code/perf-memory-leaks/SKILL.md +218 -0
  614. package/dist/agents/skills/claude-code/perf-memory-leaks/skill.yaml +38 -0
  615. package/dist/agents/skills/claude-code/perf-module-federation/SKILL.md +242 -0
  616. package/dist/agents/skills/claude-code/perf-module-federation/skill.yaml +38 -0
  617. package/dist/agents/skills/claude-code/perf-n-plus-one/SKILL.md +237 -0
  618. package/dist/agents/skills/claude-code/perf-n-plus-one/skill.yaml +40 -0
  619. package/dist/agents/skills/claude-code/perf-paint-compositing/SKILL.md +181 -0
  620. package/dist/agents/skills/claude-code/perf-paint-compositing/skill.yaml +40 -0
  621. package/dist/agents/skills/claude-code/perf-performance-api/SKILL.md +249 -0
  622. package/dist/agents/skills/claude-code/perf-performance-api/skill.yaml +41 -0
  623. package/dist/agents/skills/claude-code/perf-profiling-methodology/SKILL.md +181 -0
  624. package/dist/agents/skills/claude-code/perf-profiling-methodology/skill.yaml +44 -0
  625. package/dist/agents/skills/claude-code/perf-query-optimization/SKILL.md +203 -0
  626. package/dist/agents/skills/claude-code/perf-query-optimization/skill.yaml +39 -0
  627. package/dist/agents/skills/claude-code/perf-resource-hints/SKILL.md +167 -0
  628. package/dist/agents/skills/claude-code/perf-resource-hints/skill.yaml +40 -0
  629. package/dist/agents/skills/claude-code/perf-responsive-images/SKILL.md +225 -0
  630. package/dist/agents/skills/claude-code/perf-responsive-images/skill.yaml +38 -0
  631. package/dist/agents/skills/claude-code/perf-server-side-caching/SKILL.md +194 -0
  632. package/dist/agents/skills/claude-code/perf-server-side-caching/skill.yaml +40 -0
  633. package/dist/agents/skills/claude-code/perf-server-side-rendering/SKILL.md +239 -0
  634. package/dist/agents/skills/claude-code/perf-server-side-rendering/skill.yaml +39 -0
  635. package/dist/agents/skills/claude-code/perf-service-worker-caching/SKILL.md +247 -0
  636. package/dist/agents/skills/claude-code/perf-service-worker-caching/skill.yaml +40 -0
  637. package/dist/agents/skills/claude-code/perf-static-generation/SKILL.md +241 -0
  638. package/dist/agents/skills/claude-code/perf-static-generation/skill.yaml +39 -0
  639. package/dist/agents/skills/claude-code/perf-streaming-rendering/SKILL.md +242 -0
  640. package/dist/agents/skills/claude-code/perf-streaming-rendering/skill.yaml +37 -0
  641. package/dist/agents/skills/claude-code/perf-style-calculation/SKILL.md +166 -0
  642. package/dist/agents/skills/claude-code/perf-style-calculation/skill.yaml +36 -0
  643. package/dist/agents/skills/claude-code/perf-svg-optimization/SKILL.md +249 -0
  644. package/dist/agents/skills/claude-code/perf-svg-optimization/skill.yaml +37 -0
  645. package/dist/agents/skills/claude-code/perf-tree-shaking/SKILL.md +225 -0
  646. package/dist/agents/skills/claude-code/perf-tree-shaking/skill.yaml +38 -0
  647. package/dist/agents/skills/claude-code/perf-web-workers/SKILL.md +237 -0
  648. package/dist/agents/skills/claude-code/perf-web-workers/skill.yaml +40 -0
  649. package/dist/agents/skills/claude-code/prisma-client-queries/skill.yaml +1 -0
  650. package/dist/agents/skills/claude-code/prisma-filtering-sorting/skill.yaml +1 -0
  651. package/dist/agents/skills/claude-code/prisma-migrations/skill.yaml +3 -0
  652. package/dist/agents/skills/claude-code/prisma-performance-patterns/skill.yaml +8 -0
  653. package/dist/agents/skills/claude-code/prisma-raw-queries/skill.yaml +1 -0
  654. package/dist/agents/skills/claude-code/prisma-relations-pattern/skill.yaml +1 -0
  655. package/dist/agents/skills/claude-code/prisma-schema-design/skill.yaml +4 -0
  656. package/dist/agents/skills/claude-code/prisma-seeding-pattern/skill.yaml +1 -0
  657. package/dist/agents/skills/claude-code/prisma-soft-delete/skill.yaml +1 -0
  658. package/dist/agents/skills/claude-code/prisma-transactions/skill.yaml +4 -0
  659. package/dist/agents/skills/claude-code/prisma-type-generation/skill.yaml +1 -0
  660. package/dist/agents/skills/claude-code/react-2026/skill.yaml +1 -0
  661. package/dist/agents/skills/claude-code/react-client-rendering/skill.yaml +1 -0
  662. package/dist/agents/skills/claude-code/react-compound-pattern/skill.yaml +1 -0
  663. package/dist/agents/skills/claude-code/react-concurrent-ui/skill.yaml +1 -0
  664. package/dist/agents/skills/claude-code/react-container-presentational/skill.yaml +1 -0
  665. package/dist/agents/skills/claude-code/react-context-pattern/skill.yaml +1 -0
  666. package/dist/agents/skills/claude-code/react-dynamic-import/skill.yaml +1 -0
  667. package/dist/agents/skills/claude-code/react-hoc-pattern/skill.yaml +1 -0
  668. package/dist/agents/skills/claude-code/react-hooks-pattern/skill.yaml +1 -0
  669. package/dist/agents/skills/claude-code/react-islands-pattern/skill.yaml +1 -0
  670. package/dist/agents/skills/claude-code/react-memoization-pattern/skill.yaml +1 -0
  671. package/dist/agents/skills/claude-code/react-progressive-hydration/skill.yaml +1 -0
  672. package/dist/agents/skills/claude-code/react-provider-pattern/skill.yaml +1 -0
  673. package/dist/agents/skills/claude-code/react-render-props-pattern/skill.yaml +1 -0
  674. package/dist/agents/skills/claude-code/react-server-components/skill.yaml +1 -0
  675. package/dist/agents/skills/claude-code/react-server-rendering/skill.yaml +1 -0
  676. package/dist/agents/skills/claude-code/react-state-management-pattern/skill.yaml +1 -0
  677. package/dist/agents/skills/claude-code/react-static-import/skill.yaml +1 -0
  678. package/dist/agents/skills/claude-code/react-suspense-pattern/skill.yaml +1 -0
  679. package/dist/agents/skills/claude-code/redux-entity-adapter/skill.yaml +1 -0
  680. package/dist/agents/skills/claude-code/redux-listener-middleware/skill.yaml +1 -0
  681. package/dist/agents/skills/claude-code/redux-persistence-pattern/skill.yaml +1 -0
  682. package/dist/agents/skills/claude-code/redux-rtk-optimistic/skill.yaml +1 -0
  683. package/dist/agents/skills/claude-code/redux-rtk-query-endpoints/skill.yaml +1 -0
  684. package/dist/agents/skills/claude-code/redux-rtk-query-setup/skill.yaml +1 -0
  685. package/dist/agents/skills/claude-code/redux-selectors-pattern/skill.yaml +1 -0
  686. package/dist/agents/skills/claude-code/redux-slice-pattern/skill.yaml +1 -0
  687. package/dist/agents/skills/claude-code/redux-store-setup/skill.yaml +1 -0
  688. package/dist/agents/skills/claude-code/redux-testing-patterns/skill.yaml +1 -0
  689. package/dist/agents/skills/claude-code/redux-thunk-pattern/skill.yaml +1 -0
  690. package/dist/agents/skills/claude-code/redux-typescript-patterns/skill.yaml +1 -0
  691. package/dist/agents/skills/claude-code/resilience-bulkhead-pattern/skill.yaml +1 -0
  692. package/dist/agents/skills/claude-code/resilience-chaos-testing/skill.yaml +1 -0
  693. package/dist/agents/skills/claude-code/resilience-circuit-breaker/skill.yaml +1 -0
  694. package/dist/agents/skills/claude-code/resilience-dead-letter/skill.yaml +1 -0
  695. package/dist/agents/skills/claude-code/resilience-fallback-pattern/skill.yaml +1 -0
  696. package/dist/agents/skills/claude-code/resilience-health-checks/skill.yaml +1 -0
  697. package/dist/agents/skills/claude-code/resilience-idempotency/skill.yaml +1 -0
  698. package/dist/agents/skills/claude-code/resilience-rate-limiting/skill.yaml +1 -0
  699. package/dist/agents/skills/claude-code/resilience-retry-pattern/skill.yaml +1 -0
  700. package/dist/agents/skills/claude-code/resilience-timeout-pattern/skill.yaml +1 -0
  701. package/dist/agents/skills/claude-code/security-abac-design/SKILL.md +154 -0
  702. package/dist/agents/skills/claude-code/security-abac-design/skill.yaml +41 -0
  703. package/dist/agents/skills/claude-code/security-asymmetric-encryption/SKILL.md +201 -0
  704. package/dist/agents/skills/claude-code/security-asymmetric-encryption/skill.yaml +42 -0
  705. package/dist/agents/skills/claude-code/security-attack-trees/SKILL.md +150 -0
  706. package/dist/agents/skills/claude-code/security-attack-trees/skill.yaml +37 -0
  707. package/dist/agents/skills/claude-code/security-audit-log-design/SKILL.md +227 -0
  708. package/dist/agents/skills/claude-code/security-audit-log-design/skill.yaml +39 -0
  709. package/dist/agents/skills/claude-code/security-authentication-flows/SKILL.md +168 -0
  710. package/dist/agents/skills/claude-code/security-authentication-flows/skill.yaml +42 -0
  711. package/dist/agents/skills/claude-code/security-capability-based-security/SKILL.md +158 -0
  712. package/dist/agents/skills/claude-code/security-capability-based-security/skill.yaml +40 -0
  713. package/dist/agents/skills/claude-code/security-certificate-management/SKILL.md +153 -0
  714. package/dist/agents/skills/claude-code/security-certificate-management/skill.yaml +42 -0
  715. package/dist/agents/skills/claude-code/security-ci-security-testing/SKILL.md +159 -0
  716. package/dist/agents/skills/claude-code/security-ci-security-testing/skill.yaml +43 -0
  717. package/dist/agents/skills/claude-code/security-code-signing/SKILL.md +155 -0
  718. package/dist/agents/skills/claude-code/security-code-signing/skill.yaml +40 -0
  719. package/dist/agents/skills/claude-code/security-compliance-logging/SKILL.md +183 -0
  720. package/dist/agents/skills/claude-code/security-compliance-logging/skill.yaml +38 -0
  721. package/dist/agents/skills/claude-code/security-credential-storage/SKILL.md +222 -0
  722. package/dist/agents/skills/claude-code/security-credential-storage/skill.yaml +41 -0
  723. package/dist/agents/skills/claude-code/security-cryptographic-randomness/SKILL.md +154 -0
  724. package/dist/agents/skills/claude-code/security-cryptographic-randomness/skill.yaml +41 -0
  725. package/dist/agents/skills/claude-code/security-dependency-auditing/SKILL.md +156 -0
  726. package/dist/agents/skills/claude-code/security-dependency-auditing/skill.yaml +39 -0
  727. package/dist/agents/skills/claude-code/security-deserialization-attacks/SKILL.md +180 -0
  728. package/dist/agents/skills/claude-code/security-deserialization-attacks/skill.yaml +38 -0
  729. package/dist/agents/skills/claude-code/security-environment-variable-risks/SKILL.md +153 -0
  730. package/dist/agents/skills/claude-code/security-environment-variable-risks/skill.yaml +37 -0
  731. package/dist/agents/skills/claude-code/security-forensics-fundamentals/SKILL.md +198 -0
  732. package/dist/agents/skills/claude-code/security-forensics-fundamentals/skill.yaml +40 -0
  733. package/dist/agents/skills/claude-code/security-hashing-fundamentals/SKILL.md +212 -0
  734. package/dist/agents/skills/claude-code/security-hashing-fundamentals/skill.yaml +40 -0
  735. package/dist/agents/skills/claude-code/security-hmac-signatures/SKILL.md +165 -0
  736. package/dist/agents/skills/claude-code/security-hmac-signatures/skill.yaml +40 -0
  737. package/dist/agents/skills/claude-code/security-hsts-preloading/SKILL.md +154 -0
  738. package/dist/agents/skills/claude-code/security-hsts-preloading/skill.yaml +38 -0
  739. package/dist/agents/skills/claude-code/security-identity-verification/SKILL.md +157 -0
  740. package/dist/agents/skills/claude-code/security-identity-verification/skill.yaml +39 -0
  741. package/dist/agents/skills/claude-code/security-incident-containment/SKILL.md +190 -0
  742. package/dist/agents/skills/claude-code/security-incident-containment/skill.yaml +40 -0
  743. package/dist/agents/skills/claude-code/security-injection-families/SKILL.md +235 -0
  744. package/dist/agents/skills/claude-code/security-injection-families/skill.yaml +41 -0
  745. package/dist/agents/skills/claude-code/security-log-correlation/SKILL.md +178 -0
  746. package/dist/agents/skills/claude-code/security-log-correlation/skill.yaml +39 -0
  747. package/dist/agents/skills/claude-code/security-memory-safety/SKILL.md +234 -0
  748. package/dist/agents/skills/claude-code/security-memory-safety/skill.yaml +39 -0
  749. package/dist/agents/skills/claude-code/security-mfa-design/SKILL.md +150 -0
  750. package/dist/agents/skills/claude-code/security-mfa-design/skill.yaml +41 -0
  751. package/dist/agents/skills/claude-code/security-microsegmentation/SKILL.md +154 -0
  752. package/dist/agents/skills/claude-code/security-microsegmentation/skill.yaml +40 -0
  753. package/dist/agents/skills/claude-code/security-mtls-design/SKILL.md +158 -0
  754. package/dist/agents/skills/claude-code/security-mtls-design/skill.yaml +39 -0
  755. package/dist/agents/skills/claude-code/security-penetration-testing/SKILL.md +166 -0
  756. package/dist/agents/skills/claude-code/security-penetration-testing/skill.yaml +40 -0
  757. package/dist/agents/skills/claude-code/security-post-incident-review/SKILL.md +205 -0
  758. package/dist/agents/skills/claude-code/security-post-incident-review/skill.yaml +39 -0
  759. package/dist/agents/skills/claude-code/security-race-conditions/SKILL.md +186 -0
  760. package/dist/agents/skills/claude-code/security-race-conditions/skill.yaml +39 -0
  761. package/dist/agents/skills/claude-code/security-rbac-design/SKILL.md +209 -0
  762. package/dist/agents/skills/claude-code/security-rbac-design/skill.yaml +40 -0
  763. package/dist/agents/skills/claude-code/security-rebac-design/SKILL.md +154 -0
  764. package/dist/agents/skills/claude-code/security-rebac-design/skill.yaml +39 -0
  765. package/dist/agents/skills/claude-code/security-sbom-provenance/SKILL.md +157 -0
  766. package/dist/agents/skills/claude-code/security-sbom-provenance/skill.yaml +39 -0
  767. package/dist/agents/skills/claude-code/security-secrets-lifecycle/SKILL.md +190 -0
  768. package/dist/agents/skills/claude-code/security-secrets-lifecycle/skill.yaml +39 -0
  769. package/dist/agents/skills/claude-code/security-security-champions/SKILL.md +165 -0
  770. package/dist/agents/skills/claude-code/security-security-champions/skill.yaml +37 -0
  771. package/dist/agents/skills/claude-code/security-session-management/SKILL.md +196 -0
  772. package/dist/agents/skills/claude-code/security-session-management/skill.yaml +41 -0
  773. package/dist/agents/skills/claude-code/security-shift-left-design/SKILL.md +153 -0
  774. package/dist/agents/skills/claude-code/security-shift-left-design/skill.yaml +38 -0
  775. package/dist/agents/skills/claude-code/security-symmetric-encryption/SKILL.md +176 -0
  776. package/dist/agents/skills/claude-code/security-symmetric-encryption/skill.yaml +41 -0
  777. package/dist/agents/skills/claude-code/security-threat-modeling-process/SKILL.md +150 -0
  778. package/dist/agents/skills/claude-code/security-threat-modeling-process/skill.yaml +38 -0
  779. package/dist/agents/skills/claude-code/security-threat-modeling-stride/SKILL.md +150 -0
  780. package/dist/agents/skills/claude-code/security-threat-modeling-stride/skill.yaml +40 -0
  781. package/dist/agents/skills/claude-code/security-tls-fundamentals/SKILL.md +186 -0
  782. package/dist/agents/skills/claude-code/security-tls-fundamentals/skill.yaml +40 -0
  783. package/dist/agents/skills/claude-code/security-trust-boundaries/SKILL.md +152 -0
  784. package/dist/agents/skills/claude-code/security-trust-boundaries/skill.yaml +39 -0
  785. package/dist/agents/skills/claude-code/security-vault-patterns/SKILL.md +155 -0
  786. package/dist/agents/skills/claude-code/security-vault-patterns/skill.yaml +39 -0
  787. package/dist/agents/skills/claude-code/security-vulnerability-disclosure/SKILL.md +207 -0
  788. package/dist/agents/skills/claude-code/security-vulnerability-disclosure/skill.yaml +39 -0
  789. package/dist/agents/skills/claude-code/security-zero-trust-principles/SKILL.md +229 -0
  790. package/dist/agents/skills/claude-code/security-zero-trust-principles/skill.yaml +40 -0
  791. package/dist/agents/skills/claude-code/state-context-pattern/skill.yaml +1 -0
  792. package/dist/agents/skills/claude-code/state-jotai-atoms/skill.yaml +1 -0
  793. package/dist/agents/skills/claude-code/state-selection-patterns/skill.yaml +1 -0
  794. package/dist/agents/skills/claude-code/state-server-client-sync/skill.yaml +1 -0
  795. package/dist/agents/skills/claude-code/state-zustand-devtools/skill.yaml +1 -0
  796. package/dist/agents/skills/claude-code/state-zustand-immer/skill.yaml +1 -0
  797. package/dist/agents/skills/claude-code/state-zustand-persist/skill.yaml +1 -0
  798. package/dist/agents/skills/claude-code/state-zustand-react/skill.yaml +1 -0
  799. package/dist/agents/skills/claude-code/state-zustand-slices/skill.yaml +1 -0
  800. package/dist/agents/skills/claude-code/state-zustand-store/skill.yaml +1 -0
  801. package/dist/agents/skills/claude-code/svelte-adapter-config/skill.yaml +1 -0
  802. package/dist/agents/skills/claude-code/svelte-component-composition/skill.yaml +1 -0
  803. package/dist/agents/skills/claude-code/svelte-error-pages/skill.yaml +1 -0
  804. package/dist/agents/skills/claude-code/svelte-form-actions/skill.yaml +1 -0
  805. package/dist/agents/skills/claude-code/svelte-load-functions/skill.yaml +1 -0
  806. package/dist/agents/skills/claude-code/svelte-performance-patterns/skill.yaml +6 -0
  807. package/dist/agents/skills/claude-code/svelte-routing-pattern/skill.yaml +1 -0
  808. package/dist/agents/skills/claude-code/svelte-runes-pattern/skill.yaml +1 -0
  809. package/dist/agents/skills/claude-code/svelte-server-hooks/skill.yaml +1 -0
  810. package/dist/agents/skills/claude-code/svelte-state-management/skill.yaml +1 -0
  811. package/dist/agents/skills/claude-code/svelte-stores-pattern/skill.yaml +1 -0
  812. package/dist/agents/skills/claude-code/svelte-testing-patterns/skill.yaml +1 -0
  813. package/dist/agents/skills/claude-code/svelte-transitions-animations/skill.yaml +1 -0
  814. package/dist/agents/skills/claude-code/tanstack-cache-management/skill.yaml +1 -0
  815. package/dist/agents/skills/claude-code/tanstack-dependent-queries/skill.yaml +1 -0
  816. package/dist/agents/skills/claude-code/tanstack-devtools/skill.yaml +1 -0
  817. package/dist/agents/skills/claude-code/tanstack-infinite-queries/skill.yaml +1 -0
  818. package/dist/agents/skills/claude-code/tanstack-mutation-patterns/skill.yaml +1 -0
  819. package/dist/agents/skills/claude-code/tanstack-optimistic-updates/skill.yaml +1 -0
  820. package/dist/agents/skills/claude-code/tanstack-prefetching/skill.yaml +1 -0
  821. package/dist/agents/skills/claude-code/tanstack-query-invalidation/skill.yaml +1 -0
  822. package/dist/agents/skills/claude-code/tanstack-query-keys/skill.yaml +1 -0
  823. package/dist/agents/skills/claude-code/tanstack-suspense-mode/skill.yaml +1 -0
  824. package/dist/agents/skills/claude-code/test-accessibility-testing/skill.yaml +1 -0
  825. package/dist/agents/skills/claude-code/test-component-react/skill.yaml +1 -0
  826. package/dist/agents/skills/claude-code/test-component-svelte/skill.yaml +1 -0
  827. package/dist/agents/skills/claude-code/test-contract-testing/skill.yaml +1 -0
  828. package/dist/agents/skills/claude-code/test-coverage-patterns/skill.yaml +1 -0
  829. package/dist/agents/skills/claude-code/test-e2e-strategy/skill.yaml +1 -0
  830. package/dist/agents/skills/claude-code/test-factory-patterns/skill.yaml +1 -0
  831. package/dist/agents/skills/claude-code/test-integration-patterns/skill.yaml +1 -0
  832. package/dist/agents/skills/claude-code/test-mock-patterns/skill.yaml +1 -0
  833. package/dist/agents/skills/claude-code/test-msw-pattern/skill.yaml +1 -0
  834. package/dist/agents/skills/claude-code/test-performance-testing/skill.yaml +5 -0
  835. package/dist/agents/skills/claude-code/test-playwright-patterns/skill.yaml +1 -0
  836. package/dist/agents/skills/claude-code/test-playwright-setup/skill.yaml +1 -0
  837. package/dist/agents/skills/claude-code/test-property-based/skill.yaml +1 -0
  838. package/dist/agents/skills/claude-code/test-snapshot-patterns/skill.yaml +1 -0
  839. package/dist/agents/skills/claude-code/test-tdd-workflow/skill.yaml +1 -0
  840. package/dist/agents/skills/claude-code/test-unit-patterns/skill.yaml +1 -0
  841. package/dist/agents/skills/claude-code/test-vitest-config/skill.yaml +1 -0
  842. package/dist/agents/skills/claude-code/trpc-context-pattern/skill.yaml +1 -0
  843. package/dist/agents/skills/claude-code/trpc-error-handling/SKILL.md +1 -0
  844. package/dist/agents/skills/claude-code/trpc-error-handling/skill.yaml +3 -0
  845. package/dist/agents/skills/claude-code/trpc-input-validation/SKILL.md +1 -0
  846. package/dist/agents/skills/claude-code/trpc-input-validation/skill.yaml +2 -0
  847. package/dist/agents/skills/claude-code/trpc-middleware-pattern/skill.yaml +1 -0
  848. package/dist/agents/skills/claude-code/trpc-nextjs-integration/skill.yaml +1 -0
  849. package/dist/agents/skills/claude-code/trpc-react-query-integration/skill.yaml +1 -0
  850. package/dist/agents/skills/claude-code/trpc-router-composition/SKILL.md +1 -0
  851. package/dist/agents/skills/claude-code/trpc-router-composition/skill.yaml +3 -0
  852. package/dist/agents/skills/claude-code/trpc-subscription-pattern/skill.yaml +1 -0
  853. package/dist/agents/skills/claude-code/ts-async-patterns/skill.yaml +1 -0
  854. package/dist/agents/skills/claude-code/ts-branded-types/skill.yaml +1 -0
  855. package/dist/agents/skills/claude-code/ts-class-patterns/skill.yaml +1 -0
  856. package/dist/agents/skills/claude-code/ts-conditional-types/skill.yaml +1 -0
  857. package/dist/agents/skills/claude-code/ts-config-patterns/skill.yaml +1 -0
  858. package/dist/agents/skills/claude-code/ts-declaration-merging/skill.yaml +1 -0
  859. package/dist/agents/skills/claude-code/ts-decorator-patterns/skill.yaml +1 -0
  860. package/dist/agents/skills/claude-code/ts-discriminated-unions/skill.yaml +1 -0
  861. package/dist/agents/skills/claude-code/ts-error-handling-types/skill.yaml +1 -0
  862. package/dist/agents/skills/claude-code/ts-generics-pattern/skill.yaml +1 -0
  863. package/dist/agents/skills/claude-code/ts-mapped-types/skill.yaml +1 -0
  864. package/dist/agents/skills/claude-code/ts-module-patterns/skill.yaml +1 -0
  865. package/dist/agents/skills/claude-code/ts-performance-patterns/skill.yaml +5 -0
  866. package/dist/agents/skills/claude-code/ts-satisfies-operator/skill.yaml +1 -0
  867. package/dist/agents/skills/claude-code/ts-strict-mode/skill.yaml +1 -0
  868. package/dist/agents/skills/claude-code/ts-template-literal-types/skill.yaml +1 -0
  869. package/dist/agents/skills/claude-code/ts-testing-types/skill.yaml +1 -0
  870. package/dist/agents/skills/claude-code/ts-type-guards/skill.yaml +1 -0
  871. package/dist/agents/skills/claude-code/ts-utility-types/skill.yaml +1 -0
  872. package/dist/agents/skills/claude-code/ts-zod-integration/skill.yaml +1 -0
  873. package/dist/agents/skills/claude-code/ux-active-voice/SKILL.md +150 -0
  874. package/dist/agents/skills/claude-code/ux-active-voice/skill.yaml +32 -0
  875. package/dist/agents/skills/claude-code/ux-button-cta-copy/SKILL.md +159 -0
  876. package/dist/agents/skills/claude-code/ux-button-cta-copy/skill.yaml +34 -0
  877. package/dist/agents/skills/claude-code/ux-confirmation-dialogs/SKILL.md +156 -0
  878. package/dist/agents/skills/claude-code/ux-confirmation-dialogs/skill.yaml +33 -0
  879. package/dist/agents/skills/claude-code/ux-content-hierarchy/SKILL.md +150 -0
  880. package/dist/agents/skills/claude-code/ux-content-hierarchy/skill.yaml +33 -0
  881. package/dist/agents/skills/claude-code/ux-data-table-copy/SKILL.md +154 -0
  882. package/dist/agents/skills/claude-code/ux-data-table-copy/skill.yaml +34 -0
  883. package/dist/agents/skills/claude-code/ux-destructive-action-copy/SKILL.md +152 -0
  884. package/dist/agents/skills/claude-code/ux-destructive-action-copy/skill.yaml +34 -0
  885. package/dist/agents/skills/claude-code/ux-empty-states/SKILL.md +155 -0
  886. package/dist/agents/skills/claude-code/ux-empty-states/skill.yaml +36 -0
  887. package/dist/agents/skills/claude-code/ux-error-messages/SKILL.md +159 -0
  888. package/dist/agents/skills/claude-code/ux-error-messages/skill.yaml +35 -0
  889. package/dist/agents/skills/claude-code/ux-error-severity/SKILL.md +155 -0
  890. package/dist/agents/skills/claude-code/ux-error-severity/skill.yaml +35 -0
  891. package/dist/agents/skills/claude-code/ux-form-labels/SKILL.md +159 -0
  892. package/dist/agents/skills/claude-code/ux-form-labels/skill.yaml +36 -0
  893. package/dist/agents/skills/claude-code/ux-inclusive-language/SKILL.md +161 -0
  894. package/dist/agents/skills/claude-code/ux-inclusive-language/skill.yaml +33 -0
  895. package/dist/agents/skills/claude-code/ux-internationalization-writing/SKILL.md +196 -0
  896. package/dist/agents/skills/claude-code/ux-internationalization-writing/skill.yaml +35 -0
  897. package/dist/agents/skills/claude-code/ux-loading-states/SKILL.md +162 -0
  898. package/dist/agents/skills/claude-code/ux-loading-states/skill.yaml +33 -0
  899. package/dist/agents/skills/claude-code/ux-microcopy-principles/SKILL.md +152 -0
  900. package/dist/agents/skills/claude-code/ux-microcopy-principles/skill.yaml +37 -0
  901. package/dist/agents/skills/claude-code/ux-navigation-labels/SKILL.md +163 -0
  902. package/dist/agents/skills/claude-code/ux-navigation-labels/skill.yaml +35 -0
  903. package/dist/agents/skills/claude-code/ux-notification-copy/SKILL.md +150 -0
  904. package/dist/agents/skills/claude-code/ux-notification-copy/skill.yaml +35 -0
  905. package/dist/agents/skills/claude-code/ux-onboarding-copy/SKILL.md +156 -0
  906. package/dist/agents/skills/claude-code/ux-onboarding-copy/skill.yaml +35 -0
  907. package/dist/agents/skills/claude-code/ux-permission-access-copy/SKILL.md +150 -0
  908. package/dist/agents/skills/claude-code/ux-permission-access-copy/skill.yaml +34 -0
  909. package/dist/agents/skills/claude-code/ux-plain-language/SKILL.md +157 -0
  910. package/dist/agents/skills/claude-code/ux-plain-language/skill.yaml +34 -0
  911. package/dist/agents/skills/claude-code/ux-search-copy/SKILL.md +154 -0
  912. package/dist/agents/skills/claude-code/ux-search-copy/skill.yaml +33 -0
  913. package/dist/agents/skills/claude-code/ux-settings-preferences/SKILL.md +152 -0
  914. package/dist/agents/skills/claude-code/ux-settings-preferences/skill.yaml +33 -0
  915. package/dist/agents/skills/claude-code/ux-success-feedback/SKILL.md +163 -0
  916. package/dist/agents/skills/claude-code/ux-success-feedback/skill.yaml +33 -0
  917. package/dist/agents/skills/claude-code/ux-tooltip-contextual-help/SKILL.md +163 -0
  918. package/dist/agents/skills/claude-code/ux-tooltip-contextual-help/skill.yaml +33 -0
  919. package/dist/agents/skills/claude-code/ux-voice-tone/SKILL.md +150 -0
  920. package/dist/agents/skills/claude-code/ux-voice-tone/skill.yaml +33 -0
  921. package/dist/agents/skills/claude-code/ux-writing-for-scanning/SKILL.md +150 -0
  922. package/dist/agents/skills/claude-code/ux-writing-for-scanning/skill.yaml +35 -0
  923. package/dist/agents/skills/claude-code/validate-context-engineering/skill.yaml +1 -0
  924. package/dist/agents/skills/claude-code/vue-async-components/skill.yaml +1 -0
  925. package/dist/agents/skills/claude-code/vue-component-events/skill.yaml +1 -0
  926. package/dist/agents/skills/claude-code/vue-composables-pattern/skill.yaml +1 -0
  927. package/dist/agents/skills/claude-code/vue-directive-pattern/skill.yaml +1 -0
  928. package/dist/agents/skills/claude-code/vue-pinia-pattern/skill.yaml +1 -0
  929. package/dist/agents/skills/claude-code/vue-provide-inject/skill.yaml +1 -0
  930. package/dist/agents/skills/claude-code/vue-reactive-refs/skill.yaml +1 -0
  931. package/dist/agents/skills/claude-code/vue-renderless-components/skill.yaml +1 -0
  932. package/dist/agents/skills/claude-code/vue-slots-pattern/skill.yaml +1 -0
  933. package/dist/agents/skills/claude-code/vue-teleport-pattern/skill.yaml +1 -0
  934. package/dist/agents/skills/claude-code/vue-watchers-pattern/skill.yaml +1 -0
  935. package/dist/agents/skills/claude-code/xstate-actor-pattern/skill.yaml +1 -0
  936. package/dist/agents/skills/claude-code/xstate-guards-actions/skill.yaml +1 -0
  937. package/dist/agents/skills/claude-code/xstate-history-states/skill.yaml +1 -0
  938. package/dist/agents/skills/claude-code/xstate-invoke-pattern/skill.yaml +1 -0
  939. package/dist/agents/skills/claude-code/xstate-machine-definition/skill.yaml +1 -0
  940. package/dist/agents/skills/claude-code/xstate-parallel-states/skill.yaml +1 -0
  941. package/dist/agents/skills/claude-code/xstate-react-integration/skill.yaml +1 -0
  942. package/dist/agents/skills/claude-code/xstate-testing-patterns/skill.yaml +1 -0
  943. package/dist/agents/skills/claude-code/xstate-typegen/skill.yaml +1 -0
  944. package/dist/agents/skills/claude-code/xstate-visualization/skill.yaml +1 -0
  945. package/dist/agents/skills/claude-code/zod-array-validation/skill.yaml +1 -0
  946. package/dist/agents/skills/claude-code/zod-async-validation/skill.yaml +1 -0
  947. package/dist/agents/skills/claude-code/zod-error-handling/skill.yaml +1 -0
  948. package/dist/agents/skills/claude-code/zod-infer-types/skill.yaml +1 -0
  949. package/dist/agents/skills/claude-code/zod-nextjs-integration/skill.yaml +1 -0
  950. package/dist/agents/skills/claude-code/zod-object-patterns/skill.yaml +1 -0
  951. package/dist/agents/skills/claude-code/zod-schema-definition/skill.yaml +1 -0
  952. package/dist/agents/skills/claude-code/zod-string-validation/skill.yaml +1 -0
  953. package/dist/agents/skills/claude-code/zod-transform-refine/skill.yaml +1 -0
  954. package/dist/agents/skills/claude-code/zod-union-discriminated/skill.yaml +1 -0
  955. package/dist/agents/skills/codex/a11y-aria-patterns/skill.yaml +1 -0
  956. package/dist/agents/skills/codex/a11y-color-contrast/skill.yaml +1 -0
  957. package/dist/agents/skills/codex/a11y-form-patterns/skill.yaml +2 -0
  958. package/dist/agents/skills/codex/a11y-image-text-alt/skill.yaml +1 -0
  959. package/dist/agents/skills/codex/a11y-keyboard-navigation/skill.yaml +1 -0
  960. package/dist/agents/skills/codex/a11y-modal-patterns/skill.yaml +1 -0
  961. package/dist/agents/skills/codex/a11y-motion-animation/skill.yaml +1 -0
  962. package/dist/agents/skills/codex/a11y-screen-reader-testing/skill.yaml +1 -0
  963. package/dist/agents/skills/codex/a11y-semantic-html/skill.yaml +1 -0
  964. package/dist/agents/skills/codex/a11y-testing-automation/skill.yaml +1 -0
  965. package/dist/agents/skills/codex/add-harness-component/skill.yaml +1 -0
  966. package/dist/agents/skills/codex/align-documentation/skill.yaml +1 -0
  967. package/dist/agents/skills/codex/angular-component-pattern/skill.yaml +1 -0
  968. package/dist/agents/skills/codex/angular-directive-pattern/skill.yaml +1 -0
  969. package/dist/agents/skills/codex/angular-http-interceptors/skill.yaml +1 -0
  970. package/dist/agents/skills/codex/angular-lazy-loading/skill.yaml +1 -0
  971. package/dist/agents/skills/codex/angular-performance-patterns/skill.yaml +6 -0
  972. package/dist/agents/skills/codex/angular-pipe-pattern/skill.yaml +1 -0
  973. package/dist/agents/skills/codex/angular-reactive-forms/skill.yaml +1 -0
  974. package/dist/agents/skills/codex/angular-routing-guards/skill.yaml +1 -0
  975. package/dist/agents/skills/codex/angular-rxjs-patterns/skill.yaml +1 -0
  976. package/dist/agents/skills/codex/angular-schematics/skill.yaml +1 -0
  977. package/dist/agents/skills/codex/angular-service-di/skill.yaml +1 -0
  978. package/dist/agents/skills/codex/angular-signals-pattern/skill.yaml +1 -0
  979. package/dist/agents/skills/codex/angular-standalone-components/skill.yaml +1 -0
  980. package/dist/agents/skills/codex/angular-state-management/skill.yaml +1 -0
  981. package/dist/agents/skills/codex/angular-testing-patterns/skill.yaml +1 -0
  982. package/dist/agents/skills/codex/api-api-keys/SKILL.md +135 -0
  983. package/dist/agents/skills/codex/api-api-keys/skill.yaml +41 -0
  984. package/dist/agents/skills/codex/api-authentication-patterns/SKILL.md +117 -0
  985. package/dist/agents/skills/codex/api-authentication-patterns/skill.yaml +44 -0
  986. package/dist/agents/skills/codex/api-backward-compatibility/SKILL.md +170 -0
  987. package/dist/agents/skills/codex/api-backward-compatibility/skill.yaml +39 -0
  988. package/dist/agents/skills/codex/api-bulk-operations/SKILL.md +198 -0
  989. package/dist/agents/skills/codex/api-bulk-operations/skill.yaml +39 -0
  990. package/dist/agents/skills/codex/api-conditional-requests/SKILL.md +233 -0
  991. package/dist/agents/skills/codex/api-conditional-requests/skill.yaml +41 -0
  992. package/dist/agents/skills/codex/api-content-negotiation/SKILL.md +194 -0
  993. package/dist/agents/skills/codex/api-content-negotiation/skill.yaml +39 -0
  994. package/dist/agents/skills/codex/api-contract-testing/SKILL.md +222 -0
  995. package/dist/agents/skills/codex/api-contract-testing/skill.yaml +42 -0
  996. package/dist/agents/skills/codex/api-deprecation-strategy/SKILL.md +156 -0
  997. package/dist/agents/skills/codex/api-deprecation-strategy/skill.yaml +39 -0
  998. package/dist/agents/skills/codex/api-error-contracts/SKILL.md +149 -0
  999. package/dist/agents/skills/codex/api-error-contracts/skill.yaml +40 -0
  1000. package/dist/agents/skills/codex/api-field-selection/SKILL.md +193 -0
  1001. package/dist/agents/skills/codex/api-field-selection/skill.yaml +39 -0
  1002. package/dist/agents/skills/codex/api-filtering-sorting/SKILL.md +170 -0
  1003. package/dist/agents/skills/codex/api-filtering-sorting/skill.yaml +40 -0
  1004. package/dist/agents/skills/codex/api-hateoas/SKILL.md +212 -0
  1005. package/dist/agents/skills/codex/api-hateoas/skill.yaml +40 -0
  1006. package/dist/agents/skills/codex/api-http-caching/SKILL.md +188 -0
  1007. package/dist/agents/skills/codex/api-http-caching/skill.yaml +43 -0
  1008. package/dist/agents/skills/codex/api-http-methods/SKILL.md +185 -0
  1009. package/dist/agents/skills/codex/api-http-methods/skill.yaml +43 -0
  1010. package/dist/agents/skills/codex/api-idempotency-keys/SKILL.md +176 -0
  1011. package/dist/agents/skills/codex/api-idempotency-keys/skill.yaml +40 -0
  1012. package/dist/agents/skills/codex/api-long-running-operations/SKILL.md +209 -0
  1013. package/dist/agents/skills/codex/api-long-running-operations/skill.yaml +40 -0
  1014. package/dist/agents/skills/codex/api-nested-vs-flat/SKILL.md +173 -0
  1015. package/dist/agents/skills/codex/api-nested-vs-flat/skill.yaml +39 -0
  1016. package/dist/agents/skills/codex/api-oauth2-flows/SKILL.md +150 -0
  1017. package/dist/agents/skills/codex/api-oauth2-flows/skill.yaml +42 -0
  1018. package/dist/agents/skills/codex/api-openapi-design/SKILL.md +260 -0
  1019. package/dist/agents/skills/codex/api-openapi-design/skill.yaml +44 -0
  1020. package/dist/agents/skills/codex/api-pagination-cursor/SKILL.md +159 -0
  1021. package/dist/agents/skills/codex/api-pagination-cursor/skill.yaml +40 -0
  1022. package/dist/agents/skills/codex/api-pagination-keyset/SKILL.md +167 -0
  1023. package/dist/agents/skills/codex/api-pagination-keyset/skill.yaml +39 -0
  1024. package/dist/agents/skills/codex/api-pagination-offset/SKILL.md +135 -0
  1025. package/dist/agents/skills/codex/api-pagination-offset/skill.yaml +39 -0
  1026. package/dist/agents/skills/codex/api-problem-details-rfc/SKILL.md +164 -0
  1027. package/dist/agents/skills/codex/api-problem-details-rfc/skill.yaml +38 -0
  1028. package/dist/agents/skills/codex/api-rate-limit-headers/SKILL.md +144 -0
  1029. package/dist/agents/skills/codex/api-rate-limit-headers/skill.yaml +39 -0
  1030. package/dist/agents/skills/codex/api-rate-limiting/SKILL.md +131 -0
  1031. package/dist/agents/skills/codex/api-rate-limiting/skill.yaml +41 -0
  1032. package/dist/agents/skills/codex/api-resource-granularity/SKILL.md +165 -0
  1033. package/dist/agents/skills/codex/api-resource-granularity/skill.yaml +40 -0
  1034. package/dist/agents/skills/codex/api-resource-modeling/SKILL.md +155 -0
  1035. package/dist/agents/skills/codex/api-resource-modeling/skill.yaml +40 -0
  1036. package/dist/agents/skills/codex/api-rest-maturity-model/SKILL.md +215 -0
  1037. package/dist/agents/skills/codex/api-rest-maturity-model/skill.yaml +39 -0
  1038. package/dist/agents/skills/codex/api-retry-guidance/SKILL.md +168 -0
  1039. package/dist/agents/skills/codex/api-retry-guidance/skill.yaml +41 -0
  1040. package/dist/agents/skills/codex/api-sdk-ergonomics/SKILL.md +194 -0
  1041. package/dist/agents/skills/codex/api-sdk-ergonomics/skill.yaml +43 -0
  1042. package/dist/agents/skills/codex/api-status-codes/SKILL.md +196 -0
  1043. package/dist/agents/skills/codex/api-status-codes/skill.yaml +46 -0
  1044. package/dist/agents/skills/codex/api-validation-errors/SKILL.md +174 -0
  1045. package/dist/agents/skills/codex/api-validation-errors/skill.yaml +40 -0
  1046. package/dist/agents/skills/codex/api-versioning-header/SKILL.md +177 -0
  1047. package/dist/agents/skills/codex/api-versioning-header/skill.yaml +37 -0
  1048. package/dist/agents/skills/codex/api-versioning-url/SKILL.md +128 -0
  1049. package/dist/agents/skills/codex/api-versioning-url/skill.yaml +39 -0
  1050. package/dist/agents/skills/codex/api-webhook-design/SKILL.md +165 -0
  1051. package/dist/agents/skills/codex/api-webhook-design/skill.yaml +41 -0
  1052. package/dist/agents/skills/codex/api-webhook-security/SKILL.md +176 -0
  1053. package/dist/agents/skills/codex/api-webhook-security/skill.yaml +41 -0
  1054. package/dist/agents/skills/codex/astro-component-pattern/skill.yaml +1 -0
  1055. package/dist/agents/skills/codex/astro-content-collections/skill.yaml +1 -0
  1056. package/dist/agents/skills/codex/astro-deployment-config/skill.yaml +1 -0
  1057. package/dist/agents/skills/codex/astro-image-optimization/skill.yaml +1 -0
  1058. package/dist/agents/skills/codex/astro-integration-pattern/skill.yaml +1 -0
  1059. package/dist/agents/skills/codex/astro-islands-architecture/skill.yaml +1 -0
  1060. package/dist/agents/skills/codex/astro-multi-framework/skill.yaml +1 -0
  1061. package/dist/agents/skills/codex/astro-routing-pattern/skill.yaml +1 -0
  1062. package/dist/agents/skills/codex/astro-server-endpoints/skill.yaml +1 -0
  1063. package/dist/agents/skills/codex/astro-ssr-hybrid/skill.yaml +1 -0
  1064. package/dist/agents/skills/codex/astro-view-transitions/skill.yaml +1 -0
  1065. package/dist/agents/skills/codex/check-mechanical-constraints/skill.yaml +1 -0
  1066. package/dist/agents/skills/codex/cleanup-dead-code/skill.yaml +1 -0
  1067. package/dist/agents/skills/codex/css-animation-pattern/skill.yaml +1 -0
  1068. package/dist/agents/skills/codex/css-component-variants/skill.yaml +1 -0
  1069. package/dist/agents/skills/codex/css-css-modules/skill.yaml +1 -0
  1070. package/dist/agents/skills/codex/css-custom-components/skill.yaml +1 -0
  1071. package/dist/agents/skills/codex/css-dark-mode/skill.yaml +1 -0
  1072. package/dist/agents/skills/codex/css-design-tokens/skill.yaml +1 -0
  1073. package/dist/agents/skills/codex/css-headless-ui/skill.yaml +1 -0
  1074. package/dist/agents/skills/codex/css-layout-patterns/skill.yaml +1 -0
  1075. package/dist/agents/skills/codex/css-performance-patterns/skill.yaml +6 -0
  1076. package/dist/agents/skills/codex/css-responsive-design/skill.yaml +1 -0
  1077. package/dist/agents/skills/codex/css-tailwind-merge/skill.yaml +1 -0
  1078. package/dist/agents/skills/codex/css-tailwind-pattern/skill.yaml +1 -0
  1079. package/dist/agents/skills/codex/db-acid-in-practice/SKILL.md +215 -0
  1080. package/dist/agents/skills/codex/db-acid-in-practice/skill.yaml +38 -0
  1081. package/dist/agents/skills/codex/db-acid-properties/SKILL.md +190 -0
  1082. package/dist/agents/skills/codex/db-acid-properties/skill.yaml +38 -0
  1083. package/dist/agents/skills/codex/db-adjacency-list/SKILL.md +199 -0
  1084. package/dist/agents/skills/codex/db-adjacency-list/skill.yaml +40 -0
  1085. package/dist/agents/skills/codex/db-audit-trail/SKILL.md +244 -0
  1086. package/dist/agents/skills/codex/db-audit-trail/skill.yaml +41 -0
  1087. package/dist/agents/skills/codex/db-btree-index/SKILL.md +182 -0
  1088. package/dist/agents/skills/codex/db-btree-index/skill.yaml +44 -0
  1089. package/dist/agents/skills/codex/db-cap-theorem/SKILL.md +156 -0
  1090. package/dist/agents/skills/codex/db-cap-theorem/skill.yaml +38 -0
  1091. package/dist/agents/skills/codex/db-closure-table/SKILL.md +197 -0
  1092. package/dist/agents/skills/codex/db-closure-table/skill.yaml +38 -0
  1093. package/dist/agents/skills/codex/db-composite-index/SKILL.md +199 -0
  1094. package/dist/agents/skills/codex/db-composite-index/skill.yaml +41 -0
  1095. package/dist/agents/skills/codex/db-connection-pooling/SKILL.md +196 -0
  1096. package/dist/agents/skills/codex/db-connection-pooling/skill.yaml +39 -0
  1097. package/dist/agents/skills/codex/db-connection-sizing/SKILL.md +236 -0
  1098. package/dist/agents/skills/codex/db-connection-sizing/skill.yaml +38 -0
  1099. package/dist/agents/skills/codex/db-covering-index/SKILL.md +203 -0
  1100. package/dist/agents/skills/codex/db-covering-index/skill.yaml +40 -0
  1101. package/dist/agents/skills/codex/db-deadlock-prevention/SKILL.md +204 -0
  1102. package/dist/agents/skills/codex/db-deadlock-prevention/skill.yaml +41 -0
  1103. package/dist/agents/skills/codex/db-denormalization/SKILL.md +176 -0
  1104. package/dist/agents/skills/codex/db-denormalization/skill.yaml +38 -0
  1105. package/dist/agents/skills/codex/db-document-in-relational/SKILL.md +225 -0
  1106. package/dist/agents/skills/codex/db-document-in-relational/skill.yaml +42 -0
  1107. package/dist/agents/skills/codex/db-entity-attribute-value/SKILL.md +186 -0
  1108. package/dist/agents/skills/codex/db-entity-attribute-value/skill.yaml +39 -0
  1109. package/dist/agents/skills/codex/db-eventual-consistency/SKILL.md +226 -0
  1110. package/dist/agents/skills/codex/db-eventual-consistency/skill.yaml +38 -0
  1111. package/dist/agents/skills/codex/db-expand-contract/SKILL.md +199 -0
  1112. package/dist/agents/skills/codex/db-expand-contract/skill.yaml +40 -0
  1113. package/dist/agents/skills/codex/db-explain-reading/SKILL.md +213 -0
  1114. package/dist/agents/skills/codex/db-explain-reading/skill.yaml +44 -0
  1115. package/dist/agents/skills/codex/db-expression-index/SKILL.md +211 -0
  1116. package/dist/agents/skills/codex/db-expression-index/skill.yaml +40 -0
  1117. package/dist/agents/skills/codex/db-first-normal-form/SKILL.md +190 -0
  1118. package/dist/agents/skills/codex/db-first-normal-form/skill.yaml +38 -0
  1119. package/dist/agents/skills/codex/db-graph-in-relational/SKILL.md +212 -0
  1120. package/dist/agents/skills/codex/db-graph-in-relational/skill.yaml +41 -0
  1121. package/dist/agents/skills/codex/db-hash-index/SKILL.md +176 -0
  1122. package/dist/agents/skills/codex/db-hash-index/skill.yaml +37 -0
  1123. package/dist/agents/skills/codex/db-hierarchical-data/SKILL.md +194 -0
  1124. package/dist/agents/skills/codex/db-hierarchical-data/skill.yaml +41 -0
  1125. package/dist/agents/skills/codex/db-horizontal-sharding/SKILL.md +228 -0
  1126. package/dist/agents/skills/codex/db-horizontal-sharding/skill.yaml +40 -0
  1127. package/dist/agents/skills/codex/db-isolation-levels/SKILL.md +158 -0
  1128. package/dist/agents/skills/codex/db-isolation-levels/skill.yaml +43 -0
  1129. package/dist/agents/skills/codex/db-isolation-selection/SKILL.md +160 -0
  1130. package/dist/agents/skills/codex/db-isolation-selection/skill.yaml +41 -0
  1131. package/dist/agents/skills/codex/db-migration-rollback/SKILL.md +223 -0
  1132. package/dist/agents/skills/codex/db-migration-rollback/skill.yaml +40 -0
  1133. package/dist/agents/skills/codex/db-mvcc/SKILL.md +191 -0
  1134. package/dist/agents/skills/codex/db-mvcc/skill.yaml +45 -0
  1135. package/dist/agents/skills/codex/db-nested-sets/SKILL.md +171 -0
  1136. package/dist/agents/skills/codex/db-nested-sets/skill.yaml +38 -0
  1137. package/dist/agents/skills/codex/db-optimistic-locking/SKILL.md +151 -0
  1138. package/dist/agents/skills/codex/db-optimistic-locking/skill.yaml +44 -0
  1139. package/dist/agents/skills/codex/db-partial-index/SKILL.md +196 -0
  1140. package/dist/agents/skills/codex/db-partial-index/skill.yaml +39 -0
  1141. package/dist/agents/skills/codex/db-pessimistic-locking/SKILL.md +158 -0
  1142. package/dist/agents/skills/codex/db-pessimistic-locking/skill.yaml +44 -0
  1143. package/dist/agents/skills/codex/db-polymorphic-associations/SKILL.md +187 -0
  1144. package/dist/agents/skills/codex/db-polymorphic-associations/skill.yaml +42 -0
  1145. package/dist/agents/skills/codex/db-query-rewriting/SKILL.md +249 -0
  1146. package/dist/agents/skills/codex/db-query-rewriting/skill.yaml +43 -0
  1147. package/dist/agents/skills/codex/db-query-statistics/SKILL.md +210 -0
  1148. package/dist/agents/skills/codex/db-query-statistics/skill.yaml +41 -0
  1149. package/dist/agents/skills/codex/db-read-phenomena/SKILL.md +205 -0
  1150. package/dist/agents/skills/codex/db-read-phenomena/skill.yaml +42 -0
  1151. package/dist/agents/skills/codex/db-scan-types/SKILL.md +248 -0
  1152. package/dist/agents/skills/codex/db-scan-types/skill.yaml +41 -0
  1153. package/dist/agents/skills/codex/db-second-normal-form/SKILL.md +183 -0
  1154. package/dist/agents/skills/codex/db-second-normal-form/skill.yaml +38 -0
  1155. package/dist/agents/skills/codex/db-table-partitioning/SKILL.md +229 -0
  1156. package/dist/agents/skills/codex/db-table-partitioning/skill.yaml +39 -0
  1157. package/dist/agents/skills/codex/db-temporal-data/SKILL.md +194 -0
  1158. package/dist/agents/skills/codex/db-temporal-data/skill.yaml +41 -0
  1159. package/dist/agents/skills/codex/db-third-normal-form/SKILL.md +210 -0
  1160. package/dist/agents/skills/codex/db-third-normal-form/skill.yaml +38 -0
  1161. package/dist/agents/skills/codex/db-time-series/SKILL.md +196 -0
  1162. package/dist/agents/skills/codex/db-time-series/skill.yaml +41 -0
  1163. package/dist/agents/skills/codex/db-vertical-partitioning/SKILL.md +249 -0
  1164. package/dist/agents/skills/codex/db-vertical-partitioning/skill.yaml +40 -0
  1165. package/dist/agents/skills/codex/db-zero-downtime-migration/SKILL.md +199 -0
  1166. package/dist/agents/skills/codex/db-zero-downtime-migration/skill.yaml +42 -0
  1167. package/dist/agents/skills/codex/design-affordances/skill.yaml +1 -0
  1168. package/dist/agents/skills/codex/design-alignment/skill.yaml +1 -0
  1169. package/dist/agents/skills/codex/design-apple-hig/skill.yaml +1 -0
  1170. package/dist/agents/skills/codex/design-atomic-design/skill.yaml +1 -0
  1171. package/dist/agents/skills/codex/design-brand-consistency/skill.yaml +1 -0
  1172. package/dist/agents/skills/codex/design-color-accessibility/skill.yaml +1 -0
  1173. package/dist/agents/skills/codex/design-color-harmony/skill.yaml +1 -0
  1174. package/dist/agents/skills/codex/design-color-psychology/skill.yaml +1 -0
  1175. package/dist/agents/skills/codex/design-component-anatomy/skill.yaml +1 -0
  1176. package/dist/agents/skills/codex/design-consistency/skill.yaml +1 -0
  1177. package/dist/agents/skills/codex/design-content-density/skill.yaml +1 -0
  1178. package/dist/agents/skills/codex/design-contrast-ratio/skill.yaml +1 -0
  1179. package/dist/agents/skills/codex/design-dark-mode-color/skill.yaml +1 -0
  1180. package/dist/agents/skills/codex/design-data-viz-design/skill.yaml +1 -0
  1181. package/dist/agents/skills/codex/design-design-audit/skill.yaml +1 -0
  1182. package/dist/agents/skills/codex/design-design-critique/skill.yaml +1 -0
  1183. package/dist/agents/skills/codex/design-design-documentation/skill.yaml +1 -0
  1184. package/dist/agents/skills/codex/design-design-governance/skill.yaml +1 -0
  1185. package/dist/agents/skills/codex/design-elevation-shadow/skill.yaml +1 -0
  1186. package/dist/agents/skills/codex/design-empty-error-states/skill.yaml +3 -0
  1187. package/dist/agents/skills/codex/design-feedback-patterns/skill.yaml +5 -0
  1188. package/dist/agents/skills/codex/design-fluent-design/skill.yaml +1 -0
  1189. package/dist/agents/skills/codex/design-font-pairing/skill.yaml +1 -0
  1190. package/dist/agents/skills/codex/design-form-ux/skill.yaml +2 -0
  1191. package/dist/agents/skills/codex/design-gestalt-closure-continuity/skill.yaml +1 -0
  1192. package/dist/agents/skills/codex/design-gestalt-common-fate/skill.yaml +1 -0
  1193. package/dist/agents/skills/codex/design-gestalt-figure-ground/skill.yaml +1 -0
  1194. package/dist/agents/skills/codex/design-gestalt-proximity/skill.yaml +1 -0
  1195. package/dist/agents/skills/codex/design-gestalt-similarity/skill.yaml +1 -0
  1196. package/dist/agents/skills/codex/design-grid-systems/skill.yaml +1 -0
  1197. package/dist/agents/skills/codex/design-i18n-design/skill.yaml +2 -0
  1198. package/dist/agents/skills/codex/design-iconography/skill.yaml +1 -0
  1199. package/dist/agents/skills/codex/design-illustration-style/skill.yaml +1 -0
  1200. package/dist/agents/skills/codex/design-imagery-photography/skill.yaml +1 -0
  1201. package/dist/agents/skills/codex/design-information-architecture/skill.yaml +3 -0
  1202. package/dist/agents/skills/codex/design-loading-patterns/skill.yaml +2 -0
  1203. package/dist/agents/skills/codex/design-material-design-3/skill.yaml +1 -0
  1204. package/dist/agents/skills/codex/design-micro-interactions/skill.yaml +1 -0
  1205. package/dist/agents/skills/codex/design-motion-principles/skill.yaml +1 -0
  1206. package/dist/agents/skills/codex/design-naming-conventions/skill.yaml +1 -0
  1207. package/dist/agents/skills/codex/design-navigation-ux/skill.yaml +2 -0
  1208. package/dist/agents/skills/codex/design-palette-construction/skill.yaml +1 -0
  1209. package/dist/agents/skills/codex/design-parallax-scroll/skill.yaml +1 -0
  1210. package/dist/agents/skills/codex/design-readability/skill.yaml +3 -0
  1211. package/dist/agents/skills/codex/design-responsive-strategy/skill.yaml +1 -0
  1212. package/dist/agents/skills/codex/design-responsive-type/skill.yaml +1 -0
  1213. package/dist/agents/skills/codex/design-state-design/skill.yaml +1 -0
  1214. package/dist/agents/skills/codex/design-token-architecture/skill.yaml +1 -0
  1215. package/dist/agents/skills/codex/design-transitions-timing/skill.yaml +1 -0
  1216. package/dist/agents/skills/codex/design-type-scale/skill.yaml +1 -0
  1217. package/dist/agents/skills/codex/design-typographic-hierarchy/skill.yaml +1 -0
  1218. package/dist/agents/skills/codex/design-typography-fundamentals/skill.yaml +1 -0
  1219. package/dist/agents/skills/codex/design-visual-hierarchy/skill.yaml +1 -0
  1220. package/dist/agents/skills/codex/design-web-fonts/skill.yaml +1 -0
  1221. package/dist/agents/skills/codex/design-whitespace/skill.yaml +1 -0
  1222. package/dist/agents/skills/codex/detect-doc-drift/skill.yaml +1 -0
  1223. package/dist/agents/skills/codex/drizzle-filtering-pattern/skill.yaml +1 -0
  1224. package/dist/agents/skills/codex/drizzle-migrations/skill.yaml +3 -0
  1225. package/dist/agents/skills/codex/drizzle-performance-patterns/skill.yaml +8 -0
  1226. package/dist/agents/skills/codex/drizzle-query-builder/skill.yaml +1 -0
  1227. package/dist/agents/skills/codex/drizzle-raw-sql/skill.yaml +1 -0
  1228. package/dist/agents/skills/codex/drizzle-relations-pattern/skill.yaml +1 -0
  1229. package/dist/agents/skills/codex/drizzle-schema-definition/skill.yaml +4 -0
  1230. package/dist/agents/skills/codex/drizzle-transactions/skill.yaml +4 -0
  1231. package/dist/agents/skills/codex/drizzle-with-nextjs/skill.yaml +1 -0
  1232. package/dist/agents/skills/codex/enforce-architecture/skill.yaml +1 -0
  1233. package/dist/agents/skills/codex/events-event-schema/skill.yaml +1 -0
  1234. package/dist/agents/skills/codex/events-event-storming/skill.yaml +1 -0
  1235. package/dist/agents/skills/codex/events-idempotency/SKILL.md +1 -0
  1236. package/dist/agents/skills/codex/events-idempotency/skill.yaml +2 -0
  1237. package/dist/agents/skills/codex/events-kafka-patterns/skill.yaml +1 -0
  1238. package/dist/agents/skills/codex/events-message-queue/skill.yaml +1 -0
  1239. package/dist/agents/skills/codex/events-outbox-pattern/skill.yaml +1 -0
  1240. package/dist/agents/skills/codex/events-pubsub-pattern/skill.yaml +1 -0
  1241. package/dist/agents/skills/codex/events-redis-pubsub/skill.yaml +1 -0
  1242. package/dist/agents/skills/codex/events-saga-choreography/skill.yaml +1 -0
  1243. package/dist/agents/skills/codex/events-sse-pattern/skill.yaml +1 -0
  1244. package/dist/agents/skills/codex/events-webhooks-pattern/SKILL.md +1 -0
  1245. package/dist/agents/skills/codex/events-webhooks-pattern/skill.yaml +3 -0
  1246. package/dist/agents/skills/codex/events-websocket-pattern/skill.yaml +1 -0
  1247. package/dist/agents/skills/codex/gof-abstract-factory/skill.yaml +1 -0
  1248. package/dist/agents/skills/codex/gof-adapter-pattern/skill.yaml +1 -0
  1249. package/dist/agents/skills/codex/gof-bridge-pattern/skill.yaml +1 -0
  1250. package/dist/agents/skills/codex/gof-builder-pattern/skill.yaml +1 -0
  1251. package/dist/agents/skills/codex/gof-chain-of-responsibility/skill.yaml +1 -0
  1252. package/dist/agents/skills/codex/gof-command-pattern/skill.yaml +1 -0
  1253. package/dist/agents/skills/codex/gof-composite-pattern/skill.yaml +1 -0
  1254. package/dist/agents/skills/codex/gof-decorator-pattern/skill.yaml +1 -0
  1255. package/dist/agents/skills/codex/gof-facade-pattern/skill.yaml +1 -0
  1256. package/dist/agents/skills/codex/gof-factory-method/skill.yaml +1 -0
  1257. package/dist/agents/skills/codex/gof-flyweight-pattern/skill.yaml +1 -0
  1258. package/dist/agents/skills/codex/gof-iterator-pattern/skill.yaml +1 -0
  1259. package/dist/agents/skills/codex/gof-mediator-pattern/skill.yaml +1 -0
  1260. package/dist/agents/skills/codex/gof-memento-pattern/skill.yaml +1 -0
  1261. package/dist/agents/skills/codex/gof-null-object/skill.yaml +1 -0
  1262. package/dist/agents/skills/codex/gof-observer-pattern/skill.yaml +1 -0
  1263. package/dist/agents/skills/codex/gof-prototype-pattern/skill.yaml +1 -0
  1264. package/dist/agents/skills/codex/gof-proxy-pattern/skill.yaml +1 -0
  1265. package/dist/agents/skills/codex/gof-singleton/skill.yaml +1 -0
  1266. package/dist/agents/skills/codex/gof-state-pattern/skill.yaml +1 -0
  1267. package/dist/agents/skills/codex/gof-strategy-pattern/skill.yaml +1 -0
  1268. package/dist/agents/skills/codex/gof-template-method/skill.yaml +1 -0
  1269. package/dist/agents/skills/codex/gof-visitor-pattern/skill.yaml +1 -0
  1270. package/dist/agents/skills/codex/graphql-apollo-server/skill.yaml +1 -0
  1271. package/dist/agents/skills/codex/graphql-auth-patterns/SKILL.md +1 -0
  1272. package/dist/agents/skills/codex/graphql-auth-patterns/skill.yaml +3 -0
  1273. package/dist/agents/skills/codex/graphql-client-patterns/skill.yaml +1 -0
  1274. package/dist/agents/skills/codex/graphql-codegen-pattern/skill.yaml +1 -0
  1275. package/dist/agents/skills/codex/graphql-dataloader-pattern/skill.yaml +1 -0
  1276. package/dist/agents/skills/codex/graphql-error-handling/SKILL.md +1 -0
  1277. package/dist/agents/skills/codex/graphql-error-handling/skill.yaml +3 -0
  1278. package/dist/agents/skills/codex/graphql-federation-pattern/skill.yaml +1 -0
  1279. package/dist/agents/skills/codex/graphql-pagination-patterns/SKILL.md +1 -0
  1280. package/dist/agents/skills/codex/graphql-pagination-patterns/skill.yaml +4 -0
  1281. package/dist/agents/skills/codex/graphql-performance-patterns/skill.yaml +6 -0
  1282. package/dist/agents/skills/codex/graphql-resolver-pattern/skill.yaml +1 -0
  1283. package/dist/agents/skills/codex/graphql-schema-design/SKILL.md +1 -0
  1284. package/dist/agents/skills/codex/graphql-schema-design/skill.yaml +3 -0
  1285. package/dist/agents/skills/codex/graphql-subscriptions/skill.yaml +1 -0
  1286. package/dist/agents/skills/codex/harness-accessibility/skill.yaml +1 -0
  1287. package/dist/agents/skills/codex/harness-api-design/skill.yaml +1 -0
  1288. package/dist/agents/skills/codex/harness-architecture-advisor/skill.yaml +1 -0
  1289. package/dist/agents/skills/codex/harness-auth/skill.yaml +1 -0
  1290. package/dist/agents/skills/codex/harness-autopilot/SKILL.md +171 -822
  1291. package/dist/agents/skills/codex/harness-autopilot/skill.yaml +1 -0
  1292. package/dist/agents/skills/codex/harness-brainstorming/SKILL.md +145 -195
  1293. package/dist/agents/skills/codex/harness-brainstorming/skill.yaml +4 -0
  1294. package/dist/agents/skills/codex/harness-caching/skill.yaml +1 -0
  1295. package/dist/agents/skills/codex/harness-chaos/skill.yaml +1 -0
  1296. package/dist/agents/skills/codex/harness-code-review/SKILL.md +267 -436
  1297. package/dist/agents/skills/codex/harness-code-review/skill.yaml +7 -0
  1298. package/dist/agents/skills/codex/harness-codebase-cleanup/skill.yaml +1 -0
  1299. package/dist/agents/skills/codex/harness-compliance/skill.yaml +1 -0
  1300. package/dist/agents/skills/codex/harness-containerization/skill.yaml +1 -0
  1301. package/dist/agents/skills/codex/harness-data-pipeline/skill.yaml +1 -0
  1302. package/dist/agents/skills/codex/harness-data-validation/skill.yaml +1 -0
  1303. package/dist/agents/skills/codex/harness-database/skill.yaml +1 -0
  1304. package/dist/agents/skills/codex/harness-debugging/skill.yaml +1 -0
  1305. package/dist/agents/skills/codex/harness-dependency-health/skill.yaml +1 -0
  1306. package/dist/agents/skills/codex/harness-deployment/skill.yaml +1 -0
  1307. package/dist/agents/skills/codex/harness-design/skill.yaml +1 -0
  1308. package/dist/agents/skills/codex/harness-design-mobile/skill.yaml +1 -0
  1309. package/dist/agents/skills/codex/harness-design-system/skill.yaml +1 -0
  1310. package/dist/agents/skills/codex/harness-design-web/skill.yaml +1 -0
  1311. package/dist/agents/skills/codex/harness-diagnostics/skill.yaml +1 -0
  1312. package/dist/agents/skills/codex/harness-docs-pipeline/skill.yaml +1 -0
  1313. package/dist/agents/skills/codex/harness-dx/skill.yaml +1 -0
  1314. package/dist/agents/skills/codex/harness-e2e/skill.yaml +1 -0
  1315. package/dist/agents/skills/codex/harness-event-driven/skill.yaml +1 -0
  1316. package/dist/agents/skills/codex/harness-execution/SKILL.md +180 -271
  1317. package/dist/agents/skills/codex/harness-execution/skill.yaml +13 -0
  1318. package/dist/agents/skills/codex/harness-feature-flags/skill.yaml +1 -0
  1319. package/dist/agents/skills/codex/harness-git-workflow/skill.yaml +1 -0
  1320. package/dist/agents/skills/codex/harness-hotspot-detector/skill.yaml +1 -0
  1321. package/dist/agents/skills/codex/harness-i18n/skill.yaml +1 -0
  1322. package/dist/agents/skills/codex/harness-i18n-process/skill.yaml +1 -0
  1323. package/dist/agents/skills/codex/harness-i18n-workflow/skill.yaml +1 -0
  1324. package/dist/agents/skills/codex/harness-impact-analysis/skill.yaml +1 -0
  1325. package/dist/agents/skills/codex/harness-incident-response/skill.yaml +1 -0
  1326. package/dist/agents/skills/codex/harness-infrastructure-as-code/skill.yaml +1 -0
  1327. package/dist/agents/skills/codex/harness-integration-test/skill.yaml +1 -0
  1328. package/dist/agents/skills/codex/harness-integrity/skill.yaml +1 -0
  1329. package/dist/agents/skills/codex/harness-knowledge-mapper/skill.yaml +1 -0
  1330. package/dist/agents/skills/codex/harness-load-testing/skill.yaml +1 -0
  1331. package/dist/agents/skills/codex/harness-ml-ops/skill.yaml +1 -0
  1332. package/dist/agents/skills/codex/harness-mobile-patterns/skill.yaml +1 -0
  1333. package/dist/agents/skills/codex/harness-mutation-test/skill.yaml +1 -0
  1334. package/dist/agents/skills/codex/harness-observability/skill.yaml +1 -0
  1335. package/dist/agents/skills/codex/harness-onboarding/skill.yaml +1 -0
  1336. package/dist/agents/skills/codex/harness-parallel-agents/skill.yaml +1 -0
  1337. package/dist/agents/skills/codex/harness-perf/skill.yaml +1 -0
  1338. package/dist/agents/skills/codex/harness-perf-tdd/skill.yaml +1 -0
  1339. package/dist/agents/skills/codex/harness-planning/SKILL.md +142 -322
  1340. package/dist/agents/skills/codex/harness-planning/skill.yaml +7 -0
  1341. package/dist/agents/skills/codex/harness-pre-commit-review/skill.yaml +1 -0
  1342. package/dist/agents/skills/codex/harness-product-spec/skill.yaml +1 -0
  1343. package/dist/agents/skills/codex/harness-property-test/skill.yaml +1 -0
  1344. package/dist/agents/skills/codex/harness-refactoring/skill.yaml +1 -0
  1345. package/dist/agents/skills/codex/harness-release-readiness/skill.yaml +1 -0
  1346. package/dist/agents/skills/codex/harness-resilience/skill.yaml +1 -0
  1347. package/dist/agents/skills/codex/harness-roadmap/skill.yaml +1 -0
  1348. package/dist/agents/skills/codex/harness-roadmap-pilot/skill.yaml +1 -0
  1349. package/dist/agents/skills/codex/harness-router/SKILL.md +69 -123
  1350. package/dist/agents/skills/codex/harness-router/skill.yaml +1 -0
  1351. package/dist/agents/skills/codex/harness-secrets/SKILL.md +3 -3
  1352. package/dist/agents/skills/codex/harness-secrets/skill.yaml +1 -0
  1353. package/dist/agents/skills/codex/harness-security-review/skill.yaml +6 -0
  1354. package/dist/agents/skills/codex/harness-security-scan/skill.yaml +7 -0
  1355. package/dist/agents/skills/codex/harness-skill-authoring/skill.yaml +1 -0
  1356. package/dist/agents/skills/codex/harness-soundness-review/SKILL.md +483 -667
  1357. package/dist/agents/skills/codex/harness-soundness-review/skill.yaml +1 -0
  1358. package/dist/agents/skills/codex/harness-sql-review/skill.yaml +1 -0
  1359. package/dist/agents/skills/codex/harness-state-management/skill.yaml +1 -0
  1360. package/dist/agents/skills/codex/harness-supply-chain-audit/skill.yaml +1 -0
  1361. package/dist/agents/skills/codex/harness-tdd/skill.yaml +1 -0
  1362. package/dist/agents/skills/codex/harness-test-advisor/skill.yaml +1 -0
  1363. package/dist/agents/skills/codex/harness-test-data/skill.yaml +1 -0
  1364. package/dist/agents/skills/codex/harness-ux-copy/skill.yaml +13 -0
  1365. package/dist/agents/skills/codex/harness-verification/SKILL.md +135 -221
  1366. package/dist/agents/skills/codex/harness-verification/skill.yaml +4 -0
  1367. package/dist/agents/skills/codex/harness-verify/skill.yaml +1 -0
  1368. package/dist/agents/skills/codex/harness-visual-regression/skill.yaml +1 -0
  1369. package/dist/agents/skills/codex/initialize-harness-project/skill.yaml +1 -0
  1370. package/dist/agents/skills/codex/js-abstract-factory-pattern/skill.yaml +1 -0
  1371. package/dist/agents/skills/codex/js-adapter-pattern/skill.yaml +1 -0
  1372. package/dist/agents/skills/codex/js-bridge-pattern/skill.yaml +1 -0
  1373. package/dist/agents/skills/codex/js-chain-of-responsibility-pattern/skill.yaml +1 -0
  1374. package/dist/agents/skills/codex/js-command-pattern/skill.yaml +1 -0
  1375. package/dist/agents/skills/codex/js-composite-pattern/skill.yaml +1 -0
  1376. package/dist/agents/skills/codex/js-constructor-pattern/skill.yaml +1 -0
  1377. package/dist/agents/skills/codex/js-decorator-pattern/skill.yaml +1 -0
  1378. package/dist/agents/skills/codex/js-dynamic-import/skill.yaml +1 -0
  1379. package/dist/agents/skills/codex/js-facade-pattern/skill.yaml +1 -0
  1380. package/dist/agents/skills/codex/js-factory-pattern/skill.yaml +1 -0
  1381. package/dist/agents/skills/codex/js-flyweight-pattern/skill.yaml +1 -0
  1382. package/dist/agents/skills/codex/js-iterator-pattern/skill.yaml +1 -0
  1383. package/dist/agents/skills/codex/js-mediator-middleware-pattern/skill.yaml +1 -0
  1384. package/dist/agents/skills/codex/js-mixin-pattern/skill.yaml +1 -0
  1385. package/dist/agents/skills/codex/js-module-pattern/skill.yaml +1 -0
  1386. package/dist/agents/skills/codex/js-observer-pattern/skill.yaml +1 -0
  1387. package/dist/agents/skills/codex/js-prototype-pattern/skill.yaml +1 -0
  1388. package/dist/agents/skills/codex/js-provider-pattern/skill.yaml +1 -0
  1389. package/dist/agents/skills/codex/js-proxy-pattern/skill.yaml +1 -0
  1390. package/dist/agents/skills/codex/js-revealing-module-pattern/skill.yaml +1 -0
  1391. package/dist/agents/skills/codex/js-singleton-pattern/skill.yaml +1 -0
  1392. package/dist/agents/skills/codex/js-state-pattern/skill.yaml +1 -0
  1393. package/dist/agents/skills/codex/js-static-import/skill.yaml +1 -0
  1394. package/dist/agents/skills/codex/js-strategy-pattern/skill.yaml +1 -0
  1395. package/dist/agents/skills/codex/js-template-method-pattern/skill.yaml +1 -0
  1396. package/dist/agents/skills/codex/js-visitor-pattern/skill.yaml +1 -0
  1397. package/dist/agents/skills/codex/microservices-api-gateway/skill.yaml +1 -0
  1398. package/dist/agents/skills/codex/microservices-bulkhead-pattern/skill.yaml +1 -0
  1399. package/dist/agents/skills/codex/microservices-circuit-breaker/skill.yaml +1 -0
  1400. package/dist/agents/skills/codex/microservices-config-server/SKILL.md +1 -1
  1401. package/dist/agents/skills/codex/microservices-config-server/skill.yaml +1 -0
  1402. package/dist/agents/skills/codex/microservices-cqrs-pattern/skill.yaml +3 -0
  1403. package/dist/agents/skills/codex/microservices-decomposition/skill.yaml +1 -0
  1404. package/dist/agents/skills/codex/microservices-distributed-tracing/skill.yaml +1 -0
  1405. package/dist/agents/skills/codex/microservices-event-sourcing/skill.yaml +3 -0
  1406. package/dist/agents/skills/codex/microservices-health-check/skill.yaml +1 -0
  1407. package/dist/agents/skills/codex/microservices-outbox-pattern/skill.yaml +1 -0
  1408. package/dist/agents/skills/codex/microservices-saga-pattern/skill.yaml +1 -0
  1409. package/dist/agents/skills/codex/microservices-service-discovery/skill.yaml +1 -0
  1410. package/dist/agents/skills/codex/microservices-sidecar-pattern/skill.yaml +1 -0
  1411. package/dist/agents/skills/codex/microservices-strangler-fig/skill.yaml +1 -0
  1412. package/dist/agents/skills/codex/mobile-animation-patterns/skill.yaml +1 -0
  1413. package/dist/agents/skills/codex/mobile-deployment-patterns/skill.yaml +1 -0
  1414. package/dist/agents/skills/codex/mobile-expo-setup/skill.yaml +1 -0
  1415. package/dist/agents/skills/codex/mobile-flatlist-patterns/skill.yaml +1 -0
  1416. package/dist/agents/skills/codex/mobile-gesture-handling/skill.yaml +1 -0
  1417. package/dist/agents/skills/codex/mobile-native-modules/skill.yaml +1 -0
  1418. package/dist/agents/skills/codex/mobile-navigation-pattern/skill.yaml +1 -0
  1419. package/dist/agents/skills/codex/mobile-network-patterns/skill.yaml +1 -0
  1420. package/dist/agents/skills/codex/mobile-performance-patterns/skill.yaml +6 -0
  1421. package/dist/agents/skills/codex/mobile-push-notifications/skill.yaml +1 -0
  1422. package/dist/agents/skills/codex/mobile-storage-patterns/skill.yaml +1 -0
  1423. package/dist/agents/skills/codex/mobile-testing-patterns/skill.yaml +1 -0
  1424. package/dist/agents/skills/codex/nestjs-config-module/skill.yaml +1 -0
  1425. package/dist/agents/skills/codex/nestjs-controller-pattern/skill.yaml +1 -0
  1426. package/dist/agents/skills/codex/nestjs-dependency-injection/skill.yaml +1 -0
  1427. package/dist/agents/skills/codex/nestjs-dto-validation/skill.yaml +1 -0
  1428. package/dist/agents/skills/codex/nestjs-event-driven/skill.yaml +1 -0
  1429. package/dist/agents/skills/codex/nestjs-exception-filters/skill.yaml +1 -0
  1430. package/dist/agents/skills/codex/nestjs-graphql-integration/skill.yaml +1 -0
  1431. package/dist/agents/skills/codex/nestjs-guards-pattern/skill.yaml +1 -0
  1432. package/dist/agents/skills/codex/nestjs-interceptors-pattern/skill.yaml +1 -0
  1433. package/dist/agents/skills/codex/nestjs-microservices/skill.yaml +1 -0
  1434. package/dist/agents/skills/codex/nestjs-middleware-pattern/skill.yaml +1 -0
  1435. package/dist/agents/skills/codex/nestjs-module-pattern/skill.yaml +1 -0
  1436. package/dist/agents/skills/codex/nestjs-pipes-pattern/skill.yaml +1 -0
  1437. package/dist/agents/skills/codex/nestjs-service-pattern/skill.yaml +1 -0
  1438. package/dist/agents/skills/codex/nestjs-swagger-integration/skill.yaml +1 -0
  1439. package/dist/agents/skills/codex/nestjs-testing-patterns/skill.yaml +1 -0
  1440. package/dist/agents/skills/codex/next-app-router/skill.yaml +1 -0
  1441. package/dist/agents/skills/codex/next-auth-patterns/skill.yaml +1 -0
  1442. package/dist/agents/skills/codex/next-caching-strategies/skill.yaml +1 -0
  1443. package/dist/agents/skills/codex/next-data-fetching/skill.yaml +1 -0
  1444. package/dist/agents/skills/codex/next-deployment-optimization/skill.yaml +1 -0
  1445. package/dist/agents/skills/codex/next-environment-config/skill.yaml +1 -0
  1446. package/dist/agents/skills/codex/next-error-boundaries/skill.yaml +1 -0
  1447. package/dist/agents/skills/codex/next-image-optimization/skill.yaml +1 -0
  1448. package/dist/agents/skills/codex/next-metadata-api/skill.yaml +1 -0
  1449. package/dist/agents/skills/codex/next-middleware-pattern/skill.yaml +1 -0
  1450. package/dist/agents/skills/codex/next-monorepo-setup/skill.yaml +1 -0
  1451. package/dist/agents/skills/codex/next-parallel-intercepting-routes/skill.yaml +1 -0
  1452. package/dist/agents/skills/codex/next-route-handlers/skill.yaml +1 -0
  1453. package/dist/agents/skills/codex/next-server-actions/skill.yaml +1 -0
  1454. package/dist/agents/skills/codex/next-server-components/skill.yaml +1 -0
  1455. package/dist/agents/skills/codex/next-static-generation/skill.yaml +1 -0
  1456. package/dist/agents/skills/codex/next-streaming-suspense/skill.yaml +1 -0
  1457. package/dist/agents/skills/codex/next-testing-patterns/skill.yaml +1 -0
  1458. package/dist/agents/skills/codex/node-buffer-encoding/skill.yaml +1 -0
  1459. package/dist/agents/skills/codex/node-child-process/skill.yaml +1 -0
  1460. package/dist/agents/skills/codex/node-crypto-patterns/skill.yaml +1 -0
  1461. package/dist/agents/skills/codex/node-environment-config/skill.yaml +1 -0
  1462. package/dist/agents/skills/codex/node-error-handling/skill.yaml +1 -0
  1463. package/dist/agents/skills/codex/node-esm-patterns/skill.yaml +1 -0
  1464. package/dist/agents/skills/codex/node-event-emitter/skill.yaml +1 -0
  1465. package/dist/agents/skills/codex/node-express-patterns/skill.yaml +1 -0
  1466. package/dist/agents/skills/codex/node-fastify-patterns/skill.yaml +1 -0
  1467. package/dist/agents/skills/codex/node-http-server/skill.yaml +1 -0
  1468. package/dist/agents/skills/codex/node-path-fs-patterns/skill.yaml +1 -0
  1469. package/dist/agents/skills/codex/node-performance-profiling/skill.yaml +6 -0
  1470. package/dist/agents/skills/codex/node-streams-pattern/skill.yaml +1 -0
  1471. package/dist/agents/skills/codex/node-testing-patterns/skill.yaml +1 -0
  1472. package/dist/agents/skills/codex/node-worker-threads/skill.yaml +1 -0
  1473. package/dist/agents/skills/codex/nuxt-auto-imports/skill.yaml +1 -0
  1474. package/dist/agents/skills/codex/nuxt-composables-pattern/skill.yaml +1 -0
  1475. package/dist/agents/skills/codex/nuxt-deployment-config/skill.yaml +1 -0
  1476. package/dist/agents/skills/codex/nuxt-layouts-pages/skill.yaml +1 -0
  1477. package/dist/agents/skills/codex/nuxt-middleware-pattern/skill.yaml +1 -0
  1478. package/dist/agents/skills/codex/nuxt-modules-pattern/skill.yaml +1 -0
  1479. package/dist/agents/skills/codex/nuxt-plugins-pattern/skill.yaml +1 -0
  1480. package/dist/agents/skills/codex/nuxt-seo-metadata/skill.yaml +1 -0
  1481. package/dist/agents/skills/codex/nuxt-server-routes/skill.yaml +1 -0
  1482. package/dist/agents/skills/codex/nuxt-state-management/skill.yaml +1 -0
  1483. package/dist/agents/skills/codex/nuxt-testing-patterns/skill.yaml +1 -0
  1484. package/dist/agents/skills/codex/otel-context-propagation/skill.yaml +1 -0
  1485. package/dist/agents/skills/codex/otel-custom-instrumentation/skill.yaml +1 -0
  1486. package/dist/agents/skills/codex/otel-error-tracking/skill.yaml +1 -0
  1487. package/dist/agents/skills/codex/otel-exporter-config/skill.yaml +1 -0
  1488. package/dist/agents/skills/codex/otel-logging-pattern/skill.yaml +1 -0
  1489. package/dist/agents/skills/codex/otel-metrics-pattern/skill.yaml +1 -0
  1490. package/dist/agents/skills/codex/otel-nestjs-integration/skill.yaml +1 -0
  1491. package/dist/agents/skills/codex/otel-nextjs-integration/skill.yaml +1 -0
  1492. package/dist/agents/skills/codex/otel-performance-insights/skill.yaml +5 -0
  1493. package/dist/agents/skills/codex/otel-sampling-strategies/skill.yaml +1 -0
  1494. package/dist/agents/skills/codex/otel-sdk-setup/skill.yaml +1 -0
  1495. package/dist/agents/skills/codex/otel-tracing-pattern/skill.yaml +1 -0
  1496. package/dist/agents/skills/codex/owasp-auth-patterns/SKILL.md +1 -0
  1497. package/dist/agents/skills/codex/owasp-auth-patterns/skill.yaml +8 -0
  1498. package/dist/agents/skills/codex/owasp-cryptography/skill.yaml +6 -0
  1499. package/dist/agents/skills/codex/owasp-csrf-protection/skill.yaml +3 -0
  1500. package/dist/agents/skills/codex/owasp-dependency-security/skill.yaml +4 -0
  1501. package/dist/agents/skills/codex/owasp-file-upload-security/skill.yaml +3 -0
  1502. package/dist/agents/skills/codex/owasp-idor-prevention/skill.yaml +4 -0
  1503. package/dist/agents/skills/codex/owasp-injection-prevention/skill.yaml +4 -0
  1504. package/dist/agents/skills/codex/owasp-logging-monitoring/skill.yaml +5 -0
  1505. package/dist/agents/skills/codex/owasp-rate-limiting/SKILL.md +1 -0
  1506. package/dist/agents/skills/codex/owasp-rate-limiting/skill.yaml +5 -0
  1507. package/dist/agents/skills/codex/owasp-secrets-management/SKILL.md +2 -1
  1508. package/dist/agents/skills/codex/owasp-secrets-management/skill.yaml +5 -0
  1509. package/dist/agents/skills/codex/owasp-security-headers/skill.yaml +4 -0
  1510. package/dist/agents/skills/codex/owasp-xss-prevention/skill.yaml +3 -0
  1511. package/dist/agents/skills/codex/perf-browser-cache/SKILL.md +151 -0
  1512. package/dist/agents/skills/codex/perf-browser-cache/skill.yaml +39 -0
  1513. package/dist/agents/skills/codex/perf-bundle-analysis/SKILL.md +217 -0
  1514. package/dist/agents/skills/codex/perf-bundle-analysis/skill.yaml +37 -0
  1515. package/dist/agents/skills/codex/perf-cache-invalidation/SKILL.md +228 -0
  1516. package/dist/agents/skills/codex/perf-cache-invalidation/skill.yaml +38 -0
  1517. package/dist/agents/skills/codex/perf-cdn-cache-control/SKILL.md +198 -0
  1518. package/dist/agents/skills/codex/perf-cdn-cache-control/skill.yaml +40 -0
  1519. package/dist/agents/skills/codex/perf-cdn-strategies/SKILL.md +161 -0
  1520. package/dist/agents/skills/codex/perf-cdn-strategies/skill.yaml +40 -0
  1521. package/dist/agents/skills/codex/perf-client-side-rendering/SKILL.md +245 -0
  1522. package/dist/agents/skills/codex/perf-client-side-rendering/skill.yaml +40 -0
  1523. package/dist/agents/skills/codex/perf-code-splitting/SKILL.md +185 -0
  1524. package/dist/agents/skills/codex/perf-code-splitting/skill.yaml +39 -0
  1525. package/dist/agents/skills/codex/perf-compression/SKILL.md +163 -0
  1526. package/dist/agents/skills/codex/perf-compression/skill.yaml +38 -0
  1527. package/dist/agents/skills/codex/perf-connection-costs/SKILL.md +165 -0
  1528. package/dist/agents/skills/codex/perf-connection-costs/skill.yaml +40 -0
  1529. package/dist/agents/skills/codex/perf-connection-pooling/SKILL.md +250 -0
  1530. package/dist/agents/skills/codex/perf-connection-pooling/skill.yaml +38 -0
  1531. package/dist/agents/skills/codex/perf-critical-rendering-path/SKILL.md +167 -0
  1532. package/dist/agents/skills/codex/perf-critical-rendering-path/skill.yaml +39 -0
  1533. package/dist/agents/skills/codex/perf-cumulative-layout-shift/SKILL.md +180 -0
  1534. package/dist/agents/skills/codex/perf-cumulative-layout-shift/skill.yaml +40 -0
  1535. package/dist/agents/skills/codex/perf-dom-parsing/SKILL.md +153 -0
  1536. package/dist/agents/skills/codex/perf-dom-parsing/skill.yaml +36 -0
  1537. package/dist/agents/skills/codex/perf-edge-rendering/SKILL.md +222 -0
  1538. package/dist/agents/skills/codex/perf-edge-rendering/skill.yaml +39 -0
  1539. package/dist/agents/skills/codex/perf-event-loop/SKILL.md +203 -0
  1540. package/dist/agents/skills/codex/perf-event-loop/skill.yaml +38 -0
  1541. package/dist/agents/skills/codex/perf-font-loading/SKILL.md +222 -0
  1542. package/dist/agents/skills/codex/perf-font-loading/skill.yaml +39 -0
  1543. package/dist/agents/skills/codex/perf-garbage-collection/SKILL.md +192 -0
  1544. package/dist/agents/skills/codex/perf-garbage-collection/skill.yaml +40 -0
  1545. package/dist/agents/skills/codex/perf-heap-profiling/SKILL.md +160 -0
  1546. package/dist/agents/skills/codex/perf-heap-profiling/skill.yaml +38 -0
  1547. package/dist/agents/skills/codex/perf-http2-multiplexing/SKILL.md +163 -0
  1548. package/dist/agents/skills/codex/perf-http2-multiplexing/skill.yaml +38 -0
  1549. package/dist/agents/skills/codex/perf-http3-quic/SKILL.md +165 -0
  1550. package/dist/agents/skills/codex/perf-http3-quic/skill.yaml +37 -0
  1551. package/dist/agents/skills/codex/perf-image-formats/SKILL.md +183 -0
  1552. package/dist/agents/skills/codex/perf-image-formats/skill.yaml +39 -0
  1553. package/dist/agents/skills/codex/perf-index-strategies/SKILL.md +210 -0
  1554. package/dist/agents/skills/codex/perf-index-strategies/skill.yaml +40 -0
  1555. package/dist/agents/skills/codex/perf-interaction-to-next-paint/SKILL.md +170 -0
  1556. package/dist/agents/skills/codex/perf-interaction-to-next-paint/skill.yaml +40 -0
  1557. package/dist/agents/skills/codex/perf-largest-contentful-paint/SKILL.md +162 -0
  1558. package/dist/agents/skills/codex/perf-largest-contentful-paint/skill.yaml +41 -0
  1559. package/dist/agents/skills/codex/perf-layout-reflow/SKILL.md +187 -0
  1560. package/dist/agents/skills/codex/perf-layout-reflow/skill.yaml +38 -0
  1561. package/dist/agents/skills/codex/perf-lazy-loading/SKILL.md +217 -0
  1562. package/dist/agents/skills/codex/perf-lazy-loading/skill.yaml +38 -0
  1563. package/dist/agents/skills/codex/perf-lazy-loading-media/SKILL.md +233 -0
  1564. package/dist/agents/skills/codex/perf-lazy-loading-media/skill.yaml +38 -0
  1565. package/dist/agents/skills/codex/perf-long-tasks/SKILL.md +194 -0
  1566. package/dist/agents/skills/codex/perf-long-tasks/skill.yaml +38 -0
  1567. package/dist/agents/skills/codex/perf-memory-leaks/SKILL.md +218 -0
  1568. package/dist/agents/skills/codex/perf-memory-leaks/skill.yaml +38 -0
  1569. package/dist/agents/skills/codex/perf-module-federation/SKILL.md +242 -0
  1570. package/dist/agents/skills/codex/perf-module-federation/skill.yaml +38 -0
  1571. package/dist/agents/skills/codex/perf-n-plus-one/SKILL.md +237 -0
  1572. package/dist/agents/skills/codex/perf-n-plus-one/skill.yaml +40 -0
  1573. package/dist/agents/skills/codex/perf-paint-compositing/SKILL.md +181 -0
  1574. package/dist/agents/skills/codex/perf-paint-compositing/skill.yaml +40 -0
  1575. package/dist/agents/skills/codex/perf-performance-api/SKILL.md +249 -0
  1576. package/dist/agents/skills/codex/perf-performance-api/skill.yaml +41 -0
  1577. package/dist/agents/skills/codex/perf-profiling-methodology/SKILL.md +181 -0
  1578. package/dist/agents/skills/codex/perf-profiling-methodology/skill.yaml +44 -0
  1579. package/dist/agents/skills/codex/perf-query-optimization/SKILL.md +203 -0
  1580. package/dist/agents/skills/codex/perf-query-optimization/skill.yaml +39 -0
  1581. package/dist/agents/skills/codex/perf-resource-hints/SKILL.md +167 -0
  1582. package/dist/agents/skills/codex/perf-resource-hints/skill.yaml +40 -0
  1583. package/dist/agents/skills/codex/perf-responsive-images/SKILL.md +225 -0
  1584. package/dist/agents/skills/codex/perf-responsive-images/skill.yaml +38 -0
  1585. package/dist/agents/skills/codex/perf-server-side-caching/SKILL.md +194 -0
  1586. package/dist/agents/skills/codex/perf-server-side-caching/skill.yaml +40 -0
  1587. package/dist/agents/skills/codex/perf-server-side-rendering/SKILL.md +239 -0
  1588. package/dist/agents/skills/codex/perf-server-side-rendering/skill.yaml +39 -0
  1589. package/dist/agents/skills/codex/perf-service-worker-caching/SKILL.md +247 -0
  1590. package/dist/agents/skills/codex/perf-service-worker-caching/skill.yaml +40 -0
  1591. package/dist/agents/skills/codex/perf-static-generation/SKILL.md +241 -0
  1592. package/dist/agents/skills/codex/perf-static-generation/skill.yaml +39 -0
  1593. package/dist/agents/skills/codex/perf-streaming-rendering/SKILL.md +242 -0
  1594. package/dist/agents/skills/codex/perf-streaming-rendering/skill.yaml +37 -0
  1595. package/dist/agents/skills/codex/perf-style-calculation/SKILL.md +166 -0
  1596. package/dist/agents/skills/codex/perf-style-calculation/skill.yaml +36 -0
  1597. package/dist/agents/skills/codex/perf-svg-optimization/SKILL.md +249 -0
  1598. package/dist/agents/skills/codex/perf-svg-optimization/skill.yaml +37 -0
  1599. package/dist/agents/skills/codex/perf-tree-shaking/SKILL.md +225 -0
  1600. package/dist/agents/skills/codex/perf-tree-shaking/skill.yaml +38 -0
  1601. package/dist/agents/skills/codex/perf-web-workers/SKILL.md +237 -0
  1602. package/dist/agents/skills/codex/perf-web-workers/skill.yaml +40 -0
  1603. package/dist/agents/skills/codex/prisma-client-queries/skill.yaml +1 -0
  1604. package/dist/agents/skills/codex/prisma-filtering-sorting/skill.yaml +1 -0
  1605. package/dist/agents/skills/codex/prisma-migrations/skill.yaml +3 -0
  1606. package/dist/agents/skills/codex/prisma-performance-patterns/skill.yaml +8 -0
  1607. package/dist/agents/skills/codex/prisma-raw-queries/skill.yaml +1 -0
  1608. package/dist/agents/skills/codex/prisma-relations-pattern/skill.yaml +1 -0
  1609. package/dist/agents/skills/codex/prisma-schema-design/skill.yaml +4 -0
  1610. package/dist/agents/skills/codex/prisma-seeding-pattern/skill.yaml +1 -0
  1611. package/dist/agents/skills/codex/prisma-soft-delete/skill.yaml +1 -0
  1612. package/dist/agents/skills/codex/prisma-transactions/skill.yaml +4 -0
  1613. package/dist/agents/skills/codex/prisma-type-generation/skill.yaml +1 -0
  1614. package/dist/agents/skills/codex/react-2026/skill.yaml +1 -0
  1615. package/dist/agents/skills/codex/react-client-rendering/skill.yaml +1 -0
  1616. package/dist/agents/skills/codex/react-compound-pattern/skill.yaml +1 -0
  1617. package/dist/agents/skills/codex/react-concurrent-ui/skill.yaml +1 -0
  1618. package/dist/agents/skills/codex/react-container-presentational/skill.yaml +1 -0
  1619. package/dist/agents/skills/codex/react-context-pattern/skill.yaml +1 -0
  1620. package/dist/agents/skills/codex/react-dynamic-import/skill.yaml +1 -0
  1621. package/dist/agents/skills/codex/react-hoc-pattern/skill.yaml +1 -0
  1622. package/dist/agents/skills/codex/react-hooks-pattern/skill.yaml +1 -0
  1623. package/dist/agents/skills/codex/react-islands-pattern/skill.yaml +1 -0
  1624. package/dist/agents/skills/codex/react-memoization-pattern/skill.yaml +1 -0
  1625. package/dist/agents/skills/codex/react-progressive-hydration/skill.yaml +1 -0
  1626. package/dist/agents/skills/codex/react-provider-pattern/skill.yaml +1 -0
  1627. package/dist/agents/skills/codex/react-render-props-pattern/skill.yaml +1 -0
  1628. package/dist/agents/skills/codex/react-server-components/skill.yaml +1 -0
  1629. package/dist/agents/skills/codex/react-server-rendering/skill.yaml +1 -0
  1630. package/dist/agents/skills/codex/react-state-management-pattern/skill.yaml +1 -0
  1631. package/dist/agents/skills/codex/react-static-import/skill.yaml +1 -0
  1632. package/dist/agents/skills/codex/react-suspense-pattern/skill.yaml +1 -0
  1633. package/dist/agents/skills/codex/redux-entity-adapter/skill.yaml +1 -0
  1634. package/dist/agents/skills/codex/redux-listener-middleware/skill.yaml +1 -0
  1635. package/dist/agents/skills/codex/redux-persistence-pattern/skill.yaml +1 -0
  1636. package/dist/agents/skills/codex/redux-rtk-optimistic/skill.yaml +1 -0
  1637. package/dist/agents/skills/codex/redux-rtk-query-endpoints/skill.yaml +1 -0
  1638. package/dist/agents/skills/codex/redux-rtk-query-setup/skill.yaml +1 -0
  1639. package/dist/agents/skills/codex/redux-selectors-pattern/skill.yaml +1 -0
  1640. package/dist/agents/skills/codex/redux-slice-pattern/skill.yaml +1 -0
  1641. package/dist/agents/skills/codex/redux-store-setup/skill.yaml +1 -0
  1642. package/dist/agents/skills/codex/redux-testing-patterns/skill.yaml +1 -0
  1643. package/dist/agents/skills/codex/redux-thunk-pattern/skill.yaml +1 -0
  1644. package/dist/agents/skills/codex/redux-typescript-patterns/skill.yaml +1 -0
  1645. package/dist/agents/skills/codex/resilience-bulkhead-pattern/skill.yaml +1 -0
  1646. package/dist/agents/skills/codex/resilience-chaos-testing/skill.yaml +1 -0
  1647. package/dist/agents/skills/codex/resilience-circuit-breaker/skill.yaml +1 -0
  1648. package/dist/agents/skills/codex/resilience-dead-letter/skill.yaml +1 -0
  1649. package/dist/agents/skills/codex/resilience-fallback-pattern/skill.yaml +1 -0
  1650. package/dist/agents/skills/codex/resilience-health-checks/skill.yaml +1 -0
  1651. package/dist/agents/skills/codex/resilience-idempotency/skill.yaml +1 -0
  1652. package/dist/agents/skills/codex/resilience-rate-limiting/skill.yaml +1 -0
  1653. package/dist/agents/skills/codex/resilience-retry-pattern/skill.yaml +1 -0
  1654. package/dist/agents/skills/codex/resilience-timeout-pattern/skill.yaml +1 -0
  1655. package/dist/agents/skills/codex/security-abac-design/SKILL.md +154 -0
  1656. package/dist/agents/skills/codex/security-abac-design/skill.yaml +41 -0
  1657. package/dist/agents/skills/codex/security-asymmetric-encryption/SKILL.md +201 -0
  1658. package/dist/agents/skills/codex/security-asymmetric-encryption/skill.yaml +42 -0
  1659. package/dist/agents/skills/codex/security-attack-trees/SKILL.md +150 -0
  1660. package/dist/agents/skills/codex/security-attack-trees/skill.yaml +37 -0
  1661. package/dist/agents/skills/codex/security-audit-log-design/SKILL.md +227 -0
  1662. package/dist/agents/skills/codex/security-audit-log-design/skill.yaml +39 -0
  1663. package/dist/agents/skills/codex/security-authentication-flows/SKILL.md +168 -0
  1664. package/dist/agents/skills/codex/security-authentication-flows/skill.yaml +42 -0
  1665. package/dist/agents/skills/codex/security-capability-based-security/SKILL.md +158 -0
  1666. package/dist/agents/skills/codex/security-capability-based-security/skill.yaml +40 -0
  1667. package/dist/agents/skills/codex/security-certificate-management/SKILL.md +153 -0
  1668. package/dist/agents/skills/codex/security-certificate-management/skill.yaml +42 -0
  1669. package/dist/agents/skills/codex/security-ci-security-testing/SKILL.md +159 -0
  1670. package/dist/agents/skills/codex/security-ci-security-testing/skill.yaml +43 -0
  1671. package/dist/agents/skills/codex/security-code-signing/SKILL.md +155 -0
  1672. package/dist/agents/skills/codex/security-code-signing/skill.yaml +40 -0
  1673. package/dist/agents/skills/codex/security-compliance-logging/SKILL.md +183 -0
  1674. package/dist/agents/skills/codex/security-compliance-logging/skill.yaml +38 -0
  1675. package/dist/agents/skills/codex/security-credential-storage/SKILL.md +222 -0
  1676. package/dist/agents/skills/codex/security-credential-storage/skill.yaml +41 -0
  1677. package/dist/agents/skills/codex/security-cryptographic-randomness/SKILL.md +154 -0
  1678. package/dist/agents/skills/codex/security-cryptographic-randomness/skill.yaml +41 -0
  1679. package/dist/agents/skills/codex/security-dependency-auditing/SKILL.md +156 -0
  1680. package/dist/agents/skills/codex/security-dependency-auditing/skill.yaml +39 -0
  1681. package/dist/agents/skills/codex/security-deserialization-attacks/SKILL.md +180 -0
  1682. package/dist/agents/skills/codex/security-deserialization-attacks/skill.yaml +38 -0
  1683. package/dist/agents/skills/codex/security-environment-variable-risks/SKILL.md +153 -0
  1684. package/dist/agents/skills/codex/security-environment-variable-risks/skill.yaml +37 -0
  1685. package/dist/agents/skills/codex/security-forensics-fundamentals/SKILL.md +198 -0
  1686. package/dist/agents/skills/codex/security-forensics-fundamentals/skill.yaml +40 -0
  1687. package/dist/agents/skills/codex/security-hashing-fundamentals/SKILL.md +212 -0
  1688. package/dist/agents/skills/codex/security-hashing-fundamentals/skill.yaml +40 -0
  1689. package/dist/agents/skills/codex/security-hmac-signatures/SKILL.md +165 -0
  1690. package/dist/agents/skills/codex/security-hmac-signatures/skill.yaml +40 -0
  1691. package/dist/agents/skills/codex/security-hsts-preloading/SKILL.md +154 -0
  1692. package/dist/agents/skills/codex/security-hsts-preloading/skill.yaml +38 -0
  1693. package/dist/agents/skills/codex/security-identity-verification/SKILL.md +157 -0
  1694. package/dist/agents/skills/codex/security-identity-verification/skill.yaml +39 -0
  1695. package/dist/agents/skills/codex/security-incident-containment/SKILL.md +190 -0
  1696. package/dist/agents/skills/codex/security-incident-containment/skill.yaml +40 -0
  1697. package/dist/agents/skills/codex/security-injection-families/SKILL.md +235 -0
  1698. package/dist/agents/skills/codex/security-injection-families/skill.yaml +41 -0
  1699. package/dist/agents/skills/codex/security-log-correlation/SKILL.md +178 -0
  1700. package/dist/agents/skills/codex/security-log-correlation/skill.yaml +39 -0
  1701. package/dist/agents/skills/codex/security-memory-safety/SKILL.md +234 -0
  1702. package/dist/agents/skills/codex/security-memory-safety/skill.yaml +39 -0
  1703. package/dist/agents/skills/codex/security-mfa-design/SKILL.md +150 -0
  1704. package/dist/agents/skills/codex/security-mfa-design/skill.yaml +41 -0
  1705. package/dist/agents/skills/codex/security-microsegmentation/SKILL.md +154 -0
  1706. package/dist/agents/skills/codex/security-microsegmentation/skill.yaml +40 -0
  1707. package/dist/agents/skills/codex/security-mtls-design/SKILL.md +158 -0
  1708. package/dist/agents/skills/codex/security-mtls-design/skill.yaml +39 -0
  1709. package/dist/agents/skills/codex/security-penetration-testing/SKILL.md +166 -0
  1710. package/dist/agents/skills/codex/security-penetration-testing/skill.yaml +40 -0
  1711. package/dist/agents/skills/codex/security-post-incident-review/SKILL.md +205 -0
  1712. package/dist/agents/skills/codex/security-post-incident-review/skill.yaml +39 -0
  1713. package/dist/agents/skills/codex/security-race-conditions/SKILL.md +186 -0
  1714. package/dist/agents/skills/codex/security-race-conditions/skill.yaml +39 -0
  1715. package/dist/agents/skills/codex/security-rbac-design/SKILL.md +209 -0
  1716. package/dist/agents/skills/codex/security-rbac-design/skill.yaml +40 -0
  1717. package/dist/agents/skills/codex/security-rebac-design/SKILL.md +154 -0
  1718. package/dist/agents/skills/codex/security-rebac-design/skill.yaml +39 -0
  1719. package/dist/agents/skills/codex/security-sbom-provenance/SKILL.md +157 -0
  1720. package/dist/agents/skills/codex/security-sbom-provenance/skill.yaml +39 -0
  1721. package/dist/agents/skills/codex/security-secrets-lifecycle/SKILL.md +190 -0
  1722. package/dist/agents/skills/codex/security-secrets-lifecycle/skill.yaml +39 -0
  1723. package/dist/agents/skills/codex/security-security-champions/SKILL.md +165 -0
  1724. package/dist/agents/skills/codex/security-security-champions/skill.yaml +37 -0
  1725. package/dist/agents/skills/codex/security-session-management/SKILL.md +196 -0
  1726. package/dist/agents/skills/codex/security-session-management/skill.yaml +41 -0
  1727. package/dist/agents/skills/codex/security-shift-left-design/SKILL.md +153 -0
  1728. package/dist/agents/skills/codex/security-shift-left-design/skill.yaml +38 -0
  1729. package/dist/agents/skills/codex/security-symmetric-encryption/SKILL.md +176 -0
  1730. package/dist/agents/skills/codex/security-symmetric-encryption/skill.yaml +41 -0
  1731. package/dist/agents/skills/codex/security-threat-modeling-process/SKILL.md +150 -0
  1732. package/dist/agents/skills/codex/security-threat-modeling-process/skill.yaml +38 -0
  1733. package/dist/agents/skills/codex/security-threat-modeling-stride/SKILL.md +150 -0
  1734. package/dist/agents/skills/codex/security-threat-modeling-stride/skill.yaml +40 -0
  1735. package/dist/agents/skills/codex/security-tls-fundamentals/SKILL.md +186 -0
  1736. package/dist/agents/skills/codex/security-tls-fundamentals/skill.yaml +40 -0
  1737. package/dist/agents/skills/codex/security-trust-boundaries/SKILL.md +152 -0
  1738. package/dist/agents/skills/codex/security-trust-boundaries/skill.yaml +39 -0
  1739. package/dist/agents/skills/codex/security-vault-patterns/SKILL.md +155 -0
  1740. package/dist/agents/skills/codex/security-vault-patterns/skill.yaml +39 -0
  1741. package/dist/agents/skills/codex/security-vulnerability-disclosure/SKILL.md +207 -0
  1742. package/dist/agents/skills/codex/security-vulnerability-disclosure/skill.yaml +39 -0
  1743. package/dist/agents/skills/codex/security-zero-trust-principles/SKILL.md +229 -0
  1744. package/dist/agents/skills/codex/security-zero-trust-principles/skill.yaml +40 -0
  1745. package/dist/agents/skills/codex/state-context-pattern/skill.yaml +1 -0
  1746. package/dist/agents/skills/codex/state-jotai-atoms/skill.yaml +1 -0
  1747. package/dist/agents/skills/codex/state-selection-patterns/skill.yaml +1 -0
  1748. package/dist/agents/skills/codex/state-server-client-sync/skill.yaml +1 -0
  1749. package/dist/agents/skills/codex/state-zustand-devtools/skill.yaml +1 -0
  1750. package/dist/agents/skills/codex/state-zustand-immer/skill.yaml +1 -0
  1751. package/dist/agents/skills/codex/state-zustand-persist/skill.yaml +1 -0
  1752. package/dist/agents/skills/codex/state-zustand-react/skill.yaml +1 -0
  1753. package/dist/agents/skills/codex/state-zustand-slices/skill.yaml +1 -0
  1754. package/dist/agents/skills/codex/state-zustand-store/skill.yaml +1 -0
  1755. package/dist/agents/skills/codex/svelte-adapter-config/skill.yaml +1 -0
  1756. package/dist/agents/skills/codex/svelte-component-composition/skill.yaml +1 -0
  1757. package/dist/agents/skills/codex/svelte-error-pages/skill.yaml +1 -0
  1758. package/dist/agents/skills/codex/svelte-form-actions/skill.yaml +1 -0
  1759. package/dist/agents/skills/codex/svelte-load-functions/skill.yaml +1 -0
  1760. package/dist/agents/skills/codex/svelte-performance-patterns/skill.yaml +6 -0
  1761. package/dist/agents/skills/codex/svelte-routing-pattern/skill.yaml +1 -0
  1762. package/dist/agents/skills/codex/svelte-runes-pattern/skill.yaml +1 -0
  1763. package/dist/agents/skills/codex/svelte-server-hooks/skill.yaml +1 -0
  1764. package/dist/agents/skills/codex/svelte-state-management/skill.yaml +1 -0
  1765. package/dist/agents/skills/codex/svelte-stores-pattern/skill.yaml +1 -0
  1766. package/dist/agents/skills/codex/svelte-testing-patterns/skill.yaml +1 -0
  1767. package/dist/agents/skills/codex/svelte-transitions-animations/skill.yaml +1 -0
  1768. package/dist/agents/skills/codex/tanstack-cache-management/skill.yaml +1 -0
  1769. package/dist/agents/skills/codex/tanstack-dependent-queries/skill.yaml +1 -0
  1770. package/dist/agents/skills/codex/tanstack-devtools/skill.yaml +1 -0
  1771. package/dist/agents/skills/codex/tanstack-infinite-queries/skill.yaml +1 -0
  1772. package/dist/agents/skills/codex/tanstack-mutation-patterns/skill.yaml +1 -0
  1773. package/dist/agents/skills/codex/tanstack-optimistic-updates/skill.yaml +1 -0
  1774. package/dist/agents/skills/codex/tanstack-prefetching/skill.yaml +1 -0
  1775. package/dist/agents/skills/codex/tanstack-query-invalidation/skill.yaml +1 -0
  1776. package/dist/agents/skills/codex/tanstack-query-keys/skill.yaml +1 -0
  1777. package/dist/agents/skills/codex/tanstack-suspense-mode/skill.yaml +1 -0
  1778. package/dist/agents/skills/codex/test-accessibility-testing/skill.yaml +1 -0
  1779. package/dist/agents/skills/codex/test-component-react/skill.yaml +1 -0
  1780. package/dist/agents/skills/codex/test-component-svelte/skill.yaml +1 -0
  1781. package/dist/agents/skills/codex/test-contract-testing/skill.yaml +1 -0
  1782. package/dist/agents/skills/codex/test-coverage-patterns/skill.yaml +1 -0
  1783. package/dist/agents/skills/codex/test-e2e-strategy/skill.yaml +1 -0
  1784. package/dist/agents/skills/codex/test-factory-patterns/skill.yaml +1 -0
  1785. package/dist/agents/skills/codex/test-integration-patterns/skill.yaml +1 -0
  1786. package/dist/agents/skills/codex/test-mock-patterns/skill.yaml +1 -0
  1787. package/dist/agents/skills/codex/test-msw-pattern/skill.yaml +1 -0
  1788. package/dist/agents/skills/codex/test-performance-testing/skill.yaml +5 -0
  1789. package/dist/agents/skills/codex/test-playwright-patterns/skill.yaml +1 -0
  1790. package/dist/agents/skills/codex/test-playwright-setup/skill.yaml +1 -0
  1791. package/dist/agents/skills/codex/test-property-based/skill.yaml +1 -0
  1792. package/dist/agents/skills/codex/test-snapshot-patterns/skill.yaml +1 -0
  1793. package/dist/agents/skills/codex/test-tdd-workflow/skill.yaml +1 -0
  1794. package/dist/agents/skills/codex/test-unit-patterns/skill.yaml +1 -0
  1795. package/dist/agents/skills/codex/test-vitest-config/skill.yaml +1 -0
  1796. package/dist/agents/skills/codex/trpc-context-pattern/skill.yaml +1 -0
  1797. package/dist/agents/skills/codex/trpc-error-handling/SKILL.md +1 -0
  1798. package/dist/agents/skills/codex/trpc-error-handling/skill.yaml +3 -0
  1799. package/dist/agents/skills/codex/trpc-input-validation/SKILL.md +1 -0
  1800. package/dist/agents/skills/codex/trpc-input-validation/skill.yaml +2 -0
  1801. package/dist/agents/skills/codex/trpc-middleware-pattern/skill.yaml +1 -0
  1802. package/dist/agents/skills/codex/trpc-nextjs-integration/skill.yaml +1 -0
  1803. package/dist/agents/skills/codex/trpc-react-query-integration/skill.yaml +1 -0
  1804. package/dist/agents/skills/codex/trpc-router-composition/SKILL.md +1 -0
  1805. package/dist/agents/skills/codex/trpc-router-composition/skill.yaml +3 -0
  1806. package/dist/agents/skills/codex/trpc-subscription-pattern/skill.yaml +1 -0
  1807. package/dist/agents/skills/codex/ts-async-patterns/skill.yaml +1 -0
  1808. package/dist/agents/skills/codex/ts-branded-types/skill.yaml +1 -0
  1809. package/dist/agents/skills/codex/ts-class-patterns/skill.yaml +1 -0
  1810. package/dist/agents/skills/codex/ts-conditional-types/skill.yaml +1 -0
  1811. package/dist/agents/skills/codex/ts-config-patterns/skill.yaml +1 -0
  1812. package/dist/agents/skills/codex/ts-declaration-merging/skill.yaml +1 -0
  1813. package/dist/agents/skills/codex/ts-decorator-patterns/skill.yaml +1 -0
  1814. package/dist/agents/skills/codex/ts-discriminated-unions/skill.yaml +1 -0
  1815. package/dist/agents/skills/codex/ts-error-handling-types/skill.yaml +1 -0
  1816. package/dist/agents/skills/codex/ts-generics-pattern/skill.yaml +1 -0
  1817. package/dist/agents/skills/codex/ts-mapped-types/skill.yaml +1 -0
  1818. package/dist/agents/skills/codex/ts-module-patterns/skill.yaml +1 -0
  1819. package/dist/agents/skills/codex/ts-performance-patterns/skill.yaml +5 -0
  1820. package/dist/agents/skills/codex/ts-satisfies-operator/skill.yaml +1 -0
  1821. package/dist/agents/skills/codex/ts-strict-mode/skill.yaml +1 -0
  1822. package/dist/agents/skills/codex/ts-template-literal-types/skill.yaml +1 -0
  1823. package/dist/agents/skills/codex/ts-testing-types/skill.yaml +1 -0
  1824. package/dist/agents/skills/codex/ts-type-guards/skill.yaml +1 -0
  1825. package/dist/agents/skills/codex/ts-utility-types/skill.yaml +1 -0
  1826. package/dist/agents/skills/codex/ts-zod-integration/skill.yaml +1 -0
  1827. package/dist/agents/skills/codex/ux-active-voice/SKILL.md +150 -0
  1828. package/dist/agents/skills/codex/ux-active-voice/skill.yaml +32 -0
  1829. package/dist/agents/skills/codex/ux-button-cta-copy/SKILL.md +159 -0
  1830. package/dist/agents/skills/codex/ux-button-cta-copy/skill.yaml +34 -0
  1831. package/dist/agents/skills/codex/ux-confirmation-dialogs/SKILL.md +156 -0
  1832. package/dist/agents/skills/codex/ux-confirmation-dialogs/skill.yaml +33 -0
  1833. package/dist/agents/skills/codex/ux-content-hierarchy/SKILL.md +150 -0
  1834. package/dist/agents/skills/codex/ux-content-hierarchy/skill.yaml +33 -0
  1835. package/dist/agents/skills/codex/ux-data-table-copy/SKILL.md +154 -0
  1836. package/dist/agents/skills/codex/ux-data-table-copy/skill.yaml +34 -0
  1837. package/dist/agents/skills/codex/ux-destructive-action-copy/SKILL.md +152 -0
  1838. package/dist/agents/skills/codex/ux-destructive-action-copy/skill.yaml +34 -0
  1839. package/dist/agents/skills/codex/ux-empty-states/SKILL.md +155 -0
  1840. package/dist/agents/skills/codex/ux-empty-states/skill.yaml +36 -0
  1841. package/dist/agents/skills/codex/ux-error-messages/SKILL.md +159 -0
  1842. package/dist/agents/skills/codex/ux-error-messages/skill.yaml +35 -0
  1843. package/dist/agents/skills/codex/ux-error-severity/SKILL.md +155 -0
  1844. package/dist/agents/skills/codex/ux-error-severity/skill.yaml +35 -0
  1845. package/dist/agents/skills/codex/ux-form-labels/SKILL.md +159 -0
  1846. package/dist/agents/skills/codex/ux-form-labels/skill.yaml +36 -0
  1847. package/dist/agents/skills/codex/ux-inclusive-language/SKILL.md +161 -0
  1848. package/dist/agents/skills/codex/ux-inclusive-language/skill.yaml +33 -0
  1849. package/dist/agents/skills/codex/ux-internationalization-writing/SKILL.md +196 -0
  1850. package/dist/agents/skills/codex/ux-internationalization-writing/skill.yaml +35 -0
  1851. package/dist/agents/skills/codex/ux-loading-states/SKILL.md +162 -0
  1852. package/dist/agents/skills/codex/ux-loading-states/skill.yaml +33 -0
  1853. package/dist/agents/skills/codex/ux-microcopy-principles/SKILL.md +152 -0
  1854. package/dist/agents/skills/codex/ux-microcopy-principles/skill.yaml +37 -0
  1855. package/dist/agents/skills/codex/ux-navigation-labels/SKILL.md +163 -0
  1856. package/dist/agents/skills/codex/ux-navigation-labels/skill.yaml +35 -0
  1857. package/dist/agents/skills/codex/ux-notification-copy/SKILL.md +150 -0
  1858. package/dist/agents/skills/codex/ux-notification-copy/skill.yaml +35 -0
  1859. package/dist/agents/skills/codex/ux-onboarding-copy/SKILL.md +156 -0
  1860. package/dist/agents/skills/codex/ux-onboarding-copy/skill.yaml +35 -0
  1861. package/dist/agents/skills/codex/ux-permission-access-copy/SKILL.md +150 -0
  1862. package/dist/agents/skills/codex/ux-permission-access-copy/skill.yaml +34 -0
  1863. package/dist/agents/skills/codex/ux-plain-language/SKILL.md +157 -0
  1864. package/dist/agents/skills/codex/ux-plain-language/skill.yaml +34 -0
  1865. package/dist/agents/skills/codex/ux-search-copy/SKILL.md +154 -0
  1866. package/dist/agents/skills/codex/ux-search-copy/skill.yaml +33 -0
  1867. package/dist/agents/skills/codex/ux-settings-preferences/SKILL.md +152 -0
  1868. package/dist/agents/skills/codex/ux-settings-preferences/skill.yaml +33 -0
  1869. package/dist/agents/skills/codex/ux-success-feedback/SKILL.md +163 -0
  1870. package/dist/agents/skills/codex/ux-success-feedback/skill.yaml +33 -0
  1871. package/dist/agents/skills/codex/ux-tooltip-contextual-help/SKILL.md +163 -0
  1872. package/dist/agents/skills/codex/ux-tooltip-contextual-help/skill.yaml +33 -0
  1873. package/dist/agents/skills/codex/ux-voice-tone/SKILL.md +150 -0
  1874. package/dist/agents/skills/codex/ux-voice-tone/skill.yaml +33 -0
  1875. package/dist/agents/skills/codex/ux-writing-for-scanning/SKILL.md +150 -0
  1876. package/dist/agents/skills/codex/ux-writing-for-scanning/skill.yaml +35 -0
  1877. package/dist/agents/skills/codex/validate-context-engineering/skill.yaml +1 -0
  1878. package/dist/agents/skills/codex/vue-async-components/skill.yaml +1 -0
  1879. package/dist/agents/skills/codex/vue-component-events/skill.yaml +1 -0
  1880. package/dist/agents/skills/codex/vue-composables-pattern/skill.yaml +1 -0
  1881. package/dist/agents/skills/codex/vue-directive-pattern/skill.yaml +1 -0
  1882. package/dist/agents/skills/codex/vue-pinia-pattern/skill.yaml +1 -0
  1883. package/dist/agents/skills/codex/vue-provide-inject/skill.yaml +1 -0
  1884. package/dist/agents/skills/codex/vue-reactive-refs/skill.yaml +1 -0
  1885. package/dist/agents/skills/codex/vue-renderless-components/skill.yaml +1 -0
  1886. package/dist/agents/skills/codex/vue-slots-pattern/skill.yaml +1 -0
  1887. package/dist/agents/skills/codex/vue-teleport-pattern/skill.yaml +1 -0
  1888. package/dist/agents/skills/codex/vue-watchers-pattern/skill.yaml +1 -0
  1889. package/dist/agents/skills/codex/xstate-actor-pattern/skill.yaml +1 -0
  1890. package/dist/agents/skills/codex/xstate-guards-actions/skill.yaml +1 -0
  1891. package/dist/agents/skills/codex/xstate-history-states/skill.yaml +1 -0
  1892. package/dist/agents/skills/codex/xstate-invoke-pattern/skill.yaml +1 -0
  1893. package/dist/agents/skills/codex/xstate-machine-definition/skill.yaml +1 -0
  1894. package/dist/agents/skills/codex/xstate-parallel-states/skill.yaml +1 -0
  1895. package/dist/agents/skills/codex/xstate-react-integration/skill.yaml +1 -0
  1896. package/dist/agents/skills/codex/xstate-testing-patterns/skill.yaml +1 -0
  1897. package/dist/agents/skills/codex/xstate-typegen/skill.yaml +1 -0
  1898. package/dist/agents/skills/codex/xstate-visualization/skill.yaml +1 -0
  1899. package/dist/agents/skills/codex/zod-array-validation/skill.yaml +1 -0
  1900. package/dist/agents/skills/codex/zod-async-validation/skill.yaml +1 -0
  1901. package/dist/agents/skills/codex/zod-error-handling/skill.yaml +1 -0
  1902. package/dist/agents/skills/codex/zod-infer-types/skill.yaml +1 -0
  1903. package/dist/agents/skills/codex/zod-nextjs-integration/skill.yaml +1 -0
  1904. package/dist/agents/skills/codex/zod-object-patterns/skill.yaml +1 -0
  1905. package/dist/agents/skills/codex/zod-schema-definition/skill.yaml +1 -0
  1906. package/dist/agents/skills/codex/zod-string-validation/skill.yaml +1 -0
  1907. package/dist/agents/skills/codex/zod-transform-refine/skill.yaml +1 -0
  1908. package/dist/agents/skills/codex/zod-union-discriminated/skill.yaml +1 -0
  1909. package/dist/agents/skills/cursor/a11y-aria-patterns/skill.yaml +1 -0
  1910. package/dist/agents/skills/cursor/a11y-color-contrast/skill.yaml +1 -0
  1911. package/dist/agents/skills/cursor/a11y-form-patterns/skill.yaml +2 -0
  1912. package/dist/agents/skills/cursor/a11y-image-text-alt/skill.yaml +1 -0
  1913. package/dist/agents/skills/cursor/a11y-keyboard-navigation/skill.yaml +1 -0
  1914. package/dist/agents/skills/cursor/a11y-modal-patterns/skill.yaml +1 -0
  1915. package/dist/agents/skills/cursor/a11y-motion-animation/skill.yaml +1 -0
  1916. package/dist/agents/skills/cursor/a11y-screen-reader-testing/skill.yaml +1 -0
  1917. package/dist/agents/skills/cursor/a11y-semantic-html/skill.yaml +1 -0
  1918. package/dist/agents/skills/cursor/a11y-testing-automation/skill.yaml +1 -0
  1919. package/dist/agents/skills/cursor/add-harness-component/skill.yaml +1 -0
  1920. package/dist/agents/skills/cursor/align-documentation/skill.yaml +1 -0
  1921. package/dist/agents/skills/cursor/angular-component-pattern/skill.yaml +1 -0
  1922. package/dist/agents/skills/cursor/angular-directive-pattern/skill.yaml +1 -0
  1923. package/dist/agents/skills/cursor/angular-http-interceptors/skill.yaml +1 -0
  1924. package/dist/agents/skills/cursor/angular-lazy-loading/skill.yaml +1 -0
  1925. package/dist/agents/skills/cursor/angular-performance-patterns/skill.yaml +6 -0
  1926. package/dist/agents/skills/cursor/angular-pipe-pattern/skill.yaml +1 -0
  1927. package/dist/agents/skills/cursor/angular-reactive-forms/skill.yaml +1 -0
  1928. package/dist/agents/skills/cursor/angular-routing-guards/skill.yaml +1 -0
  1929. package/dist/agents/skills/cursor/angular-rxjs-patterns/skill.yaml +1 -0
  1930. package/dist/agents/skills/cursor/angular-schematics/skill.yaml +1 -0
  1931. package/dist/agents/skills/cursor/angular-service-di/skill.yaml +1 -0
  1932. package/dist/agents/skills/cursor/angular-signals-pattern/skill.yaml +1 -0
  1933. package/dist/agents/skills/cursor/angular-standalone-components/skill.yaml +1 -0
  1934. package/dist/agents/skills/cursor/angular-state-management/skill.yaml +1 -0
  1935. package/dist/agents/skills/cursor/angular-testing-patterns/skill.yaml +1 -0
  1936. package/dist/agents/skills/cursor/api-api-keys/SKILL.md +135 -0
  1937. package/dist/agents/skills/cursor/api-api-keys/skill.yaml +41 -0
  1938. package/dist/agents/skills/cursor/api-authentication-patterns/SKILL.md +117 -0
  1939. package/dist/agents/skills/cursor/api-authentication-patterns/skill.yaml +44 -0
  1940. package/dist/agents/skills/cursor/api-backward-compatibility/SKILL.md +170 -0
  1941. package/dist/agents/skills/cursor/api-backward-compatibility/skill.yaml +39 -0
  1942. package/dist/agents/skills/cursor/api-bulk-operations/SKILL.md +198 -0
  1943. package/dist/agents/skills/cursor/api-bulk-operations/skill.yaml +39 -0
  1944. package/dist/agents/skills/cursor/api-conditional-requests/SKILL.md +233 -0
  1945. package/dist/agents/skills/cursor/api-conditional-requests/skill.yaml +41 -0
  1946. package/dist/agents/skills/cursor/api-content-negotiation/SKILL.md +194 -0
  1947. package/dist/agents/skills/cursor/api-content-negotiation/skill.yaml +39 -0
  1948. package/dist/agents/skills/cursor/api-contract-testing/SKILL.md +222 -0
  1949. package/dist/agents/skills/cursor/api-contract-testing/skill.yaml +42 -0
  1950. package/dist/agents/skills/cursor/api-deprecation-strategy/SKILL.md +156 -0
  1951. package/dist/agents/skills/cursor/api-deprecation-strategy/skill.yaml +39 -0
  1952. package/dist/agents/skills/cursor/api-error-contracts/SKILL.md +149 -0
  1953. package/dist/agents/skills/cursor/api-error-contracts/skill.yaml +40 -0
  1954. package/dist/agents/skills/cursor/api-field-selection/SKILL.md +193 -0
  1955. package/dist/agents/skills/cursor/api-field-selection/skill.yaml +39 -0
  1956. package/dist/agents/skills/cursor/api-filtering-sorting/SKILL.md +170 -0
  1957. package/dist/agents/skills/cursor/api-filtering-sorting/skill.yaml +40 -0
  1958. package/dist/agents/skills/cursor/api-hateoas/SKILL.md +212 -0
  1959. package/dist/agents/skills/cursor/api-hateoas/skill.yaml +40 -0
  1960. package/dist/agents/skills/cursor/api-http-caching/SKILL.md +188 -0
  1961. package/dist/agents/skills/cursor/api-http-caching/skill.yaml +43 -0
  1962. package/dist/agents/skills/cursor/api-http-methods/SKILL.md +185 -0
  1963. package/dist/agents/skills/cursor/api-http-methods/skill.yaml +43 -0
  1964. package/dist/agents/skills/cursor/api-idempotency-keys/SKILL.md +176 -0
  1965. package/dist/agents/skills/cursor/api-idempotency-keys/skill.yaml +40 -0
  1966. package/dist/agents/skills/cursor/api-long-running-operations/SKILL.md +209 -0
  1967. package/dist/agents/skills/cursor/api-long-running-operations/skill.yaml +40 -0
  1968. package/dist/agents/skills/cursor/api-nested-vs-flat/SKILL.md +173 -0
  1969. package/dist/agents/skills/cursor/api-nested-vs-flat/skill.yaml +39 -0
  1970. package/dist/agents/skills/cursor/api-oauth2-flows/SKILL.md +150 -0
  1971. package/dist/agents/skills/cursor/api-oauth2-flows/skill.yaml +42 -0
  1972. package/dist/agents/skills/cursor/api-openapi-design/SKILL.md +260 -0
  1973. package/dist/agents/skills/cursor/api-openapi-design/skill.yaml +44 -0
  1974. package/dist/agents/skills/cursor/api-pagination-cursor/SKILL.md +159 -0
  1975. package/dist/agents/skills/cursor/api-pagination-cursor/skill.yaml +40 -0
  1976. package/dist/agents/skills/cursor/api-pagination-keyset/SKILL.md +167 -0
  1977. package/dist/agents/skills/cursor/api-pagination-keyset/skill.yaml +39 -0
  1978. package/dist/agents/skills/cursor/api-pagination-offset/SKILL.md +135 -0
  1979. package/dist/agents/skills/cursor/api-pagination-offset/skill.yaml +39 -0
  1980. package/dist/agents/skills/cursor/api-problem-details-rfc/SKILL.md +164 -0
  1981. package/dist/agents/skills/cursor/api-problem-details-rfc/skill.yaml +38 -0
  1982. package/dist/agents/skills/cursor/api-rate-limit-headers/SKILL.md +144 -0
  1983. package/dist/agents/skills/cursor/api-rate-limit-headers/skill.yaml +39 -0
  1984. package/dist/agents/skills/cursor/api-rate-limiting/SKILL.md +131 -0
  1985. package/dist/agents/skills/cursor/api-rate-limiting/skill.yaml +41 -0
  1986. package/dist/agents/skills/cursor/api-resource-granularity/SKILL.md +165 -0
  1987. package/dist/agents/skills/cursor/api-resource-granularity/skill.yaml +40 -0
  1988. package/dist/agents/skills/cursor/api-resource-modeling/SKILL.md +155 -0
  1989. package/dist/agents/skills/cursor/api-resource-modeling/skill.yaml +40 -0
  1990. package/dist/agents/skills/cursor/api-rest-maturity-model/SKILL.md +215 -0
  1991. package/dist/agents/skills/cursor/api-rest-maturity-model/skill.yaml +39 -0
  1992. package/dist/agents/skills/cursor/api-retry-guidance/SKILL.md +168 -0
  1993. package/dist/agents/skills/cursor/api-retry-guidance/skill.yaml +41 -0
  1994. package/dist/agents/skills/cursor/api-sdk-ergonomics/SKILL.md +194 -0
  1995. package/dist/agents/skills/cursor/api-sdk-ergonomics/skill.yaml +43 -0
  1996. package/dist/agents/skills/cursor/api-status-codes/SKILL.md +196 -0
  1997. package/dist/agents/skills/cursor/api-status-codes/skill.yaml +46 -0
  1998. package/dist/agents/skills/cursor/api-validation-errors/SKILL.md +174 -0
  1999. package/dist/agents/skills/cursor/api-validation-errors/skill.yaml +40 -0
  2000. package/dist/agents/skills/cursor/api-versioning-header/SKILL.md +177 -0
  2001. package/dist/agents/skills/cursor/api-versioning-header/skill.yaml +37 -0
  2002. package/dist/agents/skills/cursor/api-versioning-url/SKILL.md +128 -0
  2003. package/dist/agents/skills/cursor/api-versioning-url/skill.yaml +39 -0
  2004. package/dist/agents/skills/cursor/api-webhook-design/SKILL.md +165 -0
  2005. package/dist/agents/skills/cursor/api-webhook-design/skill.yaml +41 -0
  2006. package/dist/agents/skills/cursor/api-webhook-security/SKILL.md +176 -0
  2007. package/dist/agents/skills/cursor/api-webhook-security/skill.yaml +41 -0
  2008. package/dist/agents/skills/cursor/astro-component-pattern/skill.yaml +1 -0
  2009. package/dist/agents/skills/cursor/astro-content-collections/skill.yaml +1 -0
  2010. package/dist/agents/skills/cursor/astro-deployment-config/skill.yaml +1 -0
  2011. package/dist/agents/skills/cursor/astro-image-optimization/skill.yaml +1 -0
  2012. package/dist/agents/skills/cursor/astro-integration-pattern/skill.yaml +1 -0
  2013. package/dist/agents/skills/cursor/astro-islands-architecture/skill.yaml +1 -0
  2014. package/dist/agents/skills/cursor/astro-multi-framework/skill.yaml +1 -0
  2015. package/dist/agents/skills/cursor/astro-routing-pattern/skill.yaml +1 -0
  2016. package/dist/agents/skills/cursor/astro-server-endpoints/skill.yaml +1 -0
  2017. package/dist/agents/skills/cursor/astro-ssr-hybrid/skill.yaml +1 -0
  2018. package/dist/agents/skills/cursor/astro-view-transitions/skill.yaml +1 -0
  2019. package/dist/agents/skills/cursor/check-mechanical-constraints/skill.yaml +1 -0
  2020. package/dist/agents/skills/cursor/cleanup-dead-code/skill.yaml +1 -0
  2021. package/dist/agents/skills/cursor/css-animation-pattern/skill.yaml +1 -0
  2022. package/dist/agents/skills/cursor/css-component-variants/skill.yaml +1 -0
  2023. package/dist/agents/skills/cursor/css-css-modules/skill.yaml +1 -0
  2024. package/dist/agents/skills/cursor/css-custom-components/skill.yaml +1 -0
  2025. package/dist/agents/skills/cursor/css-dark-mode/skill.yaml +1 -0
  2026. package/dist/agents/skills/cursor/css-design-tokens/skill.yaml +1 -0
  2027. package/dist/agents/skills/cursor/css-headless-ui/skill.yaml +1 -0
  2028. package/dist/agents/skills/cursor/css-layout-patterns/skill.yaml +1 -0
  2029. package/dist/agents/skills/cursor/css-performance-patterns/skill.yaml +6 -0
  2030. package/dist/agents/skills/cursor/css-responsive-design/skill.yaml +1 -0
  2031. package/dist/agents/skills/cursor/css-tailwind-merge/skill.yaml +1 -0
  2032. package/dist/agents/skills/cursor/css-tailwind-pattern/skill.yaml +1 -0
  2033. package/dist/agents/skills/cursor/db-acid-in-practice/SKILL.md +215 -0
  2034. package/dist/agents/skills/cursor/db-acid-in-practice/skill.yaml +38 -0
  2035. package/dist/agents/skills/cursor/db-acid-properties/SKILL.md +190 -0
  2036. package/dist/agents/skills/cursor/db-acid-properties/skill.yaml +38 -0
  2037. package/dist/agents/skills/cursor/db-adjacency-list/SKILL.md +199 -0
  2038. package/dist/agents/skills/cursor/db-adjacency-list/skill.yaml +40 -0
  2039. package/dist/agents/skills/cursor/db-audit-trail/SKILL.md +244 -0
  2040. package/dist/agents/skills/cursor/db-audit-trail/skill.yaml +41 -0
  2041. package/dist/agents/skills/cursor/db-btree-index/SKILL.md +182 -0
  2042. package/dist/agents/skills/cursor/db-btree-index/skill.yaml +44 -0
  2043. package/dist/agents/skills/cursor/db-cap-theorem/SKILL.md +156 -0
  2044. package/dist/agents/skills/cursor/db-cap-theorem/skill.yaml +38 -0
  2045. package/dist/agents/skills/cursor/db-closure-table/SKILL.md +197 -0
  2046. package/dist/agents/skills/cursor/db-closure-table/skill.yaml +38 -0
  2047. package/dist/agents/skills/cursor/db-composite-index/SKILL.md +199 -0
  2048. package/dist/agents/skills/cursor/db-composite-index/skill.yaml +41 -0
  2049. package/dist/agents/skills/cursor/db-connection-pooling/SKILL.md +196 -0
  2050. package/dist/agents/skills/cursor/db-connection-pooling/skill.yaml +39 -0
  2051. package/dist/agents/skills/cursor/db-connection-sizing/SKILL.md +236 -0
  2052. package/dist/agents/skills/cursor/db-connection-sizing/skill.yaml +38 -0
  2053. package/dist/agents/skills/cursor/db-covering-index/SKILL.md +203 -0
  2054. package/dist/agents/skills/cursor/db-covering-index/skill.yaml +40 -0
  2055. package/dist/agents/skills/cursor/db-deadlock-prevention/SKILL.md +204 -0
  2056. package/dist/agents/skills/cursor/db-deadlock-prevention/skill.yaml +41 -0
  2057. package/dist/agents/skills/cursor/db-denormalization/SKILL.md +176 -0
  2058. package/dist/agents/skills/cursor/db-denormalization/skill.yaml +38 -0
  2059. package/dist/agents/skills/cursor/db-document-in-relational/SKILL.md +225 -0
  2060. package/dist/agents/skills/cursor/db-document-in-relational/skill.yaml +42 -0
  2061. package/dist/agents/skills/cursor/db-entity-attribute-value/SKILL.md +186 -0
  2062. package/dist/agents/skills/cursor/db-entity-attribute-value/skill.yaml +39 -0
  2063. package/dist/agents/skills/cursor/db-eventual-consistency/SKILL.md +226 -0
  2064. package/dist/agents/skills/cursor/db-eventual-consistency/skill.yaml +38 -0
  2065. package/dist/agents/skills/cursor/db-expand-contract/SKILL.md +199 -0
  2066. package/dist/agents/skills/cursor/db-expand-contract/skill.yaml +40 -0
  2067. package/dist/agents/skills/cursor/db-explain-reading/SKILL.md +213 -0
  2068. package/dist/agents/skills/cursor/db-explain-reading/skill.yaml +44 -0
  2069. package/dist/agents/skills/cursor/db-expression-index/SKILL.md +211 -0
  2070. package/dist/agents/skills/cursor/db-expression-index/skill.yaml +40 -0
  2071. package/dist/agents/skills/cursor/db-first-normal-form/SKILL.md +190 -0
  2072. package/dist/agents/skills/cursor/db-first-normal-form/skill.yaml +38 -0
  2073. package/dist/agents/skills/cursor/db-graph-in-relational/SKILL.md +212 -0
  2074. package/dist/agents/skills/cursor/db-graph-in-relational/skill.yaml +41 -0
  2075. package/dist/agents/skills/cursor/db-hash-index/SKILL.md +176 -0
  2076. package/dist/agents/skills/cursor/db-hash-index/skill.yaml +37 -0
  2077. package/dist/agents/skills/cursor/db-hierarchical-data/SKILL.md +194 -0
  2078. package/dist/agents/skills/cursor/db-hierarchical-data/skill.yaml +41 -0
  2079. package/dist/agents/skills/cursor/db-horizontal-sharding/SKILL.md +228 -0
  2080. package/dist/agents/skills/cursor/db-horizontal-sharding/skill.yaml +40 -0
  2081. package/dist/agents/skills/cursor/db-isolation-levels/SKILL.md +158 -0
  2082. package/dist/agents/skills/cursor/db-isolation-levels/skill.yaml +43 -0
  2083. package/dist/agents/skills/cursor/db-isolation-selection/SKILL.md +160 -0
  2084. package/dist/agents/skills/cursor/db-isolation-selection/skill.yaml +41 -0
  2085. package/dist/agents/skills/cursor/db-migration-rollback/SKILL.md +223 -0
  2086. package/dist/agents/skills/cursor/db-migration-rollback/skill.yaml +40 -0
  2087. package/dist/agents/skills/cursor/db-mvcc/SKILL.md +191 -0
  2088. package/dist/agents/skills/cursor/db-mvcc/skill.yaml +45 -0
  2089. package/dist/agents/skills/cursor/db-nested-sets/SKILL.md +171 -0
  2090. package/dist/agents/skills/cursor/db-nested-sets/skill.yaml +38 -0
  2091. package/dist/agents/skills/cursor/db-optimistic-locking/SKILL.md +151 -0
  2092. package/dist/agents/skills/cursor/db-optimistic-locking/skill.yaml +44 -0
  2093. package/dist/agents/skills/cursor/db-partial-index/SKILL.md +196 -0
  2094. package/dist/agents/skills/cursor/db-partial-index/skill.yaml +39 -0
  2095. package/dist/agents/skills/cursor/db-pessimistic-locking/SKILL.md +158 -0
  2096. package/dist/agents/skills/cursor/db-pessimistic-locking/skill.yaml +44 -0
  2097. package/dist/agents/skills/cursor/db-polymorphic-associations/SKILL.md +187 -0
  2098. package/dist/agents/skills/cursor/db-polymorphic-associations/skill.yaml +42 -0
  2099. package/dist/agents/skills/cursor/db-query-rewriting/SKILL.md +249 -0
  2100. package/dist/agents/skills/cursor/db-query-rewriting/skill.yaml +43 -0
  2101. package/dist/agents/skills/cursor/db-query-statistics/SKILL.md +210 -0
  2102. package/dist/agents/skills/cursor/db-query-statistics/skill.yaml +41 -0
  2103. package/dist/agents/skills/cursor/db-read-phenomena/SKILL.md +205 -0
  2104. package/dist/agents/skills/cursor/db-read-phenomena/skill.yaml +42 -0
  2105. package/dist/agents/skills/cursor/db-scan-types/SKILL.md +248 -0
  2106. package/dist/agents/skills/cursor/db-scan-types/skill.yaml +41 -0
  2107. package/dist/agents/skills/cursor/db-second-normal-form/SKILL.md +183 -0
  2108. package/dist/agents/skills/cursor/db-second-normal-form/skill.yaml +38 -0
  2109. package/dist/agents/skills/cursor/db-table-partitioning/SKILL.md +229 -0
  2110. package/dist/agents/skills/cursor/db-table-partitioning/skill.yaml +39 -0
  2111. package/dist/agents/skills/cursor/db-temporal-data/SKILL.md +194 -0
  2112. package/dist/agents/skills/cursor/db-temporal-data/skill.yaml +41 -0
  2113. package/dist/agents/skills/cursor/db-third-normal-form/SKILL.md +210 -0
  2114. package/dist/agents/skills/cursor/db-third-normal-form/skill.yaml +38 -0
  2115. package/dist/agents/skills/cursor/db-time-series/SKILL.md +196 -0
  2116. package/dist/agents/skills/cursor/db-time-series/skill.yaml +41 -0
  2117. package/dist/agents/skills/cursor/db-vertical-partitioning/SKILL.md +249 -0
  2118. package/dist/agents/skills/cursor/db-vertical-partitioning/skill.yaml +40 -0
  2119. package/dist/agents/skills/cursor/db-zero-downtime-migration/SKILL.md +199 -0
  2120. package/dist/agents/skills/cursor/db-zero-downtime-migration/skill.yaml +42 -0
  2121. package/dist/agents/skills/cursor/design-affordances/skill.yaml +1 -0
  2122. package/dist/agents/skills/cursor/design-alignment/skill.yaml +1 -0
  2123. package/dist/agents/skills/cursor/design-apple-hig/skill.yaml +1 -0
  2124. package/dist/agents/skills/cursor/design-atomic-design/skill.yaml +1 -0
  2125. package/dist/agents/skills/cursor/design-brand-consistency/skill.yaml +1 -0
  2126. package/dist/agents/skills/cursor/design-color-accessibility/skill.yaml +1 -0
  2127. package/dist/agents/skills/cursor/design-color-harmony/skill.yaml +1 -0
  2128. package/dist/agents/skills/cursor/design-color-psychology/skill.yaml +1 -0
  2129. package/dist/agents/skills/cursor/design-component-anatomy/skill.yaml +1 -0
  2130. package/dist/agents/skills/cursor/design-consistency/skill.yaml +1 -0
  2131. package/dist/agents/skills/cursor/design-content-density/skill.yaml +1 -0
  2132. package/dist/agents/skills/cursor/design-contrast-ratio/skill.yaml +1 -0
  2133. package/dist/agents/skills/cursor/design-dark-mode-color/skill.yaml +1 -0
  2134. package/dist/agents/skills/cursor/design-data-viz-design/skill.yaml +1 -0
  2135. package/dist/agents/skills/cursor/design-design-audit/skill.yaml +1 -0
  2136. package/dist/agents/skills/cursor/design-design-critique/skill.yaml +1 -0
  2137. package/dist/agents/skills/cursor/design-design-documentation/skill.yaml +1 -0
  2138. package/dist/agents/skills/cursor/design-design-governance/skill.yaml +1 -0
  2139. package/dist/agents/skills/cursor/design-elevation-shadow/skill.yaml +1 -0
  2140. package/dist/agents/skills/cursor/design-empty-error-states/skill.yaml +3 -0
  2141. package/dist/agents/skills/cursor/design-feedback-patterns/skill.yaml +5 -0
  2142. package/dist/agents/skills/cursor/design-fluent-design/skill.yaml +1 -0
  2143. package/dist/agents/skills/cursor/design-font-pairing/skill.yaml +1 -0
  2144. package/dist/agents/skills/cursor/design-form-ux/skill.yaml +2 -0
  2145. package/dist/agents/skills/cursor/design-gestalt-closure-continuity/skill.yaml +1 -0
  2146. package/dist/agents/skills/cursor/design-gestalt-common-fate/skill.yaml +1 -0
  2147. package/dist/agents/skills/cursor/design-gestalt-figure-ground/skill.yaml +1 -0
  2148. package/dist/agents/skills/cursor/design-gestalt-proximity/skill.yaml +1 -0
  2149. package/dist/agents/skills/cursor/design-gestalt-similarity/skill.yaml +1 -0
  2150. package/dist/agents/skills/cursor/design-grid-systems/skill.yaml +1 -0
  2151. package/dist/agents/skills/cursor/design-i18n-design/skill.yaml +2 -0
  2152. package/dist/agents/skills/cursor/design-iconography/skill.yaml +1 -0
  2153. package/dist/agents/skills/cursor/design-illustration-style/skill.yaml +1 -0
  2154. package/dist/agents/skills/cursor/design-imagery-photography/skill.yaml +1 -0
  2155. package/dist/agents/skills/cursor/design-information-architecture/skill.yaml +3 -0
  2156. package/dist/agents/skills/cursor/design-loading-patterns/skill.yaml +2 -0
  2157. package/dist/agents/skills/cursor/design-material-design-3/skill.yaml +1 -0
  2158. package/dist/agents/skills/cursor/design-micro-interactions/skill.yaml +1 -0
  2159. package/dist/agents/skills/cursor/design-motion-principles/skill.yaml +1 -0
  2160. package/dist/agents/skills/cursor/design-naming-conventions/skill.yaml +1 -0
  2161. package/dist/agents/skills/cursor/design-navigation-ux/skill.yaml +2 -0
  2162. package/dist/agents/skills/cursor/design-palette-construction/skill.yaml +1 -0
  2163. package/dist/agents/skills/cursor/design-parallax-scroll/skill.yaml +1 -0
  2164. package/dist/agents/skills/cursor/design-readability/skill.yaml +3 -0
  2165. package/dist/agents/skills/cursor/design-responsive-strategy/skill.yaml +1 -0
  2166. package/dist/agents/skills/cursor/design-responsive-type/skill.yaml +1 -0
  2167. package/dist/agents/skills/cursor/design-state-design/skill.yaml +1 -0
  2168. package/dist/agents/skills/cursor/design-token-architecture/skill.yaml +1 -0
  2169. package/dist/agents/skills/cursor/design-transitions-timing/skill.yaml +1 -0
  2170. package/dist/agents/skills/cursor/design-type-scale/skill.yaml +1 -0
  2171. package/dist/agents/skills/cursor/design-typographic-hierarchy/skill.yaml +1 -0
  2172. package/dist/agents/skills/cursor/design-typography-fundamentals/skill.yaml +1 -0
  2173. package/dist/agents/skills/cursor/design-visual-hierarchy/skill.yaml +1 -0
  2174. package/dist/agents/skills/cursor/design-web-fonts/skill.yaml +1 -0
  2175. package/dist/agents/skills/cursor/design-whitespace/skill.yaml +1 -0
  2176. package/dist/agents/skills/cursor/detect-doc-drift/skill.yaml +1 -0
  2177. package/dist/agents/skills/cursor/drizzle-filtering-pattern/skill.yaml +1 -0
  2178. package/dist/agents/skills/cursor/drizzle-migrations/skill.yaml +3 -0
  2179. package/dist/agents/skills/cursor/drizzle-performance-patterns/skill.yaml +8 -0
  2180. package/dist/agents/skills/cursor/drizzle-query-builder/skill.yaml +1 -0
  2181. package/dist/agents/skills/cursor/drizzle-raw-sql/skill.yaml +1 -0
  2182. package/dist/agents/skills/cursor/drizzle-relations-pattern/skill.yaml +1 -0
  2183. package/dist/agents/skills/cursor/drizzle-schema-definition/skill.yaml +4 -0
  2184. package/dist/agents/skills/cursor/drizzle-transactions/skill.yaml +4 -0
  2185. package/dist/agents/skills/cursor/drizzle-with-nextjs/skill.yaml +1 -0
  2186. package/dist/agents/skills/cursor/enforce-architecture/skill.yaml +1 -0
  2187. package/dist/agents/skills/cursor/events-event-schema/skill.yaml +1 -0
  2188. package/dist/agents/skills/cursor/events-event-storming/skill.yaml +1 -0
  2189. package/dist/agents/skills/cursor/events-idempotency/SKILL.md +1 -0
  2190. package/dist/agents/skills/cursor/events-idempotency/skill.yaml +2 -0
  2191. package/dist/agents/skills/cursor/events-kafka-patterns/skill.yaml +1 -0
  2192. package/dist/agents/skills/cursor/events-message-queue/skill.yaml +1 -0
  2193. package/dist/agents/skills/cursor/events-outbox-pattern/skill.yaml +1 -0
  2194. package/dist/agents/skills/cursor/events-pubsub-pattern/skill.yaml +1 -0
  2195. package/dist/agents/skills/cursor/events-redis-pubsub/skill.yaml +1 -0
  2196. package/dist/agents/skills/cursor/events-saga-choreography/skill.yaml +1 -0
  2197. package/dist/agents/skills/cursor/events-sse-pattern/skill.yaml +1 -0
  2198. package/dist/agents/skills/cursor/events-webhooks-pattern/SKILL.md +1 -0
  2199. package/dist/agents/skills/cursor/events-webhooks-pattern/skill.yaml +3 -0
  2200. package/dist/agents/skills/cursor/events-websocket-pattern/skill.yaml +1 -0
  2201. package/dist/agents/skills/cursor/gof-abstract-factory/skill.yaml +1 -0
  2202. package/dist/agents/skills/cursor/gof-adapter-pattern/skill.yaml +1 -0
  2203. package/dist/agents/skills/cursor/gof-bridge-pattern/skill.yaml +1 -0
  2204. package/dist/agents/skills/cursor/gof-builder-pattern/skill.yaml +1 -0
  2205. package/dist/agents/skills/cursor/gof-chain-of-responsibility/skill.yaml +1 -0
  2206. package/dist/agents/skills/cursor/gof-command-pattern/skill.yaml +1 -0
  2207. package/dist/agents/skills/cursor/gof-composite-pattern/skill.yaml +1 -0
  2208. package/dist/agents/skills/cursor/gof-decorator-pattern/skill.yaml +1 -0
  2209. package/dist/agents/skills/cursor/gof-facade-pattern/skill.yaml +1 -0
  2210. package/dist/agents/skills/cursor/gof-factory-method/skill.yaml +1 -0
  2211. package/dist/agents/skills/cursor/gof-flyweight-pattern/skill.yaml +1 -0
  2212. package/dist/agents/skills/cursor/gof-iterator-pattern/skill.yaml +1 -0
  2213. package/dist/agents/skills/cursor/gof-mediator-pattern/skill.yaml +1 -0
  2214. package/dist/agents/skills/cursor/gof-memento-pattern/skill.yaml +1 -0
  2215. package/dist/agents/skills/cursor/gof-null-object/skill.yaml +1 -0
  2216. package/dist/agents/skills/cursor/gof-observer-pattern/skill.yaml +1 -0
  2217. package/dist/agents/skills/cursor/gof-prototype-pattern/skill.yaml +1 -0
  2218. package/dist/agents/skills/cursor/gof-proxy-pattern/skill.yaml +1 -0
  2219. package/dist/agents/skills/cursor/gof-singleton/skill.yaml +1 -0
  2220. package/dist/agents/skills/cursor/gof-state-pattern/skill.yaml +1 -0
  2221. package/dist/agents/skills/cursor/gof-strategy-pattern/skill.yaml +1 -0
  2222. package/dist/agents/skills/cursor/gof-template-method/skill.yaml +1 -0
  2223. package/dist/agents/skills/cursor/gof-visitor-pattern/skill.yaml +1 -0
  2224. package/dist/agents/skills/cursor/graphql-apollo-server/skill.yaml +1 -0
  2225. package/dist/agents/skills/cursor/graphql-auth-patterns/SKILL.md +1 -0
  2226. package/dist/agents/skills/cursor/graphql-auth-patterns/skill.yaml +3 -0
  2227. package/dist/agents/skills/cursor/graphql-client-patterns/skill.yaml +1 -0
  2228. package/dist/agents/skills/cursor/graphql-codegen-pattern/skill.yaml +1 -0
  2229. package/dist/agents/skills/cursor/graphql-dataloader-pattern/skill.yaml +1 -0
  2230. package/dist/agents/skills/cursor/graphql-error-handling/SKILL.md +1 -0
  2231. package/dist/agents/skills/cursor/graphql-error-handling/skill.yaml +3 -0
  2232. package/dist/agents/skills/cursor/graphql-federation-pattern/skill.yaml +1 -0
  2233. package/dist/agents/skills/cursor/graphql-pagination-patterns/SKILL.md +1 -0
  2234. package/dist/agents/skills/cursor/graphql-pagination-patterns/skill.yaml +4 -0
  2235. package/dist/agents/skills/cursor/graphql-performance-patterns/skill.yaml +6 -0
  2236. package/dist/agents/skills/cursor/graphql-resolver-pattern/skill.yaml +1 -0
  2237. package/dist/agents/skills/cursor/graphql-schema-design/SKILL.md +1 -0
  2238. package/dist/agents/skills/cursor/graphql-schema-design/skill.yaml +3 -0
  2239. package/dist/agents/skills/cursor/graphql-subscriptions/skill.yaml +1 -0
  2240. package/dist/agents/skills/cursor/harness-accessibility/skill.yaml +1 -0
  2241. package/dist/agents/skills/cursor/harness-api-design/skill.yaml +1 -0
  2242. package/dist/agents/skills/cursor/harness-architecture-advisor/skill.yaml +1 -0
  2243. package/dist/agents/skills/cursor/harness-auth/skill.yaml +1 -0
  2244. package/dist/agents/skills/cursor/harness-autopilot/SKILL.md +171 -822
  2245. package/dist/agents/skills/cursor/harness-autopilot/skill.yaml +1 -0
  2246. package/dist/agents/skills/cursor/harness-brainstorming/SKILL.md +145 -195
  2247. package/dist/agents/skills/cursor/harness-brainstorming/skill.yaml +4 -0
  2248. package/dist/agents/skills/cursor/harness-caching/skill.yaml +1 -0
  2249. package/dist/agents/skills/cursor/harness-chaos/skill.yaml +1 -0
  2250. package/dist/agents/skills/cursor/harness-code-review/SKILL.md +267 -436
  2251. package/dist/agents/skills/cursor/harness-code-review/skill.yaml +7 -0
  2252. package/dist/agents/skills/cursor/harness-codebase-cleanup/skill.yaml +1 -0
  2253. package/dist/agents/skills/cursor/harness-compliance/skill.yaml +1 -0
  2254. package/dist/agents/skills/cursor/harness-containerization/skill.yaml +1 -0
  2255. package/dist/agents/skills/cursor/harness-data-pipeline/skill.yaml +1 -0
  2256. package/dist/agents/skills/cursor/harness-data-validation/skill.yaml +1 -0
  2257. package/dist/agents/skills/cursor/harness-database/skill.yaml +1 -0
  2258. package/dist/agents/skills/cursor/harness-debugging/skill.yaml +1 -0
  2259. package/dist/agents/skills/cursor/harness-dependency-health/skill.yaml +1 -0
  2260. package/dist/agents/skills/cursor/harness-deployment/skill.yaml +1 -0
  2261. package/dist/agents/skills/cursor/harness-design/skill.yaml +1 -0
  2262. package/dist/agents/skills/cursor/harness-design-mobile/skill.yaml +1 -0
  2263. package/dist/agents/skills/cursor/harness-design-system/skill.yaml +1 -0
  2264. package/dist/agents/skills/cursor/harness-design-web/skill.yaml +1 -0
  2265. package/dist/agents/skills/cursor/harness-diagnostics/skill.yaml +1 -0
  2266. package/dist/agents/skills/cursor/harness-docs-pipeline/skill.yaml +1 -0
  2267. package/dist/agents/skills/cursor/harness-dx/skill.yaml +1 -0
  2268. package/dist/agents/skills/cursor/harness-e2e/skill.yaml +1 -0
  2269. package/dist/agents/skills/cursor/harness-event-driven/skill.yaml +1 -0
  2270. package/dist/agents/skills/cursor/harness-execution/SKILL.md +180 -271
  2271. package/dist/agents/skills/cursor/harness-execution/skill.yaml +13 -0
  2272. package/dist/agents/skills/cursor/harness-feature-flags/skill.yaml +1 -0
  2273. package/dist/agents/skills/cursor/harness-git-workflow/skill.yaml +1 -0
  2274. package/dist/agents/skills/cursor/harness-hotspot-detector/skill.yaml +1 -0
  2275. package/dist/agents/skills/cursor/harness-i18n/skill.yaml +1 -0
  2276. package/dist/agents/skills/cursor/harness-i18n-process/skill.yaml +1 -0
  2277. package/dist/agents/skills/cursor/harness-i18n-workflow/skill.yaml +1 -0
  2278. package/dist/agents/skills/cursor/harness-impact-analysis/skill.yaml +1 -0
  2279. package/dist/agents/skills/cursor/harness-incident-response/skill.yaml +1 -0
  2280. package/dist/agents/skills/cursor/harness-infrastructure-as-code/skill.yaml +1 -0
  2281. package/dist/agents/skills/cursor/harness-integration-test/skill.yaml +1 -0
  2282. package/dist/agents/skills/cursor/harness-integrity/skill.yaml +1 -0
  2283. package/dist/agents/skills/cursor/harness-knowledge-mapper/skill.yaml +1 -0
  2284. package/dist/agents/skills/cursor/harness-load-testing/skill.yaml +1 -0
  2285. package/dist/agents/skills/cursor/harness-ml-ops/skill.yaml +1 -0
  2286. package/dist/agents/skills/cursor/harness-mobile-patterns/skill.yaml +1 -0
  2287. package/dist/agents/skills/cursor/harness-mutation-test/skill.yaml +1 -0
  2288. package/dist/agents/skills/cursor/harness-observability/skill.yaml +1 -0
  2289. package/dist/agents/skills/cursor/harness-onboarding/skill.yaml +1 -0
  2290. package/dist/agents/skills/cursor/harness-parallel-agents/skill.yaml +1 -0
  2291. package/dist/agents/skills/cursor/harness-perf/skill.yaml +1 -0
  2292. package/dist/agents/skills/cursor/harness-perf-tdd/skill.yaml +1 -0
  2293. package/dist/agents/skills/cursor/harness-planning/SKILL.md +142 -322
  2294. package/dist/agents/skills/cursor/harness-planning/skill.yaml +7 -0
  2295. package/dist/agents/skills/cursor/harness-pre-commit-review/skill.yaml +1 -0
  2296. package/dist/agents/skills/cursor/harness-product-spec/skill.yaml +1 -0
  2297. package/dist/agents/skills/cursor/harness-property-test/skill.yaml +1 -0
  2298. package/dist/agents/skills/cursor/harness-refactoring/skill.yaml +1 -0
  2299. package/dist/agents/skills/cursor/harness-release-readiness/skill.yaml +1 -0
  2300. package/dist/agents/skills/cursor/harness-resilience/skill.yaml +1 -0
  2301. package/dist/agents/skills/cursor/harness-roadmap/skill.yaml +1 -0
  2302. package/dist/agents/skills/cursor/harness-roadmap-pilot/skill.yaml +1 -0
  2303. package/dist/agents/skills/cursor/harness-router/SKILL.md +69 -123
  2304. package/dist/agents/skills/cursor/harness-router/skill.yaml +1 -0
  2305. package/dist/agents/skills/cursor/harness-secrets/SKILL.md +3 -3
  2306. package/dist/agents/skills/cursor/harness-secrets/skill.yaml +1 -0
  2307. package/dist/agents/skills/cursor/harness-security-review/skill.yaml +6 -0
  2308. package/dist/agents/skills/cursor/harness-security-scan/skill.yaml +7 -0
  2309. package/dist/agents/skills/cursor/harness-skill-authoring/skill.yaml +1 -0
  2310. package/dist/agents/skills/cursor/harness-soundness-review/SKILL.md +483 -667
  2311. package/dist/agents/skills/cursor/harness-soundness-review/skill.yaml +1 -0
  2312. package/dist/agents/skills/cursor/harness-sql-review/skill.yaml +1 -0
  2313. package/dist/agents/skills/cursor/harness-state-management/skill.yaml +1 -0
  2314. package/dist/agents/skills/cursor/harness-supply-chain-audit/skill.yaml +1 -0
  2315. package/dist/agents/skills/cursor/harness-tdd/skill.yaml +1 -0
  2316. package/dist/agents/skills/cursor/harness-test-advisor/skill.yaml +1 -0
  2317. package/dist/agents/skills/cursor/harness-test-data/skill.yaml +1 -0
  2318. package/dist/agents/skills/cursor/harness-ux-copy/skill.yaml +13 -0
  2319. package/dist/agents/skills/cursor/harness-verification/SKILL.md +135 -221
  2320. package/dist/agents/skills/cursor/harness-verification/skill.yaml +4 -0
  2321. package/dist/agents/skills/cursor/harness-verify/skill.yaml +1 -0
  2322. package/dist/agents/skills/cursor/harness-visual-regression/skill.yaml +1 -0
  2323. package/dist/agents/skills/cursor/initialize-harness-project/skill.yaml +1 -0
  2324. package/dist/agents/skills/cursor/js-abstract-factory-pattern/skill.yaml +1 -0
  2325. package/dist/agents/skills/cursor/js-adapter-pattern/skill.yaml +1 -0
  2326. package/dist/agents/skills/cursor/js-bridge-pattern/skill.yaml +1 -0
  2327. package/dist/agents/skills/cursor/js-chain-of-responsibility-pattern/skill.yaml +1 -0
  2328. package/dist/agents/skills/cursor/js-command-pattern/skill.yaml +1 -0
  2329. package/dist/agents/skills/cursor/js-composite-pattern/skill.yaml +1 -0
  2330. package/dist/agents/skills/cursor/js-constructor-pattern/skill.yaml +1 -0
  2331. package/dist/agents/skills/cursor/js-decorator-pattern/skill.yaml +1 -0
  2332. package/dist/agents/skills/cursor/js-dynamic-import/skill.yaml +1 -0
  2333. package/dist/agents/skills/cursor/js-facade-pattern/skill.yaml +1 -0
  2334. package/dist/agents/skills/cursor/js-factory-pattern/skill.yaml +1 -0
  2335. package/dist/agents/skills/cursor/js-flyweight-pattern/skill.yaml +1 -0
  2336. package/dist/agents/skills/cursor/js-iterator-pattern/skill.yaml +1 -0
  2337. package/dist/agents/skills/cursor/js-mediator-middleware-pattern/skill.yaml +1 -0
  2338. package/dist/agents/skills/cursor/js-mixin-pattern/skill.yaml +1 -0
  2339. package/dist/agents/skills/cursor/js-module-pattern/skill.yaml +1 -0
  2340. package/dist/agents/skills/cursor/js-observer-pattern/skill.yaml +1 -0
  2341. package/dist/agents/skills/cursor/js-prototype-pattern/skill.yaml +1 -0
  2342. package/dist/agents/skills/cursor/js-provider-pattern/skill.yaml +1 -0
  2343. package/dist/agents/skills/cursor/js-proxy-pattern/skill.yaml +1 -0
  2344. package/dist/agents/skills/cursor/js-revealing-module-pattern/skill.yaml +1 -0
  2345. package/dist/agents/skills/cursor/js-singleton-pattern/skill.yaml +1 -0
  2346. package/dist/agents/skills/cursor/js-state-pattern/skill.yaml +1 -0
  2347. package/dist/agents/skills/cursor/js-static-import/skill.yaml +1 -0
  2348. package/dist/agents/skills/cursor/js-strategy-pattern/skill.yaml +1 -0
  2349. package/dist/agents/skills/cursor/js-template-method-pattern/skill.yaml +1 -0
  2350. package/dist/agents/skills/cursor/js-visitor-pattern/skill.yaml +1 -0
  2351. package/dist/agents/skills/cursor/microservices-api-gateway/skill.yaml +1 -0
  2352. package/dist/agents/skills/cursor/microservices-bulkhead-pattern/skill.yaml +1 -0
  2353. package/dist/agents/skills/cursor/microservices-circuit-breaker/skill.yaml +1 -0
  2354. package/dist/agents/skills/cursor/microservices-config-server/SKILL.md +1 -1
  2355. package/dist/agents/skills/cursor/microservices-config-server/skill.yaml +1 -0
  2356. package/dist/agents/skills/cursor/microservices-cqrs-pattern/skill.yaml +3 -0
  2357. package/dist/agents/skills/cursor/microservices-decomposition/skill.yaml +1 -0
  2358. package/dist/agents/skills/cursor/microservices-distributed-tracing/skill.yaml +1 -0
  2359. package/dist/agents/skills/cursor/microservices-event-sourcing/skill.yaml +3 -0
  2360. package/dist/agents/skills/cursor/microservices-health-check/skill.yaml +1 -0
  2361. package/dist/agents/skills/cursor/microservices-outbox-pattern/skill.yaml +1 -0
  2362. package/dist/agents/skills/cursor/microservices-saga-pattern/skill.yaml +1 -0
  2363. package/dist/agents/skills/cursor/microservices-service-discovery/skill.yaml +1 -0
  2364. package/dist/agents/skills/cursor/microservices-sidecar-pattern/skill.yaml +1 -0
  2365. package/dist/agents/skills/cursor/microservices-strangler-fig/skill.yaml +1 -0
  2366. package/dist/agents/skills/cursor/mobile-animation-patterns/skill.yaml +1 -0
  2367. package/dist/agents/skills/cursor/mobile-deployment-patterns/skill.yaml +1 -0
  2368. package/dist/agents/skills/cursor/mobile-expo-setup/skill.yaml +1 -0
  2369. package/dist/agents/skills/cursor/mobile-flatlist-patterns/skill.yaml +1 -0
  2370. package/dist/agents/skills/cursor/mobile-gesture-handling/skill.yaml +1 -0
  2371. package/dist/agents/skills/cursor/mobile-native-modules/skill.yaml +1 -0
  2372. package/dist/agents/skills/cursor/mobile-navigation-pattern/skill.yaml +1 -0
  2373. package/dist/agents/skills/cursor/mobile-network-patterns/skill.yaml +1 -0
  2374. package/dist/agents/skills/cursor/mobile-performance-patterns/skill.yaml +6 -0
  2375. package/dist/agents/skills/cursor/mobile-push-notifications/skill.yaml +1 -0
  2376. package/dist/agents/skills/cursor/mobile-storage-patterns/skill.yaml +1 -0
  2377. package/dist/agents/skills/cursor/mobile-testing-patterns/skill.yaml +1 -0
  2378. package/dist/agents/skills/cursor/nestjs-config-module/skill.yaml +1 -0
  2379. package/dist/agents/skills/cursor/nestjs-controller-pattern/skill.yaml +1 -0
  2380. package/dist/agents/skills/cursor/nestjs-dependency-injection/skill.yaml +1 -0
  2381. package/dist/agents/skills/cursor/nestjs-dto-validation/skill.yaml +1 -0
  2382. package/dist/agents/skills/cursor/nestjs-event-driven/skill.yaml +1 -0
  2383. package/dist/agents/skills/cursor/nestjs-exception-filters/skill.yaml +1 -0
  2384. package/dist/agents/skills/cursor/nestjs-graphql-integration/skill.yaml +1 -0
  2385. package/dist/agents/skills/cursor/nestjs-guards-pattern/skill.yaml +1 -0
  2386. package/dist/agents/skills/cursor/nestjs-interceptors-pattern/skill.yaml +1 -0
  2387. package/dist/agents/skills/cursor/nestjs-microservices/skill.yaml +1 -0
  2388. package/dist/agents/skills/cursor/nestjs-middleware-pattern/skill.yaml +1 -0
  2389. package/dist/agents/skills/cursor/nestjs-module-pattern/skill.yaml +1 -0
  2390. package/dist/agents/skills/cursor/nestjs-pipes-pattern/skill.yaml +1 -0
  2391. package/dist/agents/skills/cursor/nestjs-service-pattern/skill.yaml +1 -0
  2392. package/dist/agents/skills/cursor/nestjs-swagger-integration/skill.yaml +1 -0
  2393. package/dist/agents/skills/cursor/nestjs-testing-patterns/skill.yaml +1 -0
  2394. package/dist/agents/skills/cursor/next-app-router/skill.yaml +1 -0
  2395. package/dist/agents/skills/cursor/next-auth-patterns/skill.yaml +1 -0
  2396. package/dist/agents/skills/cursor/next-caching-strategies/skill.yaml +1 -0
  2397. package/dist/agents/skills/cursor/next-data-fetching/skill.yaml +1 -0
  2398. package/dist/agents/skills/cursor/next-deployment-optimization/skill.yaml +1 -0
  2399. package/dist/agents/skills/cursor/next-environment-config/skill.yaml +1 -0
  2400. package/dist/agents/skills/cursor/next-error-boundaries/skill.yaml +1 -0
  2401. package/dist/agents/skills/cursor/next-image-optimization/skill.yaml +1 -0
  2402. package/dist/agents/skills/cursor/next-metadata-api/skill.yaml +1 -0
  2403. package/dist/agents/skills/cursor/next-middleware-pattern/skill.yaml +1 -0
  2404. package/dist/agents/skills/cursor/next-monorepo-setup/skill.yaml +1 -0
  2405. package/dist/agents/skills/cursor/next-parallel-intercepting-routes/skill.yaml +1 -0
  2406. package/dist/agents/skills/cursor/next-route-handlers/skill.yaml +1 -0
  2407. package/dist/agents/skills/cursor/next-server-actions/skill.yaml +1 -0
  2408. package/dist/agents/skills/cursor/next-server-components/skill.yaml +1 -0
  2409. package/dist/agents/skills/cursor/next-static-generation/skill.yaml +1 -0
  2410. package/dist/agents/skills/cursor/next-streaming-suspense/skill.yaml +1 -0
  2411. package/dist/agents/skills/cursor/next-testing-patterns/skill.yaml +1 -0
  2412. package/dist/agents/skills/cursor/node-buffer-encoding/skill.yaml +1 -0
  2413. package/dist/agents/skills/cursor/node-child-process/skill.yaml +1 -0
  2414. package/dist/agents/skills/cursor/node-crypto-patterns/skill.yaml +1 -0
  2415. package/dist/agents/skills/cursor/node-environment-config/skill.yaml +1 -0
  2416. package/dist/agents/skills/cursor/node-error-handling/skill.yaml +1 -0
  2417. package/dist/agents/skills/cursor/node-esm-patterns/skill.yaml +1 -0
  2418. package/dist/agents/skills/cursor/node-event-emitter/skill.yaml +1 -0
  2419. package/dist/agents/skills/cursor/node-express-patterns/skill.yaml +1 -0
  2420. package/dist/agents/skills/cursor/node-fastify-patterns/skill.yaml +1 -0
  2421. package/dist/agents/skills/cursor/node-http-server/skill.yaml +1 -0
  2422. package/dist/agents/skills/cursor/node-path-fs-patterns/skill.yaml +1 -0
  2423. package/dist/agents/skills/cursor/node-performance-profiling/skill.yaml +6 -0
  2424. package/dist/agents/skills/cursor/node-streams-pattern/skill.yaml +1 -0
  2425. package/dist/agents/skills/cursor/node-testing-patterns/skill.yaml +1 -0
  2426. package/dist/agents/skills/cursor/node-worker-threads/skill.yaml +1 -0
  2427. package/dist/agents/skills/cursor/nuxt-auto-imports/skill.yaml +1 -0
  2428. package/dist/agents/skills/cursor/nuxt-composables-pattern/skill.yaml +1 -0
  2429. package/dist/agents/skills/cursor/nuxt-deployment-config/skill.yaml +1 -0
  2430. package/dist/agents/skills/cursor/nuxt-layouts-pages/skill.yaml +1 -0
  2431. package/dist/agents/skills/cursor/nuxt-middleware-pattern/skill.yaml +1 -0
  2432. package/dist/agents/skills/cursor/nuxt-modules-pattern/skill.yaml +1 -0
  2433. package/dist/agents/skills/cursor/nuxt-plugins-pattern/skill.yaml +1 -0
  2434. package/dist/agents/skills/cursor/nuxt-seo-metadata/skill.yaml +1 -0
  2435. package/dist/agents/skills/cursor/nuxt-server-routes/skill.yaml +1 -0
  2436. package/dist/agents/skills/cursor/nuxt-state-management/skill.yaml +1 -0
  2437. package/dist/agents/skills/cursor/nuxt-testing-patterns/skill.yaml +1 -0
  2438. package/dist/agents/skills/cursor/otel-context-propagation/skill.yaml +1 -0
  2439. package/dist/agents/skills/cursor/otel-custom-instrumentation/skill.yaml +1 -0
  2440. package/dist/agents/skills/cursor/otel-error-tracking/skill.yaml +1 -0
  2441. package/dist/agents/skills/cursor/otel-exporter-config/skill.yaml +1 -0
  2442. package/dist/agents/skills/cursor/otel-logging-pattern/skill.yaml +1 -0
  2443. package/dist/agents/skills/cursor/otel-metrics-pattern/skill.yaml +1 -0
  2444. package/dist/agents/skills/cursor/otel-nestjs-integration/skill.yaml +1 -0
  2445. package/dist/agents/skills/cursor/otel-nextjs-integration/skill.yaml +1 -0
  2446. package/dist/agents/skills/cursor/otel-performance-insights/skill.yaml +5 -0
  2447. package/dist/agents/skills/cursor/otel-sampling-strategies/skill.yaml +1 -0
  2448. package/dist/agents/skills/cursor/otel-sdk-setup/skill.yaml +1 -0
  2449. package/dist/agents/skills/cursor/otel-tracing-pattern/skill.yaml +1 -0
  2450. package/dist/agents/skills/cursor/owasp-auth-patterns/SKILL.md +1 -0
  2451. package/dist/agents/skills/cursor/owasp-auth-patterns/skill.yaml +8 -0
  2452. package/dist/agents/skills/cursor/owasp-cryptography/skill.yaml +6 -0
  2453. package/dist/agents/skills/cursor/owasp-csrf-protection/skill.yaml +3 -0
  2454. package/dist/agents/skills/cursor/owasp-dependency-security/skill.yaml +4 -0
  2455. package/dist/agents/skills/cursor/owasp-file-upload-security/skill.yaml +3 -0
  2456. package/dist/agents/skills/cursor/owasp-idor-prevention/skill.yaml +4 -0
  2457. package/dist/agents/skills/cursor/owasp-injection-prevention/skill.yaml +4 -0
  2458. package/dist/agents/skills/cursor/owasp-logging-monitoring/skill.yaml +5 -0
  2459. package/dist/agents/skills/cursor/owasp-rate-limiting/SKILL.md +1 -0
  2460. package/dist/agents/skills/cursor/owasp-rate-limiting/skill.yaml +5 -0
  2461. package/dist/agents/skills/cursor/owasp-secrets-management/SKILL.md +2 -1
  2462. package/dist/agents/skills/cursor/owasp-secrets-management/skill.yaml +5 -0
  2463. package/dist/agents/skills/cursor/owasp-security-headers/skill.yaml +4 -0
  2464. package/dist/agents/skills/cursor/owasp-xss-prevention/skill.yaml +3 -0
  2465. package/dist/agents/skills/cursor/perf-browser-cache/SKILL.md +151 -0
  2466. package/dist/agents/skills/cursor/perf-browser-cache/skill.yaml +39 -0
  2467. package/dist/agents/skills/cursor/perf-bundle-analysis/SKILL.md +217 -0
  2468. package/dist/agents/skills/cursor/perf-bundle-analysis/skill.yaml +37 -0
  2469. package/dist/agents/skills/cursor/perf-cache-invalidation/SKILL.md +228 -0
  2470. package/dist/agents/skills/cursor/perf-cache-invalidation/skill.yaml +38 -0
  2471. package/dist/agents/skills/cursor/perf-cdn-cache-control/SKILL.md +198 -0
  2472. package/dist/agents/skills/cursor/perf-cdn-cache-control/skill.yaml +40 -0
  2473. package/dist/agents/skills/cursor/perf-cdn-strategies/SKILL.md +161 -0
  2474. package/dist/agents/skills/cursor/perf-cdn-strategies/skill.yaml +40 -0
  2475. package/dist/agents/skills/cursor/perf-client-side-rendering/SKILL.md +245 -0
  2476. package/dist/agents/skills/cursor/perf-client-side-rendering/skill.yaml +40 -0
  2477. package/dist/agents/skills/cursor/perf-code-splitting/SKILL.md +185 -0
  2478. package/dist/agents/skills/cursor/perf-code-splitting/skill.yaml +39 -0
  2479. package/dist/agents/skills/cursor/perf-compression/SKILL.md +163 -0
  2480. package/dist/agents/skills/cursor/perf-compression/skill.yaml +38 -0
  2481. package/dist/agents/skills/cursor/perf-connection-costs/SKILL.md +165 -0
  2482. package/dist/agents/skills/cursor/perf-connection-costs/skill.yaml +40 -0
  2483. package/dist/agents/skills/cursor/perf-connection-pooling/SKILL.md +250 -0
  2484. package/dist/agents/skills/cursor/perf-connection-pooling/skill.yaml +38 -0
  2485. package/dist/agents/skills/cursor/perf-critical-rendering-path/SKILL.md +167 -0
  2486. package/dist/agents/skills/cursor/perf-critical-rendering-path/skill.yaml +39 -0
  2487. package/dist/agents/skills/cursor/perf-cumulative-layout-shift/SKILL.md +180 -0
  2488. package/dist/agents/skills/cursor/perf-cumulative-layout-shift/skill.yaml +40 -0
  2489. package/dist/agents/skills/cursor/perf-dom-parsing/SKILL.md +153 -0
  2490. package/dist/agents/skills/cursor/perf-dom-parsing/skill.yaml +36 -0
  2491. package/dist/agents/skills/cursor/perf-edge-rendering/SKILL.md +222 -0
  2492. package/dist/agents/skills/cursor/perf-edge-rendering/skill.yaml +39 -0
  2493. package/dist/agents/skills/cursor/perf-event-loop/SKILL.md +203 -0
  2494. package/dist/agents/skills/cursor/perf-event-loop/skill.yaml +38 -0
  2495. package/dist/agents/skills/cursor/perf-font-loading/SKILL.md +222 -0
  2496. package/dist/agents/skills/cursor/perf-font-loading/skill.yaml +39 -0
  2497. package/dist/agents/skills/cursor/perf-garbage-collection/SKILL.md +192 -0
  2498. package/dist/agents/skills/cursor/perf-garbage-collection/skill.yaml +40 -0
  2499. package/dist/agents/skills/cursor/perf-heap-profiling/SKILL.md +160 -0
  2500. package/dist/agents/skills/cursor/perf-heap-profiling/skill.yaml +38 -0
  2501. package/dist/agents/skills/cursor/perf-http2-multiplexing/SKILL.md +163 -0
  2502. package/dist/agents/skills/cursor/perf-http2-multiplexing/skill.yaml +38 -0
  2503. package/dist/agents/skills/cursor/perf-http3-quic/SKILL.md +165 -0
  2504. package/dist/agents/skills/cursor/perf-http3-quic/skill.yaml +37 -0
  2505. package/dist/agents/skills/cursor/perf-image-formats/SKILL.md +183 -0
  2506. package/dist/agents/skills/cursor/perf-image-formats/skill.yaml +39 -0
  2507. package/dist/agents/skills/cursor/perf-index-strategies/SKILL.md +210 -0
  2508. package/dist/agents/skills/cursor/perf-index-strategies/skill.yaml +40 -0
  2509. package/dist/agents/skills/cursor/perf-interaction-to-next-paint/SKILL.md +170 -0
  2510. package/dist/agents/skills/cursor/perf-interaction-to-next-paint/skill.yaml +40 -0
  2511. package/dist/agents/skills/cursor/perf-largest-contentful-paint/SKILL.md +162 -0
  2512. package/dist/agents/skills/cursor/perf-largest-contentful-paint/skill.yaml +41 -0
  2513. package/dist/agents/skills/cursor/perf-layout-reflow/SKILL.md +187 -0
  2514. package/dist/agents/skills/cursor/perf-layout-reflow/skill.yaml +38 -0
  2515. package/dist/agents/skills/cursor/perf-lazy-loading/SKILL.md +217 -0
  2516. package/dist/agents/skills/cursor/perf-lazy-loading/skill.yaml +38 -0
  2517. package/dist/agents/skills/cursor/perf-lazy-loading-media/SKILL.md +233 -0
  2518. package/dist/agents/skills/cursor/perf-lazy-loading-media/skill.yaml +38 -0
  2519. package/dist/agents/skills/cursor/perf-long-tasks/SKILL.md +194 -0
  2520. package/dist/agents/skills/cursor/perf-long-tasks/skill.yaml +38 -0
  2521. package/dist/agents/skills/cursor/perf-memory-leaks/SKILL.md +218 -0
  2522. package/dist/agents/skills/cursor/perf-memory-leaks/skill.yaml +38 -0
  2523. package/dist/agents/skills/cursor/perf-module-federation/SKILL.md +242 -0
  2524. package/dist/agents/skills/cursor/perf-module-federation/skill.yaml +38 -0
  2525. package/dist/agents/skills/cursor/perf-n-plus-one/SKILL.md +237 -0
  2526. package/dist/agents/skills/cursor/perf-n-plus-one/skill.yaml +40 -0
  2527. package/dist/agents/skills/cursor/perf-paint-compositing/SKILL.md +181 -0
  2528. package/dist/agents/skills/cursor/perf-paint-compositing/skill.yaml +40 -0
  2529. package/dist/agents/skills/cursor/perf-performance-api/SKILL.md +249 -0
  2530. package/dist/agents/skills/cursor/perf-performance-api/skill.yaml +41 -0
  2531. package/dist/agents/skills/cursor/perf-profiling-methodology/SKILL.md +181 -0
  2532. package/dist/agents/skills/cursor/perf-profiling-methodology/skill.yaml +44 -0
  2533. package/dist/agents/skills/cursor/perf-query-optimization/SKILL.md +203 -0
  2534. package/dist/agents/skills/cursor/perf-query-optimization/skill.yaml +39 -0
  2535. package/dist/agents/skills/cursor/perf-resource-hints/SKILL.md +167 -0
  2536. package/dist/agents/skills/cursor/perf-resource-hints/skill.yaml +40 -0
  2537. package/dist/agents/skills/cursor/perf-responsive-images/SKILL.md +225 -0
  2538. package/dist/agents/skills/cursor/perf-responsive-images/skill.yaml +38 -0
  2539. package/dist/agents/skills/cursor/perf-server-side-caching/SKILL.md +194 -0
  2540. package/dist/agents/skills/cursor/perf-server-side-caching/skill.yaml +40 -0
  2541. package/dist/agents/skills/cursor/perf-server-side-rendering/SKILL.md +239 -0
  2542. package/dist/agents/skills/cursor/perf-server-side-rendering/skill.yaml +39 -0
  2543. package/dist/agents/skills/cursor/perf-service-worker-caching/SKILL.md +247 -0
  2544. package/dist/agents/skills/cursor/perf-service-worker-caching/skill.yaml +40 -0
  2545. package/dist/agents/skills/cursor/perf-static-generation/SKILL.md +241 -0
  2546. package/dist/agents/skills/cursor/perf-static-generation/skill.yaml +39 -0
  2547. package/dist/agents/skills/cursor/perf-streaming-rendering/SKILL.md +242 -0
  2548. package/dist/agents/skills/cursor/perf-streaming-rendering/skill.yaml +37 -0
  2549. package/dist/agents/skills/cursor/perf-style-calculation/SKILL.md +166 -0
  2550. package/dist/agents/skills/cursor/perf-style-calculation/skill.yaml +36 -0
  2551. package/dist/agents/skills/cursor/perf-svg-optimization/SKILL.md +249 -0
  2552. package/dist/agents/skills/cursor/perf-svg-optimization/skill.yaml +37 -0
  2553. package/dist/agents/skills/cursor/perf-tree-shaking/SKILL.md +225 -0
  2554. package/dist/agents/skills/cursor/perf-tree-shaking/skill.yaml +38 -0
  2555. package/dist/agents/skills/cursor/perf-web-workers/SKILL.md +237 -0
  2556. package/dist/agents/skills/cursor/perf-web-workers/skill.yaml +40 -0
  2557. package/dist/agents/skills/cursor/prisma-client-queries/skill.yaml +1 -0
  2558. package/dist/agents/skills/cursor/prisma-filtering-sorting/skill.yaml +1 -0
  2559. package/dist/agents/skills/cursor/prisma-migrations/skill.yaml +3 -0
  2560. package/dist/agents/skills/cursor/prisma-performance-patterns/skill.yaml +8 -0
  2561. package/dist/agents/skills/cursor/prisma-raw-queries/skill.yaml +1 -0
  2562. package/dist/agents/skills/cursor/prisma-relations-pattern/skill.yaml +1 -0
  2563. package/dist/agents/skills/cursor/prisma-schema-design/skill.yaml +4 -0
  2564. package/dist/agents/skills/cursor/prisma-seeding-pattern/skill.yaml +1 -0
  2565. package/dist/agents/skills/cursor/prisma-soft-delete/skill.yaml +1 -0
  2566. package/dist/agents/skills/cursor/prisma-transactions/skill.yaml +4 -0
  2567. package/dist/agents/skills/cursor/prisma-type-generation/skill.yaml +1 -0
  2568. package/dist/agents/skills/cursor/react-2026/skill.yaml +1 -0
  2569. package/dist/agents/skills/cursor/react-client-rendering/skill.yaml +1 -0
  2570. package/dist/agents/skills/cursor/react-compound-pattern/skill.yaml +1 -0
  2571. package/dist/agents/skills/cursor/react-concurrent-ui/skill.yaml +1 -0
  2572. package/dist/agents/skills/cursor/react-container-presentational/skill.yaml +1 -0
  2573. package/dist/agents/skills/cursor/react-context-pattern/skill.yaml +1 -0
  2574. package/dist/agents/skills/cursor/react-dynamic-import/skill.yaml +1 -0
  2575. package/dist/agents/skills/cursor/react-hoc-pattern/skill.yaml +1 -0
  2576. package/dist/agents/skills/cursor/react-hooks-pattern/skill.yaml +1 -0
  2577. package/dist/agents/skills/cursor/react-islands-pattern/skill.yaml +1 -0
  2578. package/dist/agents/skills/cursor/react-memoization-pattern/skill.yaml +1 -0
  2579. package/dist/agents/skills/cursor/react-progressive-hydration/skill.yaml +1 -0
  2580. package/dist/agents/skills/cursor/react-provider-pattern/skill.yaml +1 -0
  2581. package/dist/agents/skills/cursor/react-render-props-pattern/skill.yaml +1 -0
  2582. package/dist/agents/skills/cursor/react-server-components/skill.yaml +1 -0
  2583. package/dist/agents/skills/cursor/react-server-rendering/skill.yaml +1 -0
  2584. package/dist/agents/skills/cursor/react-state-management-pattern/skill.yaml +1 -0
  2585. package/dist/agents/skills/cursor/react-static-import/skill.yaml +1 -0
  2586. package/dist/agents/skills/cursor/react-suspense-pattern/skill.yaml +1 -0
  2587. package/dist/agents/skills/cursor/redux-entity-adapter/skill.yaml +1 -0
  2588. package/dist/agents/skills/cursor/redux-listener-middleware/skill.yaml +1 -0
  2589. package/dist/agents/skills/cursor/redux-persistence-pattern/skill.yaml +1 -0
  2590. package/dist/agents/skills/cursor/redux-rtk-optimistic/skill.yaml +1 -0
  2591. package/dist/agents/skills/cursor/redux-rtk-query-endpoints/skill.yaml +1 -0
  2592. package/dist/agents/skills/cursor/redux-rtk-query-setup/skill.yaml +1 -0
  2593. package/dist/agents/skills/cursor/redux-selectors-pattern/skill.yaml +1 -0
  2594. package/dist/agents/skills/cursor/redux-slice-pattern/skill.yaml +1 -0
  2595. package/dist/agents/skills/cursor/redux-store-setup/skill.yaml +1 -0
  2596. package/dist/agents/skills/cursor/redux-testing-patterns/skill.yaml +1 -0
  2597. package/dist/agents/skills/cursor/redux-thunk-pattern/skill.yaml +1 -0
  2598. package/dist/agents/skills/cursor/redux-typescript-patterns/skill.yaml +1 -0
  2599. package/dist/agents/skills/cursor/resilience-bulkhead-pattern/skill.yaml +1 -0
  2600. package/dist/agents/skills/cursor/resilience-chaos-testing/skill.yaml +1 -0
  2601. package/dist/agents/skills/cursor/resilience-circuit-breaker/skill.yaml +1 -0
  2602. package/dist/agents/skills/cursor/resilience-dead-letter/skill.yaml +1 -0
  2603. package/dist/agents/skills/cursor/resilience-fallback-pattern/skill.yaml +1 -0
  2604. package/dist/agents/skills/cursor/resilience-health-checks/skill.yaml +1 -0
  2605. package/dist/agents/skills/cursor/resilience-idempotency/skill.yaml +1 -0
  2606. package/dist/agents/skills/cursor/resilience-rate-limiting/skill.yaml +1 -0
  2607. package/dist/agents/skills/cursor/resilience-retry-pattern/skill.yaml +1 -0
  2608. package/dist/agents/skills/cursor/resilience-timeout-pattern/skill.yaml +1 -0
  2609. package/dist/agents/skills/cursor/security-abac-design/SKILL.md +154 -0
  2610. package/dist/agents/skills/cursor/security-abac-design/skill.yaml +41 -0
  2611. package/dist/agents/skills/cursor/security-asymmetric-encryption/SKILL.md +201 -0
  2612. package/dist/agents/skills/cursor/security-asymmetric-encryption/skill.yaml +42 -0
  2613. package/dist/agents/skills/cursor/security-attack-trees/SKILL.md +150 -0
  2614. package/dist/agents/skills/cursor/security-attack-trees/skill.yaml +37 -0
  2615. package/dist/agents/skills/cursor/security-audit-log-design/SKILL.md +227 -0
  2616. package/dist/agents/skills/cursor/security-audit-log-design/skill.yaml +39 -0
  2617. package/dist/agents/skills/cursor/security-authentication-flows/SKILL.md +168 -0
  2618. package/dist/agents/skills/cursor/security-authentication-flows/skill.yaml +42 -0
  2619. package/dist/agents/skills/cursor/security-capability-based-security/SKILL.md +158 -0
  2620. package/dist/agents/skills/cursor/security-capability-based-security/skill.yaml +40 -0
  2621. package/dist/agents/skills/cursor/security-certificate-management/SKILL.md +153 -0
  2622. package/dist/agents/skills/cursor/security-certificate-management/skill.yaml +42 -0
  2623. package/dist/agents/skills/cursor/security-ci-security-testing/SKILL.md +159 -0
  2624. package/dist/agents/skills/cursor/security-ci-security-testing/skill.yaml +43 -0
  2625. package/dist/agents/skills/cursor/security-code-signing/SKILL.md +155 -0
  2626. package/dist/agents/skills/cursor/security-code-signing/skill.yaml +40 -0
  2627. package/dist/agents/skills/cursor/security-compliance-logging/SKILL.md +183 -0
  2628. package/dist/agents/skills/cursor/security-compliance-logging/skill.yaml +38 -0
  2629. package/dist/agents/skills/cursor/security-credential-storage/SKILL.md +222 -0
  2630. package/dist/agents/skills/cursor/security-credential-storage/skill.yaml +41 -0
  2631. package/dist/agents/skills/cursor/security-cryptographic-randomness/SKILL.md +154 -0
  2632. package/dist/agents/skills/cursor/security-cryptographic-randomness/skill.yaml +41 -0
  2633. package/dist/agents/skills/cursor/security-dependency-auditing/SKILL.md +156 -0
  2634. package/dist/agents/skills/cursor/security-dependency-auditing/skill.yaml +39 -0
  2635. package/dist/agents/skills/cursor/security-deserialization-attacks/SKILL.md +180 -0
  2636. package/dist/agents/skills/cursor/security-deserialization-attacks/skill.yaml +38 -0
  2637. package/dist/agents/skills/cursor/security-environment-variable-risks/SKILL.md +153 -0
  2638. package/dist/agents/skills/cursor/security-environment-variable-risks/skill.yaml +37 -0
  2639. package/dist/agents/skills/cursor/security-forensics-fundamentals/SKILL.md +198 -0
  2640. package/dist/agents/skills/cursor/security-forensics-fundamentals/skill.yaml +40 -0
  2641. package/dist/agents/skills/cursor/security-hashing-fundamentals/SKILL.md +212 -0
  2642. package/dist/agents/skills/cursor/security-hashing-fundamentals/skill.yaml +40 -0
  2643. package/dist/agents/skills/cursor/security-hmac-signatures/SKILL.md +165 -0
  2644. package/dist/agents/skills/cursor/security-hmac-signatures/skill.yaml +40 -0
  2645. package/dist/agents/skills/cursor/security-hsts-preloading/SKILL.md +154 -0
  2646. package/dist/agents/skills/cursor/security-hsts-preloading/skill.yaml +38 -0
  2647. package/dist/agents/skills/cursor/security-identity-verification/SKILL.md +157 -0
  2648. package/dist/agents/skills/cursor/security-identity-verification/skill.yaml +39 -0
  2649. package/dist/agents/skills/cursor/security-incident-containment/SKILL.md +190 -0
  2650. package/dist/agents/skills/cursor/security-incident-containment/skill.yaml +40 -0
  2651. package/dist/agents/skills/cursor/security-injection-families/SKILL.md +235 -0
  2652. package/dist/agents/skills/cursor/security-injection-families/skill.yaml +41 -0
  2653. package/dist/agents/skills/cursor/security-log-correlation/SKILL.md +178 -0
  2654. package/dist/agents/skills/cursor/security-log-correlation/skill.yaml +39 -0
  2655. package/dist/agents/skills/cursor/security-memory-safety/SKILL.md +234 -0
  2656. package/dist/agents/skills/cursor/security-memory-safety/skill.yaml +39 -0
  2657. package/dist/agents/skills/cursor/security-mfa-design/SKILL.md +150 -0
  2658. package/dist/agents/skills/cursor/security-mfa-design/skill.yaml +41 -0
  2659. package/dist/agents/skills/cursor/security-microsegmentation/SKILL.md +154 -0
  2660. package/dist/agents/skills/cursor/security-microsegmentation/skill.yaml +40 -0
  2661. package/dist/agents/skills/cursor/security-mtls-design/SKILL.md +158 -0
  2662. package/dist/agents/skills/cursor/security-mtls-design/skill.yaml +39 -0
  2663. package/dist/agents/skills/cursor/security-penetration-testing/SKILL.md +166 -0
  2664. package/dist/agents/skills/cursor/security-penetration-testing/skill.yaml +40 -0
  2665. package/dist/agents/skills/cursor/security-post-incident-review/SKILL.md +205 -0
  2666. package/dist/agents/skills/cursor/security-post-incident-review/skill.yaml +39 -0
  2667. package/dist/agents/skills/cursor/security-race-conditions/SKILL.md +186 -0
  2668. package/dist/agents/skills/cursor/security-race-conditions/skill.yaml +39 -0
  2669. package/dist/agents/skills/cursor/security-rbac-design/SKILL.md +209 -0
  2670. package/dist/agents/skills/cursor/security-rbac-design/skill.yaml +40 -0
  2671. package/dist/agents/skills/cursor/security-rebac-design/SKILL.md +154 -0
  2672. package/dist/agents/skills/cursor/security-rebac-design/skill.yaml +39 -0
  2673. package/dist/agents/skills/cursor/security-sbom-provenance/SKILL.md +157 -0
  2674. package/dist/agents/skills/cursor/security-sbom-provenance/skill.yaml +39 -0
  2675. package/dist/agents/skills/cursor/security-secrets-lifecycle/SKILL.md +190 -0
  2676. package/dist/agents/skills/cursor/security-secrets-lifecycle/skill.yaml +39 -0
  2677. package/dist/agents/skills/cursor/security-security-champions/SKILL.md +165 -0
  2678. package/dist/agents/skills/cursor/security-security-champions/skill.yaml +37 -0
  2679. package/dist/agents/skills/cursor/security-session-management/SKILL.md +196 -0
  2680. package/dist/agents/skills/cursor/security-session-management/skill.yaml +41 -0
  2681. package/dist/agents/skills/cursor/security-shift-left-design/SKILL.md +153 -0
  2682. package/dist/agents/skills/cursor/security-shift-left-design/skill.yaml +38 -0
  2683. package/dist/agents/skills/cursor/security-symmetric-encryption/SKILL.md +176 -0
  2684. package/dist/agents/skills/cursor/security-symmetric-encryption/skill.yaml +41 -0
  2685. package/dist/agents/skills/cursor/security-threat-modeling-process/SKILL.md +150 -0
  2686. package/dist/agents/skills/cursor/security-threat-modeling-process/skill.yaml +38 -0
  2687. package/dist/agents/skills/cursor/security-threat-modeling-stride/SKILL.md +150 -0
  2688. package/dist/agents/skills/cursor/security-threat-modeling-stride/skill.yaml +40 -0
  2689. package/dist/agents/skills/cursor/security-tls-fundamentals/SKILL.md +186 -0
  2690. package/dist/agents/skills/cursor/security-tls-fundamentals/skill.yaml +40 -0
  2691. package/dist/agents/skills/cursor/security-trust-boundaries/SKILL.md +152 -0
  2692. package/dist/agents/skills/cursor/security-trust-boundaries/skill.yaml +39 -0
  2693. package/dist/agents/skills/cursor/security-vault-patterns/SKILL.md +155 -0
  2694. package/dist/agents/skills/cursor/security-vault-patterns/skill.yaml +39 -0
  2695. package/dist/agents/skills/cursor/security-vulnerability-disclosure/SKILL.md +207 -0
  2696. package/dist/agents/skills/cursor/security-vulnerability-disclosure/skill.yaml +39 -0
  2697. package/dist/agents/skills/cursor/security-zero-trust-principles/SKILL.md +229 -0
  2698. package/dist/agents/skills/cursor/security-zero-trust-principles/skill.yaml +40 -0
  2699. package/dist/agents/skills/cursor/state-context-pattern/skill.yaml +1 -0
  2700. package/dist/agents/skills/cursor/state-jotai-atoms/skill.yaml +1 -0
  2701. package/dist/agents/skills/cursor/state-selection-patterns/skill.yaml +1 -0
  2702. package/dist/agents/skills/cursor/state-server-client-sync/skill.yaml +1 -0
  2703. package/dist/agents/skills/cursor/state-zustand-devtools/skill.yaml +1 -0
  2704. package/dist/agents/skills/cursor/state-zustand-immer/skill.yaml +1 -0
  2705. package/dist/agents/skills/cursor/state-zustand-persist/skill.yaml +1 -0
  2706. package/dist/agents/skills/cursor/state-zustand-react/skill.yaml +1 -0
  2707. package/dist/agents/skills/cursor/state-zustand-slices/skill.yaml +1 -0
  2708. package/dist/agents/skills/cursor/state-zustand-store/skill.yaml +1 -0
  2709. package/dist/agents/skills/cursor/svelte-adapter-config/skill.yaml +1 -0
  2710. package/dist/agents/skills/cursor/svelte-component-composition/skill.yaml +1 -0
  2711. package/dist/agents/skills/cursor/svelte-error-pages/skill.yaml +1 -0
  2712. package/dist/agents/skills/cursor/svelte-form-actions/skill.yaml +1 -0
  2713. package/dist/agents/skills/cursor/svelte-load-functions/skill.yaml +1 -0
  2714. package/dist/agents/skills/cursor/svelte-performance-patterns/skill.yaml +6 -0
  2715. package/dist/agents/skills/cursor/svelte-routing-pattern/skill.yaml +1 -0
  2716. package/dist/agents/skills/cursor/svelte-runes-pattern/skill.yaml +1 -0
  2717. package/dist/agents/skills/cursor/svelte-server-hooks/skill.yaml +1 -0
  2718. package/dist/agents/skills/cursor/svelte-state-management/skill.yaml +1 -0
  2719. package/dist/agents/skills/cursor/svelte-stores-pattern/skill.yaml +1 -0
  2720. package/dist/agents/skills/cursor/svelte-testing-patterns/skill.yaml +1 -0
  2721. package/dist/agents/skills/cursor/svelte-transitions-animations/skill.yaml +1 -0
  2722. package/dist/agents/skills/cursor/tanstack-cache-management/skill.yaml +1 -0
  2723. package/dist/agents/skills/cursor/tanstack-dependent-queries/skill.yaml +1 -0
  2724. package/dist/agents/skills/cursor/tanstack-devtools/skill.yaml +1 -0
  2725. package/dist/agents/skills/cursor/tanstack-infinite-queries/skill.yaml +1 -0
  2726. package/dist/agents/skills/cursor/tanstack-mutation-patterns/skill.yaml +1 -0
  2727. package/dist/agents/skills/cursor/tanstack-optimistic-updates/skill.yaml +1 -0
  2728. package/dist/agents/skills/cursor/tanstack-prefetching/skill.yaml +1 -0
  2729. package/dist/agents/skills/cursor/tanstack-query-invalidation/skill.yaml +1 -0
  2730. package/dist/agents/skills/cursor/tanstack-query-keys/skill.yaml +1 -0
  2731. package/dist/agents/skills/cursor/tanstack-suspense-mode/skill.yaml +1 -0
  2732. package/dist/agents/skills/cursor/test-accessibility-testing/skill.yaml +1 -0
  2733. package/dist/agents/skills/cursor/test-component-react/skill.yaml +1 -0
  2734. package/dist/agents/skills/cursor/test-component-svelte/skill.yaml +1 -0
  2735. package/dist/agents/skills/cursor/test-contract-testing/skill.yaml +1 -0
  2736. package/dist/agents/skills/cursor/test-coverage-patterns/skill.yaml +1 -0
  2737. package/dist/agents/skills/cursor/test-e2e-strategy/skill.yaml +1 -0
  2738. package/dist/agents/skills/cursor/test-factory-patterns/skill.yaml +1 -0
  2739. package/dist/agents/skills/cursor/test-integration-patterns/skill.yaml +1 -0
  2740. package/dist/agents/skills/cursor/test-mock-patterns/skill.yaml +1 -0
  2741. package/dist/agents/skills/cursor/test-msw-pattern/skill.yaml +1 -0
  2742. package/dist/agents/skills/cursor/test-performance-testing/skill.yaml +5 -0
  2743. package/dist/agents/skills/cursor/test-playwright-patterns/skill.yaml +1 -0
  2744. package/dist/agents/skills/cursor/test-playwright-setup/skill.yaml +1 -0
  2745. package/dist/agents/skills/cursor/test-property-based/skill.yaml +1 -0
  2746. package/dist/agents/skills/cursor/test-snapshot-patterns/skill.yaml +1 -0
  2747. package/dist/agents/skills/cursor/test-tdd-workflow/skill.yaml +1 -0
  2748. package/dist/agents/skills/cursor/test-unit-patterns/skill.yaml +1 -0
  2749. package/dist/agents/skills/cursor/test-vitest-config/skill.yaml +1 -0
  2750. package/dist/agents/skills/cursor/trpc-context-pattern/skill.yaml +1 -0
  2751. package/dist/agents/skills/cursor/trpc-error-handling/SKILL.md +1 -0
  2752. package/dist/agents/skills/cursor/trpc-error-handling/skill.yaml +3 -0
  2753. package/dist/agents/skills/cursor/trpc-input-validation/SKILL.md +1 -0
  2754. package/dist/agents/skills/cursor/trpc-input-validation/skill.yaml +2 -0
  2755. package/dist/agents/skills/cursor/trpc-middleware-pattern/skill.yaml +1 -0
  2756. package/dist/agents/skills/cursor/trpc-nextjs-integration/skill.yaml +1 -0
  2757. package/dist/agents/skills/cursor/trpc-react-query-integration/skill.yaml +1 -0
  2758. package/dist/agents/skills/cursor/trpc-router-composition/SKILL.md +1 -0
  2759. package/dist/agents/skills/cursor/trpc-router-composition/skill.yaml +3 -0
  2760. package/dist/agents/skills/cursor/trpc-subscription-pattern/skill.yaml +1 -0
  2761. package/dist/agents/skills/cursor/ts-async-patterns/skill.yaml +1 -0
  2762. package/dist/agents/skills/cursor/ts-branded-types/skill.yaml +1 -0
  2763. package/dist/agents/skills/cursor/ts-class-patterns/skill.yaml +1 -0
  2764. package/dist/agents/skills/cursor/ts-conditional-types/skill.yaml +1 -0
  2765. package/dist/agents/skills/cursor/ts-config-patterns/skill.yaml +1 -0
  2766. package/dist/agents/skills/cursor/ts-declaration-merging/skill.yaml +1 -0
  2767. package/dist/agents/skills/cursor/ts-decorator-patterns/skill.yaml +1 -0
  2768. package/dist/agents/skills/cursor/ts-discriminated-unions/skill.yaml +1 -0
  2769. package/dist/agents/skills/cursor/ts-error-handling-types/skill.yaml +1 -0
  2770. package/dist/agents/skills/cursor/ts-generics-pattern/skill.yaml +1 -0
  2771. package/dist/agents/skills/cursor/ts-mapped-types/skill.yaml +1 -0
  2772. package/dist/agents/skills/cursor/ts-module-patterns/skill.yaml +1 -0
  2773. package/dist/agents/skills/cursor/ts-performance-patterns/skill.yaml +5 -0
  2774. package/dist/agents/skills/cursor/ts-satisfies-operator/skill.yaml +1 -0
  2775. package/dist/agents/skills/cursor/ts-strict-mode/skill.yaml +1 -0
  2776. package/dist/agents/skills/cursor/ts-template-literal-types/skill.yaml +1 -0
  2777. package/dist/agents/skills/cursor/ts-testing-types/skill.yaml +1 -0
  2778. package/dist/agents/skills/cursor/ts-type-guards/skill.yaml +1 -0
  2779. package/dist/agents/skills/cursor/ts-utility-types/skill.yaml +1 -0
  2780. package/dist/agents/skills/cursor/ts-zod-integration/skill.yaml +1 -0
  2781. package/dist/agents/skills/cursor/ux-active-voice/SKILL.md +150 -0
  2782. package/dist/agents/skills/cursor/ux-active-voice/skill.yaml +32 -0
  2783. package/dist/agents/skills/cursor/ux-button-cta-copy/SKILL.md +159 -0
  2784. package/dist/agents/skills/cursor/ux-button-cta-copy/skill.yaml +34 -0
  2785. package/dist/agents/skills/cursor/ux-confirmation-dialogs/SKILL.md +156 -0
  2786. package/dist/agents/skills/cursor/ux-confirmation-dialogs/skill.yaml +33 -0
  2787. package/dist/agents/skills/cursor/ux-content-hierarchy/SKILL.md +150 -0
  2788. package/dist/agents/skills/cursor/ux-content-hierarchy/skill.yaml +33 -0
  2789. package/dist/agents/skills/cursor/ux-data-table-copy/SKILL.md +154 -0
  2790. package/dist/agents/skills/cursor/ux-data-table-copy/skill.yaml +34 -0
  2791. package/dist/agents/skills/cursor/ux-destructive-action-copy/SKILL.md +152 -0
  2792. package/dist/agents/skills/cursor/ux-destructive-action-copy/skill.yaml +34 -0
  2793. package/dist/agents/skills/cursor/ux-empty-states/SKILL.md +155 -0
  2794. package/dist/agents/skills/cursor/ux-empty-states/skill.yaml +36 -0
  2795. package/dist/agents/skills/cursor/ux-error-messages/SKILL.md +159 -0
  2796. package/dist/agents/skills/cursor/ux-error-messages/skill.yaml +35 -0
  2797. package/dist/agents/skills/cursor/ux-error-severity/SKILL.md +155 -0
  2798. package/dist/agents/skills/cursor/ux-error-severity/skill.yaml +35 -0
  2799. package/dist/agents/skills/cursor/ux-form-labels/SKILL.md +159 -0
  2800. package/dist/agents/skills/cursor/ux-form-labels/skill.yaml +36 -0
  2801. package/dist/agents/skills/cursor/ux-inclusive-language/SKILL.md +161 -0
  2802. package/dist/agents/skills/cursor/ux-inclusive-language/skill.yaml +33 -0
  2803. package/dist/agents/skills/cursor/ux-internationalization-writing/SKILL.md +196 -0
  2804. package/dist/agents/skills/cursor/ux-internationalization-writing/skill.yaml +35 -0
  2805. package/dist/agents/skills/cursor/ux-loading-states/SKILL.md +162 -0
  2806. package/dist/agents/skills/cursor/ux-loading-states/skill.yaml +33 -0
  2807. package/dist/agents/skills/cursor/ux-microcopy-principles/SKILL.md +152 -0
  2808. package/dist/agents/skills/cursor/ux-microcopy-principles/skill.yaml +37 -0
  2809. package/dist/agents/skills/cursor/ux-navigation-labels/SKILL.md +163 -0
  2810. package/dist/agents/skills/cursor/ux-navigation-labels/skill.yaml +35 -0
  2811. package/dist/agents/skills/cursor/ux-notification-copy/SKILL.md +150 -0
  2812. package/dist/agents/skills/cursor/ux-notification-copy/skill.yaml +35 -0
  2813. package/dist/agents/skills/cursor/ux-onboarding-copy/SKILL.md +156 -0
  2814. package/dist/agents/skills/cursor/ux-onboarding-copy/skill.yaml +35 -0
  2815. package/dist/agents/skills/cursor/ux-permission-access-copy/SKILL.md +150 -0
  2816. package/dist/agents/skills/cursor/ux-permission-access-copy/skill.yaml +34 -0
  2817. package/dist/agents/skills/cursor/ux-plain-language/SKILL.md +157 -0
  2818. package/dist/agents/skills/cursor/ux-plain-language/skill.yaml +34 -0
  2819. package/dist/agents/skills/cursor/ux-search-copy/SKILL.md +154 -0
  2820. package/dist/agents/skills/cursor/ux-search-copy/skill.yaml +33 -0
  2821. package/dist/agents/skills/cursor/ux-settings-preferences/SKILL.md +152 -0
  2822. package/dist/agents/skills/cursor/ux-settings-preferences/skill.yaml +33 -0
  2823. package/dist/agents/skills/cursor/ux-success-feedback/SKILL.md +163 -0
  2824. package/dist/agents/skills/cursor/ux-success-feedback/skill.yaml +33 -0
  2825. package/dist/agents/skills/cursor/ux-tooltip-contextual-help/SKILL.md +163 -0
  2826. package/dist/agents/skills/cursor/ux-tooltip-contextual-help/skill.yaml +33 -0
  2827. package/dist/agents/skills/cursor/ux-voice-tone/SKILL.md +150 -0
  2828. package/dist/agents/skills/cursor/ux-voice-tone/skill.yaml +33 -0
  2829. package/dist/agents/skills/cursor/ux-writing-for-scanning/SKILL.md +150 -0
  2830. package/dist/agents/skills/cursor/ux-writing-for-scanning/skill.yaml +35 -0
  2831. package/dist/agents/skills/cursor/validate-context-engineering/skill.yaml +1 -0
  2832. package/dist/agents/skills/cursor/vue-async-components/skill.yaml +1 -0
  2833. package/dist/agents/skills/cursor/vue-component-events/skill.yaml +1 -0
  2834. package/dist/agents/skills/cursor/vue-composables-pattern/skill.yaml +1 -0
  2835. package/dist/agents/skills/cursor/vue-directive-pattern/skill.yaml +1 -0
  2836. package/dist/agents/skills/cursor/vue-pinia-pattern/skill.yaml +1 -0
  2837. package/dist/agents/skills/cursor/vue-provide-inject/skill.yaml +1 -0
  2838. package/dist/agents/skills/cursor/vue-reactive-refs/skill.yaml +1 -0
  2839. package/dist/agents/skills/cursor/vue-renderless-components/skill.yaml +1 -0
  2840. package/dist/agents/skills/cursor/vue-slots-pattern/skill.yaml +1 -0
  2841. package/dist/agents/skills/cursor/vue-teleport-pattern/skill.yaml +1 -0
  2842. package/dist/agents/skills/cursor/vue-watchers-pattern/skill.yaml +1 -0
  2843. package/dist/agents/skills/cursor/xstate-actor-pattern/skill.yaml +1 -0
  2844. package/dist/agents/skills/cursor/xstate-guards-actions/skill.yaml +1 -0
  2845. package/dist/agents/skills/cursor/xstate-history-states/skill.yaml +1 -0
  2846. package/dist/agents/skills/cursor/xstate-invoke-pattern/skill.yaml +1 -0
  2847. package/dist/agents/skills/cursor/xstate-machine-definition/skill.yaml +1 -0
  2848. package/dist/agents/skills/cursor/xstate-parallel-states/skill.yaml +1 -0
  2849. package/dist/agents/skills/cursor/xstate-react-integration/skill.yaml +1 -0
  2850. package/dist/agents/skills/cursor/xstate-testing-patterns/skill.yaml +1 -0
  2851. package/dist/agents/skills/cursor/xstate-typegen/skill.yaml +1 -0
  2852. package/dist/agents/skills/cursor/xstate-visualization/skill.yaml +1 -0
  2853. package/dist/agents/skills/cursor/zod-array-validation/skill.yaml +1 -0
  2854. package/dist/agents/skills/cursor/zod-async-validation/skill.yaml +1 -0
  2855. package/dist/agents/skills/cursor/zod-error-handling/skill.yaml +1 -0
  2856. package/dist/agents/skills/cursor/zod-infer-types/skill.yaml +1 -0
  2857. package/dist/agents/skills/cursor/zod-nextjs-integration/skill.yaml +1 -0
  2858. package/dist/agents/skills/cursor/zod-object-patterns/skill.yaml +1 -0
  2859. package/dist/agents/skills/cursor/zod-schema-definition/skill.yaml +1 -0
  2860. package/dist/agents/skills/cursor/zod-string-validation/skill.yaml +1 -0
  2861. package/dist/agents/skills/cursor/zod-transform-refine/skill.yaml +1 -0
  2862. package/dist/agents/skills/cursor/zod-union-discriminated/skill.yaml +1 -0
  2863. package/dist/agents/skills/gemini-cli/a11y-aria-patterns/skill.yaml +1 -0
  2864. package/dist/agents/skills/gemini-cli/a11y-color-contrast/skill.yaml +1 -0
  2865. package/dist/agents/skills/gemini-cli/a11y-form-patterns/skill.yaml +2 -0
  2866. package/dist/agents/skills/gemini-cli/a11y-image-text-alt/skill.yaml +1 -0
  2867. package/dist/agents/skills/gemini-cli/a11y-keyboard-navigation/skill.yaml +1 -0
  2868. package/dist/agents/skills/gemini-cli/a11y-modal-patterns/skill.yaml +1 -0
  2869. package/dist/agents/skills/gemini-cli/a11y-motion-animation/skill.yaml +1 -0
  2870. package/dist/agents/skills/gemini-cli/a11y-screen-reader-testing/skill.yaml +1 -0
  2871. package/dist/agents/skills/gemini-cli/a11y-semantic-html/skill.yaml +1 -0
  2872. package/dist/agents/skills/gemini-cli/a11y-testing-automation/skill.yaml +1 -0
  2873. package/dist/agents/skills/gemini-cli/add-harness-component/skill.yaml +1 -0
  2874. package/dist/agents/skills/gemini-cli/align-documentation/skill.yaml +1 -0
  2875. package/dist/agents/skills/gemini-cli/angular-component-pattern/skill.yaml +1 -0
  2876. package/dist/agents/skills/gemini-cli/angular-directive-pattern/skill.yaml +1 -0
  2877. package/dist/agents/skills/gemini-cli/angular-http-interceptors/skill.yaml +1 -0
  2878. package/dist/agents/skills/gemini-cli/angular-lazy-loading/skill.yaml +1 -0
  2879. package/dist/agents/skills/gemini-cli/angular-performance-patterns/skill.yaml +6 -0
  2880. package/dist/agents/skills/gemini-cli/angular-pipe-pattern/skill.yaml +1 -0
  2881. package/dist/agents/skills/gemini-cli/angular-reactive-forms/skill.yaml +1 -0
  2882. package/dist/agents/skills/gemini-cli/angular-routing-guards/skill.yaml +1 -0
  2883. package/dist/agents/skills/gemini-cli/angular-rxjs-patterns/skill.yaml +1 -0
  2884. package/dist/agents/skills/gemini-cli/angular-schematics/skill.yaml +1 -0
  2885. package/dist/agents/skills/gemini-cli/angular-service-di/skill.yaml +1 -0
  2886. package/dist/agents/skills/gemini-cli/angular-signals-pattern/skill.yaml +1 -0
  2887. package/dist/agents/skills/gemini-cli/angular-standalone-components/skill.yaml +1 -0
  2888. package/dist/agents/skills/gemini-cli/angular-state-management/skill.yaml +1 -0
  2889. package/dist/agents/skills/gemini-cli/angular-testing-patterns/skill.yaml +1 -0
  2890. package/dist/agents/skills/gemini-cli/api-api-keys/SKILL.md +135 -0
  2891. package/dist/agents/skills/gemini-cli/api-api-keys/skill.yaml +41 -0
  2892. package/dist/agents/skills/gemini-cli/api-authentication-patterns/SKILL.md +117 -0
  2893. package/dist/agents/skills/gemini-cli/api-authentication-patterns/skill.yaml +44 -0
  2894. package/dist/agents/skills/gemini-cli/api-backward-compatibility/SKILL.md +170 -0
  2895. package/dist/agents/skills/gemini-cli/api-backward-compatibility/skill.yaml +39 -0
  2896. package/dist/agents/skills/gemini-cli/api-bulk-operations/SKILL.md +198 -0
  2897. package/dist/agents/skills/gemini-cli/api-bulk-operations/skill.yaml +39 -0
  2898. package/dist/agents/skills/gemini-cli/api-conditional-requests/SKILL.md +233 -0
  2899. package/dist/agents/skills/gemini-cli/api-conditional-requests/skill.yaml +41 -0
  2900. package/dist/agents/skills/gemini-cli/api-content-negotiation/SKILL.md +194 -0
  2901. package/dist/agents/skills/gemini-cli/api-content-negotiation/skill.yaml +39 -0
  2902. package/dist/agents/skills/gemini-cli/api-contract-testing/SKILL.md +222 -0
  2903. package/dist/agents/skills/gemini-cli/api-contract-testing/skill.yaml +42 -0
  2904. package/dist/agents/skills/gemini-cli/api-deprecation-strategy/SKILL.md +156 -0
  2905. package/dist/agents/skills/gemini-cli/api-deprecation-strategy/skill.yaml +39 -0
  2906. package/dist/agents/skills/gemini-cli/api-error-contracts/SKILL.md +149 -0
  2907. package/dist/agents/skills/gemini-cli/api-error-contracts/skill.yaml +40 -0
  2908. package/dist/agents/skills/gemini-cli/api-field-selection/SKILL.md +193 -0
  2909. package/dist/agents/skills/gemini-cli/api-field-selection/skill.yaml +39 -0
  2910. package/dist/agents/skills/gemini-cli/api-filtering-sorting/SKILL.md +170 -0
  2911. package/dist/agents/skills/gemini-cli/api-filtering-sorting/skill.yaml +40 -0
  2912. package/dist/agents/skills/gemini-cli/api-hateoas/SKILL.md +212 -0
  2913. package/dist/agents/skills/gemini-cli/api-hateoas/skill.yaml +40 -0
  2914. package/dist/agents/skills/gemini-cli/api-http-caching/SKILL.md +188 -0
  2915. package/dist/agents/skills/gemini-cli/api-http-caching/skill.yaml +43 -0
  2916. package/dist/agents/skills/gemini-cli/api-http-methods/SKILL.md +185 -0
  2917. package/dist/agents/skills/gemini-cli/api-http-methods/skill.yaml +43 -0
  2918. package/dist/agents/skills/gemini-cli/api-idempotency-keys/SKILL.md +176 -0
  2919. package/dist/agents/skills/gemini-cli/api-idempotency-keys/skill.yaml +40 -0
  2920. package/dist/agents/skills/gemini-cli/api-long-running-operations/SKILL.md +209 -0
  2921. package/dist/agents/skills/gemini-cli/api-long-running-operations/skill.yaml +40 -0
  2922. package/dist/agents/skills/gemini-cli/api-nested-vs-flat/SKILL.md +173 -0
  2923. package/dist/agents/skills/gemini-cli/api-nested-vs-flat/skill.yaml +39 -0
  2924. package/dist/agents/skills/gemini-cli/api-oauth2-flows/SKILL.md +150 -0
  2925. package/dist/agents/skills/gemini-cli/api-oauth2-flows/skill.yaml +42 -0
  2926. package/dist/agents/skills/gemini-cli/api-openapi-design/SKILL.md +260 -0
  2927. package/dist/agents/skills/gemini-cli/api-openapi-design/skill.yaml +44 -0
  2928. package/dist/agents/skills/gemini-cli/api-pagination-cursor/SKILL.md +159 -0
  2929. package/dist/agents/skills/gemini-cli/api-pagination-cursor/skill.yaml +40 -0
  2930. package/dist/agents/skills/gemini-cli/api-pagination-keyset/SKILL.md +167 -0
  2931. package/dist/agents/skills/gemini-cli/api-pagination-keyset/skill.yaml +39 -0
  2932. package/dist/agents/skills/gemini-cli/api-pagination-offset/SKILL.md +135 -0
  2933. package/dist/agents/skills/gemini-cli/api-pagination-offset/skill.yaml +39 -0
  2934. package/dist/agents/skills/gemini-cli/api-problem-details-rfc/SKILL.md +164 -0
  2935. package/dist/agents/skills/gemini-cli/api-problem-details-rfc/skill.yaml +38 -0
  2936. package/dist/agents/skills/gemini-cli/api-rate-limit-headers/SKILL.md +144 -0
  2937. package/dist/agents/skills/gemini-cli/api-rate-limit-headers/skill.yaml +39 -0
  2938. package/dist/agents/skills/gemini-cli/api-rate-limiting/SKILL.md +131 -0
  2939. package/dist/agents/skills/gemini-cli/api-rate-limiting/skill.yaml +41 -0
  2940. package/dist/agents/skills/gemini-cli/api-resource-granularity/SKILL.md +165 -0
  2941. package/dist/agents/skills/gemini-cli/api-resource-granularity/skill.yaml +40 -0
  2942. package/dist/agents/skills/gemini-cli/api-resource-modeling/SKILL.md +155 -0
  2943. package/dist/agents/skills/gemini-cli/api-resource-modeling/skill.yaml +40 -0
  2944. package/dist/agents/skills/gemini-cli/api-rest-maturity-model/SKILL.md +215 -0
  2945. package/dist/agents/skills/gemini-cli/api-rest-maturity-model/skill.yaml +39 -0
  2946. package/dist/agents/skills/gemini-cli/api-retry-guidance/SKILL.md +168 -0
  2947. package/dist/agents/skills/gemini-cli/api-retry-guidance/skill.yaml +41 -0
  2948. package/dist/agents/skills/gemini-cli/api-sdk-ergonomics/SKILL.md +194 -0
  2949. package/dist/agents/skills/gemini-cli/api-sdk-ergonomics/skill.yaml +43 -0
  2950. package/dist/agents/skills/gemini-cli/api-status-codes/SKILL.md +196 -0
  2951. package/dist/agents/skills/gemini-cli/api-status-codes/skill.yaml +46 -0
  2952. package/dist/agents/skills/gemini-cli/api-validation-errors/SKILL.md +174 -0
  2953. package/dist/agents/skills/gemini-cli/api-validation-errors/skill.yaml +40 -0
  2954. package/dist/agents/skills/gemini-cli/api-versioning-header/SKILL.md +177 -0
  2955. package/dist/agents/skills/gemini-cli/api-versioning-header/skill.yaml +37 -0
  2956. package/dist/agents/skills/gemini-cli/api-versioning-url/SKILL.md +128 -0
  2957. package/dist/agents/skills/gemini-cli/api-versioning-url/skill.yaml +39 -0
  2958. package/dist/agents/skills/gemini-cli/api-webhook-design/SKILL.md +165 -0
  2959. package/dist/agents/skills/gemini-cli/api-webhook-design/skill.yaml +41 -0
  2960. package/dist/agents/skills/gemini-cli/api-webhook-security/SKILL.md +176 -0
  2961. package/dist/agents/skills/gemini-cli/api-webhook-security/skill.yaml +41 -0
  2962. package/dist/agents/skills/gemini-cli/astro-component-pattern/skill.yaml +1 -0
  2963. package/dist/agents/skills/gemini-cli/astro-content-collections/skill.yaml +1 -0
  2964. package/dist/agents/skills/gemini-cli/astro-deployment-config/skill.yaml +1 -0
  2965. package/dist/agents/skills/gemini-cli/astro-image-optimization/skill.yaml +1 -0
  2966. package/dist/agents/skills/gemini-cli/astro-integration-pattern/skill.yaml +1 -0
  2967. package/dist/agents/skills/gemini-cli/astro-islands-architecture/skill.yaml +1 -0
  2968. package/dist/agents/skills/gemini-cli/astro-multi-framework/skill.yaml +1 -0
  2969. package/dist/agents/skills/gemini-cli/astro-routing-pattern/skill.yaml +1 -0
  2970. package/dist/agents/skills/gemini-cli/astro-server-endpoints/skill.yaml +1 -0
  2971. package/dist/agents/skills/gemini-cli/astro-ssr-hybrid/skill.yaml +1 -0
  2972. package/dist/agents/skills/gemini-cli/astro-view-transitions/skill.yaml +1 -0
  2973. package/dist/agents/skills/gemini-cli/check-mechanical-constraints/skill.yaml +1 -0
  2974. package/dist/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +1 -0
  2975. package/dist/agents/skills/gemini-cli/css-animation-pattern/skill.yaml +1 -0
  2976. package/dist/agents/skills/gemini-cli/css-component-variants/skill.yaml +1 -0
  2977. package/dist/agents/skills/gemini-cli/css-css-modules/skill.yaml +1 -0
  2978. package/dist/agents/skills/gemini-cli/css-custom-components/skill.yaml +1 -0
  2979. package/dist/agents/skills/gemini-cli/css-dark-mode/skill.yaml +1 -0
  2980. package/dist/agents/skills/gemini-cli/css-design-tokens/skill.yaml +1 -0
  2981. package/dist/agents/skills/gemini-cli/css-headless-ui/skill.yaml +1 -0
  2982. package/dist/agents/skills/gemini-cli/css-layout-patterns/skill.yaml +1 -0
  2983. package/dist/agents/skills/gemini-cli/css-performance-patterns/skill.yaml +6 -0
  2984. package/dist/agents/skills/gemini-cli/css-responsive-design/skill.yaml +1 -0
  2985. package/dist/agents/skills/gemini-cli/css-tailwind-merge/skill.yaml +1 -0
  2986. package/dist/agents/skills/gemini-cli/css-tailwind-pattern/skill.yaml +1 -0
  2987. package/dist/agents/skills/gemini-cli/db-acid-in-practice/SKILL.md +215 -0
  2988. package/dist/agents/skills/gemini-cli/db-acid-in-practice/skill.yaml +38 -0
  2989. package/dist/agents/skills/gemini-cli/db-acid-properties/SKILL.md +190 -0
  2990. package/dist/agents/skills/gemini-cli/db-acid-properties/skill.yaml +38 -0
  2991. package/dist/agents/skills/gemini-cli/db-adjacency-list/SKILL.md +199 -0
  2992. package/dist/agents/skills/gemini-cli/db-adjacency-list/skill.yaml +40 -0
  2993. package/dist/agents/skills/gemini-cli/db-audit-trail/SKILL.md +244 -0
  2994. package/dist/agents/skills/gemini-cli/db-audit-trail/skill.yaml +41 -0
  2995. package/dist/agents/skills/gemini-cli/db-btree-index/SKILL.md +182 -0
  2996. package/dist/agents/skills/gemini-cli/db-btree-index/skill.yaml +44 -0
  2997. package/dist/agents/skills/gemini-cli/db-cap-theorem/SKILL.md +156 -0
  2998. package/dist/agents/skills/gemini-cli/db-cap-theorem/skill.yaml +38 -0
  2999. package/dist/agents/skills/gemini-cli/db-closure-table/SKILL.md +197 -0
  3000. package/dist/agents/skills/gemini-cli/db-closure-table/skill.yaml +38 -0
  3001. package/dist/agents/skills/gemini-cli/db-composite-index/SKILL.md +199 -0
  3002. package/dist/agents/skills/gemini-cli/db-composite-index/skill.yaml +41 -0
  3003. package/dist/agents/skills/gemini-cli/db-connection-pooling/SKILL.md +196 -0
  3004. package/dist/agents/skills/gemini-cli/db-connection-pooling/skill.yaml +39 -0
  3005. package/dist/agents/skills/gemini-cli/db-connection-sizing/SKILL.md +236 -0
  3006. package/dist/agents/skills/gemini-cli/db-connection-sizing/skill.yaml +38 -0
  3007. package/dist/agents/skills/gemini-cli/db-covering-index/SKILL.md +203 -0
  3008. package/dist/agents/skills/gemini-cli/db-covering-index/skill.yaml +40 -0
  3009. package/dist/agents/skills/gemini-cli/db-deadlock-prevention/SKILL.md +204 -0
  3010. package/dist/agents/skills/gemini-cli/db-deadlock-prevention/skill.yaml +41 -0
  3011. package/dist/agents/skills/gemini-cli/db-denormalization/SKILL.md +176 -0
  3012. package/dist/agents/skills/gemini-cli/db-denormalization/skill.yaml +38 -0
  3013. package/dist/agents/skills/gemini-cli/db-document-in-relational/SKILL.md +225 -0
  3014. package/dist/agents/skills/gemini-cli/db-document-in-relational/skill.yaml +42 -0
  3015. package/dist/agents/skills/gemini-cli/db-entity-attribute-value/SKILL.md +186 -0
  3016. package/dist/agents/skills/gemini-cli/db-entity-attribute-value/skill.yaml +39 -0
  3017. package/dist/agents/skills/gemini-cli/db-eventual-consistency/SKILL.md +226 -0
  3018. package/dist/agents/skills/gemini-cli/db-eventual-consistency/skill.yaml +38 -0
  3019. package/dist/agents/skills/gemini-cli/db-expand-contract/SKILL.md +199 -0
  3020. package/dist/agents/skills/gemini-cli/db-expand-contract/skill.yaml +40 -0
  3021. package/dist/agents/skills/gemini-cli/db-explain-reading/SKILL.md +213 -0
  3022. package/dist/agents/skills/gemini-cli/db-explain-reading/skill.yaml +44 -0
  3023. package/dist/agents/skills/gemini-cli/db-expression-index/SKILL.md +211 -0
  3024. package/dist/agents/skills/gemini-cli/db-expression-index/skill.yaml +40 -0
  3025. package/dist/agents/skills/gemini-cli/db-first-normal-form/SKILL.md +190 -0
  3026. package/dist/agents/skills/gemini-cli/db-first-normal-form/skill.yaml +38 -0
  3027. package/dist/agents/skills/gemini-cli/db-graph-in-relational/SKILL.md +212 -0
  3028. package/dist/agents/skills/gemini-cli/db-graph-in-relational/skill.yaml +41 -0
  3029. package/dist/agents/skills/gemini-cli/db-hash-index/SKILL.md +176 -0
  3030. package/dist/agents/skills/gemini-cli/db-hash-index/skill.yaml +37 -0
  3031. package/dist/agents/skills/gemini-cli/db-hierarchical-data/SKILL.md +194 -0
  3032. package/dist/agents/skills/gemini-cli/db-hierarchical-data/skill.yaml +41 -0
  3033. package/dist/agents/skills/gemini-cli/db-horizontal-sharding/SKILL.md +228 -0
  3034. package/dist/agents/skills/gemini-cli/db-horizontal-sharding/skill.yaml +40 -0
  3035. package/dist/agents/skills/gemini-cli/db-isolation-levels/SKILL.md +158 -0
  3036. package/dist/agents/skills/gemini-cli/db-isolation-levels/skill.yaml +43 -0
  3037. package/dist/agents/skills/gemini-cli/db-isolation-selection/SKILL.md +160 -0
  3038. package/dist/agents/skills/gemini-cli/db-isolation-selection/skill.yaml +41 -0
  3039. package/dist/agents/skills/gemini-cli/db-migration-rollback/SKILL.md +223 -0
  3040. package/dist/agents/skills/gemini-cli/db-migration-rollback/skill.yaml +40 -0
  3041. package/dist/agents/skills/gemini-cli/db-mvcc/SKILL.md +191 -0
  3042. package/dist/agents/skills/gemini-cli/db-mvcc/skill.yaml +45 -0
  3043. package/dist/agents/skills/gemini-cli/db-nested-sets/SKILL.md +171 -0
  3044. package/dist/agents/skills/gemini-cli/db-nested-sets/skill.yaml +38 -0
  3045. package/dist/agents/skills/gemini-cli/db-optimistic-locking/SKILL.md +151 -0
  3046. package/dist/agents/skills/gemini-cli/db-optimistic-locking/skill.yaml +44 -0
  3047. package/dist/agents/skills/gemini-cli/db-partial-index/SKILL.md +196 -0
  3048. package/dist/agents/skills/gemini-cli/db-partial-index/skill.yaml +39 -0
  3049. package/dist/agents/skills/gemini-cli/db-pessimistic-locking/SKILL.md +158 -0
  3050. package/dist/agents/skills/gemini-cli/db-pessimistic-locking/skill.yaml +44 -0
  3051. package/dist/agents/skills/gemini-cli/db-polymorphic-associations/SKILL.md +187 -0
  3052. package/dist/agents/skills/gemini-cli/db-polymorphic-associations/skill.yaml +42 -0
  3053. package/dist/agents/skills/gemini-cli/db-query-rewriting/SKILL.md +249 -0
  3054. package/dist/agents/skills/gemini-cli/db-query-rewriting/skill.yaml +43 -0
  3055. package/dist/agents/skills/gemini-cli/db-query-statistics/SKILL.md +210 -0
  3056. package/dist/agents/skills/gemini-cli/db-query-statistics/skill.yaml +41 -0
  3057. package/dist/agents/skills/gemini-cli/db-read-phenomena/SKILL.md +205 -0
  3058. package/dist/agents/skills/gemini-cli/db-read-phenomena/skill.yaml +42 -0
  3059. package/dist/agents/skills/gemini-cli/db-scan-types/SKILL.md +248 -0
  3060. package/dist/agents/skills/gemini-cli/db-scan-types/skill.yaml +41 -0
  3061. package/dist/agents/skills/gemini-cli/db-second-normal-form/SKILL.md +183 -0
  3062. package/dist/agents/skills/gemini-cli/db-second-normal-form/skill.yaml +38 -0
  3063. package/dist/agents/skills/gemini-cli/db-table-partitioning/SKILL.md +229 -0
  3064. package/dist/agents/skills/gemini-cli/db-table-partitioning/skill.yaml +39 -0
  3065. package/dist/agents/skills/gemini-cli/db-temporal-data/SKILL.md +194 -0
  3066. package/dist/agents/skills/gemini-cli/db-temporal-data/skill.yaml +41 -0
  3067. package/dist/agents/skills/gemini-cli/db-third-normal-form/SKILL.md +210 -0
  3068. package/dist/agents/skills/gemini-cli/db-third-normal-form/skill.yaml +38 -0
  3069. package/dist/agents/skills/gemini-cli/db-time-series/SKILL.md +196 -0
  3070. package/dist/agents/skills/gemini-cli/db-time-series/skill.yaml +41 -0
  3071. package/dist/agents/skills/gemini-cli/db-vertical-partitioning/SKILL.md +249 -0
  3072. package/dist/agents/skills/gemini-cli/db-vertical-partitioning/skill.yaml +40 -0
  3073. package/dist/agents/skills/gemini-cli/db-zero-downtime-migration/SKILL.md +199 -0
  3074. package/dist/agents/skills/gemini-cli/db-zero-downtime-migration/skill.yaml +42 -0
  3075. package/dist/agents/skills/gemini-cli/design-affordances/skill.yaml +1 -0
  3076. package/dist/agents/skills/gemini-cli/design-alignment/skill.yaml +1 -0
  3077. package/dist/agents/skills/gemini-cli/design-apple-hig/skill.yaml +1 -0
  3078. package/dist/agents/skills/gemini-cli/design-atomic-design/skill.yaml +1 -0
  3079. package/dist/agents/skills/gemini-cli/design-brand-consistency/skill.yaml +1 -0
  3080. package/dist/agents/skills/gemini-cli/design-color-accessibility/skill.yaml +1 -0
  3081. package/dist/agents/skills/gemini-cli/design-color-harmony/skill.yaml +1 -0
  3082. package/dist/agents/skills/gemini-cli/design-color-psychology/skill.yaml +1 -0
  3083. package/dist/agents/skills/gemini-cli/design-component-anatomy/skill.yaml +1 -0
  3084. package/dist/agents/skills/gemini-cli/design-consistency/skill.yaml +1 -0
  3085. package/dist/agents/skills/gemini-cli/design-content-density/skill.yaml +1 -0
  3086. package/dist/agents/skills/gemini-cli/design-contrast-ratio/skill.yaml +1 -0
  3087. package/dist/agents/skills/gemini-cli/design-dark-mode-color/skill.yaml +1 -0
  3088. package/dist/agents/skills/gemini-cli/design-data-viz-design/skill.yaml +1 -0
  3089. package/dist/agents/skills/gemini-cli/design-design-audit/skill.yaml +1 -0
  3090. package/dist/agents/skills/gemini-cli/design-design-critique/skill.yaml +1 -0
  3091. package/dist/agents/skills/gemini-cli/design-design-documentation/skill.yaml +1 -0
  3092. package/dist/agents/skills/gemini-cli/design-design-governance/skill.yaml +1 -0
  3093. package/dist/agents/skills/gemini-cli/design-elevation-shadow/skill.yaml +1 -0
  3094. package/dist/agents/skills/gemini-cli/design-empty-error-states/skill.yaml +3 -0
  3095. package/dist/agents/skills/gemini-cli/design-feedback-patterns/skill.yaml +5 -0
  3096. package/dist/agents/skills/gemini-cli/design-fluent-design/skill.yaml +1 -0
  3097. package/dist/agents/skills/gemini-cli/design-font-pairing/skill.yaml +1 -0
  3098. package/dist/agents/skills/gemini-cli/design-form-ux/skill.yaml +2 -0
  3099. package/dist/agents/skills/gemini-cli/design-gestalt-closure-continuity/skill.yaml +1 -0
  3100. package/dist/agents/skills/gemini-cli/design-gestalt-common-fate/skill.yaml +1 -0
  3101. package/dist/agents/skills/gemini-cli/design-gestalt-figure-ground/skill.yaml +1 -0
  3102. package/dist/agents/skills/gemini-cli/design-gestalt-proximity/skill.yaml +1 -0
  3103. package/dist/agents/skills/gemini-cli/design-gestalt-similarity/skill.yaml +1 -0
  3104. package/dist/agents/skills/gemini-cli/design-grid-systems/skill.yaml +1 -0
  3105. package/dist/agents/skills/gemini-cli/design-i18n-design/skill.yaml +2 -0
  3106. package/dist/agents/skills/gemini-cli/design-iconography/skill.yaml +1 -0
  3107. package/dist/agents/skills/gemini-cli/design-illustration-style/skill.yaml +1 -0
  3108. package/dist/agents/skills/gemini-cli/design-imagery-photography/skill.yaml +1 -0
  3109. package/dist/agents/skills/gemini-cli/design-information-architecture/skill.yaml +3 -0
  3110. package/dist/agents/skills/gemini-cli/design-loading-patterns/skill.yaml +2 -0
  3111. package/dist/agents/skills/gemini-cli/design-material-design-3/skill.yaml +1 -0
  3112. package/dist/agents/skills/gemini-cli/design-micro-interactions/skill.yaml +1 -0
  3113. package/dist/agents/skills/gemini-cli/design-motion-principles/skill.yaml +1 -0
  3114. package/dist/agents/skills/gemini-cli/design-naming-conventions/skill.yaml +1 -0
  3115. package/dist/agents/skills/gemini-cli/design-navigation-ux/skill.yaml +2 -0
  3116. package/dist/agents/skills/gemini-cli/design-palette-construction/skill.yaml +1 -0
  3117. package/dist/agents/skills/gemini-cli/design-parallax-scroll/skill.yaml +1 -0
  3118. package/dist/agents/skills/gemini-cli/design-readability/skill.yaml +3 -0
  3119. package/dist/agents/skills/gemini-cli/design-responsive-strategy/skill.yaml +1 -0
  3120. package/dist/agents/skills/gemini-cli/design-responsive-type/skill.yaml +1 -0
  3121. package/dist/agents/skills/gemini-cli/design-state-design/skill.yaml +1 -0
  3122. package/dist/agents/skills/gemini-cli/design-token-architecture/skill.yaml +1 -0
  3123. package/dist/agents/skills/gemini-cli/design-transitions-timing/skill.yaml +1 -0
  3124. package/dist/agents/skills/gemini-cli/design-type-scale/skill.yaml +1 -0
  3125. package/dist/agents/skills/gemini-cli/design-typographic-hierarchy/skill.yaml +1 -0
  3126. package/dist/agents/skills/gemini-cli/design-typography-fundamentals/skill.yaml +1 -0
  3127. package/dist/agents/skills/gemini-cli/design-visual-hierarchy/skill.yaml +1 -0
  3128. package/dist/agents/skills/gemini-cli/design-web-fonts/skill.yaml +1 -0
  3129. package/dist/agents/skills/gemini-cli/design-whitespace/skill.yaml +1 -0
  3130. package/dist/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +1 -0
  3131. package/dist/agents/skills/gemini-cli/drizzle-filtering-pattern/skill.yaml +1 -0
  3132. package/dist/agents/skills/gemini-cli/drizzle-migrations/skill.yaml +3 -0
  3133. package/dist/agents/skills/gemini-cli/drizzle-performance-patterns/skill.yaml +8 -0
  3134. package/dist/agents/skills/gemini-cli/drizzle-query-builder/skill.yaml +1 -0
  3135. package/dist/agents/skills/gemini-cli/drizzle-raw-sql/skill.yaml +1 -0
  3136. package/dist/agents/skills/gemini-cli/drizzle-relations-pattern/skill.yaml +1 -0
  3137. package/dist/agents/skills/gemini-cli/drizzle-schema-definition/skill.yaml +4 -0
  3138. package/dist/agents/skills/gemini-cli/drizzle-transactions/skill.yaml +4 -0
  3139. package/dist/agents/skills/gemini-cli/drizzle-with-nextjs/skill.yaml +1 -0
  3140. package/dist/agents/skills/gemini-cli/enforce-architecture/skill.yaml +1 -0
  3141. package/dist/agents/skills/gemini-cli/events-event-schema/skill.yaml +1 -0
  3142. package/dist/agents/skills/gemini-cli/events-event-storming/skill.yaml +1 -0
  3143. package/dist/agents/skills/gemini-cli/events-idempotency/SKILL.md +1 -0
  3144. package/dist/agents/skills/gemini-cli/events-idempotency/skill.yaml +2 -0
  3145. package/dist/agents/skills/gemini-cli/events-kafka-patterns/skill.yaml +1 -0
  3146. package/dist/agents/skills/gemini-cli/events-message-queue/skill.yaml +1 -0
  3147. package/dist/agents/skills/gemini-cli/events-outbox-pattern/skill.yaml +1 -0
  3148. package/dist/agents/skills/gemini-cli/events-pubsub-pattern/skill.yaml +1 -0
  3149. package/dist/agents/skills/gemini-cli/events-redis-pubsub/skill.yaml +1 -0
  3150. package/dist/agents/skills/gemini-cli/events-saga-choreography/skill.yaml +1 -0
  3151. package/dist/agents/skills/gemini-cli/events-sse-pattern/skill.yaml +1 -0
  3152. package/dist/agents/skills/gemini-cli/events-webhooks-pattern/SKILL.md +1 -0
  3153. package/dist/agents/skills/gemini-cli/events-webhooks-pattern/skill.yaml +3 -0
  3154. package/dist/agents/skills/gemini-cli/events-websocket-pattern/skill.yaml +1 -0
  3155. package/dist/agents/skills/gemini-cli/gof-abstract-factory/skill.yaml +1 -0
  3156. package/dist/agents/skills/gemini-cli/gof-adapter-pattern/skill.yaml +1 -0
  3157. package/dist/agents/skills/gemini-cli/gof-bridge-pattern/skill.yaml +1 -0
  3158. package/dist/agents/skills/gemini-cli/gof-builder-pattern/skill.yaml +1 -0
  3159. package/dist/agents/skills/gemini-cli/gof-chain-of-responsibility/skill.yaml +1 -0
  3160. package/dist/agents/skills/gemini-cli/gof-command-pattern/skill.yaml +1 -0
  3161. package/dist/agents/skills/gemini-cli/gof-composite-pattern/skill.yaml +1 -0
  3162. package/dist/agents/skills/gemini-cli/gof-decorator-pattern/skill.yaml +1 -0
  3163. package/dist/agents/skills/gemini-cli/gof-facade-pattern/skill.yaml +1 -0
  3164. package/dist/agents/skills/gemini-cli/gof-factory-method/skill.yaml +1 -0
  3165. package/dist/agents/skills/gemini-cli/gof-flyweight-pattern/skill.yaml +1 -0
  3166. package/dist/agents/skills/gemini-cli/gof-iterator-pattern/skill.yaml +1 -0
  3167. package/dist/agents/skills/gemini-cli/gof-mediator-pattern/skill.yaml +1 -0
  3168. package/dist/agents/skills/gemini-cli/gof-memento-pattern/skill.yaml +1 -0
  3169. package/dist/agents/skills/gemini-cli/gof-null-object/skill.yaml +1 -0
  3170. package/dist/agents/skills/gemini-cli/gof-observer-pattern/skill.yaml +1 -0
  3171. package/dist/agents/skills/gemini-cli/gof-prototype-pattern/skill.yaml +1 -0
  3172. package/dist/agents/skills/gemini-cli/gof-proxy-pattern/skill.yaml +1 -0
  3173. package/dist/agents/skills/gemini-cli/gof-singleton/skill.yaml +1 -0
  3174. package/dist/agents/skills/gemini-cli/gof-state-pattern/skill.yaml +1 -0
  3175. package/dist/agents/skills/gemini-cli/gof-strategy-pattern/skill.yaml +1 -0
  3176. package/dist/agents/skills/gemini-cli/gof-template-method/skill.yaml +1 -0
  3177. package/dist/agents/skills/gemini-cli/gof-visitor-pattern/skill.yaml +1 -0
  3178. package/dist/agents/skills/gemini-cli/graphql-apollo-server/skill.yaml +1 -0
  3179. package/dist/agents/skills/gemini-cli/graphql-auth-patterns/SKILL.md +1 -0
  3180. package/dist/agents/skills/gemini-cli/graphql-auth-patterns/skill.yaml +3 -0
  3181. package/dist/agents/skills/gemini-cli/graphql-client-patterns/skill.yaml +1 -0
  3182. package/dist/agents/skills/gemini-cli/graphql-codegen-pattern/skill.yaml +1 -0
  3183. package/dist/agents/skills/gemini-cli/graphql-dataloader-pattern/skill.yaml +1 -0
  3184. package/dist/agents/skills/gemini-cli/graphql-error-handling/SKILL.md +1 -0
  3185. package/dist/agents/skills/gemini-cli/graphql-error-handling/skill.yaml +3 -0
  3186. package/dist/agents/skills/gemini-cli/graphql-federation-pattern/skill.yaml +1 -0
  3187. package/dist/agents/skills/gemini-cli/graphql-pagination-patterns/SKILL.md +1 -0
  3188. package/dist/agents/skills/gemini-cli/graphql-pagination-patterns/skill.yaml +4 -0
  3189. package/dist/agents/skills/gemini-cli/graphql-performance-patterns/skill.yaml +6 -0
  3190. package/dist/agents/skills/gemini-cli/graphql-resolver-pattern/skill.yaml +1 -0
  3191. package/dist/agents/skills/gemini-cli/graphql-schema-design/SKILL.md +1 -0
  3192. package/dist/agents/skills/gemini-cli/graphql-schema-design/skill.yaml +3 -0
  3193. package/dist/agents/skills/gemini-cli/graphql-subscriptions/skill.yaml +1 -0
  3194. package/dist/agents/skills/gemini-cli/harness-accessibility/skill.yaml +1 -0
  3195. package/dist/agents/skills/gemini-cli/harness-api-design/skill.yaml +1 -0
  3196. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +1 -0
  3197. package/dist/agents/skills/gemini-cli/harness-auth/skill.yaml +1 -0
  3198. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +171 -822
  3199. package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +1 -0
  3200. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +145 -195
  3201. package/dist/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +4 -0
  3202. package/dist/agents/skills/gemini-cli/harness-caching/skill.yaml +1 -0
  3203. package/dist/agents/skills/gemini-cli/harness-chaos/skill.yaml +1 -0
  3204. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +267 -436
  3205. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +7 -0
  3206. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/skill.yaml +1 -0
  3207. package/dist/agents/skills/gemini-cli/harness-compliance/skill.yaml +1 -0
  3208. package/dist/agents/skills/gemini-cli/harness-containerization/skill.yaml +1 -0
  3209. package/dist/agents/skills/gemini-cli/harness-data-pipeline/skill.yaml +1 -0
  3210. package/dist/agents/skills/gemini-cli/harness-data-validation/skill.yaml +1 -0
  3211. package/dist/agents/skills/gemini-cli/harness-database/skill.yaml +1 -0
  3212. package/dist/agents/skills/gemini-cli/harness-debugging/skill.yaml +1 -0
  3213. package/dist/agents/skills/gemini-cli/harness-dependency-health/skill.yaml +1 -0
  3214. package/dist/agents/skills/gemini-cli/harness-deployment/skill.yaml +1 -0
  3215. package/dist/agents/skills/gemini-cli/harness-design/skill.yaml +1 -0
  3216. package/dist/agents/skills/gemini-cli/harness-design-mobile/skill.yaml +1 -0
  3217. package/dist/agents/skills/gemini-cli/harness-design-system/skill.yaml +1 -0
  3218. package/dist/agents/skills/gemini-cli/harness-design-web/skill.yaml +1 -0
  3219. package/dist/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +1 -0
  3220. package/dist/agents/skills/gemini-cli/harness-docs-pipeline/skill.yaml +1 -0
  3221. package/dist/agents/skills/gemini-cli/harness-dx/skill.yaml +1 -0
  3222. package/dist/agents/skills/gemini-cli/harness-e2e/skill.yaml +1 -0
  3223. package/dist/agents/skills/gemini-cli/harness-event-driven/skill.yaml +1 -0
  3224. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +180 -271
  3225. package/dist/agents/skills/gemini-cli/harness-execution/skill.yaml +13 -0
  3226. package/dist/agents/skills/gemini-cli/harness-feature-flags/skill.yaml +1 -0
  3227. package/dist/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +1 -0
  3228. package/dist/agents/skills/gemini-cli/harness-hotspot-detector/skill.yaml +1 -0
  3229. package/dist/agents/skills/gemini-cli/harness-i18n/skill.yaml +1 -0
  3230. package/dist/agents/skills/gemini-cli/harness-i18n-process/skill.yaml +1 -0
  3231. package/dist/agents/skills/gemini-cli/harness-i18n-workflow/skill.yaml +1 -0
  3232. package/dist/agents/skills/gemini-cli/harness-impact-analysis/skill.yaml +1 -0
  3233. package/dist/agents/skills/gemini-cli/harness-incident-response/skill.yaml +1 -0
  3234. package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/skill.yaml +1 -0
  3235. package/dist/agents/skills/gemini-cli/harness-integration-test/skill.yaml +1 -0
  3236. package/dist/agents/skills/gemini-cli/harness-integrity/skill.yaml +1 -0
  3237. package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/skill.yaml +1 -0
  3238. package/dist/agents/skills/gemini-cli/harness-load-testing/skill.yaml +1 -0
  3239. package/dist/agents/skills/gemini-cli/harness-ml-ops/skill.yaml +1 -0
  3240. package/dist/agents/skills/gemini-cli/harness-mobile-patterns/skill.yaml +1 -0
  3241. package/dist/agents/skills/gemini-cli/harness-mutation-test/skill.yaml +1 -0
  3242. package/dist/agents/skills/gemini-cli/harness-observability/skill.yaml +1 -0
  3243. package/dist/agents/skills/gemini-cli/harness-onboarding/skill.yaml +1 -0
  3244. package/dist/agents/skills/gemini-cli/harness-parallel-agents/skill.yaml +1 -0
  3245. package/dist/agents/skills/gemini-cli/harness-perf/skill.yaml +1 -0
  3246. package/dist/agents/skills/gemini-cli/harness-perf-tdd/skill.yaml +1 -0
  3247. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +142 -322
  3248. package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +7 -0
  3249. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +1 -0
  3250. package/dist/agents/skills/gemini-cli/harness-product-spec/skill.yaml +1 -0
  3251. package/dist/agents/skills/gemini-cli/harness-property-test/skill.yaml +1 -0
  3252. package/dist/agents/skills/gemini-cli/harness-refactoring/skill.yaml +1 -0
  3253. package/dist/agents/skills/gemini-cli/harness-release-readiness/skill.yaml +1 -0
  3254. package/dist/agents/skills/gemini-cli/harness-resilience/skill.yaml +1 -0
  3255. package/dist/agents/skills/gemini-cli/harness-roadmap/skill.yaml +1 -0
  3256. package/dist/agents/skills/gemini-cli/harness-roadmap-pilot/skill.yaml +1 -0
  3257. package/dist/agents/skills/gemini-cli/harness-router/SKILL.md +69 -123
  3258. package/dist/agents/skills/gemini-cli/harness-router/skill.yaml +1 -0
  3259. package/dist/agents/skills/gemini-cli/harness-secrets/SKILL.md +3 -3
  3260. package/dist/agents/skills/gemini-cli/harness-secrets/skill.yaml +1 -0
  3261. package/dist/agents/skills/gemini-cli/harness-security-review/skill.yaml +6 -0
  3262. package/dist/agents/skills/gemini-cli/harness-security-scan/skill.yaml +7 -0
  3263. package/dist/agents/skills/gemini-cli/harness-skill-authoring/skill.yaml +1 -0
  3264. package/dist/agents/skills/gemini-cli/harness-soundness-review/SKILL.md +483 -667
  3265. package/dist/agents/skills/gemini-cli/harness-soundness-review/skill.yaml +1 -0
  3266. package/dist/agents/skills/gemini-cli/harness-sql-review/skill.yaml +1 -0
  3267. package/dist/agents/skills/gemini-cli/harness-state-management/skill.yaml +1 -0
  3268. package/dist/agents/skills/gemini-cli/harness-supply-chain-audit/skill.yaml +1 -0
  3269. package/dist/agents/skills/gemini-cli/harness-tdd/skill.yaml +1 -0
  3270. package/dist/agents/skills/gemini-cli/harness-test-advisor/skill.yaml +1 -0
  3271. package/dist/agents/skills/gemini-cli/harness-test-data/skill.yaml +1 -0
  3272. package/dist/agents/skills/gemini-cli/harness-ux-copy/skill.yaml +13 -0
  3273. package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +135 -221
  3274. package/dist/agents/skills/gemini-cli/harness-verification/skill.yaml +4 -0
  3275. package/dist/agents/skills/gemini-cli/harness-verify/skill.yaml +1 -0
  3276. package/dist/agents/skills/gemini-cli/harness-visual-regression/skill.yaml +1 -0
  3277. package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +1 -0
  3278. package/dist/agents/skills/gemini-cli/js-abstract-factory-pattern/skill.yaml +1 -0
  3279. package/dist/agents/skills/gemini-cli/js-adapter-pattern/skill.yaml +1 -0
  3280. package/dist/agents/skills/gemini-cli/js-bridge-pattern/skill.yaml +1 -0
  3281. package/dist/agents/skills/gemini-cli/js-chain-of-responsibility-pattern/skill.yaml +1 -0
  3282. package/dist/agents/skills/gemini-cli/js-command-pattern/skill.yaml +1 -0
  3283. package/dist/agents/skills/gemini-cli/js-composite-pattern/skill.yaml +1 -0
  3284. package/dist/agents/skills/gemini-cli/js-constructor-pattern/skill.yaml +1 -0
  3285. package/dist/agents/skills/gemini-cli/js-decorator-pattern/skill.yaml +1 -0
  3286. package/dist/agents/skills/gemini-cli/js-dynamic-import/skill.yaml +1 -0
  3287. package/dist/agents/skills/gemini-cli/js-facade-pattern/skill.yaml +1 -0
  3288. package/dist/agents/skills/gemini-cli/js-factory-pattern/skill.yaml +1 -0
  3289. package/dist/agents/skills/gemini-cli/js-flyweight-pattern/skill.yaml +1 -0
  3290. package/dist/agents/skills/gemini-cli/js-iterator-pattern/skill.yaml +1 -0
  3291. package/dist/agents/skills/gemini-cli/js-mediator-middleware-pattern/skill.yaml +1 -0
  3292. package/dist/agents/skills/gemini-cli/js-mixin-pattern/skill.yaml +1 -0
  3293. package/dist/agents/skills/gemini-cli/js-module-pattern/skill.yaml +1 -0
  3294. package/dist/agents/skills/gemini-cli/js-observer-pattern/skill.yaml +1 -0
  3295. package/dist/agents/skills/gemini-cli/js-prototype-pattern/skill.yaml +1 -0
  3296. package/dist/agents/skills/gemini-cli/js-provider-pattern/skill.yaml +1 -0
  3297. package/dist/agents/skills/gemini-cli/js-proxy-pattern/skill.yaml +1 -0
  3298. package/dist/agents/skills/gemini-cli/js-revealing-module-pattern/skill.yaml +1 -0
  3299. package/dist/agents/skills/gemini-cli/js-singleton-pattern/skill.yaml +1 -0
  3300. package/dist/agents/skills/gemini-cli/js-state-pattern/skill.yaml +1 -0
  3301. package/dist/agents/skills/gemini-cli/js-static-import/skill.yaml +1 -0
  3302. package/dist/agents/skills/gemini-cli/js-strategy-pattern/skill.yaml +1 -0
  3303. package/dist/agents/skills/gemini-cli/js-template-method-pattern/skill.yaml +1 -0
  3304. package/dist/agents/skills/gemini-cli/js-visitor-pattern/skill.yaml +1 -0
  3305. package/dist/agents/skills/gemini-cli/microservices-api-gateway/skill.yaml +1 -0
  3306. package/dist/agents/skills/gemini-cli/microservices-bulkhead-pattern/skill.yaml +1 -0
  3307. package/dist/agents/skills/gemini-cli/microservices-circuit-breaker/skill.yaml +1 -0
  3308. package/dist/agents/skills/gemini-cli/microservices-config-server/SKILL.md +1 -1
  3309. package/dist/agents/skills/gemini-cli/microservices-config-server/skill.yaml +1 -0
  3310. package/dist/agents/skills/gemini-cli/microservices-cqrs-pattern/skill.yaml +3 -0
  3311. package/dist/agents/skills/gemini-cli/microservices-decomposition/skill.yaml +1 -0
  3312. package/dist/agents/skills/gemini-cli/microservices-distributed-tracing/skill.yaml +1 -0
  3313. package/dist/agents/skills/gemini-cli/microservices-event-sourcing/skill.yaml +3 -0
  3314. package/dist/agents/skills/gemini-cli/microservices-health-check/skill.yaml +1 -0
  3315. package/dist/agents/skills/gemini-cli/microservices-outbox-pattern/skill.yaml +1 -0
  3316. package/dist/agents/skills/gemini-cli/microservices-saga-pattern/skill.yaml +1 -0
  3317. package/dist/agents/skills/gemini-cli/microservices-service-discovery/skill.yaml +1 -0
  3318. package/dist/agents/skills/gemini-cli/microservices-sidecar-pattern/skill.yaml +1 -0
  3319. package/dist/agents/skills/gemini-cli/microservices-strangler-fig/skill.yaml +1 -0
  3320. package/dist/agents/skills/gemini-cli/mobile-animation-patterns/skill.yaml +1 -0
  3321. package/dist/agents/skills/gemini-cli/mobile-deployment-patterns/skill.yaml +1 -0
  3322. package/dist/agents/skills/gemini-cli/mobile-expo-setup/skill.yaml +1 -0
  3323. package/dist/agents/skills/gemini-cli/mobile-flatlist-patterns/skill.yaml +1 -0
  3324. package/dist/agents/skills/gemini-cli/mobile-gesture-handling/skill.yaml +1 -0
  3325. package/dist/agents/skills/gemini-cli/mobile-native-modules/skill.yaml +1 -0
  3326. package/dist/agents/skills/gemini-cli/mobile-navigation-pattern/skill.yaml +1 -0
  3327. package/dist/agents/skills/gemini-cli/mobile-network-patterns/skill.yaml +1 -0
  3328. package/dist/agents/skills/gemini-cli/mobile-performance-patterns/skill.yaml +6 -0
  3329. package/dist/agents/skills/gemini-cli/mobile-push-notifications/skill.yaml +1 -0
  3330. package/dist/agents/skills/gemini-cli/mobile-storage-patterns/skill.yaml +1 -0
  3331. package/dist/agents/skills/gemini-cli/mobile-testing-patterns/skill.yaml +1 -0
  3332. package/dist/agents/skills/gemini-cli/nestjs-config-module/skill.yaml +1 -0
  3333. package/dist/agents/skills/gemini-cli/nestjs-controller-pattern/skill.yaml +1 -0
  3334. package/dist/agents/skills/gemini-cli/nestjs-dependency-injection/skill.yaml +1 -0
  3335. package/dist/agents/skills/gemini-cli/nestjs-dto-validation/skill.yaml +1 -0
  3336. package/dist/agents/skills/gemini-cli/nestjs-event-driven/skill.yaml +1 -0
  3337. package/dist/agents/skills/gemini-cli/nestjs-exception-filters/skill.yaml +1 -0
  3338. package/dist/agents/skills/gemini-cli/nestjs-graphql-integration/skill.yaml +1 -0
  3339. package/dist/agents/skills/gemini-cli/nestjs-guards-pattern/skill.yaml +1 -0
  3340. package/dist/agents/skills/gemini-cli/nestjs-interceptors-pattern/skill.yaml +1 -0
  3341. package/dist/agents/skills/gemini-cli/nestjs-microservices/skill.yaml +1 -0
  3342. package/dist/agents/skills/gemini-cli/nestjs-middleware-pattern/skill.yaml +1 -0
  3343. package/dist/agents/skills/gemini-cli/nestjs-module-pattern/skill.yaml +1 -0
  3344. package/dist/agents/skills/gemini-cli/nestjs-pipes-pattern/skill.yaml +1 -0
  3345. package/dist/agents/skills/gemini-cli/nestjs-service-pattern/skill.yaml +1 -0
  3346. package/dist/agents/skills/gemini-cli/nestjs-swagger-integration/skill.yaml +1 -0
  3347. package/dist/agents/skills/gemini-cli/nestjs-testing-patterns/skill.yaml +1 -0
  3348. package/dist/agents/skills/gemini-cli/next-app-router/skill.yaml +1 -0
  3349. package/dist/agents/skills/gemini-cli/next-auth-patterns/skill.yaml +1 -0
  3350. package/dist/agents/skills/gemini-cli/next-caching-strategies/skill.yaml +1 -0
  3351. package/dist/agents/skills/gemini-cli/next-data-fetching/skill.yaml +1 -0
  3352. package/dist/agents/skills/gemini-cli/next-deployment-optimization/skill.yaml +1 -0
  3353. package/dist/agents/skills/gemini-cli/next-environment-config/skill.yaml +1 -0
  3354. package/dist/agents/skills/gemini-cli/next-error-boundaries/skill.yaml +1 -0
  3355. package/dist/agents/skills/gemini-cli/next-image-optimization/skill.yaml +1 -0
  3356. package/dist/agents/skills/gemini-cli/next-metadata-api/skill.yaml +1 -0
  3357. package/dist/agents/skills/gemini-cli/next-middleware-pattern/skill.yaml +1 -0
  3358. package/dist/agents/skills/gemini-cli/next-monorepo-setup/skill.yaml +1 -0
  3359. package/dist/agents/skills/gemini-cli/next-parallel-intercepting-routes/skill.yaml +1 -0
  3360. package/dist/agents/skills/gemini-cli/next-route-handlers/skill.yaml +1 -0
  3361. package/dist/agents/skills/gemini-cli/next-server-actions/skill.yaml +1 -0
  3362. package/dist/agents/skills/gemini-cli/next-server-components/skill.yaml +1 -0
  3363. package/dist/agents/skills/gemini-cli/next-static-generation/skill.yaml +1 -0
  3364. package/dist/agents/skills/gemini-cli/next-streaming-suspense/skill.yaml +1 -0
  3365. package/dist/agents/skills/gemini-cli/next-testing-patterns/skill.yaml +1 -0
  3366. package/dist/agents/skills/gemini-cli/node-buffer-encoding/skill.yaml +1 -0
  3367. package/dist/agents/skills/gemini-cli/node-child-process/skill.yaml +1 -0
  3368. package/dist/agents/skills/gemini-cli/node-crypto-patterns/skill.yaml +1 -0
  3369. package/dist/agents/skills/gemini-cli/node-environment-config/skill.yaml +1 -0
  3370. package/dist/agents/skills/gemini-cli/node-error-handling/skill.yaml +1 -0
  3371. package/dist/agents/skills/gemini-cli/node-esm-patterns/skill.yaml +1 -0
  3372. package/dist/agents/skills/gemini-cli/node-event-emitter/skill.yaml +1 -0
  3373. package/dist/agents/skills/gemini-cli/node-express-patterns/skill.yaml +1 -0
  3374. package/dist/agents/skills/gemini-cli/node-fastify-patterns/skill.yaml +1 -0
  3375. package/dist/agents/skills/gemini-cli/node-http-server/skill.yaml +1 -0
  3376. package/dist/agents/skills/gemini-cli/node-path-fs-patterns/skill.yaml +1 -0
  3377. package/dist/agents/skills/gemini-cli/node-performance-profiling/skill.yaml +6 -0
  3378. package/dist/agents/skills/gemini-cli/node-streams-pattern/skill.yaml +1 -0
  3379. package/dist/agents/skills/gemini-cli/node-testing-patterns/skill.yaml +1 -0
  3380. package/dist/agents/skills/gemini-cli/node-worker-threads/skill.yaml +1 -0
  3381. package/dist/agents/skills/gemini-cli/nuxt-auto-imports/skill.yaml +1 -0
  3382. package/dist/agents/skills/gemini-cli/nuxt-composables-pattern/skill.yaml +1 -0
  3383. package/dist/agents/skills/gemini-cli/nuxt-deployment-config/skill.yaml +1 -0
  3384. package/dist/agents/skills/gemini-cli/nuxt-layouts-pages/skill.yaml +1 -0
  3385. package/dist/agents/skills/gemini-cli/nuxt-middleware-pattern/skill.yaml +1 -0
  3386. package/dist/agents/skills/gemini-cli/nuxt-modules-pattern/skill.yaml +1 -0
  3387. package/dist/agents/skills/gemini-cli/nuxt-plugins-pattern/skill.yaml +1 -0
  3388. package/dist/agents/skills/gemini-cli/nuxt-seo-metadata/skill.yaml +1 -0
  3389. package/dist/agents/skills/gemini-cli/nuxt-server-routes/skill.yaml +1 -0
  3390. package/dist/agents/skills/gemini-cli/nuxt-state-management/skill.yaml +1 -0
  3391. package/dist/agents/skills/gemini-cli/nuxt-testing-patterns/skill.yaml +1 -0
  3392. package/dist/agents/skills/gemini-cli/otel-context-propagation/skill.yaml +1 -0
  3393. package/dist/agents/skills/gemini-cli/otel-custom-instrumentation/skill.yaml +1 -0
  3394. package/dist/agents/skills/gemini-cli/otel-error-tracking/skill.yaml +1 -0
  3395. package/dist/agents/skills/gemini-cli/otel-exporter-config/skill.yaml +1 -0
  3396. package/dist/agents/skills/gemini-cli/otel-logging-pattern/skill.yaml +1 -0
  3397. package/dist/agents/skills/gemini-cli/otel-metrics-pattern/skill.yaml +1 -0
  3398. package/dist/agents/skills/gemini-cli/otel-nestjs-integration/skill.yaml +1 -0
  3399. package/dist/agents/skills/gemini-cli/otel-nextjs-integration/skill.yaml +1 -0
  3400. package/dist/agents/skills/gemini-cli/otel-performance-insights/skill.yaml +5 -0
  3401. package/dist/agents/skills/gemini-cli/otel-sampling-strategies/skill.yaml +1 -0
  3402. package/dist/agents/skills/gemini-cli/otel-sdk-setup/skill.yaml +1 -0
  3403. package/dist/agents/skills/gemini-cli/otel-tracing-pattern/skill.yaml +1 -0
  3404. package/dist/agents/skills/gemini-cli/owasp-auth-patterns/SKILL.md +1 -0
  3405. package/dist/agents/skills/gemini-cli/owasp-auth-patterns/skill.yaml +8 -0
  3406. package/dist/agents/skills/gemini-cli/owasp-cryptography/skill.yaml +6 -0
  3407. package/dist/agents/skills/gemini-cli/owasp-csrf-protection/skill.yaml +3 -0
  3408. package/dist/agents/skills/gemini-cli/owasp-dependency-security/skill.yaml +4 -0
  3409. package/dist/agents/skills/gemini-cli/owasp-file-upload-security/skill.yaml +3 -0
  3410. package/dist/agents/skills/gemini-cli/owasp-idor-prevention/skill.yaml +4 -0
  3411. package/dist/agents/skills/gemini-cli/owasp-injection-prevention/skill.yaml +4 -0
  3412. package/dist/agents/skills/gemini-cli/owasp-logging-monitoring/skill.yaml +5 -0
  3413. package/dist/agents/skills/gemini-cli/owasp-rate-limiting/SKILL.md +1 -0
  3414. package/dist/agents/skills/gemini-cli/owasp-rate-limiting/skill.yaml +5 -0
  3415. package/dist/agents/skills/gemini-cli/owasp-secrets-management/SKILL.md +2 -1
  3416. package/dist/agents/skills/gemini-cli/owasp-secrets-management/skill.yaml +5 -0
  3417. package/dist/agents/skills/gemini-cli/owasp-security-headers/skill.yaml +4 -0
  3418. package/dist/agents/skills/gemini-cli/owasp-xss-prevention/skill.yaml +3 -0
  3419. package/dist/agents/skills/gemini-cli/perf-browser-cache/SKILL.md +151 -0
  3420. package/dist/agents/skills/gemini-cli/perf-browser-cache/skill.yaml +39 -0
  3421. package/dist/agents/skills/gemini-cli/perf-bundle-analysis/SKILL.md +217 -0
  3422. package/dist/agents/skills/gemini-cli/perf-bundle-analysis/skill.yaml +37 -0
  3423. package/dist/agents/skills/gemini-cli/perf-cache-invalidation/SKILL.md +228 -0
  3424. package/dist/agents/skills/gemini-cli/perf-cache-invalidation/skill.yaml +38 -0
  3425. package/dist/agents/skills/gemini-cli/perf-cdn-cache-control/SKILL.md +198 -0
  3426. package/dist/agents/skills/gemini-cli/perf-cdn-cache-control/skill.yaml +40 -0
  3427. package/dist/agents/skills/gemini-cli/perf-cdn-strategies/SKILL.md +161 -0
  3428. package/dist/agents/skills/gemini-cli/perf-cdn-strategies/skill.yaml +40 -0
  3429. package/dist/agents/skills/gemini-cli/perf-client-side-rendering/SKILL.md +245 -0
  3430. package/dist/agents/skills/gemini-cli/perf-client-side-rendering/skill.yaml +40 -0
  3431. package/dist/agents/skills/gemini-cli/perf-code-splitting/SKILL.md +185 -0
  3432. package/dist/agents/skills/gemini-cli/perf-code-splitting/skill.yaml +39 -0
  3433. package/dist/agents/skills/gemini-cli/perf-compression/SKILL.md +163 -0
  3434. package/dist/agents/skills/gemini-cli/perf-compression/skill.yaml +38 -0
  3435. package/dist/agents/skills/gemini-cli/perf-connection-costs/SKILL.md +165 -0
  3436. package/dist/agents/skills/gemini-cli/perf-connection-costs/skill.yaml +40 -0
  3437. package/dist/agents/skills/gemini-cli/perf-connection-pooling/SKILL.md +250 -0
  3438. package/dist/agents/skills/gemini-cli/perf-connection-pooling/skill.yaml +38 -0
  3439. package/dist/agents/skills/gemini-cli/perf-critical-rendering-path/SKILL.md +167 -0
  3440. package/dist/agents/skills/gemini-cli/perf-critical-rendering-path/skill.yaml +39 -0
  3441. package/dist/agents/skills/gemini-cli/perf-cumulative-layout-shift/SKILL.md +180 -0
  3442. package/dist/agents/skills/gemini-cli/perf-cumulative-layout-shift/skill.yaml +40 -0
  3443. package/dist/agents/skills/gemini-cli/perf-dom-parsing/SKILL.md +153 -0
  3444. package/dist/agents/skills/gemini-cli/perf-dom-parsing/skill.yaml +36 -0
  3445. package/dist/agents/skills/gemini-cli/perf-edge-rendering/SKILL.md +222 -0
  3446. package/dist/agents/skills/gemini-cli/perf-edge-rendering/skill.yaml +39 -0
  3447. package/dist/agents/skills/gemini-cli/perf-event-loop/SKILL.md +203 -0
  3448. package/dist/agents/skills/gemini-cli/perf-event-loop/skill.yaml +38 -0
  3449. package/dist/agents/skills/gemini-cli/perf-font-loading/SKILL.md +222 -0
  3450. package/dist/agents/skills/gemini-cli/perf-font-loading/skill.yaml +39 -0
  3451. package/dist/agents/skills/gemini-cli/perf-garbage-collection/SKILL.md +192 -0
  3452. package/dist/agents/skills/gemini-cli/perf-garbage-collection/skill.yaml +40 -0
  3453. package/dist/agents/skills/gemini-cli/perf-heap-profiling/SKILL.md +160 -0
  3454. package/dist/agents/skills/gemini-cli/perf-heap-profiling/skill.yaml +38 -0
  3455. package/dist/agents/skills/gemini-cli/perf-http2-multiplexing/SKILL.md +163 -0
  3456. package/dist/agents/skills/gemini-cli/perf-http2-multiplexing/skill.yaml +38 -0
  3457. package/dist/agents/skills/gemini-cli/perf-http3-quic/SKILL.md +165 -0
  3458. package/dist/agents/skills/gemini-cli/perf-http3-quic/skill.yaml +37 -0
  3459. package/dist/agents/skills/gemini-cli/perf-image-formats/SKILL.md +183 -0
  3460. package/dist/agents/skills/gemini-cli/perf-image-formats/skill.yaml +39 -0
  3461. package/dist/agents/skills/gemini-cli/perf-index-strategies/SKILL.md +210 -0
  3462. package/dist/agents/skills/gemini-cli/perf-index-strategies/skill.yaml +40 -0
  3463. package/dist/agents/skills/gemini-cli/perf-interaction-to-next-paint/SKILL.md +170 -0
  3464. package/dist/agents/skills/gemini-cli/perf-interaction-to-next-paint/skill.yaml +40 -0
  3465. package/dist/agents/skills/gemini-cli/perf-largest-contentful-paint/SKILL.md +162 -0
  3466. package/dist/agents/skills/gemini-cli/perf-largest-contentful-paint/skill.yaml +41 -0
  3467. package/dist/agents/skills/gemini-cli/perf-layout-reflow/SKILL.md +187 -0
  3468. package/dist/agents/skills/gemini-cli/perf-layout-reflow/skill.yaml +38 -0
  3469. package/dist/agents/skills/gemini-cli/perf-lazy-loading/SKILL.md +217 -0
  3470. package/dist/agents/skills/gemini-cli/perf-lazy-loading/skill.yaml +38 -0
  3471. package/dist/agents/skills/gemini-cli/perf-lazy-loading-media/SKILL.md +233 -0
  3472. package/dist/agents/skills/gemini-cli/perf-lazy-loading-media/skill.yaml +38 -0
  3473. package/dist/agents/skills/gemini-cli/perf-long-tasks/SKILL.md +194 -0
  3474. package/dist/agents/skills/gemini-cli/perf-long-tasks/skill.yaml +38 -0
  3475. package/dist/agents/skills/gemini-cli/perf-memory-leaks/SKILL.md +218 -0
  3476. package/dist/agents/skills/gemini-cli/perf-memory-leaks/skill.yaml +38 -0
  3477. package/dist/agents/skills/gemini-cli/perf-module-federation/SKILL.md +242 -0
  3478. package/dist/agents/skills/gemini-cli/perf-module-federation/skill.yaml +38 -0
  3479. package/dist/agents/skills/gemini-cli/perf-n-plus-one/SKILL.md +237 -0
  3480. package/dist/agents/skills/gemini-cli/perf-n-plus-one/skill.yaml +40 -0
  3481. package/dist/agents/skills/gemini-cli/perf-paint-compositing/SKILL.md +181 -0
  3482. package/dist/agents/skills/gemini-cli/perf-paint-compositing/skill.yaml +40 -0
  3483. package/dist/agents/skills/gemini-cli/perf-performance-api/SKILL.md +249 -0
  3484. package/dist/agents/skills/gemini-cli/perf-performance-api/skill.yaml +41 -0
  3485. package/dist/agents/skills/gemini-cli/perf-profiling-methodology/SKILL.md +181 -0
  3486. package/dist/agents/skills/gemini-cli/perf-profiling-methodology/skill.yaml +44 -0
  3487. package/dist/agents/skills/gemini-cli/perf-query-optimization/SKILL.md +203 -0
  3488. package/dist/agents/skills/gemini-cli/perf-query-optimization/skill.yaml +39 -0
  3489. package/dist/agents/skills/gemini-cli/perf-resource-hints/SKILL.md +167 -0
  3490. package/dist/agents/skills/gemini-cli/perf-resource-hints/skill.yaml +40 -0
  3491. package/dist/agents/skills/gemini-cli/perf-responsive-images/SKILL.md +225 -0
  3492. package/dist/agents/skills/gemini-cli/perf-responsive-images/skill.yaml +38 -0
  3493. package/dist/agents/skills/gemini-cli/perf-server-side-caching/SKILL.md +194 -0
  3494. package/dist/agents/skills/gemini-cli/perf-server-side-caching/skill.yaml +40 -0
  3495. package/dist/agents/skills/gemini-cli/perf-server-side-rendering/SKILL.md +239 -0
  3496. package/dist/agents/skills/gemini-cli/perf-server-side-rendering/skill.yaml +39 -0
  3497. package/dist/agents/skills/gemini-cli/perf-service-worker-caching/SKILL.md +247 -0
  3498. package/dist/agents/skills/gemini-cli/perf-service-worker-caching/skill.yaml +40 -0
  3499. package/dist/agents/skills/gemini-cli/perf-static-generation/SKILL.md +241 -0
  3500. package/dist/agents/skills/gemini-cli/perf-static-generation/skill.yaml +39 -0
  3501. package/dist/agents/skills/gemini-cli/perf-streaming-rendering/SKILL.md +242 -0
  3502. package/dist/agents/skills/gemini-cli/perf-streaming-rendering/skill.yaml +37 -0
  3503. package/dist/agents/skills/gemini-cli/perf-style-calculation/SKILL.md +166 -0
  3504. package/dist/agents/skills/gemini-cli/perf-style-calculation/skill.yaml +36 -0
  3505. package/dist/agents/skills/gemini-cli/perf-svg-optimization/SKILL.md +249 -0
  3506. package/dist/agents/skills/gemini-cli/perf-svg-optimization/skill.yaml +37 -0
  3507. package/dist/agents/skills/gemini-cli/perf-tree-shaking/SKILL.md +225 -0
  3508. package/dist/agents/skills/gemini-cli/perf-tree-shaking/skill.yaml +38 -0
  3509. package/dist/agents/skills/gemini-cli/perf-web-workers/SKILL.md +237 -0
  3510. package/dist/agents/skills/gemini-cli/perf-web-workers/skill.yaml +40 -0
  3511. package/dist/agents/skills/gemini-cli/prisma-client-queries/skill.yaml +1 -0
  3512. package/dist/agents/skills/gemini-cli/prisma-filtering-sorting/skill.yaml +1 -0
  3513. package/dist/agents/skills/gemini-cli/prisma-migrations/skill.yaml +3 -0
  3514. package/dist/agents/skills/gemini-cli/prisma-performance-patterns/skill.yaml +8 -0
  3515. package/dist/agents/skills/gemini-cli/prisma-raw-queries/skill.yaml +1 -0
  3516. package/dist/agents/skills/gemini-cli/prisma-relations-pattern/skill.yaml +1 -0
  3517. package/dist/agents/skills/gemini-cli/prisma-schema-design/skill.yaml +4 -0
  3518. package/dist/agents/skills/gemini-cli/prisma-seeding-pattern/skill.yaml +1 -0
  3519. package/dist/agents/skills/gemini-cli/prisma-soft-delete/skill.yaml +1 -0
  3520. package/dist/agents/skills/gemini-cli/prisma-transactions/skill.yaml +4 -0
  3521. package/dist/agents/skills/gemini-cli/prisma-type-generation/skill.yaml +1 -0
  3522. package/dist/agents/skills/gemini-cli/react-2026/skill.yaml +1 -0
  3523. package/dist/agents/skills/gemini-cli/react-client-rendering/skill.yaml +1 -0
  3524. package/dist/agents/skills/gemini-cli/react-compound-pattern/skill.yaml +1 -0
  3525. package/dist/agents/skills/gemini-cli/react-concurrent-ui/skill.yaml +1 -0
  3526. package/dist/agents/skills/gemini-cli/react-container-presentational/skill.yaml +1 -0
  3527. package/dist/agents/skills/gemini-cli/react-context-pattern/skill.yaml +1 -0
  3528. package/dist/agents/skills/gemini-cli/react-dynamic-import/skill.yaml +1 -0
  3529. package/dist/agents/skills/gemini-cli/react-hoc-pattern/skill.yaml +1 -0
  3530. package/dist/agents/skills/gemini-cli/react-hooks-pattern/skill.yaml +1 -0
  3531. package/dist/agents/skills/gemini-cli/react-islands-pattern/skill.yaml +1 -0
  3532. package/dist/agents/skills/gemini-cli/react-memoization-pattern/skill.yaml +1 -0
  3533. package/dist/agents/skills/gemini-cli/react-progressive-hydration/skill.yaml +1 -0
  3534. package/dist/agents/skills/gemini-cli/react-provider-pattern/skill.yaml +1 -0
  3535. package/dist/agents/skills/gemini-cli/react-render-props-pattern/skill.yaml +1 -0
  3536. package/dist/agents/skills/gemini-cli/react-server-components/skill.yaml +1 -0
  3537. package/dist/agents/skills/gemini-cli/react-server-rendering/skill.yaml +1 -0
  3538. package/dist/agents/skills/gemini-cli/react-state-management-pattern/skill.yaml +1 -0
  3539. package/dist/agents/skills/gemini-cli/react-static-import/skill.yaml +1 -0
  3540. package/dist/agents/skills/gemini-cli/react-suspense-pattern/skill.yaml +1 -0
  3541. package/dist/agents/skills/gemini-cli/redux-entity-adapter/skill.yaml +1 -0
  3542. package/dist/agents/skills/gemini-cli/redux-listener-middleware/skill.yaml +1 -0
  3543. package/dist/agents/skills/gemini-cli/redux-persistence-pattern/skill.yaml +1 -0
  3544. package/dist/agents/skills/gemini-cli/redux-rtk-optimistic/skill.yaml +1 -0
  3545. package/dist/agents/skills/gemini-cli/redux-rtk-query-endpoints/skill.yaml +1 -0
  3546. package/dist/agents/skills/gemini-cli/redux-rtk-query-setup/skill.yaml +1 -0
  3547. package/dist/agents/skills/gemini-cli/redux-selectors-pattern/skill.yaml +1 -0
  3548. package/dist/agents/skills/gemini-cli/redux-slice-pattern/skill.yaml +1 -0
  3549. package/dist/agents/skills/gemini-cli/redux-store-setup/skill.yaml +1 -0
  3550. package/dist/agents/skills/gemini-cli/redux-testing-patterns/skill.yaml +1 -0
  3551. package/dist/agents/skills/gemini-cli/redux-thunk-pattern/skill.yaml +1 -0
  3552. package/dist/agents/skills/gemini-cli/redux-typescript-patterns/skill.yaml +1 -0
  3553. package/dist/agents/skills/gemini-cli/resilience-bulkhead-pattern/skill.yaml +1 -0
  3554. package/dist/agents/skills/gemini-cli/resilience-chaos-testing/skill.yaml +1 -0
  3555. package/dist/agents/skills/gemini-cli/resilience-circuit-breaker/skill.yaml +1 -0
  3556. package/dist/agents/skills/gemini-cli/resilience-dead-letter/skill.yaml +1 -0
  3557. package/dist/agents/skills/gemini-cli/resilience-fallback-pattern/skill.yaml +1 -0
  3558. package/dist/agents/skills/gemini-cli/resilience-health-checks/skill.yaml +1 -0
  3559. package/dist/agents/skills/gemini-cli/resilience-idempotency/skill.yaml +1 -0
  3560. package/dist/agents/skills/gemini-cli/resilience-rate-limiting/skill.yaml +1 -0
  3561. package/dist/agents/skills/gemini-cli/resilience-retry-pattern/skill.yaml +1 -0
  3562. package/dist/agents/skills/gemini-cli/resilience-timeout-pattern/skill.yaml +1 -0
  3563. package/dist/agents/skills/gemini-cli/security-abac-design/SKILL.md +154 -0
  3564. package/dist/agents/skills/gemini-cli/security-abac-design/skill.yaml +41 -0
  3565. package/dist/agents/skills/gemini-cli/security-asymmetric-encryption/SKILL.md +201 -0
  3566. package/dist/agents/skills/gemini-cli/security-asymmetric-encryption/skill.yaml +42 -0
  3567. package/dist/agents/skills/gemini-cli/security-attack-trees/SKILL.md +150 -0
  3568. package/dist/agents/skills/gemini-cli/security-attack-trees/skill.yaml +37 -0
  3569. package/dist/agents/skills/gemini-cli/security-audit-log-design/SKILL.md +227 -0
  3570. package/dist/agents/skills/gemini-cli/security-audit-log-design/skill.yaml +39 -0
  3571. package/dist/agents/skills/gemini-cli/security-authentication-flows/SKILL.md +168 -0
  3572. package/dist/agents/skills/gemini-cli/security-authentication-flows/skill.yaml +42 -0
  3573. package/dist/agents/skills/gemini-cli/security-capability-based-security/SKILL.md +158 -0
  3574. package/dist/agents/skills/gemini-cli/security-capability-based-security/skill.yaml +40 -0
  3575. package/dist/agents/skills/gemini-cli/security-certificate-management/SKILL.md +153 -0
  3576. package/dist/agents/skills/gemini-cli/security-certificate-management/skill.yaml +42 -0
  3577. package/dist/agents/skills/gemini-cli/security-ci-security-testing/SKILL.md +159 -0
  3578. package/dist/agents/skills/gemini-cli/security-ci-security-testing/skill.yaml +43 -0
  3579. package/dist/agents/skills/gemini-cli/security-code-signing/SKILL.md +155 -0
  3580. package/dist/agents/skills/gemini-cli/security-code-signing/skill.yaml +40 -0
  3581. package/dist/agents/skills/gemini-cli/security-compliance-logging/SKILL.md +183 -0
  3582. package/dist/agents/skills/gemini-cli/security-compliance-logging/skill.yaml +38 -0
  3583. package/dist/agents/skills/gemini-cli/security-credential-storage/SKILL.md +222 -0
  3584. package/dist/agents/skills/gemini-cli/security-credential-storage/skill.yaml +41 -0
  3585. package/dist/agents/skills/gemini-cli/security-cryptographic-randomness/SKILL.md +154 -0
  3586. package/dist/agents/skills/gemini-cli/security-cryptographic-randomness/skill.yaml +41 -0
  3587. package/dist/agents/skills/gemini-cli/security-dependency-auditing/SKILL.md +156 -0
  3588. package/dist/agents/skills/gemini-cli/security-dependency-auditing/skill.yaml +39 -0
  3589. package/dist/agents/skills/gemini-cli/security-deserialization-attacks/SKILL.md +180 -0
  3590. package/dist/agents/skills/gemini-cli/security-deserialization-attacks/skill.yaml +38 -0
  3591. package/dist/agents/skills/gemini-cli/security-environment-variable-risks/SKILL.md +153 -0
  3592. package/dist/agents/skills/gemini-cli/security-environment-variable-risks/skill.yaml +37 -0
  3593. package/dist/agents/skills/gemini-cli/security-forensics-fundamentals/SKILL.md +198 -0
  3594. package/dist/agents/skills/gemini-cli/security-forensics-fundamentals/skill.yaml +40 -0
  3595. package/dist/agents/skills/gemini-cli/security-hashing-fundamentals/SKILL.md +212 -0
  3596. package/dist/agents/skills/gemini-cli/security-hashing-fundamentals/skill.yaml +40 -0
  3597. package/dist/agents/skills/gemini-cli/security-hmac-signatures/SKILL.md +165 -0
  3598. package/dist/agents/skills/gemini-cli/security-hmac-signatures/skill.yaml +40 -0
  3599. package/dist/agents/skills/gemini-cli/security-hsts-preloading/SKILL.md +154 -0
  3600. package/dist/agents/skills/gemini-cli/security-hsts-preloading/skill.yaml +38 -0
  3601. package/dist/agents/skills/gemini-cli/security-identity-verification/SKILL.md +157 -0
  3602. package/dist/agents/skills/gemini-cli/security-identity-verification/skill.yaml +39 -0
  3603. package/dist/agents/skills/gemini-cli/security-incident-containment/SKILL.md +190 -0
  3604. package/dist/agents/skills/gemini-cli/security-incident-containment/skill.yaml +40 -0
  3605. package/dist/agents/skills/gemini-cli/security-injection-families/SKILL.md +235 -0
  3606. package/dist/agents/skills/gemini-cli/security-injection-families/skill.yaml +41 -0
  3607. package/dist/agents/skills/gemini-cli/security-log-correlation/SKILL.md +178 -0
  3608. package/dist/agents/skills/gemini-cli/security-log-correlation/skill.yaml +39 -0
  3609. package/dist/agents/skills/gemini-cli/security-memory-safety/SKILL.md +234 -0
  3610. package/dist/agents/skills/gemini-cli/security-memory-safety/skill.yaml +39 -0
  3611. package/dist/agents/skills/gemini-cli/security-mfa-design/SKILL.md +150 -0
  3612. package/dist/agents/skills/gemini-cli/security-mfa-design/skill.yaml +41 -0
  3613. package/dist/agents/skills/gemini-cli/security-microsegmentation/SKILL.md +154 -0
  3614. package/dist/agents/skills/gemini-cli/security-microsegmentation/skill.yaml +40 -0
  3615. package/dist/agents/skills/gemini-cli/security-mtls-design/SKILL.md +158 -0
  3616. package/dist/agents/skills/gemini-cli/security-mtls-design/skill.yaml +39 -0
  3617. package/dist/agents/skills/gemini-cli/security-penetration-testing/SKILL.md +166 -0
  3618. package/dist/agents/skills/gemini-cli/security-penetration-testing/skill.yaml +40 -0
  3619. package/dist/agents/skills/gemini-cli/security-post-incident-review/SKILL.md +205 -0
  3620. package/dist/agents/skills/gemini-cli/security-post-incident-review/skill.yaml +39 -0
  3621. package/dist/agents/skills/gemini-cli/security-race-conditions/SKILL.md +186 -0
  3622. package/dist/agents/skills/gemini-cli/security-race-conditions/skill.yaml +39 -0
  3623. package/dist/agents/skills/gemini-cli/security-rbac-design/SKILL.md +209 -0
  3624. package/dist/agents/skills/gemini-cli/security-rbac-design/skill.yaml +40 -0
  3625. package/dist/agents/skills/gemini-cli/security-rebac-design/SKILL.md +154 -0
  3626. package/dist/agents/skills/gemini-cli/security-rebac-design/skill.yaml +39 -0
  3627. package/dist/agents/skills/gemini-cli/security-sbom-provenance/SKILL.md +157 -0
  3628. package/dist/agents/skills/gemini-cli/security-sbom-provenance/skill.yaml +39 -0
  3629. package/dist/agents/skills/gemini-cli/security-secrets-lifecycle/SKILL.md +190 -0
  3630. package/dist/agents/skills/gemini-cli/security-secrets-lifecycle/skill.yaml +39 -0
  3631. package/dist/agents/skills/gemini-cli/security-security-champions/SKILL.md +165 -0
  3632. package/dist/agents/skills/gemini-cli/security-security-champions/skill.yaml +37 -0
  3633. package/dist/agents/skills/gemini-cli/security-session-management/SKILL.md +196 -0
  3634. package/dist/agents/skills/gemini-cli/security-session-management/skill.yaml +41 -0
  3635. package/dist/agents/skills/gemini-cli/security-shift-left-design/SKILL.md +153 -0
  3636. package/dist/agents/skills/gemini-cli/security-shift-left-design/skill.yaml +38 -0
  3637. package/dist/agents/skills/gemini-cli/security-symmetric-encryption/SKILL.md +176 -0
  3638. package/dist/agents/skills/gemini-cli/security-symmetric-encryption/skill.yaml +41 -0
  3639. package/dist/agents/skills/gemini-cli/security-threat-modeling-process/SKILL.md +150 -0
  3640. package/dist/agents/skills/gemini-cli/security-threat-modeling-process/skill.yaml +38 -0
  3641. package/dist/agents/skills/gemini-cli/security-threat-modeling-stride/SKILL.md +150 -0
  3642. package/dist/agents/skills/gemini-cli/security-threat-modeling-stride/skill.yaml +40 -0
  3643. package/dist/agents/skills/gemini-cli/security-tls-fundamentals/SKILL.md +186 -0
  3644. package/dist/agents/skills/gemini-cli/security-tls-fundamentals/skill.yaml +40 -0
  3645. package/dist/agents/skills/gemini-cli/security-trust-boundaries/SKILL.md +152 -0
  3646. package/dist/agents/skills/gemini-cli/security-trust-boundaries/skill.yaml +39 -0
  3647. package/dist/agents/skills/gemini-cli/security-vault-patterns/SKILL.md +155 -0
  3648. package/dist/agents/skills/gemini-cli/security-vault-patterns/skill.yaml +39 -0
  3649. package/dist/agents/skills/gemini-cli/security-vulnerability-disclosure/SKILL.md +207 -0
  3650. package/dist/agents/skills/gemini-cli/security-vulnerability-disclosure/skill.yaml +39 -0
  3651. package/dist/agents/skills/gemini-cli/security-zero-trust-principles/SKILL.md +229 -0
  3652. package/dist/agents/skills/gemini-cli/security-zero-trust-principles/skill.yaml +40 -0
  3653. package/dist/agents/skills/gemini-cli/state-context-pattern/skill.yaml +1 -0
  3654. package/dist/agents/skills/gemini-cli/state-jotai-atoms/skill.yaml +1 -0
  3655. package/dist/agents/skills/gemini-cli/state-selection-patterns/skill.yaml +1 -0
  3656. package/dist/agents/skills/gemini-cli/state-server-client-sync/skill.yaml +1 -0
  3657. package/dist/agents/skills/gemini-cli/state-zustand-devtools/skill.yaml +1 -0
  3658. package/dist/agents/skills/gemini-cli/state-zustand-immer/skill.yaml +1 -0
  3659. package/dist/agents/skills/gemini-cli/state-zustand-persist/skill.yaml +1 -0
  3660. package/dist/agents/skills/gemini-cli/state-zustand-react/skill.yaml +1 -0
  3661. package/dist/agents/skills/gemini-cli/state-zustand-slices/skill.yaml +1 -0
  3662. package/dist/agents/skills/gemini-cli/state-zustand-store/skill.yaml +1 -0
  3663. package/dist/agents/skills/gemini-cli/svelte-adapter-config/skill.yaml +1 -0
  3664. package/dist/agents/skills/gemini-cli/svelte-component-composition/skill.yaml +1 -0
  3665. package/dist/agents/skills/gemini-cli/svelte-error-pages/skill.yaml +1 -0
  3666. package/dist/agents/skills/gemini-cli/svelte-form-actions/skill.yaml +1 -0
  3667. package/dist/agents/skills/gemini-cli/svelte-load-functions/skill.yaml +1 -0
  3668. package/dist/agents/skills/gemini-cli/svelte-performance-patterns/skill.yaml +6 -0
  3669. package/dist/agents/skills/gemini-cli/svelte-routing-pattern/skill.yaml +1 -0
  3670. package/dist/agents/skills/gemini-cli/svelte-runes-pattern/skill.yaml +1 -0
  3671. package/dist/agents/skills/gemini-cli/svelte-server-hooks/skill.yaml +1 -0
  3672. package/dist/agents/skills/gemini-cli/svelte-state-management/skill.yaml +1 -0
  3673. package/dist/agents/skills/gemini-cli/svelte-stores-pattern/skill.yaml +1 -0
  3674. package/dist/agents/skills/gemini-cli/svelte-testing-patterns/skill.yaml +1 -0
  3675. package/dist/agents/skills/gemini-cli/svelte-transitions-animations/skill.yaml +1 -0
  3676. package/dist/agents/skills/gemini-cli/tanstack-cache-management/skill.yaml +1 -0
  3677. package/dist/agents/skills/gemini-cli/tanstack-dependent-queries/skill.yaml +1 -0
  3678. package/dist/agents/skills/gemini-cli/tanstack-devtools/skill.yaml +1 -0
  3679. package/dist/agents/skills/gemini-cli/tanstack-infinite-queries/skill.yaml +1 -0
  3680. package/dist/agents/skills/gemini-cli/tanstack-mutation-patterns/skill.yaml +1 -0
  3681. package/dist/agents/skills/gemini-cli/tanstack-optimistic-updates/skill.yaml +1 -0
  3682. package/dist/agents/skills/gemini-cli/tanstack-prefetching/skill.yaml +1 -0
  3683. package/dist/agents/skills/gemini-cli/tanstack-query-invalidation/skill.yaml +1 -0
  3684. package/dist/agents/skills/gemini-cli/tanstack-query-keys/skill.yaml +1 -0
  3685. package/dist/agents/skills/gemini-cli/tanstack-suspense-mode/skill.yaml +1 -0
  3686. package/dist/agents/skills/gemini-cli/test-accessibility-testing/skill.yaml +1 -0
  3687. package/dist/agents/skills/gemini-cli/test-component-react/skill.yaml +1 -0
  3688. package/dist/agents/skills/gemini-cli/test-component-svelte/skill.yaml +1 -0
  3689. package/dist/agents/skills/gemini-cli/test-contract-testing/skill.yaml +1 -0
  3690. package/dist/agents/skills/gemini-cli/test-coverage-patterns/skill.yaml +1 -0
  3691. package/dist/agents/skills/gemini-cli/test-e2e-strategy/skill.yaml +1 -0
  3692. package/dist/agents/skills/gemini-cli/test-factory-patterns/skill.yaml +1 -0
  3693. package/dist/agents/skills/gemini-cli/test-integration-patterns/skill.yaml +1 -0
  3694. package/dist/agents/skills/gemini-cli/test-mock-patterns/skill.yaml +1 -0
  3695. package/dist/agents/skills/gemini-cli/test-msw-pattern/skill.yaml +1 -0
  3696. package/dist/agents/skills/gemini-cli/test-performance-testing/skill.yaml +5 -0
  3697. package/dist/agents/skills/gemini-cli/test-playwright-patterns/skill.yaml +1 -0
  3698. package/dist/agents/skills/gemini-cli/test-playwright-setup/skill.yaml +1 -0
  3699. package/dist/agents/skills/gemini-cli/test-property-based/skill.yaml +1 -0
  3700. package/dist/agents/skills/gemini-cli/test-snapshot-patterns/skill.yaml +1 -0
  3701. package/dist/agents/skills/gemini-cli/test-tdd-workflow/skill.yaml +1 -0
  3702. package/dist/agents/skills/gemini-cli/test-unit-patterns/skill.yaml +1 -0
  3703. package/dist/agents/skills/gemini-cli/test-vitest-config/skill.yaml +1 -0
  3704. package/dist/agents/skills/gemini-cli/trpc-context-pattern/skill.yaml +1 -0
  3705. package/dist/agents/skills/gemini-cli/trpc-error-handling/SKILL.md +1 -0
  3706. package/dist/agents/skills/gemini-cli/trpc-error-handling/skill.yaml +3 -0
  3707. package/dist/agents/skills/gemini-cli/trpc-input-validation/SKILL.md +1 -0
  3708. package/dist/agents/skills/gemini-cli/trpc-input-validation/skill.yaml +2 -0
  3709. package/dist/agents/skills/gemini-cli/trpc-middleware-pattern/skill.yaml +1 -0
  3710. package/dist/agents/skills/gemini-cli/trpc-nextjs-integration/skill.yaml +1 -0
  3711. package/dist/agents/skills/gemini-cli/trpc-react-query-integration/skill.yaml +1 -0
  3712. package/dist/agents/skills/gemini-cli/trpc-router-composition/SKILL.md +1 -0
  3713. package/dist/agents/skills/gemini-cli/trpc-router-composition/skill.yaml +3 -0
  3714. package/dist/agents/skills/gemini-cli/trpc-subscription-pattern/skill.yaml +1 -0
  3715. package/dist/agents/skills/gemini-cli/ts-async-patterns/skill.yaml +1 -0
  3716. package/dist/agents/skills/gemini-cli/ts-branded-types/skill.yaml +1 -0
  3717. package/dist/agents/skills/gemini-cli/ts-class-patterns/skill.yaml +1 -0
  3718. package/dist/agents/skills/gemini-cli/ts-conditional-types/skill.yaml +1 -0
  3719. package/dist/agents/skills/gemini-cli/ts-config-patterns/skill.yaml +1 -0
  3720. package/dist/agents/skills/gemini-cli/ts-declaration-merging/skill.yaml +1 -0
  3721. package/dist/agents/skills/gemini-cli/ts-decorator-patterns/skill.yaml +1 -0
  3722. package/dist/agents/skills/gemini-cli/ts-discriminated-unions/skill.yaml +1 -0
  3723. package/dist/agents/skills/gemini-cli/ts-error-handling-types/skill.yaml +1 -0
  3724. package/dist/agents/skills/gemini-cli/ts-generics-pattern/skill.yaml +1 -0
  3725. package/dist/agents/skills/gemini-cli/ts-mapped-types/skill.yaml +1 -0
  3726. package/dist/agents/skills/gemini-cli/ts-module-patterns/skill.yaml +1 -0
  3727. package/dist/agents/skills/gemini-cli/ts-performance-patterns/skill.yaml +5 -0
  3728. package/dist/agents/skills/gemini-cli/ts-satisfies-operator/skill.yaml +1 -0
  3729. package/dist/agents/skills/gemini-cli/ts-strict-mode/skill.yaml +1 -0
  3730. package/dist/agents/skills/gemini-cli/ts-template-literal-types/skill.yaml +1 -0
  3731. package/dist/agents/skills/gemini-cli/ts-testing-types/skill.yaml +1 -0
  3732. package/dist/agents/skills/gemini-cli/ts-type-guards/skill.yaml +1 -0
  3733. package/dist/agents/skills/gemini-cli/ts-utility-types/skill.yaml +1 -0
  3734. package/dist/agents/skills/gemini-cli/ts-zod-integration/skill.yaml +1 -0
  3735. package/dist/agents/skills/gemini-cli/ux-active-voice/SKILL.md +150 -0
  3736. package/dist/agents/skills/gemini-cli/ux-active-voice/skill.yaml +32 -0
  3737. package/dist/agents/skills/gemini-cli/ux-button-cta-copy/SKILL.md +159 -0
  3738. package/dist/agents/skills/gemini-cli/ux-button-cta-copy/skill.yaml +34 -0
  3739. package/dist/agents/skills/gemini-cli/ux-confirmation-dialogs/SKILL.md +156 -0
  3740. package/dist/agents/skills/gemini-cli/ux-confirmation-dialogs/skill.yaml +33 -0
  3741. package/dist/agents/skills/gemini-cli/ux-content-hierarchy/SKILL.md +150 -0
  3742. package/dist/agents/skills/gemini-cli/ux-content-hierarchy/skill.yaml +33 -0
  3743. package/dist/agents/skills/gemini-cli/ux-data-table-copy/SKILL.md +154 -0
  3744. package/dist/agents/skills/gemini-cli/ux-data-table-copy/skill.yaml +34 -0
  3745. package/dist/agents/skills/gemini-cli/ux-destructive-action-copy/SKILL.md +152 -0
  3746. package/dist/agents/skills/gemini-cli/ux-destructive-action-copy/skill.yaml +34 -0
  3747. package/dist/agents/skills/gemini-cli/ux-empty-states/SKILL.md +155 -0
  3748. package/dist/agents/skills/gemini-cli/ux-empty-states/skill.yaml +36 -0
  3749. package/dist/agents/skills/gemini-cli/ux-error-messages/SKILL.md +159 -0
  3750. package/dist/agents/skills/gemini-cli/ux-error-messages/skill.yaml +35 -0
  3751. package/dist/agents/skills/gemini-cli/ux-error-severity/SKILL.md +155 -0
  3752. package/dist/agents/skills/gemini-cli/ux-error-severity/skill.yaml +35 -0
  3753. package/dist/agents/skills/gemini-cli/ux-form-labels/SKILL.md +159 -0
  3754. package/dist/agents/skills/gemini-cli/ux-form-labels/skill.yaml +36 -0
  3755. package/dist/agents/skills/gemini-cli/ux-inclusive-language/SKILL.md +161 -0
  3756. package/dist/agents/skills/gemini-cli/ux-inclusive-language/skill.yaml +33 -0
  3757. package/dist/agents/skills/gemini-cli/ux-internationalization-writing/SKILL.md +196 -0
  3758. package/dist/agents/skills/gemini-cli/ux-internationalization-writing/skill.yaml +35 -0
  3759. package/dist/agents/skills/gemini-cli/ux-loading-states/SKILL.md +162 -0
  3760. package/dist/agents/skills/gemini-cli/ux-loading-states/skill.yaml +33 -0
  3761. package/dist/agents/skills/gemini-cli/ux-microcopy-principles/SKILL.md +152 -0
  3762. package/dist/agents/skills/gemini-cli/ux-microcopy-principles/skill.yaml +37 -0
  3763. package/dist/agents/skills/gemini-cli/ux-navigation-labels/SKILL.md +163 -0
  3764. package/dist/agents/skills/gemini-cli/ux-navigation-labels/skill.yaml +35 -0
  3765. package/dist/agents/skills/gemini-cli/ux-notification-copy/SKILL.md +150 -0
  3766. package/dist/agents/skills/gemini-cli/ux-notification-copy/skill.yaml +35 -0
  3767. package/dist/agents/skills/gemini-cli/ux-onboarding-copy/SKILL.md +156 -0
  3768. package/dist/agents/skills/gemini-cli/ux-onboarding-copy/skill.yaml +35 -0
  3769. package/dist/agents/skills/gemini-cli/ux-permission-access-copy/SKILL.md +150 -0
  3770. package/dist/agents/skills/gemini-cli/ux-permission-access-copy/skill.yaml +34 -0
  3771. package/dist/agents/skills/gemini-cli/ux-plain-language/SKILL.md +157 -0
  3772. package/dist/agents/skills/gemini-cli/ux-plain-language/skill.yaml +34 -0
  3773. package/dist/agents/skills/gemini-cli/ux-search-copy/SKILL.md +154 -0
  3774. package/dist/agents/skills/gemini-cli/ux-search-copy/skill.yaml +33 -0
  3775. package/dist/agents/skills/gemini-cli/ux-settings-preferences/SKILL.md +152 -0
  3776. package/dist/agents/skills/gemini-cli/ux-settings-preferences/skill.yaml +33 -0
  3777. package/dist/agents/skills/gemini-cli/ux-success-feedback/SKILL.md +163 -0
  3778. package/dist/agents/skills/gemini-cli/ux-success-feedback/skill.yaml +33 -0
  3779. package/dist/agents/skills/gemini-cli/ux-tooltip-contextual-help/SKILL.md +163 -0
  3780. package/dist/agents/skills/gemini-cli/ux-tooltip-contextual-help/skill.yaml +33 -0
  3781. package/dist/agents/skills/gemini-cli/ux-voice-tone/SKILL.md +150 -0
  3782. package/dist/agents/skills/gemini-cli/ux-voice-tone/skill.yaml +33 -0
  3783. package/dist/agents/skills/gemini-cli/ux-writing-for-scanning/SKILL.md +150 -0
  3784. package/dist/agents/skills/gemini-cli/ux-writing-for-scanning/skill.yaml +35 -0
  3785. package/dist/agents/skills/gemini-cli/validate-context-engineering/skill.yaml +1 -0
  3786. package/dist/agents/skills/gemini-cli/vue-async-components/skill.yaml +1 -0
  3787. package/dist/agents/skills/gemini-cli/vue-component-events/skill.yaml +1 -0
  3788. package/dist/agents/skills/gemini-cli/vue-composables-pattern/skill.yaml +1 -0
  3789. package/dist/agents/skills/gemini-cli/vue-directive-pattern/skill.yaml +1 -0
  3790. package/dist/agents/skills/gemini-cli/vue-pinia-pattern/skill.yaml +1 -0
  3791. package/dist/agents/skills/gemini-cli/vue-provide-inject/skill.yaml +1 -0
  3792. package/dist/agents/skills/gemini-cli/vue-reactive-refs/skill.yaml +1 -0
  3793. package/dist/agents/skills/gemini-cli/vue-renderless-components/skill.yaml +1 -0
  3794. package/dist/agents/skills/gemini-cli/vue-slots-pattern/skill.yaml +1 -0
  3795. package/dist/agents/skills/gemini-cli/vue-teleport-pattern/skill.yaml +1 -0
  3796. package/dist/agents/skills/gemini-cli/vue-watchers-pattern/skill.yaml +1 -0
  3797. package/dist/agents/skills/gemini-cli/xstate-actor-pattern/skill.yaml +1 -0
  3798. package/dist/agents/skills/gemini-cli/xstate-guards-actions/skill.yaml +1 -0
  3799. package/dist/agents/skills/gemini-cli/xstate-history-states/skill.yaml +1 -0
  3800. package/dist/agents/skills/gemini-cli/xstate-invoke-pattern/skill.yaml +1 -0
  3801. package/dist/agents/skills/gemini-cli/xstate-machine-definition/skill.yaml +1 -0
  3802. package/dist/agents/skills/gemini-cli/xstate-parallel-states/skill.yaml +1 -0
  3803. package/dist/agents/skills/gemini-cli/xstate-react-integration/skill.yaml +1 -0
  3804. package/dist/agents/skills/gemini-cli/xstate-testing-patterns/skill.yaml +1 -0
  3805. package/dist/agents/skills/gemini-cli/xstate-typegen/skill.yaml +1 -0
  3806. package/dist/agents/skills/gemini-cli/xstate-visualization/skill.yaml +1 -0
  3807. package/dist/agents/skills/gemini-cli/zod-array-validation/skill.yaml +1 -0
  3808. package/dist/agents/skills/gemini-cli/zod-async-validation/skill.yaml +1 -0
  3809. package/dist/agents/skills/gemini-cli/zod-error-handling/skill.yaml +1 -0
  3810. package/dist/agents/skills/gemini-cli/zod-infer-types/skill.yaml +1 -0
  3811. package/dist/agents/skills/gemini-cli/zod-nextjs-integration/skill.yaml +1 -0
  3812. package/dist/agents/skills/gemini-cli/zod-object-patterns/skill.yaml +1 -0
  3813. package/dist/agents/skills/gemini-cli/zod-schema-definition/skill.yaml +1 -0
  3814. package/dist/agents/skills/gemini-cli/zod-string-validation/skill.yaml +1 -0
  3815. package/dist/agents/skills/gemini-cli/zod-transform-refine/skill.yaml +1 -0
  3816. package/dist/agents/skills/gemini-cli/zod-union-discriminated/skill.yaml +1 -0
  3817. package/dist/{agents-md-RP63BO56.js → agents-md-PBKKTSQY.js} +2 -2
  3818. package/dist/{architecture-MCCHZWOK.js → architecture-FBSLURIB.js} +4 -4
  3819. package/dist/{assess-project-7HE2Z5PW.js → assess-project-74UVWPMB.js} +1 -1
  3820. package/dist/bin/harness-mcp.js +16 -16
  3821. package/dist/bin/harness.js +24 -23
  3822. package/dist/{check-phase-gate-JXIRVHTR.js → check-phase-gate-WY6UICCL.js} +4 -4
  3823. package/dist/{chunk-HP74FPUJ.js → chunk-3VYWO6QN.js} +8 -8
  3824. package/dist/chunk-3XAPHB2Z.js +43 -0
  3825. package/dist/{chunk-ZOIGL5PP.js → chunk-5PMRARB5.js} +11 -1
  3826. package/dist/{chunk-ANXOO2HR.js → chunk-A737JDL4.js} +4 -4
  3827. package/dist/{chunk-IDZNPTYD.js → chunk-EPUKTTJZ.js} +6 -1
  3828. package/dist/{chunk-FVF66DVL.js → chunk-FJYP32IV.js} +6 -6
  3829. package/dist/{chunk-DSB6O257.js → chunk-GISMXMVL.js} +3 -0
  3830. package/dist/{chunk-WPFFEDTO.js → chunk-H4U2QNY2.js} +523 -41
  3831. package/dist/{chunk-EKYIKFOO.js → chunk-L5UONZ53.js} +58 -1
  3832. package/dist/{chunk-BH6GUAUS.js → chunk-O6UF33QH.js} +777 -138
  3833. package/dist/{chunk-MY5DBCJZ.js → chunk-OZIHPMA7.js} +105 -3
  3834. package/dist/{chunk-LRX6J7IA.js → chunk-SPTKLCKC.js} +1 -1
  3835. package/dist/{chunk-R7LB3VJR.js → chunk-TB427QOK.js} +9 -9
  3836. package/dist/{chunk-7QYO5UWW.js → chunk-TDLOFNNQ.js} +1 -1
  3837. package/dist/{chunk-3POJUEEZ.js → chunk-UFQQBGC3.js} +1 -1
  3838. package/dist/{chunk-LASBAGC6.js → chunk-UQEUYRBP.js} +1 -1
  3839. package/dist/{chunk-44DNUOBH.js → chunk-V2FGX2KD.js} +5 -5
  3840. package/dist/{chunk-OWH5XSMD.js → chunk-WEN5Z7CL.js} +2 -2
  3841. package/dist/{chunk-ICPZNX6O.js → chunk-XNEMDKV5.js} +1 -1
  3842. package/dist/{chunk-UKMWY5OJ.js → chunk-YPKKEP3O.js} +10 -10
  3843. package/dist/{chunk-46PEKT5G.js → chunk-ZAMT24QN.js} +1077 -546
  3844. package/dist/{chunk-BKHS7RPB.js → chunk-ZOVATVQC.js} +1 -0
  3845. package/dist/{ci-workflow-YE7B375K.js → ci-workflow-QZRHAIO2.js} +2 -2
  3846. package/dist/{create-skill-LTLAAJPC.js → create-skill-QCXINA5Q.js} +2 -2
  3847. package/dist/{dist-27IJJDWG.js → dist-7EBSGAHX.js} +42 -2
  3848. package/dist/{dist-M6FBUXZD.js → dist-QW5G3GX3.js} +7 -1
  3849. package/dist/{docs-YAYNHDC3.js → docs-H34GBVRS.js} +5 -5
  3850. package/dist/{engine-TS24YHIT.js → engine-VUQEAJFZ.js} +2 -2
  3851. package/dist/{entropy-RSH5D63W.js → entropy-ZAY73R6A.js} +4 -4
  3852. package/dist/{feedback-VGGBOI54.js → feedback-TMEGYMWU.js} +2 -2
  3853. package/dist/{generate-agent-definitions-PBITSP7C.js → generate-agent-definitions-PQPG6SX5.js} +2 -2
  3854. package/dist/{graph-loader-OLSOE537.js → graph-loader-M6FXJAKK.js} +1 -1
  3855. package/dist/index.d.ts +38 -8
  3856. package/dist/index.js +29 -27
  3857. package/dist/{loader-HBQNUGAM.js → loader-Y6A42WBD.js} +2 -2
  3858. package/dist/mcp-LCHC4NZ5.js +37 -0
  3859. package/dist/{performance-MMIMMNFQ.js → performance-N67YJJDG.js} +5 -5
  3860. package/dist/{review-pipeline-UAPVKI6W.js → review-pipeline-YXF5ITL2.js} +4 -1
  3861. package/dist/{runner-YYCVNAVF.js → runner-TY7DJGQV.js} +1 -1
  3862. package/dist/{runtime-NQNTDQV5.js → runtime-XNJUJCSG.js} +2 -2
  3863. package/dist/scan-U67OKDRS.js +8 -0
  3864. package/dist/{security-IP5IJTB7.js → security-L2YN3CTI.js} +1 -1
  3865. package/dist/{skill-executor-CS25H7FF.js → skill-executor-GA7BDX3F.js} +2 -2
  3866. package/dist/{validate-QLHCVBKE.js → validate-MNE25KLZ.js} +3 -3
  3867. package/dist/{validate-cross-check-WQWFMPXJ.js → validate-cross-check-Y4PDR63C.js} +2 -2
  3868. package/package.json +6 -5
  3869. package/dist/mcp-HZ6CRAZR.js +0 -37
@@ -1,6 +1,12 @@
1
+ import {
2
+ generateAgentsMd
3
+ } from "./chunk-I4QR3HNH.js";
1
4
  import {
2
5
  generateCIWorkflow
3
6
  } from "./chunk-LOUH2LIC.js";
7
+ import {
8
+ TemplateEngine
9
+ } from "./chunk-FP53DDB5.js";
4
10
  import {
5
11
  generate,
6
12
  validate
@@ -8,15 +14,12 @@ import {
8
14
  import {
9
15
  generateRuntime
10
16
  } from "./chunk-LM5Z2WCA.js";
11
- import {
12
- generateAgentsMd
13
- } from "./chunk-I4QR3HNH.js";
14
17
  import {
15
18
  runPersona
16
- } from "./chunk-DSB6O257.js";
19
+ } from "./chunk-GISMXMVL.js";
17
20
  import {
18
21
  executeSkill
19
- } from "./chunk-LASBAGC6.js";
22
+ } from "./chunk-UQEUYRBP.js";
20
23
  import {
21
24
  ALLOWED_PERSONA_COMMANDS
22
25
  } from "./chunk-TEFCFC4H.js";
@@ -25,7 +28,7 @@ import {
25
28
  OutputMode,
26
29
  createCheckPhaseGateCommand,
27
30
  findFiles
28
- } from "./chunk-LRX6J7IA.js";
31
+ } from "./chunk-SPTKLCKC.js";
29
32
  import {
30
33
  createGenerateAgentDefinitionsCommand,
31
34
  generateAgentDefinitions
@@ -38,12 +41,13 @@ import {
38
41
  loadPersona
39
42
  } from "./chunk-YDRB55Q4.js";
40
43
  import {
41
- TemplateEngine
42
- } from "./chunk-FP53DDB5.js";
44
+ createScanCommand
45
+ } from "./chunk-3XAPHB2Z.js";
43
46
  import {
44
47
  appendFrameworkAgents,
45
48
  captureHealthSnapshot,
46
49
  createGenerateSlashCommandsCommand,
50
+ ensureHarnessGitignore,
47
51
  generateSlashCommands,
48
52
  handleGetImpact,
49
53
  handleOrphanDeletion,
@@ -52,11 +56,11 @@ import {
52
56
  loadOrRebuildIndex,
53
57
  persistToolingConfig,
54
58
  recommend
55
- } from "./chunk-BH6GUAUS.js";
59
+ } from "./chunk-O6UF33QH.js";
56
60
  import {
57
61
  findConfigFile,
58
62
  resolveConfig
59
- } from "./chunk-ZOIGL5PP.js";
63
+ } from "./chunk-5PMRARB5.js";
60
64
  import {
61
65
  VALID_PLATFORMS
62
66
  } from "./chunk-3ISINLYT.js";
@@ -70,7 +74,7 @@ import {
70
74
  } from "./chunk-6B6UN6SG.js";
71
75
  import {
72
76
  loadGraphStore
73
- } from "./chunk-7QYO5UWW.js";
77
+ } from "./chunk-TDLOFNNQ.js";
74
78
  import {
75
79
  CLI_VERSION
76
80
  } from "./chunk-BM3PWGXQ.js";
@@ -108,6 +112,7 @@ import {
108
112
  diff,
109
113
  extractBundle,
110
114
  generateSuggestions,
115
+ getOrCreateInstallId,
111
116
  listStreams,
112
117
  listTaintedSessions,
113
118
  loadState,
@@ -118,10 +123,12 @@ import {
118
123
  parseManifest,
119
124
  parseSecurityConfig,
120
125
  pruneLearnings,
126
+ readIdentity,
121
127
  readLockfile,
122
128
  removeContributions,
123
129
  removeProvenance,
124
130
  requestPeerReview,
131
+ resolveConsent,
125
132
  resolveStreamPath,
126
133
  runAll,
127
134
  runCIChecks,
@@ -133,20 +140,20 @@ import {
133
140
  validateKnowledgeMap,
134
141
  writeConfig,
135
142
  writeLockfile
136
- } from "./chunk-WPFFEDTO.js";
143
+ } from "./chunk-H4U2QNY2.js";
137
144
  import {
138
145
  Err,
139
146
  Ok
140
147
  } from "./chunk-5LMZA5LZ.js";
141
148
  import {
142
149
  createCreateSkillCommand
143
- } from "./chunk-ICPZNX6O.js";
150
+ } from "./chunk-XNEMDKV5.js";
144
151
  import {
145
152
  logger
146
153
  } from "./chunk-EBJQ6N4M.js";
147
154
  import {
148
155
  SkillMetadataSchema
149
- } from "./chunk-BKHS7RPB.js";
156
+ } from "./chunk-ZOVATVQC.js";
150
157
  import {
151
158
  CLIError,
152
159
  ExitCode,
@@ -154,7 +161,7 @@ import {
154
161
  } from "./chunk-3WGJMBKH.js";
155
162
 
156
163
  // src/index.ts
157
- import { Command as Command75 } from "commander";
164
+ import { Command as Command79 } from "commander";
158
165
 
159
166
  // src/commands/add.ts
160
167
  import { Command } from "commander";
@@ -244,7 +251,7 @@ function addDoc(name, cwd, configResult, created) {
244
251
  return Ok(void 0);
245
252
  }
246
253
  async function addSkill(name, cwd, created) {
247
- const { generateSkillFiles: generateSkillFiles2 } = await import("./create-skill-LTLAAJPC.js");
254
+ const { generateSkillFiles: generateSkillFiles2 } = await import("./create-skill-QCXINA5Q.js");
248
255
  generateSkillFiles2({
249
256
  name,
250
257
  description: `${name} skill`,
@@ -324,11 +331,164 @@ function createAddCommand() {
324
331
  return command;
325
332
  }
326
333
 
334
+ // src/commands/adoption.ts
335
+ import { Command as Command2 } from "commander";
336
+ function formatDuration(ms) {
337
+ if (ms < 1e3) return `${ms}ms`;
338
+ if (ms < 6e4) return `${(ms / 1e3).toFixed(1)}s`;
339
+ return `${(ms / 6e4).toFixed(1)}m`;
340
+ }
341
+ function formatRate(rate) {
342
+ return `${(rate * 100).toFixed(0)}%`;
343
+ }
344
+ function padRight(str, len) {
345
+ return str.length >= len ? str : str + " ".repeat(len - str.length);
346
+ }
347
+ function registerSkillsCommand(adoption) {
348
+ adoption.command("skills").description("Show top skills by invocation count").option("--limit <n>", "Number of skills to show (default: 20)", "20").action(async (opts, cmd) => {
349
+ const globalOpts = cmd.optsWithGlobals();
350
+ const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
351
+ const cwd = process.cwd();
352
+ const { readAdoptionRecords, aggregateBySkill } = await import("./dist-7EBSGAHX.js");
353
+ const records = readAdoptionRecords(cwd);
354
+ if (records.length === 0) {
355
+ if (globalOpts.json) {
356
+ console.log(JSON.stringify([]));
357
+ } else {
358
+ logger.info("No adoption data found. Skills will be tracked after your next session.");
359
+ }
360
+ return;
361
+ }
362
+ const summaries = aggregateBySkill(records).slice(0, limit);
363
+ if (globalOpts.json) {
364
+ console.log(JSON.stringify(summaries, null, 2));
365
+ return;
366
+ }
367
+ const header = "Skill | Invocations | Success | Avg Duration | Last Used";
368
+ const divider = "-----------------------------------|-------------|---------|--------------|----------";
369
+ console.log(header);
370
+ console.log(divider);
371
+ for (const s of summaries) {
372
+ const name = padRight(s.skill, 35);
373
+ const count = padRight(String(s.invocations), 11);
374
+ const rate = padRight(formatRate(s.successRate), 7);
375
+ const dur = padRight(formatDuration(s.avgDuration), 12);
376
+ const last = s.lastUsed.slice(0, 10);
377
+ console.log(`${name} | ${count} | ${rate} | ${dur} | ${last}`);
378
+ }
379
+ console.log(`
380
+ Total: ${records.length} invocations across ${summaries.length} skill(s)`);
381
+ });
382
+ }
383
+ function registerRecentCommand(adoption) {
384
+ adoption.command("recent").description("Show recent skill invocations").option("--limit <n>", "Number of invocations to show (default: 20)", "20").action(async (opts, cmd) => {
385
+ const globalOpts = cmd.optsWithGlobals();
386
+ const limit = Math.max(parseInt(opts.limit, 10) || 20, 1);
387
+ const cwd = process.cwd();
388
+ const { readAdoptionRecords } = await import("./dist-7EBSGAHX.js");
389
+ const records = readAdoptionRecords(cwd);
390
+ if (records.length === 0) {
391
+ if (globalOpts.json) {
392
+ console.log(JSON.stringify([]));
393
+ } else {
394
+ logger.info("No adoption data found. Skills will be tracked after your next session.");
395
+ }
396
+ return;
397
+ }
398
+ const sorted = [...records].sort(
399
+ (a, b) => new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime()
400
+ );
401
+ const limited = sorted.slice(0, limit);
402
+ if (globalOpts.json) {
403
+ console.log(JSON.stringify(limited, null, 2));
404
+ return;
405
+ }
406
+ const header = "Date | Skill | Outcome | Duration";
407
+ const divider = "-----------|------------------------------------|-----------|---------";
408
+ console.log(header);
409
+ console.log(divider);
410
+ for (const r of limited) {
411
+ const date = r.startedAt.slice(0, 10);
412
+ const skill = padRight(r.skill, 35);
413
+ const outcome = padRight(r.outcome, 9);
414
+ const dur = formatDuration(r.duration);
415
+ console.log(`${date} | ${skill}| ${outcome} | ${dur}`);
416
+ }
417
+ console.log(`
418
+ Showing ${limited.length} of ${records.length} invocations`);
419
+ });
420
+ }
421
+ function registerSkillCommand(adoption) {
422
+ adoption.command("skill <name>").description("Show detail for a specific skill").action(async (name, _opts, cmd) => {
423
+ const globalOpts = cmd.optsWithGlobals();
424
+ const cwd = process.cwd();
425
+ const { readAdoptionRecords, aggregateBySkill } = await import("./dist-7EBSGAHX.js");
426
+ const records = readAdoptionRecords(cwd);
427
+ const skillRecords = records.filter((r) => r.skill === name);
428
+ if (skillRecords.length === 0) {
429
+ if (globalOpts.json) {
430
+ console.log(JSON.stringify(null));
431
+ } else {
432
+ logger.info(`No adoption data found for skill "${name}".`);
433
+ }
434
+ return;
435
+ }
436
+ const summaries = aggregateBySkill(skillRecords);
437
+ const summary = summaries[0];
438
+ const phaseMap = /* @__PURE__ */ new Map();
439
+ for (const r of skillRecords) {
440
+ for (const phase of r.phasesReached) {
441
+ phaseMap.set(phase, (phaseMap.get(phase) ?? 0) + 1);
442
+ }
443
+ }
444
+ const phaseRates = Array.from(phaseMap.entries()).map(([phase, count]) => ({ phase, count, rate: count / skillRecords.length })).sort((a, b) => b.count - a.count);
445
+ if (globalOpts.json) {
446
+ console.log(
447
+ JSON.stringify({ summary, phaseRates, totalRecords: skillRecords.length }, null, 2)
448
+ );
449
+ return;
450
+ }
451
+ console.log(`Skill: ${name}`);
452
+ console.log(`Invocations: ${summary.invocations}`);
453
+ console.log(`Success rate: ${formatRate(summary.successRate)}`);
454
+ console.log(`Avg duration: ${formatDuration(summary.avgDuration)}`);
455
+ console.log(`Last used: ${summary.lastUsed.slice(0, 10)}`);
456
+ if (summary.tier != null) {
457
+ console.log(`Tier: ${summary.tier}`);
458
+ }
459
+ if (phaseRates.length > 0) {
460
+ console.log("\nPhase completion rates:");
461
+ for (const p of phaseRates) {
462
+ console.log(
463
+ ` ${padRight(p.phase, 20)} ${formatRate(p.rate)} (${p.count}/${skillRecords.length})`
464
+ );
465
+ }
466
+ }
467
+ const outcomes = { completed: 0, failed: 0, abandoned: 0 };
468
+ for (const r of skillRecords) {
469
+ if (r.outcome in outcomes) {
470
+ outcomes[r.outcome]++;
471
+ }
472
+ }
473
+ console.log("\nOutcome breakdown:");
474
+ console.log(` Completed: ${outcomes.completed}`);
475
+ console.log(` Failed: ${outcomes.failed}`);
476
+ console.log(` Abandoned: ${outcomes.abandoned}`);
477
+ });
478
+ }
479
+ function createAdoptionCommand() {
480
+ const adoption = new Command2("adoption").description("View skill adoption telemetry").option("--json", "Output in JSON format");
481
+ registerSkillsCommand(adoption);
482
+ registerRecentCommand(adoption);
483
+ registerSkillCommand(adoption);
484
+ return adoption;
485
+ }
486
+
327
487
  // src/commands/agent/index.ts
328
- import { Command as Command4 } from "commander";
488
+ import { Command as Command5 } from "commander";
329
489
 
330
490
  // src/commands/agent/run.ts
331
- import { Command as Command2 } from "commander";
491
+ import { Command as Command3 } from "commander";
332
492
  import * as path2 from "path";
333
493
  import * as childProcess from "child_process";
334
494
  async function runAgentTask(task, options) {
@@ -425,7 +585,7 @@ async function runPersonaMode(opts, quiet) {
425
585
  process.exit(report.status === "fail" ? ExitCode.ERROR : ExitCode.SUCCESS);
426
586
  }
427
587
  function createRunCommand() {
428
- return new Command2("run").description("Run an agent task").argument("[task]", "Task to run (review, doc-review, test-review)").option("--timeout <ms>", "Timeout in milliseconds", "300000").option("--persona <name>", "Run a persona by name").option("--trigger <context>", "Trigger context (auto, on_pr, on_commit, manual)", "auto").action(async (task, opts, cmd) => {
588
+ return new Command3("run").description("Run an agent task").argument("[task]", "Task to run (review, doc-review, test-review)").option("--timeout <ms>", "Timeout in milliseconds", "300000").option("--persona <name>", "Run a persona by name").option("--trigger <context>", "Trigger context (auto, on_pr, on_commit, manual)", "auto").action(async (task, opts, cmd) => {
429
589
  const globalOpts = cmd.optsWithGlobals();
430
590
  if (opts.persona) {
431
591
  await runPersonaMode(opts, globalOpts.quiet);
@@ -449,7 +609,7 @@ function createRunCommand() {
449
609
  }
450
610
 
451
611
  // src/commands/agent/review.ts
452
- import { Command as Command3 } from "commander";
612
+ import { Command as Command4 } from "commander";
453
613
  import { execSync } from "child_process";
454
614
  async function runAgentReview(options) {
455
615
  const configResult = resolveConfig(options.configPath);
@@ -543,7 +703,7 @@ function printReviewResult(result, mode) {
543
703
  }
544
704
  }
545
705
  function createReviewCommand() {
546
- return new Command3("review").description("Run unified code review pipeline on current changes").option("--comment", "Post inline comments to GitHub PR").option("--ci", "Enable eligibility gate, non-interactive output").option("--deep", "Add threat modeling pass to security agent").option("--no-mechanical", "Skip mechanical checks").action(async (opts, cmd) => {
706
+ return new Command4("review").description("Run unified code review pipeline on current changes").option("--comment", "Post inline comments to GitHub PR").option("--ci", "Enable eligibility gate, non-interactive output").option("--deep", "Add threat modeling pass to security agent").option("--no-mechanical", "Skip mechanical checks").action(async (opts, cmd) => {
547
707
  const globalOpts = cmd.optsWithGlobals();
548
708
  const mode = resolveReviewMode(globalOpts);
549
709
  const result = await runAgentReview({
@@ -571,17 +731,17 @@ function createReviewCommand() {
571
731
 
572
732
  // src/commands/agent/index.ts
573
733
  function createAgentCommand() {
574
- const command = new Command4("agent").description("Agent orchestration commands");
734
+ const command = new Command5("agent").description("Agent orchestration commands");
575
735
  command.addCommand(createRunCommand());
576
736
  command.addCommand(createReviewCommand());
577
737
  return command;
578
738
  }
579
739
 
580
740
  // src/commands/blueprint.ts
581
- import { Command as Command5 } from "commander";
741
+ import { Command as Command6 } from "commander";
582
742
  import * as path3 from "path";
583
743
  function createBlueprintCommand() {
584
- return new Command5("blueprint").description("Generate a self-contained, interactive blueprint of the codebase").argument("[path]", "Path to the project root", ".").option("-o, --output <dir>", "Output directory", "docs/blueprint").action(async (projectPath, options) => {
744
+ return new Command6("blueprint").description("Generate a self-contained, interactive blueprint of the codebase").argument("[path]", "Path to the project root", ".").option("-o, --output <dir>", "Output directory", "docs/blueprint").action(async (projectPath, options) => {
585
745
  try {
586
746
  const rootDir = path3.resolve(projectPath);
587
747
  const outputDir = path3.resolve(options.output);
@@ -602,7 +762,7 @@ function createBlueprintCommand() {
602
762
  }
603
763
 
604
764
  // src/commands/check-arch.ts
605
- import { Command as Command6 } from "commander";
765
+ import { Command as Command7 } from "commander";
606
766
  import { execSync as execSync2 } from "child_process";
607
767
  function getCommitHash(cwd) {
608
768
  try {
@@ -732,7 +892,7 @@ function printArchResult(value, mode, formatter) {
732
892
  if (output) console.log(output);
733
893
  }
734
894
  function createCheckArchCommand() {
735
- const command = new Command6("check-arch").description("Check architecture assertions against baseline and thresholds").option("--update-baseline", "Capture current state as new baseline").option("--module <path>", "Check a single module").action(async (opts, cmd) => {
895
+ const command = new Command7("check-arch").description("Check architecture assertions against baseline and thresholds").option("--update-baseline", "Capture current state as new baseline").option("--module <path>", "Check a single module").action(async (opts, cmd) => {
736
896
  const globalOpts = cmd.optsWithGlobals();
737
897
  const mode = resolveOutputMode(globalOpts);
738
898
  const formatter = new OutputFormatter(mode);
@@ -762,7 +922,7 @@ function createCheckArchCommand() {
762
922
  }
763
923
 
764
924
  // src/commands/check-deps.ts
765
- import { Command as Command7 } from "commander";
925
+ import { Command as Command8 } from "commander";
766
926
  import * as path4 from "path";
767
927
  async function runCheckDeps(options) {
768
928
  const cwd = options.cwd ?? process.cwd();
@@ -854,14 +1014,14 @@ async function runCheckDepsAction(globalOpts) {
854
1014
  process.exit(result.value.valid ? ExitCode.SUCCESS : ExitCode.VALIDATION_FAILED);
855
1015
  }
856
1016
  function createCheckDepsCommand() {
857
- const command = new Command7("check-deps").description("Validate dependency layers and detect circular dependencies").action(async (_opts, cmd) => {
1017
+ const command = new Command8("check-deps").description("Validate dependency layers and detect circular dependencies").action(async (_opts, cmd) => {
858
1018
  await runCheckDepsAction(cmd.optsWithGlobals());
859
1019
  });
860
1020
  return command;
861
1021
  }
862
1022
 
863
1023
  // src/commands/check-docs.ts
864
- import { Command as Command8 } from "commander";
1024
+ import { Command as Command9 } from "commander";
865
1025
  import * as path5 from "path";
866
1026
 
867
1027
  // src/utils/output.ts
@@ -949,7 +1109,7 @@ function printCheckDocsResult(value, mode, formatter) {
949
1109
  }
950
1110
  }
951
1111
  function createCheckDocsCommand() {
952
- const command = new Command8("check-docs").description("Check documentation coverage").option("--min-coverage <percent>", "Minimum coverage percentage", "80").action(async (opts, cmd) => {
1112
+ const command = new Command9("check-docs").description("Check documentation coverage").option("--min-coverage <percent>", "Minimum coverage percentage", "80").action(async (opts, cmd) => {
953
1113
  const globalOpts = cmd.optsWithGlobals();
954
1114
  const mode = resolveOutputMode2(globalOpts);
955
1115
  const formatter = new OutputFormatter(mode);
@@ -979,7 +1139,7 @@ function createCheckDocsCommand() {
979
1139
  }
980
1140
 
981
1141
  // src/commands/check-perf.ts
982
- import { Command as Command9 } from "commander";
1142
+ import { Command as Command10 } from "commander";
983
1143
  import * as path6 from "path";
984
1144
  async function runCheckPerf(cwd, options) {
985
1145
  const runAll2 = !options.structural && !options.size && !options.coupling;
@@ -1096,14 +1256,14 @@ async function runCheckPerfAction(opts, globalOpts) {
1096
1256
  process.exit(result.value.valid ? ExitCode.SUCCESS : ExitCode.VALIDATION_FAILED);
1097
1257
  }
1098
1258
  function createCheckPerfCommand() {
1099
- const command = new Command9("check-perf").description("Run performance checks: structural complexity, coupling, and size budgets").option("--structural", "Run structural complexity checks only").option("--coupling", "Run coupling metric checks only").option("--size", "Run size budget checks only").action(async (opts, cmd) => {
1259
+ const command = new Command10("check-perf").description("Run performance checks: structural complexity, coupling, and size budgets").option("--structural", "Run structural complexity checks only").option("--coupling", "Run coupling metric checks only").option("--size", "Run size budget checks only").action(async (opts, cmd) => {
1100
1260
  await runCheckPerfAction(opts, cmd.optsWithGlobals());
1101
1261
  });
1102
1262
  return command;
1103
1263
  }
1104
1264
 
1105
1265
  // src/commands/check-security.ts
1106
- import { Command as Command10 } from "commander";
1266
+ import { Command as Command11 } from "commander";
1107
1267
  import * as path7 from "path";
1108
1268
  import { execSync as execSync3 } from "child_process";
1109
1269
  var SEVERITY_RANK = {
@@ -1126,10 +1286,10 @@ async function runCheckSecurity(cwd, options) {
1126
1286
  const projectRoot = path7.resolve(cwd);
1127
1287
  let configData = {};
1128
1288
  try {
1129
- const fs34 = await import("fs");
1289
+ const fs36 = await import("fs");
1130
1290
  const configPath = path7.join(projectRoot, "harness.config.json");
1131
- if (fs34.existsSync(configPath)) {
1132
- const raw = fs34.readFileSync(configPath, "utf-8");
1291
+ if (fs36.existsSync(configPath)) {
1292
+ const raw = fs36.readFileSync(configPath, "utf-8");
1133
1293
  const parsed = JSON.parse(raw);
1134
1294
  configData = parsed.security ?? {};
1135
1295
  }
@@ -1198,7 +1358,7 @@ async function runCheckSecurityAction(opts, globalOpts) {
1198
1358
  process.exit(result.value.valid ? ExitCode.SUCCESS : ExitCode.VALIDATION_FAILED);
1199
1359
  }
1200
1360
  function createCheckSecurityCommand() {
1201
- const command = new Command10("check-security").description("Run lightweight security scan: secrets, injection, XSS, weak crypto").option("--severity <level>", "Minimum severity threshold", "warning").hook("preAction", (thisCommand) => {
1361
+ const command = new Command11("check-security").description("Run lightweight security scan: secrets, injection, XSS, weak crypto").option("--severity <level>", "Minimum severity threshold", "warning").hook("preAction", (thisCommand) => {
1202
1362
  const severity = thisCommand.opts().severity;
1203
1363
  if (!["error", "warning", "info"].includes(severity)) {
1204
1364
  logger.error(`Invalid severity: "${severity}". Must be one of: error, warning, info`);
@@ -1211,10 +1371,10 @@ function createCheckSecurityCommand() {
1211
1371
  }
1212
1372
 
1213
1373
  // src/commands/ci/index.ts
1214
- import { Command as Command13 } from "commander";
1374
+ import { Command as Command14 } from "commander";
1215
1375
 
1216
1376
  // src/commands/ci/check.ts
1217
- import { Command as Command11 } from "commander";
1377
+ import { Command as Command12 } from "commander";
1218
1378
  var VALID_CHECKS = [
1219
1379
  "validate",
1220
1380
  "deps",
@@ -1304,13 +1464,13 @@ async function runCheckAction(opts, globalOpts) {
1304
1464
  process.exit(report.exitCode);
1305
1465
  }
1306
1466
  function createCheckCommand() {
1307
- return new Command11("check").description("Run all harness checks for CI (validate, deps, docs, entropy, phase-gate, arch)").option("--skip <checks>", "Comma-separated checks to skip (e.g., entropy,docs)").option("--fail-on <severity>", "Fail on severity level: error (default) or warning", "error").action(async (opts, cmd) => {
1467
+ return new Command12("check").description("Run all harness checks for CI (validate, deps, docs, entropy, phase-gate, arch)").option("--skip <checks>", "Comma-separated checks to skip (e.g., entropy,docs)").option("--fail-on <severity>", "Fail on severity level: error (default) or warning", "error").action(async (opts, cmd) => {
1308
1468
  await runCheckAction(opts, cmd.optsWithGlobals());
1309
1469
  });
1310
1470
  }
1311
1471
 
1312
1472
  // src/commands/ci/init.ts
1313
- import { Command as Command12 } from "commander";
1473
+ import { Command as Command13 } from "commander";
1314
1474
  import * as fs2 from "fs";
1315
1475
  import * as path8 from "path";
1316
1476
  var ALL_CHECKS = [
@@ -1447,86 +1607,19 @@ async function runInitAction(opts, globalOpts) {
1447
1607
  }
1448
1608
  }
1449
1609
  function createInitCommand() {
1450
- return new Command12("init").description("Generate CI configuration for harness checks").option("--platform <platform>", "CI platform: github, gitlab, or generic").option("--checks <list>", "Comma-separated list of checks to include").action(async (opts, cmd) => {
1610
+ return new Command13("init").description("Generate CI configuration for harness checks").option("--platform <platform>", "CI platform: github, gitlab, or generic").option("--checks <list>", "Comma-separated list of checks to include").action(async (opts, cmd) => {
1451
1611
  await runInitAction(opts, cmd.optsWithGlobals());
1452
1612
  });
1453
1613
  }
1454
1614
 
1455
1615
  // src/commands/ci/index.ts
1456
1616
  function createCICommand() {
1457
- const command = new Command13("ci").description("CI/CD integration commands");
1617
+ const command = new Command14("ci").description("CI/CD integration commands");
1458
1618
  command.addCommand(createCheckCommand());
1459
1619
  command.addCommand(createInitCommand());
1460
1620
  return command;
1461
1621
  }
1462
1622
 
1463
- // src/commands/dashboard.ts
1464
- import { Command as Command14 } from "commander";
1465
- import { spawn } from "child_process";
1466
- import { existsSync as existsSync3 } from "fs";
1467
- import { dirname as dirname2, join as join5, resolve as resolve8 } from "path";
1468
- import { fileURLToPath } from "url";
1469
- var __filename = fileURLToPath(import.meta.url);
1470
- var __dirname = dirname2(__filename);
1471
- var DEFAULT_CLIENT_PORT = 3700;
1472
- var DEFAULT_API_PORT = 3701;
1473
- function openBrowser(url) {
1474
- const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
1475
- spawn(cmd, [url], { detached: true, stdio: "ignore" }).unref();
1476
- }
1477
- function resolveServerScript() {
1478
- const built = [
1479
- join5(__dirname, "..", "..", "..", "dashboard", "dist", "server", "serve.js"),
1480
- join5(__dirname, "..", "..", "..", "..", "packages", "dashboard", "dist", "server", "serve.js")
1481
- ].find((p) => existsSync3(p));
1482
- if (built) return { script: built, dev: false };
1483
- const dev = [
1484
- join5(__dirname, "..", "..", "..", "dashboard", "src", "server", "serve.ts"),
1485
- join5(__dirname, "..", "..", "..", "..", "packages", "dashboard", "src", "server", "serve.ts")
1486
- ].find((p) => existsSync3(p));
1487
- return dev ? { script: dev, dev: true } : null;
1488
- }
1489
- function spawnDashboardServer(server, env) {
1490
- const child = server.dev ? spawn("tsx", [server.script], { env, stdio: "inherit" }) : spawn("node", [server.script], { env, stdio: "inherit" });
1491
- child.on("error", (e) => {
1492
- console.error(`Failed to start dashboard: ${e.message}`);
1493
- process.exit(1);
1494
- });
1495
- child.on("exit", (code) => {
1496
- if (code !== 0 && code !== null) {
1497
- console.error(`Dashboard server exited with code ${code}`);
1498
- process.exit(code);
1499
- }
1500
- });
1501
- return child;
1502
- }
1503
- function runDashboard(opts) {
1504
- const clientPort = Number(opts.port ?? DEFAULT_CLIENT_PORT);
1505
- const apiPort = Number(opts.apiPort ?? DEFAULT_API_PORT);
1506
- const projectPath = resolve8(opts.cwd ?? process.cwd());
1507
- const url = `http://localhost:${clientPort}`;
1508
- const server = resolveServerScript();
1509
- if (!server) {
1510
- console.error("Could not locate the dashboard server. Run `pnpm build` in packages/dashboard.");
1511
- process.exit(1);
1512
- }
1513
- const env = {
1514
- ...process.env,
1515
- DASHBOARD_API_PORT: String(apiPort),
1516
- DASHBOARD_CLIENT_PORT: String(clientPort),
1517
- HARNESS_PROJECT_PATH: projectPath
1518
- };
1519
- spawnDashboardServer(server, env);
1520
- console.log(`Dashboard API starting on http://localhost:${apiPort}`);
1521
- console.log(`Open ${url} (pass --no-open to suppress)`);
1522
- if (opts.noOpen !== true) {
1523
- setTimeout(() => openBrowser(url), 1500);
1524
- }
1525
- }
1526
- function createDashboardCommand() {
1527
- return new Command14("dashboard").description("Start the Harness local web dashboard").option("--port <port>", "Client dev server port", String(DEFAULT_CLIENT_PORT)).option("--api-port <port>", "API server port", String(DEFAULT_API_PORT)).option("--no-open", "Do not automatically open browser").option("--cwd <path>", "Project directory (defaults to cwd)").action((opts) => runDashboard(opts));
1528
- }
1529
-
1530
1623
  // src/commands/cleanup.ts
1531
1624
  import { Command as Command15 } from "commander";
1532
1625
  import * as path9 from "path";
@@ -1646,11 +1739,197 @@ function createCleanupCommand() {
1646
1739
  return command;
1647
1740
  }
1648
1741
 
1649
- // src/commands/doctor.ts
1742
+ // src/commands/cleanup-sessions.ts
1650
1743
  import { Command as Command16 } from "commander";
1651
- import * as fs4 from "fs";
1744
+ import * as fs3 from "fs";
1745
+ import * as path10 from "path";
1746
+ var STALE_TTL_MS = 24 * 60 * 60 * 1e3;
1747
+ function getMostRecentMtime(dirPath) {
1748
+ let latest = 0;
1749
+ try {
1750
+ const entries = fs3.readdirSync(dirPath, { withFileTypes: true });
1751
+ for (const entry of entries) {
1752
+ const fullPath = path10.join(dirPath, entry.name);
1753
+ const stat = fs3.statSync(fullPath);
1754
+ if (stat.mtimeMs > latest) latest = stat.mtimeMs;
1755
+ }
1756
+ const dirStat = fs3.statSync(dirPath);
1757
+ if (dirStat.mtimeMs > latest) latest = dirStat.mtimeMs;
1758
+ } catch {
1759
+ }
1760
+ return latest;
1761
+ }
1762
+ async function runCleanupSessions(options) {
1763
+ const cwd = options.cwd ?? process.cwd();
1764
+ const dryRun = options.dryRun ?? false;
1765
+ const sessionsDir = path10.join(cwd, ".harness", "sessions");
1766
+ const result = { removed: [], kept: [] };
1767
+ if (!fs3.existsSync(sessionsDir)) {
1768
+ return Ok(result);
1769
+ }
1770
+ let entries;
1771
+ try {
1772
+ entries = fs3.readdirSync(sessionsDir, { withFileTypes: true });
1773
+ } catch (err) {
1774
+ return Err(
1775
+ new CLIError(
1776
+ `Failed to read sessions directory: ${err instanceof Error ? err.message : String(err)}`,
1777
+ ExitCode.ERROR
1778
+ )
1779
+ );
1780
+ }
1781
+ const now = Date.now();
1782
+ for (const entry of entries) {
1783
+ if (!entry.isDirectory()) continue;
1784
+ const sessionPath = path10.join(sessionsDir, entry.name);
1785
+ const mostRecent = getMostRecentMtime(sessionPath);
1786
+ const ageMs = now - mostRecent;
1787
+ if (ageMs > STALE_TTL_MS) {
1788
+ result.removed.push(entry.name);
1789
+ if (!dryRun) {
1790
+ try {
1791
+ fs3.rmSync(sessionPath, { recursive: true, force: true });
1792
+ } catch (err) {
1793
+ return Err(
1794
+ new CLIError(
1795
+ `Failed to remove session ${entry.name}: ${err instanceof Error ? err.message : String(err)}`,
1796
+ ExitCode.ERROR
1797
+ )
1798
+ );
1799
+ }
1800
+ }
1801
+ } else {
1802
+ result.kept.push(entry.name);
1803
+ }
1804
+ }
1805
+ return Ok(result);
1806
+ }
1807
+ function printResult(result, dryRun, asJson) {
1808
+ const { removed, kept } = result;
1809
+ if (asJson) {
1810
+ console.log(JSON.stringify({ removed, kept, dryRun }, null, 2));
1811
+ return;
1812
+ }
1813
+ if (removed.length === 0 && kept.length === 0) {
1814
+ console.log("No sessions found.");
1815
+ return;
1816
+ }
1817
+ if (removed.length > 0) {
1818
+ const label = dryRun ? "Stale (would remove)" : "Removed";
1819
+ console.log(`
1820
+ ${label} (${removed.length}):`);
1821
+ for (const s of removed) console.log(` - ${s}`);
1822
+ }
1823
+ if (kept.length > 0) {
1824
+ console.log(`
1825
+ Kept (${kept.length}):`);
1826
+ for (const s of kept) console.log(` - ${s}`);
1827
+ }
1828
+ if (!dryRun && removed.length > 0) {
1829
+ console.log(`
1830
+ Cleaned up ${removed.length} stale session(s).`);
1831
+ }
1832
+ }
1833
+ function createCleanupSessionsCommand() {
1834
+ const command = new Command16("cleanup-sessions").description("Remove stale session directories from .harness/sessions/ (no write in 24h)").option("--dry-run", "List stale sessions without deleting them", false).option("--path <path>", "Project root path", ".").action(async (opts, cmd) => {
1835
+ const globalOpts = cmd.optsWithGlobals();
1836
+ const cwd = path10.resolve(opts.path);
1837
+ const result = await runCleanupSessions({ cwd, dryRun: opts.dryRun });
1838
+ if (!result.ok) {
1839
+ logger.error(result.error.message);
1840
+ process.exit(result.error.exitCode);
1841
+ return;
1842
+ }
1843
+ printResult(result.value, opts.dryRun, globalOpts.json);
1844
+ process.exit(ExitCode.SUCCESS);
1845
+ });
1846
+ return command;
1847
+ }
1848
+
1849
+ // src/commands/dashboard.ts
1850
+ import { Command as Command17 } from "commander";
1851
+ import { spawn } from "child_process";
1852
+ import { existsSync as existsSync4 } from "fs";
1853
+ import { createRequire } from "module";
1854
+ import { dirname as dirname2, join as join7, resolve as resolve10 } from "path";
1855
+ import { setTimeout } from "timers";
1856
+ import { fileURLToPath } from "url";
1857
+ var __filename = fileURLToPath(import.meta.url);
1858
+ var __dirname = dirname2(__filename);
1859
+ var require2 = createRequire(import.meta.url);
1860
+ var DEFAULT_CLIENT_PORT = 3700;
1861
+ var DEFAULT_API_PORT = 3701;
1862
+ function openBrowser(url) {
1863
+ const cmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
1864
+ spawn(cmd, [url], { detached: true, stdio: "ignore" }).unref();
1865
+ }
1866
+ function resolveServerScript() {
1867
+ try {
1868
+ const pkgPath = require2.resolve("@harness-engineering/dashboard/package.json");
1869
+ const pkgDir = dirname2(pkgPath);
1870
+ const built2 = join7(pkgDir, "dist", "server", "serve.js");
1871
+ if (existsSync4(built2)) return { script: built2, dev: false };
1872
+ const dev2 = join7(pkgDir, "src", "server", "serve.ts");
1873
+ if (existsSync4(dev2)) return { script: dev2, dev: true };
1874
+ } catch {
1875
+ }
1876
+ const built = [
1877
+ join7(__dirname, "..", "..", "..", "dashboard", "dist", "server", "serve.js"),
1878
+ join7(__dirname, "..", "..", "..", "..", "packages", "dashboard", "dist", "server", "serve.js")
1879
+ ].find((p) => existsSync4(p));
1880
+ if (built) return { script: built, dev: false };
1881
+ const dev = [
1882
+ join7(__dirname, "..", "..", "..", "dashboard", "src", "server", "serve.ts"),
1883
+ join7(__dirname, "..", "..", "..", "..", "packages", "dashboard", "src", "server", "serve.ts")
1884
+ ].find((p) => existsSync4(p));
1885
+ return dev ? { script: dev, dev: true } : null;
1886
+ }
1887
+ function spawnDashboardServer(server, env) {
1888
+ const child = server.dev ? spawn("tsx", [server.script], { env, stdio: "inherit" }) : spawn("node", [server.script], { env, stdio: "inherit" });
1889
+ child.on("error", (e) => {
1890
+ console.error(`Failed to start dashboard: ${e.message}`);
1891
+ process.exit(1);
1892
+ });
1893
+ child.on("exit", (code) => {
1894
+ if (code !== 0 && code !== null) {
1895
+ console.error(`Dashboard server exited with code ${code}`);
1896
+ process.exit(code);
1897
+ }
1898
+ });
1899
+ return child;
1900
+ }
1901
+ function runDashboard(opts) {
1902
+ const clientPort = Number(opts.port ?? DEFAULT_CLIENT_PORT);
1903
+ const apiPort = Number(opts.apiPort ?? DEFAULT_API_PORT);
1904
+ const projectPath = resolve10(opts.cwd ?? process.cwd());
1905
+ const url = `http://localhost:${apiPort}`;
1906
+ const server = resolveServerScript();
1907
+ if (!server) {
1908
+ console.error("Could not locate the dashboard server. Run `pnpm build` in packages/dashboard.");
1909
+ process.exit(1);
1910
+ }
1911
+ const env = {
1912
+ ...process.env,
1913
+ DASHBOARD_API_PORT: String(apiPort),
1914
+ DASHBOARD_CLIENT_PORT: String(clientPort),
1915
+ HARNESS_PROJECT_PATH: projectPath
1916
+ };
1917
+ spawnDashboardServer(server, env);
1918
+ console.log(`Dashboard API starting on http://localhost:${apiPort}`);
1919
+ console.log(`Open ${url} (pass --no-open to suppress)`);
1920
+ if (opts.noOpen !== true) {
1921
+ setTimeout(() => openBrowser(url), 1500);
1922
+ }
1923
+ }
1924
+ function createDashboardCommand() {
1925
+ return new Command17("dashboard").description("Start the Harness local web dashboard").option("--port <port>", "Client dev server port", String(DEFAULT_CLIENT_PORT)).option("--api-port <port>", "API server port", String(DEFAULT_API_PORT)).option("--no-open", "Do not automatically open browser").option("--cwd <path>", "Project directory (defaults to cwd)").action((opts) => runDashboard(opts));
1926
+ }
1927
+
1928
+ // src/commands/doctor.ts
1929
+ import { Command as Command18 } from "commander";
1930
+ import * as fs5 from "fs";
1652
1931
  import * as os from "os";
1653
- import * as path11 from "path";
1932
+ import * as path12 from "path";
1654
1933
  import chalk from "chalk";
1655
1934
 
1656
1935
  // src/utils/node-version.ts
@@ -1733,24 +2012,24 @@ var INTEGRATION_REGISTRY = [
1733
2012
  ];
1734
2013
 
1735
2014
  // src/integrations/config.ts
1736
- import * as fs3 from "fs";
1737
- import * as path10 from "path";
2015
+ import * as fs4 from "fs";
2016
+ import * as path11 from "path";
1738
2017
  function readJsonSafe(filePath) {
1739
- if (!fs3.existsSync(filePath)) return null;
2018
+ if (!fs4.existsSync(filePath)) return null;
1740
2019
  try {
1741
- return JSON.parse(fs3.readFileSync(filePath, "utf-8"));
2020
+ return JSON.parse(fs4.readFileSync(filePath, "utf-8"));
1742
2021
  } catch {
1743
2022
  return null;
1744
2023
  }
1745
2024
  }
1746
2025
  function writeJson(filePath, data) {
1747
- const dir = path10.dirname(filePath);
1748
- if (!fs3.existsSync(dir)) {
1749
- fs3.mkdirSync(dir, { recursive: true });
2026
+ const dir = path11.dirname(filePath);
2027
+ if (!fs4.existsSync(dir)) {
2028
+ fs4.mkdirSync(dir, { recursive: true });
1750
2029
  }
1751
2030
  const tmp = filePath + ".tmp";
1752
- fs3.writeFileSync(tmp, JSON.stringify(data, null, 2) + "\n");
1753
- fs3.renameSync(tmp, filePath);
2031
+ fs4.writeFileSync(tmp, JSON.stringify(data, null, 2) + "\n");
2032
+ fs4.renameSync(tmp, filePath);
1754
2033
  }
1755
2034
  function readMcpConfig(filePath) {
1756
2035
  const config = readJsonSafe(filePath);
@@ -1764,7 +2043,7 @@ function writeMcpEntry(filePath, name, entry) {
1764
2043
  writeJson(filePath, config);
1765
2044
  }
1766
2045
  function removeMcpEntry(filePath, name) {
1767
- if (!fs3.existsSync(filePath)) return;
2046
+ if (!fs4.existsSync(filePath)) return;
1768
2047
  const config = readMcpConfig(filePath);
1769
2048
  delete config.mcpServers[name];
1770
2049
  writeJson(filePath, config);
@@ -1803,7 +2082,7 @@ function checkNodeVersion2() {
1803
2082
  }
1804
2083
  function countCommandFiles(dir, ext) {
1805
2084
  try {
1806
- return fs4.readdirSync(dir).filter((f) => f.endsWith(ext)).length;
2085
+ return fs5.readdirSync(dir).filter((f) => f.endsWith(ext)).length;
1807
2086
  } catch {
1808
2087
  return 0;
1809
2088
  }
@@ -1812,13 +2091,13 @@ function checkSlashCommands() {
1812
2091
  const platforms = [
1813
2092
  {
1814
2093
  name: "Claude Code",
1815
- dir: path11.join(os.homedir(), ".claude", "commands", "harness"),
2094
+ dir: path12.join(os.homedir(), ".claude", "commands", "harness"),
1816
2095
  ext: ".md",
1817
2096
  client: "claude-code"
1818
2097
  },
1819
2098
  {
1820
2099
  name: "Gemini CLI",
1821
- dir: path11.join(os.homedir(), ".gemini", "commands", "harness"),
2100
+ dir: path12.join(os.homedir(), ".gemini", "commands", "harness"),
1822
2101
  ext: ".toml",
1823
2102
  client: "gemini-cli"
1824
2103
  }
@@ -1842,7 +2121,7 @@ function checkSlashCommands() {
1842
2121
  }
1843
2122
  function checkMcpConfig(cwd) {
1844
2123
  const results = [];
1845
- const claudeConfig = readMcpConfig(path11.join(cwd, ".mcp.json"));
2124
+ const claudeConfig = readMcpConfig(path12.join(cwd, ".mcp.json"));
1846
2125
  if (claudeConfig.mcpServers?.["harness"]) {
1847
2126
  results.push({
1848
2127
  name: "mcp-claude",
@@ -1857,9 +2136,9 @@ function checkMcpConfig(cwd) {
1857
2136
  fix: "Run: harness setup-mcp --client claude"
1858
2137
  });
1859
2138
  }
1860
- const geminiDir = path11.join(cwd, ".gemini");
1861
- if (fs4.existsSync(geminiDir)) {
1862
- const geminiConfig = readMcpConfig(path11.join(geminiDir, "settings.json"));
2139
+ const geminiDir = path12.join(cwd, ".gemini");
2140
+ if (fs5.existsSync(geminiDir)) {
2141
+ const geminiConfig = readMcpConfig(path12.join(geminiDir, "settings.json"));
1863
2142
  if (geminiConfig.mcpServers?.["harness"]) {
1864
2143
  results.push({
1865
2144
  name: "mcp-gemini",
@@ -1878,12 +2157,12 @@ function checkMcpConfig(cwd) {
1878
2157
  return results;
1879
2158
  }
1880
2159
  function loadMcpPresence(cwd) {
1881
- const mcpPath = path11.join(cwd, ".mcp.json");
1882
- const geminiDir = path11.join(cwd, ".gemini");
1883
- const hasGemini = fs4.existsSync(geminiDir);
2160
+ const mcpPath = path12.join(cwd, ".mcp.json");
2161
+ const geminiDir = path12.join(cwd, ".gemini");
2162
+ const hasGemini = fs5.existsSync(geminiDir);
1884
2163
  return {
1885
2164
  mcpConfig: readMcpConfig(mcpPath),
1886
- geminiConfig: hasGemini ? readMcpConfig(path11.join(geminiDir, "settings.json")) : null,
2165
+ geminiConfig: hasGemini ? readMcpConfig(path12.join(geminiDir, "settings.json")) : null,
1887
2166
  hasGemini
1888
2167
  };
1889
2168
  }
@@ -1915,7 +2194,7 @@ function checkTier0Presence(def, presence) {
1915
2194
  function checkIntegrations(cwd) {
1916
2195
  const results = [];
1917
2196
  const presence = loadMcpPresence(cwd);
1918
- const configPath = path11.join(cwd, "harness.config.json");
2197
+ const configPath = path12.join(cwd, "harness.config.json");
1919
2198
  const integrationsConfig = readIntegrationsConfig(configPath);
1920
2199
  for (const def of INTEGRATION_REGISTRY.filter((d) => d.tier === 0)) {
1921
2200
  results.push(checkTier0Presence(def, presence));
@@ -1965,7 +2244,7 @@ function formatCheck(check) {
1965
2244
  return line;
1966
2245
  }
1967
2246
  function createDoctorCommand() {
1968
- return new Command16("doctor").description("Check environment health: Node version, slash commands, MCP configuration").action((_opts, cmd) => {
2247
+ return new Command18("doctor").description("Check environment health: Node version, slash commands, MCP configuration").action((_opts, cmd) => {
1969
2248
  const globalOpts = cmd.optsWithGlobals();
1970
2249
  const cwd = process.cwd();
1971
2250
  const useJson = globalOpts.json;
@@ -1990,8 +2269,8 @@ function createDoctorCommand() {
1990
2269
  }
1991
2270
 
1992
2271
  // src/commands/fix-drift.ts
1993
- import { Command as Command17 } from "commander";
1994
- import * as path12 from "path";
2272
+ import { Command as Command19 } from "commander";
2273
+ import * as path13 from "path";
1995
2274
  async function runFixDrift(options) {
1996
2275
  const cwd = options.cwd ?? process.cwd();
1997
2276
  const dryRun = options.dryRun !== false;
@@ -2000,11 +2279,11 @@ async function runFixDrift(options) {
2000
2279
  return Err(configResult.error);
2001
2280
  }
2002
2281
  const config = configResult.value;
2003
- const rootDir = path12.resolve(cwd, config.rootDir);
2004
- const docsDir = path12.resolve(cwd, config.docsDir);
2282
+ const rootDir = path13.resolve(cwd, config.rootDir);
2283
+ const docsDir = path13.resolve(cwd, config.docsDir);
2005
2284
  const entropyConfig = {
2006
2285
  rootDir,
2007
- entryPoints: [path12.join(rootDir, "src/index.ts")],
2286
+ entryPoints: [path13.join(rootDir, "src/index.ts")],
2008
2287
  docPaths: [docsDir],
2009
2288
  analyze: {
2010
2289
  drift: true,
@@ -2123,7 +2402,7 @@ function printFixDriftResult(value, mode, formatter) {
2123
2402
  }
2124
2403
  }
2125
2404
  function createFixDriftCommand() {
2126
- const command = new Command17("fix-drift").description("Auto-fix entropy issues (doc drift, dead code)").option("--no-dry-run", "Actually apply fixes (default is dry-run mode)").action(async (opts, cmd) => {
2405
+ const command = new Command19("fix-drift").description("Auto-fix entropy issues (doc drift, dead code)").option("--no-dry-run", "Actually apply fixes (default is dry-run mode)").action(async (opts, cmd) => {
2127
2406
  const globalOpts = cmd.optsWithGlobals();
2128
2407
  const mode = resolveOutputMode2(globalOpts);
2129
2408
  const formatter = new OutputFormatter(mode);
@@ -2153,7 +2432,7 @@ function createFixDriftCommand() {
2153
2432
  }
2154
2433
 
2155
2434
  // src/commands/generate.ts
2156
- import { Command as Command18 } from "commander";
2435
+ import { Command as Command20 } from "commander";
2157
2436
  function validatePlatforms(platforms) {
2158
2437
  for (const p of platforms) {
2159
2438
  if (!VALID_PLATFORMS.includes(p)) {
@@ -2213,27 +2492,27 @@ async function runGenerateAction(opts, globalOpts) {
2213
2492
  }
2214
2493
  }
2215
2494
  function createGenerateCommand() {
2216
- return new Command18("generate").description("Generate all platform integrations (slash commands + agent definitions)").option("--platforms <list>", "Target platforms (comma-separated)", "claude-code,gemini-cli").option("--global", "Write to global directories", false).option("--include-global", "Include built-in global skills", false).option("--output <dir>", "Custom output directory").option("--dry-run", "Show what would change without writing", false).option("--yes", "Skip deletion confirmation prompts", false).action(async (opts, cmd) => {
2495
+ return new Command20("generate").description("Generate all platform integrations (slash commands + agent definitions)").option("--platforms <list>", "Target platforms (comma-separated)", "claude-code,gemini-cli").option("--global", "Write to global directories", false).option("--include-global", "Include built-in global skills", false).option("--output <dir>", "Custom output directory").option("--dry-run", "Show what would change without writing", false).option("--yes", "Skip deletion confirmation prompts", false).action(async (opts, cmd) => {
2217
2496
  await runGenerateAction(opts, cmd.optsWithGlobals());
2218
2497
  });
2219
2498
  }
2220
2499
 
2221
2500
  // src/commands/graph/index.ts
2222
- import { Command as Command22 } from "commander";
2501
+ import { Command as Command23 } from "commander";
2223
2502
 
2224
2503
  // src/commands/graph/status.ts
2225
- import * as path13 from "path";
2504
+ import * as path14 from "path";
2226
2505
  async function runGraphStatus(projectPath) {
2227
- const { GraphStore } = await import("./dist-M6FBUXZD.js");
2228
- const graphDir = path13.join(projectPath, ".harness", "graph");
2506
+ const { GraphStore } = await import("./dist-QW5G3GX3.js");
2507
+ const graphDir = path14.join(projectPath, ".harness", "graph");
2229
2508
  const store = new GraphStore();
2230
2509
  const loaded = await store.load(graphDir);
2231
2510
  if (!loaded) return { status: "no_graph", message: "No graph found. Run `harness scan` first." };
2232
- const fs34 = await import("fs/promises");
2233
- const metaPath = path13.join(graphDir, "metadata.json");
2511
+ const fs36 = await import("fs/promises");
2512
+ const metaPath = path14.join(graphDir, "metadata.json");
2234
2513
  let lastScan = "unknown";
2235
2514
  try {
2236
- const meta = JSON.parse(await fs34.readFile(metaPath, "utf-8"));
2515
+ const meta = JSON.parse(await fs36.readFile(metaPath, "utf-8"));
2237
2516
  lastScan = meta.lastScanTimestamp;
2238
2517
  } catch {
2239
2518
  }
@@ -2244,8 +2523,8 @@ async function runGraphStatus(projectPath) {
2244
2523
  }
2245
2524
  let connectorSyncStatus = {};
2246
2525
  try {
2247
- const syncMetaPath = path13.join(graphDir, "sync-metadata.json");
2248
- const syncMeta = JSON.parse(await fs34.readFile(syncMetaPath, "utf-8"));
2526
+ const syncMetaPath = path14.join(graphDir, "sync-metadata.json");
2527
+ const syncMeta = JSON.parse(await fs36.readFile(syncMetaPath, "utf-8"));
2249
2528
  for (const [name, data] of Object.entries(syncMeta.connectors ?? {})) {
2250
2529
  connectorSyncStatus[name] = data.lastSyncTimestamp;
2251
2530
  }
@@ -2262,10 +2541,10 @@ async function runGraphStatus(projectPath) {
2262
2541
  }
2263
2542
 
2264
2543
  // src/commands/graph/export.ts
2265
- import * as path14 from "path";
2544
+ import * as path15 from "path";
2266
2545
  async function runGraphExport(projectPath, format) {
2267
- const { GraphStore } = await import("./dist-M6FBUXZD.js");
2268
- const graphDir = path14.join(projectPath, ".harness", "graph");
2546
+ const { GraphStore } = await import("./dist-QW5G3GX3.js");
2547
+ const graphDir = path15.join(projectPath, ".harness", "graph");
2269
2548
  const store = new GraphStore();
2270
2549
  const loaded = await store.load(graphDir);
2271
2550
  if (!loaded) throw new Error("No graph found. Run `harness scan` first.");
@@ -2296,50 +2575,11 @@ async function runGraphExport(projectPath, format) {
2296
2575
  // src/commands/graph/index.ts
2297
2576
  import * as path18 from "path";
2298
2577
 
2299
- // src/commands/graph/scan.ts
2300
- import { Command as Command19 } from "commander";
2301
- import * as path15 from "path";
2302
- async function runScan(projectPath) {
2303
- const { GraphStore, CodeIngestor, TopologicalLinker, KnowledgeIngestor, GitIngestor } = await import("./dist-M6FBUXZD.js");
2304
- const store = new GraphStore();
2305
- const start = Date.now();
2306
- await new CodeIngestor(store).ingest(projectPath);
2307
- new TopologicalLinker(store).link();
2308
- const knowledgeIngestor = new KnowledgeIngestor(store);
2309
- await knowledgeIngestor.ingestAll(projectPath);
2310
- try {
2311
- await new GitIngestor(store).ingest(projectPath);
2312
- } catch {
2313
- }
2314
- const graphDir = path15.join(projectPath, ".harness", "graph");
2315
- await store.save(graphDir);
2316
- return { nodeCount: store.nodeCount, edgeCount: store.edgeCount, durationMs: Date.now() - start };
2317
- }
2318
- function createScanCommand() {
2319
- return new Command19("scan").description("Scan project and build knowledge graph").argument("[path]", "Project root path", ".").action(async (inputPath, _opts, cmd) => {
2320
- const projectPath = path15.resolve(inputPath);
2321
- const globalOpts = cmd.optsWithGlobals();
2322
- try {
2323
- const result = await runScan(projectPath);
2324
- if (globalOpts.json) {
2325
- console.log(JSON.stringify(result));
2326
- } else {
2327
- console.log(
2328
- `Graph built: ${result.nodeCount} nodes, ${result.edgeCount} edges (${result.durationMs}ms)`
2329
- );
2330
- }
2331
- } catch (err) {
2332
- console.error("Scan failed:", err instanceof Error ? err.message : err);
2333
- process.exit(2);
2334
- }
2335
- });
2336
- }
2337
-
2338
2578
  // src/commands/graph/query.ts
2339
- import { Command as Command20 } from "commander";
2579
+ import { Command as Command21 } from "commander";
2340
2580
  import * as path16 from "path";
2341
2581
  async function runQuery(projectPath, rootNodeId, opts) {
2342
- const { GraphStore, ContextQL } = await import("./dist-M6FBUXZD.js");
2582
+ const { GraphStore, ContextQL } = await import("./dist-QW5G3GX3.js");
2343
2583
  const store = new GraphStore();
2344
2584
  const graphDir = path16.join(projectPath, ".harness", "graph");
2345
2585
  const loaded = await store.load(graphDir);
@@ -2382,23 +2622,21 @@ async function runQueryAction(rootNodeId, opts, globalOpts) {
2382
2622
  }
2383
2623
  }
2384
2624
  function createQueryCommand() {
2385
- return new Command20("query").description("Query the knowledge graph").argument("<rootNodeId>", "Starting node ID").option("--depth <n>", "Max traversal depth", "3").option("--types <types>", "Comma-separated node types to include").option("--edges <edges>", "Comma-separated edge types to include").option("--bidirectional", "Traverse both directions").action(async (rootNodeId, opts, cmd) => {
2625
+ return new Command21("query").description("Query the knowledge graph").argument("<rootNodeId>", "Starting node ID").option("--depth <n>", "Max traversal depth", "3").option("--types <types>", "Comma-separated node types to include").option("--edges <edges>", "Comma-separated edge types to include").option("--bidirectional", "Traverse both directions").action(async (rootNodeId, opts, cmd) => {
2386
2626
  await runQueryAction(rootNodeId, opts, cmd.optsWithGlobals());
2387
2627
  });
2388
2628
  }
2389
2629
 
2390
2630
  // src/commands/graph/ingest.ts
2391
- import { Command as Command21 } from "commander";
2631
+ import { Command as Command22 } from "commander";
2392
2632
  import * as path17 from "path";
2393
2633
  async function loadConnectorConfig(projectPath, source) {
2394
2634
  try {
2395
- const fs34 = await import("fs/promises");
2635
+ const fs36 = await import("fs/promises");
2396
2636
  const configPath = path17.join(projectPath, "harness.config.json");
2397
- const config = JSON.parse(await fs34.readFile(configPath, "utf-8"));
2398
- const connector = config.graph?.connectors?.find(
2399
- (c) => c.source === source
2400
- );
2401
- return connector?.config ?? {};
2637
+ const config = JSON.parse(await fs36.readFile(configPath, "utf-8"));
2638
+ const connector = config.graph?.connectors?.[source];
2639
+ return connector ?? {};
2402
2640
  } catch {
2403
2641
  return {};
2404
2642
  }
@@ -2432,8 +2670,10 @@ async function runIngest(projectPath, source, opts) {
2432
2670
  GitIngestor,
2433
2671
  SyncManager,
2434
2672
  JiraConnector,
2435
- SlackConnector
2436
- } = await import("./dist-M6FBUXZD.js");
2673
+ SlackConnector,
2674
+ CIConnector,
2675
+ ConfluenceConnector
2676
+ } = await import("./dist-QW5G3GX3.js");
2437
2677
  const graphDir = path17.join(projectPath, ".harness", "graph");
2438
2678
  const store = new GraphStore();
2439
2679
  await store.load(graphDir);
@@ -2446,7 +2686,9 @@ async function runIngest(projectPath, source, opts) {
2446
2686
  const syncManager = new SyncManager(store, graphDir);
2447
2687
  const connectorMap = {
2448
2688
  jira: () => new JiraConnector(),
2449
- slack: () => new SlackConnector()
2689
+ slack: () => new SlackConnector(),
2690
+ ci: () => new CIConnector(),
2691
+ confluence: () => new ConfluenceConnector()
2450
2692
  };
2451
2693
  for (const [name, factory] of Object.entries(connectorMap)) {
2452
2694
  const config = await loadConnectorConfig(projectPath, name);
@@ -2470,9 +2712,11 @@ async function runIngest(projectPath, source, opts) {
2470
2712
  result = await new GitIngestor(store).ingest(projectPath);
2471
2713
  break;
2472
2714
  default: {
2473
- const knownConnectors = ["jira", "slack"];
2715
+ const knownConnectors = ["jira", "slack", "ci", "confluence"];
2474
2716
  if (!knownConnectors.includes(source)) {
2475
- throw new Error(`Unknown source: ${source}. Available: code, knowledge, git, jira, slack`);
2717
+ throw new Error(
2718
+ `Unknown source: ${source}. Available: code, knowledge, git, jira, slack, ci, confluence`
2719
+ );
2476
2720
  }
2477
2721
  if (!SyncManager) {
2478
2722
  throw new Error(
@@ -2482,7 +2726,9 @@ async function runIngest(projectPath, source, opts) {
2482
2726
  const syncManager = new SyncManager(store, graphDir);
2483
2727
  const extConnectorMap = {
2484
2728
  jira: () => new JiraConnector(),
2485
- slack: () => new SlackConnector()
2729
+ slack: () => new SlackConnector(),
2730
+ ci: () => new CIConnector(),
2731
+ confluence: () => new ConfluenceConnector()
2486
2732
  };
2487
2733
  const factory = extConnectorMap[source];
2488
2734
  const config = await loadConnectorConfig(projectPath, source);
@@ -2495,7 +2741,10 @@ async function runIngest(projectPath, source, opts) {
2495
2741
  return result;
2496
2742
  }
2497
2743
  function createIngestCommand() {
2498
- return new Command21("ingest").description("Ingest data into the knowledge graph").option("--source <name>", "Source to ingest (code, knowledge, git, jira, slack)").option("--all", "Run all sources (code, knowledge, git, and configured connectors)").option("--full", "Force full re-ingestion").action(async (opts, cmd) => {
2744
+ return new Command22("ingest").description("Ingest data into the knowledge graph").option(
2745
+ "--source <name>",
2746
+ "Source to ingest (code, knowledge, git, jira, slack, ci, confluence)"
2747
+ ).option("--all", "Run all sources (code, knowledge, git, and configured connectors)").option("--full", "Force full re-ingestion").action(async (opts, cmd) => {
2499
2748
  if (!opts.source && !opts.all) {
2500
2749
  console.error("Error: --source or --all is required");
2501
2750
  process.exit(1);
@@ -2568,18 +2817,18 @@ async function runExportAction(opts, cmd) {
2568
2817
  }
2569
2818
  }
2570
2819
  function createGraphCommand() {
2571
- const graph = new Command22("graph").description("Knowledge graph management");
2820
+ const graph = new Command23("graph").description("Knowledge graph management");
2572
2821
  graph.command("status").description("Show graph statistics").action(runStatusAction);
2573
2822
  graph.command("export").description("Export graph").requiredOption("--format <format>", "Output format (json, mermaid)").action(runExportAction);
2574
2823
  return graph;
2575
2824
  }
2576
2825
 
2577
2826
  // src/commands/hooks/index.ts
2578
- import { Command as Command27 } from "commander";
2827
+ import { Command as Command28 } from "commander";
2579
2828
 
2580
2829
  // src/commands/hooks/init.ts
2581
- import { Command as Command23 } from "commander";
2582
- import * as fs5 from "fs";
2830
+ import { Command as Command24 } from "commander";
2831
+ import * as fs6 from "fs";
2583
2832
  import * as path19 from "path";
2584
2833
  import { fileURLToPath as fileURLToPath2 } from "url";
2585
2834
 
@@ -2589,6 +2838,8 @@ var HOOK_SCRIPTS = [
2589
2838
  { name: "protect-config", event: "PreToolUse", matcher: "Write|Edit", minProfile: "standard" },
2590
2839
  { name: "quality-gate", event: "PostToolUse", matcher: "Edit|Write", minProfile: "standard" },
2591
2840
  { name: "pre-compact-state", event: "PreCompact", matcher: "*", minProfile: "standard" },
2841
+ { name: "adoption-tracker", event: "Stop", matcher: "*", minProfile: "standard" },
2842
+ { name: "telemetry-reporter", event: "Stop", matcher: "*", minProfile: "standard" },
2592
2843
  { name: "cost-tracker", event: "Stop", matcher: "*", minProfile: "strict" },
2593
2844
  { name: "sentinel-pre", event: "PreToolUse", matcher: "*", minProfile: "strict" },
2594
2845
  { name: "sentinel-post", event: "PostToolUse", matcher: "*", minProfile: "strict" }
@@ -2612,7 +2863,7 @@ var __dirname2 = path19.dirname(__filename2);
2612
2863
  var VALID_PROFILES = ["minimal", "standard", "strict"];
2613
2864
  function resolveHookSourceDir() {
2614
2865
  const candidate = path19.resolve(__dirname2, "..", "..", "hooks");
2615
- if (fs5.existsSync(candidate)) {
2866
+ if (fs6.existsSync(candidate)) {
2616
2867
  return candidate;
2617
2868
  }
2618
2869
  throw new Error(`Cannot locate hook scripts directory. Expected at: ${candidate}`);
@@ -2641,11 +2892,11 @@ function mergeSettings(existing, hooksConfig) {
2641
2892
  function initHooks(options) {
2642
2893
  const { profile, projectDir } = options;
2643
2894
  const hooksDestDir = path19.join(projectDir, ".harness", "hooks");
2644
- fs5.mkdirSync(hooksDestDir, { recursive: true });
2645
- if (fs5.existsSync(hooksDestDir)) {
2646
- for (const entry of fs5.readdirSync(hooksDestDir)) {
2895
+ fs6.mkdirSync(hooksDestDir, { recursive: true });
2896
+ if (fs6.existsSync(hooksDestDir)) {
2897
+ for (const entry of fs6.readdirSync(hooksDestDir)) {
2647
2898
  if (entry.endsWith(".js")) {
2648
- fs5.unlinkSync(path19.join(hooksDestDir, entry));
2899
+ fs6.unlinkSync(path19.join(hooksDestDir, entry));
2649
2900
  }
2650
2901
  }
2651
2902
  }
@@ -2656,20 +2907,20 @@ function initHooks(options) {
2656
2907
  for (const script of activeScripts) {
2657
2908
  const srcFile = path19.join(sourceDir, `${script.name}.js`);
2658
2909
  const destFile = path19.join(hooksDestDir, `${script.name}.js`);
2659
- if (fs5.existsSync(srcFile)) {
2660
- fs5.copyFileSync(srcFile, destFile);
2910
+ if (fs6.existsSync(srcFile)) {
2911
+ fs6.copyFileSync(srcFile, destFile);
2661
2912
  copiedScripts.push(script.name);
2662
2913
  }
2663
2914
  }
2664
2915
  const profilePath = path19.join(hooksDestDir, "profile.json");
2665
- fs5.writeFileSync(profilePath, JSON.stringify({ profile }, null, 2) + "\n");
2916
+ fs6.writeFileSync(profilePath, JSON.stringify({ profile }, null, 2) + "\n");
2666
2917
  const claudeDir = path19.join(projectDir, ".claude");
2667
- fs5.mkdirSync(claudeDir, { recursive: true });
2918
+ fs6.mkdirSync(claudeDir, { recursive: true });
2668
2919
  const settingsPath = path19.join(claudeDir, "settings.json");
2669
2920
  let existing = {};
2670
- if (fs5.existsSync(settingsPath)) {
2921
+ if (fs6.existsSync(settingsPath)) {
2671
2922
  try {
2672
- existing = JSON.parse(fs5.readFileSync(settingsPath, "utf-8"));
2923
+ existing = JSON.parse(fs6.readFileSync(settingsPath, "utf-8"));
2673
2924
  } catch (e) {
2674
2925
  throw new Error(
2675
2926
  `Malformed .claude/settings.json \u2014 fix the JSON syntax before running hooks init. Parse error: ${e instanceof Error ? e.message : String(e)}`,
@@ -2679,11 +2930,11 @@ function initHooks(options) {
2679
2930
  }
2680
2931
  const hooksConfig = buildSettingsHooks(profile);
2681
2932
  const merged = mergeSettings(existing, hooksConfig);
2682
- fs5.writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + "\n");
2933
+ fs6.writeFileSync(settingsPath, JSON.stringify(merged, null, 2) + "\n");
2683
2934
  return { copiedScripts, settingsPath, profilePath };
2684
2935
  }
2685
2936
  function createInitCommand2() {
2686
- return new Command23("init").description("Install Claude Code hook configurations into the current project").option("--profile <profile>", "Hook profile: minimal, standard, or strict", "standard").action(async (opts, cmd) => {
2937
+ return new Command24("init").description("Install Claude Code hook configurations into the current project").option("--profile <profile>", "Hook profile: minimal, standard, or strict", "standard").action(async (opts, cmd) => {
2687
2938
  const globalOpts = cmd.optsWithGlobals();
2688
2939
  const profile = opts.profile;
2689
2940
  if (!VALID_PROFILES.includes(profile)) {
@@ -2719,19 +2970,19 @@ function createInitCommand2() {
2719
2970
  }
2720
2971
 
2721
2972
  // src/commands/hooks/list.ts
2722
- import { Command as Command24 } from "commander";
2723
- import * as fs6 from "fs";
2973
+ import { Command as Command25 } from "commander";
2974
+ import * as fs7 from "fs";
2724
2975
  import * as path20 from "path";
2725
2976
  function listHooks(projectDir) {
2726
2977
  const hooksDir = path20.join(projectDir, ".harness", "hooks");
2727
2978
  const profilePath = path20.join(hooksDir, "profile.json");
2728
- if (!fs6.existsSync(profilePath)) {
2979
+ if (!fs7.existsSync(profilePath)) {
2729
2980
  return { installed: false, profile: null, hooks: [] };
2730
2981
  }
2731
2982
  let profile = "standard";
2732
2983
  let warning;
2733
2984
  try {
2734
- const data = JSON.parse(fs6.readFileSync(profilePath, "utf-8"));
2985
+ const data = JSON.parse(fs7.readFileSync(profilePath, "utf-8"));
2735
2986
  if (data.profile && ["minimal", "standard", "strict"].includes(data.profile)) {
2736
2987
  profile = data.profile;
2737
2988
  }
@@ -2752,7 +3003,7 @@ function listHooks(projectDir) {
2752
3003
  return result;
2753
3004
  }
2754
3005
  function createListCommand() {
2755
- return new Command24("list").description("Show installed hooks and active profile").action(async (_opts, cmd) => {
3006
+ return new Command25("list").description("Show installed hooks and active profile").action(async (_opts, cmd) => {
2756
3007
  const globalOpts = cmd.optsWithGlobals();
2757
3008
  const projectDir = process.cwd();
2758
3009
  const result = listHooks(projectDir);
@@ -2773,28 +3024,28 @@ function createListCommand() {
2773
3024
  }
2774
3025
 
2775
3026
  // src/commands/hooks/remove.ts
2776
- import { Command as Command25 } from "commander";
2777
- import * as fs7 from "fs";
3027
+ import { Command as Command26 } from "commander";
3028
+ import * as fs8 from "fs";
2778
3029
  import * as path21 from "path";
2779
3030
  function removeHooks(projectDir) {
2780
3031
  const hooksDir = path21.join(projectDir, ".harness", "hooks");
2781
3032
  const settingsPath = path21.join(projectDir, ".claude", "settings.json");
2782
3033
  let removed = false;
2783
3034
  let settingsCleaned = false;
2784
- if (fs7.existsSync(hooksDir)) {
2785
- fs7.rmSync(hooksDir, { recursive: true, force: true });
3035
+ if (fs8.existsSync(hooksDir)) {
3036
+ fs8.rmSync(hooksDir, { recursive: true, force: true });
2786
3037
  removed = true;
2787
3038
  }
2788
- if (fs7.existsSync(settingsPath)) {
3039
+ if (fs8.existsSync(settingsPath)) {
2789
3040
  try {
2790
- const settings = JSON.parse(fs7.readFileSync(settingsPath, "utf-8"));
3041
+ const settings = JSON.parse(fs8.readFileSync(settingsPath, "utf-8"));
2791
3042
  if (settings.hooks !== void 0) {
2792
3043
  delete settings.hooks;
2793
3044
  settingsCleaned = true;
2794
3045
  if (Object.keys(settings).length === 0) {
2795
- fs7.unlinkSync(settingsPath);
3046
+ fs8.unlinkSync(settingsPath);
2796
3047
  } else {
2797
- fs7.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
3048
+ fs8.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
2798
3049
  }
2799
3050
  }
2800
3051
  } catch {
@@ -2803,7 +3054,7 @@ function removeHooks(projectDir) {
2803
3054
  return { removed, hooksDir, settingsCleaned };
2804
3055
  }
2805
3056
  function createRemoveCommand() {
2806
- return new Command25("remove").description("Remove harness-managed hooks from the current project").action(async (_opts, cmd) => {
3057
+ return new Command26("remove").description("Remove harness-managed hooks from the current project").action(async (_opts, cmd) => {
2807
3058
  const globalOpts = cmd.optsWithGlobals();
2808
3059
  const projectDir = process.cwd();
2809
3060
  const result = removeHooks(projectDir);
@@ -2825,8 +3076,8 @@ function createRemoveCommand() {
2825
3076
  }
2826
3077
 
2827
3078
  // src/commands/hooks/add.ts
2828
- import { Command as Command26 } from "commander";
2829
- import * as fs8 from "fs";
3079
+ import { Command as Command27 } from "commander";
3080
+ import * as fs9 from "fs";
2830
3081
  import * as path22 from "path";
2831
3082
  import { fileURLToPath as fileURLToPath3 } from "url";
2832
3083
  var __dirname3 = path22.dirname(fileURLToPath3(import.meta.url));
@@ -2835,11 +3086,11 @@ var ALIASES = {
2835
3086
  };
2836
3087
  function hookSourceDir() {
2837
3088
  const d = path22.resolve(__dirname3, "..", "..", "hooks");
2838
- if (fs8.existsSync(d)) return d;
3089
+ if (fs9.existsSync(d)) return d;
2839
3090
  throw new Error(`Hook scripts not found: ${d}`);
2840
3091
  }
2841
3092
  function readJson(p) {
2842
- return fs8.existsSync(p) ? JSON.parse(fs8.readFileSync(p, "utf-8")) : {};
3093
+ return fs9.existsSync(p) ? JSON.parse(fs9.readFileSync(p, "utf-8")) : {};
2843
3094
  }
2844
3095
  function registerHook(s, ev, matcher, name) {
2845
3096
  if (!s.hooks[ev]) s.hooks[ev] = [];
@@ -2853,9 +3104,9 @@ function addHooks(hookName, projectDir) {
2853
3104
  const result = { added: [], alreadyInstalled: [], notFound: [] };
2854
3105
  const srcDir = hookSourceDir();
2855
3106
  const destDir = path22.join(projectDir, ".harness", "hooks");
2856
- fs8.mkdirSync(destDir, { recursive: true });
3107
+ fs9.mkdirSync(destDir, { recursive: true });
2857
3108
  const claudeDir = path22.join(projectDir, ".claude");
2858
- fs8.mkdirSync(claudeDir, { recursive: true });
3109
+ fs9.mkdirSync(claudeDir, { recursive: true });
2859
3110
  const settingsPath = path22.join(claudeDir, "settings.json");
2860
3111
  const settings = readJson(settingsPath);
2861
3112
  if (!settings.hooks) settings.hooks = {};
@@ -2867,22 +3118,22 @@ function addHooks(hookName, projectDir) {
2867
3118
  }
2868
3119
  const src = path22.join(srcDir, `${name}.js`);
2869
3120
  const dest = path22.join(destDir, `${name}.js`);
2870
- if (fs8.existsSync(dest)) {
3121
+ if (fs9.existsSync(dest)) {
2871
3122
  result.alreadyInstalled.push(name);
2872
- } else if (!fs8.existsSync(src)) {
3123
+ } else if (!fs9.existsSync(src)) {
2873
3124
  result.notFound.push(name);
2874
3125
  continue;
2875
3126
  } else {
2876
- fs8.copyFileSync(src, dest);
3127
+ fs9.copyFileSync(src, dest);
2877
3128
  result.added.push(name);
2878
3129
  }
2879
3130
  registerHook(settings, def.event, def.matcher, name);
2880
3131
  }
2881
- fs8.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
3132
+ fs9.writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
2882
3133
  return result;
2883
3134
  }
2884
3135
  function createAddCommand2() {
2885
- return new Command26("add").argument("<hook-name>", "Hook name or alias (e.g., sentinel)").description("Add a hook without changing the profile").action(async (hookName, _opts, cmd) => {
3136
+ return new Command27("add").argument("<hook-name>", "Hook name or alias (e.g., sentinel)").description("Add a hook without changing the profile").action(async (hookName, _opts, cmd) => {
2886
3137
  const projectDir = process.cwd();
2887
3138
  try {
2888
3139
  const res = addHooks(hookName, projectDir);
@@ -2907,7 +3158,7 @@ function createAddCommand2() {
2907
3158
 
2908
3159
  // src/commands/hooks/index.ts
2909
3160
  function createHooksCommand() {
2910
- const command = new Command27("hooks").description("Manage Claude Code hook configurations");
3161
+ const command = new Command28("hooks").description("Manage Claude Code hook configurations");
2911
3162
  command.addCommand(createInitCommand2());
2912
3163
  command.addCommand(createListCommand());
2913
3164
  command.addCommand(createRemoveCommand());
@@ -2916,10 +3167,10 @@ function createHooksCommand() {
2916
3167
  }
2917
3168
 
2918
3169
  // src/commands/impact-preview.ts
2919
- import { Command as Command28 } from "commander";
3170
+ import { Command as Command29 } from "commander";
2920
3171
  import { execSync as execSync4 } from "child_process";
2921
3172
  import * as path23 from "path";
2922
- import * as fs9 from "fs";
3173
+ import * as fs10 from "fs";
2923
3174
  function getStagedFiles(cwd) {
2924
3175
  try {
2925
3176
  const output = execSync4("git diff --cached --name-only", {
@@ -2933,7 +3184,7 @@ function getStagedFiles(cwd) {
2933
3184
  }
2934
3185
  function graphExists(projectPath) {
2935
3186
  try {
2936
- return fs9.existsSync(path23.join(projectPath, ".harness", "graph", "graph.json"));
3187
+ return fs10.existsSync(path23.join(projectPath, ".harness", "graph", "graph.json"));
2937
3188
  } catch {
2938
3189
  return false;
2939
3190
  }
@@ -3115,7 +3366,7 @@ async function runImpactPreview(options) {
3115
3366
  return formatImpactOutput(stagedFiles, acc, options);
3116
3367
  }
3117
3368
  function createImpactPreviewCommand() {
3118
- const command = new Command28("impact-preview").description("Show blast radius of staged changes using the knowledge graph").option("--detailed", "Show all affected files instead of top items").option("--per-file", "Show impact per staged file instead of aggregate").option("--path <dir>", "Project root (default: cwd)").action(async (opts) => {
3369
+ const command = new Command29("impact-preview").description("Show blast radius of staged changes using the knowledge graph").option("--detailed", "Show all affected files instead of top items").option("--per-file", "Show impact per staged file instead of aggregate").option("--path <dir>", "Project root (default: cwd)").action(async (opts) => {
3119
3370
  const output = await runImpactPreview({
3120
3371
  detailed: opts.detailed,
3121
3372
  perFile: opts.perFile,
@@ -3128,28 +3379,28 @@ function createImpactPreviewCommand() {
3128
3379
  }
3129
3380
 
3130
3381
  // src/commands/init.ts
3131
- import { Command as Command30 } from "commander";
3382
+ import { Command as Command31 } from "commander";
3132
3383
  import chalk3 from "chalk";
3133
- import * as fs12 from "fs";
3384
+ import * as fs13 from "fs";
3134
3385
  import * as path26 from "path";
3135
3386
 
3136
3387
  // src/commands/setup-mcp.ts
3137
- import { Command as Command29 } from "commander";
3138
- import * as fs11 from "fs";
3388
+ import { Command as Command30 } from "commander";
3389
+ import * as fs12 from "fs";
3139
3390
  import * as path25 from "path";
3140
3391
  import * as os2 from "os";
3141
3392
  import chalk2 from "chalk";
3142
3393
  import * as clack from "@clack/prompts";
3143
3394
 
3144
3395
  // src/integrations/toml.ts
3145
- import * as fs10 from "fs";
3396
+ import * as fs11 from "fs";
3146
3397
  import * as path24 from "path";
3147
3398
  function writeTomlMcpEntry(filePath, name, entry) {
3148
3399
  const dir = path24.dirname(filePath);
3149
- if (!fs10.existsSync(dir)) {
3150
- fs10.mkdirSync(dir, { recursive: true });
3400
+ if (!fs11.existsSync(dir)) {
3401
+ fs11.mkdirSync(dir, { recursive: true });
3151
3402
  }
3152
- const existing = fs10.existsSync(filePath) ? fs10.readFileSync(filePath, "utf-8") : "";
3403
+ const existing = fs11.existsSync(filePath) ? fs11.readFileSync(filePath, "utf-8") : "";
3153
3404
  const blockHeader = `[mcp_servers.${name}]`;
3154
3405
  const newBlock = serializeTomlMcpBlock(name, entry);
3155
3406
  let updated;
@@ -3160,8 +3411,8 @@ function writeTomlMcpEntry(filePath, name, entry) {
3160
3411
  updated = existing + separator + newBlock;
3161
3412
  }
3162
3413
  const tmp = filePath + ".tmp";
3163
- fs10.writeFileSync(tmp, updated);
3164
- fs10.renameSync(tmp, filePath);
3414
+ fs11.writeFileSync(tmp, updated);
3415
+ fs11.renameSync(tmp, filePath);
3165
3416
  }
3166
3417
  function serializeTomlMcpBlock(name, entry) {
3167
3418
  const lines = [`[mcp_servers.${name}]`];
@@ -3288,7 +3539,8 @@ var ALL_MCP_TOOLS = [
3288
3539
  "predict_failures",
3289
3540
  "recommend_skills",
3290
3541
  "compute_blast_radius",
3291
- "dispatch_skills"
3542
+ "dispatch_skills",
3543
+ "compact"
3292
3544
  ];
3293
3545
  async function runCursorToolPicker() {
3294
3546
  try {
@@ -3316,20 +3568,20 @@ function writeCursorMcpEntryWithTools(configPath, tools) {
3316
3568
  });
3317
3569
  }
3318
3570
  function readJsonFile(filePath) {
3319
- if (!fs11.existsSync(filePath)) return null;
3571
+ if (!fs12.existsSync(filePath)) return null;
3320
3572
  try {
3321
- return JSON.parse(fs11.readFileSync(filePath, "utf-8"));
3573
+ return JSON.parse(fs12.readFileSync(filePath, "utf-8"));
3322
3574
  } catch {
3323
- fs11.copyFileSync(filePath, filePath + ".bak");
3575
+ fs12.copyFileSync(filePath, filePath + ".bak");
3324
3576
  return null;
3325
3577
  }
3326
3578
  }
3327
3579
  function writeJsonFile(filePath, data) {
3328
- const dir = path25.dirname(filePath);
3329
- if (!fs11.existsSync(dir)) {
3330
- fs11.mkdirSync(dir, { recursive: true });
3580
+ const dir = path25.dirname(filePath);
3581
+ if (!fs12.existsSync(dir)) {
3582
+ fs12.mkdirSync(dir, { recursive: true });
3331
3583
  }
3332
- fs11.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n");
3584
+ fs12.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n");
3333
3585
  }
3334
3586
  function configureMcpServer(configPath) {
3335
3587
  const config = readJsonFile(configPath) ?? {};
@@ -3377,8 +3629,8 @@ function setupMcp(cwd, client) {
3377
3629
  if (client === "all" || client === "codex") {
3378
3630
  const configPath = path25.join(cwd, ".codex", "config.toml");
3379
3631
  const alreadyConfigured = (() => {
3380
- if (!fs11.existsSync(configPath)) return false;
3381
- const content = fs11.readFileSync(configPath, "utf-8");
3632
+ if (!fs12.existsSync(configPath)) return false;
3633
+ const content = fs12.readFileSync(configPath, "utf-8");
3382
3634
  return content.includes("[mcp_servers.harness]");
3383
3635
  })();
3384
3636
  if (alreadyConfigured) {
@@ -3451,7 +3703,7 @@ function printMcpResult(configured, skipped, trustedFolder) {
3451
3703
  console.log("");
3452
3704
  }
3453
3705
  function createSetupMcpCommand() {
3454
- return new Command29("setup-mcp").description("Configure MCP server for AI agent integration").option("--client <client>", "Client to configure (claude, gemini, codex, cursor, all)", "all").option("--pick", "Launch interactive tool picker (Cursor only)").option("--yes", "Bypass interactive picker and use curated 25-tool set (Cursor only)").action(async (opts, cmd) => {
3706
+ return new Command30("setup-mcp").description("Configure MCP server for AI agent integration").option("--client <client>", "Client to configure (claude, gemini, codex, cursor, all)", "all").option("--pick", "Launch interactive tool picker (Cursor only)").option("--yes", "Bypass interactive picker and use curated 25-tool set (Cursor only)").action(async (opts, cmd) => {
3455
3707
  const globalOpts = cmd.optsWithGlobals();
3456
3708
  const cwd = process.cwd();
3457
3709
  let configured;
@@ -3483,7 +3735,7 @@ function resolveInitDefaults(options) {
3483
3735
  async function runInit(options) {
3484
3736
  const { cwd, name, force } = resolveInitDefaults(options);
3485
3737
  const configPath = path26.join(cwd, "harness.config.json");
3486
- if (!force && fs12.existsSync(configPath)) {
3738
+ if (!force && fs13.existsSync(configPath)) {
3487
3739
  return Err(
3488
3740
  new CLIError("Project already initialized. Use --force to overwrite.", ExitCode.ERROR)
3489
3741
  );
@@ -3549,6 +3801,7 @@ function scaffoldProject(engine, ctx) {
3549
3801
  }
3550
3802
  persistToolingConfig(cwd, resolveResult.value, options.framework);
3551
3803
  appendFrameworkAgents(cwd, options.framework, language);
3804
+ ensureHarnessGitignore(cwd);
3552
3805
  return Ok({
3553
3806
  filesCreated: writeResult.value.written,
3554
3807
  skippedConfigs: writeResult.value.skippedConfigs
@@ -3590,7 +3843,7 @@ async function runInitAction2(opts) {
3590
3843
  process.exit(ExitCode.SUCCESS);
3591
3844
  }
3592
3845
  function createInitCommand3() {
3593
- const command = new Command30("init").description("Initialize a new harness-engineering project").option("-n, --name <name>", "Project name").option("-l, --level <level>", "Adoption level (basic, intermediate, advanced)", "basic").option("--framework <framework>", "Framework overlay (nextjs)").option("--language <language>", "Target language (typescript, python, go, rust, java)").option("-f, --force", "Overwrite existing files").option("-y, --yes", "Use defaults without prompting").action(async (opts, cmd) => {
3846
+ const command = new Command31("init").description("Initialize a new harness-engineering project").option("-n, --name <name>", "Project name").option("-l, --level <level>", "Adoption level (basic, intermediate, advanced)", "basic").option("--framework <framework>", "Framework overlay (nextjs)").option("--language <language>", "Target language (typescript, python, go, rust, java)").option("-f, --force", "Overwrite existing files").option("-y, --yes", "Use defaults without prompting").action(async (opts, cmd) => {
3594
3847
  const globalOpts = cmd.optsWithGlobals();
3595
3848
  await runInitAction2({
3596
3849
  name: opts.name,
@@ -3605,15 +3858,15 @@ function createInitCommand3() {
3605
3858
  }
3606
3859
 
3607
3860
  // src/commands/install.ts
3608
- import * as fs17 from "fs";
3861
+ import * as fs18 from "fs";
3609
3862
  import * as os5 from "os";
3610
3863
  import * as path31 from "path";
3611
3864
  import { execFileSync as execFileSync3 } from "child_process";
3612
- import { Command as Command31 } from "commander";
3865
+ import { Command as Command32 } from "commander";
3613
3866
  import { parse as yamlParse } from "yaml";
3614
3867
 
3615
3868
  // src/registry/npm-client.ts
3616
- import * as fs13 from "fs";
3869
+ import * as fs14 from "fs";
3617
3870
  import * as path27 from "path";
3618
3871
  import * as os3 from "os";
3619
3872
  var NPM_REGISTRY = "https://registry.npmjs.org";
@@ -3640,7 +3893,7 @@ function readNpmrcToken(registryUrl) {
3640
3893
  const candidates = [path27.join(process.cwd(), ".npmrc"), path27.join(os3.homedir(), ".npmrc")];
3641
3894
  for (const npmrcPath of candidates) {
3642
3895
  try {
3643
- const content = fs13.readFileSync(npmrcPath, "utf-8");
3896
+ const content = fs14.readFileSync(npmrcPath, "utf-8");
3644
3897
  for (const line of content.split("\n")) {
3645
3898
  const trimmed = line.trim();
3646
3899
  if (trimmed.startsWith(registryPath)) {
@@ -3735,19 +3988,19 @@ async function searchNpmRegistry(query, registryUrl) {
3735
3988
  }
3736
3989
 
3737
3990
  // src/registry/tarball.ts
3738
- import * as fs14 from "fs";
3991
+ import * as fs15 from "fs";
3739
3992
  import * as path28 from "path";
3740
3993
  import * as os4 from "os";
3741
3994
  import { execFileSync as execFileSync2 } from "child_process";
3742
3995
  function extractTarball(tarballBuffer) {
3743
- const tmpDir = fs14.mkdtempSync(path28.join(os4.tmpdir(), "harness-skill-install-"));
3996
+ const tmpDir = fs15.mkdtempSync(path28.join(os4.tmpdir(), "harness-skill-install-"));
3744
3997
  const tarballPath = path28.join(tmpDir, "package.tgz");
3745
3998
  try {
3746
- fs14.writeFileSync(tarballPath, tarballBuffer);
3999
+ fs15.writeFileSync(tarballPath, tarballBuffer);
3747
4000
  execFileSync2("tar", ["-xzf", tarballPath, "-C", tmpDir], {
3748
4001
  timeout: 3e4
3749
4002
  });
3750
- fs14.unlinkSync(tarballPath);
4003
+ fs15.unlinkSync(tarballPath);
3751
4004
  } catch (err) {
3752
4005
  cleanupTempDir(tmpDir);
3753
4006
  throw new Error(
@@ -3758,22 +4011,22 @@ function extractTarball(tarballBuffer) {
3758
4011
  return tmpDir;
3759
4012
  }
3760
4013
  function placeSkillContent(extractedPkgDir, communityBaseDir, skillName, platforms) {
3761
- const files = fs14.readdirSync(extractedPkgDir);
4014
+ const files = fs15.readdirSync(extractedPkgDir);
3762
4015
  for (const platform of platforms) {
3763
4016
  const targetDir = path28.join(communityBaseDir, platform, skillName);
3764
- if (fs14.existsSync(targetDir)) {
3765
- fs14.rmSync(targetDir, { recursive: true, force: true });
4017
+ if (fs15.existsSync(targetDir)) {
4018
+ fs15.rmSync(targetDir, { recursive: true, force: true });
3766
4019
  }
3767
- fs14.mkdirSync(targetDir, { recursive: true });
4020
+ fs15.mkdirSync(targetDir, { recursive: true });
3768
4021
  for (const file of files) {
3769
4022
  if (file === "package.json" || file === "node_modules") continue;
3770
4023
  const srcPath = path28.join(extractedPkgDir, file);
3771
4024
  const destPath = path28.join(targetDir, file);
3772
- const stat = fs14.statSync(srcPath);
4025
+ const stat = fs15.statSync(srcPath);
3773
4026
  if (stat.isDirectory()) {
3774
- fs14.cpSync(srcPath, destPath, { recursive: true });
4027
+ fs15.cpSync(srcPath, destPath, { recursive: true });
3775
4028
  } else {
3776
- fs14.copyFileSync(srcPath, destPath);
4029
+ fs15.copyFileSync(srcPath, destPath);
3777
4030
  }
3778
4031
  }
3779
4032
  }
@@ -3781,14 +4034,14 @@ function placeSkillContent(extractedPkgDir, communityBaseDir, skillName, platfor
3781
4034
  function removeSkillContent(communityBaseDir, skillName, platforms) {
3782
4035
  for (const platform of platforms) {
3783
4036
  const targetDir = path28.join(communityBaseDir, platform, skillName);
3784
- if (fs14.existsSync(targetDir)) {
3785
- fs14.rmSync(targetDir, { recursive: true, force: true });
4037
+ if (fs15.existsSync(targetDir)) {
4038
+ fs15.rmSync(targetDir, { recursive: true, force: true });
3786
4039
  }
3787
4040
  }
3788
4041
  }
3789
4042
  function cleanupTempDir(dirPath) {
3790
4043
  try {
3791
- fs14.rmSync(dirPath, { recursive: true, force: true });
4044
+ fs15.rmSync(dirPath, { recursive: true, force: true });
3792
4045
  } catch {
3793
4046
  }
3794
4047
  }
@@ -3830,7 +4083,7 @@ function findDependentsOf(lockfile, targetPackageName) {
3830
4083
  }
3831
4084
 
3832
4085
  // src/registry/lockfile.ts
3833
- import * as fs15 from "fs";
4086
+ import * as fs16 from "fs";
3834
4087
  import * as path29 from "path";
3835
4088
  function createEmptyLockfile() {
3836
4089
  return { version: 1, skills: {} };
@@ -3851,10 +4104,10 @@ function sortedStringify(obj) {
3851
4104
  );
3852
4105
  }
3853
4106
  function readLockfile2(filePath) {
3854
- if (!fs15.existsSync(filePath)) {
4107
+ if (!fs16.existsSync(filePath)) {
3855
4108
  return createEmptyLockfile();
3856
4109
  }
3857
- const raw = fs15.readFileSync(filePath, "utf-8");
4110
+ const raw = fs16.readFileSync(filePath, "utf-8");
3858
4111
  let parsed;
3859
4112
  try {
3860
4113
  parsed = JSON.parse(raw);
@@ -3872,8 +4125,8 @@ function readLockfile2(filePath) {
3872
4125
  }
3873
4126
  function writeLockfile2(filePath, lockfile) {
3874
4127
  const dir = path29.dirname(filePath);
3875
- fs15.mkdirSync(dir, { recursive: true });
3876
- fs15.writeFileSync(filePath, sortedStringify(lockfile) + "\n", "utf-8");
4128
+ fs16.mkdirSync(dir, { recursive: true });
4129
+ fs16.writeFileSync(filePath, sortedStringify(lockfile) + "\n", "utf-8");
3877
4130
  }
3878
4131
  function updateLockfileEntry(lockfile, name, entry) {
3879
4132
  return {
@@ -3896,17 +4149,17 @@ function removeLockfileEntry(lockfile, name) {
3896
4149
  }
3897
4150
 
3898
4151
  // src/registry/bundled-skills.ts
3899
- import * as fs16 from "fs";
4152
+ import * as fs17 from "fs";
3900
4153
  import * as path30 from "path";
3901
4154
  function getBundledSkillNames(bundledSkillsDir) {
3902
- if (!fs16.existsSync(bundledSkillsDir)) {
4155
+ if (!fs17.existsSync(bundledSkillsDir)) {
3903
4156
  return /* @__PURE__ */ new Set();
3904
4157
  }
3905
- const entries = fs16.readdirSync(bundledSkillsDir);
4158
+ const entries = fs17.readdirSync(bundledSkillsDir);
3906
4159
  const names = /* @__PURE__ */ new Set();
3907
4160
  for (const entry of entries) {
3908
4161
  try {
3909
- const stat = fs16.statSync(path30.join(bundledSkillsDir, String(entry)));
4162
+ const stat = fs17.statSync(path30.join(bundledSkillsDir, String(entry)));
3910
4163
  if (stat.isDirectory()) {
3911
4164
  names.add(String(entry));
3912
4165
  }
@@ -3954,7 +4207,7 @@ function parseGitHubRef(from) {
3954
4207
  return null;
3955
4208
  }
3956
4209
  function cloneGitHubRepo(owner, repo, ref) {
3957
- const tmpDir = fs17.mkdtempSync(path31.join(os5.tmpdir(), "harness-gh-install-"));
4210
+ const tmpDir = fs18.mkdtempSync(path31.join(os5.tmpdir(), "harness-gh-install-"));
3958
4211
  const url = `https://github.com/${owner}/${repo}.git`;
3959
4212
  try {
3960
4213
  const cloneArgs = ["clone", "--depth", "1"];
@@ -3975,12 +4228,12 @@ function discoverSkillDirs(rootDir) {
3975
4228
  const skillDirs = [];
3976
4229
  function scan(dir, depth) {
3977
4230
  if (depth > 3) return;
3978
- if (!fs17.existsSync(dir)) return;
3979
- if (fs17.existsSync(path31.join(dir, "skill.yaml"))) {
4231
+ if (!fs18.existsSync(dir)) return;
4232
+ if (fs18.existsSync(path31.join(dir, "skill.yaml"))) {
3980
4233
  skillDirs.push(dir);
3981
4234
  return;
3982
4235
  }
3983
- const entries = fs17.readdirSync(dir, { withFileTypes: true });
4236
+ const entries = fs18.readdirSync(dir, { withFileTypes: true });
3984
4237
  for (const entry of entries) {
3985
4238
  if (!entry.isDirectory()) continue;
3986
4239
  if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
@@ -3992,15 +4245,15 @@ function discoverSkillDirs(rootDir) {
3992
4245
  }
3993
4246
  function resolveLocalPkgDir(fromPath) {
3994
4247
  const resolvedPath = path31.resolve(fromPath);
3995
- if (!fs17.existsSync(resolvedPath)) {
4248
+ if (!fs18.existsSync(resolvedPath)) {
3996
4249
  throw new Error(`--from path does not exist: ${resolvedPath}`);
3997
4250
  }
3998
- const stat = fs17.statSync(resolvedPath);
4251
+ const stat = fs18.statSync(resolvedPath);
3999
4252
  if (stat.isDirectory()) {
4000
4253
  return { pkgDir: resolvedPath, extractDir: null };
4001
4254
  }
4002
4255
  if (resolvedPath.endsWith(".tgz") || resolvedPath.endsWith(".tar.gz")) {
4003
- const tarballBuffer = fs17.readFileSync(resolvedPath);
4256
+ const tarballBuffer = fs18.readFileSync(resolvedPath);
4004
4257
  const extractDir = extractTarball(tarballBuffer);
4005
4258
  return { pkgDir: path31.join(extractDir, "package"), extractDir };
4006
4259
  }
@@ -4008,10 +4261,10 @@ function resolveLocalPkgDir(fromPath) {
4008
4261
  }
4009
4262
  function installSkillDir(pkgDir, resolvedPath, options) {
4010
4263
  const skillYamlPath = path31.join(pkgDir, "skill.yaml");
4011
- if (!fs17.existsSync(skillYamlPath)) {
4264
+ if (!fs18.existsSync(skillYamlPath)) {
4012
4265
  throw new Error(`No skill.yaml found at ${skillYamlPath}`);
4013
4266
  }
4014
- const skillYaml = validateSkillYaml(yamlParse(fs17.readFileSync(skillYamlPath, "utf-8")));
4267
+ const skillYaml = validateSkillYaml(yamlParse(fs18.readFileSync(skillYamlPath, "utf-8")));
4015
4268
  const shortName = skillYaml.name;
4016
4269
  const { communityBase, lockfilePath } = resolveCommunityBase(options.global ?? false);
4017
4270
  if (!options.global) {
@@ -4083,7 +4336,7 @@ async function runInstall(skillName, options) {
4083
4336
  };
4084
4337
  }
4085
4338
  const resolvedFrom = path31.resolve(options.from);
4086
- if (fs17.existsSync(resolvedFrom) && fs17.statSync(resolvedFrom).isDirectory() && !fs17.existsSync(path31.join(resolvedFrom, "skill.yaml"))) {
4339
+ if (fs18.existsSync(resolvedFrom) && fs18.statSync(resolvedFrom).isDirectory() && !fs18.existsSync(path31.join(resolvedFrom, "skill.yaml"))) {
4087
4340
  const results = await runBulkInstall(resolvedFrom, options);
4088
4341
  const installed = results.filter((r) => r.installed);
4089
4342
  return {
@@ -4126,10 +4379,10 @@ async function runInstall(skillName, options) {
4126
4379
  try {
4127
4380
  const extractedPkgDir = path31.join(extractDir, "package");
4128
4381
  const skillYamlPath = path31.join(extractedPkgDir, "skill.yaml");
4129
- if (!fs17.existsSync(skillYamlPath)) {
4382
+ if (!fs18.existsSync(skillYamlPath)) {
4130
4383
  throw new Error(`contains invalid skill.yaml: file not found in package`);
4131
4384
  }
4132
- const rawYaml = fs17.readFileSync(skillYamlPath, "utf-8");
4385
+ const rawYaml = fs18.readFileSync(skillYamlPath, "utf-8");
4133
4386
  const parsed = yamlParse(rawYaml);
4134
4387
  skillYaml = validateSkillYaml(parsed);
4135
4388
  placeSkillContent(extractedPkgDir, communityBase, shortName, skillYaml.platforms);
@@ -4169,7 +4422,7 @@ async function runInstall(skillName, options) {
4169
4422
  return result;
4170
4423
  }
4171
4424
  function createInstallCommand() {
4172
- const cmd = new Command31("install");
4425
+ const cmd = new Command32("install");
4173
4426
  cmd.description("Install skills from npm registry, local directory, or GitHub repository").argument("<skill>", 'Skill name, @harness-skills/scoped package, or "." for bulk install').option("--version <range>", "Semver range or exact version to install").option("--force", "Force reinstall even if same version is already installed").option(
4174
4427
  "--from <source>",
4175
4428
  "Install from local path, directory, or GitHub (github:owner/repo, https://github.com/owner/repo)"
@@ -4187,6 +4440,12 @@ function createInstallCommand() {
4187
4440
  } else if (result.installed) {
4188
4441
  logger.success(`Installed ${result.name}@${result.version}`);
4189
4442
  }
4443
+ if (result.installed || result.upgraded) {
4444
+ const globalFlag = opts.global ? " --global --include-global" : "";
4445
+ logger.info(
4446
+ `Run \`harness generate-slash-commands${globalFlag}\` to register slash commands.`
4447
+ );
4448
+ }
4190
4449
  } catch (err) {
4191
4450
  logger.error(err instanceof Error ? err.message : String(err));
4192
4451
  process.exit(1);
@@ -4196,15 +4455,15 @@ function createInstallCommand() {
4196
4455
  }
4197
4456
 
4198
4457
  // src/commands/install-constraints.ts
4199
- import * as fs18 from "fs/promises";
4458
+ import * as fs19 from "fs/promises";
4200
4459
  import * as path32 from "path";
4201
- import { Command as Command32 } from "commander";
4460
+ import { Command as Command33 } from "commander";
4202
4461
  import semver3 from "semver";
4203
4462
  async function runInstallConstraints(options) {
4204
4463
  const { source, configPath, lockfilePath } = options;
4205
4464
  let rawBundle;
4206
4465
  try {
4207
- rawBundle = await fs18.readFile(source, "utf-8");
4466
+ rawBundle = await fs19.readFile(source, "utf-8");
4208
4467
  } catch (err) {
4209
4468
  if (isNodeError(err) && err.code === "ENOENT") {
4210
4469
  return { ok: false, error: `Bundle file not found: ${source}` };
@@ -4247,7 +4506,7 @@ async function runInstallConstraints(options) {
4247
4506
  }
4248
4507
  let localConfig;
4249
4508
  try {
4250
- const raw = await fs18.readFile(configPath, "utf-8");
4509
+ const raw = await fs19.readFile(configPath, "utf-8");
4251
4510
  localConfig = JSON.parse(raw);
4252
4511
  } catch (err) {
4253
4512
  return {
@@ -4452,17 +4711,17 @@ async function handleInstallConstraints(source, opts) {
4452
4711
  logInstallResult(result.value, opts);
4453
4712
  }
4454
4713
  function createInstallConstraintsCommand() {
4455
- const cmd = new Command32("install-constraints");
4714
+ const cmd = new Command33("install-constraints");
4456
4715
  cmd.description("Install a constraints bundle into the local harness config").argument("<source>", "Path to a .harness-constraints.json bundle file").option("--force-local", "Resolve all conflicts by keeping local values").option("--force-package", "Resolve all conflicts by using package values").option("--dry-run", "Show what would change without writing files").option("-c, --config <path>", "Path to harness.config.json").action(handleInstallConstraints);
4457
4716
  return cmd;
4458
4717
  }
4459
4718
 
4460
4719
  // src/commands/integrations/index.ts
4461
- import { Command as Command37 } from "commander";
4720
+ import { Command as Command38 } from "commander";
4462
4721
 
4463
4722
  // src/commands/integrations/add.ts
4464
- import { Command as Command33 } from "commander";
4465
- import * as fs19 from "fs";
4723
+ import { Command as Command34 } from "commander";
4724
+ import * as fs20 from "fs";
4466
4725
  import * as path33 from "path";
4467
4726
  import chalk4 from "chalk";
4468
4727
  function buildMcpEntry(def) {
@@ -4474,7 +4733,7 @@ function buildMcpEntry(def) {
4474
4733
  function writeMcpEntries(cwd, defName, mcpEntry) {
4475
4734
  writeMcpEntry(path33.join(cwd, ".mcp.json"), defName, mcpEntry);
4476
4735
  const geminiDir = path33.join(cwd, ".gemini");
4477
- if (fs19.existsSync(geminiDir)) {
4736
+ if (fs20.existsSync(geminiDir)) {
4478
4737
  writeMcpEntry(path33.join(geminiDir, "settings.json"), defName, mcpEntry);
4479
4738
  }
4480
4739
  }
@@ -4525,7 +4784,7 @@ function printAddSuccess(value) {
4525
4784
  }
4526
4785
  }
4527
4786
  function createAddIntegrationCommand() {
4528
- return new Command33("add").description("Enable an MCP integration").argument("<name>", "Integration name (e.g. perplexity, augment-code)").action(async (name, _opts, cmd) => {
4787
+ return new Command34("add").description("Enable an MCP integration").argument("<name>", "Integration name (e.g. perplexity, augment-code)").action(async (name, _opts, cmd) => {
4529
4788
  const globalOpts = cmd.optsWithGlobals();
4530
4789
  const result = addIntegration(process.cwd(), name);
4531
4790
  if (!result.ok) {
@@ -4539,7 +4798,7 @@ function createAddIntegrationCommand() {
4539
4798
  }
4540
4799
 
4541
4800
  // src/commands/integrations/list.ts
4542
- import { Command as Command34 } from "commander";
4801
+ import { Command as Command35 } from "commander";
4543
4802
  import * as path34 from "path";
4544
4803
  import chalk5 from "chalk";
4545
4804
  function printTier0Integrations(tier0, mcpServers) {
@@ -4596,12 +4855,12 @@ async function runListIntegrations(globalOpts) {
4596
4855
  process.exit(ExitCode.SUCCESS);
4597
4856
  }
4598
4857
  function createListIntegrationsCommand() {
4599
- return new Command34("list").description("Show all MCP integrations with status").action(async (_opts, cmd) => runListIntegrations(cmd.optsWithGlobals()));
4858
+ return new Command35("list").description("Show all MCP integrations with status").action(async (_opts, cmd) => runListIntegrations(cmd.optsWithGlobals()));
4600
4859
  }
4601
4860
 
4602
4861
  // src/commands/integrations/remove.ts
4603
- import { Command as Command35 } from "commander";
4604
- import * as fs20 from "fs";
4862
+ import { Command as Command36 } from "commander";
4863
+ import * as fs21 from "fs";
4605
4864
  import * as path35 from "path";
4606
4865
  function removeIntegration(cwd, name) {
4607
4866
  const def = INTEGRATION_REGISTRY.find((i) => i.name === name);
@@ -4616,7 +4875,7 @@ function removeIntegration(cwd, name) {
4616
4875
  const mcpPath = path35.join(cwd, ".mcp.json");
4617
4876
  removeMcpEntry(mcpPath, def.name);
4618
4877
  const geminiDir = path35.join(cwd, ".gemini");
4619
- if (fs20.existsSync(geminiDir)) {
4878
+ if (fs21.existsSync(geminiDir)) {
4620
4879
  const geminiPath = path35.join(geminiDir, "settings.json");
4621
4880
  removeMcpEntry(geminiPath, def.name);
4622
4881
  }
@@ -4627,7 +4886,7 @@ function removeIntegration(cwd, name) {
4627
4886
  return Ok(def.displayName);
4628
4887
  }
4629
4888
  function createRemoveIntegrationCommand() {
4630
- return new Command35("remove").description("Remove an MCP integration").argument("<name>", "Integration name (e.g. perplexity, augment-code)").action(async (name, _opts, cmd) => {
4889
+ return new Command36("remove").description("Remove an MCP integration").argument("<name>", "Integration name (e.g. perplexity, augment-code)").action(async (name, _opts, cmd) => {
4631
4890
  const globalOpts = cmd.optsWithGlobals();
4632
4891
  const cwd = process.cwd();
4633
4892
  const result = removeIntegration(cwd, name);
@@ -4648,7 +4907,7 @@ function createRemoveIntegrationCommand() {
4648
4907
  }
4649
4908
 
4650
4909
  // src/commands/integrations/dismiss.ts
4651
- import { Command as Command36 } from "commander";
4910
+ import { Command as Command37 } from "commander";
4652
4911
  import * as path36 from "path";
4653
4912
  function dismissIntegration(cwd, name) {
4654
4913
  const def = INTEGRATION_REGISTRY.find((i) => i.name === name);
@@ -4670,7 +4929,7 @@ function dismissIntegration(cwd, name) {
4670
4929
  return Ok(def.displayName);
4671
4930
  }
4672
4931
  function createDismissIntegrationCommand() {
4673
- return new Command36("dismiss").description("Suppress doctor recommendations for an integration").argument("<name>", "Integration name (e.g. perplexity, augment-code)").action(async (name, _opts, cmd) => {
4932
+ return new Command37("dismiss").description("Suppress doctor recommendations for an integration").argument("<name>", "Integration name (e.g. perplexity, augment-code)").action(async (name, _opts, cmd) => {
4674
4933
  const globalOpts = cmd.optsWithGlobals();
4675
4934
  const cwd = process.cwd();
4676
4935
  const result = dismissIntegration(cwd, name);
@@ -4694,7 +4953,7 @@ function createDismissIntegrationCommand() {
4694
4953
 
4695
4954
  // src/commands/integrations/index.ts
4696
4955
  function createIntegrationsCommand() {
4697
- const command = new Command37("integrations").description(
4956
+ const command = new Command38("integrations").description(
4698
4957
  "Manage MCP peer integrations (add, list, remove, dismiss)"
4699
4958
  );
4700
4959
  command.addCommand(createListIntegrationsCommand());
@@ -4705,10 +4964,10 @@ function createIntegrationsCommand() {
4705
4964
  }
4706
4965
 
4707
4966
  // src/commands/learnings/index.ts
4708
- import { Command as Command39 } from "commander";
4967
+ import { Command as Command40 } from "commander";
4709
4968
 
4710
4969
  // src/commands/learnings/prune.ts
4711
- import { Command as Command38 } from "commander";
4970
+ import { Command as Command39 } from "commander";
4712
4971
  import * as path37 from "path";
4713
4972
  async function handlePrune(opts) {
4714
4973
  const projectPath = path37.resolve(opts.path);
@@ -4750,23 +5009,23 @@ function printPatternProposals(patterns) {
4750
5009
  );
4751
5010
  }
4752
5011
  function createPruneCommand() {
4753
- return new Command38("prune").description(
5012
+ return new Command39("prune").description(
4754
5013
  "Analyze global learnings for patterns, present improvement proposals, and archive old entries"
4755
5014
  ).option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").action(handlePrune);
4756
5015
  }
4757
5016
 
4758
5017
  // src/commands/learnings/index.ts
4759
5018
  function createLearningsCommand() {
4760
- const command = new Command39("learnings").description("Learnings management commands");
5019
+ const command = new Command40("learnings").description("Learnings management commands");
4761
5020
  command.addCommand(createPruneCommand());
4762
5021
  return command;
4763
5022
  }
4764
5023
 
4765
5024
  // src/commands/linter/index.ts
4766
- import { Command as Command42 } from "commander";
5025
+ import { Command as Command43 } from "commander";
4767
5026
 
4768
5027
  // src/commands/linter/generate.ts
4769
- import { Command as Command40 } from "commander";
5028
+ import { Command as Command41 } from "commander";
4770
5029
  function formatGenerateError(e) {
4771
5030
  switch (e.type) {
4772
5031
  case "parse":
@@ -4810,7 +5069,7 @@ function handleSuccess(result, useJson) {
4810
5069
  Generated ${result.rulesGenerated.length} rules to ${result.outputDir}`);
4811
5070
  }
4812
5071
  function createGenerateCommand2() {
4813
- return new Command40("generate").description("Generate ESLint rules from harness-linter.yml").option("-c, --config <path>", "Path to harness-linter.yml", "./harness-linter.yml").option("-o, --output <dir>", "Override output directory").option("--clean", "Remove existing files before generating").option("--dry-run", "Preview without writing files").option("--json", "Output as JSON").option("--verbose", "Show detailed output").action(async (options) => {
5072
+ return new Command41("generate").description("Generate ESLint rules from harness-linter.yml").option("-c, --config <path>", "Path to harness-linter.yml", "./harness-linter.yml").option("-o, --output <dir>", "Override output directory").option("--clean", "Remove existing files before generating").option("--dry-run", "Preview without writing files").option("--json", "Output as JSON").option("--verbose", "Show detailed output").action(async (options) => {
4814
5073
  try {
4815
5074
  if (options.verbose) logger.info(`Parsing config: ${options.config}`);
4816
5075
  const result = await generate({
@@ -4832,9 +5091,9 @@ function createGenerateCommand2() {
4832
5091
  }
4833
5092
 
4834
5093
  // src/commands/linter/validate.ts
4835
- import { Command as Command41 } from "commander";
5094
+ import { Command as Command42 } from "commander";
4836
5095
  function createValidateCommand() {
4837
- return new Command41("validate").description("Validate harness-linter.yml config").option("-c, --config <path>", "Path to harness-linter.yml", "./harness-linter.yml").option("--json", "Output as JSON").action(async (options) => {
5096
+ return new Command42("validate").description("Validate harness-linter.yml config").option("-c, --config <path>", "Path to harness-linter.yml", "./harness-linter.yml").option("--json", "Output as JSON").action(async (options) => {
4838
5097
  try {
4839
5098
  const result = await validate({ configPath: options.config });
4840
5099
  if (options.json) {
@@ -4853,7 +5112,7 @@ function createValidateCommand() {
4853
5112
 
4854
5113
  // src/commands/linter/index.ts
4855
5114
  function createLinterCommand() {
4856
- const linter = new Command42("linter").description(
5115
+ const linter = new Command43("linter").description(
4857
5116
  "Generate and validate ESLint rules from YAML config"
4858
5117
  );
4859
5118
  linter.addCommand(createGenerateCommand2());
@@ -4862,20 +5121,20 @@ function createLinterCommand() {
4862
5121
  }
4863
5122
 
4864
5123
  // src/commands/mcp.ts
4865
- import { Command as Command43 } from "commander";
5124
+ import { Command as Command44 } from "commander";
4866
5125
  function createMcpCommand() {
4867
- return new Command43("mcp").description("Start the MCP (Model Context Protocol) server on stdio").option("--tools <tools...>", "Only register the specified tools (used by Cursor integration)").action(async (opts) => {
4868
- const { startServer: startServer2 } = await import("./mcp-HZ6CRAZR.js");
5126
+ return new Command44("mcp").description("Start the MCP (Model Context Protocol) server on stdio").option("--tools <tools...>", "Only register the specified tools (used by Cursor integration)").action(async (opts) => {
5127
+ const { startServer: startServer2 } = await import("./mcp-LCHC4NZ5.js");
4869
5128
  await startServer2(opts.tools);
4870
5129
  });
4871
5130
  }
4872
5131
 
4873
5132
  // src/commands/orchestrator.ts
4874
- import { Command as Command44 } from "commander";
5133
+ import { Command as Command45 } from "commander";
4875
5134
  import * as path38 from "path";
4876
5135
  import { Orchestrator, WorkflowLoader, launchTUI } from "@harness-engineering/orchestrator";
4877
5136
  function createOrchestratorCommand() {
4878
- const orchestrator = new Command44("orchestrator");
5137
+ const orchestrator = new Command45("orchestrator");
4879
5138
  orchestrator.command("run").description("Run the orchestrator daemon").option("-w, --workflow <path>", "Path to WORKFLOW.md", "WORKFLOW.md").action(async (opts) => {
4880
5139
  const workflowPath = path38.resolve(process.cwd(), opts.workflow);
4881
5140
  const loader = new WorkflowLoader();
@@ -4901,13 +5160,13 @@ function createOrchestratorCommand() {
4901
5160
  }
4902
5161
 
4903
5162
  // src/commands/perf.ts
4904
- import { Command as Command45 } from "commander";
5163
+ import { Command as Command46 } from "commander";
4905
5164
  import * as path39 from "path";
4906
5165
  function registerBenchCommand(perf) {
4907
5166
  perf.command("bench [glob]").description("Run benchmarks via vitest bench").action(async (glob, _opts, cmd) => {
4908
5167
  const globalOpts = cmd.optsWithGlobals();
4909
5168
  const cwd = process.cwd();
4910
- const { BenchmarkRunner } = await import("./dist-27IJJDWG.js");
5169
+ const { BenchmarkRunner } = await import("./dist-7EBSGAHX.js");
4911
5170
  const runner = new BenchmarkRunner();
4912
5171
  const benchFiles = runner.discover(cwd, glob);
4913
5172
  if (benchFiles.length === 0) {
@@ -4971,7 +5230,7 @@ async function runBaselinesShow(globalOpts) {
4971
5230
  }
4972
5231
  async function runBaselinesUpdate(globalOpts) {
4973
5232
  const cwd = process.cwd();
4974
- const { BenchmarkRunner } = await import("./dist-27IJJDWG.js");
5233
+ const { BenchmarkRunner } = await import("./dist-7EBSGAHX.js");
4975
5234
  const runner = new BenchmarkRunner();
4976
5235
  const manager = new BaselineManager(cwd);
4977
5236
  logger.info("Running benchmarks to update baselines...");
@@ -5012,7 +5271,7 @@ function registerReportCommand(perf) {
5012
5271
  perf.command("report").description("Full performance report with metrics, trends, and hotspots").action(async (_opts, cmd) => {
5013
5272
  const globalOpts = cmd.optsWithGlobals();
5014
5273
  const cwd = process.cwd();
5015
- const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-27IJJDWG.js");
5274
+ const { EntropyAnalyzer: EntropyAnalyzer2 } = await import("./dist-7EBSGAHX.js");
5016
5275
  const analyzer = new EntropyAnalyzer2({
5017
5276
  rootDir: path39.resolve(cwd),
5018
5277
  analyze: { complexity: true, coupling: true }
@@ -5073,7 +5332,7 @@ function registerCriticalPathsCommand(perf) {
5073
5332
  });
5074
5333
  }
5075
5334
  function createPerfCommand() {
5076
- const perf = new Command45("perf").description("Performance benchmark and baseline management");
5335
+ const perf = new Command46("perf").description("Performance benchmark and baseline management");
5077
5336
  registerBenchCommand(perf);
5078
5337
  registerBaselinesCommands(perf);
5079
5338
  registerReportCommand(perf);
@@ -5082,10 +5341,10 @@ function createPerfCommand() {
5082
5341
  }
5083
5342
 
5084
5343
  // src/commands/persona/index.ts
5085
- import { Command as Command48 } from "commander";
5344
+ import { Command as Command49 } from "commander";
5086
5345
 
5087
5346
  // src/commands/persona/list.ts
5088
- import { Command as Command46 } from "commander";
5347
+ import { Command as Command47 } from "commander";
5089
5348
  function printPersonaList(personas) {
5090
5349
  if (personas.length === 0) {
5091
5350
  logger.info("No personas found.");
@@ -5099,7 +5358,7 @@ function printPersonaList(personas) {
5099
5358
  }
5100
5359
  }
5101
5360
  function createListCommand2() {
5102
- return new Command46("list").description("List available agent personas").action(async (_opts, cmd) => {
5361
+ return new Command47("list").description("List available agent personas").action(async (_opts, cmd) => {
5103
5362
  const globalOpts = cmd.optsWithGlobals();
5104
5363
  const personasDir = resolvePersonasDir();
5105
5364
  const result = listPersonas(personasDir);
@@ -5119,8 +5378,8 @@ function createListCommand2() {
5119
5378
  }
5120
5379
 
5121
5380
  // src/commands/persona/generate.ts
5122
- import { Command as Command47 } from "commander";
5123
- import * as fs21 from "fs";
5381
+ import { Command as Command48 } from "commander";
5382
+ import * as fs22 from "fs";
5124
5383
  import * as path40 from "path";
5125
5384
  function generatePersonaArtifacts(persona, outputDir, only) {
5126
5385
  const slug = toKebabCase(persona.name);
@@ -5129,8 +5388,8 @@ function generatePersonaArtifacts(persona, outputDir, only) {
5129
5388
  const result = generateRuntime(persona);
5130
5389
  if (result.ok) {
5131
5390
  const outPath = path40.join(outputDir, `${slug}.runtime.json`);
5132
- fs21.mkdirSync(path40.dirname(outPath), { recursive: true });
5133
- fs21.writeFileSync(outPath, result.value);
5391
+ fs22.mkdirSync(path40.dirname(outPath), { recursive: true });
5392
+ fs22.writeFileSync(outPath, result.value);
5134
5393
  generated.push(outPath);
5135
5394
  }
5136
5395
  }
@@ -5138,7 +5397,7 @@ function generatePersonaArtifacts(persona, outputDir, only) {
5138
5397
  const result = generateAgentsMd(persona);
5139
5398
  if (result.ok) {
5140
5399
  const outPath = path40.join(outputDir, `${slug}.agents.md`);
5141
- fs21.writeFileSync(outPath, result.value);
5400
+ fs22.writeFileSync(outPath, result.value);
5142
5401
  generated.push(outPath);
5143
5402
  }
5144
5403
  }
@@ -5146,15 +5405,15 @@ function generatePersonaArtifacts(persona, outputDir, only) {
5146
5405
  const result = generateCIWorkflow(persona, "github");
5147
5406
  if (result.ok) {
5148
5407
  const outPath = path40.join(outputDir, ".github", "workflows", `${slug}.yml`);
5149
- fs21.mkdirSync(path40.dirname(outPath), { recursive: true });
5150
- fs21.writeFileSync(outPath, result.value);
5408
+ fs22.mkdirSync(path40.dirname(outPath), { recursive: true });
5409
+ fs22.writeFileSync(outPath, result.value);
5151
5410
  generated.push(outPath);
5152
5411
  }
5153
5412
  }
5154
5413
  return generated;
5155
5414
  }
5156
5415
  function createGenerateCommand3() {
5157
- return new Command47("generate").description("Generate artifacts from a persona config").argument("<name>", "Persona name (e.g., architecture-enforcer)").option("--output-dir <dir>", "Output directory", ".").option("--only <type>", "Generate only: ci, agents-md, runtime").action(async (name, opts, cmd) => {
5416
+ return new Command48("generate").description("Generate artifacts from a persona config").argument("<name>", "Persona name (e.g., architecture-enforcer)").option("--output-dir <dir>", "Output directory", ".").option("--only <type>", "Generate only: ci, agents-md, runtime").action(async (name, opts, cmd) => {
5158
5417
  const globalOpts = cmd.optsWithGlobals();
5159
5418
  const personaResult = loadPersona(path40.join(resolvePersonasDir(), `${name}.yaml`));
5160
5419
  if (!personaResult.ok) {
@@ -5176,14 +5435,14 @@ function createGenerateCommand3() {
5176
5435
 
5177
5436
  // src/commands/persona/index.ts
5178
5437
  function createPersonaCommand() {
5179
- const command = new Command48("persona").description("Agent persona management commands");
5438
+ const command = new Command49("persona").description("Agent persona management commands");
5180
5439
  command.addCommand(createListCommand2());
5181
5440
  command.addCommand(createGenerateCommand3());
5182
5441
  return command;
5183
5442
  }
5184
5443
 
5185
5444
  // src/commands/predict.ts
5186
- import { Command as Command49 } from "commander";
5445
+ import { Command as Command50 } from "commander";
5187
5446
  import chalk6 from "chalk";
5188
5447
  var CATEGORY_ORDER = [
5189
5448
  "circular-deps",
@@ -5289,7 +5548,7 @@ function handlePredictError(err, mode) {
5289
5548
  process.exit(ExitCode.ERROR);
5290
5549
  }
5291
5550
  function createPredictCommand() {
5292
- const command = new Command49("predict").description("Predict which architectural constraints will break and when").option("--category <name>", "Filter to a single metric category").option("--no-roadmap", "Baseline only \u2014 skip roadmap spec impact").option("--horizon <weeks>", "Forecast horizon in weeks (default: 12)", "12").action(async (opts, cmd) => {
5551
+ const command = new Command50("predict").description("Predict which architectural constraints will break and when").option("--category <name>", "Filter to a single metric category").option("--no-roadmap", "Baseline only \u2014 skip roadmap spec impact").option("--horizon <weeks>", "Forecast horizon in weeks (default: 12)", "12").action(async (opts, cmd) => {
5293
5552
  const globalOpts = cmd.optsWithGlobals();
5294
5553
  const mode = globalOpts.json ? OutputMode.JSON : OutputMode.TEXT;
5295
5554
  try {
@@ -5312,7 +5571,7 @@ function createPredictCommand() {
5312
5571
  }
5313
5572
 
5314
5573
  // src/commands/recommend.ts
5315
- import { Command as Command50 } from "commander";
5574
+ import { Command as Command51 } from "commander";
5316
5575
  import chalk7 from "chalk";
5317
5576
  async function resolveSnapshot(cwd, noCache) {
5318
5577
  if (!noCache) {
@@ -5376,7 +5635,7 @@ function printRecommendations(result) {
5376
5635
  console.log("");
5377
5636
  }
5378
5637
  function createRecommendCommand() {
5379
- const command = new Command50("recommend").description("Recommend skills based on codebase health analysis").option("--no-cache", "Force fresh health snapshot").option("--top <n>", "Max recommendations (default 5)", "5").action(async (opts, cmd) => {
5638
+ const command = new Command51("recommend").description("Recommend skills based on codebase health analysis").option("--no-cache", "Force fresh health snapshot").option("--top <n>", "Max recommendations (default 5)", "5").action(async (opts, cmd) => {
5380
5639
  const globalOpts = cmd.optsWithGlobals();
5381
5640
  const mode = globalOpts.json ? OutputMode.JSON : OutputMode.TEXT;
5382
5641
  try {
@@ -5412,8 +5671,8 @@ function createRecommendCommand() {
5412
5671
  }
5413
5672
 
5414
5673
  // src/commands/scan-config.ts
5415
- import { Command as Command51 } from "commander";
5416
- import { existsSync as existsSync20, readFileSync as readFileSync11, writeFileSync as writeFileSync12 } from "fs";
5674
+ import { Command as Command52 } from "commander";
5675
+ import { existsSync as existsSync21, readFileSync as readFileSync11, writeFileSync as writeFileSync12 } from "fs";
5417
5676
  import { join as join31, relative as relative2 } from "path";
5418
5677
  var CONFIG_FILES = ["CLAUDE.md", "AGENTS.md", ".gemini/settings.json", "skill.yaml"];
5419
5678
  function stripHighSeverityPatterns(content, injectionFindings) {
@@ -5447,7 +5706,7 @@ function applyFix(filePath, targetDir, content, injectionFindings) {
5447
5706
  }
5448
5707
  }
5449
5708
  function scanSingleFile(filePath, targetDir, scanner, options) {
5450
- if (!existsSync20(filePath)) return null;
5709
+ if (!existsSync21(filePath)) return null;
5451
5710
  let content;
5452
5711
  try {
5453
5712
  content = readFileSync11(filePath, "utf8");
@@ -5501,7 +5760,7 @@ function formatTextOutput(result) {
5501
5760
  }
5502
5761
  }
5503
5762
  function createScanConfigCommand() {
5504
- const command = new Command51("scan-config").description(
5763
+ const command = new Command52("scan-config").description(
5505
5764
  "Scan CLAUDE.md, AGENTS.md, .gemini/settings.json, and skill.yaml for prompt injection patterns"
5506
5765
  ).option("--path <dir>", "Target directory to scan (default: cwd)").option("--fix", "Strip high-severity patterns from files in-place").action(async (opts, cmd) => {
5507
5766
  const globalOpts = cmd.optsWithGlobals();
@@ -5518,24 +5777,24 @@ function createScanConfigCommand() {
5518
5777
  }
5519
5778
 
5520
5779
  // src/commands/setup.ts
5521
- import { Command as Command52 } from "commander";
5522
- import * as fs23 from "fs";
5780
+ import { Command as Command53 } from "commander";
5781
+ import * as fs24 from "fs";
5523
5782
  import * as os7 from "os";
5524
5783
  import * as path42 from "path";
5525
5784
  import chalk8 from "chalk";
5526
5785
 
5527
5786
  // src/utils/first-run.ts
5528
- import * as fs22 from "fs";
5787
+ import * as fs23 from "fs";
5529
5788
  import * as os6 from "os";
5530
5789
  import * as path41 from "path";
5531
5790
  var HARNESS_DIR = path41.join(os6.homedir(), ".harness");
5532
5791
  var MARKER_FILE = path41.join(HARNESS_DIR, ".setup-complete");
5533
5792
  function isFirstRun() {
5534
- return !fs22.existsSync(MARKER_FILE);
5793
+ return !fs23.existsSync(MARKER_FILE);
5535
5794
  }
5536
5795
  function markSetupComplete() {
5537
- fs22.mkdirSync(HARNESS_DIR, { recursive: true });
5538
- fs22.writeFileSync(MARKER_FILE, "", "utf-8");
5796
+ fs23.mkdirSync(HARNESS_DIR, { recursive: true });
5797
+ fs23.writeFileSync(MARKER_FILE, "", "utf-8");
5539
5798
  }
5540
5799
  function printFirstRunWelcome() {
5541
5800
  try {
@@ -5573,7 +5832,7 @@ function runSlashCommandGeneration() {
5573
5832
  }
5574
5833
  }
5575
5834
  function detectClient(dirName) {
5576
- return fs23.existsSync(path42.join(os7.homedir(), dirName));
5835
+ return fs24.existsSync(path42.join(os7.homedir(), dirName));
5577
5836
  }
5578
5837
  async function runMcpSetup(cwd) {
5579
5838
  const results = [];
@@ -5625,7 +5884,7 @@ function configureTier0Integrations(cwd) {
5625
5884
  added.push(integration.displayName);
5626
5885
  }
5627
5886
  const geminiDir = path42.join(cwd, ".gemini");
5628
- if (fs23.existsSync(geminiDir)) {
5887
+ if (fs24.existsSync(geminiDir)) {
5629
5888
  const geminiPath = path42.join(geminiDir, "settings.json");
5630
5889
  const geminiConfig = readMcpConfig(geminiPath);
5631
5890
  for (const integration of tier0) {
@@ -5646,6 +5905,44 @@ function configureTier0Integrations(cwd) {
5646
5905
  return { status: "fail", message: `Tier 0 integration configuration failed \u2014 ${msg}` };
5647
5906
  }
5648
5907
  }
5908
+ function ensureHooks(cwd) {
5909
+ const configPath = path42.join(cwd, "harness.config.json");
5910
+ if (!fs24.existsSync(configPath)) {
5911
+ return { status: "warn", message: "Not a harness project \u2014 skipped hook installation" };
5912
+ }
5913
+ let profile = "standard";
5914
+ const profilePath = path42.join(cwd, ".harness", "hooks", "profile.json");
5915
+ try {
5916
+ const data = JSON.parse(fs24.readFileSync(profilePath, "utf-8"));
5917
+ if (data.profile && ["minimal", "standard", "strict"].includes(data.profile)) {
5918
+ profile = data.profile;
5919
+ }
5920
+ } catch {
5921
+ }
5922
+ try {
5923
+ const result = initHooks({ profile, projectDir: cwd });
5924
+ return {
5925
+ status: "pass",
5926
+ message: `Installed ${result.copiedScripts.length} hooks (${profile} profile)`
5927
+ };
5928
+ } catch (error) {
5929
+ const msg = error instanceof Error ? error.message : String(error);
5930
+ return { status: "warn", message: `Hook installation skipped \u2014 ${msg}` };
5931
+ }
5932
+ }
5933
+ async function runInitialGraphScan(cwd) {
5934
+ try {
5935
+ const { runScan: runScan2 } = await import("./scan-U67OKDRS.js");
5936
+ const result = await runScan2(cwd);
5937
+ return {
5938
+ status: "pass",
5939
+ message: `Built knowledge graph: ${result.nodeCount} nodes, ${result.edgeCount} edges`
5940
+ };
5941
+ } catch (error) {
5942
+ const msg = error instanceof Error ? error.message : String(error);
5943
+ return { status: "warn", message: `Knowledge graph creation skipped \u2014 ${msg}` };
5944
+ }
5945
+ }
5649
5946
  async function runSetup(cwd) {
5650
5947
  const steps = [];
5651
5948
  const nodeResult = checkNodeVersion3();
@@ -5659,6 +5956,10 @@ async function runSetup(cwd) {
5659
5956
  steps.push(...mcpResults);
5660
5957
  const tier0Result = configureTier0Integrations(cwd);
5661
5958
  steps.push(tier0Result);
5959
+ const hooksResult = ensureHooks(cwd);
5960
+ steps.push(hooksResult);
5961
+ const graphResult = await runInitialGraphScan(cwd);
5962
+ steps.push(graphResult);
5662
5963
  const success = steps.every((s) => s.status !== "fail");
5663
5964
  if (success) {
5664
5965
  markSetupComplete();
@@ -5666,7 +5967,7 @@ async function runSetup(cwd) {
5666
5967
  return { steps, success };
5667
5968
  }
5668
5969
  function createSetupCommand() {
5669
- return new Command52("setup").description("Configure harness environment: slash commands, MCP, and more").action(async () => {
5970
+ return new Command53("setup").description("Configure harness environment: slash commands, MCP, and more").action(async () => {
5670
5971
  const cwd = process.cwd();
5671
5972
  console.log("");
5672
5973
  console.log(` ${chalk8.bold("harness setup")}`);
@@ -5688,15 +5989,15 @@ function createSetupCommand() {
5688
5989
  }
5689
5990
 
5690
5991
  // src/commands/share.ts
5691
- import { Command as Command53 } from "commander";
5692
- import * as fs24 from "fs";
5992
+ import { Command as Command54 } from "commander";
5993
+ import * as fs25 from "fs";
5693
5994
  import * as path43 from "path";
5694
5995
  import { parse as parseYaml } from "yaml";
5695
5996
  var MANIFEST_FILENAME = "constraints.yaml";
5696
5997
  async function runShareAction(projectPath, options) {
5697
5998
  const rootDir = path43.resolve(projectPath);
5698
5999
  const manifestPath = path43.join(rootDir, MANIFEST_FILENAME);
5699
- if (!fs24.existsSync(manifestPath)) {
6000
+ if (!fs25.existsSync(manifestPath)) {
5700
6001
  logger.error(
5701
6002
  `No ${MANIFEST_FILENAME} found at ${manifestPath}.
5702
6003
  Create a constraints.yaml in your project root to define what to share.`
@@ -5705,7 +6006,7 @@ Create a constraints.yaml in your project root to define what to share.`
5705
6006
  }
5706
6007
  let parsed;
5707
6008
  try {
5708
- const raw = fs24.readFileSync(manifestPath, "utf-8");
6009
+ const raw = fs25.readFileSync(manifestPath, "utf-8");
5709
6010
  parsed = parseYaml(raw);
5710
6011
  } catch (err) {
5711
6012
  logger.error(
@@ -5747,28 +6048,28 @@ Create a constraints.yaml in your project root to define what to share.`
5747
6048
  logger.success(`Bundle written to ${outputPath}`);
5748
6049
  }
5749
6050
  function createShareCommand() {
5750
- return new Command53("share").description("Extract and publish a constraints bundle from constraints.yaml").argument("[path]", "Path to the project root", ".").option("-o, --output <dir>", "Output directory for the bundle", ".").action(async (projectPath, options) => {
6051
+ return new Command54("share").description("Extract and publish a constraints bundle from constraints.yaml").argument("[path]", "Path to the project root", ".").option("-o, --output <dir>", "Output directory for the bundle", ".").action(async (projectPath, options) => {
5751
6052
  await runShareAction(projectPath, options);
5752
6053
  });
5753
6054
  }
5754
6055
 
5755
6056
  // src/commands/skill/index.ts
5756
- import { Command as Command61 } from "commander";
6057
+ import { Command as Command62 } from "commander";
5757
6058
 
5758
6059
  // src/commands/skill/list.ts
5759
- import { Command as Command54 } from "commander";
5760
- import * as fs25 from "fs";
6060
+ import { Command as Command55 } from "commander";
6061
+ import * as fs26 from "fs";
5761
6062
  import * as path44 from "path";
5762
6063
  import { parse } from "yaml";
5763
6064
  function scanDirectory(dirPath, source) {
5764
- if (!fs25.existsSync(dirPath)) return [];
5765
- const entries = fs25.readdirSync(dirPath, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
6065
+ if (!fs26.existsSync(dirPath)) return [];
6066
+ const entries = fs26.readdirSync(dirPath, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
5766
6067
  const skills = [];
5767
6068
  for (const name of entries) {
5768
6069
  const yamlPath = path44.join(dirPath, name, "skill.yaml");
5769
- if (!fs25.existsSync(yamlPath)) continue;
6070
+ if (!fs26.existsSync(yamlPath)) continue;
5770
6071
  try {
5771
- const raw = fs25.readFileSync(yamlPath, "utf-8");
6072
+ const raw = fs26.readFileSync(yamlPath, "utf-8");
5772
6073
  const parsed = parse(raw);
5773
6074
  const result = SkillMetadataSchema.safeParse(parsed);
5774
6075
  if (result.success) {
@@ -5859,7 +6160,7 @@ function printSkillsVerbose(skills) {
5859
6160
  for (const s of skills) printSkillEntry(s);
5860
6161
  }
5861
6162
  function createListCommand3() {
5862
- return new Command54("list").description("List available skills").option("--installed", "Show only community-installed skills").option("--local", "Show only project-local skills").option("--all", "Show all skills (default)").action(async (opts, cmd) => {
6163
+ return new Command55("list").description("List available skills").option("--installed", "Show only community-installed skills").option("--local", "Show only project-local skills").option("--all", "Show all skills (default)").action(async (opts, cmd) => {
5863
6164
  const globalOpts = cmd.optsWithGlobals();
5864
6165
  const skills = collectSkills({ filter: resolveFilter(opts) });
5865
6166
  if (globalOpts.json) {
@@ -5874,8 +6175,8 @@ function createListCommand3() {
5874
6175
  }
5875
6176
 
5876
6177
  // src/commands/skill/run.ts
5877
- import { Command as Command55 } from "commander";
5878
- import * as fs26 from "fs";
6178
+ import { Command as Command56 } from "commander";
6179
+ import * as fs27 from "fs";
5879
6180
  import * as path45 from "path";
5880
6181
  import { parse as parse2 } from "yaml";
5881
6182
 
@@ -5973,9 +6274,9 @@ ${options.principles}`);
5973
6274
  // src/commands/skill/run.ts
5974
6275
  function loadSkillMetadata(skillDir) {
5975
6276
  const yamlPath = path45.join(skillDir, "skill.yaml");
5976
- if (!fs26.existsSync(yamlPath)) return null;
6277
+ if (!fs27.existsSync(yamlPath)) return null;
5977
6278
  try {
5978
- const result = SkillMetadataSchema.safeParse(parse2(fs26.readFileSync(yamlPath, "utf-8")));
6279
+ const result = SkillMetadataSchema.safeParse(parse2(fs27.readFileSync(yamlPath, "utf-8")));
5979
6280
  return result.success ? result.data : null;
5980
6281
  } catch {
5981
6282
  return null;
@@ -5988,21 +6289,21 @@ function resolveComplexity(metadata, requested, projectPath) {
5988
6289
  }
5989
6290
  function loadPrinciples(projectPath) {
5990
6291
  const principlesPath = path45.join(projectPath, "docs", "principles.md");
5991
- return fs26.existsSync(principlesPath) ? fs26.readFileSync(principlesPath, "utf-8") : void 0;
6292
+ return fs27.existsSync(principlesPath) ? fs27.readFileSync(principlesPath, "utf-8") : void 0;
5992
6293
  }
5993
6294
  function readMostRecentFileInDir(dirPath) {
5994
- const files = fs26.readdirSync(dirPath).map((f) => ({ name: f, mtime: fs26.statSync(path45.join(dirPath, f)).mtimeMs })).sort((a, b) => b.mtime - a.mtime);
5995
- if (files.length > 0) return fs26.readFileSync(path45.join(dirPath, files[0].name), "utf-8");
6295
+ const files = fs27.readdirSync(dirPath).map((f) => ({ name: f, mtime: fs27.statSync(path45.join(dirPath, f)).mtimeMs })).sort((a, b) => b.mtime - a.mtime);
6296
+ if (files.length > 0) return fs27.readFileSync(path45.join(dirPath, files[0].name), "utf-8");
5996
6297
  return void 0;
5997
6298
  }
5998
6299
  function loadPriorState(metadata, projectPath) {
5999
6300
  if (!metadata?.state.persistent || metadata.state.files.length === 0) return void 0;
6000
6301
  for (const stateFilePath of metadata.state.files) {
6001
6302
  const fullPath = path45.join(projectPath, stateFilePath);
6002
- if (!fs26.existsSync(fullPath)) continue;
6003
- const stat = fs26.statSync(fullPath);
6303
+ if (!fs27.existsSync(fullPath)) continue;
6304
+ const stat = fs27.statSync(fullPath);
6004
6305
  if (stat.isDirectory()) return readMostRecentFileInDir(fullPath);
6005
- return fs26.readFileSync(fullPath, "utf-8");
6306
+ return fs27.readFileSync(fullPath, "utf-8");
6006
6307
  }
6007
6308
  return void 0;
6008
6309
  }
@@ -6023,8 +6324,8 @@ function resolvePhaseState(metadata, projectPath, phase) {
6023
6324
  function appendProjectState(content, metadata, projectPath, hasPathOpt) {
6024
6325
  if (!metadata?.state.persistent || !hasPathOpt) return content;
6025
6326
  const stateFile = path45.join(projectPath, ".harness", "state.json");
6026
- if (!fs26.existsSync(stateFile)) return content;
6027
- const stateContent = fs26.readFileSync(stateFile, "utf-8");
6327
+ if (!fs27.existsSync(stateFile)) return content;
6328
+ const stateContent = fs27.readFileSync(stateFile, "utf-8");
6028
6329
  return content + `
6029
6330
 
6030
6331
  ---
@@ -6037,7 +6338,7 @@ ${stateContent}
6037
6338
  async function runSkill(name, opts) {
6038
6339
  const skillsDir = resolveSkillsDir();
6039
6340
  const skillDir = path45.join(skillsDir, name);
6040
- if (!fs26.existsSync(skillDir)) {
6341
+ if (!fs27.existsSync(skillDir)) {
6041
6342
  logger.error(`Skill not found: ${name}`);
6042
6343
  process.exit(ExitCode.ERROR);
6043
6344
  return;
@@ -6071,13 +6372,13 @@ async function runSkill(name, opts) {
6071
6372
  ...opts.party !== void 0 && { party: opts.party }
6072
6373
  });
6073
6374
  const skillMdPath = path45.join(skillDir, "SKILL.md");
6074
- if (!fs26.existsSync(skillMdPath)) {
6375
+ if (!fs27.existsSync(skillMdPath)) {
6075
6376
  logger.error(`SKILL.md not found for skill: ${name}`);
6076
6377
  process.exit(ExitCode.ERROR);
6077
6378
  return;
6078
6379
  }
6079
6380
  const content = appendProjectState(
6080
- fs26.readFileSync(skillMdPath, "utf-8"),
6381
+ fs27.readFileSync(skillMdPath, "utf-8"),
6081
6382
  metadata,
6082
6383
  projectPath,
6083
6384
  !!opts.path
@@ -6086,12 +6387,12 @@ async function runSkill(name, opts) {
6086
6387
  process.exit(ExitCode.SUCCESS);
6087
6388
  }
6088
6389
  function createRunCommand2() {
6089
- return new Command55("run").description("Run a skill (outputs SKILL.md content with context preamble)").argument("<name>", "Skill name (e.g., harness-tdd)").option("--path <path>", "Project root path for context injection").option("--complexity <level>", "Rigor level: fast, standard, thorough", "standard").option("--phase <name>", "Start at a specific phase (for re-entry)").option("--party", "Enable multi-perspective evaluation").action(async (name, opts) => runSkill(name, opts));
6390
+ return new Command56("run").description("Run a skill (outputs SKILL.md content with context preamble)").argument("<name>", "Skill name (e.g., harness-tdd)").option("--path <path>", "Project root path for context injection").option("--complexity <level>", "Rigor level: fast, standard, thorough", "standard").option("--phase <name>", "Start at a specific phase (for re-entry)").option("--party", "Enable multi-perspective evaluation").action(async (name, opts) => runSkill(name, opts));
6090
6391
  }
6091
6392
 
6092
6393
  // src/commands/skill/validate.ts
6093
- import { Command as Command56 } from "commander";
6094
- import * as fs27 from "fs";
6394
+ import { Command as Command57 } from "commander";
6395
+ import * as fs28 from "fs";
6095
6396
  import * as path46 from "path";
6096
6397
  import { parse as parse3 } from "yaml";
6097
6398
  var BEHAVIORAL_REQUIRED_SECTIONS = [
@@ -6104,11 +6405,11 @@ var BEHAVIORAL_REQUIRED_SECTIONS = [
6104
6405
  ];
6105
6406
  var KNOWLEDGE_REQUIRED_SECTIONS = ["## Instructions"];
6106
6407
  function validateSkillMd(name, skillMdPath, skillType, errors) {
6107
- if (!fs27.existsSync(skillMdPath)) {
6408
+ if (!fs28.existsSync(skillMdPath)) {
6108
6409
  errors.push(`${name}: missing SKILL.md`);
6109
6410
  return;
6110
6411
  }
6111
- const mdContent = fs27.readFileSync(skillMdPath, "utf-8");
6412
+ const mdContent = fs28.readFileSync(skillMdPath, "utf-8");
6112
6413
  if (!mdContent.trim().startsWith("# ")) {
6113
6414
  errors.push(`${name}/SKILL.md: must start with an h1 heading`);
6114
6415
  }
@@ -6135,12 +6436,12 @@ function validateSkillMd(name, skillMdPath, skillType, errors) {
6135
6436
  function validateSkillEntry(name, skillsDir, errors) {
6136
6437
  const skillDir = path46.join(skillsDir, name);
6137
6438
  const yamlPath = path46.join(skillDir, "skill.yaml");
6138
- if (!fs27.existsSync(yamlPath)) {
6439
+ if (!fs28.existsSync(yamlPath)) {
6139
6440
  errors.push(`${name}: missing skill.yaml`);
6140
6441
  return false;
6141
6442
  }
6142
6443
  try {
6143
- const raw = fs27.readFileSync(yamlPath, "utf-8");
6444
+ const raw = fs28.readFileSync(yamlPath, "utf-8");
6144
6445
  const result = SkillMetadataSchema.safeParse(parse3(raw));
6145
6446
  if (!result.success) {
6146
6447
  errors.push(`${name}/skill.yaml: ${result.error.message}`);
@@ -6154,15 +6455,15 @@ function validateSkillEntry(name, skillsDir, errors) {
6154
6455
  }
6155
6456
  }
6156
6457
  function createValidateCommand2() {
6157
- return new Command56("validate").description("Validate all skill.yaml files and SKILL.md structure").action(async (_opts, cmd) => {
6458
+ return new Command57("validate").description("Validate all skill.yaml files and SKILL.md structure").action(async (_opts, cmd) => {
6158
6459
  const globalOpts = cmd.optsWithGlobals();
6159
6460
  const skillsDir = resolveSkillsDir();
6160
- if (!fs27.existsSync(skillsDir)) {
6461
+ if (!fs28.existsSync(skillsDir)) {
6161
6462
  logger.info("No skills directory found.");
6162
6463
  process.exit(ExitCode.SUCCESS);
6163
6464
  return;
6164
6465
  }
6165
- const entries = fs27.readdirSync(skillsDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
6466
+ const entries = fs28.readdirSync(skillsDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
6166
6467
  const errors = [];
6167
6468
  let validated = 0;
6168
6469
  for (const name of entries) {
@@ -6184,24 +6485,24 @@ function createValidateCommand2() {
6184
6485
  }
6185
6486
 
6186
6487
  // src/commands/skill/info.ts
6187
- import { Command as Command57 } from "commander";
6188
- import * as fs28 from "fs";
6488
+ import { Command as Command58 } from "commander";
6489
+ import * as fs29 from "fs";
6189
6490
  import * as path47 from "path";
6190
6491
  import { parse as parse4 } from "yaml";
6191
6492
  function loadSkillMetadata2(name) {
6192
6493
  const skillsDir = resolveSkillsDir();
6193
6494
  const skillDir = path47.join(skillsDir, name);
6194
- if (!fs28.existsSync(skillDir)) {
6495
+ if (!fs29.existsSync(skillDir)) {
6195
6496
  logger.error(`Skill not found: ${name}`);
6196
6497
  return { ok: false, exitCode: ExitCode.ERROR };
6197
6498
  }
6198
6499
  const yamlPath = path47.join(skillDir, "skill.yaml");
6199
- if (!fs28.existsSync(yamlPath)) {
6500
+ if (!fs29.existsSync(yamlPath)) {
6200
6501
  logger.error(`skill.yaml not found for skill: ${name}`);
6201
6502
  return { ok: false, exitCode: ExitCode.ERROR };
6202
6503
  }
6203
6504
  try {
6204
- const raw = fs28.readFileSync(yamlPath, "utf-8");
6505
+ const raw = fs29.readFileSync(yamlPath, "utf-8");
6205
6506
  const parsed = parse4(raw);
6206
6507
  const result = SkillMetadataSchema.safeParse(parsed);
6207
6508
  if (!result.success) {
@@ -6230,7 +6531,7 @@ function printSkillInfo(skill) {
6230
6531
  console.log(`Persistent: ${skill.state.persistent}`);
6231
6532
  }
6232
6533
  function createInfoCommand() {
6233
- return new Command57("info").description("Show metadata for a skill").argument("<name>", "Skill name (e.g., harness-tdd)").action(async (name, _opts, cmd) => {
6534
+ return new Command58("info").description("Show metadata for a skill").argument("<name>", "Skill name (e.g., harness-tdd)").action(async (name, _opts, cmd) => {
6234
6535
  const globalOpts = cmd.optsWithGlobals();
6235
6536
  const loaded = loadSkillMetadata2(name);
6236
6537
  if (!loaded.ok) {
@@ -6247,7 +6548,7 @@ function createInfoCommand() {
6247
6548
  }
6248
6549
 
6249
6550
  // src/commands/skill/search.ts
6250
- import { Command as Command58 } from "commander";
6551
+ import { Command as Command59 } from "commander";
6251
6552
  async function runSearch(query, opts) {
6252
6553
  const results = await searchNpmRegistry(query, opts.registry);
6253
6554
  return results.filter((r) => {
@@ -6292,15 +6593,15 @@ async function runSearchAction(query, opts, globalOpts) {
6292
6593
  }
6293
6594
  }
6294
6595
  function createSearchCommand() {
6295
- return new Command58("search").description("Search for community skills on the @harness-skills registry").argument("<query>", "Search query").option("--platform <platform>", "Filter by platform (e.g., claude-code)").option("--trigger <trigger>", "Filter by trigger type (e.g., manual, automatic)").option("--registry <url>", "Use a custom npm registry URL").action(async (query, opts, cmd) => {
6596
+ return new Command59("search").description("Search for community skills on the @harness-skills registry").argument("<query>", "Search query").option("--platform <platform>", "Filter by platform (e.g., claude-code)").option("--trigger <trigger>", "Filter by trigger type (e.g., manual, automatic)").option("--registry <url>", "Use a custom npm registry URL").action(async (query, opts, cmd) => {
6296
6597
  await runSearchAction(query, opts, cmd.optsWithGlobals());
6297
6598
  });
6298
6599
  }
6299
6600
 
6300
6601
  // src/commands/skill/create.ts
6301
- import { Command as Command59 } from "commander";
6602
+ import { Command as Command60 } from "commander";
6302
6603
  import * as path48 from "path";
6303
- import * as fs29 from "fs";
6604
+ import * as fs30 from "fs";
6304
6605
  import YAML from "yaml";
6305
6606
  var KEBAB_CASE_RE = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
6306
6607
  function buildReadme(name, description) {
@@ -6386,20 +6687,20 @@ function runCreate(name, opts) {
6386
6687
  }
6387
6688
  const baseDir = opts.outputDir ?? path48.join(process.cwd(), "agents", "skills", "claude-code");
6388
6689
  const skillDir = path48.join(baseDir, name);
6389
- if (fs29.existsSync(skillDir)) {
6690
+ if (fs30.existsSync(skillDir)) {
6390
6691
  throw new Error(`Skill directory already exists: ${skillDir}`);
6391
6692
  }
6392
- fs29.mkdirSync(skillDir, { recursive: true });
6693
+ fs30.mkdirSync(skillDir, { recursive: true });
6393
6694
  const description = opts.description || `A community skill: ${name}`;
6394
6695
  const skillYaml = buildSkillYaml(name, opts);
6395
6696
  const skillYamlPath = path48.join(skillDir, "skill.yaml");
6396
- fs29.writeFileSync(skillYamlPath, YAML.stringify(skillYaml));
6697
+ fs30.writeFileSync(skillYamlPath, YAML.stringify(skillYaml));
6397
6698
  const skillMd = buildSkillMd(name, description);
6398
6699
  const skillMdPath = path48.join(skillDir, "SKILL.md");
6399
- fs29.writeFileSync(skillMdPath, skillMd);
6700
+ fs30.writeFileSync(skillMdPath, skillMd);
6400
6701
  const readme = buildReadme(name, description);
6401
6702
  const readmePath = path48.join(skillDir, "README.md");
6402
- fs29.writeFileSync(readmePath, readme);
6703
+ fs30.writeFileSync(readmePath, readme);
6403
6704
  return {
6404
6705
  name,
6405
6706
  directory: skillDir,
@@ -6418,7 +6719,7 @@ Next steps:`);
6418
6719
  logger.info(` 3. Run: harness skills publish`);
6419
6720
  }
6420
6721
  function createCreateCommand() {
6421
- return new Command59("create").description("Scaffold a new community skill").argument("<name>", "Skill name (kebab-case)").option("--description <desc>", "Skill description").option("--type <type>", "Skill type: rigid or flexible", "flexible").option("--platforms <platforms>", "Comma-separated platforms (default: claude-code)").option("--triggers <triggers>", "Comma-separated triggers (default: manual)").option("--output-dir <dir>", "Output directory (default: agents/skills/claude-code/)").action(async (name, opts, cmd) => {
6722
+ return new Command60("create").description("Scaffold a new community skill").argument("<name>", "Skill name (kebab-case)").option("--description <desc>", "Skill description").option("--type <type>", "Skill type: rigid or flexible", "flexible").option("--platforms <platforms>", "Comma-separated platforms (default: claude-code)").option("--triggers <triggers>", "Comma-separated triggers (default: manual)").option("--output-dir <dir>", "Output directory (default: agents/skills/claude-code/)").action(async (name, opts, cmd) => {
6422
6723
  const globalOpts = cmd.optsWithGlobals();
6423
6724
  try {
6424
6725
  const result = runCreate(name, {
@@ -6441,26 +6742,26 @@ function createCreateCommand() {
6441
6742
  }
6442
6743
 
6443
6744
  // src/commands/skill/publish.ts
6444
- import { Command as Command60 } from "commander";
6445
- import * as fs31 from "fs";
6745
+ import { Command as Command61 } from "commander";
6746
+ import * as fs32 from "fs";
6446
6747
  import * as path50 from "path";
6447
6748
  import { execFileSync as execFileSync5 } from "child_process";
6448
6749
 
6449
6750
  // src/registry/validator.ts
6450
- import * as fs30 from "fs";
6751
+ import * as fs31 from "fs";
6451
6752
  import * as path49 from "path";
6452
6753
  import { parse as parse5 } from "yaml";
6453
6754
  import semver4 from "semver";
6454
6755
  async function validateForPublish(skillDir, registryUrl) {
6455
6756
  const errors = [];
6456
6757
  const skillYamlPath = path49.join(skillDir, "skill.yaml");
6457
- if (!fs30.existsSync(skillYamlPath)) {
6758
+ if (!fs31.existsSync(skillYamlPath)) {
6458
6759
  errors.push("skill.yaml not found. Create one with: harness skill create <name>");
6459
6760
  return { valid: false, errors };
6460
6761
  }
6461
6762
  let skillMeta;
6462
6763
  try {
6463
- const raw = fs30.readFileSync(skillYamlPath, "utf-8");
6764
+ const raw = fs31.readFileSync(skillYamlPath, "utf-8");
6464
6765
  const parsed = parse5(raw);
6465
6766
  const result = SkillMetadataSchema.safeParse(parsed);
6466
6767
  if (!result.success) {
@@ -6483,10 +6784,10 @@ async function validateForPublish(skillDir, registryUrl) {
6483
6784
  errors.push("At least one trigger is required. Add triggers to skill.yaml.");
6484
6785
  }
6485
6786
  const skillMdPath = path49.join(skillDir, "SKILL.md");
6486
- if (!fs30.existsSync(skillMdPath)) {
6787
+ if (!fs31.existsSync(skillMdPath)) {
6487
6788
  errors.push("SKILL.md not found. Create it with content describing your skill.");
6488
6789
  } else {
6489
- const content = fs30.readFileSync(skillMdPath, "utf-8");
6790
+ const content = fs31.readFileSync(skillMdPath, "utf-8");
6490
6791
  if (!content.includes("## When to Use")) {
6491
6792
  errors.push('SKILL.md must contain a "## When to Use" section.');
6492
6793
  }
@@ -6567,10 +6868,10 @@ ${errorList}`);
6567
6868
  const meta = validation.skillMeta;
6568
6869
  const pkg = derivePackageJson(meta);
6569
6870
  const pkgPath = path50.join(skillDir, "package.json");
6570
- fs31.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
6871
+ fs32.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
6571
6872
  const readmePath = path50.join(skillDir, "README.md");
6572
- if (!fs31.existsSync(readmePath)) {
6573
- const skillMdContent = fs31.readFileSync(path50.join(skillDir, "SKILL.md"), "utf-8");
6873
+ if (!fs32.existsSync(readmePath)) {
6874
+ const skillMdContent = fs32.readFileSync(path50.join(skillDir, "SKILL.md"), "utf-8");
6574
6875
  const readme = `# ${pkg.name}
6575
6876
 
6576
6877
  ${meta.description}
@@ -6584,7 +6885,7 @@ harness install ${meta.name}
6584
6885
  ---
6585
6886
 
6586
6887
  ${skillMdContent}`;
6587
- fs31.writeFileSync(readmePath, readme);
6888
+ fs32.writeFileSync(readmePath, readme);
6588
6889
  }
6589
6890
  if (opts.dryRun) {
6590
6891
  return {
@@ -6610,7 +6911,7 @@ ${skillMdContent}`;
6610
6911
  };
6611
6912
  }
6612
6913
  function createPublishCommand() {
6613
- return new Command60("publish").description("Validate and publish a skill to @harness-skills on npm").option("--dry-run", "Run validation and generate package.json without publishing").option("--dir <dir>", "Skill directory (default: current directory)").option("--registry <url>", "Use a custom npm registry URL").action(async (opts, cmd) => {
6914
+ return new Command61("publish").description("Validate and publish a skill to @harness-skills on npm").option("--dry-run", "Run validation and generate package.json without publishing").option("--dir <dir>", "Skill directory (default: current directory)").option("--registry <url>", "Use a custom npm registry URL").action(async (opts, cmd) => {
6614
6915
  const globalOpts = cmd.optsWithGlobals();
6615
6916
  const skillDir = opts.dir || process.cwd();
6616
6917
  try {
@@ -6635,7 +6936,7 @@ function createPublishCommand() {
6635
6936
 
6636
6937
  // src/commands/skill/index.ts
6637
6938
  function createSkillCommand() {
6638
- const command = new Command61("skill").description("Skill management commands");
6939
+ const command = new Command62("skill").description("Skill management commands");
6639
6940
  command.addCommand(createListCommand3());
6640
6941
  command.addCommand(createRunCommand2());
6641
6942
  command.addCommand(createValidateCommand2());
@@ -6647,7 +6948,7 @@ function createSkillCommand() {
6647
6948
  }
6648
6949
 
6649
6950
  // src/commands/snapshot.ts
6650
- import { Command as Command62 } from "commander";
6951
+ import { Command as Command63 } from "commander";
6651
6952
  import { execSync as execSync5 } from "child_process";
6652
6953
  import chalk9 from "chalk";
6653
6954
  function getCommitHash3(cwd) {
@@ -6829,7 +7130,7 @@ function registerListCommand(parent) {
6829
7130
  });
6830
7131
  }
6831
7132
  function createSnapshotCommand() {
6832
- const command = new Command62("snapshot").description("Architecture timeline snapshot commands");
7133
+ const command = new Command63("snapshot").description("Architecture timeline snapshot commands");
6833
7134
  registerCaptureCommand(command);
6834
7135
  registerTrendsCommand(command);
6835
7136
  registerListCommand(command);
@@ -6837,10 +7138,10 @@ function createSnapshotCommand() {
6837
7138
  }
6838
7139
 
6839
7140
  // src/commands/state/index.ts
6840
- import { Command as Command67 } from "commander";
7141
+ import { Command as Command68 } from "commander";
6841
7142
 
6842
7143
  // src/commands/state/show.ts
6843
- import { Command as Command63 } from "commander";
7144
+ import { Command as Command64 } from "commander";
6844
7145
  import * as path51 from "path";
6845
7146
  function printStateText(state, stream) {
6846
7147
  if (stream) console.log(`Stream: ${stream}`);
@@ -6865,7 +7166,7 @@ function printStateProgress(progress) {
6865
7166
  }
6866
7167
  }
6867
7168
  function createShowCommand() {
6868
- return new Command63("show").description("Show current project state").option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").action(async (opts, cmd) => {
7169
+ return new Command64("show").description("Show current project state").option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").action(async (opts, cmd) => {
6869
7170
  const globalOpts = cmd.optsWithGlobals();
6870
7171
  const result = await loadState(path51.resolve(opts.path), opts.stream);
6871
7172
  if (!result.ok) {
@@ -6882,8 +7183,8 @@ function createShowCommand() {
6882
7183
  }
6883
7184
 
6884
7185
  // src/commands/state/reset.ts
6885
- import { Command as Command64 } from "commander";
6886
- import * as fs32 from "fs";
7186
+ import { Command as Command65 } from "commander";
7187
+ import * as fs33 from "fs";
6887
7188
  import * as path52 from "path";
6888
7189
  import * as readline from "readline";
6889
7190
  async function resolveStatePath(projectPath, stream) {
@@ -6908,7 +7209,7 @@ async function confirmReset() {
6908
7209
  async function runReset(opts) {
6909
7210
  const projectPath = path52.resolve(opts.path);
6910
7211
  const statePath = await resolveStatePath(projectPath, opts.stream);
6911
- if (!fs32.existsSync(statePath)) {
7212
+ if (!fs33.existsSync(statePath)) {
6912
7213
  logger.info("No state file found. Nothing to reset.");
6913
7214
  process.exit(ExitCode.SUCCESS);
6914
7215
  }
@@ -6917,7 +7218,7 @@ async function runReset(opts) {
6917
7218
  process.exit(ExitCode.SUCCESS);
6918
7219
  }
6919
7220
  try {
6920
- fs32.unlinkSync(statePath);
7221
+ fs33.unlinkSync(statePath);
6921
7222
  logger.success("Project state reset.");
6922
7223
  } catch (e) {
6923
7224
  logger.error(`Failed to reset state: ${e instanceof Error ? e.message : String(e)}`);
@@ -6926,14 +7227,14 @@ async function runReset(opts) {
6926
7227
  process.exit(ExitCode.SUCCESS);
6927
7228
  }
6928
7229
  function createResetCommand() {
6929
- return new Command64("reset").description("Reset project state (deletes .harness/state.json)").option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").option("--yes", "Skip confirmation prompt").action(async (opts) => runReset(opts));
7230
+ return new Command65("reset").description("Reset project state (deletes .harness/state.json)").option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").option("--yes", "Skip confirmation prompt").action(async (opts) => runReset(opts));
6930
7231
  }
6931
7232
 
6932
7233
  // src/commands/state/learn.ts
6933
- import { Command as Command65 } from "commander";
7234
+ import { Command as Command66 } from "commander";
6934
7235
  import * as path53 from "path";
6935
7236
  function createLearnCommand() {
6936
- return new Command65("learn").description("Append a learning to .harness/learnings.md").argument("<message>", "The learning to record").option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").action(async (message, opts, _cmd) => {
7237
+ return new Command66("learn").description("Append a learning to .harness/learnings.md").argument("<message>", "The learning to record").option("--path <path>", "Project root path", ".").option("--stream <name>", "Target a specific stream").action(async (message, opts, _cmd) => {
6937
7238
  const projectPath = path53.resolve(opts.path);
6938
7239
  const result = await appendLearning(projectPath, message, void 0, void 0, opts.stream);
6939
7240
  if (!result.ok) {
@@ -6947,7 +7248,7 @@ function createLearnCommand() {
6947
7248
  }
6948
7249
 
6949
7250
  // src/commands/state/streams.ts
6950
- import { Command as Command66 } from "commander";
7251
+ import { Command as Command67 } from "commander";
6951
7252
  import * as path54 from "path";
6952
7253
  async function runListStreams(opts, globalOpts) {
6953
7254
  const projectPath = path54.resolve(opts.path);
@@ -6998,7 +7299,7 @@ async function runActivateStream(name, opts) {
6998
7299
  process.exit(ExitCode.SUCCESS);
6999
7300
  }
7000
7301
  function createStreamsCommand() {
7001
- const command = new Command66("streams").description("Manage state streams");
7302
+ const command = new Command67("streams").description("Manage state streams");
7002
7303
  command.command("list").description("List all known streams").option("--path <path>", "Project root path", ".").action(async (opts, cmd) => runListStreams(opts, cmd.optsWithGlobals()));
7003
7304
  command.command("create <name>").description("Create a new stream").option("--path <path>", "Project root path", ".").option("--branch <branch>", "Associate with a git branch").action(async (name, opts) => runCreateStream(name, opts));
7004
7305
  command.command("archive <name>").description("Archive a stream").option("--path <path>", "Project root path", ".").action(async (name, opts) => runArchiveStream(name, opts));
@@ -7008,7 +7309,7 @@ function createStreamsCommand() {
7008
7309
 
7009
7310
  // src/commands/state/index.ts
7010
7311
  function createStateCommand() {
7011
- const command = new Command67("state").description("Project state management commands");
7312
+ const command = new Command68("state").description("Project state management commands");
7012
7313
  command.addCommand(createShowCommand());
7013
7314
  command.addCommand(createResetCommand());
7014
7315
  command.addCommand(createLearnCommand());
@@ -7017,7 +7318,7 @@ function createStateCommand() {
7017
7318
  }
7018
7319
 
7019
7320
  // src/commands/taint.ts
7020
- import { Command as Command68 } from "commander";
7321
+ import { Command as Command69 } from "commander";
7021
7322
  function getProjectRoot() {
7022
7323
  return process.cwd();
7023
7324
  }
@@ -7089,14 +7390,143 @@ function registerStatusCommand(taint) {
7089
7390
  });
7090
7391
  }
7091
7392
  function createTaintCommand() {
7092
- const taint = new Command68("taint").description("Manage sentinel session taint state");
7393
+ const taint = new Command69("taint").description("Manage sentinel session taint state");
7093
7394
  registerClearCommand(taint);
7094
7395
  registerStatusCommand(taint);
7095
7396
  return taint;
7096
7397
  }
7097
7398
 
7399
+ // src/commands/telemetry/index.ts
7400
+ import { Command as Command72 } from "commander";
7401
+
7402
+ // src/commands/telemetry/identify.ts
7403
+ import { Command as Command70 } from "commander";
7404
+ import * as fs34 from "fs";
7405
+ import * as path55 from "path";
7406
+ function telemetryFilePath(cwd) {
7407
+ return path55.join(cwd, ".harness", "telemetry.json");
7408
+ }
7409
+ function writeTelemetryFile(cwd, data) {
7410
+ const filePath = telemetryFilePath(cwd);
7411
+ const dir = path55.dirname(filePath);
7412
+ fs34.mkdirSync(dir, { recursive: true });
7413
+ fs34.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n", "utf-8");
7414
+ }
7415
+ var IDENTITY_FIELDS = ["project", "team", "alias"];
7416
+ function applyIdentityFields(opts, identity) {
7417
+ for (const field of IDENTITY_FIELDS) {
7418
+ if (opts[field]) identity[field] = opts[field];
7419
+ }
7420
+ }
7421
+ function printIdentity(identity) {
7422
+ for (const field of IDENTITY_FIELDS) {
7423
+ if (identity[field]) logger.info(` ${field.padEnd(7)}: ${identity[field]}`);
7424
+ }
7425
+ }
7426
+ function createIdentifyCommand() {
7427
+ const cmd = new Command70("identify").description("Set or clear telemetry identity fields in .harness/telemetry.json").option("--project <name>", "Project name").option("--team <name>", "Team name").option("--alias <name>", "User alias").option("--clear", "Remove all identity fields").action((opts) => {
7428
+ const cwd = process.cwd();
7429
+ if (opts.clear) {
7430
+ writeTelemetryFile(cwd, { identity: {} });
7431
+ logger.success("Telemetry identity cleared.");
7432
+ return;
7433
+ }
7434
+ const hasField = IDENTITY_FIELDS.some((f) => opts[f]);
7435
+ if (!hasField) {
7436
+ logger.error("Provide at least one of --project, --team, --alias, or --clear.");
7437
+ process.exitCode = 1;
7438
+ return;
7439
+ }
7440
+ const existingIdentity = readIdentity(cwd);
7441
+ const existing = { identity: { ...existingIdentity } };
7442
+ applyIdentityFields(opts, existing.identity);
7443
+ writeTelemetryFile(cwd, existing);
7444
+ logger.success("Telemetry identity updated:");
7445
+ printIdentity(existing.identity);
7446
+ });
7447
+ return cmd;
7448
+ }
7449
+
7450
+ // src/commands/telemetry/status.ts
7451
+ import { Command as Command71 } from "commander";
7452
+ function gatherEnvOverrides() {
7453
+ const overrides = {};
7454
+ if (process.env.DO_NOT_TRACK) overrides.DO_NOT_TRACK = process.env.DO_NOT_TRACK;
7455
+ if (process.env.HARNESS_TELEMETRY_OPTOUT)
7456
+ overrides.HARNESS_TELEMETRY_OPTOUT = process.env.HARNESS_TELEMETRY_OPTOUT;
7457
+ return overrides;
7458
+ }
7459
+ function resolveDisabledReason() {
7460
+ if (process.env.DO_NOT_TRACK === "1") return "DO_NOT_TRACK=1";
7461
+ if (process.env.HARNESS_TELEMETRY_OPTOUT === "1") return "HARNESS_TELEMETRY_OPTOUT=1";
7462
+ return "telemetry.enabled is false in config";
7463
+ }
7464
+ function printHumanStatus(result) {
7465
+ logger.info(`Telemetry: ${result.consent.allowed ? "enabled" : "disabled"}`);
7466
+ if (!result.consent.allowed && result.consent.reason) {
7467
+ logger.info(` Reason: ${result.consent.reason}`);
7468
+ }
7469
+ logger.info(`Install ID: ${result.installId ?? "not yet created"}`);
7470
+ const { identity } = result;
7471
+ const hasIdentity = identity.project || identity.team || identity.alias;
7472
+ if (hasIdentity) {
7473
+ logger.info("Identity:");
7474
+ for (const [key, value] of Object.entries(identity)) {
7475
+ if (value) logger.info(` ${key.padEnd(7)}: ${value}`);
7476
+ }
7477
+ } else {
7478
+ logger.info("Identity: not configured");
7479
+ }
7480
+ const overrideKeys = Object.keys(result.envOverrides);
7481
+ if (overrideKeys.length > 0) {
7482
+ logger.info("Env overrides:");
7483
+ for (const key of overrideKeys) {
7484
+ logger.info(` ${key}=${result.envOverrides[key]}`);
7485
+ }
7486
+ }
7487
+ }
7488
+ function createStatusCommand() {
7489
+ const cmd = new Command71("status").description("Show current telemetry consent state, install ID, and identity").option("--json", "Output as JSON").action((opts) => {
7490
+ const cwd = process.cwd();
7491
+ const envOverrides = gatherEnvOverrides();
7492
+ const consent = resolveConsent(cwd, void 0);
7493
+ let installId = null;
7494
+ let identity = {};
7495
+ if (consent.allowed) {
7496
+ identity = readIdentity(cwd);
7497
+ try {
7498
+ installId = getOrCreateInstallId(cwd);
7499
+ } catch {
7500
+ }
7501
+ }
7502
+ const result = {
7503
+ consent: {
7504
+ allowed: consent.allowed,
7505
+ ...!consent.allowed ? { reason: resolveDisabledReason() } : {}
7506
+ },
7507
+ installId,
7508
+ identity,
7509
+ envOverrides
7510
+ };
7511
+ if (opts.json) {
7512
+ console.log(JSON.stringify(result, null, 2));
7513
+ return;
7514
+ }
7515
+ printHumanStatus(result);
7516
+ });
7517
+ return cmd;
7518
+ }
7519
+
7520
+ // src/commands/telemetry/index.ts
7521
+ function createTelemetryCommand() {
7522
+ const command = new Command72("telemetry").description("Telemetry identity and status management");
7523
+ command.addCommand(createIdentifyCommand());
7524
+ command.addCommand(createStatusCommand());
7525
+ return command;
7526
+ }
7527
+
7098
7528
  // src/commands/traceability.ts
7099
- import { Command as Command69 } from "commander";
7529
+ import { Command as Command73 } from "commander";
7100
7530
  import chalk10 from "chalk";
7101
7531
  function confidenceLabel(maxConfidence) {
7102
7532
  if (maxConfidence >= 0.8) return "explicit";
@@ -7212,7 +7642,7 @@ async function runTraceability(options) {
7212
7642
  const projectPath = process.cwd();
7213
7643
  const store = await loadGraphStore(projectPath);
7214
7644
  if (!store) handleNoStore(mode);
7215
- const graphModule = await import("./dist-M6FBUXZD.js");
7645
+ const graphModule = await import("./dist-QW5G3GX3.js");
7216
7646
  const filterOptions = buildFilterOptions(options);
7217
7647
  const results = graphModule.queryTraceability(store, filterOptions);
7218
7648
  if (results.length === 0) handleEmptyResults(mode);
@@ -7227,7 +7657,7 @@ async function runTraceability(options) {
7227
7657
  process.exit(ExitCode.SUCCESS);
7228
7658
  }
7229
7659
  function createTraceabilityCommand() {
7230
- return new Command69("traceability").description("Show spec-to-implementation traceability from the knowledge graph").option("--spec <path>", "Filter by spec file path").option("--feature <name>", "Filter by feature name").action(async (opts, cmd) => {
7660
+ return new Command73("traceability").description("Show spec-to-implementation traceability from the knowledge graph").option("--spec <path>", "Filter by spec file path").option("--feature <name>", "Filter by feature name").action(async (opts, cmd) => {
7231
7661
  const globalOpts = cmd.optsWithGlobals();
7232
7662
  await runTraceability({
7233
7663
  spec: opts.spec,
@@ -7240,15 +7670,15 @@ function createTraceabilityCommand() {
7240
7670
  }
7241
7671
 
7242
7672
  // src/commands/uninstall.ts
7243
- import * as path55 from "path";
7244
- import { Command as Command70 } from "commander";
7673
+ import * as path56 from "path";
7674
+ import { Command as Command74 } from "commander";
7245
7675
  async function runUninstall(skillName, options) {
7246
7676
  const packageName = resolvePackageName(skillName);
7247
7677
  const shortName = extractSkillName(packageName);
7248
7678
  const globalDir = resolveGlobalSkillsDir();
7249
- const skillsDir = path55.dirname(globalDir);
7250
- const communityBase = path55.join(skillsDir, "community");
7251
- const lockfilePath = path55.join(communityBase, "skills-lock.json");
7679
+ const skillsDir = path56.dirname(globalDir);
7680
+ const communityBase = path56.join(skillsDir, "community");
7681
+ const lockfilePath = path56.join(communityBase, "skills-lock.json");
7252
7682
  const lockfile = readLockfile2(lockfilePath);
7253
7683
  const entry = lockfile.skills[packageName];
7254
7684
  if (!entry) {
@@ -7278,7 +7708,7 @@ async function runUninstall(skillName, options) {
7278
7708
  return result;
7279
7709
  }
7280
7710
  function createUninstallCommand() {
7281
- const cmd = new Command70("uninstall");
7711
+ const cmd = new Command74("uninstall");
7282
7712
  cmd.description("Uninstall a community skill").argument("<skill>", "Skill name or @harness-skills/scoped package name").option("--force", "Remove even if other skills depend on this one").action(async (skill, opts) => {
7283
7713
  try {
7284
7714
  const result = await runUninstall(skill, opts);
@@ -7297,9 +7727,9 @@ function createUninstallCommand() {
7297
7727
  }
7298
7728
 
7299
7729
  // src/commands/uninstall-constraints.ts
7300
- import * as fs33 from "fs/promises";
7301
- import * as path56 from "path";
7302
- import { Command as Command71 } from "commander";
7730
+ import * as fs35 from "fs/promises";
7731
+ import * as path57 from "path";
7732
+ import { Command as Command75 } from "commander";
7303
7733
  async function runUninstallConstraints(options) {
7304
7734
  const { packageName, configPath, lockfilePath } = options;
7305
7735
  const lockfileResult = await readLockfile(lockfilePath);
@@ -7319,7 +7749,7 @@ async function runUninstallConstraints(options) {
7319
7749
  }
7320
7750
  let localConfig;
7321
7751
  try {
7322
- const raw = await fs33.readFile(configPath, "utf-8");
7752
+ const raw = await fs35.readFile(configPath, "utf-8");
7323
7753
  localConfig = JSON.parse(raw);
7324
7754
  } catch (err) {
7325
7755
  return {
@@ -7356,11 +7786,11 @@ async function runUninstallConstraints(options) {
7356
7786
  };
7357
7787
  }
7358
7788
  function createUninstallConstraintsCommand() {
7359
- const cmd = new Command71("uninstall-constraints");
7789
+ const cmd = new Command75("uninstall-constraints");
7360
7790
  cmd.description("Remove a previously installed constraints package").argument("<name>", "Name of the constraint package to uninstall").option("-c, --config <path>", "Path to harness.config.json").action(async (name, opts) => {
7361
7791
  let configPath;
7362
7792
  if (opts.config) {
7363
- configPath = path56.resolve(opts.config);
7793
+ configPath = path57.resolve(opts.config);
7364
7794
  } else {
7365
7795
  const found = findConfigFile();
7366
7796
  if (!found.ok) {
@@ -7369,8 +7799,8 @@ function createUninstallConstraintsCommand() {
7369
7799
  }
7370
7800
  configPath = found.value;
7371
7801
  }
7372
- const projectRoot = path56.dirname(configPath);
7373
- const lockfilePath = path56.join(projectRoot, ".harness", "constraints.lock.json");
7802
+ const projectRoot = path57.dirname(configPath);
7803
+ const lockfilePath = path57.join(projectRoot, ".harness", "constraints.lock.json");
7374
7804
  const result = await runUninstallConstraints({
7375
7805
  packageName: name,
7376
7806
  configPath,
@@ -7395,9 +7825,11 @@ function createUninstallConstraintsCommand() {
7395
7825
  }
7396
7826
 
7397
7827
  // src/commands/update.ts
7398
- import { Command as Command72 } from "commander";
7399
- import { execFileSync as execFileSync6 } from "child_process";
7400
- import { realpathSync } from "fs";
7828
+ import { Command as Command76 } from "commander";
7829
+ import { execFile, execFileSync as execFileSync6 } from "child_process";
7830
+ import { realpathSync, existsSync as existsSync33, readFileSync as readFileSync20 } from "fs";
7831
+ import { join as join46 } from "path";
7832
+ import { promisify } from "util";
7401
7833
  import readline2 from "readline";
7402
7834
  import chalk11 from "chalk";
7403
7835
  function detectPackageManager() {
@@ -7417,25 +7849,32 @@ function detectPackageManager() {
7417
7849
  }
7418
7850
  return "npm";
7419
7851
  }
7420
- function getLatestVersion(pkg = "@harness-engineering/cli") {
7421
- const output = execFileSync6("npm", ["view", pkg, "dist-tags.latest"], {
7852
+ var execFileAsync = promisify(execFile);
7853
+ async function getLatestVersionAsync(pkg) {
7854
+ const { stdout } = await execFileAsync("npm", ["view", pkg, "dist-tags.latest"], {
7422
7855
  encoding: "utf-8",
7423
7856
  timeout: 15e3
7424
7857
  });
7425
- return output.trim();
7858
+ return stdout.trim();
7426
7859
  }
7427
- function getInstalledVersion(pm) {
7860
+ function getInstalledVersions(pm, packages) {
7861
+ const versions = {};
7428
7862
  try {
7429
- const output = execFileSync6(pm, ["list", "-g", "@harness-engineering/cli", "--json"], {
7863
+ const output = execFileSync6(pm, ["list", "-g", "--json"], {
7430
7864
  encoding: "utf-8",
7431
7865
  timeout: 15e3
7432
7866
  });
7433
7867
  const data = JSON.parse(output);
7434
7868
  const deps = data.dependencies ?? {};
7435
- return deps["@harness-engineering/cli"]?.version ?? null;
7869
+ for (const pkg of packages) {
7870
+ versions[pkg] = deps[pkg]?.version ?? null;
7871
+ }
7436
7872
  } catch {
7437
- return null;
7873
+ for (const pkg of packages) {
7874
+ versions[pkg] = null;
7875
+ }
7438
7876
  }
7877
+ return versions;
7439
7878
  }
7440
7879
  function getInstalledPackages(pm) {
7441
7880
  try {
@@ -7462,9 +7901,41 @@ function prompt(question) {
7462
7901
  });
7463
7902
  });
7464
7903
  }
7904
+ function refreshHooks() {
7905
+ const cwd = process.cwd();
7906
+ const configPath = join46(cwd, "harness.config.json");
7907
+ if (!existsSync33(configPath)) return;
7908
+ let profile = "standard";
7909
+ const profilePath = join46(cwd, ".harness", "hooks", "profile.json");
7910
+ try {
7911
+ const data = JSON.parse(readFileSync20(profilePath, "utf-8"));
7912
+ if (data.profile && ["minimal", "standard", "strict"].includes(data.profile)) {
7913
+ profile = data.profile;
7914
+ }
7915
+ } catch {
7916
+ }
7917
+ try {
7918
+ const result = initHooks({ profile, projectDir: cwd });
7919
+ logger.success(`Refreshed ${result.copiedScripts.length} hooks (${profile} profile)`);
7920
+ } catch (err) {
7921
+ const msg = err instanceof Error ? err.message : String(err);
7922
+ logger.warn(`Hook refresh failed: ${msg}`);
7923
+ }
7924
+ }
7925
+ function runLocalGraphScan() {
7926
+ try {
7927
+ logger.info("Scanning codebase to rebuild knowledge graph...");
7928
+ execFileSync6("harness", ["graph", "scan", "."], { stdio: "inherit" });
7929
+ } catch {
7930
+ logger.warn("Graph scan failed. Run manually:");
7931
+ console.log(` ${chalk11.cyan("harness graph scan .")}`);
7932
+ }
7933
+ }
7465
7934
  async function offerRegeneration() {
7466
7935
  console.log("");
7467
- const regenAnswer = await prompt("Regenerate slash commands and agent definitions? (Y/n) ");
7936
+ const regenAnswer = await prompt(
7937
+ "Regenerate slash commands, agent definitions, and knowledge graph? (Y/n) "
7938
+ );
7468
7939
  if (regenAnswer === "n" || regenAnswer === "no") return;
7469
7940
  const scopeAnswer = await prompt("Generate for (G)lobal or (l)ocal project? (G/l) ");
7470
7941
  const isGlobal = scopeAnswer !== "l" && scopeAnswer !== "local";
@@ -7476,28 +7947,29 @@ async function offerRegeneration() {
7476
7947
  logger.warn("Generation failed. Run manually:");
7477
7948
  console.log(` ${chalk11.cyan(`harness generate${isGlobal ? " --global" : ""}`)}`);
7478
7949
  }
7950
+ if (!isGlobal) {
7951
+ runLocalGraphScan();
7952
+ }
7479
7953
  }
7480
- async function checkForUpdates(_pm, opts, currentVersion) {
7481
- if (opts.version) return void 0;
7954
+ async function checkAllPackages(packages, installedVersions) {
7482
7955
  logger.info("Checking for updates...");
7483
- let latestCliVersion;
7484
- try {
7485
- latestCliVersion = getLatestVersion();
7486
- } catch {
7487
- logger.error("Failed to fetch latest version from npm registry");
7488
- process.exit(ExitCode.ERROR);
7489
- }
7490
- if (currentVersion && currentVersion === latestCliVersion) {
7491
- logger.success(`Already up to date (v${currentVersion})`);
7492
- process.exit(ExitCode.SUCCESS);
7493
- }
7494
- if (currentVersion) {
7495
- console.log("");
7496
- logger.info(`Current CLI version: ${chalk11.dim(`v${currentVersion}`)}`);
7497
- logger.info(`Latest CLI version: ${chalk11.green(`v${latestCliVersion}`)}`);
7498
- console.log("");
7956
+ const results = await Promise.allSettled(
7957
+ packages.map(async (pkg) => {
7958
+ const latest = await getLatestVersionAsync(pkg);
7959
+ const current = installedVersions[pkg] ?? null;
7960
+ return { pkg, current, latest, outdated: !current || current !== latest };
7961
+ })
7962
+ );
7963
+ const outdated = [];
7964
+ for (const result of results) {
7965
+ if (result.status === "rejected") {
7966
+ continue;
7967
+ }
7968
+ if (result.value.outdated) {
7969
+ outdated.push(result.value);
7970
+ }
7499
7971
  }
7500
- return latestCliVersion;
7972
+ return { hasUpdates: outdated.length > 0, outdated };
7501
7973
  }
7502
7974
  function buildInstallPackages(packages, opts) {
7503
7975
  const pm = detectPackageManager();
@@ -7515,12 +7987,31 @@ async function runUpdateAction(opts, globalOpts) {
7515
7987
  if (globalOpts.verbose) {
7516
7988
  logger.info(`Detected package manager: ${pm}`);
7517
7989
  }
7518
- const currentVersion = getInstalledVersion(pm);
7519
- await checkForUpdates(pm, opts, currentVersion);
7520
7990
  const packages = getInstalledPackages(pm);
7521
7991
  if (globalOpts.verbose) {
7522
7992
  logger.info(`Installed packages: ${packages.join(", ")}`);
7523
7993
  }
7994
+ if (opts.regenerate) {
7995
+ await offerRegeneration();
7996
+ process.exit(ExitCode.SUCCESS);
7997
+ }
7998
+ if (!opts.version && !opts.force) {
7999
+ const installedVersions = getInstalledVersions(pm, packages);
8000
+ const { hasUpdates, outdated } = await checkAllPackages(packages, installedVersions);
8001
+ if (!hasUpdates) {
8002
+ logger.success("All packages are up to date");
8003
+ refreshHooks();
8004
+ await offerRegeneration();
8005
+ process.exit(ExitCode.SUCCESS);
8006
+ }
8007
+ console.log("");
8008
+ for (const { pkg, current, latest } of outdated) {
8009
+ const shortName = pkg.replace("@harness-engineering/", "");
8010
+ const currentStr = current ? chalk11.dim(`v${current}`) : chalk11.dim("not installed");
8011
+ logger.info(`${shortName}: ${currentStr} \u2192 ${chalk11.green(`v${latest}`)}`);
8012
+ }
8013
+ console.log("");
8014
+ }
7524
8015
  const { installPkgs, installCmd } = buildInstallPackages(packages, opts);
7525
8016
  if (globalOpts.verbose) {
7526
8017
  logger.info(`Running: ${installCmd}`);
@@ -7536,20 +8027,24 @@ async function runUpdateAction(opts, globalOpts) {
7536
8027
  console.log(` ${chalk11.cyan(installCmd)}`);
7537
8028
  process.exit(ExitCode.ERROR);
7538
8029
  }
8030
+ refreshHooks();
7539
8031
  await offerRegeneration();
7540
8032
  process.exit(ExitCode.SUCCESS);
7541
8033
  }
7542
8034
  function createUpdateCommand() {
7543
- return new Command72("update").description("Update all @harness-engineering packages to the latest version").option("--version <semver>", "Pin @harness-engineering/cli to a specific version").action(async (opts, cmd) => {
8035
+ return new Command76("update").description("Update all @harness-engineering packages to the latest version").option("--version <semver>", "Pin @harness-engineering/cli to a specific version").option("--force", "Force update even if versions match").option(
8036
+ "--regenerate",
8037
+ "Only regenerate slash commands and agent definitions (skip package updates)"
8038
+ ).action(async (opts, cmd) => {
7544
8039
  const globalOpts = cmd.optsWithGlobals();
7545
8040
  await runUpdateAction(opts, globalOpts);
7546
8041
  });
7547
8042
  }
7548
8043
 
7549
8044
  // src/commands/usage.ts
7550
- import { Command as Command73 } from "commander";
8045
+ import { Command as Command77 } from "commander";
7551
8046
  async function loadAndPriceRecords(cwd, includeClaudeSessions = false) {
7552
- const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-27IJJDWG.js");
8047
+ const { readCostRecords, loadPricingData, calculateCost, parseCCRecords } = await import("./dist-7EBSGAHX.js");
7553
8048
  const records = readCostRecords(cwd);
7554
8049
  if (includeClaudeSessions) {
7555
8050
  const ccRecords = parseCCRecords();
@@ -7574,6 +8069,13 @@ function formatTokenCount(count) {
7574
8069
  if (count >= 1e3) return (count / 1e3).toFixed(1) + "K";
7575
8070
  return String(count);
7576
8071
  }
8072
+ function formatPercent(ratio) {
8073
+ return (ratio * 100).toFixed(1) + "%";
8074
+ }
8075
+ function computeCacheHitRate(cacheReadTokens, inputTokens) {
8076
+ if (cacheReadTokens == null || cacheReadTokens === 0 || inputTokens === 0) return null;
8077
+ return cacheReadTokens / inputTokens;
8078
+ }
7577
8079
  function formatModels(models) {
7578
8080
  if (models.length === 0) return "unknown";
7579
8081
  if (models.length === 1) return models[0] ?? "unknown";
@@ -7593,15 +8095,25 @@ function registerDailyCommand(usage) {
7593
8095
  }
7594
8096
  return;
7595
8097
  }
7596
- const { aggregateByDay } = await import("./dist-27IJJDWG.js");
8098
+ const { aggregateByDay } = await import("./dist-7EBSGAHX.js");
7597
8099
  const dailyData = aggregateByDay(records);
7598
8100
  const limited = dailyData.slice(0, days);
7599
8101
  if (globalOpts.json) {
7600
- console.log(JSON.stringify(limited, null, 2));
8102
+ const enriched = limited.map((day) => {
8103
+ const hitRate = computeCacheHitRate(day.cacheReadTokens, day.tokens.inputTokens);
8104
+ return {
8105
+ ...day,
8106
+ ...hitRate != null ? { cacheHitRate: Math.round(hitRate * 1e3) / 1e3 } : {}
8107
+ };
8108
+ });
8109
+ console.log(JSON.stringify(enriched, null, 2));
7601
8110
  return;
7602
8111
  }
7603
- const header = "Date | Sessions | Input | Output | Model(s) | Cost";
7604
- const divider = "-------------|----------|-----------|-----------|------------------------------|--------";
8112
+ const hasCacheData = limited.some((d) => d.cacheReadTokens != null && d.cacheReadTokens > 0);
8113
+ const cacheHeader = hasCacheData ? " | Cache " : "";
8114
+ const cacheDivider = hasCacheData ? " | ------" : "";
8115
+ const header = "Date | Sessions | Input | Output | Model(s) | Cost " + cacheHeader;
8116
+ const divider = "-------------|----------|-----------|-----------|------------------------------|-------" + cacheDivider;
7605
8117
  logger.info(header);
7606
8118
  logger.info(divider);
7607
8119
  for (const day of limited) {
@@ -7611,7 +8123,13 @@ function registerDailyCommand(usage) {
7611
8123
  const output = formatTokenCount(day.tokens.outputTokens).padStart(9);
7612
8124
  const models = formatModels(day.models).padEnd(28);
7613
8125
  const cost = formatMicroUSD(day.costMicroUSD);
7614
- logger.info(`${date} | ${sessions} | ${input} | ${output} | ${models} | ${cost}`);
8126
+ const cacheCol = hasCacheData ? (() => {
8127
+ const rate = computeCacheHitRate(day.cacheReadTokens, day.tokens.inputTokens);
8128
+ return " | " + (rate != null ? formatPercent(rate).padStart(5) : " -");
8129
+ })() : "";
8130
+ logger.info(
8131
+ `${date} | ${sessions} | ${input} | ${output} | ${models} | ${cost}${cacheCol}`
8132
+ );
7615
8133
  }
7616
8134
  });
7617
8135
  }
@@ -7629,7 +8147,7 @@ function registerSessionsCommand(usage) {
7629
8147
  }
7630
8148
  return;
7631
8149
  }
7632
- const { aggregateBySession } = await import("./dist-27IJJDWG.js");
8150
+ const { aggregateBySession } = await import("./dist-7EBSGAHX.js");
7633
8151
  const sessionData = aggregateBySession(records);
7634
8152
  const limited = sessionData.slice(0, limit);
7635
8153
  if (globalOpts.json) {
@@ -7688,6 +8206,12 @@ function printSessionDetail(match) {
7688
8206
  if (match.cacheCreationTokens != null) {
7689
8207
  logger.info(` Cache creation tokens: ${formatTokenCount(match.cacheCreationTokens)}`);
7690
8208
  }
8209
+ const hitRate = computeCacheHitRate(match.cacheReadTokens, match.tokens.inputTokens);
8210
+ if (hitRate != null) {
8211
+ logger.info("");
8212
+ logger.info("Cache Performance:");
8213
+ logger.info(` Cache hit rate: ${formatPercent(hitRate)}`);
8214
+ }
7691
8215
  logger.info("");
7692
8216
  logger.info(`Cost: ${formatMicroUSD(match.costMicroUSD)}`);
7693
8217
  }
@@ -7696,7 +8220,7 @@ function registerSessionCommand(usage) {
7696
8220
  const globalOpts = cmd.optsWithGlobals();
7697
8221
  const cwd = process.cwd();
7698
8222
  const records = await loadAndPriceRecords(cwd, globalOpts.includeClaudeSessions);
7699
- const { aggregateBySession } = await import("./dist-27IJJDWG.js");
8223
+ const { aggregateBySession } = await import("./dist-7EBSGAHX.js");
7700
8224
  const sessionData = aggregateBySession(records);
7701
8225
  const match = sessionData.find((s) => s.sessionId === id);
7702
8226
  if (!match) {
@@ -7705,7 +8229,12 @@ function registerSessionCommand(usage) {
7705
8229
  return;
7706
8230
  }
7707
8231
  if (globalOpts.json) {
7708
- console.log(JSON.stringify(match, null, 2));
8232
+ const hitRate = computeCacheHitRate(match.cacheReadTokens, match.tokens.inputTokens);
8233
+ const enriched = {
8234
+ ...match,
8235
+ ...hitRate != null ? { cacheHitRate: Math.round(hitRate * 1e3) / 1e3 } : {}
8236
+ };
8237
+ console.log(JSON.stringify(enriched, null, 2));
7709
8238
  return;
7710
8239
  }
7711
8240
  printSessionDetail(match);
@@ -7724,7 +8253,7 @@ function registerLatestCommand(usage) {
7724
8253
  }
7725
8254
  return;
7726
8255
  }
7727
- const { aggregateBySession } = await import("./dist-27IJJDWG.js");
8256
+ const { aggregateBySession } = await import("./dist-7EBSGAHX.js");
7728
8257
  const sessionData = aggregateBySession(records);
7729
8258
  const latest = sessionData[0];
7730
8259
  if (!latest) {
@@ -7750,7 +8279,7 @@ function registerLatestCommand(usage) {
7750
8279
  });
7751
8280
  }
7752
8281
  function createUsageCommand() {
7753
- const usage = new Command73("usage").description("Token usage and cost tracking");
8282
+ const usage = new Command77("usage").description("Token usage and cost tracking");
7754
8283
  usage.option(
7755
8284
  "--include-claude-sessions",
7756
8285
  "Include Claude Code session data from ~/.claude/projects/"
@@ -7763,15 +8292,15 @@ function createUsageCommand() {
7763
8292
  }
7764
8293
 
7765
8294
  // src/commands/validate.ts
7766
- import { Command as Command74 } from "commander";
7767
- import * as path57 from "path";
8295
+ import { Command as Command78 } from "commander";
8296
+ import * as path58 from "path";
7768
8297
  async function runValidate(options) {
7769
8298
  const configResult = resolveConfig(options.configPath);
7770
8299
  if (!configResult.ok) {
7771
8300
  return configResult;
7772
8301
  }
7773
8302
  const config = configResult.value;
7774
- const cwd = options.cwd ?? (options.configPath ? path57.dirname(path57.resolve(options.configPath)) : process.cwd());
8303
+ const cwd = options.cwd ?? (options.configPath ? path58.dirname(path58.resolve(options.configPath)) : process.cwd());
7775
8304
  const result = {
7776
8305
  valid: true,
7777
8306
  checks: {
@@ -7781,7 +8310,7 @@ async function runValidate(options) {
7781
8310
  },
7782
8311
  issues: []
7783
8312
  };
7784
- const agentsMapPath = path57.resolve(cwd, config.agentsMapPath);
8313
+ const agentsMapPath = path58.resolve(cwd, config.agentsMapPath);
7785
8314
  const agentsResult = await validateAgentsMap(agentsMapPath);
7786
8315
  if (agentsResult.ok) {
7787
8316
  result.checks.agentsMap = true;
@@ -7826,11 +8355,11 @@ function resolveValidateMode(globalOpts) {
7826
8355
  return OutputMode.TEXT;
7827
8356
  }
7828
8357
  async function printCrossCheckWarnings(mode) {
7829
- const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-WQWFMPXJ.js");
8358
+ const { runCrossCheck: runCrossCheck2 } = await import("./validate-cross-check-Y4PDR63C.js");
7830
8359
  const cwd = process.cwd();
7831
8360
  const crossResult = await runCrossCheck2({
7832
- specsDir: path57.join(cwd, "docs", "specs"),
7833
- plansDir: path57.join(cwd, "docs", "plans"),
8361
+ specsDir: path58.join(cwd, "docs", "specs"),
8362
+ plansDir: path58.join(cwd, "docs", "plans"),
7834
8363
  projectPath: cwd
7835
8364
  });
7836
8365
  if (!crossResult.ok || crossResult.value.warnings === 0) return;
@@ -7842,7 +8371,7 @@ async function printCrossCheckWarnings(mode) {
7842
8371
  ${crossResult.value.warnings} warnings`);
7843
8372
  }
7844
8373
  function createValidateCommand3() {
7845
- const command = new Command74("validate").description("Run all validation checks").option("--cross-check", "Run cross-artifact consistency validation").action(async (opts, cmd) => {
8374
+ const command = new Command78("validate").description("Run all validation checks").option("--cross-check", "Run cross-artifact consistency validation").action(async (opts, cmd) => {
7846
8375
  const globalOpts = cmd.optsWithGlobals();
7847
8376
  const mode = resolveValidateMode(globalOpts);
7848
8377
  const formatter = new OutputFormatter(mode);
@@ -7871,6 +8400,7 @@ function createValidateCommand3() {
7871
8400
  // src/commands/_registry.ts
7872
8401
  var commandCreators = [
7873
8402
  createAddCommand,
8403
+ createAdoptionCommand,
7874
8404
  createAgentCommand,
7875
8405
  createBlueprintCommand,
7876
8406
  createCheckArchCommand,
@@ -7881,6 +8411,7 @@ var commandCreators = [
7881
8411
  createCheckSecurityCommand,
7882
8412
  createCICommand,
7883
8413
  createCleanupCommand,
8414
+ createCleanupSessionsCommand,
7884
8415
  createCreateSkillCommand,
7885
8416
  createDashboardCommand,
7886
8417
  createDoctorCommand,
@@ -7914,6 +8445,7 @@ var commandCreators = [
7914
8445
  createSnapshotCommand,
7915
8446
  createStateCommand,
7916
8447
  createTaintCommand,
8448
+ createTelemetryCommand,
7917
8449
  createTraceabilityCommand,
7918
8450
  createUninstallCommand,
7919
8451
  createUninstallConstraintsCommand,
@@ -7924,7 +8456,7 @@ var commandCreators = [
7924
8456
 
7925
8457
  // src/index.ts
7926
8458
  function createProgram() {
7927
- const program = new Command75();
8459
+ const program = new Command79();
7928
8460
  program.name("harness").description("CLI for Harness Engineering toolkit").version(CLI_VERSION).option("-c, --config <path>", "Path to config file").option("--json", "Output as JSON").option("--verbose", "Verbose output").option("--quiet", "Minimal output");
7929
8461
  for (const creator of commandCreators) {
7930
8462
  program.addCommand(creator());
@@ -7936,7 +8468,6 @@ export {
7936
8468
  runCheckArch,
7937
8469
  runGraphStatus,
7938
8470
  runGraphExport,
7939
- runScan,
7940
8471
  runQuery,
7941
8472
  runIngest,
7942
8473
  runImpactPreview,