arboris-cli 1.0.0 → 1.1.1

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 (451) hide show
  1. package/dist/cli.mjs +420 -0
  2. package/manifest.json +602 -0
  3. package/package.json +22 -10
  4. package/prisma/skills/accessibility/SKILL.md +147 -0
  5. package/prisma/skills/agent-architecture-audit/SKILL.md +257 -0
  6. package/prisma/skills/agent-eval/SKILL.md +146 -0
  7. package/prisma/skills/agent-harness-construction/SKILL.md +74 -0
  8. package/prisma/skills/agent-introspection-debugging/SKILL.md +154 -0
  9. package/prisma/skills/agent-payment-x402/SKILL.md +225 -0
  10. package/prisma/skills/agent-self-evaluation/SKILL.md +182 -0
  11. package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +87 -0
  12. package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +86 -0
  13. package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +71 -0
  14. package/prisma/skills/agent-self-evaluation/references/hook-integration.md +64 -0
  15. package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +408 -0
  16. package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +86 -0
  17. package/prisma/skills/agent-sort/SKILL.md +216 -0
  18. package/prisma/skills/agentic-engineering/SKILL.md +64 -0
  19. package/prisma/skills/agentic-os/SKILL.md +388 -0
  20. package/prisma/skills/ai-first-engineering/SKILL.md +52 -0
  21. package/prisma/skills/ai-regression-testing/SKILL.md +386 -0
  22. package/prisma/skills/android-clean-architecture/SKILL.md +340 -0
  23. package/prisma/skills/angular-developer/SKILL.md +155 -0
  24. package/prisma/skills/angular-developer/references/angular-animations.md +160 -0
  25. package/prisma/skills/angular-developer/references/angular-aria.md +410 -0
  26. package/prisma/skills/angular-developer/references/cli.md +86 -0
  27. package/prisma/skills/angular-developer/references/component-harnesses.md +59 -0
  28. package/prisma/skills/angular-developer/references/component-styling.md +91 -0
  29. package/prisma/skills/angular-developer/references/components.md +117 -0
  30. package/prisma/skills/angular-developer/references/creating-services.md +97 -0
  31. package/prisma/skills/angular-developer/references/data-resolvers.md +69 -0
  32. package/prisma/skills/angular-developer/references/define-routes.md +67 -0
  33. package/prisma/skills/angular-developer/references/defining-providers.md +72 -0
  34. package/prisma/skills/angular-developer/references/di-fundamentals.md +120 -0
  35. package/prisma/skills/angular-developer/references/e2e-testing.md +56 -0
  36. package/prisma/skills/angular-developer/references/effects.md +83 -0
  37. package/prisma/skills/angular-developer/references/hierarchical-injectors.md +43 -0
  38. package/prisma/skills/angular-developer/references/host-elements.md +80 -0
  39. package/prisma/skills/angular-developer/references/injection-context.md +63 -0
  40. package/prisma/skills/angular-developer/references/inputs.md +101 -0
  41. package/prisma/skills/angular-developer/references/linked-signal.md +59 -0
  42. package/prisma/skills/angular-developer/references/loading-strategies.md +61 -0
  43. package/prisma/skills/angular-developer/references/mcp.md +108 -0
  44. package/prisma/skills/angular-developer/references/navigate-to-routes.md +69 -0
  45. package/prisma/skills/angular-developer/references/outputs.md +86 -0
  46. package/prisma/skills/angular-developer/references/reactive-forms.md +122 -0
  47. package/prisma/skills/angular-developer/references/rendering-strategies.md +44 -0
  48. package/prisma/skills/angular-developer/references/resource.md +77 -0
  49. package/prisma/skills/angular-developer/references/route-animations.md +56 -0
  50. package/prisma/skills/angular-developer/references/route-guards.md +52 -0
  51. package/prisma/skills/angular-developer/references/router-lifecycle.md +45 -0
  52. package/prisma/skills/angular-developer/references/router-testing.md +87 -0
  53. package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
  54. package/prisma/skills/angular-developer/references/signal-forms.md +795 -0
  55. package/prisma/skills/angular-developer/references/signals-overview.md +94 -0
  56. package/prisma/skills/angular-developer/references/tailwind-css.md +69 -0
  57. package/prisma/skills/angular-developer/references/template-driven-forms.md +114 -0
  58. package/prisma/skills/angular-developer/references/testing-fundamentals.md +65 -0
  59. package/prisma/skills/api-connector-builder/SKILL.md +121 -0
  60. package/prisma/skills/api-design/SKILL.md +524 -0
  61. package/prisma/skills/architecture-decision-records/SKILL.md +180 -0
  62. package/prisma/skills/article-writing/SKILL.md +80 -0
  63. package/prisma/skills/automation-audit-ops/SKILL.md +143 -0
  64. package/prisma/skills/autonomous-agent-harness/SKILL.md +274 -0
  65. package/prisma/skills/autonomous-loops/SKILL.md +611 -0
  66. package/prisma/skills/backend-patterns/SKILL.md +562 -0
  67. package/prisma/skills/benchmark/SKILL.md +94 -0
  68. package/prisma/skills/benchmark-methodology/SKILL.md +190 -0
  69. package/prisma/skills/benchmark-optimization-loop/SKILL.md +70 -0
  70. package/prisma/skills/blender-motion-state-inspection/SKILL.md +165 -0
  71. package/prisma/skills/blueprint/SKILL.md +106 -0
  72. package/prisma/skills/brand-discovery/SKILL.md +145 -0
  73. package/prisma/skills/brand-discovery/references/10_purpose-why.md +40 -0
  74. package/prisma/skills/brand-discovery/references/20_positioning.md +44 -0
  75. package/prisma/skills/brand-discovery/references/30_audience-niche.md +52 -0
  76. package/prisma/skills/brand-discovery/references/40_personality-archetype.md +57 -0
  77. package/prisma/skills/brand-discovery/references/50_voice-tone.md +59 -0
  78. package/prisma/skills/brand-discovery/references/60_narrative-story.md +50 -0
  79. package/prisma/skills/brand-discovery/references/70_founder-tension.md +49 -0
  80. package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +133 -0
  81. package/prisma/skills/brand-voice/SKILL.md +98 -0
  82. package/prisma/skills/brand-voice/references/voice-profile-schema.md +55 -0
  83. package/prisma/skills/browser-qa/SKILL.md +105 -0
  84. package/prisma/skills/bun-runtime/SKILL.md +85 -0
  85. package/prisma/skills/canary-watch/SKILL.md +108 -0
  86. package/prisma/skills/carrier-relationship-management/SKILL.md +212 -0
  87. package/prisma/skills/cisco-ios-patterns/SKILL.md +164 -0
  88. package/prisma/skills/ck/SKILL.md +148 -0
  89. package/prisma/skills/ck/commands/forget.mjs +44 -0
  90. package/prisma/skills/ck/commands/info.mjs +24 -0
  91. package/prisma/skills/ck/commands/init.mjs +143 -0
  92. package/prisma/skills/ck/commands/list.mjs +40 -0
  93. package/prisma/skills/ck/commands/migrate.mjs +202 -0
  94. package/prisma/skills/ck/commands/resume.mjs +36 -0
  95. package/prisma/skills/ck/commands/save.mjs +210 -0
  96. package/prisma/skills/ck/commands/shared.mjs +387 -0
  97. package/prisma/skills/ck/hooks/session-start.mjs +224 -0
  98. package/prisma/skills/claude-devfleet/SKILL.md +112 -0
  99. package/prisma/skills/click-path-audit/SKILL.md +245 -0
  100. package/prisma/skills/clickhouse-io/SKILL.md +440 -0
  101. package/prisma/skills/code-tour/SKILL.md +254 -0
  102. package/prisma/skills/codebase-onboarding/SKILL.md +234 -0
  103. package/prisma/skills/codehealth-mcp/SKILL.md +167 -0
  104. package/prisma/skills/coding-standards/SKILL.md +551 -0
  105. package/prisma/skills/competitive-platform-analysis/SKILL.md +214 -0
  106. package/prisma/skills/competitive-report-structure/SKILL.md +162 -0
  107. package/prisma/skills/compose-multiplatform-patterns/SKILL.md +300 -0
  108. package/prisma/skills/config-gc/SKILL.md +120 -0
  109. package/prisma/skills/configure-ecc/SKILL.md +385 -0
  110. package/prisma/skills/connections-optimizer/SKILL.md +190 -0
  111. package/prisma/skills/content-engine/SKILL.md +132 -0
  112. package/prisma/skills/content-hash-cache-pattern/SKILL.md +162 -0
  113. package/prisma/skills/context-budget/SKILL.md +136 -0
  114. package/prisma/skills/continuous-agent-loop/SKILL.md +46 -0
  115. package/prisma/skills/continuous-learning/SKILL.md +132 -0
  116. package/prisma/skills/continuous-learning/config.json +18 -0
  117. package/prisma/skills/continuous-learning/evaluate-session.sh +69 -0
  118. package/prisma/skills/continuous-learning-v2/SKILL.md +361 -0
  119. package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +359 -0
  120. package/prisma/skills/continuous-learning-v2/agents/observer.md +189 -0
  121. package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  122. package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +248 -0
  123. package/prisma/skills/continuous-learning-v2/config.json +8 -0
  124. package/prisma/skills/continuous-learning-v2/hooks/observe.sh +585 -0
  125. package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +322 -0
  126. package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +1956 -0
  127. package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  128. package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +68 -0
  129. package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1421 -0
  130. package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +184 -0
  131. package/prisma/skills/cost-tracking/SKILL.md +97 -0
  132. package/prisma/skills/council/SKILL.md +204 -0
  133. package/prisma/skills/cpp-coding-standards/SKILL.md +724 -0
  134. package/prisma/skills/cpp-testing/SKILL.md +325 -0
  135. package/prisma/skills/crosspost/SKILL.md +112 -0
  136. package/prisma/skills/csharp-testing/SKILL.md +322 -0
  137. package/prisma/skills/customer-billing-ops/SKILL.md +141 -0
  138. package/prisma/skills/customs-trade-compliance/SKILL.md +263 -0
  139. package/prisma/skills/dart-flutter-patterns/SKILL.md +564 -0
  140. package/prisma/skills/dashboard-builder/SKILL.md +109 -0
  141. package/prisma/skills/data-scraper-agent/SKILL.md +765 -0
  142. package/prisma/skills/data-throughput-accelerator/SKILL.md +73 -0
  143. package/prisma/skills/database-migrations/SKILL.md +430 -0
  144. package/prisma/skills/deep-research/SKILL.md +160 -0
  145. package/prisma/skills/defi-amm-security/SKILL.md +167 -0
  146. package/prisma/skills/delivery-gate/SKILL.md +126 -0
  147. package/prisma/skills/delivery-gate/hooks/quality-gate.py +220 -0
  148. package/prisma/skills/deployment-patterns/SKILL.md +428 -0
  149. package/prisma/skills/design-system/SKILL.md +83 -0
  150. package/prisma/skills/django-celery/SKILL.md +458 -0
  151. package/prisma/skills/django-patterns/SKILL.md +735 -0
  152. package/prisma/skills/django-security/SKILL.md +644 -0
  153. package/prisma/skills/django-tdd/SKILL.md +730 -0
  154. package/prisma/skills/django-verification/SKILL.md +470 -0
  155. package/prisma/skills/dmux-workflows/SKILL.md +192 -0
  156. package/prisma/skills/docker-patterns/SKILL.md +365 -0
  157. package/prisma/skills/documentation-lookup/SKILL.md +91 -0
  158. package/prisma/skills/dotnet-patterns/SKILL.md +322 -0
  159. package/prisma/skills/dynamic-workflow-mode/SKILL.md +124 -0
  160. package/prisma/skills/e2e-testing/SKILL.md +327 -0
  161. package/prisma/skills/ecc-guide/SKILL.md +190 -0
  162. package/prisma/skills/ecc-recipes/SKILL.md +149 -0
  163. package/prisma/skills/ecc-tools-cost-audit/SKILL.md +161 -0
  164. package/prisma/skills/email-ops/SKILL.md +122 -0
  165. package/prisma/skills/energy-procurement/SKILL.md +228 -0
  166. package/prisma/skills/enterprise-agent-ops/SKILL.md +51 -0
  167. package/prisma/skills/error-handling/SKILL.md +377 -0
  168. package/prisma/skills/eval-harness/SKILL.md +271 -0
  169. package/prisma/skills/evm-token-decimals/SKILL.md +131 -0
  170. package/prisma/skills/exa-search/SKILL.md +108 -0
  171. package/prisma/skills/fal-ai-media/SKILL.md +289 -0
  172. package/prisma/skills/fastapi-patterns/SKILL.md +514 -0
  173. package/prisma/skills/finance-billing-ops/SKILL.md +128 -0
  174. package/prisma/skills/flox-environments/SKILL.md +497 -0
  175. package/prisma/skills/flutter-dart-code-review/SKILL.md +436 -0
  176. package/prisma/skills/foundation-models-on-device/SKILL.md +243 -0
  177. package/prisma/skills/frontend-a11y/SKILL.md +446 -0
  178. package/prisma/skills/frontend-design-direction/SKILL.md +93 -0
  179. package/prisma/skills/frontend-patterns/SKILL.md +657 -0
  180. package/prisma/skills/frontend-slides/SKILL.md +185 -0
  181. package/prisma/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  182. package/prisma/skills/frontend-slides/animation-patterns.md +122 -0
  183. package/prisma/skills/frontend-slides/html-template.md +419 -0
  184. package/prisma/skills/frontend-slides/scripts/export-pdf.sh +418 -0
  185. package/prisma/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  186. package/prisma/skills/frontend-slides/viewport-base.css +153 -0
  187. package/prisma/skills/fsharp-testing/SKILL.md +281 -0
  188. package/prisma/skills/gan-style-harness/SKILL.md +279 -0
  189. package/prisma/skills/gateguard/SKILL.md +133 -0
  190. package/prisma/skills/generating-python-installer/SKILL.md +820 -0
  191. package/prisma/skills/git-workflow/SKILL.md +716 -0
  192. package/prisma/skills/github-ops/SKILL.md +145 -0
  193. package/prisma/skills/golang-patterns/SKILL.md +675 -0
  194. package/prisma/skills/golang-testing/SKILL.md +721 -0
  195. package/prisma/skills/google-workspace-ops/SKILL.md +96 -0
  196. package/prisma/skills/growth-log/SKILL.md +128 -0
  197. package/prisma/skills/healthcare-cdss-patterns/SKILL.md +246 -0
  198. package/prisma/skills/healthcare-emr-patterns/SKILL.md +160 -0
  199. package/prisma/skills/healthcare-eval-harness/SKILL.md +208 -0
  200. package/prisma/skills/healthcare-phi-compliance/SKILL.md +146 -0
  201. package/prisma/skills/hermes-imports/SKILL.md +89 -0
  202. package/prisma/skills/hexagonal-architecture/SKILL.md +277 -0
  203. package/prisma/skills/hipaa-compliance/SKILL.md +79 -0
  204. package/prisma/skills/homelab-network-readiness/SKILL.md +170 -0
  205. package/prisma/skills/homelab-network-setup/SKILL.md +130 -0
  206. package/prisma/skills/homelab-pihole-dns/SKILL.md +275 -0
  207. package/prisma/skills/homelab-vlan-segmentation/SKILL.md +312 -0
  208. package/prisma/skills/homelab-wireguard-vpn/SKILL.md +306 -0
  209. package/prisma/skills/hookify-rules/SKILL.md +128 -0
  210. package/prisma/skills/inherit-legacy-style/SKILL.md +157 -0
  211. package/prisma/skills/intent-driven-development/SKILL.md +360 -0
  212. package/prisma/skills/inventory-demand-planning/SKILL.md +247 -0
  213. package/prisma/skills/investor-materials/SKILL.md +97 -0
  214. package/prisma/skills/investor-outreach/SKILL.md +92 -0
  215. package/prisma/skills/ios-icon-gen/SKILL.md +158 -0
  216. package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
  217. package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  218. package/prisma/skills/iterative-retrieval/SKILL.md +212 -0
  219. package/prisma/skills/ito-basket-compare/SKILL.md +64 -0
  220. package/prisma/skills/ito-data-atlas-agent/SKILL.md +64 -0
  221. package/prisma/skills/ito-market-intelligence/SKILL.md +61 -0
  222. package/prisma/skills/ito-trade-planner/SKILL.md +68 -0
  223. package/prisma/skills/java-coding-standards/SKILL.md +384 -0
  224. package/prisma/skills/jira-integration/SKILL.md +303 -0
  225. package/prisma/skills/jpa-patterns/SKILL.md +152 -0
  226. package/prisma/skills/knowledge-ops/SKILL.md +155 -0
  227. package/prisma/skills/kotlin-coroutines-flows/SKILL.md +285 -0
  228. package/prisma/skills/kotlin-exposed-patterns/SKILL.md +720 -0
  229. package/prisma/skills/kotlin-ktor-patterns/SKILL.md +690 -0
  230. package/prisma/skills/kotlin-patterns/SKILL.md +712 -0
  231. package/prisma/skills/kotlin-testing/SKILL.md +825 -0
  232. package/prisma/skills/kubernetes-patterns/SKILL.md +756 -0
  233. package/prisma/skills/laravel-patterns/SKILL.md +416 -0
  234. package/prisma/skills/laravel-plugin-discovery/SKILL.md +230 -0
  235. package/prisma/skills/laravel-security/SKILL.md +948 -0
  236. package/prisma/skills/laravel-tdd/SKILL.md +675 -0
  237. package/prisma/skills/laravel-verification/SKILL.md +180 -0
  238. package/prisma/skills/latency-critical-systems/SKILL.md +74 -0
  239. package/prisma/skills/lead-intelligence/SKILL.md +322 -0
  240. package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  241. package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  242. package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  243. package/prisma/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  244. package/prisma/skills/liquid-glass-design/SKILL.md +279 -0
  245. package/prisma/skills/llm-trading-agent-security/SKILL.md +147 -0
  246. package/prisma/skills/logistics-exception-management/SKILL.md +222 -0
  247. package/prisma/skills/loop-design-check/SKILL.md +143 -0
  248. package/prisma/skills/mailtrap-email-integration/SKILL.md +77 -0
  249. package/prisma/skills/make-interfaces-feel-better/SKILL.md +152 -0
  250. package/prisma/skills/manim-video/SKILL.md +90 -0
  251. package/prisma/skills/manim-video/assets/network_graph_scene.py +52 -0
  252. package/prisma/skills/market-research/SKILL.md +76 -0
  253. package/prisma/skills/marketing-campaign/SKILL.md +114 -0
  254. package/prisma/skills/mcp-server-patterns/SKILL.md +70 -0
  255. package/prisma/skills/messages-ops/SKILL.md +105 -0
  256. package/prisma/skills/ml-adoption-playbook/SKILL.md +57 -0
  257. package/prisma/skills/mle-workflow/SKILL.md +347 -0
  258. package/prisma/skills/motion-advanced/SKILL.md +596 -0
  259. package/prisma/skills/motion-foundations/SKILL.md +299 -0
  260. package/prisma/skills/motion-patterns/SKILL.md +434 -0
  261. package/prisma/skills/motion-ui/SKILL.md +576 -0
  262. package/prisma/skills/mysql-patterns/SKILL.md +413 -0
  263. package/prisma/skills/nanoclaw-repl/SKILL.md +34 -0
  264. package/prisma/skills/nestjs-patterns/SKILL.md +231 -0
  265. package/prisma/skills/netmiko-ssh-automation/SKILL.md +174 -0
  266. package/prisma/skills/network-bgp-diagnostics/SKILL.md +168 -0
  267. package/prisma/skills/network-config-validation/SKILL.md +211 -0
  268. package/prisma/skills/network-interface-health/SKILL.md +153 -0
  269. package/prisma/skills/nextjs-turbopack/SKILL.md +58 -0
  270. package/prisma/skills/nodejs-keccak256/SKILL.md +103 -0
  271. package/prisma/skills/nutrient-document-processing/SKILL.md +168 -0
  272. package/prisma/skills/nuxt4-patterns/SKILL.md +101 -0
  273. package/prisma/skills/openclaw-persona-forge/SKILL.md +289 -0
  274. package/prisma/skills/openclaw-persona-forge/gacha.py +224 -0
  275. package/prisma/skills/openclaw-persona-forge/gacha.sh +5 -0
  276. package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  277. package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  278. package/prisma/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  279. package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  280. package/prisma/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  281. package/prisma/skills/openclaw-persona-forge/references/output-template.md +166 -0
  282. package/prisma/skills/opensource-pipeline/SKILL.md +256 -0
  283. package/prisma/skills/orch-add-feature/SKILL.md +45 -0
  284. package/prisma/skills/orch-build-mvp/SKILL.md +49 -0
  285. package/prisma/skills/orch-change-feature/SKILL.md +43 -0
  286. package/prisma/skills/orch-fix-defect/SKILL.md +43 -0
  287. package/prisma/skills/orch-pipeline/SKILL.md +121 -0
  288. package/prisma/skills/orch-refine-code/SKILL.md +44 -0
  289. package/prisma/skills/parallel-execution-optimizer/SKILL.md +73 -0
  290. package/prisma/skills/perl-patterns/SKILL.md +505 -0
  291. package/prisma/skills/perl-security/SKILL.md +504 -0
  292. package/prisma/skills/perl-testing/SKILL.md +476 -0
  293. package/prisma/skills/plan-orchestrate/SKILL.md +263 -0
  294. package/prisma/skills/plankton-code-quality/SKILL.md +237 -0
  295. package/prisma/skills/postgres-patterns/SKILL.md +148 -0
  296. package/prisma/skills/prediction-market-oracle-research/SKILL.md +64 -0
  297. package/prisma/skills/prediction-market-risk-review/SKILL.md +61 -0
  298. package/prisma/skills/prisma-patterns/SKILL.md +401 -0
  299. package/prisma/skills/product-capability/SKILL.md +142 -0
  300. package/prisma/skills/product-lens/SKILL.md +93 -0
  301. package/prisma/skills/production-audit/SKILL.md +207 -0
  302. package/prisma/skills/production-scheduling/SKILL.md +238 -0
  303. package/prisma/skills/project-flow-ops/SKILL.md +112 -0
  304. package/prisma/skills/prompt-optimizer/SKILL.md +398 -0
  305. package/prisma/skills/python-patterns/SKILL.md +751 -0
  306. package/prisma/skills/python-testing/SKILL.md +817 -0
  307. package/prisma/skills/pytorch-patterns/SKILL.md +397 -0
  308. package/prisma/skills/quality-nonconformance/SKILL.md +260 -0
  309. package/prisma/skills/quarkus-patterns/SKILL.md +723 -0
  310. package/prisma/skills/quarkus-security/SKILL.md +468 -0
  311. package/prisma/skills/quarkus-tdd/SKILL.md +812 -0
  312. package/prisma/skills/quarkus-verification/SKILL.md +480 -0
  313. package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +68 -0
  314. package/prisma/skills/react-native-patterns/SKILL.md +326 -0
  315. package/prisma/skills/react-patterns/SKILL.md +342 -0
  316. package/prisma/skills/react-performance/SKILL.md +575 -0
  317. package/prisma/skills/react-testing/SKILL.md +424 -0
  318. package/prisma/skills/recsys-pipeline-architect/SKILL.md +115 -0
  319. package/prisma/skills/recursive-decision-ledger/SKILL.md +80 -0
  320. package/prisma/skills/redis-patterns/SKILL.md +404 -0
  321. package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +221 -0
  322. package/prisma/skills/remotion-video-creation/SKILL.md +43 -0
  323. package/prisma/skills/remotion-video-creation/rules/3d.md +86 -0
  324. package/prisma/skills/remotion-video-creation/rules/animations.md +29 -0
  325. package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  326. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  327. package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  328. package/prisma/skills/remotion-video-creation/rules/assets.md +78 -0
  329. package/prisma/skills/remotion-video-creation/rules/audio.md +172 -0
  330. package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  331. package/prisma/skills/remotion-video-creation/rules/can-decode.md +75 -0
  332. package/prisma/skills/remotion-video-creation/rules/charts.md +58 -0
  333. package/prisma/skills/remotion-video-creation/rules/compositions.md +146 -0
  334. package/prisma/skills/remotion-video-creation/rules/display-captions.md +126 -0
  335. package/prisma/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  336. package/prisma/skills/remotion-video-creation/rules/fonts.md +152 -0
  337. package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  338. package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  339. package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  340. package/prisma/skills/remotion-video-creation/rules/gifs.md +138 -0
  341. package/prisma/skills/remotion-video-creation/rules/images.md +130 -0
  342. package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  343. package/prisma/skills/remotion-video-creation/rules/lottie.md +67 -0
  344. package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  345. package/prisma/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  346. package/prisma/skills/remotion-video-creation/rules/sequencing.md +106 -0
  347. package/prisma/skills/remotion-video-creation/rules/tailwind.md +11 -0
  348. package/prisma/skills/remotion-video-creation/rules/text-animations.md +20 -0
  349. package/prisma/skills/remotion-video-creation/rules/timing.md +179 -0
  350. package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  351. package/prisma/skills/remotion-video-creation/rules/transitions.md +122 -0
  352. package/prisma/skills/remotion-video-creation/rules/trimming.md +52 -0
  353. package/prisma/skills/remotion-video-creation/rules/videos.md +171 -0
  354. package/prisma/skills/repo-scan/SKILL.md +79 -0
  355. package/prisma/skills/research-ops/SKILL.md +113 -0
  356. package/prisma/skills/returns-reverse-logistics/SKILL.md +240 -0
  357. package/prisma/skills/rules-distill/SKILL.md +265 -0
  358. package/prisma/skills/rules-distill/scripts/scan-rules.sh +58 -0
  359. package/prisma/skills/rules-distill/scripts/scan-skills.sh +129 -0
  360. package/prisma/skills/rust-patterns/SKILL.md +500 -0
  361. package/prisma/skills/rust-testing/SKILL.md +501 -0
  362. package/prisma/skills/safety-guard/SKILL.md +76 -0
  363. package/prisma/skills/santa-method/SKILL.md +307 -0
  364. package/prisma/skills/scientific-db-pubmed-database/SKILL.md +176 -0
  365. package/prisma/skills/scientific-db-uspto-database/SKILL.md +178 -0
  366. package/prisma/skills/scientific-pkg-gget/SKILL.md +167 -0
  367. package/prisma/skills/scientific-thinking-literature-review/SKILL.md +193 -0
  368. package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +161 -0
  369. package/prisma/skills/search-first/SKILL.md +183 -0
  370. package/prisma/skills/security-bounty-hunter/SKILL.md +100 -0
  371. package/prisma/skills/security-review/SKILL.md +504 -0
  372. package/prisma/skills/security-review/cloud-infrastructure-security.md +361 -0
  373. package/prisma/skills/security-scan/SKILL.md +166 -0
  374. package/prisma/skills/seo/SKILL.md +155 -0
  375. package/prisma/skills/skill-comply/SKILL.md +59 -0
  376. package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  377. package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  378. package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  379. package/prisma/skills/skill-comply/prompts/classifier.md +24 -0
  380. package/prisma/skills/skill-comply/prompts/scenario_generator.md +62 -0
  381. package/prisma/skills/skill-comply/prompts/spec_generator.md +42 -0
  382. package/prisma/skills/skill-comply/pyproject.toml +15 -0
  383. package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
  384. package/prisma/skills/skill-comply/scripts/classifier.py +85 -0
  385. package/prisma/skills/skill-comply/scripts/grader.py +124 -0
  386. package/prisma/skills/skill-comply/scripts/parser.py +107 -0
  387. package/prisma/skills/skill-comply/scripts/report.py +170 -0
  388. package/prisma/skills/skill-comply/scripts/run.py +127 -0
  389. package/prisma/skills/skill-comply/scripts/runner.py +194 -0
  390. package/prisma/skills/skill-comply/scripts/scenario_generator.py +70 -0
  391. package/prisma/skills/skill-comply/scripts/spec_generator.py +72 -0
  392. package/prisma/skills/skill-comply/scripts/utils.py +13 -0
  393. package/prisma/skills/skill-comply/tests/test_grader.py +197 -0
  394. package/prisma/skills/skill-comply/tests/test_parser.py +90 -0
  395. package/prisma/skills/skill-comply/tests/test_runner.py +172 -0
  396. package/prisma/skills/skill-scout/SKILL.md +141 -0
  397. package/prisma/skills/skill-stocktake/SKILL.md +195 -0
  398. package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  399. package/prisma/skills/skill-stocktake/scripts/save-results.sh +56 -0
  400. package/prisma/skills/skill-stocktake/scripts/scan.sh +170 -0
  401. package/prisma/skills/social-graph-ranker/SKILL.md +155 -0
  402. package/prisma/skills/social-publisher/SKILL.md +130 -0
  403. package/prisma/skills/springboot-patterns/SKILL.md +315 -0
  404. package/prisma/skills/springboot-security/SKILL.md +273 -0
  405. package/prisma/skills/springboot-tdd/SKILL.md +159 -0
  406. package/prisma/skills/springboot-verification/SKILL.md +232 -0
  407. package/prisma/skills/strategic-compact/SKILL.md +136 -0
  408. package/prisma/skills/swift-actor-persistence/SKILL.md +144 -0
  409. package/prisma/skills/swift-concurrency-6-2/SKILL.md +216 -0
  410. package/prisma/skills/swift-protocol-di-testing/SKILL.md +191 -0
  411. package/prisma/skills/swiftui-patterns/SKILL.md +259 -0
  412. package/prisma/skills/taste/SKILL.md +264 -0
  413. package/prisma/skills/taste/references/genre-taxonomy.md +87 -0
  414. package/prisma/skills/tdd-workflow/SKILL.md +583 -0
  415. package/prisma/skills/team-agent-orchestration/SKILL.md +111 -0
  416. package/prisma/skills/team-builder/SKILL.md +169 -0
  417. package/prisma/skills/terminal-ops/SKILL.md +110 -0
  418. package/prisma/skills/tinystruct-patterns/SKILL.md +279 -0
  419. package/prisma/skills/tinystruct-patterns/references/architecture.md +90 -0
  420. package/prisma/skills/tinystruct-patterns/references/data-handling.md +60 -0
  421. package/prisma/skills/tinystruct-patterns/references/database.md +99 -0
  422. package/prisma/skills/tinystruct-patterns/references/routing.md +64 -0
  423. package/prisma/skills/tinystruct-patterns/references/system-usage.md +97 -0
  424. package/prisma/skills/tinystruct-patterns/references/testing.md +72 -0
  425. package/prisma/skills/token-budget-advisor/SKILL.md +134 -0
  426. package/prisma/skills/ui-demo/SKILL.md +466 -0
  427. package/prisma/skills/ui-to-vue/SKILL.md +135 -0
  428. package/prisma/skills/uncloud/SKILL.md +344 -0
  429. package/prisma/skills/unified-notifications-ops/SKILL.md +188 -0
  430. package/prisma/skills/verification-loop/SKILL.md +127 -0
  431. package/prisma/skills/video-editing/SKILL.md +311 -0
  432. package/prisma/skills/videodb/SKILL.md +375 -0
  433. package/prisma/skills/videodb/reference/api-reference.md +550 -0
  434. package/prisma/skills/videodb/reference/capture-reference.md +407 -0
  435. package/prisma/skills/videodb/reference/capture.md +101 -0
  436. package/prisma/skills/videodb/reference/editor.md +443 -0
  437. package/prisma/skills/videodb/reference/generative.md +331 -0
  438. package/prisma/skills/videodb/reference/rtstream-reference.md +564 -0
  439. package/prisma/skills/videodb/reference/rtstream.md +65 -0
  440. package/prisma/skills/videodb/reference/search.md +230 -0
  441. package/prisma/skills/videodb/reference/streaming.md +406 -0
  442. package/prisma/skills/videodb/reference/use-cases.md +118 -0
  443. package/prisma/skills/videodb/scripts/ws_listener.py +282 -0
  444. package/prisma/skills/visa-doc-translate/README.md +86 -0
  445. package/prisma/skills/visa-doc-translate/SKILL.md +117 -0
  446. package/prisma/skills/vite-patterns/SKILL.md +450 -0
  447. package/prisma/skills/vue-patterns/SKILL.md +471 -0
  448. package/prisma/skills/windows-desktop-e2e/SKILL.md +888 -0
  449. package/prisma/skills/workspace-surface-audit/SKILL.md +126 -0
  450. package/prisma/skills/x-api/SKILL.md +235 -0
  451. package/run.mjs +0 -10
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: google-workspace-ops
3
+ description: Operate across Google Drive, Docs, Sheets, and Slides as one workflow surface for plans, trackers, decks, and shared documents. Use when the user needs to find, summarize, edit, migrate, or clean up Google Workspace assets without dropping to raw tool calls.
4
+ metadata:
5
+ origin: ECC
6
+ ---
7
+
8
+ # Google Workspace Ops
9
+
10
+ This skill is for operating shared docs, spreadsheets, and decks as working systems, not just editing one file in isolation.
11
+
12
+ ## When to Use
13
+
14
+ - User needs to find a doc, sheet, or deck and update it in place
15
+ - Consolidating plans, trackers, notes, or customer lists stored in Google Drive
16
+ - Cleaning or restructuring a shared spreadsheet
17
+ - Importing, repairing, or reformatting a Google Slides deck
18
+ - Producing summaries from Docs, Sheets, or Slides for decision-making
19
+
20
+ ## Preferred Tool Surface
21
+
22
+ Use Google Drive as the entry point, then switch to the right specialist:
23
+
24
+ - Google Docs for text-heavy docs
25
+ - Google Sheets for tabular work, formulas, and charts
26
+ - Google Slides for decks, imports, template migration, and cleanup
27
+
28
+ Do not guess structure from filenames alone. Inspect first.
29
+
30
+ ## Workflow
31
+
32
+ ### 1. Find the asset
33
+
34
+ Start with the Drive search surface to locate:
35
+
36
+ - the exact file
37
+ - sibling assets
38
+ - likely duplicates
39
+ - recently modified versions
40
+
41
+ If several documents look similar, confirm by title, owner, modified time, or folder.
42
+
43
+ ### 2. Inspect before editing
44
+
45
+ Before making changes:
46
+
47
+ - summarize current structure
48
+ - identify tabs, headings, or slide count
49
+ - detect whether the task is local cleanup or structural surgery
50
+
51
+ Pick the smallest tool that can safely perform the work.
52
+
53
+ ### 3. Edit with precision
54
+
55
+ - For Docs: use index-aware edits, not vague rewrites
56
+ - For Sheets: operate on explicit tabs and ranges
57
+ - For Slides: distinguish content edits from visual cleanup or template migration
58
+
59
+ If the requested work is visual or layout-sensitive, iterate with inspection and verification instead of one giant blind update.
60
+
61
+ ### 4. Keep the working system clean
62
+
63
+ When the file is part of a larger workflow, also surface:
64
+
65
+ - duplicate trackers
66
+ - outdated decks
67
+ - stale docs vs canonical docs
68
+ - whether the asset should be archived, merged, or renamed
69
+
70
+ ## Output Format
71
+
72
+ Use:
73
+
74
+ ```text
75
+ ASSET
76
+ - file name
77
+ - type
78
+ - why this is the right file
79
+
80
+ CURRENT STATE
81
+ - structure summary
82
+ - key problems or blockers
83
+
84
+ ACTION
85
+ - edits made or recommended
86
+
87
+ FOLLOW-UPS
88
+ - archive / merge / duplicate cleanup / next file to update
89
+ ```
90
+
91
+ ## Good Use Cases
92
+
93
+ - "Find the active planning doc and condense it"
94
+ - "Clean up this customer spreadsheet and show me the churn-risk rows"
95
+ - "Import this deck into Slides and make it presentable"
96
+ - "Find the current tracker, not the stale duplicate"
@@ -0,0 +1,128 @@
1
+ ---
2
+ name: growth-log
3
+ description: "Use after a complex task, failure, or when reviewing what was learned. Teaches how to write growth logs that extract reusable patterns — not diary entries."
4
+ version: 1.1.0
5
+ metadata:
6
+ origin: ECC
7
+ ---
8
+
9
+ # Growth Log Skill
10
+
11
+ > **The problem:** Most people write "fixed a bug in X" as a learning log. That's a diary entry, not a learning artifact. A real growth log extracts the *pattern* so you recognize it next time.
12
+ >
13
+ > **This skill teaches:** How to write learning entries that compound across sessions. Works with any note-taking system — Markdown files, Notion, Obsidian, plain text. Templates are generic; adapt to your setup.
14
+
15
+ ## When to Activate
16
+
17
+ - After completing a complex task (multi-file, new feature, architecture change)
18
+ - After a failure, mistake, or "that was harder than expected" moment
19
+ - When you want to review what you've learned over a period
20
+
21
+ **When NOT to activate:** Trivial changes (typo fixes, single-line tweaks, config value changes with no debugging). The threshold: *did this task involve debugging, redoing, rollback, or a non-obvious decision?* If yes → write an entry. If no → skip.
22
+
23
+ ## The Three Rules
24
+
25
+ ### Rule 1: Failures > Achievements
26
+
27
+ A failure is nutritionally denser than a success. One bug that took 2 hours to find teaches more than 3 features that worked first try.
28
+
29
+ **Bad:** "Successfully implemented the login flow."
30
+ **Good (web dev):** "Login flow: session token wasn't persisting because the cookie `SameSite` defaulted to `Lax` in Chrome 128+. Pattern: always explicitly set `SameSite=None; Secure` when cross-origin. Signal to recognize: auth breaks after browser upgrade or when crossing origin boundaries."
31
+ **Good (data pipeline):** "CSV import failed silently on empty rows because `pandas.read_csv(dropna=False)` keeps zero-width rows that `len()` counts as valid. Pattern: always `df.dropna(how='all', inplace=True)` before row-count validation."
32
+
33
+ ### Rule 2: The Bole Principle (伯乐原则)
34
+
35
+ Before writing a new entry, ask: *"Is this fundamentally the same as something I already recorded?"*
36
+
37
+ Same root cause, different symptom → **merge**, don't duplicate. New root cause → new entry.
38
+
39
+ **How to check:** Search existing entries for keywords from your root cause before writing. If you find a match, add your new symptom as an additional example under the existing entry rather than creating a duplicate.
40
+
41
+ **Example:** "Forgot to update the output index after creating a file" and "Forgot to update skill ratings after a task" — same root cause (no automatic capture trigger). Merge into one entry about "post-task capture gaps."
42
+
43
+ ### Rule 3: Must Be Transferable
44
+
45
+ Every entry must answer: *"Next time I face a similar situation, what do I do differently?"*
46
+
47
+ If you can't write that sentence, you haven't extracted the pattern yet.
48
+
49
+ **How to extract a pattern from a concrete event:**
50
+ 1. State what happened in one sentence
51
+ 2. Ask "why?" iteratively until you reach root cause (usually 3-5 whys)
52
+ 3. Generalize: "What class of problem is this?" (not "Chrome 128 bug" but "browser default change breaking existing behavior")
53
+ 4. Formulate as: "Next time I see [signal], I will [action]."
54
+ 5. Name the signal: what specific observable tells you this pattern is active?
55
+
56
+ ## Entry Template
57
+
58
+ **Scope:** One entry per distinct root cause. Typical length: 4-8 sentences. If it takes >2 minutes to write, you're narrating events. If <30 seconds, you haven't gone deep enough.
59
+
60
+ ```markdown
61
+ ## [Title: the pattern, not the event]
62
+
63
+ ### Context
64
+ - What was I trying to do?
65
+ - What went wrong / what worked surprisingly well?
66
+
67
+ ### Root Cause / Core Insight
68
+ - The underlying mechanism, not just the symptom
69
+
70
+ ### The Pattern (transferable)
71
+ - Next time [similar situation], I will [specific action].
72
+ - Signal to recognize: [what observable tells me this pattern is active?]
73
+
74
+ ### Related
75
+ - [entry-name](../path/to/related-entry.md)
76
+ ```
77
+
78
+ ## Entry Types
79
+
80
+ All four types use the template above. The type determines which sections carry the most weight:
81
+
82
+ | Type | When to Use | Emphasis | Example Title |
83
+ |------|------------|----------|---------------|
84
+ | **Failure** | Something broke, needed debugging, or required rework | Root Cause | "Config inheritance ≠ behavior inheritance across sessions" |
85
+ | **Methodology** | A repeatable process emerged from the work | Context / Pattern | "PPT → open-book exam study guide: three-layer structure" |
86
+ | **Pattern Discovery** | A reusable insight about tools, systems, or thinking | Pattern section | "PR description template: describe the gap, not the feature" |
87
+ | **Capability Change** | A measurable skill improvement | Context (before vs after) | "Git: from clone/push to independent PR with 12 commits" |
88
+
89
+ ## Quality Checklist
90
+
91
+ Before finalizing a growth log entry:
92
+
93
+ - [ ] Does the title name the *pattern*, not the event?
94
+ - [ ] Is there a "Next time I will..." sentence?
95
+ - [ ] Is the "Signal to recognize" specific enough to trigger the pattern next time?
96
+ - [ ] Did I search existing entries for duplicates before writing? (Bole Principle)
97
+ - [ ] Is the root cause distinguished from the symptom?
98
+ - [ ] Are related memories cross-linked?
99
+ - [ ] Is the entry 4-8 sentences? Shorter = too shallow; longer = narrating events.
100
+
101
+ ## Anti-Patterns
102
+
103
+ - Avoid: "Fixed bug in payment module" (event, not pattern)
104
+ - Avoid: Copying the git commit message verbatim (commits describe what changed; logs extract why it matters)
105
+ - Avoid: Writing an entry for every commit (only when a pattern emerges)
106
+ - Avoid: Skipping the transferable sentence (without it, it's just a diary — this is non-negotiable)
107
+ - Avoid: Duplicating the same pattern under different titles (violates Bole Principle — search before writing)
108
+
109
+ ## Storage
110
+
111
+ Store entries wherever you keep notes. Common patterns:
112
+ - Markdown files in a `growth-log/` directory (one file per day: `YYYY-MM-DD.md`)
113
+ - A dedicated section in Notion, Obsidian, or your note-taking app
114
+ - Plain text files with a consistent naming convention
115
+
116
+ Pick one convention and stick to it. Searchability matters more than format.
117
+
118
+ ## If You Use Delivery Gate
119
+
120
+ The `delivery-gate` Stop hook checks that learning files were modified today via filesystem timestamps. This skill teaches *what to write* — so the file that delivery-gate checks actually contains useful patterns, not empty timestamps.
121
+
122
+ ```
123
+ Task completes → delivery-gate checks: was the learning file touched today?
124
+ → Stale (no file modified): block — "what did you learn?"
125
+ → Fresh (file touched): pass — this skill ensures the content is useful
126
+ ```
127
+
128
+ Having enforcement without methodology → empty entries. Having methodology without enforcement → forgotten captures. Each is independently useful; together they close the loop.
@@ -0,0 +1,246 @@
1
+ ---
2
+ name: healthcare-cdss-patterns
3
+ description: Clinical Decision Support System (CDSS) development patterns. Drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), alert severity classification, and integration into EMR workflows.
4
+ metadata:
5
+ origin: Health1 Super Speciality Hospitals — contributed by Dr. Keyur Patel
6
+ version: "1.0.0"
7
+ ---
8
+
9
+ # Healthcare CDSS Development Patterns
10
+
11
+ Patterns for building Clinical Decision Support Systems that integrate into EMR workflows. CDSS modules are patient safety critical — zero tolerance for false negatives.
12
+
13
+ ## When to Use
14
+
15
+ - Implementing drug interaction checking
16
+ - Building dose validation engines
17
+ - Implementing clinical scoring systems (NEWS2, qSOFA, APACHE, GCS)
18
+ - Designing alert systems for abnormal clinical values
19
+ - Building medication order entry with safety checks
20
+ - Integrating lab result interpretation with clinical context
21
+
22
+ ## How It Works
23
+
24
+ The CDSS engine is a **pure function library with zero side effects**. Input clinical data, output alerts. This makes it fully testable.
25
+
26
+ Three primary modules:
27
+
28
+ 1. **`checkInteractions(newDrug, currentMeds, allergies)`** — Checks a new drug against current medications and known allergies. Returns severity-sorted `InteractionAlert[]`. Uses `DrugInteractionPair` data model.
29
+ 2. **`validateDose(drug, dose, route, weight, age, renalFunction)`** — Validates a prescribed dose against weight-based, age-adjusted, and renal-adjusted rules. Returns `DoseValidationResult`.
30
+ 3. **`calculateNEWS2(vitals)`** — National Early Warning Score 2 from `NEWS2Input`. Returns `NEWS2Result` with total score, risk level, and escalation guidance.
31
+
32
+ ```
33
+ EMR UI
34
+ ↓ (user enters data)
35
+ CDSS Engine (pure functions, no side effects)
36
+ ├── Drug Interaction Checker
37
+ ├── Dose Validator
38
+ ├── Clinical Scoring (NEWS2, qSOFA, etc.)
39
+ └── Alert Classifier
40
+ ↓ (returns alerts)
41
+ EMR UI (displays alerts inline, blocks if critical)
42
+ ```
43
+
44
+ ### Drug Interaction Checking
45
+
46
+ ```typescript
47
+ interface DrugInteractionPair {
48
+ drugA: string; // generic name
49
+ drugB: string; // generic name
50
+ severity: 'critical' | 'major' | 'minor';
51
+ mechanism: string;
52
+ clinicalEffect: string;
53
+ recommendation: string;
54
+ }
55
+
56
+ function checkInteractions(
57
+ newDrug: string,
58
+ currentMedications: string[],
59
+ allergyList: string[]
60
+ ): InteractionAlert[] {
61
+ if (!newDrug) return [];
62
+ const alerts: InteractionAlert[] = [];
63
+ for (const current of currentMedications) {
64
+ const interaction = findInteraction(newDrug, current);
65
+ if (interaction) {
66
+ alerts.push({ severity: interaction.severity, pair: [newDrug, current],
67
+ message: interaction.clinicalEffect, recommendation: interaction.recommendation });
68
+ }
69
+ }
70
+ for (const allergy of allergyList) {
71
+ if (isCrossReactive(newDrug, allergy)) {
72
+ alerts.push({ severity: 'critical', pair: [newDrug, allergy],
73
+ message: `Cross-reactivity with documented allergy: ${allergy}`,
74
+ recommendation: 'Do not prescribe without allergy consultation' });
75
+ }
76
+ }
77
+ return alerts.sort((a, b) => severityOrder(a.severity) - severityOrder(b.severity));
78
+ }
79
+ ```
80
+
81
+ Interaction pairs must be **bidirectional**: if Drug A interacts with Drug B, then Drug B interacts with Drug A.
82
+
83
+ ### Dose Validation
84
+
85
+ ```typescript
86
+ interface DoseValidationResult {
87
+ valid: boolean;
88
+ message: string;
89
+ suggestedRange: { min: number; max: number; unit: string } | null;
90
+ factors: string[];
91
+ }
92
+
93
+ function validateDose(
94
+ drug: string,
95
+ dose: number,
96
+ route: 'oral' | 'iv' | 'im' | 'sc' | 'topical',
97
+ patientWeight?: number,
98
+ patientAge?: number,
99
+ renalFunction?: number
100
+ ): DoseValidationResult {
101
+ const rules = getDoseRules(drug, route);
102
+ if (!rules) return { valid: true, message: 'No validation rules available', suggestedRange: null, factors: [] };
103
+ const factors: string[] = [];
104
+
105
+ // SAFETY: if rules require weight but weight missing, BLOCK (not pass)
106
+ if (rules.weightBased) {
107
+ if (!patientWeight || patientWeight <= 0) {
108
+ return { valid: false, message: `Weight required for ${drug} (mg/kg drug)`,
109
+ suggestedRange: null, factors: ['weight_missing'] };
110
+ }
111
+ factors.push('weight');
112
+ const maxDose = rules.maxPerKg * patientWeight;
113
+ if (dose > maxDose) {
114
+ return { valid: false, message: `Dose exceeds max for ${patientWeight}kg`,
115
+ suggestedRange: { min: rules.minPerKg * patientWeight, max: maxDose, unit: rules.unit }, factors };
116
+ }
117
+ }
118
+
119
+ // Age-based adjustment (when rules define age brackets and age is provided)
120
+ if (rules.ageAdjusted && patientAge !== undefined) {
121
+ factors.push('age');
122
+ const ageMax = rules.getAgeAdjustedMax(patientAge);
123
+ if (dose > ageMax) {
124
+ return { valid: false, message: `Exceeds age-adjusted max for ${patientAge}yr`,
125
+ suggestedRange: { min: rules.typicalMin, max: ageMax, unit: rules.unit }, factors };
126
+ }
127
+ }
128
+
129
+ // Renal adjustment (when rules define eGFR brackets and eGFR is provided)
130
+ if (rules.renalAdjusted && renalFunction !== undefined) {
131
+ factors.push('renal');
132
+ const renalMax = rules.getRenalAdjustedMax(renalFunction);
133
+ if (dose > renalMax) {
134
+ return { valid: false, message: `Exceeds renal-adjusted max for eGFR ${renalFunction}`,
135
+ suggestedRange: { min: rules.typicalMin, max: renalMax, unit: rules.unit }, factors };
136
+ }
137
+ }
138
+
139
+ // Absolute max
140
+ if (dose > rules.absoluteMax) {
141
+ return { valid: false, message: `Exceeds absolute max ${rules.absoluteMax}${rules.unit}`,
142
+ suggestedRange: { min: rules.typicalMin, max: rules.absoluteMax, unit: rules.unit },
143
+ factors: [...factors, 'absolute_max'] };
144
+ }
145
+ return { valid: true, message: 'Within range',
146
+ suggestedRange: { min: rules.typicalMin, max: rules.typicalMax, unit: rules.unit }, factors };
147
+ }
148
+ ```
149
+
150
+ ### Clinical Scoring: NEWS2
151
+
152
+ ```typescript
153
+ interface NEWS2Input {
154
+ respiratoryRate: number; oxygenSaturation: number; supplementalOxygen: boolean;
155
+ temperature: number; systolicBP: number; heartRate: number;
156
+ consciousness: 'alert' | 'voice' | 'pain' | 'unresponsive';
157
+ }
158
+ interface NEWS2Result {
159
+ total: number; // 0-20
160
+ risk: 'low' | 'low-medium' | 'medium' | 'high';
161
+ components: Record<string, number>;
162
+ escalation: string;
163
+ }
164
+ ```
165
+
166
+ Scoring tables must match the Royal College of Physicians specification exactly.
167
+
168
+ ### Alert Severity and UI Behavior
169
+
170
+ | Severity | UI Behavior | Clinician Action Required |
171
+ |----------|-------------|--------------------------|
172
+ | Critical | Block action. Non-dismissable modal. Red. | Must document override reason to proceed |
173
+ | Major | Warning banner inline. Orange. | Must acknowledge before proceeding |
174
+ | Minor | Info note inline. Yellow. | Awareness only, no action required |
175
+
176
+ Critical alerts must NEVER be auto-dismissed or implemented as toast notifications. Override reasons must be stored in the audit trail.
177
+
178
+ ### Testing CDSS (Zero Tolerance for False Negatives)
179
+
180
+ ```typescript
181
+ describe('CDSS — Patient Safety', () => {
182
+ INTERACTION_PAIRS.forEach(({ drugA, drugB, severity }) => {
183
+ it(`detects ${drugA} + ${drugB} (${severity})`, () => {
184
+ const alerts = checkInteractions(drugA, [drugB], []);
185
+ expect(alerts.length).toBeGreaterThan(0);
186
+ expect(alerts[0].severity).toBe(severity);
187
+ });
188
+ it(`detects ${drugB} + ${drugA} (reverse)`, () => {
189
+ const alerts = checkInteractions(drugB, [drugA], []);
190
+ expect(alerts.length).toBeGreaterThan(0);
191
+ });
192
+ });
193
+ it('blocks mg/kg drug when weight is missing', () => {
194
+ const result = validateDose('gentamicin', 300, 'iv');
195
+ expect(result.valid).toBe(false);
196
+ expect(result.factors).toContain('weight_missing');
197
+ });
198
+ it('handles malformed drug data gracefully', () => {
199
+ expect(() => checkInteractions('', [], [])).not.toThrow();
200
+ });
201
+ });
202
+ ```
203
+
204
+ Pass criteria: 100%. A single missed interaction is a patient safety event.
205
+
206
+ ### Anti-Patterns
207
+
208
+ - Making CDSS checks optional or skippable without documented reason
209
+ - Implementing interaction checks as toast notifications
210
+ - Using `any` types for drug or clinical data
211
+ - Hardcoding interaction pairs instead of using a maintainable data structure
212
+ - Silently catching errors in CDSS engine (must surface failures loudly)
213
+ - Skipping weight-based validation when weight is not available (must block, not pass)
214
+
215
+ ## Examples
216
+
217
+ ### Example 1: Drug Interaction Check
218
+
219
+ ```typescript
220
+ const alerts = checkInteractions('warfarin', ['aspirin', 'metformin'], ['penicillin']);
221
+ // [{ severity: 'critical', pair: ['warfarin', 'aspirin'],
222
+ // message: 'Increased bleeding risk', recommendation: 'Avoid combination' }]
223
+ ```
224
+
225
+ ### Example 2: Dose Validation
226
+
227
+ ```typescript
228
+ const ok = validateDose('paracetamol', 1000, 'oral', 70, 45);
229
+ // { valid: true, suggestedRange: { min: 500, max: 4000, unit: 'mg' } }
230
+
231
+ const bad = validateDose('paracetamol', 5000, 'oral', 70, 45);
232
+ // { valid: false, message: 'Exceeds absolute max 4000mg' }
233
+
234
+ const noWeight = validateDose('gentamicin', 300, 'iv');
235
+ // { valid: false, factors: ['weight_missing'] }
236
+ ```
237
+
238
+ ### Example 3: NEWS2 Scoring
239
+
240
+ ```typescript
241
+ const result = calculateNEWS2({
242
+ respiratoryRate: 24, oxygenSaturation: 93, supplementalOxygen: true,
243
+ temperature: 38.5, systolicBP: 100, heartRate: 110, consciousness: 'voice'
244
+ });
245
+ // { total: 13, risk: 'high', escalation: 'Urgent clinical review. Consider ICU.' }
246
+ ```
@@ -0,0 +1,160 @@
1
+ ---
2
+ name: healthcare-emr-patterns
3
+ description: EMR/EHR development patterns for healthcare applications. Clinical safety, encounter workflows, prescription generation, clinical decision support integration, and accessibility-first UI for medical data entry.
4
+ metadata:
5
+ origin: Health1 Super Speciality Hospitals — contributed by Dr. Keyur Patel
6
+ version: "1.0.0"
7
+ ---
8
+
9
+ # Healthcare EMR Development Patterns
10
+
11
+ Patterns for building Electronic Medical Record (EMR) and Electronic Health Record (EHR) systems. Prioritizes patient safety, clinical accuracy, and practitioner efficiency.
12
+
13
+ ## When to Use
14
+
15
+ - Building patient encounter workflows (complaint, exam, diagnosis, prescription)
16
+ - Implementing clinical note-taking (structured + free text + voice-to-text)
17
+ - Designing prescription/medication modules with drug interaction checking
18
+ - Integrating Clinical Decision Support Systems (CDSS)
19
+ - Building lab result displays with reference range highlighting
20
+ - Implementing audit trails for clinical data
21
+ - Designing healthcare-accessible UIs for clinical data entry
22
+
23
+ ## How It Works
24
+
25
+ ### Patient Safety First
26
+
27
+ Every design decision must be evaluated against: "Could this harm a patient?"
28
+
29
+ - Drug interactions MUST alert, not silently pass
30
+ - Abnormal lab values MUST be visually flagged
31
+ - Critical vitals MUST trigger escalation workflows
32
+ - No clinical data modification without audit trail
33
+
34
+ ### Single-Page Encounter Flow
35
+
36
+ Clinical encounters should flow vertically on a single page — no tab switching:
37
+
38
+ ```
39
+ Patient Header (sticky — always visible)
40
+ ├── Demographics, allergies, active medications
41
+
42
+ Encounter Flow (vertical scroll)
43
+ ├── 1. Chief Complaint (structured templates + free text)
44
+ ├── 2. History of Present Illness
45
+ ├── 3. Physical Examination (system-wise)
46
+ ├── 4. Vitals (auto-trigger clinical scoring)
47
+ ├── 5. Diagnosis (ICD-10/SNOMED search)
48
+ ├── 6. Medications (drug DB + interaction check)
49
+ ├── 7. Investigations (lab/radiology orders)
50
+ ├── 8. Plan & Follow-up
51
+ └── 9. Sign / Lock / Print
52
+ ```
53
+
54
+ ### Smart Template System
55
+
56
+ ```typescript
57
+ interface ClinicalTemplate {
58
+ id: string;
59
+ name: string; // e.g., "Chest Pain"
60
+ chips: string[]; // clickable symptom chips
61
+ requiredFields: string[]; // mandatory data points
62
+ redFlags: string[]; // triggers non-dismissable alert
63
+ icdSuggestions: string[]; // pre-mapped diagnosis codes
64
+ }
65
+ ```
66
+
67
+ Red flags in any template must trigger a visible, non-dismissable alert — NOT a toast notification.
68
+
69
+ ### Medication Safety Pattern
70
+
71
+ ```
72
+ User selects drug
73
+ → Check current medications for interactions
74
+ → Check encounter medications for interactions
75
+ → Check patient allergies
76
+ → Validate dose against weight/age/renal function
77
+ → If CRITICAL interaction: BLOCK prescribing entirely
78
+ → Clinician must document override reason to proceed past a block
79
+ → If MAJOR interaction: display warning, require acknowledgment
80
+ → Log all alerts and override reasons in audit trail
81
+ ```
82
+
83
+ Critical interactions **block prescribing by default**. The clinician must explicitly override with a documented reason stored in the audit trail. The system never silently allows a critical interaction.
84
+
85
+ ### Locked Encounter Pattern
86
+
87
+ Once a clinical encounter is signed:
88
+ - No edits allowed — only an addendum (a separate linked record)
89
+ - Both original and addendum appear in the patient timeline
90
+ - Audit trail captures who signed, when, and any addendum records
91
+
92
+ ### UI Patterns for Clinical Data
93
+
94
+ **Vitals Display:** Current values with normal range highlighting (green/yellow/red), trend arrows vs previous, clinical scoring auto-calculated (NEWS2, qSOFA), escalation guidance inline.
95
+
96
+ **Lab Results Display:** Normal range highlighting, previous value comparison, critical values with non-dismissable alert, collection/analysis timestamps, pending orders with expected turnaround.
97
+
98
+ **Prescription PDF:** One-click generation with patient demographics, allergies, diagnosis, drug details (generic + brand, dose, route, frequency, duration), clinician signature block.
99
+
100
+ ### Accessibility for Healthcare
101
+
102
+ Healthcare UIs have stricter requirements than typical web apps:
103
+ - 4.5:1 minimum contrast (WCAG AA) — clinicians work in varied lighting
104
+ - Large touch targets (44x44px minimum) — for gloved/rushed interaction
105
+ - Keyboard navigation — for power users entering data rapidly
106
+ - No color-only indicators — always pair color with text/icon (colorblind clinicians)
107
+ - Screen reader labels on all form fields
108
+ - No auto-dismissing toasts for clinical alerts — clinician must actively acknowledge
109
+
110
+ ### Anti-Patterns
111
+
112
+ - Storing clinical data in browser localStorage
113
+ - Silent failures in drug interaction checking
114
+ - Dismissable toasts for critical clinical alerts
115
+ - Tab-based encounter UIs that fragment the clinical workflow
116
+ - Allowing edits to signed/locked encounters
117
+ - Displaying clinical data without audit trail
118
+ - Using `any` type for clinical data structures
119
+
120
+ ## Examples
121
+
122
+ ### Example 1: Patient Encounter Flow
123
+
124
+ ```
125
+ Doctor opens encounter for Patient #4521
126
+ → Sticky header shows: "Rajesh M, 58M, Allergies: Penicillin, Active Meds: Metformin 500mg"
127
+ → Chief Complaint: selects "Chest Pain" template
128
+ → Clicks chips: "substernal", "radiating to left arm", "crushing"
129
+ → Red flag "crushing substernal chest pain" triggers non-dismissable alert
130
+ → Examination: CVS system — "S1 S2 normal, no murmur"
131
+ → Vitals: HR 110, BP 90/60, SpO2 94%
132
+ → NEWS2 auto-calculates: score 8, risk HIGH, escalation alert shown
133
+ → Diagnosis: searches "ACS" → selects ICD-10 I21.9
134
+ → Medications: selects Aspirin 300mg
135
+ → CDSS checks against Metformin: no interaction
136
+ → Signs encounter → locked, addendum-only from this point
137
+ ```
138
+
139
+ ### Example 2: Medication Safety Workflow
140
+
141
+ ```
142
+ Doctor prescribes Warfarin for Patient #4521
143
+ → CDSS detects: Warfarin + Aspirin = CRITICAL interaction
144
+ → UI: red non-dismissable modal blocks prescribing
145
+ → Doctor clicks "Override with reason"
146
+ → Types: "Benefits outweigh risks — monitored INR protocol"
147
+ → Override reason + alert stored in audit trail
148
+ → Prescription proceeds with documented override
149
+ ```
150
+
151
+ ### Example 3: Locked Encounter + Addendum
152
+
153
+ ```
154
+ Encounter #E-2024-0891 signed by Dr. Shah at 14:30
155
+ → All fields locked — no edit buttons visible
156
+ → "Add Addendum" button available
157
+ → Dr. Shah clicks addendum, adds: "Lab results received — Troponin elevated"
158
+ → New record E-2024-0891-A1 linked to original
159
+ → Timeline shows both: original encounter + addendum with timestamps
160
+ ```