opencode-skills-collection 4.0.53 → 4.0.54

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 (1168) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +3 -2
  2. package/bundled-skills/00-andruia-consultant/SKILL.md +6 -0
  3. package/bundled-skills/007/SKILL.md +2 -610
  4. package/bundled-skills/007/references/detailed-guide.md +647 -0
  5. package/bundled-skills/10-andruia-skill-smith/SKILL.md +6 -0
  6. package/bundled-skills/20-andruia-niche-intelligence/SKILL.md +6 -0
  7. package/bundled-skills/2slides-ppt-generator/SKILL.md +2 -741
  8. package/bundled-skills/2slides-ppt-generator/references/detailed-guide.md +761 -0
  9. package/bundled-skills/ab-test-setup/SKILL.md +59 -27
  10. package/bundled-skills/ab-testing/SKILL.md +1 -1
  11. package/bundled-skills/acceptance-orchestrator/SKILL.md +6 -0
  12. package/bundled-skills/accint-commitments/SKILL.md +6 -0
  13. package/bundled-skills/accint-frames/SKILL.md +6 -0
  14. package/bundled-skills/accint-solve/SKILL.md +6 -0
  15. package/bundled-skills/advogado-criminal/SKILL.md +2 -912
  16. package/bundled-skills/advogado-criminal/references/detailed-guide.md +946 -0
  17. package/bundled-skills/advogado-especialista/SKILL.md +2 -1071
  18. package/bundled-skills/advogado-especialista/references/detailed-guide.md +1114 -0
  19. package/bundled-skills/agent-evaluation/SKILL.md +53 -1102
  20. package/bundled-skills/agent-evaluation/references/architecture-sketches.md +1112 -0
  21. package/bundled-skills/agent-memory/SKILL.md +6 -0
  22. package/bundled-skills/agent-memory-systems/SKILL.md +8 -1042
  23. package/bundled-skills/agent-memory-systems/references/detailed-guide.md +1088 -0
  24. package/bundled-skills/agent-squad/SKILL.md +1 -0
  25. package/bundled-skills/agent-tool-builder/SKILL.md +2 -624
  26. package/bundled-skills/agent-tool-builder/references/detailed-guide.md +650 -0
  27. package/bundled-skills/agentic-actions-auditor/SKILL.md +6 -0
  28. package/bundled-skills/agentmail/SKILL.md +1 -0
  29. package/bundled-skills/agentphone/SKILL.md +5 -1323
  30. package/bundled-skills/agentphone/references/detailed-guide.md +1333 -0
  31. package/bundled-skills/agents-v2-py/SKILL.md +23 -5
  32. package/bundled-skills/ai-agents-architect/SKILL.md +25 -25
  33. package/bundled-skills/ai-analyzer/SKILL.md +1 -0
  34. package/bundled-skills/ai-md/SKILL.md +25 -0
  35. package/bundled-skills/ai-md/references/detailed-guide.md +512 -0
  36. package/bundled-skills/ai-product/SKILL.md +2 -726
  37. package/bundled-skills/ai-product/references/detailed-guide.md +746 -0
  38. package/bundled-skills/ai-wrapper-product/SKILL.md +2 -641
  39. package/bundled-skills/ai-wrapper-product/references/detailed-guide.md +659 -0
  40. package/bundled-skills/airtable-automation/SKILL.md +6 -0
  41. package/bundled-skills/algolia-search/SKILL.md +2 -893
  42. package/bundled-skills/algolia-search/references/detailed-guide.md +901 -0
  43. package/bundled-skills/alpha-vantage/SKILL.md +1 -0
  44. package/bundled-skills/alternatives-pages/SKILL.md +7 -1
  45. package/bundled-skills/amazon-alexa/SKILL.md +2 -627
  46. package/bundled-skills/amazon-alexa/references/detailed-guide.md +644 -0
  47. package/bundled-skills/analytics/SKILL.md +1 -1
  48. package/bundled-skills/analytics-product/SKILL.md +57 -44
  49. package/bundled-skills/analytics-tracking/SKILL.md +21 -12
  50. package/bundled-skills/analyze-project/SKILL.md +1 -0
  51. package/bundled-skills/android-dev/SKILL.md +2 -490
  52. package/bundled-skills/android-dev/references/detailed-guide.md +506 -0
  53. package/bundled-skills/angular/SKILL.md +4 -783
  54. package/bundled-skills/angular/references/detailed-guide.md +801 -0
  55. package/bundled-skills/angular-best-practices/SKILL.md +4 -535
  56. package/bundled-skills/angular-best-practices/references/detailed-guide.md +549 -0
  57. package/bundled-skills/angular-state-management/SKILL.md +4 -608
  58. package/bundled-skills/angular-state-management/references/detailed-guide.md +618 -0
  59. package/bundled-skills/angular-ui-patterns/SKILL.md +2 -498
  60. package/bundled-skills/angular-ui-patterns/references/detailed-guide.md +513 -0
  61. package/bundled-skills/animejs-animation/SKILL.md +6 -0
  62. package/bundled-skills/anti-deception/SKILL.md +7 -1
  63. package/bundled-skills/antigravity-design-expert/SKILL.md +6 -0
  64. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +7 -0
  65. package/bundled-skills/antigravity-workflows/SKILL.md +20 -3
  66. package/bundled-skills/antigravity-workflows/references/workflow-cards.md +78 -0
  67. package/bundled-skills/api-analyzer/SKILL.md +1 -1
  68. package/bundled-skills/api-designer/SKILL.md +1 -1
  69. package/bundled-skills/api-integration/SKILL.md +1 -1
  70. package/bundled-skills/api-onboarding/SKILL.md +1 -1
  71. package/bundled-skills/api-patterns/SKILL.md +19 -8
  72. package/bundled-skills/api-patterns/api-style.md +2 -2
  73. package/bundled-skills/api-patterns/auth.md +3 -2
  74. package/bundled-skills/api-patterns/graphql.md +1 -1
  75. package/bundled-skills/api-patterns/scripts/api_validator.py +9 -7
  76. package/bundled-skills/api-patterns/trpc.md +2 -2
  77. package/bundled-skills/api-patterns/versioning.md +1 -1
  78. package/bundled-skills/api-sdk-generator/SKILL.md +1 -1
  79. package/bundled-skills/api-security-best-practices/SKILL.md +179 -879
  80. package/bundled-skills/apify-actor-development/SKILL.md +1 -0
  81. package/bundled-skills/apify-actorization/SKILL.md +1 -0
  82. package/bundled-skills/apify-audience-analysis/SKILL.md +1 -0
  83. package/bundled-skills/apify-brand-reputation-monitoring/SKILL.md +1 -0
  84. package/bundled-skills/apify-competitor-intelligence/SKILL.md +1 -0
  85. package/bundled-skills/apify-content-analytics/SKILL.md +1 -0
  86. package/bundled-skills/apify-ecommerce/SKILL.md +1 -0
  87. package/bundled-skills/apify-influencer-discovery/SKILL.md +1 -0
  88. package/bundled-skills/apify-lead-generation/SKILL.md +1 -0
  89. package/bundled-skills/apify-market-research/SKILL.md +1 -0
  90. package/bundled-skills/apify-trend-analysis/SKILL.md +1 -0
  91. package/bundled-skills/apify-ultimate-scraper/SKILL.md +1 -0
  92. package/bundled-skills/appium-skill/SKILL.md +1 -1
  93. package/bundled-skills/apple-notes-search/SKILL.md +6 -0
  94. package/bundled-skills/application-performance-performance-optimization/SKILL.md +6 -0
  95. package/bundled-skills/applicationinsights-web-ts/SKILL.md +1 -1
  96. package/bundled-skills/ask-matt/SKILL.md +5 -0
  97. package/bundled-skills/ask-questions-if-underspecified/SKILL.md +1 -0
  98. package/bundled-skills/astropy/SKILL.md +1 -0
  99. package/bundled-skills/atlas-contract/SKILL.md +117 -0
  100. package/bundled-skills/atlas-contract/references/detailed-guide.md +572 -0
  101. package/bundled-skills/audio-transcriber/SKILL.md +2 -425
  102. package/bundled-skills/audio-transcriber/references/detailed-guide.md +430 -0
  103. package/bundled-skills/audit-context-building/SKILL.md +1 -0
  104. package/bundled-skills/auri-core/SKILL.md +5 -562
  105. package/bundled-skills/auri-core/references/detailed-guide.md +623 -0
  106. package/bundled-skills/auth-implementation-patterns/SKILL.md +14 -4
  107. package/bundled-skills/auth-implementation-patterns/resources/implementation-playbook.md +72 -180
  108. package/bundled-skills/automated-triage/SKILL.md +6 -0
  109. package/bundled-skills/autonomous-agent-patterns/SKILL.md +4 -741
  110. package/bundled-skills/autonomous-agent-patterns/references/detailed-guide.md +751 -0
  111. package/bundled-skills/autonomous-agents/SKILL.md +8 -1010
  112. package/bundled-skills/autonomous-agents/references/detailed-guide.md +1065 -0
  113. package/bundled-skills/awareness-stage-mapper/SKILL.md +6 -0
  114. package/bundled-skills/aws-agentic-ai/SKILL.md +7 -1
  115. package/bundled-skills/aws-cdk-development/SKILL.md +1 -1
  116. package/bundled-skills/aws-cost-operations/SKILL.md +1 -1
  117. package/bundled-skills/aws-mcp-setup/SKILL.md +1 -1
  118. package/bundled-skills/aws-serverless/SKILL.md +2 -1305
  119. package/bundled-skills/aws-serverless/references/detailed-guide.md +1340 -0
  120. package/bundled-skills/aws-serverless-eda/SKILL.md +1 -1
  121. package/bundled-skills/aws-skills/SKILL.md +6 -0
  122. package/bundled-skills/aws-sst-development/SKILL.md +7 -1
  123. package/bundled-skills/awt-e2e-testing/SKILL.md +7 -0
  124. package/bundled-skills/azure-functions/SKILL.md +2 -1321
  125. package/bundled-skills/azure-functions/references/detailed-guide.md +1356 -0
  126. package/bundled-skills/azure-maps-search-dotnet/SKILL.md +2 -482
  127. package/bundled-skills/azure-maps-search-dotnet/references/detailed-guide.md +496 -0
  128. package/bundled-skills/azure-search-documents-py/SKILL.md +2 -515
  129. package/bundled-skills/azure-search-documents-py/references/detailed-guide.md +548 -0
  130. package/bundled-skills/azure-storage-file-share-ts/SKILL.md +2 -481
  131. package/bundled-skills/azure-storage-file-share-ts/references/detailed-guide.md +500 -0
  132. package/bundled-skills/azure-storage-queue-ts/SKILL.md +2 -512
  133. package/bundled-skills/azure-storage-queue-ts/references/detailed-guide.md +530 -0
  134. package/bundled-skills/backend-development-feature-development/SKILL.md +6 -0
  135. package/bundled-skills/basecamp-automation/SKILL.md +6 -0
  136. package/bundled-skills/baseline-ui/SKILL.md +6 -0
  137. package/bundled-skills/bash-pro/SKILL.md +6 -0
  138. package/bundled-skills/bdi-mental-states/SKILL.md +1 -0
  139. package/bundled-skills/beautiful-prose/SKILL.md +1 -0
  140. package/bundled-skills/bill-gates/SKILL.md +2 -778
  141. package/bundled-skills/bill-gates/references/detailed-guide.md +784 -0
  142. package/bundled-skills/biopython/SKILL.md +1 -0
  143. package/bundled-skills/bitbucket-automation/SKILL.md +6 -0
  144. package/bundled-skills/blog-writing-guide/SKILL.md +6 -0
  145. package/bundled-skills/box-automation/SKILL.md +6 -0
  146. package/bundled-skills/brain-to-docs/SKILL.md +6 -0
  147. package/bundled-skills/brainstorming/SKILL.md +6 -0
  148. package/bundled-skills/brand-guidelines/SKILL.md +1 -0
  149. package/bundled-skills/brand-guidelines-anthropic/SKILL.md +23 -8
  150. package/bundled-skills/brand-guidelines-community/SKILL.md +23 -8
  151. package/bundled-skills/brand-perception-psychologist/SKILL.md +6 -0
  152. package/bundled-skills/brooks-audit/SKILL.md +1 -1
  153. package/bundled-skills/brooks-debt/SKILL.md +1 -1
  154. package/bundled-skills/brooks-harness/SKILL.md +1 -1
  155. package/bundled-skills/brooks-review/SKILL.md +7 -1
  156. package/bundled-skills/brooks-sweep/SKILL.md +1 -1
  157. package/bundled-skills/brooks-test/SKILL.md +1 -1
  158. package/bundled-skills/browser-automation/SKILL.md +18 -1044
  159. package/bundled-skills/browser-automation/references/detailed-guide.md +852 -0
  160. package/bundled-skills/bug-hunt-swarm/SKILL.md +7 -1
  161. package/bundled-skills/build/SKILL.md +5 -627
  162. package/bundled-skills/build/references/detailed-guide.md +637 -0
  163. package/bundled-skills/bun-development/SKILL.md +4 -678
  164. package/bundled-skills/bun-development/references/detailed-guide.md +691 -0
  165. package/bundled-skills/burpsuite-project-parser/SKILL.md +1 -0
  166. package/bundled-skills/c-pro/SKILL.md +6 -0
  167. package/bundled-skills/calendly-automation/SKILL.md +6 -0
  168. package/bundled-skills/cc-skill-backend-patterns/SKILL.md +2 -572
  169. package/bundled-skills/cc-skill-backend-patterns/references/detailed-guide.md +584 -0
  170. package/bundled-skills/cc-skill-coding-standards/SKILL.md +2 -510
  171. package/bundled-skills/cc-skill-coding-standards/references/detailed-guide.md +523 -0
  172. package/bundled-skills/cc-skill-continuous-learning/SKILL.md +49 -7
  173. package/bundled-skills/cc-skill-continuous-learning/config.json +1 -16
  174. package/bundled-skills/cc-skill-continuous-learning/evaluate-session.sh +56 -59
  175. package/bundled-skills/cc-skill-frontend-patterns/SKILL.md +2 -621
  176. package/bundled-skills/cc-skill-frontend-patterns/references/detailed-guide.md +633 -0
  177. package/bundled-skills/cc-skill-security-review/SKILL.md +4 -36
  178. package/bundled-skills/cc-skill-security-review/references/detailed-guide.md +40 -0
  179. package/bundled-skills/cc-skill-strategic-compact/SKILL.md +53 -7
  180. package/bundled-skills/cc-skill-strategic-compact/suggest-compact.sh +20 -51
  181. package/bundled-skills/changelog-updates/SKILL.md +6 -528
  182. package/bundled-skills/changelog-updates/references/detailed-guide.md +540 -0
  183. package/bundled-skills/chat-widget/SKILL.md +5 -879
  184. package/bundled-skills/chat-widget/references/detailed-guide.md +890 -0
  185. package/bundled-skills/cirq/SKILL.md +1 -0
  186. package/bundled-skills/citation-management/SKILL.md +3 -960
  187. package/bundled-skills/citation-management/references/detailed-guide.md +975 -0
  188. package/bundled-skills/ckw-design/SKILL.md +6 -0
  189. package/bundled-skills/claimable-postgres/SKILL.md +1 -1
  190. package/bundled-skills/clarity-gate/SKILL.md +3 -635
  191. package/bundled-skills/clarity-gate/references/detailed-guide.md +653 -0
  192. package/bundled-skills/claude-ally-health/SKILL.md +6 -0
  193. package/bundled-skills/claude-code-expert/SKILL.md +2 -527
  194. package/bundled-skills/claude-code-expert/references/detailed-guide.md +548 -0
  195. package/bundled-skills/claude-d3js-skill/SKILL.md +2 -798
  196. package/bundled-skills/claude-d3js-skill/references/detailed-guide.md +811 -0
  197. package/bundled-skills/claude-in-chrome-troubleshooting/SKILL.md +1 -0
  198. package/bundled-skills/claude-scientific-skills/SKILL.md +6 -0
  199. package/bundled-skills/claude-settings-audit/SKILL.md +1 -0
  200. package/bundled-skills/claude-speed-reader/SKILL.md +6 -0
  201. package/bundled-skills/claude-win11-speckit-update-skill/SKILL.md +6 -0
  202. package/bundled-skills/clean-code/SKILL.md +6 -0
  203. package/bundled-skills/clerk-auth/SKILL.md +2 -812
  204. package/bundled-skills/clerk-auth/references/detailed-guide.md +820 -0
  205. package/bundled-skills/clickup-automation/SKILL.md +6 -0
  206. package/bundled-skills/closed-loop-delivery/SKILL.md +6 -0
  207. package/bundled-skills/co-marketing/SKILL.md +1 -1
  208. package/bundled-skills/code-documentation-doc-generate/SKILL.md +16 -1
  209. package/bundled-skills/code-documentation-doc-generate/resources/implementation-playbook.md +33 -55
  210. package/bundled-skills/code-refactoring-context-restore/SKILL.md +40 -177
  211. package/bundled-skills/code-refactoring-tech-debt/SKILL.md +20 -9
  212. package/bundled-skills/code-simplifier/SKILL.md +1 -0
  213. package/bundled-skills/codebase-cleanup-tech-debt/SKILL.md +20 -9
  214. package/bundled-skills/cold-email/SKILL.md +6 -0
  215. package/bundled-skills/commit/SKILL.md +1 -0
  216. package/bundled-skills/community-building/SKILL.md +1 -1
  217. package/bundled-skills/competitor-alternatives/SKILL.md +2 -740
  218. package/bundled-skills/competitor-alternatives/references/detailed-guide.md +756 -0
  219. package/bundled-skills/competitor-profiling/SKILL.md +1 -1
  220. package/bundled-skills/competitor-tracking/SKILL.md +1 -1
  221. package/bundled-skills/comprehensive-review-full-review/SKILL.md +6 -0
  222. package/bundled-skills/comprehensive-review-pr-enhance/SKILL.md +1 -0
  223. package/bundled-skills/computer-use-agents/SKILL.md +2 -2131
  224. package/bundled-skills/computer-use-agents/references/detailed-guide.md +2158 -0
  225. package/bundled-skills/computer-vision-expert/SKILL.md +6 -0
  226. package/bundled-skills/conductor-setup/SKILL.md +1 -0
  227. package/bundled-skills/confluence-automation/SKILL.md +6 -0
  228. package/bundled-skills/constant-time-analysis/SKILL.md +1 -0
  229. package/bundled-skills/container-security-hardening/SKILL.md +4 -915
  230. package/bundled-skills/container-security-hardening/references/detailed-guide.md +927 -0
  231. package/bundled-skills/content-creator/SKILL.md +53 -23
  232. package/bundled-skills/content-creator/assets/content_calendar_template.md +5 -2
  233. package/bundled-skills/content-creator/references/brand_guidelines.md +7 -3
  234. package/bundled-skills/content-creator/references/content_frameworks.md +12 -7
  235. package/bundled-skills/content-creator/references/social_media_optimization.md +61 -317
  236. package/bundled-skills/content-creator/scripts/brand_voice_analyzer.py +14 -9
  237. package/bundled-skills/content-creator/scripts/seo_optimizer.py +31 -94
  238. package/bundled-skills/context-compression/SKILL.md +1 -0
  239. package/bundled-skills/context-degradation/SKILL.md +1 -0
  240. package/bundled-skills/context-fundamentals/SKILL.md +1 -0
  241. package/bundled-skills/context-management-context-restore/SKILL.md +40 -177
  242. package/bundled-skills/context-optimization/SKILL.md +1 -0
  243. package/bundled-skills/convex/SKILL.md +4 -766
  244. package/bundled-skills/convex/references/detailed-guide.md +772 -0
  245. package/bundled-skills/copilot-sdk/SKILL.md +4 -496
  246. package/bundled-skills/copilot-sdk/references/detailed-guide.md +516 -0
  247. package/bundled-skills/copy-editing/SKILL.md +6 -0
  248. package/bundled-skills/copywriting/SKILL.md +6 -0
  249. package/bundled-skills/copywriting-psychologist/SKILL.md +6 -0
  250. package/bundled-skills/create-branch/SKILL.md +1 -0
  251. package/bundled-skills/create-pr/SKILL.md +7 -0
  252. package/bundled-skills/cred-omega/SKILL.md +2 -847
  253. package/bundled-skills/cred-omega/references/detailed-guide.md +872 -0
  254. package/bundled-skills/cro/SKILL.md +1 -1
  255. package/bundled-skills/csharp-pro/SKILL.md +6 -0
  256. package/bundled-skills/cucumber-skill/SKILL.md +1 -1
  257. package/bundled-skills/customer-psychographic-profiler/SKILL.md +6 -0
  258. package/bundled-skills/customer-research/SKILL.md +1 -1
  259. package/bundled-skills/cv-generator/SKILL.md +4 -828
  260. package/bundled-skills/cv-generator/references/detailed-guide.md +845 -0
  261. package/bundled-skills/cypress-skill/SKILL.md +1 -1
  262. package/bundled-skills/daily-gift/SKILL.md +6 -0
  263. package/bundled-skills/debug-buttercup/SKILL.md +1 -0
  264. package/bundled-skills/debugger/SKILL.md +6 -0
  265. package/bundled-skills/debugging-code/SKILL.md +1 -1
  266. package/bundled-skills/deepapi/SKILL.md +4 -619
  267. package/bundled-skills/deepapi/references/detailed-guide.md +627 -0
  268. package/bundled-skills/delegating-to-agents/SKILL.md +6 -0
  269. package/bundled-skills/deployment-validation-config-validate/SKILL.md +4 -478
  270. package/bundled-skills/deployment-validation-config-validate/references/detailed-guide.md +484 -0
  271. package/bundled-skills/design-it/SKILL.md +6 -0
  272. package/bundled-skills/design-orchestration/SKILL.md +6 -0
  273. package/bundled-skills/design-spells/SKILL.md +6 -0
  274. package/bundled-skills/design-system/SKILL.md +7 -1
  275. package/bundled-skills/design-taste-frontend/SKILL.md +6 -0
  276. package/bundled-skills/design-thinking/SKILL.md +6 -0
  277. package/bundled-skills/design-ux/SKILL.md +7 -1
  278. package/bundled-skills/deterministic-design/SKILL.md +6 -0
  279. package/bundled-skills/developer-advocacy/SKILL.md +1 -1
  280. package/bundled-skills/developer-audience-context/SKILL.md +1 -1
  281. package/bundled-skills/developer-churn/SKILL.md +5 -625
  282. package/bundled-skills/developer-churn/references/detailed-guide.md +639 -0
  283. package/bundled-skills/developer-listening/SKILL.md +7 -1
  284. package/bundled-skills/developer-onboarding/SKILL.md +6 -474
  285. package/bundled-skills/developer-onboarding/references/detailed-guide.md +486 -0
  286. package/bundled-skills/developer-sandbox/SKILL.md +6 -414
  287. package/bundled-skills/developer-sandbox/references/detailed-guide.md +425 -0
  288. package/bundled-skills/developer-seo/SKILL.md +1 -1
  289. package/bundled-skills/developer-signup-flow/SKILL.md +1 -1
  290. package/bundled-skills/devrel-content/SKILL.md +1 -1
  291. package/bundled-skills/diagnosing-bugs/SKILL.md +5 -0
  292. package/bundled-skills/diary/SKILL.md +1 -0
  293. package/bundled-skills/differential-review/SKILL.md +1 -0
  294. package/bundled-skills/discord-automation/SKILL.md +6 -0
  295. package/bundled-skills/discord-bot-architect/SKILL.md +2 -1434
  296. package/bundled-skills/discord-bot-architect/references/detailed-guide.md +1465 -0
  297. package/bundled-skills/django-access-review/SKILL.md +1 -0
  298. package/bundled-skills/django-perf-review/SKILL.md +1 -0
  299. package/bundled-skills/doc-coauthoring/SKILL.md +6 -0
  300. package/bundled-skills/docs-architect/SKILL.md +6 -0
  301. package/bundled-skills/docs-as-marketing/SKILL.md +1 -1
  302. package/bundled-skills/documentation-generation-doc-generate/SKILL.md +16 -1
  303. package/bundled-skills/documentation-generation-doc-generate/resources/implementation-playbook.md +33 -55
  304. package/bundled-skills/doubt-driven-development/SKILL.md +1 -1
  305. package/bundled-skills/dropbox-automation/SKILL.md +6 -0
  306. package/bundled-skills/dwarf-expert/SKILL.md +1 -0
  307. package/bundled-skills/dx-optimizer/SKILL.md +6 -0
  308. package/bundled-skills/e2e-testing-patterns/SKILL.md +14 -4
  309. package/bundled-skills/e2e-testing-patterns/resources/implementation-playbook.md +22 -41
  310. package/bundled-skills/eas-update-insights/SKILL.md +1 -1
  311. package/bundled-skills/ecl-harness-engineer/SKILL.md +4 -681
  312. package/bundled-skills/ecl-harness-engineer/references/detailed-guide.md +691 -0
  313. package/bundled-skills/efficient-web-research/SKILL.md +1 -0
  314. package/bundled-skills/electron-development/SKILL.md +4 -820
  315. package/bundled-skills/electron-development/references/detailed-guide.md +828 -0
  316. package/bundled-skills/elixir-pro/SKILL.md +6 -0
  317. package/bundled-skills/elon-musk/SKILL.md +5 -1278
  318. package/bundled-skills/elon-musk/references/detailed-guide.md +1293 -0
  319. package/bundled-skills/email-sequence/SKILL.md +2 -915
  320. package/bundled-skills/email-sequence/references/detailed-guide.md +932 -0
  321. package/bundled-skills/email-systems/SKILL.md +2 -654
  322. package/bundled-skills/email-systems/references/detailed-guide.md +669 -0
  323. package/bundled-skills/emergency-card/SKILL.md +1 -0
  324. package/bundled-skills/emil-design-eng/SKILL.md +4 -673
  325. package/bundled-skills/emil-design-eng/references/detailed-guide.md +690 -0
  326. package/bundled-skills/emotional-arc-designer/SKILL.md +6 -0
  327. package/bundled-skills/enhance-prompt/SKILL.md +1 -0
  328. package/bundled-skills/error-debugging-error-analysis/SKILL.md +15 -0
  329. package/bundled-skills/error-debugging-error-analysis/resources/implementation-playbook.md +122 -1125
  330. package/bundled-skills/error-debugging-multi-agent-review/SKILL.md +42 -214
  331. package/bundled-skills/error-detective/SKILL.md +6 -0
  332. package/bundled-skills/error-diagnostics-error-analysis/SKILL.md +15 -0
  333. package/bundled-skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +122 -1125
  334. package/bundled-skills/event-sourcing-architect/SKILL.md +6 -0
  335. package/bundled-skills/event-staffing-compliance/SKILL.md +6 -0
  336. package/bundled-skills/event-staffing-ordering/SKILL.md +6 -0
  337. package/bundled-skills/evolution/SKILL.md +1 -0
  338. package/bundled-skills/executing-plans/SKILL.md +6 -0
  339. package/bundled-skills/explain-like-socrates/SKILL.md +6 -0
  340. package/bundled-skills/expo-deployment/SKILL.md +1 -1
  341. package/bundled-skills/expo-examples/SKILL.md +1 -1
  342. package/bundled-skills/expo-module/SKILL.md +1 -1
  343. package/bundled-skills/expo-observe/SKILL.md +1 -1
  344. package/bundled-skills/expo-ui/SKILL.md +1 -1
  345. package/bundled-skills/expo-ui-jetpack-compose/SKILL.md +1 -0
  346. package/bundled-skills/expo-ui-swift-ui/SKILL.md +1 -0
  347. package/bundled-skills/fable-safe-prompt/SKILL.md +6 -0
  348. package/bundled-skills/fal-audio/SKILL.md +6 -0
  349. package/bundled-skills/fal-generate/SKILL.md +6 -0
  350. package/bundled-skills/fal-image-edit/SKILL.md +6 -0
  351. package/bundled-skills/fal-platform/SKILL.md +6 -0
  352. package/bundled-skills/fal-upscale/SKILL.md +6 -0
  353. package/bundled-skills/fal-workflow/SKILL.md +6 -0
  354. package/bundled-skills/family-health-analyzer/SKILL.md +1 -0
  355. package/bundled-skills/favicon/SKILL.md +1 -0
  356. package/bundled-skills/fda-food-safety-auditor/SKILL.md +1 -0
  357. package/bundled-skills/fda-medtech-compliance-auditor/SKILL.md +1 -0
  358. package/bundled-skills/ffuf-claude-skill/SKILL.md +6 -0
  359. package/bundled-skills/ffuf-web-fuzzing/SKILL.md +5 -492
  360. package/bundled-skills/ffuf-web-fuzzing/references/detailed-guide.md +510 -0
  361. package/bundled-skills/file-organizer/SKILL.md +6 -0
  362. package/bundled-skills/file-uploads/SKILL.md +6 -0
  363. package/bundled-skills/filesystem-context/SKILL.md +1 -0
  364. package/bundled-skills/find-bugs/SKILL.md +7 -0
  365. package/bundled-skills/firebase/SKILL.md +8 -651
  366. package/bundled-skills/firebase/references/detailed-guide.md +662 -0
  367. package/bundled-skills/fitness-analyzer/SKILL.md +1 -0
  368. package/bundled-skills/fix-review/SKILL.md +6 -0
  369. package/bundled-skills/fixing-metadata/SKILL.md +7 -1
  370. package/bundled-skills/food-database-query/SKILL.md +5 -772
  371. package/bundled-skills/food-database-query/references/detailed-guide.md +785 -0
  372. package/bundled-skills/form-cro/SKILL.md +6 -0
  373. package/bundled-skills/fp-async/SKILL.md +5 -716
  374. package/bundled-skills/fp-async/references/detailed-guide.md +726 -0
  375. package/bundled-skills/fp-backend/SKILL.md +5 -1313
  376. package/bundled-skills/fp-backend/references/detailed-guide.md +1323 -0
  377. package/bundled-skills/fp-data-transforms/SKILL.md +5 -1181
  378. package/bundled-skills/fp-data-transforms/references/detailed-guide.md +1190 -0
  379. package/bundled-skills/fp-either-ref/SKILL.md +1 -0
  380. package/bundled-skills/fp-errors/SKILL.md +5 -835
  381. package/bundled-skills/fp-errors/references/detailed-guide.md +846 -0
  382. package/bundled-skills/fp-option-ref/SKILL.md +1 -0
  383. package/bundled-skills/fp-pipe-ref/SKILL.md +1 -0
  384. package/bundled-skills/fp-pragmatic/SKILL.md +5 -500
  385. package/bundled-skills/fp-pragmatic/references/detailed-guide.md +510 -0
  386. package/bundled-skills/fp-react/SKILL.md +3 -761
  387. package/bundled-skills/fp-react/references/detailed-guide.md +775 -0
  388. package/bundled-skills/fp-refactor/SKILL.md +5 -1761
  389. package/bundled-skills/fp-refactor/references/detailed-guide.md +1775 -0
  390. package/bundled-skills/fp-taskeither-ref/SKILL.md +1 -0
  391. package/bundled-skills/fp-ts-errors/SKILL.md +4 -835
  392. package/bundled-skills/fp-ts-errors/references/detailed-guide.md +846 -0
  393. package/bundled-skills/fp-ts-pragmatic/SKILL.md +4 -500
  394. package/bundled-skills/fp-ts-pragmatic/references/detailed-guide.md +510 -0
  395. package/bundled-skills/fp-ts-react/SKILL.md +4 -763
  396. package/bundled-skills/fp-ts-react/references/detailed-guide.md +775 -0
  397. package/bundled-skills/fp-types-ref/SKILL.md +1 -0
  398. package/bundled-skills/framework-migration-legacy-modernize/SKILL.md +6 -0
  399. package/bundled-skills/free-tool-strategy/SKILL.md +2 -532
  400. package/bundled-skills/free-tool-strategy/references/detailed-guide.md +550 -0
  401. package/bundled-skills/freshdesk-automation/SKILL.md +6 -0
  402. package/bundled-skills/frontend-architecture/SKILL.md +1 -1
  403. package/bundled-skills/frontend-data-contracts/SKILL.md +1 -1
  404. package/bundled-skills/frontend-design/SKILL.md +33 -34
  405. package/bundled-skills/frontend-observability/SKILL.md +1 -1
  406. package/bundled-skills/frontend-optimistic-mutations/SKILL.md +1 -1
  407. package/bundled-skills/frontend-seo/SKILL.md +6 -675
  408. package/bundled-skills/frontend-seo/references/detailed-guide.md +688 -0
  409. package/bundled-skills/frontend-slides-frontend-slides/SKILL.md +7 -1
  410. package/bundled-skills/frontend-ui-dark-ts/SKILL.md +2 -561
  411. package/bundled-skills/frontend-ui-dark-ts/references/detailed-guide.md +573 -0
  412. package/bundled-skills/full-stack-orchestration-full-stack-feature/SKILL.md +6 -0
  413. package/bundled-skills/game-development/2d-games/SKILL.md +6 -0
  414. package/bundled-skills/game-development/mobile-games/SKILL.md +6 -0
  415. package/bundled-skills/game-development/vr-ar/SKILL.md +6 -0
  416. package/bundled-skills/gcp-cloud-run/SKILL.md +2 -1303
  417. package/bundled-skills/gcp-cloud-run/references/detailed-guide.md +1350 -0
  418. package/bundled-skills/gemini-api-dev/SKILL.md +1 -1
  419. package/bundled-skills/gemini-live-api-dev/SKILL.md +1 -1
  420. package/bundled-skills/gemini-omni-flash-api/SKILL.md +1 -1
  421. package/bundled-skills/geo-fundamentals/SKILL.md +6 -0
  422. package/bundled-skills/geoffrey-hinton/SKILL.md +5 -1235
  423. package/bundled-skills/geoffrey-hinton/references/detailed-guide.md +1324 -0
  424. package/bundled-skills/gh-review-requests/SKILL.md +1 -0
  425. package/bundled-skills/github-actions-advanced/SKILL.md +4 -971
  426. package/bundled-skills/github-actions-advanced/references/detailed-guide.md +991 -0
  427. package/bundled-skills/github-automation/SKILL.md +6 -0
  428. package/bundled-skills/github-workflow-automation/SKILL.md +4 -826
  429. package/bundled-skills/github-workflow-automation/references/detailed-guide.md +832 -0
  430. package/bundled-skills/gitlab-automation/SKILL.md +6 -0
  431. package/bundled-skills/gmail-automation/SKILL.md +1 -0
  432. package/bundled-skills/go-rod-master/SKILL.md +2 -496
  433. package/bundled-skills/go-rod-master/references/detailed-guide.md +508 -0
  434. package/bundled-skills/goal-analyzer/SKILL.md +5 -596
  435. package/bundled-skills/goal-analyzer/references/detailed-guide.md +602 -0
  436. package/bundled-skills/google-calendar-automation/SKILL.md +1 -0
  437. package/bundled-skills/google-docs-automation/SKILL.md +1 -0
  438. package/bundled-skills/google-drive-automation/SKILL.md +1 -0
  439. package/bundled-skills/google-sheets-automation/SKILL.md +1 -0
  440. package/bundled-skills/google-slides-automation/SKILL.md +1 -0
  441. package/bundled-skills/googlesheets-automation/SKILL.md +6 -0
  442. package/bundled-skills/gpt-taste/SKILL.md +6 -0
  443. package/bundled-skills/graphql/SKILL.md +8 -1031
  444. package/bundled-skills/graphql/references/detailed-guide.md +1044 -0
  445. package/bundled-skills/grill-me/SKILL.md +5 -0
  446. package/bundled-skills/grill-with-docs/SKILL.md +5 -0
  447. package/bundled-skills/grilling/SKILL.md +5 -0
  448. package/bundled-skills/growth-engine/SKILL.md +6 -0
  449. package/bundled-skills/handoff/SKILL.md +5 -0
  450. package/bundled-skills/haskell-pro/SKILL.md +6 -0
  451. package/bundled-skills/headline-psychologist/SKILL.md +6 -0
  452. package/bundled-skills/health-trend-analyzer/SKILL.md +1 -0
  453. package/bundled-skills/hig-components-content/SKILL.md +6 -0
  454. package/bundled-skills/hig-components-controls/SKILL.md +6 -0
  455. package/bundled-skills/hig-components-dialogs/SKILL.md +6 -0
  456. package/bundled-skills/hig-components-layout/SKILL.md +6 -0
  457. package/bundled-skills/hig-components-menus/SKILL.md +6 -0
  458. package/bundled-skills/hig-components-search/SKILL.md +6 -0
  459. package/bundled-skills/hig-components-status/SKILL.md +6 -0
  460. package/bundled-skills/hig-components-system/SKILL.md +6 -0
  461. package/bundled-skills/hig-foundations/SKILL.md +6 -0
  462. package/bundled-skills/hig-inputs/SKILL.md +6 -0
  463. package/bundled-skills/hig-patterns/SKILL.md +6 -0
  464. package/bundled-skills/hig-platforms/SKILL.md +6 -0
  465. package/bundled-skills/hig-technologies/SKILL.md +6 -0
  466. package/bundled-skills/high-end-visual-design/SKILL.md +6 -0
  467. package/bundled-skills/hosted-agents/SKILL.md +7 -0
  468. package/bundled-skills/hosted-agents-v2-py/SKILL.md +23 -5
  469. package/bundled-skills/html-injection-testing/SKILL.md +2 -453
  470. package/bundled-skills/html-injection-testing/references/detailed-guide.md +462 -0
  471. package/bundled-skills/hubspot-automation/SKILL.md +6 -0
  472. package/bundled-skills/hubspot-integration/SKILL.md +8 -807
  473. package/bundled-skills/hubspot-integration/references/detailed-guide.md +815 -0
  474. package/bundled-skills/hugging-face-cli/SKILL.md +7 -1
  475. package/bundled-skills/hugging-face-community-evals/SKILL.md +1 -1
  476. package/bundled-skills/hugging-face-datasets/SKILL.md +5 -430
  477. package/bundled-skills/hugging-face-datasets/references/detailed-guide.md +442 -0
  478. package/bundled-skills/hugging-face-evaluation/SKILL.md +5 -640
  479. package/bundled-skills/hugging-face-evaluation/references/detailed-guide.md +652 -0
  480. package/bundled-skills/hugging-face-jobs/SKILL.md +3 -801
  481. package/bundled-skills/hugging-face-jobs/references/detailed-guide.md +821 -0
  482. package/bundled-skills/hugging-face-model-trainer/SKILL.md +3 -681
  483. package/bundled-skills/hugging-face-model-trainer/references/detailed-guide.md +702 -0
  484. package/bundled-skills/hugging-face-paper-publisher/SKILL.md +5 -617
  485. package/bundled-skills/hugging-face-paper-publisher/references/detailed-guide.md +624 -0
  486. package/bundled-skills/hugging-face-papers/SKILL.md +1 -1
  487. package/bundled-skills/hugging-face-tool-builder/SKILL.md +1 -0
  488. package/bundled-skills/hugging-face-trackio/SKILL.md +1 -1
  489. package/bundled-skills/hugging-face-vision-trainer/SKILL.md +5 -534
  490. package/bundled-skills/hugging-face-vision-trainer/references/detailed-guide.md +549 -0
  491. package/bundled-skills/huggingface-best/SKILL.md +1 -1
  492. package/bundled-skills/huggingface-lora-space-builder/SKILL.md +1 -1
  493. package/bundled-skills/huggingface-spaces/SKILL.md +1 -1
  494. package/bundled-skills/huggingface-tool-builder/SKILL.md +1 -1
  495. package/bundled-skills/huggingface-zerogpu/SKILL.md +1 -1
  496. package/bundled-skills/hugo-to-markdown/SKILL.md +1 -1
  497. package/bundled-skills/hyperexecute-skill/SKILL.md +7 -1
  498. package/bundled-skills/iconsax-library/SKILL.md +6 -0
  499. package/bundled-skills/idea-refine/SKILL.md +1 -1
  500. package/bundled-skills/identity-mirror/SKILL.md +6 -0
  501. package/bundled-skills/ilya-sutskever/SKILL.md +2 -1126
  502. package/bundled-skills/ilya-sutskever/references/detailed-guide.md +1167 -0
  503. package/bundled-skills/image-generator/SKILL.md +4 -320
  504. package/bundled-skills/image-generator/references/detailed-guide.md +332 -0
  505. package/bundled-skills/implement/SKILL.md +6 -0
  506. package/bundled-skills/incident-responder/SKILL.md +6 -0
  507. package/bundled-skills/incident-response-incident-response/SKILL.md +6 -0
  508. package/bundled-skills/industrial-brutalist-ui/SKILL.md +6 -0
  509. package/bundled-skills/interactive-portfolio/SKILL.md +2 -482
  510. package/bundled-skills/interactive-portfolio/references/detailed-guide.md +500 -0
  511. package/bundled-skills/internal-comms/SKILL.md +20 -1
  512. package/bundled-skills/internal-comms/examples/3p-updates.md +5 -4
  513. package/bundled-skills/internal-comms/examples/company-newsletter.md +3 -2
  514. package/bundled-skills/internal-comms/examples/faq-answers.md +1 -0
  515. package/bundled-skills/internal-comms/examples/general-comms.md +1 -0
  516. package/bundled-skills/internal-comms-anthropic/SKILL.md +21 -2
  517. package/bundled-skills/internal-comms-anthropic/examples/3p-updates.md +5 -4
  518. package/bundled-skills/internal-comms-anthropic/examples/company-newsletter.md +3 -2
  519. package/bundled-skills/internal-comms-anthropic/examples/faq-answers.md +1 -0
  520. package/bundled-skills/internal-comms-anthropic/examples/general-comms.md +1 -0
  521. package/bundled-skills/internal-comms-community/SKILL.md +21 -2
  522. package/bundled-skills/internal-comms-community/examples/3p-updates.md +48 -0
  523. package/bundled-skills/internal-comms-community/examples/company-newsletter.md +66 -0
  524. package/bundled-skills/internal-comms-community/examples/faq-answers.md +31 -0
  525. package/bundled-skills/internal-comms-community/examples/general-comms.md +17 -0
  526. package/bundled-skills/ios-debugger-agent/SKILL.md +6 -0
  527. package/bundled-skills/issues/SKILL.md +1 -0
  528. package/bundled-skills/iterate-pr/SKILL.md +1 -0
  529. package/bundled-skills/javascript-mastery/SKILL.md +4 -625
  530. package/bundled-skills/javascript-mastery/references/detailed-guide.md +636 -0
  531. package/bundled-skills/javascript-pro/SKILL.md +6 -0
  532. package/bundled-skills/jest-skill/SKILL.md +1 -1
  533. package/bundled-skills/jira-automation/SKILL.md +6 -0
  534. package/bundled-skills/jobs-to-be-done-analyst/SKILL.md +6 -0
  535. package/bundled-skills/junit-5-skill/SKILL.md +1 -1
  536. package/bundled-skills/k6-load-testing/SKILL.md +2 -544
  537. package/bundled-skills/k6-load-testing/references/detailed-guide.md +563 -0
  538. package/bundled-skills/kaizen/SKILL.md +2 -711
  539. package/bundled-skills/kaizen/references/detailed-guide.md +720 -0
  540. package/bundled-skills/langfuse/SKILL.md +41 -468
  541. package/bundled-skills/langgraph/SKILL.md +2 -445
  542. package/bundled-skills/langgraph/references/detailed-guide.md +455 -0
  543. package/bundled-skills/laravel-expert/SKILL.md +6 -0
  544. package/bundled-skills/launch-strategy/SKILL.md +6 -0
  545. package/bundled-skills/lead-magnets/SKILL.md +6 -0
  546. package/bundled-skills/learn/SKILL.md +5 -0
  547. package/bundled-skills/legacy-modernizer/SKILL.md +6 -0
  548. package/bundled-skills/legal-advisor/SKILL.md +6 -0
  549. package/bundled-skills/leiloeiro-avaliacao/SKILL.md +2 -469
  550. package/bundled-skills/leiloeiro-avaliacao/references/detailed-guide.md +503 -0
  551. package/bundled-skills/leiloeiro-edital/SKILL.md +2 -468
  552. package/bundled-skills/leiloeiro-edital/references/detailed-guide.md +491 -0
  553. package/bundled-skills/leiloeiro-mercado/SKILL.md +2 -458
  554. package/bundled-skills/leiloeiro-mercado/references/detailed-guide.md +488 -0
  555. package/bundled-skills/leiloeiro-risco/SKILL.md +2 -457
  556. package/bundled-skills/leiloeiro-risco/references/detailed-guide.md +482 -0
  557. package/bundled-skills/lesson-generator/SKILL.md +5 -0
  558. package/bundled-skills/lightning-architecture-review/SKILL.md +6 -0
  559. package/bundled-skills/lightning-channel-factories/SKILL.md +6 -0
  560. package/bundled-skills/lightning-factory-explainer/SKILL.md +6 -0
  561. package/bundled-skills/linear-claude-skill/SKILL.md +4 -502
  562. package/bundled-skills/linear-claude-skill/references/detailed-guide.md +517 -0
  563. package/bundled-skills/linkedin-cli/SKILL.md +4 -513
  564. package/bundled-skills/linkedin-cli/references/detailed-guide.md +520 -0
  565. package/bundled-skills/lint-and-validate/SKILL.md +6 -0
  566. package/bundled-skills/linux-privilege-escalation/SKILL.md +2 -426
  567. package/bundled-skills/linux-privilege-escalation/references/detailed-guide.md +436 -0
  568. package/bundled-skills/linux-shell-scripting/SKILL.md +2 -473
  569. package/bundled-skills/linux-shell-scripting/references/detailed-guide.md +481 -0
  570. package/bundled-skills/llm-app-patterns/SKILL.md +16 -741
  571. package/bundled-skills/llm-app-patterns/references/detailed-guide.md +760 -0
  572. package/bundled-skills/llm-council/SKILL.md +4 -550
  573. package/bundled-skills/llm-council/references/detailed-guide.md +556 -0
  574. package/bundled-skills/llm-ops/SKILL.md +6 -0
  575. package/bundled-skills/local-legal-seo-audit/SKILL.md +6 -0
  576. package/bundled-skills/logic-diff/SKILL.md +1 -1
  577. package/bundled-skills/logic-explain/SKILL.md +7 -1
  578. package/bundled-skills/logic-fix-all/SKILL.md +1 -1
  579. package/bundled-skills/logic-locate/SKILL.md +1 -1
  580. package/bundled-skills/logic-review/SKILL.md +1 -1
  581. package/bundled-skills/loki-mode/SKILL.md +4 -696
  582. package/bundled-skills/loki-mode/references/detailed-guide.md +717 -0
  583. package/bundled-skills/longbridge-content/SKILL.md +1 -1
  584. package/bundled-skills/longbridge-fundamentals/SKILL.md +1 -1
  585. package/bundled-skills/longbridge-market-data/SKILL.md +1 -1
  586. package/bundled-skills/lookdev-auto/SKILL.md +6 -0
  587. package/bundled-skills/loopy/SKILL.md +1 -1
  588. package/bundled-skills/loss-aversion-designer/SKILL.md +6 -0
  589. package/bundled-skills/machine-learning-ops-ml-pipeline/SKILL.md +6 -0
  590. package/bundled-skills/magic-animator/SKILL.md +6 -0
  591. package/bundled-skills/magic-ui-generator/SKILL.md +6 -0
  592. package/bundled-skills/mailtrap-setting-up-sending-domain/SKILL.md +6 -0
  593. package/bundled-skills/makepad-animation/SKILL.md +1 -0
  594. package/bundled-skills/makepad-basics/SKILL.md +1 -0
  595. package/bundled-skills/makepad-deployment/SKILL.md +1 -0
  596. package/bundled-skills/makepad-dsl/SKILL.md +1 -0
  597. package/bundled-skills/makepad-event-action/SKILL.md +1 -0
  598. package/bundled-skills/makepad-font/SKILL.md +1 -0
  599. package/bundled-skills/makepad-layout/SKILL.md +1 -0
  600. package/bundled-skills/makepad-platform/SKILL.md +1 -0
  601. package/bundled-skills/makepad-reference/SKILL.md +1 -0
  602. package/bundled-skills/makepad-shaders/SKILL.md +1 -0
  603. package/bundled-skills/makepad-skills/SKILL.md +6 -0
  604. package/bundled-skills/makepad-splash/SKILL.md +1 -0
  605. package/bundled-skills/makepad-widgets/SKILL.md +1 -0
  606. package/bundled-skills/manage-skills/SKILL.md +1 -0
  607. package/bundled-skills/marketing-plan/SKILL.md +1 -1
  608. package/bundled-skills/matematico-tao/SKILL.md +2 -632
  609. package/bundled-skills/matematico-tao/references/detailed-guide.md +651 -0
  610. package/bundled-skills/matplotlib/SKILL.md +1 -0
  611. package/bundled-skills/maxia/SKILL.md +1 -0
  612. package/bundled-skills/mcp-builder/SKILL.md +46 -14
  613. package/bundled-skills/mcp-builder/reference/evaluation.md +69 -226
  614. package/bundled-skills/mcp-builder/reference/mcp_best_practices.md +8 -5
  615. package/bundled-skills/mcp-builder/reference/node_mcp_server.md +46 -144
  616. package/bundled-skills/mcp-builder/reference/python_mcp_server.md +42 -80
  617. package/bundled-skills/mcp-builder/scripts/connections.py +18 -11
  618. package/bundled-skills/mcp-builder/scripts/evaluation.py +88 -95
  619. package/bundled-skills/mcp-builder/scripts/example_evaluation.xml +1 -1
  620. package/bundled-skills/mcp-builder/scripts/requirements.txt +4 -2
  621. package/bundled-skills/mental-health-analyzer/SKILL.md +5 -974
  622. package/bundled-skills/mental-health-analyzer/references/detailed-guide.md +1014 -0
  623. package/bundled-skills/micro-saas-launcher/SKILL.md +2 -473
  624. package/bundled-skills/micro-saas-launcher/references/detailed-guide.md +491 -0
  625. package/bundled-skills/minecraft-bukkit-pro/SKILL.md +6 -0
  626. package/bundled-skills/minimalist-ui/SKILL.md +6 -0
  627. package/bundled-skills/moatmri/SKILL.md +6 -0
  628. package/bundled-skills/molykit/SKILL.md +1 -0
  629. package/bundled-skills/monday-automation/SKILL.md +6 -0
  630. package/bundled-skills/monopoly/SKILL.md +1 -0
  631. package/bundled-skills/monopoly/patterns/SKILL.md +1 -0
  632. package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +1 -0
  633. package/bundled-skills/monopoly/security-checklist/SKILL.md +6 -0
  634. package/bundled-skills/monopoly/tech-matrix/SKILL.md +1 -0
  635. package/bundled-skills/monorepo-architect/SKILL.md +6 -0
  636. package/bundled-skills/monte-carlo-analyze-root-cause/SKILL.md +1 -1
  637. package/bundled-skills/monte-carlo-performance-diagnosis/SKILL.md +7 -1
  638. package/bundled-skills/monte-carlo-validation-notebook/SKILL.md +4 -601
  639. package/bundled-skills/monte-carlo-validation-notebook/references/detailed-guide.md +613 -0
  640. package/bundled-skills/moodle-external-api-development/SKILL.md +4 -517
  641. package/bundled-skills/moodle-external-api-development/references/detailed-guide.md +529 -0
  642. package/bundled-skills/multi-agent-architect/SKILL.md +1 -0
  643. package/bundled-skills/multi-agent-brainstorming/SKILL.md +6 -0
  644. package/bundled-skills/multi-agent-patterns/SKILL.md +1 -0
  645. package/bundled-skills/multi-platform-apps-multi-platform/SKILL.md +6 -0
  646. package/bundled-skills/n8n-code-javascript/SKILL.md +3 -667
  647. package/bundled-skills/n8n-code-javascript/references/detailed-guide.md +683 -0
  648. package/bundled-skills/n8n-code-python/SKILL.md +3 -664
  649. package/bundled-skills/n8n-code-python/references/detailed-guide.md +682 -0
  650. package/bundled-skills/n8n-expression-syntax/SKILL.md +5 -401
  651. package/bundled-skills/n8n-expression-syntax/references/detailed-guide.md +416 -0
  652. package/bundled-skills/n8n-mcp-tools-expert/SKILL.md +5 -485
  653. package/bundled-skills/n8n-mcp-tools-expert/references/detailed-guide.md +499 -0
  654. package/bundled-skills/n8n-node-configuration/SKILL.md +5 -775
  655. package/bundled-skills/n8n-node-configuration/references/detailed-guide.md +789 -0
  656. package/bundled-skills/n8n-validation-expert/SKILL.md +5 -679
  657. package/bundled-skills/n8n-validation-expert/references/detailed-guide.md +694 -0
  658. package/bundled-skills/n8n-workflow-patterns/SKILL.md +1 -0
  659. package/bundled-skills/nanobanana-ppt-skills/SKILL.md +6 -0
  660. package/bundled-skills/native-data-fetching/SKILL.md +2 -456
  661. package/bundled-skills/native-data-fetching/references/detailed-guide.md +465 -0
  662. package/bundled-skills/neon-ai-gateway/SKILL.md +1 -1
  663. package/bundled-skills/neon-functions/SKILL.md +1 -1
  664. package/bundled-skills/neon-object-storage/SKILL.md +1 -1
  665. package/bundled-skills/neon-postgres/SKILL.md +1 -1
  666. package/bundled-skills/neon-postgres-branches/SKILL.md +1 -1
  667. package/bundled-skills/neon-postgres-egress-optimizer/SKILL.md +1 -1
  668. package/bundled-skills/nerdzao-elite/SKILL.md +6 -0
  669. package/bundled-skills/nerdzao-elite-gemini-high/SKILL.md +6 -0
  670. package/bundled-skills/nestjs-expert/SKILL.md +2 -524
  671. package/bundled-skills/nestjs-expert/references/detailed-guide.md +539 -0
  672. package/bundled-skills/networkx/SKILL.md +1 -0
  673. package/bundled-skills/new-rails-project/SKILL.md +7 -0
  674. package/bundled-skills/newman-cicd-integration/SKILL.md +1 -1
  675. package/bundled-skills/nika/SKILL.md +1 -0
  676. package/bundled-skills/nosql-expert/SKILL.md +6 -0
  677. package/bundled-skills/not-a-vibe-coder/SKILL.md +7 -0
  678. package/bundled-skills/notion-template-business/SKILL.md +2 -505
  679. package/bundled-skills/notion-template-business/references/detailed-guide.md +523 -0
  680. package/bundled-skills/nutrition-analyzer/SKILL.md +5 -766
  681. package/bundled-skills/nutrition-analyzer/references/detailed-guide.md +775 -0
  682. package/bundled-skills/objection-preemptor/SKILL.md +6 -0
  683. package/bundled-skills/observability-and-instrumentation/SKILL.md +1 -1
  684. package/bundled-skills/observability-engineer/SKILL.md +16 -8
  685. package/bundled-skills/obsidian-bases/SKILL.md +4 -366
  686. package/bundled-skills/obsidian-bases/references/detailed-guide.md +380 -0
  687. package/bundled-skills/occupational-health-analyzer/SKILL.md +1 -0
  688. package/bundled-skills/odoo-accounting-setup/SKILL.md +1 -0
  689. package/bundled-skills/odoo-automated-tests/SKILL.md +1 -0
  690. package/bundled-skills/odoo-backup-strategy/SKILL.md +1 -0
  691. package/bundled-skills/odoo-docker-deployment/SKILL.md +1 -0
  692. package/bundled-skills/odoo-ecommerce-configurator/SKILL.md +1 -0
  693. package/bundled-skills/odoo-edi-connector/SKILL.md +1 -0
  694. package/bundled-skills/odoo-hr-payroll-setup/SKILL.md +1 -0
  695. package/bundled-skills/odoo-inventory-optimizer/SKILL.md +1 -0
  696. package/bundled-skills/odoo-l10n-compliance/SKILL.md +1 -0
  697. package/bundled-skills/odoo-manufacturing-advisor/SKILL.md +1 -0
  698. package/bundled-skills/odoo-migration-helper/SKILL.md +1 -0
  699. package/bundled-skills/odoo-module-developer/SKILL.md +1 -0
  700. package/bundled-skills/odoo-orm-expert/SKILL.md +1 -0
  701. package/bundled-skills/odoo-performance-tuner/SKILL.md +1 -0
  702. package/bundled-skills/odoo-project-timesheet/SKILL.md +1 -0
  703. package/bundled-skills/odoo-purchase-workflow/SKILL.md +1 -0
  704. package/bundled-skills/odoo-qweb-templates/SKILL.md +1 -0
  705. package/bundled-skills/odoo-rpc-api/SKILL.md +1 -0
  706. package/bundled-skills/odoo-sales-crm-expert/SKILL.md +1 -0
  707. package/bundled-skills/odoo-security-rules/SKILL.md +1 -0
  708. package/bundled-skills/odoo-shopify-integration/SKILL.md +1 -0
  709. package/bundled-skills/odoo-upgrade-advisor/SKILL.md +1 -0
  710. package/bundled-skills/odoo-woocommerce-bridge/SKILL.md +1 -0
  711. package/bundled-skills/odoo-xml-views-builder/SKILL.md +1 -0
  712. package/bundled-skills/odw/SKILL.md +6 -0
  713. package/bundled-skills/offers/SKILL.md +1 -1
  714. package/bundled-skills/onboarding/SKILL.md +1 -1
  715. package/bundled-skills/onboarding-psychologist/SKILL.md +6 -0
  716. package/bundled-skills/one-drive-automation/SKILL.md +6 -0
  717. package/bundled-skills/openapi-spec-generator/SKILL.md +1 -1
  718. package/bundled-skills/oral-health-analyzer/SKILL.md +8 -515
  719. package/bundled-skills/oral-health-analyzer/references/detailed-guide.md +529 -0
  720. package/bundled-skills/outlook-automation/SKILL.md +6 -0
  721. package/bundled-skills/pagespeed-enhancer/SKILL.md +4 -520
  722. package/bundled-skills/pagespeed-enhancer/references/detailed-guide.md +533 -0
  723. package/bundled-skills/paid-ads/SKILL.md +2 -541
  724. package/bundled-skills/paid-ads/references/detailed-guide.md +558 -0
  725. package/bundled-skills/parallel-search-mcp/SKILL.md +134 -0
  726. package/bundled-skills/payment-integration/SKILL.md +6 -0
  727. package/bundled-skills/paywall-upgrade-cro/SKILL.md +2 -560
  728. package/bundled-skills/paywall-upgrade-cro/references/detailed-guide.md +579 -0
  729. package/bundled-skills/performance-testing-review-multi-agent-review/SKILL.md +42 -214
  730. package/bundled-skills/personal-tool-builder/SKILL.md +2 -688
  731. package/bundled-skills/personal-tool-builder/references/detailed-guide.md +705 -0
  732. package/bundled-skills/phase-gated-debugging/SKILL.md +6 -0
  733. package/bundled-skills/photopea-embedded-editor/SKILL.md +3 -1218
  734. package/bundled-skills/photopea-embedded-editor/references/detailed-guide.md +1252 -0
  735. package/bundled-skills/php-pro/SKILL.md +6 -0
  736. package/bundled-skills/pi-custom-model/SKILL.md +6 -0
  737. package/bundled-skills/pipedrive-automation/SKILL.md +6 -0
  738. package/bundled-skills/pitch-psychologist/SKILL.md +6 -0
  739. package/bundled-skills/plaid-fintech/SKILL.md +8 -829
  740. package/bundled-skills/plaid-fintech/references/detailed-guide.md +837 -0
  741. package/bundled-skills/plotly/SKILL.md +1 -0
  742. package/bundled-skills/polars/SKILL.md +1 -0
  743. package/bundled-skills/popup-cro/SKILL.md +6 -0
  744. package/bundled-skills/posix-shell-pro/SKILL.md +6 -0
  745. package/bundled-skills/postgresql-cli/SKILL.md +1 -1
  746. package/bundled-skills/postman-collection-generator/SKILL.md +1 -1
  747. package/bundled-skills/postman-newman-automation/SKILL.md +1 -1
  748. package/bundled-skills/postman-openapi-converter/SKILL.md +1 -1
  749. package/bundled-skills/power-user-cultivation/SKILL.md +6 -572
  750. package/bundled-skills/power-user-cultivation/references/detailed-guide.md +585 -0
  751. package/bundled-skills/pr-writer/SKILL.md +1 -0
  752. package/bundled-skills/price-psychology-strategist/SKILL.md +6 -0
  753. package/bundled-skills/pricing/SKILL.md +1 -1
  754. package/bundled-skills/privacy-mask/SKILL.md +1 -1
  755. package/bundled-skills/product-decision-agent/SKILL.md +6 -0
  756. package/bundled-skills/product-inventor/SKILL.md +2 -627
  757. package/bundled-skills/product-inventor/references/detailed-guide.md +646 -0
  758. package/bundled-skills/product-manager/SKILL.md +6 -0
  759. package/bundled-skills/product-marketing/SKILL.md +1 -1
  760. package/bundled-skills/production-code-audit/SKILL.md +2 -264
  761. package/bundled-skills/production-code-audit/references/detailed-guide.md +277 -0
  762. package/bundled-skills/professional-proofreader/SKILL.md +6 -0
  763. package/bundled-skills/programmatic-seo/SKILL.md +6 -0
  764. package/bundled-skills/project-development/SKILL.md +1 -0
  765. package/bundled-skills/project-skill-audit/SKILL.md +6 -0
  766. package/bundled-skills/public-relations/SKILL.md +1 -1
  767. package/bundled-skills/pubmed-database/SKILL.md +1 -0
  768. package/bundled-skills/push-skill-to-github/SKILL.md +6 -0
  769. package/bundled-skills/pypict-skill/SKILL.md +6 -0
  770. package/bundled-skills/pytest-skill/SKILL.md +1 -1
  771. package/bundled-skills/qiskit/SKILL.md +1 -0
  772. package/bundled-skills/quant-analyst/SKILL.md +6 -0
  773. package/bundled-skills/radix-ui-design-system/SKILL.md +2 -693
  774. package/bundled-skills/radix-ui-design-system/references/detailed-guide.md +711 -0
  775. package/bundled-skills/rag-engineer/SKILL.md +6 -0
  776. package/bundled-skills/rclone-cli/SKILL.md +1 -1
  777. package/bundled-skills/react-flow-architect/SKILL.md +2 -507
  778. package/bundled-skills/react-flow-architect/references/detailed-guide.md +517 -0
  779. package/bundled-skills/react-patterns/SKILL.md +6 -0
  780. package/bundled-skills/read-all-adrs/SKILL.md +6 -0
  781. package/bundled-skills/readme/SKILL.md +4 -822
  782. package/bundled-skills/readme/references/detailed-guide.md +829 -0
  783. package/bundled-skills/redesign-existing-projects/SKILL.md +6 -0
  784. package/bundled-skills/redis-cli/SKILL.md +1 -1
  785. package/bundled-skills/referral-program/SKILL.md +2 -508
  786. package/bundled-skills/referral-program/references/detailed-guide.md +524 -0
  787. package/bundled-skills/rehabilitation-analyzer/SKILL.md +5 -629
  788. package/bundled-skills/rehabilitation-analyzer/references/detailed-guide.md +641 -0
  789. package/bundled-skills/remotion/SKILL.md +1 -0
  790. package/bundled-skills/research-prompt/SKILL.md +6 -0
  791. package/bundled-skills/resolving-merge-conflicts/SKILL.md +6 -0
  792. package/bundled-skills/review-and-simplify-changes/SKILL.md +7 -1
  793. package/bundled-skills/review-swarm/SKILL.md +7 -1
  794. package/bundled-skills/risk-manager/SKILL.md +6 -0
  795. package/bundled-skills/robius-app-architecture/SKILL.md +1 -0
  796. package/bundled-skills/robius-event-action/SKILL.md +1 -0
  797. package/bundled-skills/robius-matrix-integration/SKILL.md +1 -0
  798. package/bundled-skills/robius-state-management/SKILL.md +1 -0
  799. package/bundled-skills/robius-widget-patterns/SKILL.md +1 -0
  800. package/bundled-skills/robot-framework-skill/SKILL.md +1 -1
  801. package/bundled-skills/ruby-pro/SKILL.md +6 -0
  802. package/bundled-skills/saga-orchestration/SKILL.md +4 -482
  803. package/bundled-skills/saga-orchestration/references/detailed-guide.md +491 -0
  804. package/bundled-skills/sales-automator/SKILL.md +6 -0
  805. package/bundled-skills/salesforce-development/SKILL.md +2 -985
  806. package/bundled-skills/salesforce-development/references/detailed-guide.md +994 -0
  807. package/bundled-skills/sam-altman/SKILL.md +5 -1040
  808. package/bundled-skills/sam-altman/references/detailed-guide.md +1102 -0
  809. package/bundled-skills/scala-pro/SKILL.md +6 -0
  810. package/bundled-skills/scanning-tools/SKILL.md +2 -546
  811. package/bundled-skills/scanning-tools/references/detailed-guide.md +555 -0
  812. package/bundled-skills/scanpy/SKILL.md +1 -0
  813. package/bundled-skills/scarcity-urgency-psychologist/SKILL.md +6 -0
  814. package/bundled-skills/scientific-writing/SKILL.md +3 -691
  815. package/bundled-skills/scientific-writing/references/detailed-guide.md +702 -0
  816. package/bundled-skills/scikit-learn/SKILL.md +3 -462
  817. package/bundled-skills/scikit-learn/references/detailed-guide.md +475 -0
  818. package/bundled-skills/scroll-experience/SKILL.md +2 -560
  819. package/bundled-skills/scroll-experience/references/detailed-guide.md +578 -0
  820. package/bundled-skills/sdk-dx/SKILL.md +6 -517
  821. package/bundled-skills/sdk-dx/references/detailed-guide.md +530 -0
  822. package/bundled-skills/seaborn/SKILL.md +5 -661
  823. package/bundled-skills/seaborn/references/detailed-guide.md +677 -0
  824. package/bundled-skills/search-specialist/SKILL.md +6 -0
  825. package/bundled-skills/security/aws-compliance-checker/SKILL.md +4 -492
  826. package/bundled-skills/security/aws-compliance-checker/references/detailed-guide.md +502 -0
  827. package/bundled-skills/security-bluebook-builder/SKILL.md +7 -0
  828. package/bundled-skills/security-scanning-security-hardening/SKILL.md +6 -0
  829. package/bundled-skills/security-scanning-security-sast/SKILL.md +2 -463
  830. package/bundled-skills/security-scanning-security-sast/references/detailed-guide.md +476 -0
  831. package/bundled-skills/segment-cdp/SKILL.md +8 -822
  832. package/bundled-skills/segment-cdp/references/detailed-guide.md +830 -0
  833. package/bundled-skills/selenium-skill/SKILL.md +1 -1
  834. package/bundled-skills/semgrep-rule-creator/SKILL.md +1 -0
  835. package/bundled-skills/semgrep-rule-variant-creator/SKILL.md +1 -0
  836. package/bundled-skills/sendgrid-automation/SKILL.md +6 -0
  837. package/bundled-skills/seo-audit/SKILL.md +33 -44
  838. package/bundled-skills/seo-content/SKILL.md +6 -0
  839. package/bundled-skills/seo-content-auditor/SKILL.md +6 -0
  840. package/bundled-skills/seo-content-writer/SKILL.md +6 -0
  841. package/bundled-skills/seo-forensic-incident-response/SKILL.md +6 -0
  842. package/bundled-skills/seo-fundamentals/SKILL.md +6 -0
  843. package/bundled-skills/seo-programmatic/SKILL.md +6 -0
  844. package/bundled-skills/sequence-psychologist/SKILL.md +6 -0
  845. package/bundled-skills/server-management/SKILL.md +6 -0
  846. package/bundled-skills/service-mesh-expert/SKILL.md +6 -0
  847. package/bundled-skills/setup-help/SKILL.md +6 -0
  848. package/bundled-skills/sexual-health-analyzer/SKILL.md +8 -1109
  849. package/bundled-skills/sexual-health-analyzer/references/detailed-guide.md +1123 -0
  850. package/bundled-skills/sharp-coder/SKILL.md +1 -0
  851. package/bundled-skills/sharp-edges/SKILL.md +1 -0
  852. package/bundled-skills/shodan-reconnaissance/SKILL.md +2 -356
  853. package/bundled-skills/shodan-reconnaissance/references/detailed-guide.md +366 -0
  854. package/bundled-skills/shopify-apps/SKILL.md +2 -1477
  855. package/bundled-skills/shopify-apps/references/detailed-guide.md +1512 -0
  856. package/bundled-skills/short/SKILL.md +6 -0
  857. package/bundled-skills/signup-flow-cro/SKILL.md +6 -0
  858. package/bundled-skills/simplify-code/SKILL.md +6 -0
  859. package/bundled-skills/skill-creator/SKILL.md +2 -568
  860. package/bundled-skills/skill-creator/references/detailed-guide.md +581 -0
  861. package/bundled-skills/skill-creator-ms/SKILL.md +2 -601
  862. package/bundled-skills/skill-creator-ms/references/detailed-guide.md +614 -0
  863. package/bundled-skills/skill-improver/SKILL.md +1 -0
  864. package/bundled-skills/skill-router/SKILL.md +1 -0
  865. package/bundled-skills/skill-scanner/SKILL.md +1 -0
  866. package/bundled-skills/skill-security-audit/SKILL.md +87 -0
  867. package/bundled-skills/skill-seekers/SKILL.md +6 -0
  868. package/bundled-skills/skill-writer/SKILL.md +1 -0
  869. package/bundled-skills/skin-health-analyzer/SKILL.md +8 -696
  870. package/bundled-skills/skin-health-analyzer/references/detailed-guide.md +710 -0
  871. package/bundled-skills/slack-automation/SKILL.md +6 -0
  872. package/bundled-skills/slack-bot-builder/SKILL.md +2 -1372
  873. package/bundled-skills/slack-bot-builder/references/detailed-guide.md +1395 -0
  874. package/bundled-skills/sleep-analyzer/SKILL.md +5 -764
  875. package/bundled-skills/sleep-analyzer/references/detailed-guide.md +773 -0
  876. package/bundled-skills/smartui-skill/SKILL.md +1 -1
  877. package/bundled-skills/smtp-penetration-testing/SKILL.md +2 -346
  878. package/bundled-skills/smtp-penetration-testing/references/detailed-guide.md +355 -0
  879. package/bundled-skills/social-content/SKILL.md +2 -797
  880. package/bundled-skills/social-content/references/detailed-guide.md +816 -0
  881. package/bundled-skills/social-proof-architect/SKILL.md +6 -0
  882. package/bundled-skills/software-architecture/SKILL.md +6 -0
  883. package/bundled-skills/spec-to-code-compliance/SKILL.md +7 -0
  884. package/bundled-skills/speckit-updater/SKILL.md +1 -0
  885. package/bundled-skills/speed/SKILL.md +7 -0
  886. package/bundled-skills/sred-project-organizer/SKILL.md +1 -0
  887. package/bundled-skills/sred-work-summary/SKILL.md +1 -0
  888. package/bundled-skills/statsmodels/SKILL.md +3 -586
  889. package/bundled-skills/statsmodels/references/detailed-guide.md +600 -0
  890. package/bundled-skills/steve-jobs/SKILL.md +2 -564
  891. package/bundled-skills/steve-jobs/references/detailed-guide.md +574 -0
  892. package/bundled-skills/stitch-loop/SKILL.md +1 -0
  893. package/bundled-skills/stripe-automation/SKILL.md +6 -0
  894. package/bundled-skills/stripe-integration/SKILL.md +60 -79
  895. package/bundled-skills/styleseed-design-review/SKILL.md +1 -1
  896. package/bundled-skills/subagent-orchestrator/SKILL.md +1 -0
  897. package/bundled-skills/subject-line-psychologist/SKILL.md +6 -0
  898. package/bundled-skills/supabase/SKILL.md +1 -1
  899. package/bundled-skills/supabase-automation/SKILL.md +6 -0
  900. package/bundled-skills/superpowers-lab/SKILL.md +6 -0
  901. package/bundled-skills/supply-chain-risk-auditor/SKILL.md +7 -0
  902. package/bundled-skills/swiftui-expert-skill/SKILL.md +1 -1
  903. package/bundled-skills/sympy/SKILL.md +3 -426
  904. package/bundled-skills/sympy/references/detailed-guide.md +439 -0
  905. package/bundled-skills/systematic-debugging/CREATION-LOG.md +3 -0
  906. package/bundled-skills/systematic-debugging/SKILL.md +30 -34
  907. package/bundled-skills/systematic-debugging/condition-based-waiting.md +9 -6
  908. package/bundled-skills/systematic-debugging/defense-in-depth.md +13 -7
  909. package/bundled-skills/systematic-debugging/find-polluter.sh +77 -57
  910. package/bundled-skills/systematic-debugging/root-cause-tracing.md +7 -5
  911. package/bundled-skills/systematic-debugging/test-academic.md +3 -0
  912. package/bundled-skills/systematic-debugging/test-pressure-1.md +3 -0
  913. package/bundled-skills/systematic-debugging/test-pressure-2.md +3 -0
  914. package/bundled-skills/systematic-debugging/test-pressure-3.md +3 -0
  915. package/bundled-skills/tcm-constitution-analyzer/SKILL.md +5 -655
  916. package/bundled-skills/tcm-constitution-analyzer/references/detailed-guide.md +660 -0
  917. package/bundled-skills/tdd-workflows-tdd-cycle/SKILL.md +6 -0
  918. package/bundled-skills/technical-tutorials/SKILL.md +5 -483
  919. package/bundled-skills/technical-tutorials/references/detailed-guide.md +496 -0
  920. package/bundled-skills/telegram/SKILL.md +2 -541
  921. package/bundled-skills/telegram/references/detailed-guide.md +569 -0
  922. package/bundled-skills/telegram-mini-app/SKILL.md +2 -643
  923. package/bundled-skills/telegram-mini-app/references/detailed-guide.md +661 -0
  924. package/bundled-skills/temporal-python-pro/SKILL.md +6 -0
  925. package/bundled-skills/terraform-skill/SKILL.md +4 -417
  926. package/bundled-skills/terraform-skill/references/detailed-guide.md +430 -0
  927. package/bundled-skills/test-driven-development/SKILL.md +21 -124
  928. package/bundled-skills/test-driven-development/testing-anti-patterns.md +6 -6
  929. package/bundled-skills/test-framework-migration-skill/SKILL.md +7 -1
  930. package/bundled-skills/threat-modeling-expert/SKILL.md +6 -0
  931. package/bundled-skills/threejs-animation/SKILL.md +5 -551
  932. package/bundled-skills/threejs-animation/references/detailed-guide.md +566 -0
  933. package/bundled-skills/threejs-fundamentals/SKILL.md +5 -525
  934. package/bundled-skills/threejs-fundamentals/references/detailed-guide.md +535 -0
  935. package/bundled-skills/threejs-geometry/SKILL.md +5 -572
  936. package/bundled-skills/threejs-geometry/references/detailed-guide.md +587 -0
  937. package/bundled-skills/threejs-interaction/SKILL.md +5 -666
  938. package/bundled-skills/threejs-interaction/references/detailed-guide.md +679 -0
  939. package/bundled-skills/threejs-lighting/SKILL.md +1 -0
  940. package/bundled-skills/threejs-loaders/SKILL.md +5 -637
  941. package/bundled-skills/threejs-loaders/references/detailed-guide.md +651 -0
  942. package/bundled-skills/threejs-materials/SKILL.md +3 -535
  943. package/bundled-skills/threejs-materials/references/detailed-guide.md +560 -0
  944. package/bundled-skills/threejs-postprocessing/SKILL.md +5 -617
  945. package/bundled-skills/threejs-postprocessing/references/detailed-guide.md +630 -0
  946. package/bundled-skills/threejs-shaders/SKILL.md +5 -679
  947. package/bundled-skills/threejs-shaders/references/detailed-guide.md +695 -0
  948. package/bundled-skills/threejs-skills/SKILL.md +4 -683
  949. package/bundled-skills/threejs-skills/references/detailed-guide.md +693 -0
  950. package/bundled-skills/threejs-textures/SKILL.md +5 -630
  951. package/bundled-skills/threejs-textures/references/detailed-guide.md +649 -0
  952. package/bundled-skills/to-issues/SKILL.md +5 -0
  953. package/bundled-skills/to-prd/SKILL.md +5 -0
  954. package/bundled-skills/todoist-automation/SKILL.md +6 -0
  955. package/bundled-skills/tools-page-seo-optimizer/SKILL.md +2 -580
  956. package/bundled-skills/tools-page-seo-optimizer/references/detailed-guide.md +602 -0
  957. package/bundled-skills/top-web-vulnerabilities/SKILL.md +2 -513
  958. package/bundled-skills/top-web-vulnerabilities/references/detailed-guide.md +523 -0
  959. package/bundled-skills/train-sentence-transformers/SKILL.md +1 -1
  960. package/bundled-skills/transformers-js/SKILL.md +5 -669
  961. package/bundled-skills/transformers-js/references/detailed-guide.md +683 -0
  962. package/bundled-skills/travel-health-analyzer/SKILL.md +1 -0
  963. package/bundled-skills/trello-automation/SKILL.md +6 -0
  964. package/bundled-skills/trigger-dev/SKILL.md +2 -937
  965. package/bundled-skills/trigger-dev/references/detailed-guide.md +950 -0
  966. package/bundled-skills/trust-calibrator/SKILL.md +6 -0
  967. package/bundled-skills/tutorial-engineer/SKILL.md +6 -0
  968. package/bundled-skills/twilio-communications/SKILL.md +2 -1549
  969. package/bundled-skills/twilio-communications/references/detailed-guide.md +1574 -0
  970. package/bundled-skills/typescript-pro/SKILL.md +6 -0
  971. package/bundled-skills/ui-a11y/SKILL.md +6 -0
  972. package/bundled-skills/ui-component/SKILL.md +6 -0
  973. package/bundled-skills/ui-motion/SKILL.md +7 -1
  974. package/bundled-skills/ui-pattern/SKILL.md +6 -0
  975. package/bundled-skills/ui-review/SKILL.md +6 -0
  976. package/bundled-skills/ui-skills/SKILL.md +6 -0
  977. package/bundled-skills/ui-tokens/SKILL.md +6 -0
  978. package/bundled-skills/uniprot-database/SKILL.md +1 -0
  979. package/bundled-skills/unslop-commit/SKILL.md +1 -1
  980. package/bundled-skills/unslop-file/SKILL.md +1 -1
  981. package/bundled-skills/unslop-review/SKILL.md +1 -1
  982. package/bundled-skills/unsplash-integration/SKILL.md +6 -0
  983. package/bundled-skills/update-swiftui-apis/SKILL.md +1 -1
  984. package/bundled-skills/upstash-qstash/SKILL.md +2 -919
  985. package/bundled-skills/upstash-qstash/references/detailed-guide.md +932 -0
  986. package/bundled-skills/usage-based-pricing/SKILL.md +5 -395
  987. package/bundled-skills/usage-based-pricing/references/detailed-guide.md +407 -0
  988. package/bundled-skills/ux-audit/SKILL.md +6 -0
  989. package/bundled-skills/ux-flow/SKILL.md +6 -0
  990. package/bundled-skills/ux-persuasion-engineer/SKILL.md +6 -0
  991. package/bundled-skills/variant-analysis/SKILL.md +1 -0
  992. package/bundled-skills/varlock/SKILL.md +1 -0
  993. package/bundled-skills/varlock-claude-skill/SKILL.md +6 -0
  994. package/bundled-skills/vector-database-engineer/SKILL.md +6 -0
  995. package/bundled-skills/vercel-deployment/SKILL.md +2 -650
  996. package/bundled-skills/vercel-deployment/references/detailed-guide.md +660 -0
  997. package/bundled-skills/vexor/SKILL.md +6 -0
  998. package/bundled-skills/vexor-cli/SKILL.md +1 -0
  999. package/bundled-skills/visual-emotion-engineer/SKILL.md +6 -0
  1000. package/bundled-skills/vizcom/SKILL.md +6 -0
  1001. package/bundled-skills/voice-agents/SKILL.md +2 -867
  1002. package/bundled-skills/voice-agents/references/detailed-guide.md +890 -0
  1003. package/bundled-skills/voice-ai-development/SKILL.md +2 -583
  1004. package/bundled-skills/voice-ai-development/references/detailed-guide.md +594 -0
  1005. package/bundled-skills/voice-ai-engine-development/SKILL.md +2 -702
  1006. package/bundled-skills/voice-ai-engine-development/references/detailed-guide.md +720 -0
  1007. package/bundled-skills/warren-buffett/SKILL.md +2 -577
  1008. package/bundled-skills/warren-buffett/references/detailed-guide.md +583 -0
  1009. package/bundled-skills/web-performance-optimization/SKILL.md +2 -214
  1010. package/bundled-skills/web-performance-optimization/references/detailed-guide.md +226 -0
  1011. package/bundled-skills/web-scraper/SKILL.md +2 -728
  1012. package/bundled-skills/web-scraper/references/detailed-guide.md +792 -0
  1013. package/bundled-skills/webflow-automation/SKILL.md +6 -0
  1014. package/bundled-skills/weightloss-analyzer/SKILL.md +1 -0
  1015. package/bundled-skills/wellally-tech/SKILL.md +5 -367
  1016. package/bundled-skills/wellally-tech/references/detailed-guide.md +379 -0
  1017. package/bundled-skills/wiki-architect/SKILL.md +6 -0
  1018. package/bundled-skills/wiki-changelog/SKILL.md +6 -0
  1019. package/bundled-skills/wiki-onboarding/SKILL.md +6 -0
  1020. package/bundled-skills/wiki-qa/SKILL.md +6 -0
  1021. package/bundled-skills/wiki-researcher/SKILL.md +6 -0
  1022. package/bundled-skills/windows-privilege-escalation/SKILL.md +131 -0
  1023. package/bundled-skills/windows-privilege-escalation/references/detailed-guide.md +397 -0
  1024. package/bundled-skills/wireshark-analysis/SKILL.md +2 -419
  1025. package/bundled-skills/wireshark-analysis/references/detailed-guide.md +429 -0
  1026. package/bundled-skills/wjttc-builder/SKILL.md +1 -1
  1027. package/bundled-skills/wjttc-tester/SKILL.md +1 -1
  1028. package/bundled-skills/wordpress/SKILL.md +2 -572
  1029. package/bundled-skills/wordpress/references/detailed-guide.md +582 -0
  1030. package/bundled-skills/wordpress-penetration-testing/SKILL.md +68 -0
  1031. package/bundled-skills/wordpress-penetration-testing/references/detailed-guide.md +555 -0
  1032. package/bundled-skills/wordpress-plugin-development/SKILL.md +2 -474
  1033. package/bundled-skills/wordpress-plugin-development/references/detailed-guide.md +485 -0
  1034. package/bundled-skills/wordpress-theme-development/SKILL.md +2 -479
  1035. package/bundled-skills/wordpress-theme-development/references/detailed-guide.md +490 -0
  1036. package/bundled-skills/wordpress-woocommerce-development/SKILL.md +2 -605
  1037. package/bundled-skills/wordpress-woocommerce-development/references/detailed-guide.md +615 -0
  1038. package/bundled-skills/workflow-automation/SKILL.md +2 -875
  1039. package/bundled-skills/workflow-automation/references/detailed-guide.md +902 -0
  1040. package/bundled-skills/writing-great-skills/SKILL.md +5 -0
  1041. package/bundled-skills/x-article-publisher-skill/SKILL.md +6 -0
  1042. package/bundled-skills/x402-express-wrapper/SKILL.md +1 -0
  1043. package/bundled-skills/xss-html-injection/SKILL.md +2 -389
  1044. package/bundled-skills/xss-html-injection/references/detailed-guide.md +399 -0
  1045. package/bundled-skills/yann-lecun/SKILL.md +2 -1431
  1046. package/bundled-skills/yann-lecun/references/detailed-guide.md +1484 -0
  1047. package/bundled-skills/yann-lecun-filosofia/SKILL.md +6 -0
  1048. package/bundled-skills/yann-lecun-tecnico/SKILL.md +2 -485
  1049. package/bundled-skills/yann-lecun-tecnico/references/detailed-guide.md +502 -0
  1050. package/bundled-skills/youtube-seo-optimizer/SKILL.md +4 -884
  1051. package/bundled-skills/youtube-seo-optimizer/references/detailed-guide.md +907 -0
  1052. package/bundled-skills/zapier-make-patterns/SKILL.md +2 -728
  1053. package/bundled-skills/zapier-make-patterns/references/detailed-guide.md +752 -0
  1054. package/bundled-skills/zipai-optimizer/SKILL.md +7 -0
  1055. package/bundled-skills/zoom-automation/SKILL.md +6 -0
  1056. package/package.json +1 -1
  1057. package/skills_index.json +541 -383
  1058. package/bundled-skills/docs/AUDIT.md +0 -3
  1059. package/bundled-skills/docs/BUNDLES.md +0 -3
  1060. package/bundled-skills/docs/CATEGORIZATION_IMPLEMENTATION.md +0 -3
  1061. package/bundled-skills/docs/CI_DRIFT_FIX.md +0 -3
  1062. package/bundled-skills/docs/COMMUNITY_GUIDELINES.md +0 -3
  1063. package/bundled-skills/docs/DATE_TRACKING_IMPLEMENTATION.md +0 -3
  1064. package/bundled-skills/docs/EXAMPLES.md +0 -3
  1065. package/bundled-skills/docs/FAQ.md +0 -3
  1066. package/bundled-skills/docs/GETTING_STARTED.md +0 -3
  1067. package/bundled-skills/docs/KIRO_INTEGRATION.md +0 -3
  1068. package/bundled-skills/docs/QUALITY_BAR.md +0 -3
  1069. package/bundled-skills/docs/README.md +0 -51
  1070. package/bundled-skills/docs/SECURITY_GUARDRAILS.md +0 -3
  1071. package/bundled-skills/docs/SEC_SKILLS.md +0 -3
  1072. package/bundled-skills/docs/SKILLS_DATE_TRACKING.md +0 -3
  1073. package/bundled-skills/docs/SKILL_ANATOMY.md +0 -3
  1074. package/bundled-skills/docs/SKILL_TEMPLATE.md +0 -3
  1075. package/bundled-skills/docs/SMART_AUTO_CATEGORIZATION.md +0 -3
  1076. package/bundled-skills/docs/SOURCES.md +0 -3
  1077. package/bundled-skills/docs/USAGE.md +0 -3
  1078. package/bundled-skills/docs/VISUAL_GUIDE.md +0 -3
  1079. package/bundled-skills/docs/WORKFLOWS.md +0 -3
  1080. package/bundled-skills/docs/contributors/community-guidelines.md +0 -4
  1081. package/bundled-skills/docs/contributors/examples.md +0 -760
  1082. package/bundled-skills/docs/contributors/quality-bar.md +0 -104
  1083. package/bundled-skills/docs/contributors/security-guardrails.md +0 -70
  1084. package/bundled-skills/docs/contributors/skill-anatomy.md +0 -637
  1085. package/bundled-skills/docs/contributors/skill-template.md +0 -93
  1086. package/bundled-skills/docs/integrations/jetski-cortex.md +0 -282
  1087. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +0 -103
  1088. package/bundled-skills/docs/integrations/jetski-gemini-loader/loader.mjs +0 -154
  1089. package/bundled-skills/docs/integrations/jetski-gemini-loader/package.json +0 -1
  1090. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-preview-profile.md +0 -63
  1091. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-design.md +0 -304
  1092. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-goal.md +0 -171
  1093. package/bundled-skills/docs/maintainers/aas-agent-first-control-plane-v1-worklog.md +0 -104
  1094. package/bundled-skills/docs/maintainers/audit.md +0 -89
  1095. package/bundled-skills/docs/maintainers/backups/README-2026-06-02.md +0 -687
  1096. package/bundled-skills/docs/maintainers/categorization-implementation.md +0 -160
  1097. package/bundled-skills/docs/maintainers/ci-drift-fix.md +0 -64
  1098. package/bundled-skills/docs/maintainers/date-tracking-implementation.md +0 -66
  1099. package/bundled-skills/docs/maintainers/full-repo-audit-2026-05-23.md +0 -289
  1100. package/bundled-skills/docs/maintainers/legacy-redirect-bridge.md +0 -46
  1101. package/bundled-skills/docs/maintainers/merge-batch.md +0 -81
  1102. package/bundled-skills/docs/maintainers/merging-prs.md +0 -79
  1103. package/bundled-skills/docs/maintainers/pr-autonomy.md +0 -102
  1104. package/bundled-skills/docs/maintainers/provenance-identity-exceptions.json +0 -14
  1105. package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +0 -32
  1106. package/bundled-skills/docs/maintainers/release-process.md +0 -124
  1107. package/bundled-skills/docs/maintainers/repo-growth-seo.md +0 -133
  1108. package/bundled-skills/docs/maintainers/rollback-procedure.md +0 -43
  1109. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-15.csv +0 -34
  1110. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-15.md +0 -60
  1111. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-18-addendum.md +0 -22
  1112. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-addendum.md +0 -48
  1113. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-refresh.csv +0 -34
  1114. package/bundled-skills/docs/maintainers/security-findings-triage-2026-03-29-refresh.md +0 -86
  1115. package/bundled-skills/docs/maintainers/skills-date-tracking.md +0 -228
  1116. package/bundled-skills/docs/maintainers/skills-import-2026-03-21.md +0 -81
  1117. package/bundled-skills/docs/maintainers/skills-update-guide.md +0 -92
  1118. package/bundled-skills/docs/maintainers/smart-auto-categorization.md +0 -218
  1119. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/README.md +0 -19
  1120. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/evaluation-cases.json +0 -74
  1121. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/evaluation-results.json +0 -86
  1122. package/bundled-skills/docs/plugin-submissions/aas-agent-mcp-builder/submission.json +0 -41
  1123. package/bundled-skills/docs/sources/LICENSE-MICROSOFT +0 -21
  1124. package/bundled-skills/docs/sources/microsoft-skills-attribution.json +0 -709
  1125. package/bundled-skills/docs/sources/sources.md +0 -179
  1126. package/bundled-skills/docs/users/aas-core.md +0 -225
  1127. package/bundled-skills/docs/users/agent-overload-recovery.md +0 -54
  1128. package/bundled-skills/docs/users/agentic-awesome-skills-vs-awesome-claude-skills.md +0 -44
  1129. package/bundled-skills/docs/users/ai-agent-skills.md +0 -48
  1130. package/bundled-skills/docs/users/best-claude-code-skills-github.md +0 -62
  1131. package/bundled-skills/docs/users/best-cursor-skills-github.md +0 -62
  1132. package/bundled-skills/docs/users/bundles.md +0 -1067
  1133. package/bundled-skills/docs/users/claude-code-skills.md +0 -89
  1134. package/bundled-skills/docs/users/codex-cli-skills.md +0 -88
  1135. package/bundled-skills/docs/users/cursor-skills.md +0 -56
  1136. package/bundled-skills/docs/users/discovery-manifest.md +0 -65
  1137. package/bundled-skills/docs/users/faq.md +0 -521
  1138. package/bundled-skills/docs/users/gemini-cli-skills.md +0 -56
  1139. package/bundled-skills/docs/users/getting-started.md +0 -233
  1140. package/bundled-skills/docs/users/kiro-integration.md +0 -304
  1141. package/bundled-skills/docs/users/local-config.md +0 -152
  1142. package/bundled-skills/docs/users/plugins.md +0 -201
  1143. package/bundled-skills/docs/users/security-and-antivirus.md +0 -63
  1144. package/bundled-skills/docs/users/security-skills.md +0 -1722
  1145. package/bundled-skills/docs/users/skills-library-overview.md +0 -87
  1146. package/bundled-skills/docs/users/skills-vs-mcp-tools.md +0 -108
  1147. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +0 -101
  1148. package/bundled-skills/docs/users/usage.md +0 -465
  1149. package/bundled-skills/docs/users/visual-guide.md +0 -515
  1150. package/bundled-skills/docs/users/walkthrough.md +0 -46
  1151. package/bundled-skills/docs/users/windows-truncation-recovery.md +0 -135
  1152. package/bundled-skills/docs/users/workflows.md +0 -215
  1153. package/bundled-skills/docs/vietnamese/AAS_CORE.vi.md +0 -28
  1154. package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +0 -124
  1155. package/bundled-skills/docs/vietnamese/CONTRIBUTING.vi.md +0 -242
  1156. package/bundled-skills/docs/vietnamese/EXAMPLES.vi.md +0 -56
  1157. package/bundled-skills/docs/vietnamese/FAQ.vi.md +0 -195
  1158. package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +0 -123
  1159. package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +0 -69
  1160. package/bundled-skills/docs/vietnamese/README.vi.md +0 -191
  1161. package/bundled-skills/docs/vietnamese/SECURITY.vi.md +0 -19
  1162. package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +0 -51
  1163. package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +0 -106
  1164. package/bundled-skills/docs/vietnamese/SKILL_ANATOMY.vi.md +0 -633
  1165. package/bundled-skills/docs/vietnamese/SOURCES.vi.md +0 -21
  1166. package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +0 -65
  1167. package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +0 -511
  1168. package/bundled-skills/docs/walkthrough.md +0 -3
