@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,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "My ArkUI list doesn't refresh when I change a field inside an item object, I'm using @State",
4
+ "Migrate this HarmonyOS component from @Component with @Link to @ComponentV2 with @Param and @Event",
5
+ "hvigorw assembleHap fails with arkts-no-untyped-obj-literals errors after upgrading the SDK",
6
+ "Where should I load the first page and release timers in a HarmonyOS UIAbility?",
7
+ "Set up a CI job that runs ohpm install and builds a signed HAP for our HarmonyOS NEXT app"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Build an Android screen in Jetpack Compose with a ViewModel and StateFlow",
11
+ "Our Flutter app needs to call native Android code through a platform channel",
12
+ "Convert this TypeScript React component to use hooks instead of a class",
13
+ "Share business logic between Android and iOS with Kotlin Multiplatform",
14
+ "Translate our mobile app into Simplified Chinese with plural rules"
15
+ ]
16
+ }
@@ -0,0 +1,42 @@
1
+ # HarmonyOS build errors and fixes
2
+
3
+ Exact error wording changes between SDK and hvigor versions. Match on the meaning and the rule tag, then confirm the fix in the official docs for your API level.
4
+
5
+ ## ArkTS compiler errors
6
+
7
+ | Error (rule tag) | Cause | Fix |
8
+ |---|---|---|
9
+ | Use explicit types instead of "any", "unknown" (`arkts-no-any-unknown`) | Untyped variable, parameter or `JSON.parse` result | Declare a class or interface and annotate; for loose JSON use `Record<string, Object>` and check fields |
10
+ | Object literal must correspond to some explicitly declared class or interface (`arkts-no-untyped-obj-literals`) | `{ a: 1 }` passed where no declared type matches | Declare an `interface`, annotate the variable or parameter |
11
+ | Indexed access is not supported for fields (`arkts-no-props-by-index`) | `obj[key]` on a class instance | Use a `Map<string, T>` or named fields |
12
+ | Decorator not allowed / V1 and V2 mixed | `@State` in `@ComponentV2`, or `@Local` in `@Component` | Use one decorator family per struct (see SKILL.md table) |
13
+ | `@Param` cannot be assigned | Child writes to its input | Add an `@Event` callback and let the parent change the value |
14
+ | Page not found at runtime after `loadContent` or navigation | Page missing from `main_pages.json` or wrong path | Add `"pages/Name"` to `resources/base/profile/main_pages.json` |
15
+
16
+ For every other rule tag, search the official "Adaptation Cases" page of the ArkTS migration guide for the tag; it gives a before and after for each.
17
+
18
+ ## Dependency errors
19
+
20
+ | Symptom | Fix |
21
+ |---|---|
22
+ | Cannot find module `@ohos/...` or a third-party package | Run `ohpm install` in the project root (and in the module if it has its own `oh-package.json5`); check the registry in `.ohpmrc` |
23
+ | Package installs but fails to compile | It targets OpenHarmony or an older API; find a HarmonyOS NEXT version or replace it |
24
+ | hvigor plugin download fails in CI | Configure the npm registry used by `hvigor/hvigor-config.json5` |
25
+
26
+ ## SDK and configuration errors
27
+
28
+ | Symptom | Fix |
29
+ |---|---|
30
+ | API not available at the compatible SDK version | Gate the call with `canIUse('SystemCapability.<name>')` or raise `compatibleSdkVersion` in `build-profile.json5` (ask the user first) |
31
+ | Product or target not found | Use a product name that exists under `products` in `build-profile.json5` (`-p product=<name>`) |
32
+ | Module not found by `--mode module` | Check the module is listed under `modules` in the root `build-profile.json5` |
33
+
34
+ ## Signing and install errors
35
+
36
+ | Symptom | Fix |
37
+ |---|---|
38
+ | Unsigned HAP, install rejected | Add a `signingConfigs` entry and reference it from the product; DevEco Studio can generate debug signing for a connected device |
39
+ | Install fails with a signature or bundle mismatch | Uninstall the old app (`hdc uninstall <bundleName>`) or use the same signing profile |
40
+ | Install fails, device not found | `hdc list targets` to see devices; start the emulator or reconnect |
41
+
42
+ Never paste keystore passwords into config committed to git; inject them in CI.
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: hexagonal-architecture
3
+ description: Applies ports and adapters (hexagonal, clean or onion architecture) pragmatically, keeping domain rules and use cases free of framework, database and HTTP imports, pointing dependencies inward, and untangling an existing codebase one seam at a time. Use when business logic is mixed into controllers or ORM models, when a core module must be testable without a database, when deciding whether layering is worth it for a project, or when carving a use case out of legacy code.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Language neutral; needs the project's test command to verify each step.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: coding
9
+ kete-loom/risk: writes-files
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # Hexagonal architecture (ports and adapters)
14
+
15
+ One rule matters: **source code dependencies point inward.** The domain knows nothing about HTTP, the database, queues or the framework. Everything else is detail.
16
+
17
+ ## Is it worth it here?
18
+
19
+ Decide before you add a single interface.
20
+
21
+ | Signal | Verdict |
22
+ |---|---|
23
+ | Real business rules (pricing, eligibility, state machines) that change often | Worth it for that module |
24
+ | Two or more delivery mechanisms (HTTP + queue + CLI) for the same logic | Worth it |
25
+ | Need to swap or fake an external system (payments, email, a vendor API) | Worth it at that boundary only |
26
+ | CRUD over a table with validation, nothing else | Overkill. Use the framework directly |
27
+ | Prototype, script, or a service you expect to throw away | Overkill |
28
+ | Team unfamiliar with it and no rule above applies | Overkill |
29
+
30
+ Apply it **per module**, not per repo. A CRUD admin area and a ports-and-adapters billing core can live side by side. If the verdict is unclear, **stop and ask the user** what they want to be able to test or swap.
31
+
32
+ ## The shape
33
+
34
+ ```
35
+ adapters (driving) core adapters (driven)
36
+ HTTP controller ─┐ ┌───────────────────────────┐ ┌─ PostgresOrderRepository
37
+ CLI command ────┼──▶│ use case (application) │──▶├─ StripePaymentGateway
38
+ queue consumer ──┘ │ uses domain + ports │ └─ SmtpMailer
39
+ │ domain (entities, rules) │
40
+ └───────────────────────────┘
41
+ ```
42
+
43
+ - **Domain**: entities, value objects, domain rules. Pure code. No I/O, no framework, no ORM annotations if you can avoid them.
44
+ - **Use cases (application services)**: one per user intention (`PlaceOrder`, `CancelSubscription`). Orchestrate domain objects and call ports. Own the transaction boundary.
45
+ - **Ports**: interfaces the core defines, in core terms. Driven ports: `OrderRepository`, `PaymentGateway`, `Clock`. Driving ports: the use case's input/output types.
46
+ - **Adapters**: implement driven ports (Postgres, Stripe, SMTP) or call driving ports (HTTP, CLI, consumers). All framework code lives here.
47
+ - **Composition root**: one place (main, DI container config) wires adapters into use cases.
48
+
49
+ ## Rules
50
+
51
+ 1. The core imports only the language standard library and its own code. Enforce it with a check (an import-lint rule, an architecture test such as ArchUnit, dependency-cruiser or import-linter, or package visibility), not with good intentions.
52
+ 2. Ports are named for what the core needs (`PaymentGateway.charge(amount, customer)`), not for the technology (`StripeClient`). Vendor DTOs never cross into the core; adapters translate.
53
+ 3. One port per real external dependency. Don't wrap things you'll never replace or fake (the standard library, pure utility libraries).
54
+ 4. Use cases take and return plain data or domain types, never HTTP request objects or ORM entities.
55
+ 5. Validation of input shape happens in the driving adapter; business invariants live in the domain.
56
+ 6. Tests: domain and use cases are unit-tested with in-memory fakes for ports; each adapter has its own integration test against the real thing (test database, sandbox API). Few end-to-end tests on top.
57
+ 7. Don't create a folder per layer per entity with one-line pass-through classes. If a use case only forwards to a repository, the module is probably CRUD; see the table above.
58
+
59
+ ## Migrating a tangled codebase
60
+
61
+ Never do a big-bang rewrite. Move one use case at a time, keeping the suite green after each step.
62
+
63
+ 1. **Pick the seam**: the use case with the most business logic and the most pain (bugs, hard to test). Read every caller.
64
+ 2. **Pin behaviour**: add characterisation tests at the current entry point (HTTP or function level) before moving anything. If you can't test it, stop and tell the user what blocks it.
65
+ 3. **Extract the use case**: move the logic out of the controller/model into a use-case function or class that takes its dependencies as parameters. Keep calling the same database code for now.
66
+ 4. **Introduce ports**: replace each direct infrastructure call in the use case with an interface defined next to the use case. The existing code becomes the first adapter.
67
+ 5. **Move domain rules** out of ORM models or services into domain types, one rule at a time.
68
+ 6. **Thin the controller**: it parses input, calls the use case, maps the result to a response. Nothing more.
69
+ 7. **Add the dependency check** so the extracted module can't regress.
70
+ 8. Run the test command after every step. Commit each step separately.
71
+
72
+ Stop and ask the user before: changing a public API or database schema as part of the move, introducing a DI framework, or moving more than one use case in one change.
73
+
74
+ ## Never
75
+
76
+ - Leak ORM entities, HTTP requests or vendor SDK types into the domain.
77
+ - Add an interface with exactly one implementation and no fake "for flexibility" outside a real boundary.
78
+ - Let the domain call the database "just this once."
79
+ - Restructure the whole repo into layers before a single use case benefits.
80
+
81
+ ## Report back
82
+
83
+ ```
84
+ Verdict: apply | partial (modules) | skip, and why
85
+ Core modules: paths, and the dependency check that guards them
86
+ Ports added: name → adapter(s)
87
+ Steps done: list, each with test command result
88
+ Next seam: the next use case worth extracting
89
+ ```
@@ -0,0 +1,17 @@
1
+ {
2
+ "should_trigger": [
3
+ "All our pricing logic lives inside the Django views, how do I pull it out so I can test it without a database?",
4
+ "Set up ports and adapters for the billing module so we can swap Stripe for Paystack later",
5
+ "Is clean architecture overkill for our small CRUD admin service?",
6
+ "Our domain classes import the ORM everywhere. Help me fix the dependency direction step by step",
7
+ "Carve the order placement use case out of this 2000-line legacy service without a rewrite"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Design the REST endpoints and error format for the new orders API",
11
+ "Rename this long method and split it into smaller functions, keeping behaviour",
12
+ "Compare a monolith versus microservices for our new platform and recommend one",
13
+ "Write an ADR documenting that we adopted hexagonal architecture",
14
+ "Implement the Stripe webhook handler for subscription renewals",
15
+ "Delete the dead code and unused exports in the utils folder"
16
+ ]
17
+ }
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: hipaa-compliance
3
+ description: Engineering rules for US HIPAA work on protected health information (PHI and ePHI), covering whether HIPAA applies, Security Rule safeguards such as role-based access, audit trails, encryption and automatic logoff, business associate agreements with cloud, email, SMS and AI vendors, the minimum necessary standard, de-identification, PHI-free logging, and breach readiness, with a clear not-legal-advice line. Use when building or reviewing a health, telehealth, clinic, pharmacy or insurance system in the US, choosing a vendor that will touch patient data, or scrubbing PHI from logs and analytics.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Works on any codebase; no CLI needed. Rule detail lives in references/safeguards.md and must be checked against current HHS guidance.
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: compliance
9
+ kete-loom/risk: writes-files
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # HIPAA compliance
14
+
15
+ Engineer a system that protects electronic protected health information (ePHI) by default: only the right people see it, every access is recorded, it never leaks into logs or vendors without a contract, and a breach can be scoped quickly.
16
+
17
+ ## Boundary: this is not legal advice
18
+
19
+ - You help design and build safeguards. You do not decide whether the organisation is a covered entity or business associate, whether an incident is a reportable breach, or whether a vendor contract is adequate. The privacy officer, security officer or counsel decides.
20
+ - Say so once, plainly, when the user asks a legal question, and continue with the engineering.
21
+ - No code or vendor can make a system "HIPAA compliant" on its own. Never write that claim in code, docs or marketing copy.
22
+
23
+ ## Step 1: does HIPAA apply, and to what data?
24
+
25
+ Ask the user, and **stop and ask** if the answer is unclear:
26
+
27
+ 1. Is the organisation a covered entity (health plan, health care clearinghouse, or a provider that conducts standard electronic transactions such as claims), or a business associate (a vendor that creates, receives, keeps or sends PHI for one)? A consumer wellness app that patients use on their own, with no covered entity involved, is often outside HIPAA but may fall under other laws (for example the FTC Health Breach Notification Rule or state health privacy laws). Flag this to the user; do not decide it.
28
+ 2. Which data is PHI: individually identifiable health information (past, present or future health, care, or payment for care) that is linked to an identifier. Names, dates (except year) tied to a person, phone, email, addresses below state level, record and account numbers, device ids, IPs, full-face photos and biometrics are all identifiers. `references/safeguards.md` lists the 18 Safe Harbor identifiers.
29
+ 3. Data that has been de-identified by Safe Harbor or expert determination is not PHI. Treat it as PHI until someone has done that properly.
30
+
31
+ ## Step 2: map where ePHI lives and flows
32
+
33
+ Search the codebase and infrastructure for ePHI: database tables, file storage, message queues, caches, search indexes, logs, error trackers, analytics, email and SMS, backups, exports, BI tools, support tooling and AI or LLM calls. Record each in a table:
34
+
35
+ | System | ePHI fields | Who can access | Encrypted at rest | Vendor | BAA in place |
36
+ |---|---|---|---|---|---|
37
+
38
+ This map feeds the organisation's risk analysis, which the Security Rule requires and which OCR most often finds missing.
39
+
40
+ ## Step 3: vendors and business associate agreements
41
+
42
+ 1. Every vendor that stores, processes or transmits ePHI for you needs a signed BAA before any ePHI reaches it. That includes cloud hosting, databases, email, SMS, video, error tracking, logging, analytics, support desks and AI APIs.
43
+ 2. A vendor's BAA often covers only listed services or a specific plan. Check that the exact service and configuration you use is in scope.
44
+ 3. If there is no BAA, **stop**: keep ePHI away from that vendor (strip it, or pick another vendor). Tell the user which integration is blocked and why.
45
+ 4. Typical traps: client-side analytics or session replay on logged-in pages, crash reporters capturing request bodies, marketing pixels on appointment pages, and support tools that receive screenshots.
46
+
47
+ ## Step 4: technical safeguards to build
48
+
49
+ Follow `references/safeguards.md` for the rule mapping. In code:
50
+
51
+ - **Access control**: unique user ids (no shared accounts), role-based access scoped to the patient relationship, an emergency ("break glass") access path that is logged and reviewed, automatic session timeout, and MFA for workforce and admin access.
52
+ - **Minimum necessary**: APIs return only the fields the role and task need. Lists show summaries; full records load on purpose. Internal tools mask identifiers by default.
53
+ - **Audit controls**: an append-only audit log of every create, read, update, delete and export of ePHI: actor id, patient or record id, action, timestamp, source IP, and reason for break-glass access. Store it apart from the app database, protect it from edits, and keep it for the retention period counsel sets (HIPAA documentation is kept six years; confirm what applies to logs).
54
+ - **Integrity**: validate input, use database constraints, and keep versions or history for clinical records instead of overwriting.
55
+ - **Transmission security**: TLS for every connection, including internal service calls and database connections. No ePHI in email or SMS bodies unless the organisation's policy allows it; send a "you have a new message" link instead.
56
+ - **Encryption at rest**: encrypt databases, volumes, object storage and backups, with keys in a managed key service and access to keys logged. Encryption is "addressable" under the current rule, but encrypted data is what lets a lost laptop or leaked bucket fall outside breach notification, so treat it as required.
57
+
58
+ ## Step 5: logging and telemetry without PHI
59
+
60
+ - Log record ids and request ids, never names, dates of birth, diagnoses, notes, medications, insurance ids or free-text fields.
61
+ - Add a redaction layer to the logger, the error tracker (scrub request bodies, headers, query strings) and the APM agent. Test it with a fixture that contains fake PHI.
62
+ - URLs and analytics event names must not contain PHI (no `/patients/jane-doe/hiv-results`). Use opaque ids.
63
+ - Never paste real patient data into tickets, chat, prompts or test fixtures. Use synthetic data in every non-production environment.
64
+
65
+ ## Step 6: breach readiness
66
+
67
+ - The Breach Notification Rule sets deadlines measured from discovery; see `references/safeguards.md`. Engineering must be able to answer quickly: what was accessed, whose records, from when to when.
68
+ - Keep audit logs queryable by patient and by actor, and keep a way to produce an affected-patient list with contact details.
69
+ - On a suspected incident: contain, preserve logs and snapshots, record the discovery time, and escalate to the security or privacy officer. Do not notify patients, regulators or the press yourself, and do not delete evidence.
70
+
71
+ ## Never
72
+
73
+ - Never send ePHI to a vendor without a BAA, including "just for debugging".
74
+ - Never put ePHI in logs, URLs, analytics, push notification text or email subjects.
75
+ - Never use real patient data in development, testing, demos or AI prompts.
76
+ - Never weaken access checks for convenience (shared admin logins, disabled timeouts, wildcard roles).
77
+ - Never state that the system or a vendor "is HIPAA compliant" or "HIPAA certified" (there is no official certification).
78
+
79
+ ## Report format
80
+
81
+ ```
82
+ HIPAA engineering review: <system or feature>
83
+ Applies because: <covered entity / business associate, as stated by the user>
84
+ ePHI map: <path or inline table>
85
+ Findings (highest risk first):
86
+ 1. [High|Medium|Low] <safeguard> at <file:line or system>: <gap> -> <fix>
87
+ Vendors without a confirmed BAA: <list>
88
+ Questions for the privacy or security officer: <list>
89
+ Not checked: <systems you could not see>
90
+ This is engineering guidance, not legal advice.
91
+ ```
@@ -0,0 +1,18 @@
1
+ {
2
+ "should_trigger": [
3
+ "We're building a telehealth app for US clinics, what HIPAA safeguards do we need in the backend?",
4
+ "Can we use Sentry and Twilio in our patient portal or do we need a BAA first?",
5
+ "Our logs are full of patient names and diagnoses, help me scrub PHI out of them",
6
+ "Design an audit log for who viewed or exported each patient record in our EHR",
7
+ "Is a hashed email plus visit date still PHI if we send it to our analytics vendor?",
8
+ "Review our pharmacy refill service for HIPAA minimum necessary and access control gaps"
9
+ ],
10
+ "should_not_trigger": [
11
+ "Our EU users want their data deleted under GDPR, build the erasure flow",
12
+ "Which SAQ do we need if we use Stripe Checkout for payments?",
13
+ "Write unit tests for the appointment booking service",
14
+ "Do a security review of our new password reset endpoint",
15
+ "Set up role-based access control with OAuth scopes in our NestJS API",
16
+ "Build a PyTorch model that predicts hospital readmission from tabular data"
17
+ ]
18
+ }
@@ -0,0 +1,68 @@
1
+ # HIPAA rule map for engineers
2
+
3
+ Engineering summary only, not legal advice. Check HHS (hhs.gov/hipaa) and the regulation text (45 CFR Parts 160 and 164) before relying on any detail, and have the privacy or security officer confirm.
4
+
5
+ ## Status of the Security Rule
6
+
7
+ - HHS published a proposed overhaul of the Security Rule in January 2025. It would remove the "required" versus "addressable" split and make controls such as encryption and MFA mandatory. It is still a proposal: in July 2026 the federal regulatory agenda moved its final action date to July 2027 and listed it under long-term actions. The current Security Rule stays in force until a final rule takes effect; check HHS for its status.
8
+ - Build to the stricter proposed bar anyway (encrypt everything, MFA everywhere, asset inventory, network map), because it is cheap to do in new systems and expensive to retrofit.
9
+
10
+ ## Security Rule safeguards (45 CFR 164.308 to 164.312)
11
+
12
+ | Safeguard | Section | What engineering builds |
13
+ |---|---|---|
14
+ | Risk analysis and risk management | 164.308(a)(1) | ePHI map, threat list, tracked remediation |
15
+ | Workforce access management | 164.308(a)(4) | Role definitions, joiner/mover/leaver process, access reviews |
16
+ | Security incident procedures | 164.308(a)(6) | Incident runbook, alerting, evidence preservation |
17
+ | Contingency plan | 164.308(a)(7) | Encrypted backups, tested restores, disaster recovery plan |
18
+ | Business associate contracts | 164.308(b), 164.314(a) | BAA register per vendor and service |
19
+ | Device and media controls | 164.310(d) | Disk encryption, secure wipe, no ePHI on unmanaged devices |
20
+ | Access control | 164.312(a) | Unique user ids, emergency access, automatic logoff, encryption (addressable) |
21
+ | Audit controls | 164.312(b) | Tamper-resistant audit log of ePHI activity |
22
+ | Integrity | 164.312(c) | Controls against improper alteration or destruction |
23
+ | Person or entity authentication | 164.312(d) | Strong authentication, MFA |
24
+ | Transmission security | 164.312(e) | TLS everywhere, integrity checks, encryption (addressable) |
25
+
26
+ "Addressable" does not mean optional: implement it, or document why an equivalent measure is reasonable.
27
+
28
+ Documentation of policies and actions is kept for six years from creation or last effective date (164.316(b)(2)).
29
+
30
+ ## Privacy Rule points that shape code
31
+
32
+ - **Minimum necessary** (164.502(b), 164.514(d)): limit uses, disclosures and requests to the minimum needed. Does not apply to disclosures to the patient or for treatment between providers.
33
+ - **Business associates** (164.502(e), 164.504(e)): a BAA must be in place before a business associate handles PHI, and subcontractors of business associates need one too.
34
+ - **Patient right of access** (164.524): patients can get copies of their records, electronically if held electronically. Build an export.
35
+
36
+ ## De-identification (164.514(b))
37
+
38
+ Two methods: expert determination, or Safe Harbor. Safe Harbor removes these 18 identifiers of the individual and of relatives, employers and household members, and the entity has no actual knowledge that the rest could identify the person:
39
+
40
+ 1. Names
41
+ 2. Geographic subdivisions smaller than a state (street, city, county, ZIP; the first three ZIP digits may stay if that area has more than 20,000 people)
42
+ 3. All elements of dates (except year) related to the person, and all ages over 89
43
+ 4. Telephone numbers
44
+ 5. Fax numbers
45
+ 6. Email addresses
46
+ 7. Social Security numbers
47
+ 8. Medical record numbers
48
+ 9. Health plan beneficiary numbers
49
+ 10. Account numbers
50
+ 11. Certificate or license numbers
51
+ 12. Vehicle identifiers and serial numbers, including license plates
52
+ 13. Device identifiers and serial numbers
53
+ 14. Web URLs
54
+ 15. IP addresses
55
+ 16. Biometric identifiers, including finger and voice prints
56
+ 17. Full-face photographs and comparable images
57
+ 18. Any other unique identifying number, characteristic or code
58
+
59
+ Hashing an identifier is not de-identification by itself.
60
+
61
+ ## Breach Notification Rule (164.400 to 164.414)
62
+
63
+ - Applies to unsecured PHI. PHI encrypted to HHS guidance, with the key not compromised, is "secured".
64
+ - Individuals: without unreasonable delay and no later than 60 calendar days after discovery.
65
+ - HHS: for 500 or more individuals, at the same time as individual notice; for fewer than 500, in an annual log submitted within 60 days after the end of the calendar year.
66
+ - Media: when more than 500 residents of a state or jurisdiction are affected.
67
+ - Business associates notify the covered entity without unreasonable delay and no later than 60 days after discovery.
68
+ - Whether an incident is a reportable breach is a legal decision based on a risk assessment. Engineering provides the facts.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: hl7v2-integration
3
+ description: Parses, generates and routes pipe-delimited HL7 version 2.x messages such as ADT admit/discharge/transfer events, ORM and OML orders and ORU results, handling MSH encoding characters and escape sequences, repeating fields and components, MSH-10 control IDs, original and enhanced ACK/NACK modes, MLLP framing over TCP, interface engines like Mirth Connect (NextGen Connect), and mapping v2 segments to FHIR resources. Use when receiving or sending HL7 v2 feeds from a hospital, lab or EHR, debugging a rejected message or missing ACK, writing an MLLP listener, or converting PID, PV1, OBR and OBX data into FHIR.
4
+ license: MIT
5
+ compatibility: Any Agent Skills host. Live feeds need network access to the interface engine or MLLP endpoint. Rules apply to any language or HL7 library (for example HAPI HL7v2, python-hl7, hl7apy).
6
+ metadata:
7
+ kete-loom/version: "0.1.0"
8
+ kete-loom/category: integrations
9
+ kete-loom/risk: network
10
+ kete-loom/owner: "Kete-org"
11
+ ---
12
+
13
+ # HL7 v2 integration
14
+
15
+ Build an HL7 v2 interface that never loses a message, never files a result against the wrong patient, and tells the sender exactly why it rejected something. For the FHIR REST API use `fhir-integration`; for HIPAA safeguards around the feed use `hipaa-compliance`.
16
+
17
+ This is engineering guidance, not clinical advice. Every live interface is validated with the sending site before go-live.
18
+
19
+ ## Ground rules
20
+
21
+ 1. **The interface specification wins.** Every site customises v2 (Z-segments, optional fields made required, local code tables). Get the sender's or receiver's interface spec and sample messages before writing a parser. If there is none, stop and ask for it.
22
+ 2. **Read encoding characters from MSH, never hard-code them.** MSH-1 is the field separator (normally `|`), MSH-2 holds component `^`, repetition `~`, escape `\`, subcomponent `&` (and truncation `#` from v2.7). Segments end with carriage return `\r` (0x0D), not `\n`.
23
+ 3. **Unescape and escape.** `\F\` `\S\` `\R\` `\E\` `\T\` stand for the separators inside data; `\X..\` is hex and `\.br\` a line break in formatted text. Escape on output; a name with `^` or `&` must not split fields.
24
+ 4. **Fields repeat.** PID-3 (identifiers), PID-5 (names), PID-13 (phones) and OBX-5 can repeat with `~`. Pick the identifier by its assigning authority and type code (PID-3.4, PID-3.5 such as `MR`), never "the first one".
25
+ 5. **Persist before you ACK.** Write the raw message to durable storage (queue or database) in the same step that decides the ACK. Send `AA`/`CA` only once it is stored. If storage fails, send `AR` with ERR-3 code `207` (application internal error) or send no ACK so the sender retries; `AE` means the content is wrong and senders usually don't resend it unchanged.
26
+ 6. **MSH-10 is the idempotency key.** Senders resend when an ACK is lost. Deduplicate on sending facility (MSH-4) plus MSH-10 and return the same ACK again for a duplicate.
27
+ 7. **Preserve order per patient.** ADT events (A01 admit, A02 transfer, A03 discharge, A08 update, A40 merge) must be processed in order for a patient. Process one connection serially, or partition by patient identifier; never parallelise blindly.
28
+ 8. **Merges and corrections are first-class.** Handle A40 (merge patient), A11/A13 (cancel admit/discharge), A08 updates, and ORU results with OBX-11 result status `C` (corrected) or `D` (delete). Never treat them as new records.
29
+ 9. **Never log full messages.** Messages contain PHI. Log message type, MSH-10, MSH-4, processing outcome and error location (segment, field) only. Keep raw messages in access-controlled storage with a retention policy.
30
+
31
+ ## Steps
32
+
33
+ 1. **Collect the spec and samples:** versions (MSH-12, for example `2.3`, `2.5.1`), message types and trigger events (MSH-9, for example `ADT^A01^ADT_A01`, `ORU^R01^ORU_R01`), required segments, Z-segments, code tables, ACK mode (MSH-15/MSH-16), and character set (MSH-18).
34
+ 2. **Transport.** For MLLP use the framing in `references/messages-and-ack.md`. Run MLLP over a VPN or TLS tunnel; MLLP itself has no encryption or authentication. Restrict the listener port to the sender's IPs.
35
+ 3. **Parse** with a maintained library, configured to read separators from MSH. Validate: required segments present, MSH-9 is a type you accept, MSH-11 processing ID (`P` production, `T` test, `D` debug) matches the environment. Reject `T` messages in production and `P` messages in test.
36
+ 4. **Acknowledge** with the ACK format in `references/messages-and-ack.md`. On a rejected message set MSA-1 to `AE` (a problem in the message content, such as a missing required field; the sender must fix it before resending) or `AR` (rejected for reasons not about the content: unsupported message type, version or processing ID, or a receiver failure), and fill ERR with the segment and field location and a code.
37
+ 5. **Map** fields to your model or to FHIR using the table in `references/messages-and-ack.md` and the HL7 Version 2 to FHIR IG (hl7.org/fhir/uv/v2mappings). Keep the original identifiers and the raw message ID on every mapped record for traceability.
38
+ 6. **Produce** outbound messages with a fresh MSH-10 per message, MSH-7 timestamp with timezone, correct MSH-3/4/5/6 sending and receiving application and facility, and wait for the ACK before sending the next on that connection. Retry with the same MSH-10 on timeout.
39
+ 7. **Test** with de-identified sample messages from the site, plus edge cases: escaped separators, repeating identifiers, missing optional segments, Z-segments, a duplicate MSH-10, a merge (A40), a corrected result, an empty OBX-5, a message with `\n` line endings.
40
+
41
+ ## Interface engines
42
+
43
+ If the organisation runs an engine (Mirth Connect by NextGen Healthcare, commercially licensed from 4.6; Rhapsody; Cloverleaf; InterSystems HealthShare; or a cloud service such as Google Cloud Healthcare API HL7v2 stores with its MLLP adapter), put routing, filtering and transformation there rather than in each application, and keep transformations in source control. Your application then gets one well-defined feed.
44
+
45
+ ## Stop and ask the user
46
+
47
+ - Before connecting to a production feed, or replaying messages into production.
48
+ - When identifiers in PID-3 don't match the agreed assigning authority, or a message would update a patient that can't be matched uniquely.
49
+ - When the sample messages contradict the interface spec.
50
+ - Before discarding or "fixing up" messages that fail validation.
51
+
52
+ ## Never
53
+
54
+ - Never split on `|` and `^` with hard-coded indices without handling escapes and repetitions.
55
+ - Never ACK before the message is durably stored.
56
+ - Never drop OBX segments you don't understand from a result; store them and flag them.
57
+ - Never reuse an MSH-10 for a different message.
58
+ - Never mix test and production feeds on one listener.
59
+
60
+ ## Report format
61
+
62
+ When asked to review or design an interface, finish with:
63
+
64
+ ```
65
+ Feed: <sender → receiver, message types and versions, transport>
66
+ ACK mode: <original | enhanced>, persisted before ACK: <yes/no>
67
+ Findings: <ranked list, file:line, rule broken, fix>
68
+ Open questions for the interface analyst: <list>
69
+ ```
@@ -0,0 +1,16 @@
1
+ {
2
+ "should_trigger": [
3
+ "Write an MLLP listener in Node that receives ADT messages and sends back an ACK",
4
+ "The lab says our ORU^R01 parser files results under the wrong patient when PID-3 has two identifiers",
5
+ "Our interface engine keeps resending messages because it never gets an AA back, help me debug the ACK",
6
+ "Map OBX segments from incoming HL7 v2 lab results into FHIR Observation resources",
7
+ "Generate outbound ORM order messages with proper MSH-10 control IDs and escaping of the ^ character in names"
8
+ ],
9
+ "should_not_trigger": [
10
+ "Query a FHIR server for all Encounters in the last week using _include for the patient",
11
+ "Design drug-interaction alerts so clinicians don't get alert fatigue",
12
+ "Set up a Kafka consumer with exactly-once processing for our order events",
13
+ "Check our hospital feed handler for patient data written to application logs",
14
+ "Write the HIPAA audit logging requirements for our EHR export feature"
15
+ ]
16
+ }
@@ -0,0 +1,78 @@
1
+ # HL7 v2 messages, ACKs, MLLP and FHIR mapping
2
+
3
+ Sources: HL7 v2.5.1 and later chapters 2 (control) and 3 (ADT), the MLLP transport spec (HL7 v2 Appendix C / Transport Specification MLLP Release 2), and the HL7 Version 2 to FHIR IG 1.0.0. Field positions below are the common ones; the site's interface spec overrides them.
4
+
5
+ ## Example ADT^A01
6
+
7
+ ```
8
+ MSH|^~\&|ADT1|GOOD HEALTH HOSPITAL|RCV|RCVFAC|20240612083000+0100||ADT^A01^ADT_A01|MSG00001|P|2.5.1
9
+ EVN|A01|20240612083000+0100
10
+ PID|1||12345^^^GHH^MR~987654321^^^NHS^NH||DOE^JANE^A||19800101|F|||1 MAIN ST^^LEEDS^^LS1 1AA^GBR
11
+ PV1|1|I|WARD1^ROOM2^BED3||||1234^SMITH^JOHN|||MED
12
+ ```
13
+
14
+ Segments are separated by `\r`. The line breaks above are for reading only.
15
+
16
+ ## Key fields
17
+
18
+ | Field | Meaning |
19
+ |---|---|
20
+ | MSH-3 / MSH-4 | sending application / facility |
21
+ | MSH-5 / MSH-6 | receiving application / facility |
22
+ | MSH-7 | message date/time |
23
+ | MSH-9 | message type ^ trigger event ^ structure |
24
+ | MSH-10 | message control ID (unique per message from a sender) |
25
+ | MSH-11 | processing ID: P, T, D |
26
+ | MSH-12 | version ID |
27
+ | MSH-15 / MSH-16 | accept / application acknowledgment type (AL, NE, ER, SU); blank means original mode |
28
+ | PID-3 | patient identifier list (ID ^^^ assigning authority ^ type code) |
29
+ | PID-5 / PID-7 / PID-8 | name / birth date / administrative sex |
30
+ | PV1-2 / PV1-3 | patient class / assigned location |
31
+ | ORC-1 / ORC-2 / ORC-3 | order control / placer order number / filler order number |
32
+ | OBR-4 | universal service identifier (ordered test) |
33
+ | OBX-2 / OBX-3 / OBX-5 / OBX-6 | value type / observation identifier / value / units |
34
+ | OBX-8 / OBX-11 | abnormal flags / result status (F final, P preliminary, C corrected, D delete, X cannot obtain) |
35
+
36
+ ## ACK
37
+
38
+ Original mode: the receiving application replies once.
39
+
40
+ ```
41
+ MSH|^~\&|RCV|RCVFAC|ADT1|GOOD HEALTH HOSPITAL|20240612083001+0100||ACK^A01^ACK|ACK00001|P|2.5.1
42
+ MSA|AA|MSG00001
43
+ ```
44
+
45
+ - MSA-1: `AA` accepted, `AE` error, `AR` rejected.
46
+ - MSA-2: the MSH-10 of the message being acknowledged.
47
+ - On `AE`/`AR`, add `ERR` with location (ERR-2, for example `PID^1^3`), HL7 error code (ERR-3, from table 0357, for example `101` required field missing, `200` unsupported message type, `207` application internal error) and severity (ERR-4: `E`, `W`, `I`).
48
+ - Swap sending and receiving application/facility relative to the inbound MSH.
49
+
50
+ Enhanced mode (MSH-15/16 set): a commit ACK (`CA`, `CE`, `CR`) confirms safe receipt, and an optional application ACK (`AA`, `AE`, `AR`) follows later as a separate message.
51
+
52
+ ## MLLP framing
53
+
54
+ ```
55
+ <VT> message <FS><CR>
56
+ VT = 0x0B FS = 0x1C CR = 0x0D
57
+ ```
58
+
59
+ - Read bytes until `0x1C 0x0D`; strip the leading `0x0B`. A TCP read can contain part of a message or several messages: buffer and split on the trailer.
60
+ - One message at a time per connection: send, wait for the ACK, then the next.
61
+ - Set an ACK timeout (often 30 to 60 seconds, agree it with the partner) and resend with the same MSH-10 on timeout.
62
+ - Keep connections open; reconnect with backoff.
63
+ - MLLP has no security. Use a VPN, TLS wrapper or engine-to-engine secure channel.
64
+
65
+ ## Mapping to FHIR (summary of the v2-to-FHIR IG)
66
+
67
+ | v2 | FHIR R4 |
68
+ |---|---|
69
+ | PID | Patient (PID-3 → identifier, PID-5 → name, PID-7 → birthDate, PID-8 → gender via a concept map) |
70
+ | PV1 | Encounter (PV1-2 → class, PV1-3 → location, PV1-19 visit number → identifier) |
71
+ | ORC + OBR | ServiceRequest (placer/filler numbers → identifier) and DiagnosticReport for results |
72
+ | OBX | Observation (OBX-3 → code, OBX-5 by OBX-2 type → value[x], OBX-6 → valueQuantity.unit, OBX-11 → status) |
73
+ | AL1 | AllergyIntolerance |
74
+ | DG1 | Condition |
75
+ | NK1 | RelatedPerson or Patient.contact |
76
+ | MSH, EVN | Provenance / MessageHeader (keep MSH-10 for traceability) |
77
+
78
+ Code tables map through ConceptMaps; local codes need a site-specific map. Map OBX-11 `C` to Observation `status = corrected` and update the existing Observation rather than creating a new one; `D` maps to `entered-in-error`.