@ketecode/loom 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (851) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +616 -2
  3. package/agents/accessibility-reviewer/AGENT.md +70 -0
  4. package/agents/accessibility-reviewer/evals/triggers.json +15 -0
  5. package/agents/agent-evaluator/AGENT.md +74 -0
  6. package/agents/agent-evaluator/evals/triggers.json +15 -0
  7. package/agents/architect/AGENT.md +82 -0
  8. package/agents/architect/evals/triggers.json +17 -0
  9. package/agents/billing-reviewer/AGENT.md +68 -0
  10. package/agents/billing-reviewer/evals/triggers.json +16 -0
  11. package/agents/code-reviewer/AGENT.md +51 -0
  12. package/agents/code-reviewer/evals/behavior.json +60 -0
  13. package/agents/code-reviewer/evals/triggers.json +14 -0
  14. package/agents/code-simplifier/AGENT.md +74 -0
  15. package/agents/code-simplifier/evals/triggers.json +15 -0
  16. package/agents/cpp-build-resolver/AGENT.md +73 -0
  17. package/agents/cpp-build-resolver/evals/triggers.json +16 -0
  18. package/agents/cpp-reviewer/AGENT.md +59 -0
  19. package/agents/cpp-reviewer/evals/triggers.json +16 -0
  20. package/agents/csharp-build-resolver/AGENT.md +84 -0
  21. package/agents/csharp-build-resolver/evals/triggers.json +17 -0
  22. package/agents/csharp-reviewer/AGENT.md +88 -0
  23. package/agents/csharp-reviewer/evals/triggers.json +17 -0
  24. package/agents/dart-build-resolver/AGENT.md +80 -0
  25. package/agents/dart-build-resolver/evals/triggers.json +17 -0
  26. package/agents/dart-reviewer/AGENT.md +66 -0
  27. package/agents/dart-reviewer/evals/triggers.json +17 -0
  28. package/agents/database-reviewer/AGENT.md +72 -0
  29. package/agents/database-reviewer/evals/triggers.json +16 -0
  30. package/agents/django-reviewer/AGENT.md +61 -0
  31. package/agents/django-reviewer/evals/triggers.json +15 -0
  32. package/agents/doc-updater/AGENT.md +92 -0
  33. package/agents/doc-updater/evals/triggers.json +14 -0
  34. package/agents/e2e-runner/AGENT.md +88 -0
  35. package/agents/e2e-runner/evals/triggers.json +16 -0
  36. package/agents/fastapi-reviewer/AGENT.md +63 -0
  37. package/agents/fastapi-reviewer/evals/triggers.json +15 -0
  38. package/agents/flutter-reviewer/AGENT.md +70 -0
  39. package/agents/flutter-reviewer/evals/triggers.json +15 -0
  40. package/agents/fsharp-build-resolver/AGENT.md +81 -0
  41. package/agents/fsharp-build-resolver/evals/triggers.json +15 -0
  42. package/agents/fsharp-reviewer/AGENT.md +77 -0
  43. package/agents/fsharp-reviewer/evals/triggers.json +15 -0
  44. package/agents/go-build-resolver/AGENT.md +85 -0
  45. package/agents/go-build-resolver/evals/triggers.json +16 -0
  46. package/agents/go-reviewer/AGENT.md +66 -0
  47. package/agents/go-reviewer/evals/triggers.json +16 -0
  48. package/agents/healthcare-reviewer/AGENT.md +65 -0
  49. package/agents/healthcare-reviewer/evals/triggers.json +16 -0
  50. package/agents/i18n-reviewer/AGENT.md +64 -0
  51. package/agents/i18n-reviewer/evals/triggers.json +16 -0
  52. package/agents/inbox-triager/AGENT.md +98 -0
  53. package/agents/inbox-triager/evals/triggers.json +16 -0
  54. package/agents/infra-reviewer/AGENT.md +93 -0
  55. package/agents/infra-reviewer/evals/triggers.json +15 -0
  56. package/agents/java-build-resolver/AGENT.md +82 -0
  57. package/agents/java-build-resolver/evals/triggers.json +16 -0
  58. package/agents/java-reviewer/AGENT.md +64 -0
  59. package/agents/java-reviewer/evals/triggers.json +16 -0
  60. package/agents/kotlin-build-resolver/AGENT.md +89 -0
  61. package/agents/kotlin-build-resolver/evals/triggers.json +16 -0
  62. package/agents/kotlin-reviewer/AGENT.md +75 -0
  63. package/agents/kotlin-reviewer/evals/triggers.json +16 -0
  64. package/agents/mle-reviewer/AGENT.md +68 -0
  65. package/agents/mle-reviewer/evals/triggers.json +16 -0
  66. package/agents/network-config-reviewer/AGENT.md +68 -0
  67. package/agents/network-config-reviewer/evals/triggers.json +17 -0
  68. package/agents/payments-reviewer/AGENT.md +64 -0
  69. package/agents/payments-reviewer/evals/triggers.json +16 -0
  70. package/agents/performance-optimizer/AGENT.md +86 -0
  71. package/agents/performance-optimizer/evals/triggers.json +16 -0
  72. package/agents/perl-build-resolver/AGENT.md +84 -0
  73. package/agents/perl-build-resolver/evals/triggers.json +15 -0
  74. package/agents/perl-reviewer/AGENT.md +77 -0
  75. package/agents/perl-reviewer/evals/triggers.json +15 -0
  76. package/agents/php-build-resolver/AGENT.md +88 -0
  77. package/agents/php-build-resolver/evals/triggers.json +16 -0
  78. package/agents/php-reviewer/AGENT.md +61 -0
  79. package/agents/php-reviewer/evals/triggers.json +15 -0
  80. package/agents/planner/AGENT.md +75 -0
  81. package/agents/planner/evals/triggers.json +17 -0
  82. package/agents/pr-test-analyzer/AGENT.md +82 -0
  83. package/agents/pr-test-analyzer/evals/triggers.json +16 -0
  84. package/agents/python-build-resolver/AGENT.md +87 -0
  85. package/agents/python-build-resolver/evals/triggers.json +16 -0
  86. package/agents/python-reviewer/AGENT.md +63 -0
  87. package/agents/python-reviewer/evals/triggers.json +15 -0
  88. package/agents/rag-reviewer/AGENT.md +71 -0
  89. package/agents/rag-reviewer/evals/triggers.json +16 -0
  90. package/agents/react-reviewer/AGENT.md +70 -0
  91. package/agents/react-reviewer/evals/triggers.json +16 -0
  92. package/agents/refactor-cleaner/AGENT.md +82 -0
  93. package/agents/refactor-cleaner/evals/triggers.json +16 -0
  94. package/agents/ruby-build-resolver/AGENT.md +93 -0
  95. package/agents/ruby-build-resolver/evals/triggers.json +16 -0
  96. package/agents/ruby-reviewer/AGENT.md +62 -0
  97. package/agents/ruby-reviewer/evals/triggers.json +16 -0
  98. package/agents/rust-build-resolver/AGENT.md +98 -0
  99. package/agents/rust-build-resolver/evals/triggers.json +16 -0
  100. package/agents/rust-reviewer/AGENT.md +78 -0
  101. package/agents/rust-reviewer/evals/triggers.json +15 -0
  102. package/agents/security-reviewer/AGENT.md +84 -0
  103. package/agents/security-reviewer/evals/triggers.json +16 -0
  104. package/agents/silent-failure-hunter/AGENT.md +66 -0
  105. package/agents/silent-failure-hunter/evals/triggers.json +16 -0
  106. package/agents/solidity-reviewer/AGENT.md +70 -0
  107. package/agents/solidity-reviewer/evals/triggers.json +16 -0
  108. package/agents/spec-reviewer/AGENT.md +95 -0
  109. package/agents/spec-reviewer/evals/behavior.json +57 -0
  110. package/agents/spec-reviewer/evals/triggers.json +16 -0
  111. package/agents/swift-build-resolver/AGENT.md +85 -0
  112. package/agents/swift-build-resolver/evals/triggers.json +15 -0
  113. package/agents/swift-reviewer/AGENT.md +75 -0
  114. package/agents/swift-reviewer/evals/triggers.json +15 -0
  115. package/agents/task-implementer/AGENT.md +89 -0
  116. package/agents/task-implementer/evals/behavior.json +47 -0
  117. package/agents/task-implementer/evals/triggers.json +16 -0
  118. package/agents/typescript-build-resolver/AGENT.md +76 -0
  119. package/agents/typescript-build-resolver/evals/triggers.json +15 -0
  120. package/agents/typescript-reviewer/AGENT.md +76 -0
  121. package/agents/typescript-reviewer/evals/triggers.json +15 -0
  122. package/agents/vue-reviewer/AGENT.md +75 -0
  123. package/agents/vue-reviewer/evals/triggers.json +15 -0
  124. package/bin/kete-loom.js +723 -0
  125. package/commands/aside.md +19 -0
  126. package/commands/brainstorm.md +25 -0
  127. package/commands/build-fix.md +26 -0
  128. package/commands/campaign.md +19 -0
  129. package/commands/changelog.md +36 -0
  130. package/commands/checkpoint.md +26 -0
  131. package/commands/codemap.md +25 -0
  132. package/commands/commit.md +26 -0
  133. package/commands/debug.md +27 -0
  134. package/commands/deps-audit.md +32 -0
  135. package/commands/dual-review.md +34 -0
  136. package/commands/epic-decompose.md +21 -0
  137. package/commands/explain.md +37 -0
  138. package/commands/feature-dev.md +23 -0
  139. package/commands/finish-branch.md +26 -0
  140. package/commands/fix-bug.md +38 -0
  141. package/commands/hookify.md +23 -0
  142. package/commands/i18n-check.md +39 -0
  143. package/commands/issue-sync.md +22 -0
  144. package/commands/jira.md +19 -0
  145. package/commands/learn.md +23 -0
  146. package/commands/loom.md +21 -0
  147. package/commands/loop.md +20 -0
  148. package/commands/model-route.md +27 -0
  149. package/commands/onboard.md +35 -0
  150. package/commands/orchestrate.md +21 -0
  151. package/commands/plan-feature.md +36 -0
  152. package/commands/postmortem.md +42 -0
  153. package/commands/pr-describe.md +39 -0
  154. package/commands/pr.md +22 -0
  155. package/commands/prd.md +41 -0
  156. package/commands/production-readiness.md +45 -0
  157. package/commands/project-init.md +21 -0
  158. package/commands/refactor-clean.md +24 -0
  159. package/commands/resume-session.md +22 -0
  160. package/commands/review.md +35 -0
  161. package/commands/save-session.md +37 -0
  162. package/commands/security-scan.md +32 -0
  163. package/commands/sessions.md +21 -0
  164. package/commands/skill-create.md +21 -0
  165. package/commands/tdd.md +36 -0
  166. package/commands/test-coverage.md +24 -0
  167. package/commands/threat-model.md +36 -0
  168. package/commands/update-docs.md +25 -0
  169. package/commands/usage-report.md +43 -0
  170. package/commands/verify.md +21 -0
  171. package/hooks/block-dangerous-commands/HOOK.md +30 -0
  172. package/hooks/block-dangerous-commands/cases.json +50 -0
  173. package/hooks/block-dangerous-commands/hook.js +75 -0
  174. package/hooks/block-foreground-servers/HOOK.md +34 -0
  175. package/hooks/block-foreground-servers/cases.json +31 -0
  176. package/hooks/block-foreground-servers/hook.js +41 -0
  177. package/hooks/block-no-verify/HOOK.md +25 -0
  178. package/hooks/block-no-verify/cases.json +30 -0
  179. package/hooks/block-no-verify/hook.js +43 -0
  180. package/hooks/capture-lessons/HOOK.md +24 -0
  181. package/hooks/capture-lessons/hook.js +48 -0
  182. package/hooks/format-on-edit/HOOK.md +24 -0
  183. package/hooks/format-on-edit/hook.js +89 -0
  184. package/hooks/guard-secrets/HOOK.md +19 -0
  185. package/hooks/guard-secrets/cases.json +110 -0
  186. package/hooks/guard-secrets/hook.js +44 -0
  187. package/hooks/load-session-context/HOOK.md +20 -0
  188. package/hooks/load-session-context/hook.js +56 -0
  189. package/hooks/notify-on-stop/HOOK.md +25 -0
  190. package/hooks/notify-on-stop/hook.js +27 -0
  191. package/hooks/protect-files/HOOK.md +24 -0
  192. package/hooks/protect-files/cases.json +27 -0
  193. package/hooks/protect-files/hook.js +39 -0
  194. package/hooks/protect-lint-config/HOOK.md +29 -0
  195. package/hooks/protect-lint-config/cases.json +18 -0
  196. package/hooks/protect-lint-config/fixtures/.eslintrc.json +1 -0
  197. package/hooks/protect-lint-config/fixtures/.golangci.yml +1 -0
  198. package/hooks/protect-lint-config/fixtures/.prettierrc +1 -0
  199. package/hooks/protect-lint-config/fixtures/.rubocop.yml +1 -0
  200. package/hooks/protect-lint-config/fixtures/biome.json +1 -0
  201. package/hooks/protect-lint-config/fixtures/eslint.config.mjs +1 -0
  202. package/hooks/protect-lint-config/fixtures/ruff.toml +1 -0
  203. package/hooks/protect-lint-config/hook.js +25 -0
  204. package/hooks/read-before-edit/HOOK.md +26 -0
  205. package/hooks/read-before-edit/cases.json +15 -0
  206. package/hooks/read-before-edit/hook.js +50 -0
  207. package/hooks/run.js +148 -0
  208. package/hooks/verify-before-stop/HOOK.md +32 -0
  209. package/hooks/verify-before-stop/hook.js +70 -0
  210. package/mcp/atlassian.json +11 -0
  211. package/mcp/chrome-devtools.json +18 -0
  212. package/mcp/clickhouse.json +11 -0
  213. package/mcp/cloudflare.json +11 -0
  214. package/mcp/context7.json +11 -0
  215. package/mcp/exa.json +11 -0
  216. package/mcp/fetch.json +17 -0
  217. package/mcp/figma.json +11 -0
  218. package/mcp/firecrawl.json +11 -0
  219. package/mcp/git.json +17 -0
  220. package/mcp/github.json +11 -0
  221. package/mcp/linear.json +11 -0
  222. package/mcp/memory.json +18 -0
  223. package/mcp/notion.json +11 -0
  224. package/mcp/playwright.json +18 -0
  225. package/mcp/sentry.json +11 -0
  226. package/mcp/stripe.json +11 -0
  227. package/mcp/supabase.json +11 -0
  228. package/mcp/time.json +17 -0
  229. package/mcp/vercel.json +11 -0
  230. package/package.json +61 -4
  231. package/profiles.json +214 -0
  232. package/rules/common.md +21 -0
  233. package/rules/cpp.md +29 -0
  234. package/rules/csharp.md +25 -0
  235. package/rules/dart.md +29 -0
  236. package/rules/fsharp.md +28 -0
  237. package/rules/git.md +26 -0
  238. package/rules/go.md +29 -0
  239. package/rules/java.md +29 -0
  240. package/rules/kotlin.md +27 -0
  241. package/rules/perl.md +26 -0
  242. package/rules/php.md +28 -0
  243. package/rules/python.md +30 -0
  244. package/rules/ruby.md +27 -0
  245. package/rules/rust.md +26 -0
  246. package/rules/security.md +29 -0
  247. package/rules/swift.md +28 -0
  248. package/rules/testing.md +25 -0
  249. package/rules/typescript.md +29 -0
  250. package/rules/use-skills.md +23 -0
  251. package/schemas/skill-frontmatter.schema.json +52 -0
  252. package/scripts/lib/audit.js +96 -0
  253. package/scripts/lib/behavior.js +52 -0
  254. package/scripts/lib/frontmatter.js +65 -0
  255. package/scripts/lib/hooks-install.js +294 -0
  256. package/scripts/lib/i18n.js +51 -0
  257. package/scripts/lib/inventory.js +85 -0
  258. package/scripts/lib/lint.js +180 -0
  259. package/scripts/lib/mcp-install.js +288 -0
  260. package/scripts/lib/profiles.js +128 -0
  261. package/scripts/lib/render.js +92 -0
  262. package/scripts/lib/rules-install.js +118 -0
  263. package/scripts/lib/skills.js +87 -0
  264. package/scripts/lib/targets.js +123 -0
  265. package/skills/accounting-api-integration/SKILL.md +81 -0
  266. package/skills/accounting-api-integration/evals/triggers.json +17 -0
  267. package/skills/accounting-api-integration/references/quickbooks.md +48 -0
  268. package/skills/accounting-api-integration/references/xero.md +45 -0
  269. package/skills/agent-failure-debugging/SKILL.md +92 -0
  270. package/skills/agent-failure-debugging/evals/triggers.json +16 -0
  271. package/skills/agent-harness-design/SKILL.md +125 -0
  272. package/skills/agent-harness-design/evals/triggers.json +21 -0
  273. package/skills/agent-outbound-messaging/SKILL.md +92 -0
  274. package/skills/agent-outbound-messaging/evals/triggers.json +16 -0
  275. package/skills/agent-security/SKILL.md +117 -0
  276. package/skills/agent-security/evals/triggers.json +16 -0
  277. package/skills/agent-security/references/host-configs.md +37 -0
  278. package/skills/ai-media-generation/SKILL.md +89 -0
  279. package/skills/ai-media-generation/evals/triggers.json +16 -0
  280. package/skills/ai-media-generation/references/job-pipeline.md +76 -0
  281. package/skills/angular-patterns/SKILL.md +122 -0
  282. package/skills/angular-patterns/evals/triggers.json +16 -0
  283. package/skills/api-client-integration/SKILL.md +86 -0
  284. package/skills/api-client-integration/evals/triggers.json +16 -0
  285. package/skills/api-client-integration/references/resilience.md +57 -0
  286. package/skills/api-design/SKILL.md +96 -0
  287. package/skills/api-design/evals/triggers.json +18 -0
  288. package/skills/api-design/references/conventions.md +133 -0
  289. package/skills/architecture-decision-records/SKILL.md +98 -0
  290. package/skills/architecture-decision-records/evals/triggers.json +17 -0
  291. package/skills/article-writing/SKILL.md +108 -0
  292. package/skills/article-writing/evals/triggers.json +16 -0
  293. package/skills/aspnet-core-patterns/SKILL.md +149 -0
  294. package/skills/aspnet-core-patterns/evals/triggers.json +16 -0
  295. package/skills/auth-patterns/SKILL.md +104 -0
  296. package/skills/auth-patterns/evals/triggers.json +17 -0
  297. package/skills/auth-patterns/references/oauth-oidc.md +64 -0
  298. package/skills/autonomous-loops/SKILL.md +99 -0
  299. package/skills/autonomous-loops/evals/triggers.json +14 -0
  300. package/skills/aws-patterns/SKILL.md +91 -0
  301. package/skills/aws-patterns/evals/triggers.json +16 -0
  302. package/skills/azure-patterns/SKILL.md +86 -0
  303. package/skills/azure-patterns/evals/triggers.json +16 -0
  304. package/skills/benchmark-methodology/SKILL.md +88 -0
  305. package/skills/benchmark-methodology/evals/triggers.json +16 -0
  306. package/skills/benchmark-methodology/references/language-harnesses.md +130 -0
  307. package/skills/bgp-diagnostics/SKILL.md +84 -0
  308. package/skills/bgp-diagnostics/evals/triggers.json +18 -0
  309. package/skills/bgp-diagnostics/references/bgp-reference.md +81 -0
  310. package/skills/bioinformatics-workflows/SKILL.md +108 -0
  311. package/skills/bioinformatics-workflows/evals/triggers.json +16 -0
  312. package/skills/bioinformatics-workflows/references/commands.md +71 -0
  313. package/skills/bioinformatics-workflows/references/formats.md +24 -0
  314. package/skills/bioinformatics-workflows/references/workflow-managers.md +107 -0
  315. package/skills/blender-automation/SKILL.md +100 -0
  316. package/skills/blender-automation/evals/triggers.json +16 -0
  317. package/skills/blender-automation/references/batch-and-render.md +77 -0
  318. package/skills/blender-automation/references/bpy-inspection.md +91 -0
  319. package/skills/blender-automation/references/rig-and-retarget-checks.md +23 -0
  320. package/skills/brand-strategy/SKILL.md +83 -0
  321. package/skills/brand-strategy/evals/triggers.json +16 -0
  322. package/skills/brand-voice/SKILL.md +112 -0
  323. package/skills/brand-voice/evals/triggers.json +16 -0
  324. package/skills/browser-qa/SKILL.md +99 -0
  325. package/skills/browser-qa/evals/triggers.json +16 -0
  326. package/skills/bun-runtime/SKILL.md +93 -0
  327. package/skills/bun-runtime/evals/triggers.json +16 -0
  328. package/skills/change-impact-analysis/SKILL.md +89 -0
  329. package/skills/change-impact-analysis/evals/triggers.json +16 -0
  330. package/skills/change-impact-analysis/references/graph-commands.md +28 -0
  331. package/skills/cisco-ios-config/SKILL.md +101 -0
  332. package/skills/cisco-ios-config/evals/triggers.json +18 -0
  333. package/skills/cisco-ios-config/references/verification.md +63 -0
  334. package/skills/clickhouse-patterns/SKILL.md +101 -0
  335. package/skills/clickhouse-patterns/evals/triggers.json +18 -0
  336. package/skills/clickhouse-patterns/references/engines-and-views.md +138 -0
  337. package/skills/clinical-decision-support/SKILL.md +90 -0
  338. package/skills/clinical-decision-support/evals/triggers.json +16 -0
  339. package/skills/clinical-decision-support/references/cds-hooks.md +76 -0
  340. package/skills/clinical-decision-support/references/regulatory-boundaries.md +37 -0
  341. package/skills/code-tour/SKILL.md +97 -0
  342. package/skills/code-tour/evals/triggers.json +14 -0
  343. package/skills/codebase-onboarding/SKILL.md +112 -0
  344. package/skills/codebase-onboarding/evals/triggers.json +14 -0
  345. package/skills/cold-outreach-sequences/SKILL.md +90 -0
  346. package/skills/cold-outreach-sequences/evals/triggers.json +16 -0
  347. package/skills/content-repurposing/SKILL.md +82 -0
  348. package/skills/content-repurposing/evals/triggers.json +16 -0
  349. package/skills/context-budget/SKILL.md +84 -0
  350. package/skills/context-budget/evals/triggers.json +14 -0
  351. package/skills/contract-drafting/SKILL.md +96 -0
  352. package/skills/contract-drafting/evals/triggers.json +16 -0
  353. package/skills/contract-drafting/references/term-sheets.md +68 -0
  354. package/skills/contract-first-development/SKILL.md +86 -0
  355. package/skills/contract-first-development/evals/triggers.json +16 -0
  356. package/skills/contract-first-development/references/tooling.md +46 -0
  357. package/skills/conventional-commits/SKILL.md +144 -0
  358. package/skills/conventional-commits/evals/triggers.json +16 -0
  359. package/skills/cpp-patterns/SKILL.md +129 -0
  360. package/skills/cpp-patterns/evals/triggers.json +16 -0
  361. package/skills/cpp-patterns/references/cmake-and-tooling.md +88 -0
  362. package/skills/cpp-patterns/references/undefined-behaviour.md +75 -0
  363. package/skills/cpp-testing/SKILL.md +131 -0
  364. package/skills/cpp-testing/evals/triggers.json +16 -0
  365. package/skills/csharp-patterns/SKILL.md +110 -0
  366. package/skills/csharp-patterns/evals/triggers.json +17 -0
  367. package/skills/csharp-patterns/references/analyzers.md +59 -0
  368. package/skills/csharp-testing/SKILL.md +85 -0
  369. package/skills/csharp-testing/evals/triggers.json +17 -0
  370. package/skills/csharp-testing/references/integration-tests.md +77 -0
  371. package/skills/css-architecture/SKILL.md +143 -0
  372. package/skills/css-architecture/evals/triggers.json +16 -0
  373. package/skills/customs-trade-compliance/SKILL.md +95 -0
  374. package/skills/customs-trade-compliance/evals/triggers.json +16 -0
  375. package/skills/customs-trade-compliance/references/incoterms-2020.md +42 -0
  376. package/skills/dart-patterns/SKILL.md +157 -0
  377. package/skills/dart-patterns/evals/triggers.json +18 -0
  378. package/skills/dart-testing/SKILL.md +164 -0
  379. package/skills/dart-testing/evals/triggers.json +18 -0
  380. package/skills/data-analysis-notebooks/SKILL.md +113 -0
  381. package/skills/data-analysis-notebooks/evals/triggers.json +16 -0
  382. package/skills/data-analysis-notebooks/references/dataframe-pitfalls.md +49 -0
  383. package/skills/data-analysis-notebooks/references/statistics-pitfalls.md +24 -0
  384. package/skills/data-pipelines/SKILL.md +90 -0
  385. package/skills/data-pipelines/evals/triggers.json +16 -0
  386. package/skills/data-pipelines/references/orchestrators.md +64 -0
  387. package/skills/database-migrations/SKILL.md +102 -0
  388. package/skills/database-migrations/evals/triggers.json +16 -0
  389. package/skills/database-migrations/references/recipes.md +98 -0
  390. package/skills/database-migrations/references/tools.md +21 -0
  391. package/skills/dbt-patterns/SKILL.md +96 -0
  392. package/skills/dbt-patterns/evals/triggers.json +16 -0
  393. package/skills/dbt-patterns/references/yaml-examples.md +114 -0
  394. package/skills/decision-council/SKILL.md +98 -0
  395. package/skills/decision-council/evals/triggers.json +16 -0
  396. package/skills/deep-research/SKILL.md +107 -0
  397. package/skills/deep-research/evals/triggers.json +14 -0
  398. package/skills/dependency-audit/SKILL.md +103 -0
  399. package/skills/dependency-audit/evals/triggers.json +16 -0
  400. package/skills/dependency-audit/references/tools.md +124 -0
  401. package/skills/deployment-strategies/SKILL.md +108 -0
  402. package/skills/deployment-strategies/evals/triggers.json +16 -0
  403. package/skills/design-brainstorming/SKILL.md +132 -0
  404. package/skills/design-brainstorming/evals/behavior.json +55 -0
  405. package/skills/design-brainstorming/evals/triggers.json +16 -0
  406. package/skills/design-brainstorming/references/visual-mockups.md +34 -0
  407. package/skills/desktop-app-testing/SKILL.md +104 -0
  408. package/skills/desktop-app-testing/evals/triggers.json +16 -0
  409. package/skills/desktop-app-testing/references/drivers.md +81 -0
  410. package/skills/django-patterns/SKILL.md +123 -0
  411. package/skills/django-patterns/evals/triggers.json +16 -0
  412. package/skills/docker-patterns/SKILL.md +132 -0
  413. package/skills/docker-patterns/evals/triggers.json +16 -0
  414. package/skills/docker-patterns/references/dockerfiles.md +105 -0
  415. package/skills/document-processing/SKILL.md +100 -0
  416. package/skills/document-processing/evals/triggers.json +17 -0
  417. package/skills/document-processing/references/extraction-and-ocr.md +71 -0
  418. package/skills/document-processing/references/forms-and-conversion.md +69 -0
  419. package/skills/document-processing/references/redaction.md +61 -0
  420. package/skills/e2e-testing-playwright/SKILL.md +94 -0
  421. package/skills/e2e-testing-playwright/evals/triggers.json +16 -0
  422. package/skills/e2e-testing-playwright/references/config-and-ci.md +129 -0
  423. package/skills/ef-core-patterns/SKILL.md +117 -0
  424. package/skills/ef-core-patterns/evals/triggers.json +16 -0
  425. package/skills/email-deliverability/SKILL.md +99 -0
  426. package/skills/email-deliverability/evals/triggers.json +17 -0
  427. package/skills/email-deliverability/references/dns-records.md +85 -0
  428. package/skills/energy-procurement/SKILL.md +106 -0
  429. package/skills/energy-procurement/evals/triggers.json +16 -0
  430. package/skills/error-handling-patterns/SKILL.md +112 -0
  431. package/skills/error-handling-patterns/evals/triggers.json +18 -0
  432. package/skills/error-handling-patterns/references/language-idioms.md +49 -0
  433. package/skills/estimation-and-scoping/SKILL.md +97 -0
  434. package/skills/estimation-and-scoping/evals/triggers.json +14 -0
  435. package/skills/evm-dapp-integration/SKILL.md +73 -0
  436. package/skills/evm-dapp-integration/evals/triggers.json +16 -0
  437. package/skills/fastapi-patterns/SKILL.md +127 -0
  438. package/skills/fastapi-patterns/evals/triggers.json +16 -0
  439. package/skills/ffmpeg-media-processing/SKILL.md +94 -0
  440. package/skills/ffmpeg-media-processing/evals/triggers.json +16 -0
  441. package/skills/ffmpeg-media-processing/references/recipes.md +112 -0
  442. package/skills/fhir-integration/SKILL.md +81 -0
  443. package/skills/fhir-integration/evals/triggers.json +16 -0
  444. package/skills/fhir-integration/references/search-and-bundles.md +73 -0
  445. package/skills/fhir-integration/references/smart-on-fhir.md +50 -0
  446. package/skills/finishing-a-branch/SKILL.md +127 -0
  447. package/skills/finishing-a-branch/evals/behavior.json +49 -0
  448. package/skills/finishing-a-branch/evals/triggers.json +16 -0
  449. package/skills/flask-patterns/SKILL.md +132 -0
  450. package/skills/flask-patterns/evals/triggers.json +16 -0
  451. package/skills/flutter-patterns/SKILL.md +99 -0
  452. package/skills/flutter-patterns/evals/triggers.json +16 -0
  453. package/skills/flutterwave-integration/SKILL.md +75 -0
  454. package/skills/flutterwave-integration/evals/triggers.json +16 -0
  455. package/skills/flutterwave-integration/references/api.md +73 -0
  456. package/skills/flutterwave-integration/references/webhooks.md +49 -0
  457. package/skills/freight-carrier-management/SKILL.md +107 -0
  458. package/skills/freight-carrier-management/evals/triggers.json +16 -0
  459. package/skills/fsharp-patterns/SKILL.md +133 -0
  460. package/skills/fsharp-patterns/evals/triggers.json +16 -0
  461. package/skills/fsharp-testing/SKILL.md +136 -0
  462. package/skills/fsharp-testing/evals/triggers.json +16 -0
  463. package/skills/gcp-patterns/SKILL.md +86 -0
  464. package/skills/gcp-patterns/evals/triggers.json +16 -0
  465. package/skills/git-workflow/SKILL.md +114 -0
  466. package/skills/git-workflow/evals/triggers.json +16 -0
  467. package/skills/git-worktrees/SKILL.md +130 -0
  468. package/skills/git-worktrees/evals/behavior.json +56 -0
  469. package/skills/git-worktrees/evals/triggers.json +16 -0
  470. package/skills/github-actions-ci/SKILL.md +117 -0
  471. package/skills/github-actions-ci/evals/triggers.json +16 -0
  472. package/skills/github-api-automation/SKILL.md +101 -0
  473. package/skills/github-api-automation/evals/triggers.json +17 -0
  474. package/skills/go-patterns/SKILL.md +118 -0
  475. package/skills/go-patterns/evals/triggers.json +17 -0
  476. package/skills/go-patterns/references/concurrency.md +162 -0
  477. package/skills/go-testing/SKILL.md +154 -0
  478. package/skills/go-testing/evals/triggers.json +17 -0
  479. package/skills/google-workspace-integration/SKILL.md +65 -0
  480. package/skills/google-workspace-integration/evals/triggers.json +17 -0
  481. package/skills/google-workspace-integration/references/api.md +121 -0
  482. package/skills/harmonyos-arkts/SKILL.md +117 -0
  483. package/skills/harmonyos-arkts/evals/triggers.json +16 -0
  484. package/skills/harmonyos-arkts/references/build-errors.md +42 -0
  485. package/skills/hexagonal-architecture/SKILL.md +89 -0
  486. package/skills/hexagonal-architecture/evals/triggers.json +17 -0
  487. package/skills/hipaa-compliance/SKILL.md +91 -0
  488. package/skills/hipaa-compliance/evals/triggers.json +18 -0
  489. package/skills/hipaa-compliance/references/safeguards.md +68 -0
  490. package/skills/hl7v2-integration/SKILL.md +69 -0
  491. package/skills/hl7v2-integration/evals/triggers.json +16 -0
  492. package/skills/hl7v2-integration/references/messages-and-ack.md +78 -0
  493. package/skills/homelab-network-setup/SKILL.md +125 -0
  494. package/skills/homelab-network-setup/evals/triggers.json +18 -0
  495. package/skills/homelab-network-setup/references/firewall-and-dns.md +45 -0
  496. package/skills/homelab-network-setup/references/wireguard.md +72 -0
  497. package/skills/hubtel-integration/SKILL.md +77 -0
  498. package/skills/hubtel-integration/evals/triggers.json +16 -0
  499. package/skills/hubtel-integration/references/api.md +92 -0
  500. package/skills/i18n-localization/SKILL.md +114 -0
  501. package/skills/i18n-localization/evals/triggers.json +16 -0
  502. package/skills/i18n-localization/references/libraries.md +52 -0
  503. package/skills/implementation-plans/SKILL.md +117 -0
  504. package/skills/implementation-plans/evals/behavior.json +54 -0
  505. package/skills/implementation-plans/evals/triggers.json +16 -0
  506. package/skills/incident-postmortem/SKILL.md +118 -0
  507. package/skills/incident-postmortem/evals/triggers.json +14 -0
  508. package/skills/inventory-demand-planning/SKILL.md +89 -0
  509. package/skills/inventory-demand-planning/evals/triggers.json +16 -0
  510. package/skills/inventory-demand-planning/references/formulas.md +62 -0
  511. package/skills/investor-materials/SKILL.md +127 -0
  512. package/skills/investor-materials/evals/triggers.json +16 -0
  513. package/skills/investor-materials/references/templates.md +74 -0
  514. package/skills/invoicing-and-tax/SKILL.md +84 -0
  515. package/skills/invoicing-and-tax/evals/triggers.json +17 -0
  516. package/skills/invoicing-and-tax/references/e-invoicing.md +24 -0
  517. package/skills/invoicing-and-tax/references/invoice-fields.md +38 -0
  518. package/skills/invoicing-and-tax/references/rounding.md +26 -0
  519. package/skills/ios-platform-features/SKILL.md +99 -0
  520. package/skills/ios-platform-features/evals/triggers.json +16 -0
  521. package/skills/ios-platform-features/references/foundation-models.md +90 -0
  522. package/skills/java-patterns/SKILL.md +141 -0
  523. package/skills/java-patterns/evals/triggers.json +17 -0
  524. package/skills/java-testing/SKILL.md +142 -0
  525. package/skills/java-testing/evals/triggers.json +16 -0
  526. package/skills/jetpack-compose-patterns/SKILL.md +88 -0
  527. package/skills/jetpack-compose-patterns/evals/triggers.json +16 -0
  528. package/skills/jira-integration/SKILL.md +92 -0
  529. package/skills/jira-integration/evals/triggers.json +17 -0
  530. package/skills/jpa-hibernate/SKILL.md +92 -0
  531. package/skills/jpa-hibernate/evals/triggers.json +18 -0
  532. package/skills/jpa-hibernate/references/mapping.md +99 -0
  533. package/skills/jvm-sql-mappers/SKILL.md +98 -0
  534. package/skills/jvm-sql-mappers/evals/triggers.json +16 -0
  535. package/skills/jvm-sql-mappers/references/examples.md +129 -0
  536. package/skills/kotlin-multiplatform/SKILL.md +97 -0
  537. package/skills/kotlin-multiplatform/evals/triggers.json +16 -0
  538. package/skills/kotlin-patterns/SKILL.md +128 -0
  539. package/skills/kotlin-patterns/evals/triggers.json +16 -0
  540. package/skills/kotlin-testing/SKILL.md +117 -0
  541. package/skills/kotlin-testing/evals/triggers.json +16 -0
  542. package/skills/ktor-patterns/SKILL.md +135 -0
  543. package/skills/ktor-patterns/evals/triggers.json +18 -0
  544. package/skills/kubernetes-patterns/SKILL.md +106 -0
  545. package/skills/kubernetes-patterns/evals/triggers.json +16 -0
  546. package/skills/kubernetes-patterns/references/manifests.md +115 -0
  547. package/skills/laravel-patterns/SKILL.md +136 -0
  548. package/skills/laravel-patterns/evals/triggers.json +16 -0
  549. package/skills/linear-integration/SKILL.md +98 -0
  550. package/skills/linear-integration/evals/triggers.json +17 -0
  551. package/skills/literature-review/SKILL.md +109 -0
  552. package/skills/literature-review/evals/triggers.json +16 -0
  553. package/skills/literature-review/references/appraisal.md +41 -0
  554. package/skills/literature-review/references/search-sources.md +39 -0
  555. package/skills/llm-app-patterns/SKILL.md +97 -0
  556. package/skills/llm-app-patterns/evals/triggers.json +17 -0
  557. package/skills/llm-evals/SKILL.md +98 -0
  558. package/skills/llm-evals/evals/triggers.json +16 -0
  559. package/skills/llm-evals/references/graders.md +66 -0
  560. package/skills/logistics-exception-management/SKILL.md +90 -0
  561. package/skills/logistics-exception-management/evals/triggers.json +16 -0
  562. package/skills/manim-animations/SKILL.md +106 -0
  563. package/skills/manim-animations/evals/triggers.json +16 -0
  564. package/skills/market-research/SKILL.md +117 -0
  565. package/skills/market-research/evals/triggers.json +16 -0
  566. package/skills/marketing-campaign/SKILL.md +111 -0
  567. package/skills/marketing-campaign/evals/triggers.json +16 -0
  568. package/skills/mcp-server-patterns/SKILL.md +127 -0
  569. package/skills/mcp-server-patterns/evals/triggers.json +18 -0
  570. package/skills/mcp-server-patterns/references/protocol-notes.md +68 -0
  571. package/skills/metrics-dashboards/SKILL.md +113 -0
  572. package/skills/metrics-dashboards/evals/triggers.json +16 -0
  573. package/skills/ml-experiment-workflow/SKILL.md +125 -0
  574. package/skills/ml-experiment-workflow/evals/triggers.json +16 -0
  575. package/skills/mobile-accessibility/SKILL.md +94 -0
  576. package/skills/mobile-accessibility/evals/triggers.json +16 -0
  577. package/skills/mongodb-patterns/SKILL.md +115 -0
  578. package/skills/mongodb-patterns/evals/triggers.json +18 -0
  579. package/skills/mongodb-patterns/references/indexes-and-aggregation.md +94 -0
  580. package/skills/mpesa-daraja-integration/SKILL.md +70 -0
  581. package/skills/mpesa-daraja-integration/evals/triggers.json +16 -0
  582. package/skills/mpesa-daraja-integration/references/api.md +103 -0
  583. package/skills/mpesa-daraja-integration/references/callbacks.md +74 -0
  584. package/skills/mtn-momo-integration/SKILL.md +66 -0
  585. package/skills/mtn-momo-integration/evals/triggers.json +16 -0
  586. package/skills/mtn-momo-integration/references/api.md +153 -0
  587. package/skills/mtn-momo-integration/references/callbacks.md +92 -0
  588. package/skills/mtn-momo-integration/references/sandbox-and-go-live.md +51 -0
  589. package/skills/mtn-momo-integration/scripts/sandbox-setup.js +79 -0
  590. package/skills/mysql-patterns/SKILL.md +96 -0
  591. package/skills/mysql-patterns/evals/triggers.json +16 -0
  592. package/skills/mysql-patterns/references/explain.md +34 -0
  593. package/skills/mysql-patterns/references/online-ddl.md +41 -0
  594. package/skills/nestjs-patterns/SKILL.md +114 -0
  595. package/skills/nestjs-patterns/evals/triggers.json +16 -0
  596. package/skills/nestjs-patterns/references/testing.md +68 -0
  597. package/skills/network-automation/SKILL.md +107 -0
  598. package/skills/network-automation/evals/triggers.json +18 -0
  599. package/skills/network-automation/references/tool-snippets.md +153 -0
  600. package/skills/network-design/SKILL.md +98 -0
  601. package/skills/network-design/evals/triggers.json +16 -0
  602. package/skills/network-troubleshooting/SKILL.md +152 -0
  603. package/skills/network-troubleshooting/evals/triggers.json +18 -0
  604. package/skills/network-troubleshooting/references/commands.md +33 -0
  605. package/skills/nextjs-patterns/SKILL.md +150 -0
  606. package/skills/nextjs-patterns/evals/triggers.json +18 -0
  607. package/skills/nextjs-patterns/references/caching.md +87 -0
  608. package/skills/node-backend-patterns/SKILL.md +103 -0
  609. package/skills/node-backend-patterns/evals/triggers.json +16 -0
  610. package/skills/node-backend-patterns/references/templates.md +122 -0
  611. package/skills/nuxt-patterns/SKILL.md +103 -0
  612. package/skills/nuxt-patterns/evals/triggers.json +16 -0
  613. package/skills/observability/SKILL.md +125 -0
  614. package/skills/observability/evals/triggers.json +17 -0
  615. package/skills/observability/references/otel-setup.md +87 -0
  616. package/skills/observability/references/slo-alerts.md +70 -0
  617. package/skills/open-source-release/SKILL.md +107 -0
  618. package/skills/open-source-release/evals/triggers.json +15 -0
  619. package/skills/open-source-release/references/history-scrub.md +65 -0
  620. package/skills/parallel-agent-orchestration/SKILL.md +106 -0
  621. package/skills/parallel-agent-orchestration/evals/triggers.json +14 -0
  622. package/skills/patent-research/SKILL.md +94 -0
  623. package/skills/patent-research/evals/triggers.json +16 -0
  624. package/skills/patent-research/references/databases-and-queries.md +52 -0
  625. package/skills/paystack-integration/SKILL.md +59 -0
  626. package/skills/paystack-integration/evals/triggers.json +14 -0
  627. package/skills/paystack-integration/references/api.md +73 -0
  628. package/skills/paystack-integration/references/mobile-money.md +50 -0
  629. package/skills/paystack-integration/references/webhooks.md +80 -0
  630. package/skills/pci-dss-scope/SKILL.md +103 -0
  631. package/skills/pci-dss-scope/evals/triggers.json +18 -0
  632. package/skills/pci-dss-scope/references/saq-and-data.md +36 -0
  633. package/skills/perl-patterns/SKILL.md +135 -0
  634. package/skills/perl-patterns/evals/triggers.json +18 -0
  635. package/skills/perl-testing/SKILL.md +126 -0
  636. package/skills/perl-testing/evals/triggers.json +17 -0
  637. package/skills/php-patterns/SKILL.md +116 -0
  638. package/skills/php-patterns/evals/triggers.json +16 -0
  639. package/skills/php-testing/SKILL.md +123 -0
  640. package/skills/php-testing/evals/triggers.json +16 -0
  641. package/skills/postgres-patterns/SKILL.md +103 -0
  642. package/skills/postgres-patterns/evals/triggers.json +17 -0
  643. package/skills/postgres-patterns/references/explain.md +59 -0
  644. package/skills/postgres-patterns/references/locks.md +53 -0
  645. package/skills/prd-writing/SKILL.md +124 -0
  646. package/skills/prd-writing/evals/triggers.json +15 -0
  647. package/skills/prisma-patterns/SKILL.md +83 -0
  648. package/skills/prisma-patterns/evals/triggers.json +18 -0
  649. package/skills/prisma-patterns/references/prisma-8.md +46 -0
  650. package/skills/prisma-patterns/references/workflow.md +50 -0
  651. package/skills/privacy-compliance/SKILL.md +121 -0
  652. package/skills/privacy-compliance/evals/triggers.json +18 -0
  653. package/skills/privacy-compliance/references/jurisdictions.md +51 -0
  654. package/skills/production-scheduling/SKILL.md +98 -0
  655. package/skills/production-scheduling/evals/triggers.json +16 -0
  656. package/skills/prompt-engineering/SKILL.md +92 -0
  657. package/skills/prompt-engineering/evals/triggers.json +16 -0
  658. package/skills/prospect-research/SKILL.md +87 -0
  659. package/skills/prospect-research/evals/triggers.json +16 -0
  660. package/skills/python-app-distribution/SKILL.md +107 -0
  661. package/skills/python-app-distribution/evals/triggers.json +16 -0
  662. package/skills/python-app-distribution/references/pypi-trusted-publishing.md +55 -0
  663. package/skills/python-app-distribution/references/windows-macos-signing.md +70 -0
  664. package/skills/python-patterns/SKILL.md +107 -0
  665. package/skills/python-patterns/evals/triggers.json +16 -0
  666. package/skills/python-patterns/references/tooling.md +101 -0
  667. package/skills/python-testing/SKILL.md +126 -0
  668. package/skills/python-testing/evals/triggers.json +16 -0
  669. package/skills/python-testing/references/mocking.md +71 -0
  670. package/skills/pytorch-patterns/SKILL.md +139 -0
  671. package/skills/pytorch-patterns/evals/triggers.json +16 -0
  672. package/skills/pytorch-patterns/references/debugging.md +39 -0
  673. package/skills/quality-nonconformance/SKILL.md +107 -0
  674. package/skills/quality-nonconformance/evals/triggers.json +16 -0
  675. package/skills/quality-nonconformance/references/8d-and-capa.md +46 -0
  676. package/skills/quarkus-patterns/SKILL.md +93 -0
  677. package/skills/quarkus-patterns/evals/triggers.json +18 -0
  678. package/skills/rag-pipeline-patterns/SKILL.md +117 -0
  679. package/skills/rag-pipeline-patterns/evals/triggers.json +18 -0
  680. package/skills/rag-pipeline-patterns/references/evaluation.md +37 -0
  681. package/skills/rag-pipeline-patterns/references/retrieval-recipes.md +78 -0
  682. package/skills/rails-patterns/SKILL.md +132 -0
  683. package/skills/rails-patterns/evals/triggers.json +16 -0
  684. package/skills/react-native-patterns/SKILL.md +101 -0
  685. package/skills/react-native-patterns/evals/triggers.json +16 -0
  686. package/skills/react-patterns/SKILL.md +140 -0
  687. package/skills/react-patterns/evals/triggers.json +18 -0
  688. package/skills/react-performance/SKILL.md +107 -0
  689. package/skills/react-performance/evals/triggers.json +18 -0
  690. package/skills/react-testing/SKILL.md +121 -0
  691. package/skills/react-testing/evals/triggers.json +18 -0
  692. package/skills/react-testing/references/msw.md +64 -0
  693. package/skills/react-testing/references/queries.md +41 -0
  694. package/skills/react-testing/references/setup.md +74 -0
  695. package/skills/recommender-systems/SKILL.md +119 -0
  696. package/skills/recommender-systems/evals/triggers.json +16 -0
  697. package/skills/recommender-systems/references/evaluation.md +39 -0
  698. package/skills/redis-patterns/SKILL.md +109 -0
  699. package/skills/redis-patterns/evals/triggers.json +18 -0
  700. package/skills/redis-patterns/references/operations.md +61 -0
  701. package/skills/refactoring-safely/SKILL.md +107 -0
  702. package/skills/refactoring-safely/evals/behavior.json +57 -0
  703. package/skills/refactoring-safely/evals/triggers.json +17 -0
  704. package/skills/release-management/SKILL.md +141 -0
  705. package/skills/release-management/evals/triggers.json +16 -0
  706. package/skills/remotion-video/SKILL.md +91 -0
  707. package/skills/remotion-video/evals/triggers.json +16 -0
  708. package/skills/remotion-video/references/lambda.md +66 -0
  709. package/skills/reproducible-dev-environments/SKILL.md +132 -0
  710. package/skills/reproducible-dev-environments/evals/triggers.json +16 -0
  711. package/skills/responding-to-code-review/SKILL.md +124 -0
  712. package/skills/responding-to-code-review/evals/behavior.json +54 -0
  713. package/skills/responding-to-code-review/evals/triggers.json +16 -0
  714. package/skills/returns-reverse-logistics/SKILL.md +97 -0
  715. package/skills/returns-reverse-logistics/evals/triggers.json +16 -0
  716. package/skills/ruby-patterns/SKILL.md +127 -0
  717. package/skills/ruby-patterns/evals/triggers.json +18 -0
  718. package/skills/ruby-testing/SKILL.md +113 -0
  719. package/skills/ruby-testing/evals/triggers.json +18 -0
  720. package/skills/runbook-writing/SKILL.md +101 -0
  721. package/skills/runbook-writing/evals/triggers.json +14 -0
  722. package/skills/rust-patterns/SKILL.md +118 -0
  723. package/skills/rust-patterns/evals/triggers.json +16 -0
  724. package/skills/rust-patterns/references/cargo-and-clippy.md +105 -0
  725. package/skills/rust-patterns/references/errors-and-traits.md +97 -0
  726. package/skills/rust-testing/SKILL.md +148 -0
  727. package/skills/rust-testing/evals/triggers.json +16 -0
  728. package/skills/rust-testing/references/fakes-proptest-async.md +113 -0
  729. package/skills/search-first/SKILL.md +73 -0
  730. package/skills/search-first/evals/triggers.json +14 -0
  731. package/skills/security-review/SKILL.md +58 -0
  732. package/skills/security-review/evals/behavior.json +56 -0
  733. package/skills/security-review/evals/triggers.json +14 -0
  734. package/skills/security-review/references/checklist.md +54 -0
  735. package/skills/security-review/scripts/scan-secrets.js +79 -0
  736. package/skills/seo-audit/SKILL.md +111 -0
  737. package/skills/seo-audit/evals/triggers.json +16 -0
  738. package/skills/seo-audit/references/checks.md +65 -0
  739. package/skills/session-handoff/SKILL.md +101 -0
  740. package/skills/session-handoff/evals/behavior.json +55 -0
  741. package/skills/session-handoff/evals/triggers.json +14 -0
  742. package/skills/skill-authoring/SKILL.md +98 -0
  743. package/skills/skill-authoring/evals/triggers.json +15 -0
  744. package/skills/skill-authoring/references/frontmatter.md +40 -0
  745. package/skills/skill-authoring/references/pressure-testing.md +87 -0
  746. package/skills/slack-app-integration/SKILL.md +108 -0
  747. package/skills/slack-app-integration/evals/triggers.json +17 -0
  748. package/skills/slide-decks/SKILL.md +107 -0
  749. package/skills/slide-decks/evals/triggers.json +18 -0
  750. package/skills/slide-decks/references/html-decks.md +86 -0
  751. package/skills/slide-decks/references/layouts.md +45 -0
  752. package/skills/slide-decks/references/pptx.md +87 -0
  753. package/skills/smart-contract-security/SKILL.md +110 -0
  754. package/skills/smart-contract-security/evals/triggers.json +16 -0
  755. package/skills/smart-contract-security/references/vulnerability-checklist.md +79 -0
  756. package/skills/social-media-publishing/SKILL.md +84 -0
  757. package/skills/social-media-publishing/evals/triggers.json +17 -0
  758. package/skills/social-media-publishing/references/platform-apis.md +116 -0
  759. package/skills/solidity-patterns/SKILL.md +95 -0
  760. package/skills/solidity-patterns/evals/triggers.json +16 -0
  761. package/skills/spring-boot-patterns/SKILL.md +128 -0
  762. package/skills/spring-boot-patterns/evals/triggers.json +18 -0
  763. package/skills/spring-boot-patterns/references/testing.md +72 -0
  764. package/skills/stripe-integration/SKILL.md +69 -0
  765. package/skills/stripe-integration/evals/triggers.json +16 -0
  766. package/skills/stripe-integration/references/api.md +71 -0
  767. package/skills/stripe-integration/references/billing.md +58 -0
  768. package/skills/stripe-integration/references/webhooks.md +76 -0
  769. package/skills/subagent-driven-development/SKILL.md +109 -0
  770. package/skills/subagent-driven-development/evals/behavior.json +53 -0
  771. package/skills/subagent-driven-development/evals/triggers.json +15 -0
  772. package/skills/subagent-driven-development/references/implementer-brief.md +60 -0
  773. package/skills/subagent-driven-development/references/reviewer-briefs.md +52 -0
  774. package/skills/subscription-billing-ops/SKILL.md +118 -0
  775. package/skills/subscription-billing-ops/evals/triggers.json +17 -0
  776. package/skills/subscription-billing-ops/references/proration.md +47 -0
  777. package/skills/subscription-billing-ops/references/revenue-metrics.md +38 -0
  778. package/skills/svelte-patterns/SKILL.md +122 -0
  779. package/skills/svelte-patterns/evals/triggers.json +16 -0
  780. package/skills/swift-patterns/SKILL.md +113 -0
  781. package/skills/swift-patterns/evals/triggers.json +16 -0
  782. package/skills/swift-patterns/references/concurrency-migration.md +40 -0
  783. package/skills/swift-testing/SKILL.md +121 -0
  784. package/skills/swift-testing/evals/triggers.json +16 -0
  785. package/skills/swift-testing/references/swift-testing-cheatsheet.md +81 -0
  786. package/skills/swiftui-patterns/SKILL.md +102 -0
  787. package/skills/swiftui-patterns/evals/triggers.json +16 -0
  788. package/skills/systematic-debugging/SKILL.md +92 -0
  789. package/skills/systematic-debugging/evals/behavior.json +59 -0
  790. package/skills/systematic-debugging/evals/triggers.json +16 -0
  791. package/skills/systematic-debugging/references/condition-waiting.md +52 -0
  792. package/skills/systematic-debugging/references/root-cause-tracing.md +49 -0
  793. package/skills/systematic-debugging/references/test-pollution.md +46 -0
  794. package/skills/tdd-workflow/SKILL.md +69 -0
  795. package/skills/tdd-workflow/evals/behavior.json +55 -0
  796. package/skills/tdd-workflow/evals/triggers.json +15 -0
  797. package/skills/tdd-workflow/references/testing-anti-patterns.md +87 -0
  798. package/skills/technical-writing/SKILL.md +95 -0
  799. package/skills/technical-writing/evals/triggers.json +14 -0
  800. package/skills/terraform-patterns/SKILL.md +122 -0
  801. package/skills/terraform-patterns/evals/triggers.json +16 -0
  802. package/skills/terraform-patterns/references/backends.md +67 -0
  803. package/skills/test-coverage-improvement/SKILL.md +107 -0
  804. package/skills/test-coverage-improvement/evals/triggers.json +16 -0
  805. package/skills/threat-modeling/SKILL.md +113 -0
  806. package/skills/threat-modeling/evals/triggers.json +16 -0
  807. package/skills/transactional-email/SKILL.md +68 -0
  808. package/skills/transactional-email/evals/triggers.json +17 -0
  809. package/skills/transactional-email/references/providers.md +63 -0
  810. package/skills/typescript-patterns/SKILL.md +122 -0
  811. package/skills/typescript-patterns/evals/triggers.json +16 -0
  812. package/skills/typescript-testing/SKILL.md +101 -0
  813. package/skills/typescript-testing/evals/triggers.json +16 -0
  814. package/skills/ui-demo-recording/SKILL.md +93 -0
  815. package/skills/ui-demo-recording/evals/triggers.json +16 -0
  816. package/skills/ui-demo-recording/references/cursor-and-captions.md +48 -0
  817. package/skills/ui-demo-recording/references/playwright-recording.md +63 -0
  818. package/skills/ui-demo-recording/references/post-processing.md +57 -0
  819. package/skills/ui-design-polish/SKILL.md +113 -0
  820. package/skills/ui-design-polish/evals/triggers.json +18 -0
  821. package/skills/ui-design-polish/references/detail-checklist.md +45 -0
  822. package/skills/ui-design-polish/references/tokens.md +68 -0
  823. package/skills/ui-flow-audit/SKILL.md +112 -0
  824. package/skills/ui-flow-audit/evals/triggers.json +17 -0
  825. package/skills/ui-motion/SKILL.md +103 -0
  826. package/skills/ui-motion/evals/triggers.json +18 -0
  827. package/skills/ui-motion/references/patterns.md +138 -0
  828. package/skills/ui-motion/references/tokens.md +52 -0
  829. package/skills/unicode-text-processing/SKILL.md +103 -0
  830. package/skills/unicode-text-processing/evals/triggers.json +17 -0
  831. package/skills/unicode-text-processing/references/apis.md +89 -0
  832. package/skills/unicode-text-processing/references/script-notes.md +50 -0
  833. package/skills/verification-loop/SKILL.md +70 -0
  834. package/skills/verification-loop/evals/behavior.json +52 -0
  835. package/skills/verification-loop/evals/triggers.json +14 -0
  836. package/skills/verification-loop/scripts/detect-checks.js +102 -0
  837. package/skills/video-editing/SKILL.md +111 -0
  838. package/skills/video-editing/evals/triggers.json +16 -0
  839. package/skills/video-editing/references/edl-and-logging.md +44 -0
  840. package/skills/video-editing/references/ffmpeg-edit-recipes.md +92 -0
  841. package/skills/video-editing/references/resolve-scripting.md +53 -0
  842. package/skills/vite-patterns/SKILL.md +117 -0
  843. package/skills/vite-patterns/evals/triggers.json +16 -0
  844. package/skills/vue-patterns/SKILL.md +104 -0
  845. package/skills/vue-patterns/evals/triggers.json +16 -0
  846. package/skills/web-accessibility/SKILL.md +119 -0
  847. package/skills/web-accessibility/evals/triggers.json +16 -0
  848. package/skills/web-performance/SKILL.md +107 -0
  849. package/skills/web-performance/evals/triggers.json +16 -0
  850. package/skills/web-scraping/SKILL.md +80 -0
  851. package/skills/web-scraping/evals/triggers.json +16 -0
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: brand-strategy
3
+ description: Brand identity strategy run as a structured interview, one question block at a time, covering purpose, positioning against named alternatives, the primary audience and their job to be done, three to five values tied to behaviours, personality traits and a naming brief, then written up as a one-page brand brief with open questions marked. Use when a founder or team is starting or rebranding a company or product and needs its positioning, audience, values and personality decided before voice guides, names, logos or campaigns are made.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. No tools needed beyond reading what the user shares and writing the brief.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: business
9
+ kete-loom/risk: writes-files
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # Brand strategy
14
+
15
+ Turn what the founders know (and argue about) into a short brand brief that later work can build on: the `brand-voice` guide, a naming round, a logo brief, a `marketing-campaign` plan. The brief records decisions, not adjectives.
16
+
17
+ ## Ground rules
18
+
19
+ 1. **Interview, don't invent.** Every line in the brief traces to something the user said or chose. Where you propose wording, mark it as a proposal until they accept it.
20
+ 2. **One block at a time.** Ask the questions for one block, wait, play back what you heard in two or three lines, then move on. Never send all the questions at once.
21
+ 3. **Specific beats aspirational.** "Innovative, trusted, customer-first" fits every company and decides nothing. Push each answer until it would exclude someone or something.
22
+ 4. **Name the alternative.** Positioning only means something against what the customer would do instead (a named competitor, a spreadsheet, a cousin who does it for free, doing nothing).
23
+ 5. **Evidence over hope.** If an answer about customers is a guess, say so and record it as an assumption to test, not a fact.
24
+
25
+ ## Before you start
26
+
27
+ Ask for anything that already exists: pitch deck, website, customer interviews, reviews, sales call notes, a competitor list, an earlier brand doc. Read it first and skip questions it already answers; confirm those answers instead of asking again.
28
+
29
+ Confirm the scope: a company brand, a product brand under a parent, or a rebrand. For a rebrand, ask what is wrong with the current brand and what must survive (name, colour, equity customers recognise).
30
+
31
+ ## The interview
32
+
33
+ Work through these blocks in order. Each has a goal; the questions are a starting point, so follow up where answers are vague.
34
+
35
+ 1. **Purpose.** Why the business exists beyond revenue, and what changes for customers if it succeeds. Ask: "What would your best customers lose if you shut down tomorrow?" and "What do you refuse to do even if it would make money?"
36
+ 2. **Audience.** One primary audience, described by situation and job to be done, not demographics alone. Ask who buys, who uses, who blocks the purchase, what triggers them to look for a solution, and what they use today. If they name three equal audiences, ask which one they would serve if they could only serve one.
37
+ 3. **Positioning.** Fill the frame: *For [audience] who [need or trigger], [brand] is the [category] that [key benefit], unlike [named alternative], because [reason to believe].* Ask for the proof behind the "because" (a feature, a number, a process, a founder fact).
38
+ 4. **Values.** Three to five values, each with a behaviour that shows it and a trade-off it implies ("Plain speaking: we tell customers about a fee before they find it, even when it costs a sale"). Drop any value nobody can give a behaviour for.
39
+ 5. **Personality.** Three to five traits as "this, not that" pairs on sliders (playful to serious, expert to peer, bold to calm). Ask: "If the brand were a person at a dinner party, who would it be, and who would it never be?" This feeds `brand-voice`; do not write the voice guide here.
40
+ 6. **Naming brief** (only if a name is needed or under review). Capture what the name must signal, what it must avoid, markets and languages it must work in, the preferred name type (descriptive, invented, metaphor, founder, acronym), length, and must-haves such as a .com or a matching handle. Generate candidates only if asked, and never present one as available.
41
+ 7. **Proof and constraints.** Claims the brand can make today with evidence, claims it cannot make yet, regulatory limits on claims in its sector, and existing assets that must be kept.
42
+
43
+ ## Decision rules
44
+
45
+ - Two founders disagree on a block: record both positions side by side and ask them to choose. Do not average them into a vague middle.
46
+ - The user wants to be everything to everyone: show what each audience would need the positioning to say; usually the conflict makes the choice obvious.
47
+ - No reason to believe exists yet: keep the positioning but list the proof as a gap to build.
48
+ - A value or trait contradicts how the business actually behaves (for example "transparent" with hidden fees): say so plainly and ask which one changes.
49
+
50
+ ## Stop and ask the user
51
+
52
+ - Before writing the brief, if any of purpose, primary audience or positioning is still undecided.
53
+ - Before suggesting a name be used publicly: trademark clearance and domain checks are needed, and clearance in each market is a job for a trademark professional, not this skill.
54
+ - If a positioning claim is a comparative or health, financial or environmental claim, flag that it may need legal review before it is published.
55
+
56
+ ## Never
57
+
58
+ - Never fill the brief with stock adjectives the user did not choose.
59
+ - Never claim a name is free to use, trademarked or not, or that a domain is available, without a check the user can see.
60
+ - Never design logos, colour palettes or typography here; write the brief a designer would work from.
61
+
62
+ ## Output: the brand brief
63
+
64
+ Write one page in Markdown (to a file if the user wants one), in this shape:
65
+
66
+ ```
67
+ # <Brand> brand brief (v<n>, <date>)
68
+
69
+ Purpose: <one sentence>
70
+ Primary audience: <situation + job to be done>; secondary: <if any>
71
+ Positioning: For ... who ..., <brand> is the ... that ..., unlike ..., because ...
72
+ Proof: <evidence for the "because">; gaps: <proof still to build>
73
+ Values: <value>: <behaviour> / <trade-off> (3-5 lines)
74
+ Personality: <this, not that> (3-5 pairs)
75
+ Naming brief: <must signal / must avoid / markets / type / constraints> (if in scope)
76
+ Can claim today: ... Cannot claim yet: ...
77
+ Keep from current brand: ...
78
+ Assumptions to test: ...
79
+ Open questions: ...
80
+ Next: brand-voice guide, naming round, visual identity brief, campaign plan
81
+ ```
82
+
83
+ Close by listing which open questions block the next step, and which items are proposals the user has not yet accepted.
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "We're launching a new fintech startup and haven't decided who we're really for or how we're different. Can you interview us and write a brand brief?",
4
+ "Help me work out our brand positioning statement against the big banks and mobile money apps",
5
+ "We're rebranding our bakery chain. Walk us through purpose, values and personality before we hire a designer.",
6
+ "My co-founder and I disagree on what our brand stands for. Run a structured brand workshop with us.",
7
+ "Write a naming brief for our new product line so an agency can start generating names"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Create a voice and tone guide with do and don't rewrites for our support team",
11
+ "Size the market for our school management software in Nigeria with TAM, SAM and SOM",
12
+ "Plan the four-week launch campaign for our new app with a budget split",
13
+ "Design a logo and a colour palette for our coffee shop",
14
+ "Does this homepage copy sound like our brand? Here is the style guide."
15
+ ]
16
+ }
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: brand-voice
3
+ description: Defines a company's written brand voice as three to five attributes with "this, not that" boundaries, paired do and don't rewrites, a preferred and banned vocabulary list and tone shifts by context, then checks or rewrites copy against that guide. Use when a team needs a voice and tone guide, wants marketing, product, support or social copy made consistent, or asks whether a piece of text sounds on-brand.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. No tools required; reads existing copy, a website or docs the user points to.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: business
9
+ kete-loom/risk: read-only
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # Brand voice
14
+
15
+ Voice is who the brand is, and stays constant. Tone is how that voice adjusts to the moment. This skill has two modes: **define** a voice guide, or **apply** one to copy.
16
+
17
+ Ask which mode, or infer it: "create our voice guide" is define; "make this sound like us" or "is this on-brand?" is apply. If applying and no guide exists, offer to define a short one first.
18
+
19
+ ## Define mode
20
+
21
+ ### 1. Gather inputs
22
+
23
+ 1. What the company does, for whom, and its positioning against alternatives.
24
+ 2. Audience: who reads the copy and what they need from it.
25
+ 3. Existing material: website, app copy, emails, support replies, social posts. Ask for 5-10 pieces the team likes and 2-3 they dislike.
26
+ 4. Values or personality words the team already uses.
27
+ 5. Markets and languages (formality and humour travel differently).
28
+
29
+ ### 2. Find the voice in the evidence
30
+
31
+ Read the material the team likes. Note recurring traits: sentence length, formality, humour, jargon, how the reader is addressed, use of "we".
32
+ Compare with the disliked pieces: what exactly is wrong with them?
33
+
34
+ ### 3. Write three to five voice attributes
35
+
36
+ Each attribute has a boundary so it cannot be misread:
37
+
38
+ | Attribute | This | Not that | Sounds like |
39
+ |---|---|---|---|
40
+ | Plain-spoken | Short words, direct claims | Blunt, curt | "Your payout lands tomorrow." |
41
+ | Warm | Helpful, human, uses "you" | Gushing, over-familiar | "Thanks for waiting, here's what happened." |
42
+ | Confident | States facts, recommends | Arrogant, salesy | "This plan fits teams of 5-50." |
43
+
44
+ Rules for attributes: specific enough that two writers would apply them the same way; no generic words without boundaries ("innovative", "professional"); at least one attribute should distinguish the brand from its main competitors.
45
+
46
+ ### 4. Do and don't examples
47
+
48
+ For each attribute, give at least two pairs of real or realistic lines from the brand's own contexts:
49
+
50
+ ```
51
+ Don't: "We are thrilled to announce our revolutionary new feature!!!"
52
+ Do: "You can now schedule payouts. Pick a date and we'll handle the rest."
53
+ Why: Plain-spoken and confident: says what changed and what to do.
54
+ ```
55
+
56
+ ### 5. Vocabulary
57
+
58
+ - **Use**: product names (exact spelling and capitalisation), preferred terms ("customer" vs "user"), phrases that carry the brand.
59
+ - **Avoid**: jargon, clichés ("seamless", "cutting-edge", "game-changer"), words that conflict with the voice, and terms with legal or regulatory weight that need approval (for example "guaranteed", "free", "secure" in regulated industries).
60
+ - **Mechanics**: spelling variant (US or UK), date and currency formats, contractions, emoji policy, capitalisation of headings, punctuation choices (Oxford comma, exclamation marks).
61
+
62
+ ### 6. Tone by context
63
+
64
+ Show how the voice flexes, with one example line each:
65
+
66
+ | Context | Tone shift | Example |
67
+ |---|---|---|
68
+ | Marketing / landing page | Most energetic, benefit-led | |
69
+ | Product UI and errors | Brief, calm, tells the user what to do | |
70
+ | Support replies | Patient, specific, owns problems | |
71
+ | Incident or bad news | Serious, direct, no jokes, no spin | |
72
+ | Social | Conversational, can be playful | |
73
+ | Legal / billing | Precise, neutral, plain words | |
74
+
75
+ Ask the user to confirm the attributes before writing the full guide if the evidence was thin.
76
+
77
+ ### Guide output
78
+
79
+ ```
80
+ # <Brand> voice and tone guide
81
+ ## Who we're talking to
82
+ ## Our voice in one sentence
83
+ ## Voice attributes (table with This / Not that / Sounds like)
84
+ ## Do and don't (pairs with why)
85
+ ## Vocabulary (use / avoid / mechanics)
86
+ ## Tone by context (table)
87
+ ## Quick checklist for writers (5-8 yes/no questions)
88
+ ```
89
+
90
+ ## Apply mode
91
+
92
+ 1. Load the guide (from the user, the repo, or the one just defined). Do not apply a voice you made up.
93
+ 2. Identify the context of the copy (UI, marketing, support...) and the tone that context needs.
94
+ 3. Review against each attribute, the vocabulary list and mechanics. Quote each problem line.
95
+ 4. Rewrite only what is off-voice. Keep the meaning, facts, claims, legal wording and length constraints (UI strings, character limits) intact.
96
+ 5. If a rewrite would change a factual or legal claim, flag it instead of changing it.
97
+
98
+ ### Review output
99
+
100
+ ```
101
+ ## Voice review: <piece>
102
+ Verdict: on-brand | mostly on-brand | off-brand
103
+ | # | Line | Issue (attribute or rule) | Suggested rewrite |
104
+ ## Revised copy (if requested)
105
+ ```
106
+
107
+ ## Rules
108
+
109
+ - Never copy another company's voice guide or tagline; derive the voice from this brand's own material.
110
+ - Never introduce claims, numbers or promises while rewriting.
111
+ - Keep inclusive, accessible language: no idioms that exclude, no ableist or gendered defaults, reading level suited to the audience.
112
+ - Writing a whole new article is the `article-writing` skill's job; this skill shapes how it sounds.
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "Create a voice and tone guide for our fintech app, with do and don't examples",
4
+ "Does this onboarding email sound like us? Here's our style guide and the draft.",
5
+ "Our website, support macros and app error messages all sound different. Help us define one consistent brand voice.",
6
+ "Rewrite these push notifications so they match our playful-but-clear brand personality",
7
+ "Make a list of words our copywriters should use and avoid, plus how tone changes for incident messages"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Write a 2000-word article about the history of mobile money in Ghana",
11
+ "Design a logo and colour palette for our new brand",
12
+ "Plan our product launch campaign with channels and a budget",
13
+ "Check our landing page meta titles and structured data for SEO problems",
14
+ "Draft the one-pager we send to angel investors"
15
+ ]
16
+ }
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: browser-qa
3
+ description: Exploratory, manual-style QA session on a running web app through a real browser, walking the critical user journeys, abusing forms and validation, spot-checking small screens, keyboard use and contrast, and watching the console and network panel, then filing reproducible bug reports. Use when someone wants a site or staging build clicked through and checked before a release, demo or handover, rather than automated tests written.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host with a browser-control capability (a browser automation tool or MCP server). Without one, produce the test plan and ask the user to run it.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: testing
9
+ kete-loom/risk: runs-commands
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # Browser QA pass
14
+
15
+ Act as a careful human tester. You are looking for what a real user would hit, and you prove each problem with exact steps. You do not write automated tests here; if the user wants those, use the `e2e-testing-playwright` skill instead.
16
+
17
+ ## 0. Agree the scope
18
+
19
+ Before opening the browser, confirm:
20
+
21
+ 1. **The URL** and the environment (local, staging, preview). **Never test against production** with real data or payments unless the user says so explicitly in this conversation.
22
+ 2. **Test accounts** and roles. Don't sign up with a real person's email or phone number. If you need an account and have none, **stop and ask**.
23
+ 3. **What changed** or what matters most, if anything. Weight the pass toward it.
24
+ 4. **What is off limits**: sending emails or SMS, real payments, deleting shared data. When an action would have an external effect you weren't cleared for, stop and ask.
25
+
26
+ If you have no way to control a browser, write the checklist from steps 1 to 5 and hand it to the user.
27
+
28
+ ## 1. Map the critical journeys
29
+
30
+ List 3 to 7 journeys from the navigation, the README or the user: for example sign up, log in, log out, password reset, search, create/edit/delete the core object, checkout. Do them first, end to end, on a desktop-size window. Note every journey you could not complete and why.
31
+
32
+ ## 2. Forms and validation
33
+
34
+ For each important form:
35
+
36
+ - Submit empty. Each required field should show a clear message tied to that field.
37
+ - Wrong formats: bad email, letters in a number, a date in the past where only future dates make sense, an amount of 0 and a negative one.
38
+ - Boundaries: very long text (500+ characters), emoji and non-Latin text (`Kwame Nkrumah`, `Ɔkɔmfo`, `Zoë`, `日本`), leading and trailing spaces, pasted text.
39
+ - Double submit: click the submit button twice quickly. Exactly one record or charge should result.
40
+ - Server errors: does a failed request show a helpful message and keep what the user typed?
41
+ - Navigation: back button after submit, refresh mid-flow, opening the same flow in two tabs.
42
+
43
+ ## 3. Responsive spot check
44
+
45
+ Resize to about 375 px wide (phone), 768 px (tablet) and 1280 px (desktop), or use device emulation. On each: no horizontal scrolling, nothing cut off, menus open and close, tap targets are not crammed together, modals fit and can be closed.
46
+
47
+ ## 4. Accessibility spot check
48
+
49
+ This is a quick screen, not an audit:
50
+
51
+ - Tab through each journey with the keyboard only. Focus is visible, the order makes sense, nothing traps focus, and Escape closes dialogs.
52
+ - Every input has a visible label; icon-only buttons have an accessible name.
53
+ - Images that carry meaning have alt text.
54
+ - Text contrast looks sufficient, and information is not conveyed by colour alone.
55
+ - Zoom to 200 %: content still usable.
56
+
57
+ For a full WCAG review, recommend the `accessibility-reviewer` agent or the `web-accessibility` skill.
58
+
59
+ ## 5. Console and network
60
+
61
+ Keep the console and network log open during every journey.
62
+
63
+ - Console: uncaught errors, failed hydration, React or Vue warnings, CSP violations, mixed-content warnings.
64
+ - Network: any 4xx or 5xx, requests that take more than a couple of seconds, duplicate requests for the same thing, secrets or personal data in URLs or responses that shouldn't be there.
65
+ - Note which user action produced each one.
66
+
67
+ ## 6. Verify before you report
68
+
69
+ For each issue: reproduce it a second time from a fresh page load. If it doesn't reproduce, report it as intermittent with what you observed, not as a confirmed bug. Check it isn't caused by your own test data or an expired session.
70
+
71
+ ## Bug report format
72
+
73
+ One block per bug:
74
+
75
+ ```
76
+ ### BUG-<n>: <short title stating the wrong behaviour>
77
+ Severity: blocker | major | minor | cosmetic
78
+ Where: <URL or screen>, <browser and window size>, <account/role>
79
+ Steps:
80
+ 1. ...
81
+ 2. ...
82
+ Expected: ...
83
+ Actual: ...
84
+ Evidence: <console error text, failing request + status, screenshot name>
85
+ Reproduced: 2/2 | intermittent (1/3)
86
+ ```
87
+
88
+ Severity guide: **blocker** stops a critical journey or loses data or money; **major** breaks a feature but has a workaround; **minor** is wrong but low impact; **cosmetic** is visual only.
89
+
90
+ ## Final summary
91
+
92
+ End with:
93
+
94
+ 1. Environment, browser and build tested, and the time.
95
+ 2. A table of journeys with pass / fail / not tested.
96
+ 3. Bugs ordered by severity (the blocks above).
97
+ 4. What you did not cover (browsers, roles, screens, payments), stated plainly.
98
+
99
+ Never call a build "ready to ship"; report what you saw and let the user decide.
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "Can you click through our staging site and find bugs before tomorrow's launch?",
4
+ "Do a QA pass on the signup and checkout pages at localhost:5173 and write up anything broken",
5
+ "Smoke test the new dashboard in the browser on mobile and desktop sizes",
6
+ "Go through the app like a real user and tell me if the forms handle bad input properly",
7
+ "Check the preview deploy for console errors and failed requests while you use it"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Write Playwright specs for the login and checkout flows",
11
+ "Do a full WCAG 2.2 accessibility review of our component library",
12
+ "Our e2e suite is flaky on CI, find out why and fix it",
13
+ "Measure our Largest Contentful Paint and suggest how to bring it down",
14
+ "Review the tests added in PR 482 for weak assertions"
15
+ ]
16
+ }
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: bun-runtime
3
+ description: Working with Bun as a JavaScript runtime, package manager, test runner and bundler, and knowing where it differs from Node and npm, including bun.lock and trustedDependencies, bunfig.toml, bun test with bun:test mocks, bun build and --compile, Bun.serve, automatic .env loading, Node API compatibility gaps, and when to stay on Node. Use when adopting or migrating to Bun, debugging something that works on Node but fails under Bun, setting up bun test or bun install in CI, or deciding whether Bun is a safe choice for a project.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Needs the bun CLI. Bun changes quickly; confirm version-specific behaviour against bun.com/docs for the installed version (bun --version).
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: coding
9
+ kete-loom/risk: runs-commands
10
+ kete-loom/requires: "bun"
11
+ kete-loom/owner: "Kete-org"
12
+ ---
13
+
14
+ # Bun runtime
15
+
16
+ Bun is four tools in one binary: a runtime (JavaScriptCore, not V8), a package manager, a test runner and a bundler. A project can adopt any of them separately. Decide which ones you are using before changing anything.
17
+
18
+ ## First, look at the project
19
+
20
+ 1. Run `bun --version` and read `package.json`, `bunfig.toml` (if any) and the lockfile name: `bun.lock` (text, Bun 1.2+), `bun.lockb` (older binary format), or another manager's lockfile.
21
+ 2. Note what runs in production: Bun, Node, or a serverless platform. The deploy target decides which Bun APIs are safe to use.
22
+ 3. Search the code for `Bun.`, `bun:` imports and native addons (`.node` files, `node-gyp`, `prebuild` in dependencies).
23
+
24
+ Stop and ask the user before switching the production runtime from Node to Bun, or replacing the project's package manager, test runner or bundler. Each is a separate decision.
25
+
26
+ ## Package manager
27
+
28
+ - `bun install` reads `package.json` and writes `bun.lock`. Commit it; delete other managers' lockfiles only when the team has agreed to switch.
29
+ - Convert an old `bun.lockb` with `bun install --save-text-lockfile --frozen-lockfile --lockfile-only`, then remove `bun.lockb`.
30
+ - CI: `bun install --frozen-lockfile` (or `bun ci`). Bun does not enable frozen mode automatically in CI.
31
+ - **Lifecycle scripts of dependencies do not run** unless the package is listed in `trustedDependencies` in `package.json`. A package that needs a `postinstall` (native builds, binary downloads such as some image, database or browser packages) often fails later at runtime instead of during install. Add it to `trustedDependencies` deliberately and reinstall; never trust everything blindly.
32
+ - Linker: workspaces created on recent Bun default to the `isolated` layout (pnpm-like, no phantom dependencies); single packages and older projects default to `hoisted`. Code that imports an undeclared transitive dependency breaks under `isolated`: declare the dependency rather than switching linker.
33
+ - `bunx <pkg>` is the `npx` equivalent. `bun run <script>` runs `package.json` scripts; CLIs with a `#!/usr/bin/env node` shebang (vite, next) still run under Node unless you use `bun run --bun <script>`.
34
+
35
+ ## Runtime differences from Node
36
+
37
+ - **TypeScript and JSX run directly** with no build step, but **Bun does not type-check**. Keep `tsc --noEmit` in the check pipeline.
38
+ - **`.env` is loaded automatically** (`.env`, then `.env.<NODE_ENV>`, `.env.local` (skipped when `NODE_ENV=test`), `.env.<NODE_ENV>.local`). This can surprise tools that load env themselves (Vite warns about it) and can leak local values into tests. Use `--env-file <path>` to choose files, or `--no-env-file` / `env = false` in `bunfig.toml` to turn it off.
39
+ - ESM and CommonJS can be mixed in one file, and `require` of ESM works. Code that relies on this will not run on Node; keep shared libraries Node-compatible.
40
+ - Bun-only APIs: `Bun.serve`, `Bun.file`, `Bun.write`, `Bun.spawn`, `Bun.password`, `bun:sqlite`, `bun:ffi`. Use them only in code that will never run on Node; otherwise use `node:` modules.
41
+ - Native addons: N-API addons generally work; addons that use V8's C++ API directly do not, because there is no V8.
42
+ - `Bun.serve({ fetch(req) { ... } })` uses web `Request`/`Response`. Express and Fastify also run on Bun through its `node:http` implementation; benchmark before assuming a speed-up for your workload.
43
+
44
+ ## Known Node compatibility gaps
45
+
46
+ Bun publishes a per-module compatibility page (bun.com/docs/runtime/nodejs-compat). Check it for the installed version before relying on any of these. Gaps that commonly matter:
47
+
48
+ | Area | What breaks |
49
+ |---|---|
50
+ | `async_hooks.createHook` | Stubbed; APM/tracing agents that depend on it lose context. `AsyncLocalStorage` itself works. |
51
+ | `node:v8`, `node:inspector` | Partial: `v8.serialize` uses JavaScriptCore's format, and the inspector covers only some domains. Profilers and heap tools written for V8 may not work. |
52
+ | `node:crypto` | Partial: Bun uses BoringSSL, so some algorithms and APIs are missing. Test the exact algorithm you need on Bun. |
53
+ | `node:cluster` | Partial: HTTP servers in workers each bind their own socket, so do not assume Node's load balancing. |
54
+ | `node:test` | Partial: works only when files run under `bun test`; prefer `bun:test`. |
55
+ | `node:sea` | Not supported; use `bun build --compile`. |
56
+
57
+ When something works on Node but fails on Bun: reproduce with a minimal script on both, check the compatibility page and Bun's issue tracker, then either work around it or keep that piece on Node. Never patch `node_modules`.
58
+
59
+ ## bun test
60
+
61
+ - Discovers `*.test.*`, `*_test.*`, `*.spec.*`, `*_spec.*`. Import from `bun:test`: `test`, `describe`, `expect`, `beforeEach`, `mock`, `spyOn`.
62
+ - Jest-compatible but not complete: `jest.fn()` works, `mock.module('pkg', () => ({ ... }))` replaces a module, but some Jest matchers and config options are missing. When migrating, run the whole suite and fix gaps one by one; do not mix Jest and `bun test` on the same files.
63
+ - Setup files: `bun test --preload ./test/setup.ts`, or `[test] preload = ["./test/setup.ts"]` in `bunfig.toml`. DOM tests need a preload that registers happy-dom (`@happy-dom/global-registrator`).
64
+ - Useful flags: `--watch`, `--coverage` (`--coverage-reporter=lcov` for CI), `--timeout <ms>` (default 5000), `-u` to update snapshots, `--bail`.
65
+ - Bun runs test files in a single process by default: tests that mutate globals, env or `mock.module` state leak into other files. Restore mocks in `afterEach`, or pass `--parallel` to spread files across CPU cores (check that your Bun version has this flag).
66
+
67
+ ## bun build
68
+
69
+ - `bun build ./src/index.ts --outdir dist --target node|bun|browser`. Add `--minify`, `--sourcemap=linked`, `--splitting`, `--external <pkg>` as needed. JS API: `await Bun.build({ entrypoints, outdir, target })`.
70
+ - It does not emit `.d.ts` files; libraries still need `tsc --emitDeclarationOnly`.
71
+ - `bun build --compile ./src/cli.ts --outfile mycli` makes a standalone executable with the runtime embedded (large binary, but no install step for users).
72
+ - For browser apps with HMR, dev server and framework plugins, a dedicated tool (Vite, see the `vite-patterns` skill) is usually the better fit.
73
+
74
+ ## When not to use Bun
75
+
76
+ Recommend staying on Node (or keeping Node in production while using Bun for install/test) when:
77
+
78
+ - The service depends on an APM, profiler or tracing agent that needs V8 or `async_hooks` hooks.
79
+ - It uses native addons built against V8, or crypto primitives BoringSSL lacks.
80
+ - The hosting platform has no first-class Bun runtime and a custom runtime is not acceptable to the team.
81
+ - The team needs long-term-support guarantees comparable to Node LTS.
82
+ - A library the project depends on documents Bun as unsupported.
83
+
84
+ ## Never
85
+
86
+ - Commit both `bun.lock` and another manager's lockfile as sources of truth.
87
+ - Add every dependency to `trustedDependencies` to make an install error go away.
88
+ - Use `Bun.*` APIs in a package published for Node users.
89
+ - Drop `tsc` because "Bun runs TypeScript".
90
+
91
+ ## Report
92
+
93
+ When asked to evaluate or migrate, return: what was switched (runtime / package manager / tests / bundler), commands now used for install, test, build and start, any compatibility gap found and its workaround, and the test and type-check results on Bun.
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "Migrate our Jest suite to bun test and get mock.module working",
4
+ "This package's postinstall never ran after bun install, the native binary is missing",
5
+ "Is it safe to run our production API on Bun? We use Datadog tracing",
6
+ "Our app works on Node but crashes under Bun with a crypto curve error",
7
+ "Make a single-file executable of our CLI with bun build --compile"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Add graceful shutdown and rate limiting to our Express service running on Node",
11
+ "Configure Vite library mode to publish our component package",
12
+ "Set up Vitest for our TypeScript utilities package",
13
+ "Write a GitHub Actions workflow that runs npm ci and the tests",
14
+ "Fix the circular dependency between two NestJS modules"
15
+ ]
16
+ }
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: change-impact-analysis
3
+ description: Blast-radius analysis for a code change, built from the real dependency graph rather than guesswork, using import search, the build graph and monorepo tooling (nx affected, turbo --affected, bazel query rdeps, go list, pnpm filters, Maven -amd, Gradle buildDependents) to find downstream consumers, then running the tests of changed modules and every dependent, and reconciling the predicted impact against the actual diff. Use when asked what a change could break, which packages or services consume a module, which tests must run for a diff, or whether a shared library edit is safe to merge.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Needs git and the project's own build or test tooling; monorepo commands apply only where that tool is already in use.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: coding
9
+ kete-loom/risk: runs-commands
10
+ kete-loom/requires: "git"
11
+ kete-loom/owner: "Kete-org"
12
+ ---
13
+
14
+ # Change impact analysis
15
+
16
+ Answer "what can this change break?" with evidence: a list of consumers found from the dependency graph, the tests that cover them, and the results of running those tests. Never answer from intuition alone.
17
+
18
+ ## When to run it
19
+
20
+ - **Before** a change: predict impact so the plan and the review cover every consumer.
21
+ - **After** a diff exists: compute actual impact, run the affected tests, compare with the prediction.
22
+ - Both, for shared libraries, public APIs, database schemas, config keys and anything published.
23
+
24
+ ## 1. Pin down the change
25
+
26
+ 1. Get the changed files: `git diff --name-only <base>...HEAD` (base is usually `origin/main`; use the merge base, not the tip). Include untracked files from `git status --short`.
27
+ 2. For each file, list the changed **symbols**: exported functions, classes, types, routes, events, CLI flags, env vars, config keys, DB columns, message schemas. A file-level graph over-reports; symbols tell you which consumers really care.
28
+ 3. Classify each symbol change: internal only, signature change, behaviour change with the same signature, removal, or new addition. Additions rarely break consumers; behaviour changes are the ones people miss.
29
+
30
+ ## 2. Build the consumer graph from the tooling the repo already has
31
+
32
+ Detect the build system first (look for `nx.json`, `turbo.json`, `WORKSPACE`/`MODULE.bazel`, `go.mod`, `pnpm-workspace.yaml`, `pom.xml`, `settings.gradle(.kts)`, `Cargo.toml` workspaces). Use the tool's own graph; it knows about generated code and path aliases that grep misses. Commands are in `references/graph-commands.md`.
33
+
34
+ - **Monorepo tool present**: ask it for affected projects between base and head (for example `nx show projects --affected -t test --base=origin/main`, `turbo run test --affected`, `bazel query "rdeps(//..., //pkg:target)"`).
35
+ - **No graph tool**: search the codebase for imports of the changed module and for each changed symbol name, then repeat one level up for every hit until no new consumers appear. Note this is a search result, not a graph.
36
+ - **Outside the code graph** (tools can't see these, search for them by name):
37
+ - string-keyed references: route paths, event or queue names, feature-flag keys, env vars, config keys, SQL column names, reflection and dependency-injection names;
38
+ - other repositories, deployed services, mobile apps on old versions, and third parties that call a public API;
39
+ - generated clients, fixtures, snapshots, docs and examples that embed the old shape;
40
+ - CI, deploy and infrastructure files that reference changed paths.
41
+
42
+ ## 3. Rate the blast radius
43
+
44
+ For each consumer record: name, how it depends (import, HTTP, event, schema, config), what it uses, and risk:
45
+
46
+ | Risk | Meaning |
47
+ |---|---|
48
+ | High | Uses a removed or changed signature or behaviour; deployed separately; no tests cover the usage |
49
+ | Medium | Uses the changed symbol, tests exist and will run |
50
+ | Low | Depends on the package but not on the changed symbols |
51
+
52
+ **Stop and ask the user** when a High consumer is outside this repository, when the change touches a published package, public API, database schema or message format, or when the graph says more than about 20 projects are affected (confirm the change should be split or staged).
53
+
54
+ ## 4. Run the affected tests
55
+
56
+ 1. Run the tests of the changed modules first, then every downstream consumer. Use the tool's affected mode (`nx affected -t test`, `turbo run test --affected`, `bazel test` on the rdeps test set, `go test` on the reverse-dependency packages, `mvn -pl <module> -amd verify`, `./gradlew :<module>:buildDependents`).
57
+ 2. Inside a single package, narrow with the runner's related-test mode where it exists (`jest --findRelatedTests <files>`, `vitest related <files> --run`, `pytest --testmon` if pytest-testmon is installed), and still run the full package suite before calling it safe.
58
+ 3. Include type-checks and builds of consumers; a signature change often breaks compilation, not tests.
59
+ 4. If a consumer has **no** test touching the changed symbol, list it as a coverage gap. Do not report it as safe.
60
+ 5. Shallow CI clones make affected detection treat everything as changed or nothing as changed; fetch enough history for the base.
61
+
62
+ ## 5. Reconcile planned vs actual
63
+
64
+ After the diff is final, rerun step 1 and step 2 and compare with the prediction:
65
+
66
+ - Files or symbols changed that the plan didn't mention: explain each or flag it as scope creep.
67
+ - Consumers predicted but not actually affected: fine, note them.
68
+ - Consumers affected but not predicted: these are the important ones; run their tests and add them to the review.
69
+
70
+ ## Never
71
+
72
+ - Never declare a change safe because one package's tests pass.
73
+ - Never skip consumers outside the build graph because the tool didn't list them.
74
+ - Never edit consumers to make the analysis pass without telling the user; that's a new change.
75
+
76
+ ## Report
77
+
78
+ ```
79
+ ## Impact: <change>
80
+ Base: <ref> Head: <ref>
81
+ Changed symbols: <symbol> (<kind of change>) ...
82
+ Consumers
83
+ - <name> | via <import/http/event/schema/config> | uses <symbol> | risk High/Med/Low | tests: <ran: pass/fail | none>
84
+ Outside the graph: <string-keyed refs, other repos, external callers, or "none found">
85
+ Commands run: <command> -> <result>
86
+ Coverage gaps: <consumer: what is untested>
87
+ Planned vs actual: <unplanned changes, unpredicted consumers, or "matches">
88
+ Verdict: safe to merge | merge after <action> | needs staged rollout or split
89
+ ```
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "I changed the signature of formatCurrency in packages/shared-utils. Which apps in the monorepo use it and could break?",
4
+ "What's the blast radius of renaming the user_status column? Find every consumer before I merge.",
5
+ "Run nx affected for my branch and tell me which downstream projects need testing",
6
+ "Before I bump the logging library interface, map every service and package that depends on it and run their tests",
7
+ "My diff ended up touching more than I planned. Compare what I expected to affect against what actually changed."
8
+ ],
9
+ "should_not_trigger": [
10
+ "Break this feature request into ordered implementation steps before I start coding",
11
+ "Rename the parseDate helper across the codebase without changing behaviour",
12
+ "Run lint, type-check and the test suite before I open a pull request",
13
+ "Scan our npm dependencies for known vulnerabilities",
14
+ "Explain how this repository is structured, I just cloned it"
15
+ ]
16
+ }
@@ -0,0 +1,28 @@
1
+ # Dependency graph commands by build system
2
+
3
+ Use only the tool the repository already uses. Check flags against the installed version with `--help`.
4
+
5
+ | Tool | Affected or reverse-dependency query | Run affected tests |
6
+ |---|---|---|
7
+ | Nx | `nx show projects --affected -t test --base=origin/main --head=HEAD`; `nx graph --affected` to view | `nx affected -t test --base=origin/main --head=HEAD` (or set `NX_BASE` / `NX_HEAD`) |
8
+ | Turborepo | `turbo run test --affected --dry-run` lists tasks; `--filter=...[origin/main]` selects changed packages and their dependents | `turbo run test --affected` (base defaults to `main`; override with `TURBO_SCM_BASE`, head with `TURBO_SCM_HEAD`) |
9
+ | Bazel | `bazel query "rdeps(//..., //path/to:target)"`; tests only: `bazel query "kind('.*_test', rdeps(//..., //path/to:target))"` | `bazel test $(bazel query "kind('.*_test', rdeps(//..., //path/to:target))")` |
10
+ | Go modules | No built-in reverse lookup. `go list -test -f '{{.ImportPath}} {{join .Deps " "}}' ./... \| grep -E ' <changed/import/path>( \|$)' \| awk '{print $1}' \| grep -v '\.test$' \| sort -u` lists packages whose code or tests depend on it directly or transitively; add the changed package itself | `go test <listed packages>` plus `go vet` |
11
+ | pnpm workspaces | `pnpm --filter "...[origin/main]" list --depth -1` (changed packages and their dependents); `pnpm --filter "...<pkg>"` for one package | `pnpm --filter "...[origin/main]" test` |
12
+ | Maven | `mvn -pl <module> -amd validate` prints the dependents in the Reactor Build Order (don't pass `-q`, it hides that list) | `mvn -pl <module> -amd verify` |
13
+ | Gradle | No built-in reverse-dependency listing; `buildDependents` runs them | `./gradlew :<module>:buildDependents` (builds and tests the project and every project that depends on it) |
14
+ | Cargo workspace | `cargo tree -i <crate> --workspace` (inverted tree) | `cargo test -p <crate> -p <each dependent>` |
15
+ | Python (no monorepo tool) | Search imports: `git grep -nE "^(from\|import) <package>"`; `pipdeptree -r -p <dist>` for installed distributions | `pytest <dirs>`; `pytest --testmon` with pytest-testmon for test-level selection |
16
+
17
+ ## Related-test modes inside one package
18
+
19
+ - Jest: `jest --findRelatedTests <changed files>`, `jest --changedSince=origin/main`
20
+ - Vitest: `vitest related <changed files> --run`, `vitest --changed origin/main`
21
+ - Go: `go test ./<pkg>/...` is already scoped; there is no file-level mode.
22
+
23
+ These follow static imports only. Dynamic imports, string-keyed lookups, DI containers and reflection need a codebase search.
24
+
25
+ ## CI notes
26
+
27
+ - Fetch enough history to contain the merge base (`fetch-depth: 0`, or a blobless clone with `--filter=blob:none`); a too-shallow clone makes turbo treat every package as changed.
28
+ - Use the last green commit on the default branch as the base when the tool supports it (Nx recommends this).