@@ -0,0 +1,1190 @@
1
+ # Practical Data Transformations - Detailed Guide
2
+
3
+ > This file contains the detailed procedure and reference material extracted from `SKILL.md` for focused loading. The root skill defines activation, examples, safety constraints, and limitations.
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Array Operations](#1-array-operations)
8
+ 2. [Object Transformations](#2-object-transformations)
9
+ 3. [Data Normalization](#3-data-normalization)
10
+ 4. [Grouping and Aggregation](#4-grouping-and-aggregation)
11
+ 5. [Null-Safe Access](#5-null-safe-access)
12
+ 6. [Real-World Examples](../SKILL.md#6-real-world-examples)
13
+ 7. [When to Use What](../SKILL.md#7-when-to-use-what)
14
+
15
+ ---
16
+
17
+
18
+ ## 1. Array Operations
19
+
20
+ Array operations are the bread and butter of data transformation. Let's replace verbose loops with expressive, chainable operations.
21
+
22
+ ### Map: Transform Every Element
23
+
24
+ **The Task**: Convert an array of prices from cents to dollars.
25
+
26
+ #### Imperative Approach
27
+
28
+ ```typescript
29
+ const pricesInCents = [999, 1499, 2999, 4999];
30
+
31
+ function convertToDollars(prices: number[]): number[] {
32
+ const result: number[] = [];
33
+ for (let i = 0; i < prices.length; i++) {
34
+ result.push(prices[i] / 100);
35
+ }
36
+ return result;
37
+ }
38
+
39
+ const dollars = convertToDollars(pricesInCents);
40
+ // [9.99, 14.99, 29.99, 49.99]
41
+ ```
42
+
43
+ #### Functional Approach
44
+
45
+ ```typescript
46
+ const pricesInCents = [999, 1499, 2999, 4999];
47
+
48
+ const toDollars = (cents: number): number => cents / 100;
49
+
50
+ const dollars = pricesInCents.map(toDollars);
51
+ // [9.99, 14.99, 29.99, 49.99]
52
+ ```
53
+
54
+ **Why functional is better here**: The intent is immediately clear. `map` says "transform each element." The transformation logic (`toDollars`) is named and reusable. No index management, no manual array building.
55
+
56
+ ### Filter: Keep What Matches
57
+
58
+ **The Task**: Get all active users from a list.
59
+
60
+ #### Imperative Approach
61
+
62
+ ```typescript
63
+ interface User {
64
+ id: string;
65
+ name: string;
66
+ isActive: boolean;
67
+ }
68
+
69
+ function getActiveUsers(users: User[]): User[] {
70
+ const result: User[] = [];
71
+ for (const user of users) {
72
+ if (user.isActive) {
73
+ result.push(user);
74
+ }
75
+ }
76
+ return result;
77
+ }
78
+ ```
79
+
80
+ #### Functional Approach
81
+
82
+ ```typescript
83
+ const isActive = (user: User): boolean => user.isActive;
84
+
85
+ const activeUsers = users.filter(isActive);
86
+
87
+ // Or inline for simple predicates
88
+ const activeUsers = users.filter(user => user.isActive);
89
+ ```
90
+
91
+ **Why functional is better here**: The predicate (`isActive`) is separated from the iteration logic. You can reuse, test, and compose predicates independently.
92
+
93
+ ### Reduce: Accumulate Into Something New
94
+
95
+ **The Task**: Calculate the total price of items in a cart.
96
+
97
+ #### Imperative Approach
98
+
99
+ ```typescript
100
+ interface CartItem {
101
+ name: string;
102
+ price: number;
103
+ quantity: number;
104
+ }
105
+
106
+ function calculateTotal(items: CartItem[]): number {
107
+ let total = 0;
108
+ for (const item of items) {
109
+ total += item.price * item.quantity;
110
+ }
111
+ return total;
112
+ }
113
+ ```
114
+
115
+ #### Functional Approach
116
+
117
+ ```typescript
118
+ const calculateTotal = (items: CartItem[]): number =>
119
+ items.reduce(
120
+ (total, item) => total + item.price * item.quantity,
121
+ 0
122
+ );
123
+
124
+ // Or break out the line total calculation
125
+ const lineTotal = (item: CartItem): number => item.price * item.quantity;
126
+
127
+ const calculateTotal = (items: CartItem[]): number =>
128
+ items.map(lineTotal).reduce((a, b) => a + b, 0);
129
+ ```
130
+
131
+ **Honest assessment**: For simple sums, the imperative loop is actually quite readable. The functional version shines when you need to compose the accumulation with other transformations, or when the reduction logic is complex enough to benefit from being named.
132
+
133
+ ### Chaining: Combine Operations
134
+
135
+ **The Task**: Get the names of all active premium users, sorted alphabetically.
136
+
137
+ #### Imperative Approach
138
+
139
+ ```typescript
140
+ interface User {
141
+ id: string;
142
+ name: string;
143
+ isActive: boolean;
144
+ tier: 'free' | 'premium';
145
+ }
146
+
147
+ function getActivePremiumNames(users: User[]): string[] {
148
+ const result: string[] = [];
149
+ for (const user of users) {
150
+ if (user.isActive && user.tier === 'premium') {
151
+ result.push(user.name);
152
+ }
153
+ }
154
+ result.sort((a, b) => a.localeCompare(b));
155
+ return result;
156
+ }
157
+ ```
158
+
159
+ #### Functional Approach
160
+
161
+ ```typescript
162
+ const getActivePremiumNames = (users: User[]): string[] =>
163
+ users
164
+ .filter(user => user.isActive)
165
+ .filter(user => user.tier === 'premium')
166
+ .map(user => user.name)
167
+ .sort((a, b) => a.localeCompare(b));
168
+
169
+ // Or with named predicates for reuse
170
+ const isActive = (user: User): boolean => user.isActive;
171
+ const isPremium = (user: User): boolean => user.tier === 'premium';
172
+ const getName = (user: User): string => user.name;
173
+ const alphabetically = (a: string, b: string): number => a.localeCompare(b);
174
+
175
+ const getActivePremiumNames = (users: User[]): string[] =>
176
+ users
177
+ .filter(isActive)
178
+ .filter(isPremium)
179
+ .map(getName)
180
+ .sort(alphabetically);
181
+ ```
182
+
183
+ **Why functional is better here**: Each step in the chain has a single responsibility. You can read the transformation as a series of steps: "filter active, filter premium, get names, sort." Adding or removing a step is trivial.
184
+
185
+ ### Using fp-ts Array Module
186
+
187
+ fp-ts provides additional array utilities with better composition support:
188
+
189
+ ```typescript
190
+ import * as A from 'fp-ts/Array';
191
+ import * as O from 'fp-ts/Option';
192
+ import { pipe } from 'fp-ts/function';
193
+
194
+ // Safe head (first element)
195
+ const first = pipe(
196
+ [1, 2, 3],
197
+ A.head
198
+ ); // Some(1)
199
+
200
+ const firstOfEmpty = pipe(
201
+ [] as number[],
202
+ A.head
203
+ ); // None
204
+
205
+ // Safe lookup by index
206
+ const third = pipe(
207
+ ['a', 'b', 'c', 'd'],
208
+ A.lookup(2)
209
+ ); // Some('c')
210
+
211
+ // Find with predicate
212
+ const found = pipe(
213
+ users,
214
+ A.findFirst(user => user.id === 'abc123')
215
+ ); // Option<User>
216
+
217
+ // Partition into two groups
218
+ const [inactive, active] = pipe(
219
+ users,
220
+ A.partition(user => user.isActive)
221
+ );
222
+
223
+ // Take first N elements
224
+ const topThree = pipe(
225
+ sortedScores,
226
+ A.takeLeft(3)
227
+ );
228
+
229
+ // Unique values
230
+ const uniqueTags = pipe(
231
+ allTags,
232
+ A.uniq({ equals: (a, b) => a === b })
233
+ );
234
+ ```
235
+
236
+ ---
237
+
238
+
239
+ ## 2. Object Transformations
240
+
241
+ Objects need reshaping constantly: picking fields, omitting sensitive data, merging settings, and updating nested values.
242
+
243
+ ### Pick: Select Specific Fields
244
+
245
+ **The Task**: Extract only the public fields from a user object.
246
+
247
+ #### Imperative Approach
248
+
249
+ ```typescript
250
+ interface User {
251
+ id: string;
252
+ name: string;
253
+ email: string;
254
+ passwordHash: string;
255
+ internalNotes: string;
256
+ }
257
+
258
+ function getPublicUser(user: User): { id: string; name: string; email: string } {
259
+ return {
260
+ id: user.id,
261
+ name: user.name,
262
+ email: user.email,
263
+ };
264
+ }
265
+ ```
266
+
267
+ #### Functional Approach
268
+
269
+ ```typescript
270
+ // Generic pick utility
271
+ const pick = <T extends object, K extends keyof T>(
272
+ keys: K[]
273
+ ) => (obj: T): Pick<T, K> =>
274
+ keys.reduce(
275
+ (result, key) => {
276
+ result[key] = obj[key];
277
+ return result;
278
+ },
279
+ {} as Pick<T, K>
280
+ );
281
+
282
+ const getPublicUser = pick<User, 'id' | 'name' | 'email'>(['id', 'name', 'email']);
283
+
284
+ const publicUser = getPublicUser(user);
285
+ ```
286
+
287
+ **Why functional is better here**: The `pick` utility is reusable across your codebase. Type safety ensures you can only pick keys that exist.
288
+
289
+ ### Omit: Remove Specific Fields
290
+
291
+ **The Task**: Remove sensitive fields before logging.
292
+
293
+ #### Imperative Approach
294
+
295
+ ```typescript
296
+ function sanitizeForLogging(user: User): Omit<User, 'passwordHash' | 'internalNotes'> {
297
+ const { passwordHash, internalNotes, ...safe } = user;
298
+ return safe;
299
+ }
300
+ ```
301
+
302
+ #### Functional Approach
303
+
304
+ ```typescript
305
+ // Generic omit utility
306
+ const omit = <T extends object, K extends keyof T>(
307
+ keys: K[]
308
+ ) => (obj: T): Omit<T, K> => {
309
+ const result = { ...obj };
310
+ for (const key of keys) {
311
+ delete result[key];
312
+ }
313
+ return result as Omit<T, K>;
314
+ };
315
+
316
+ const sanitizeForLogging = omit<User, 'passwordHash' | 'internalNotes'>([
317
+ 'passwordHash',
318
+ 'internalNotes',
319
+ ]);
320
+ ```
321
+
322
+ **Honest assessment**: For one-off omits, destructuring (the imperative approach) is perfectly fine and very readable. The functional `omit` utility pays off when you have many such transformations or need to compose them.
323
+
324
+ ### Merge: Combine Objects
325
+
326
+ **The Task**: Merge user settings with defaults.
327
+
328
+ #### Imperative Approach
329
+
330
+ ```typescript
331
+ interface Settings {
332
+ theme: 'light' | 'dark';
333
+ fontSize: number;
334
+ notifications: boolean;
335
+ language: string;
336
+ }
337
+
338
+ function mergeSettings(
339
+ defaults: Settings,
340
+ userSettings: Partial<Settings>
341
+ ): Settings {
342
+ return {
343
+ theme: userSettings.theme !== undefined ? userSettings.theme : defaults.theme,
344
+ fontSize: userSettings.fontSize !== undefined ? userSettings.fontSize : defaults.fontSize,
345
+ notifications: userSettings.notifications !== undefined
346
+ ? userSettings.notifications
347
+ : defaults.notifications,
348
+ language: userSettings.language !== undefined ? userSettings.language : defaults.language,
349
+ };
350
+ }
351
+ ```
352
+
353
+ #### Functional Approach
354
+
355
+ ```typescript
356
+ const mergeSettings = (
357
+ defaults: Settings,
358
+ userSettings: Partial<Settings>
359
+ ): Settings => ({
360
+ ...defaults,
361
+ ...userSettings,
362
+ });
363
+
364
+ // Usage
365
+ const defaults: Settings = {
366
+ theme: 'light',
367
+ fontSize: 14,
368
+ notifications: true,
369
+ language: 'en',
370
+ };
371
+
372
+ const userPrefs: Partial<Settings> = {
373
+ theme: 'dark',
374
+ fontSize: 16,
375
+ };
376
+
377
+ const finalSettings = mergeSettings(defaults, userPrefs);
378
+ // { theme: 'dark', fontSize: 16, notifications: true, language: 'en' }
379
+ ```
380
+
381
+ **Why functional is better here**: Spread syntax is concise and handles any number of keys. Later spreads override earlier ones, giving you natural "defaults with overrides" behavior.
382
+
383
+ ### Deep Merge: Nested Object Combination
384
+
385
+ **The Task**: Merge nested configuration objects.
386
+
387
+ #### Imperative Approach
388
+
389
+ ```typescript
390
+ interface Config {
391
+ api: {
392
+ baseUrl: string;
393
+ timeout: number;
394
+ retries: number;
395
+ };
396
+ ui: {
397
+ theme: string;
398
+ animations: boolean;
399
+ };
400
+ }
401
+
402
+ function deepMerge(
403
+ target: Config,
404
+ source: Partial<Config>
405
+ ): Config {
406
+ const result = { ...target };
407
+
408
+ if (source.api) {
409
+ result.api = { ...target.api, ...source.api };
410
+ }
411
+ if (source.ui) {
412
+ result.ui = { ...target.ui, ...source.ui };
413
+ }
414
+
415
+ return result;
416
+ }
417
+ ```
418
+
419
+ #### Functional Approach
420
+
421
+ ```typescript
422
+ // Generic deep merge for one level of nesting
423
+ const deepMerge = <T extends Record<string, object>>(
424
+ target: T,
425
+ source: { [K in keyof T]?: Partial<T[K]> }
426
+ ): T => {
427
+ const result = { ...target };
428
+
429
+ for (const key of Object.keys(source) as Array<keyof T>) {
430
+ if (source[key] !== undefined) {
431
+ result[key] = { ...target[key], ...source[key] };
432
+ }
433
+ }
434
+
435
+ return result;
436
+ };
437
+
438
+ // Usage
439
+ const defaultConfig: Config = {
440
+ api: { baseUrl: 'https://api.example.com', timeout: 5000, retries: 3 },
441
+ ui: { theme: 'light', animations: true },
442
+ };
443
+
444
+ const customConfig = deepMerge(defaultConfig, {
445
+ api: { timeout: 10000 },
446
+ ui: { theme: 'dark' },
447
+ });
448
+ // api.baseUrl preserved, api.timeout overridden
449
+ // ui.theme overridden, ui.animations preserved
450
+ ```
451
+
452
+ ### Immutable Updates: Change Nested Values
453
+
454
+ **The Task**: Update a deeply nested value without mutation.
455
+
456
+ #### Imperative (Mutating) Approach
457
+
458
+ ```typescript
459
+ interface State {
460
+ user: {
461
+ profile: {
462
+ settings: {
463
+ theme: string;
464
+ };
465
+ };
466
+ };
467
+ }
468
+
469
+ function updateTheme(state: State, newTheme: string): void {
470
+ state.user.profile.settings.theme = newTheme; // Mutation!
471
+ }
472
+ ```
473
+
474
+ #### Functional (Immutable) Approach
475
+
476
+ ```typescript
477
+ // Manual spread nesting
478
+ const updateTheme = (state: State, newTheme: string): State => ({
479
+ ...state,
480
+ user: {
481
+ ...state.user,
482
+ profile: {
483
+ ...state.user.profile,
484
+ settings: {
485
+ ...state.user.profile.settings,
486
+ theme: newTheme,
487
+ },
488
+ },
489
+ },
490
+ });
491
+
492
+ // With a lens-like helper
493
+ const updatePath = <T, V>(
494
+ obj: T,
495
+ path: string[],
496
+ value: V
497
+ ): T => {
498
+ if (path.length === 0) return value as unknown as T;
499
+
500
+ const [head, ...rest] = path;
501
+ return {
502
+ ...obj,
503
+ [head]: updatePath((obj as Record<string, unknown>)[head], rest, value),
504
+ } as T;
505
+ };
506
+
507
+ const newState = updatePath(state, ['user', 'profile', 'settings', 'theme'], 'dark');
508
+ ```
509
+
510
+ **Honest assessment**: The spread nesting is verbose but explicit. For deeply nested updates, consider using a library like `immer` or fp-ts lenses. The verbosity of the functional approach is the price of immutability.
511
+
512
+ ---
513
+
514
+
515
+ ## 3. Data Normalization
516
+
517
+ API responses rarely match the shape your app needs. Normalization transforms nested, denormalized data into flat, indexed structures.
518
+
519
+ ### API Response to App State
520
+
521
+ **The Task**: Transform a nested API response into a normalized state.
522
+
523
+ #### API Response (What You Get)
524
+
525
+ ```typescript
526
+ interface ApiResponse {
527
+ orders: Array<{
528
+ id: string;
529
+ customerId: string;
530
+ customerName: string;
531
+ customerEmail: string;
532
+ items: Array<{
533
+ productId: string;
534
+ productName: string;
535
+ quantity: number;
536
+ price: number;
537
+ }>;
538
+ total: number;
539
+ status: string;
540
+ }>;
541
+ }
542
+ ```
543
+
544
+ #### App State (What You Need)
545
+
546
+ ```typescript
547
+ interface NormalizedState {
548
+ orders: {
549
+ byId: Record<string, Order>;
550
+ allIds: string[];
551
+ };
552
+ customers: {
553
+ byId: Record<string, Customer>;
554
+ allIds: string[];
555
+ };
556
+ products: {
557
+ byId: Record<string, Product>;
558
+ allIds: string[];
559
+ };
560
+ }
561
+
562
+ interface Order {
563
+ id: string;
564
+ customerId: string;
565
+ itemIds: string[];
566
+ total: number;
567
+ status: string;
568
+ }
569
+
570
+ interface Customer {
571
+ id: string;
572
+ name: string;
573
+ email: string;
574
+ }
575
+
576
+ interface Product {
577
+ id: string;
578
+ name: string;
579
+ price: number;
580
+ }
581
+ ```
582
+
583
+ #### Imperative Approach
584
+
585
+ ```typescript
586
+ function normalizeApiResponse(response: ApiResponse): NormalizedState {
587
+ const state: NormalizedState = {
588
+ orders: { byId: {}, allIds: [] },
589
+ customers: { byId: {}, allIds: [] },
590
+ products: { byId: {}, allIds: [] },
591
+ };
592
+
593
+ for (const order of response.orders) {
594
+ // Extract customer
595
+ if (!state.customers.byId[order.customerId]) {
596
+ state.customers.byId[order.customerId] = {
597
+ id: order.customerId,
598
+ name: order.customerName,
599
+ email: order.customerEmail,
600
+ };
601
+ state.customers.allIds.push(order.customerId);
602
+ }
603
+
604
+ // Extract products and build item IDs
605
+ const itemIds: string[] = [];
606
+ for (const item of order.items) {
607
+ if (!state.products.byId[item.productId]) {
608
+ state.products.byId[item.productId] = {
609
+ id: item.productId,
610
+ name: item.productName,
611
+ price: item.price,
612
+ };
613
+ state.products.allIds.push(item.productId);
614
+ }
615
+ itemIds.push(item.productId);
616
+ }
617
+
618
+ // Add normalized order
619
+ state.orders.byId[order.id] = {
620
+ id: order.id,
621
+ customerId: order.customerId,
622
+ itemIds,
623
+ total: order.total,
624
+ status: order.status,
625
+ };
626
+ state.orders.allIds.push(order.id);
627
+ }
628
+
629
+ return state;
630
+ }
631
+ ```
632
+
633
+ #### Functional Approach
634
+
635
+ ```typescript
636
+ import { pipe } from 'fp-ts/function';
637
+ import * as A from 'fp-ts/Array';
638
+ import * as R from 'fp-ts/Record';
639
+
640
+ // Helper to create normalized collection
641
+ interface NormalizedCollection<T extends { id: string }> {
642
+ byId: Record<string, T>;
643
+ allIds: string[];
644
+ }
645
+
646
+ const createNormalizedCollection = <T extends { id: string }>(
647
+ items: T[]
648
+ ): NormalizedCollection<T> => ({
649
+ byId: pipe(
650
+ items,
651
+ A.reduce({} as Record<string, T>, (acc, item) => ({
652
+ ...acc,
653
+ [item.id]: item,
654
+ }))
655
+ ),
656
+ allIds: items.map(item => item.id),
657
+ });
658
+
659
+ // Extract entities
660
+ const extractCustomers = (orders: ApiResponse['orders']): Customer[] =>
661
+ pipe(
662
+ orders,
663
+ A.map(order => ({
664
+ id: order.customerId,
665
+ name: order.customerName,
666
+ email: order.customerEmail,
667
+ })),
668
+ A.uniq({ equals: (a, b) => a.id === b.id })
669
+ );
670
+
671
+ const extractProducts = (orders: ApiResponse['orders']): Product[] =>
672
+ pipe(
673
+ orders,
674
+ A.flatMap(order => order.items),
675
+ A.map(item => ({
676
+ id: item.productId,
677
+ name: item.productName,
678
+ price: item.price,
679
+ })),
680
+ A.uniq({ equals: (a, b) => a.id === b.id })
681
+ );
682
+
683
+ const extractOrders = (orders: ApiResponse['orders']): Order[] =>
684
+ orders.map(order => ({
685
+ id: order.id,
686
+ customerId: order.customerId,
687
+ itemIds: order.items.map(item => item.productId),
688
+ total: order.total,
689
+ status: order.status,
690
+ }));
691
+
692
+ // Compose into final normalization
693
+ const normalizeApiResponse = (response: ApiResponse): NormalizedState => ({
694
+ orders: createNormalizedCollection(extractOrders(response.orders)),
695
+ customers: createNormalizedCollection(extractCustomers(response.orders)),
696
+ products: createNormalizedCollection(extractProducts(response.orders)),
697
+ });
698
+ ```
699
+
700
+ **Why functional is better here**: Each extraction is independent and testable. The `createNormalizedCollection` helper is reusable. Adding a new entity type means adding one new extraction function.
701
+
702
+ ### Transform API Response to UI-Ready Data
703
+
704
+ **The Task**: Convert API data to what your components need.
705
+
706
+ ```typescript
707
+ // API gives you this
708
+ interface ApiUser {
709
+ user_id: string;
710
+ first_name: string;
711
+ last_name: string;
712
+ email_address: string;
713
+ created_at: string; // ISO string
714
+ avatar_url: string | null;
715
+ }
716
+
717
+ // Components need this
718
+ interface DisplayUser {
719
+ id: string;
720
+ fullName: string;
721
+ email: string;
722
+ memberSince: string; // "Jan 2024"
723
+ avatarUrl: string; // With fallback
724
+ }
725
+ ```
726
+
727
+ #### Functional Approach
728
+
729
+ ```typescript
730
+ const formatDate = (isoString: string): string => {
731
+ const date = new Date(isoString);
732
+ return date.toLocaleDateString('en-US', { month: 'short', year: 'numeric' });
733
+ };
734
+
735
+ const DEFAULT_AVATAR = 'https://example.com/default-avatar.png';
736
+
737
+ const toDisplayUser = (apiUser: ApiUser): DisplayUser => ({
738
+ id: apiUser.user_id,
739
+ fullName: `${apiUser.first_name} ${apiUser.last_name}`,
740
+ email: apiUser.email_address,
741
+ memberSince: formatDate(apiUser.created_at),
742
+ avatarUrl: apiUser.avatar_url ?? DEFAULT_AVATAR,
743
+ });
744
+
745
+ // Transform array of users
746
+ const toDisplayUsers = (apiUsers: ApiUser[]): DisplayUser[] =>
747
+ apiUsers.map(toDisplayUser);
748
+ ```
749
+
750
+ ---
751
+
752
+
753
+ ## 4. Grouping and Aggregation
754
+
755
+ Grouping and aggregating data is essential for reports, dashboards, and analytics.
756
+
757
+ ### GroupBy: Organize by Key
758
+
759
+ **The Task**: Group orders by customer.
760
+
761
+ #### Imperative Approach
762
+
763
+ ```typescript
764
+ interface Order {
765
+ id: string;
766
+ customerId: string;
767
+ total: number;
768
+ date: string;
769
+ }
770
+
771
+ function groupByCustomer(orders: Order[]): Record<string, Order[]> {
772
+ const result: Record<string, Order[]> = {};
773
+
774
+ for (const order of orders) {
775
+ if (!result[order.customerId]) {
776
+ result[order.customerId] = [];
777
+ }
778
+ result[order.customerId].push(order);
779
+ }
780
+
781
+ return result;
782
+ }
783
+ ```
784
+
785
+ #### Functional Approach
786
+
787
+ ```typescript
788
+ // Generic groupBy utility
789
+ const groupBy = <T, K extends string | number>(
790
+ getKey: (item: T) => K
791
+ ) => (items: T[]): Record<K, T[]> =>
792
+ items.reduce(
793
+ (groups, item) => {
794
+ const key = getKey(item);
795
+ return {
796
+ ...groups,
797
+ [key]: [...(groups[key] || []), item],
798
+ };
799
+ },
800
+ {} as Record<K, T[]>
801
+ );
802
+
803
+ // Usage
804
+ const groupByCustomer = groupBy<Order, string>(order => order.customerId);
805
+ const ordersByCustomer = groupByCustomer(orders);
806
+
807
+ // Or inline
808
+ const ordersByStatus = groupBy((order: Order) => order.status)(orders);
809
+ ```
810
+
811
+ **Using fp-ts NonEmptyArray.groupBy**:
812
+
813
+ ```typescript
814
+ import * as NEA from 'fp-ts/NonEmptyArray';
815
+ import { pipe } from 'fp-ts/function';
816
+
817
+ // NEA.groupBy guarantees non-empty arrays in result
818
+ const ordersByCustomer = pipe(
819
+ orders as NEA.NonEmptyArray<Order>, // Must be non-empty
820
+ NEA.groupBy(order => order.customerId)
821
+ ); // Record<string, NonEmptyArray<Order>>
822
+ ```
823
+
824
+ ### CountBy: Count Occurrences
825
+
826
+ **The Task**: Count orders by status.
827
+
828
+ #### Imperative Approach
829
+
830
+ ```typescript
831
+ function countByStatus(orders: Order[]): Record<string, number> {
832
+ const counts: Record<string, number> = {};
833
+
834
+ for (const order of orders) {
835
+ counts[order.status] = (counts[order.status] || 0) + 1;
836
+ }
837
+
838
+ return counts;
839
+ }
840
+ ```
841
+
842
+ #### Functional Approach
843
+
844
+ ```typescript
845
+ // Generic countBy utility
846
+ const countBy = <T, K extends string>(
847
+ getKey: (item: T) => K
848
+ ) => (items: T[]): Record<K, number> =>
849
+ items.reduce(
850
+ (counts, item) => {
851
+ const key = getKey(item);
852
+ return {
853
+ ...counts,
854
+ [key]: (counts[key] || 0) + 1,
855
+ };
856
+ },
857
+ {} as Record<K, number>
858
+ );
859
+
860
+ // Usage
861
+ const orderCountByStatus = countBy((order: Order) => order.status)(orders);
862
+ // { pending: 5, shipped: 12, delivered: 8 }
863
+ ```
864
+
865
+ ### SumBy: Aggregate Numeric Values
866
+
867
+ **The Task**: Calculate total revenue per product category.
868
+
869
+ #### Imperative Approach
870
+
871
+ ```typescript
872
+ interface Sale {
873
+ productId: string;
874
+ category: string;
875
+ amount: number;
876
+ }
877
+
878
+ function sumByCategory(sales: Sale[]): Record<string, number> {
879
+ const totals: Record<string, number> = {};
880
+
881
+ for (const sale of sales) {
882
+ totals[sale.category] = (totals[sale.category] || 0) + sale.amount;
883
+ }
884
+
885
+ return totals;
886
+ }
887
+ ```
888
+
889
+ #### Functional Approach
890
+
891
+ ```typescript
892
+ // Generic sumBy utility
893
+ const sumBy = <T, K extends string>(
894
+ getKey: (item: T) => K,
895
+ getValue: (item: T) => number
896
+ ) => (items: T[]): Record<K, number> =>
897
+ items.reduce(
898
+ (totals, item) => {
899
+ const key = getKey(item);
900
+ return {
901
+ ...totals,
902
+ [key]: (totals[key] || 0) + getValue(item),
903
+ };
904
+ },
905
+ {} as Record<K, number>
906
+ );
907
+
908
+ // Usage
909
+ const revenueByCategory = sumBy(
910
+ (sale: Sale) => sale.category,
911
+ (sale: Sale) => sale.amount
912
+ )(sales);
913
+ // { electronics: 15000, clothing: 8500, books: 3200 }
914
+ ```
915
+
916
+ ### Complex Aggregation Example
917
+
918
+ **The Task**: Calculate totals from line items with quantity and unit price.
919
+
920
+ ```typescript
921
+ interface LineItem {
922
+ productId: string;
923
+ productName: string;
924
+ quantity: number;
925
+ unitPrice: number;
926
+ }
927
+
928
+ interface Invoice {
929
+ id: string;
930
+ lineItems: LineItem[];
931
+ taxRate: number;
932
+ }
933
+ ```
934
+
935
+ #### Functional Approach
936
+
937
+ ```typescript
938
+ const lineTotal = (item: LineItem): number =>
939
+ item.quantity * item.unitPrice;
940
+
941
+ const subtotal = (items: LineItem[]): number =>
942
+ items.reduce((sum, item) => sum + lineTotal(item), 0);
943
+
944
+ const calculateTax = (amount: number, rate: number): number =>
945
+ amount * rate;
946
+
947
+ const calculateInvoiceTotal = (invoice: Invoice): {
948
+ subtotal: number;
949
+ tax: number;
950
+ total: number;
951
+ } => {
952
+ const sub = subtotal(invoice.lineItems);
953
+ const tax = calculateTax(sub, invoice.taxRate);
954
+
955
+ return {
956
+ subtotal: sub,
957
+ tax,
958
+ total: sub + tax,
959
+ };
960
+ };
961
+
962
+ // With fp-ts pipe for clarity
963
+ import { pipe } from 'fp-ts/function';
964
+
965
+ const calculateInvoiceTotal = (invoice: Invoice) => {
966
+ const sub = pipe(
967
+ invoice.lineItems,
968
+ A.map(lineTotal),
969
+ A.reduce(0, (a, b) => a + b)
970
+ );
971
+
972
+ return {
973
+ subtotal: sub,
974
+ tax: sub * invoice.taxRate,
975
+ total: sub * (1 + invoice.taxRate),
976
+ };
977
+ };
978
+ ```
979
+
980
+ ---
981
+
982
+
983
+ ## 5. Null-Safe Access
984
+
985
+ Stop writing `if (x && x.y && x.y.z)`. Safely navigate nested structures without runtime errors.
986
+
987
+ ### The Problem
988
+
989
+ ```typescript
990
+ interface Config {
991
+ database?: {
992
+ connection?: {
993
+ host?: string;
994
+ port?: number;
995
+ };
996
+ pool?: {
997
+ max?: number;
998
+ };
999
+ };
1000
+ features?: {
1001
+ experimental?: {
1002
+ enabled?: boolean;
1003
+ };
1004
+ };
1005
+ }
1006
+ ```
1007
+
1008
+ #### Imperative (Verbose) Approach
1009
+
1010
+ ```typescript
1011
+ function getDatabaseHost(config: Config): string {
1012
+ if (
1013
+ config.database &&
1014
+ config.database.connection &&
1015
+ config.database.connection.host
1016
+ ) {
1017
+ return config.database.connection.host;
1018
+ }
1019
+ return 'localhost';
1020
+ }
1021
+ ```
1022
+
1023
+ #### Optional Chaining (Modern TypeScript)
1024
+
1025
+ ```typescript
1026
+ const getDatabaseHost = (config: Config): string =>
1027
+ config.database?.connection?.host ?? 'localhost';
1028
+ ```
1029
+
1030
+ **Honest assessment**: For simple access patterns, optional chaining (`?.`) is perfect. It's built into the language and very readable. Use fp-ts Option when you need to compose operations on potentially missing values.
1031
+
1032
+ ### When to Use Option Instead
1033
+
1034
+ Use fp-ts Option when:
1035
+ - You need to chain multiple operations on potentially missing values
1036
+ - You want to distinguish "missing" from other falsy values
1037
+ - You're building a pipeline of transformations
1038
+
1039
+ ```typescript
1040
+ import * as O from 'fp-ts/Option';
1041
+ import { pipe } from 'fp-ts/function';
1042
+
1043
+ // Safe property access that returns Option
1044
+ const prop = <T, K extends keyof T>(key: K) =>
1045
+ (obj: T | null | undefined): O.Option<T[K]> =>
1046
+ obj != null && key in obj
1047
+ ? O.some(obj[key] as T[K])
1048
+ : O.none;
1049
+
1050
+ // Chain accesses with flatMap
1051
+ const getDatabaseHost = (config: Config): O.Option<string> =>
1052
+ pipe(
1053
+ O.some(config),
1054
+ O.flatMap(prop('database')),
1055
+ O.flatMap(prop('connection')),
1056
+ O.flatMap(prop('host'))
1057
+ );
1058
+
1059
+ // Extract with default
1060
+ const host = pipe(
1061
+ getDatabaseHost(config),
1062
+ O.getOrElse(() => 'localhost')
1063
+ );
1064
+ ```
1065
+
1066
+ ### Safe Array Access
1067
+
1068
+ ```typescript
1069
+ import * as A from 'fp-ts/Array';
1070
+ import * as O from 'fp-ts/Option';
1071
+ import { pipe } from 'fp-ts/function';
1072
+
1073
+ // Imperative: throws if array is empty
1074
+ const first = items[0]; // Could be undefined!
1075
+
1076
+ // Safe: returns Option
1077
+ const first = A.head(items); // Option<Item>
1078
+
1079
+ // Get first item's name, or default
1080
+ const firstName = pipe(
1081
+ items,
1082
+ A.head,
1083
+ O.map(item => item.name),
1084
+ O.getOrElse(() => 'No items')
1085
+ );
1086
+
1087
+ // Safe lookup by index
1088
+ const third = pipe(
1089
+ items,
1090
+ A.lookup(2),
1091
+ O.map(item => item.name),
1092
+ O.getOrElse(() => 'Not found')
1093
+ );
1094
+ ```
1095
+
1096
+ ### Safe Record/Dictionary Access
1097
+
1098
+ ```typescript
1099
+ import * as R from 'fp-ts/Record';
1100
+ import * as O from 'fp-ts/Option';
1101
+ import { pipe } from 'fp-ts/function';
1102
+
1103
+ const users: Record<string, User> = {
1104
+ 'user-1': { name: 'Alice', email: 'alice@example.com' },
1105
+ 'user-2': { name: 'Bob', email: 'bob@example.com' },
1106
+ };
1107
+
1108
+ // Imperative: could be undefined
1109
+ const user = users['user-3']; // User | undefined
1110
+
1111
+ // Safe: returns Option
1112
+ const user = R.lookup('user-3')(users); // Option<User>
1113
+
1114
+ // Get user email or default
1115
+ const email = pipe(
1116
+ users,
1117
+ R.lookup('user-3'),
1118
+ O.map(u => u.email),
1119
+ O.getOrElse(() => 'unknown@example.com')
1120
+ );
1121
+ ```
1122
+
1123
+ ### Combining Multiple Optional Values
1124
+
1125
+ **The Task**: Get a user's display name, which requires both first and last name.
1126
+
1127
+ ```typescript
1128
+ interface Profile {
1129
+ firstName?: string;
1130
+ lastName?: string;
1131
+ nickname?: string;
1132
+ }
1133
+
1134
+ // Imperative
1135
+ function getDisplayName(profile: Profile): string {
1136
+ if (profile.firstName && profile.lastName) {
1137
+ return `${profile.firstName} ${profile.lastName}`;
1138
+ }
1139
+ if (profile.nickname) {
1140
+ return profile.nickname;
1141
+ }
1142
+ return 'Anonymous';
1143
+ }
1144
+
1145
+ // Functional with Option
1146
+ import * as O from 'fp-ts/Option';
1147
+ import { pipe } from 'fp-ts/function';
1148
+
1149
+ const getDisplayName = (profile: Profile): string =>
1150
+ pipe(
1151
+ // Try full name first
1152
+ O.Do,
1153
+ O.bind('first', () => O.fromNullable(profile.firstName)),
1154
+ O.bind('last', () => O.fromNullable(profile.lastName)),
1155
+ O.map(({ first, last }) => `${first} ${last}`),
1156
+ // Fall back to nickname
1157
+ O.alt(() => O.fromNullable(profile.nickname)),
1158
+ // Finally, default to Anonymous
1159
+ O.getOrElse(() => 'Anonymous')
1160
+ );
1161
+ ```
1162
+
1163
+ ---
1164
+
1165
+
1166
+ ## Summary
1167
+
1168
+ | Task | Imperative | Functional | Recommendation |
1169
+ |------|-----------|------------|----------------|
1170
+ | Transform array elements | for loop with push | `.map()` | Use map |
1171
+ | Filter array | for loop with condition | `.filter()` | Use filter |
1172
+ | Accumulate values | for loop with accumulator | `.reduce()` | Use reduce for complex, loop for simple |
1173
+ | Group by key | for loop with object | `groupBy` utility | Create reusable utility |
1174
+ | Pick object fields | manual property copy | `pick` utility | Use spread for one-off, utility for repeated |
1175
+ | Merge objects | property-by-property | spread syntax | Use spread |
1176
+ | Deep merge | nested conditionals | recursive utility | Use utility or library |
1177
+ | Null-safe access | `if (x && x.y)` | `?.` or Option | Use `?.` for simple, Option for composition |
1178
+ | Normalize API data | nested loops | extraction functions | Break into composable functions |
1179
+
1180
+ **The functional approach is better when:**
1181
+ - You need to compose operations
1182
+ - You want reusable transformations
1183
+ - You value explicit data flow over implicit state
1184
+ - Type safety for missing values matters
1185
+
1186
+ **The imperative approach is acceptable when:**
1187
+ - The transformation is a one-off
1188
+ - The logic is simple and linear
1189
+ - Performance is critical and you've measured
1190
+ - The team is more comfortable with it