@heytherevibin/skillforge 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CODE_OF_CONDUCT.md +34 -0
  3. package/CONTRIBUTING.md +38 -0
  4. package/LICENSE +21 -0
  5. package/README.md +337 -0
  6. package/RELEASING.md +93 -0
  7. package/SECURITY.md +31 -0
  8. package/STRATEGY.md +26 -0
  9. package/bin/cli.js +547 -0
  10. package/lib/packs.js +184 -0
  11. package/package.json +38 -0
  12. package/python/app/__init__.py +0 -0
  13. package/python/app/__pycache__/__init__.cpython-312.pyc +0 -0
  14. package/python/app/__pycache__/auth.cpython-312.pyc +0 -0
  15. package/python/app/__pycache__/main.cpython-312.pyc +0 -0
  16. package/python/app/auth.py +63 -0
  17. package/python/app/cli.py +78 -0
  18. package/python/app/db_paths.py +26 -0
  19. package/python/app/events_cli.py +175 -0
  20. package/python/app/main.py +647 -0
  21. package/python/app/materialize.py +138 -0
  22. package/python/app/mcp_server.py +610 -0
  23. package/python/app/route_cli.py +117 -0
  24. package/python/requirements-dev.txt +1 -0
  25. package/python/requirements.txt +7 -0
  26. package/python/tests/test_db_paths.py +41 -0
  27. package/skills/accessibility/SKILL.md +145 -0
  28. package/skills/agent-architecture-audit/SKILL.md +256 -0
  29. package/skills/agent-eval/SKILL.md +144 -0
  30. package/skills/agent-harness-construction/SKILL.md +72 -0
  31. package/skills/agent-introspection-debugging/SKILL.md +152 -0
  32. package/skills/agent-payment-x402/SKILL.md +224 -0
  33. package/skills/agent-sort/SKILL.md +214 -0
  34. package/skills/agentic-engineering/SKILL.md +62 -0
  35. package/skills/agentic-os/SKILL.md +386 -0
  36. package/skills/ai-first-engineering/SKILL.md +50 -0
  37. package/skills/ai-regression-testing/SKILL.md +384 -0
  38. package/skills/android-clean-architecture/SKILL.md +338 -0
  39. package/skills/angular-developer/SKILL.md +153 -0
  40. package/skills/angular-developer/references/angular-animations.md +160 -0
  41. package/skills/angular-developer/references/angular-aria.md +410 -0
  42. package/skills/angular-developer/references/cli.md +86 -0
  43. package/skills/angular-developer/references/component-harnesses.md +59 -0
  44. package/skills/angular-developer/references/component-styling.md +91 -0
  45. package/skills/angular-developer/references/components.md +117 -0
  46. package/skills/angular-developer/references/creating-services.md +97 -0
  47. package/skills/angular-developer/references/data-resolvers.md +69 -0
  48. package/skills/angular-developer/references/define-routes.md +67 -0
  49. package/skills/angular-developer/references/defining-providers.md +72 -0
  50. package/skills/angular-developer/references/di-fundamentals.md +120 -0
  51. package/skills/angular-developer/references/e2e-testing.md +56 -0
  52. package/skills/angular-developer/references/effects.md +83 -0
  53. package/skills/angular-developer/references/hierarchical-injectors.md +43 -0
  54. package/skills/angular-developer/references/host-elements.md +80 -0
  55. package/skills/angular-developer/references/injection-context.md +63 -0
  56. package/skills/angular-developer/references/inputs.md +101 -0
  57. package/skills/angular-developer/references/linked-signal.md +59 -0
  58. package/skills/angular-developer/references/loading-strategies.md +61 -0
  59. package/skills/angular-developer/references/mcp.md +108 -0
  60. package/skills/angular-developer/references/navigate-to-routes.md +69 -0
  61. package/skills/angular-developer/references/outputs.md +86 -0
  62. package/skills/angular-developer/references/reactive-forms.md +122 -0
  63. package/skills/angular-developer/references/rendering-strategies.md +44 -0
  64. package/skills/angular-developer/references/resource.md +77 -0
  65. package/skills/angular-developer/references/route-animations.md +56 -0
  66. package/skills/angular-developer/references/route-guards.md +52 -0
  67. package/skills/angular-developer/references/router-lifecycle.md +45 -0
  68. package/skills/angular-developer/references/router-testing.md +87 -0
  69. package/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
  70. package/skills/angular-developer/references/signal-forms.md +795 -0
  71. package/skills/angular-developer/references/signals-overview.md +94 -0
  72. package/skills/angular-developer/references/tailwind-css.md +69 -0
  73. package/skills/angular-developer/references/template-driven-forms.md +114 -0
  74. package/skills/angular-developer/references/testing-fundamentals.md +65 -0
  75. package/skills/api-connector-builder/SKILL.md +120 -0
  76. package/skills/api-design/SKILL.md +522 -0
  77. package/skills/architecture-decision-records/SKILL.md +178 -0
  78. package/skills/article-writing/SKILL.md +78 -0
  79. package/skills/automation-audit-ops/SKILL.md +141 -0
  80. package/skills/autonomous-agent-harness/SKILL.md +272 -0
  81. package/skills/autonomous-loops/SKILL.md +609 -0
  82. package/skills/backend-patterns/SKILL.md +560 -0
  83. package/skills/benchmark/SKILL.md +92 -0
  84. package/skills/blueprint/SKILL.md +104 -0
  85. package/skills/browser-qa/SKILL.md +86 -0
  86. package/skills/bun-runtime/SKILL.md +83 -0
  87. package/skills/canary-watch/SKILL.md +98 -0
  88. package/skills/carrier-relationship-management/SKILL.md +211 -0
  89. package/skills/cisco-ios-patterns/SKILL.md +163 -0
  90. package/skills/ck/SKILL.md +147 -0
  91. package/skills/ck/commands/forget.mjs +44 -0
  92. package/skills/ck/commands/info.mjs +24 -0
  93. package/skills/ck/commands/init.mjs +143 -0
  94. package/skills/ck/commands/list.mjs +40 -0
  95. package/skills/ck/commands/migrate.mjs +202 -0
  96. package/skills/ck/commands/resume.mjs +36 -0
  97. package/skills/ck/commands/save.mjs +210 -0
  98. package/skills/ck/commands/shared.mjs +387 -0
  99. package/skills/ck/hooks/session-start.mjs +224 -0
  100. package/skills/claude-devfleet/SKILL.md +103 -0
  101. package/skills/click-path-audit/SKILL.md +244 -0
  102. package/skills/clickhouse-io/SKILL.md +438 -0
  103. package/skills/code-tour/SKILL.md +235 -0
  104. package/skills/codebase-onboarding/SKILL.md +232 -0
  105. package/skills/coding-standards/SKILL.md +548 -0
  106. package/skills/compose-multiplatform-patterns/SKILL.md +298 -0
  107. package/skills/connections-optimizer/SKILL.md +188 -0
  108. package/skills/content-engine/SKILL.md +126 -0
  109. package/skills/content-hash-cache-pattern/SKILL.md +160 -0
  110. package/skills/context-budget/SKILL.md +134 -0
  111. package/skills/continuous-agent-loop/SKILL.md +44 -0
  112. package/skills/continuous-learning/SKILL.md +129 -0
  113. package/skills/continuous-learning/config.json +18 -0
  114. package/skills/continuous-learning/evaluate-session.sh +69 -0
  115. package/skills/continuous-learning-v2/SKILL.md +358 -0
  116. package/skills/continuous-learning-v2/agents/observer-loop.sh +322 -0
  117. package/skills/continuous-learning-v2/agents/observer.md +198 -0
  118. package/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
  119. package/skills/continuous-learning-v2/agents/start-observer.sh +248 -0
  120. package/skills/continuous-learning-v2/config.json +8 -0
  121. package/skills/continuous-learning-v2/hooks/observe.sh +476 -0
  122. package/skills/continuous-learning-v2/scripts/detect-project.sh +288 -0
  123. package/skills/continuous-learning-v2/scripts/instinct-cli.py +1519 -0
  124. package/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
  125. package/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -0
  126. package/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1018 -0
  127. package/skills/cost-aware-llm-pipeline/SKILL.md +182 -0
  128. package/skills/cost-tracking/SKILL.md +147 -0
  129. package/skills/council/SKILL.md +202 -0
  130. package/skills/cpp-coding-standards/SKILL.md +722 -0
  131. package/skills/cpp-testing/SKILL.md +323 -0
  132. package/skills/crosspost/SKILL.md +110 -0
  133. package/skills/csharp-testing/SKILL.md +320 -0
  134. package/skills/customer-billing-ops/SKILL.md +139 -0
  135. package/skills/customs-trade-compliance/SKILL.md +262 -0
  136. package/skills/dart-flutter-patterns/SKILL.md +562 -0
  137. package/skills/dashboard-builder/SKILL.md +108 -0
  138. package/skills/data-scraper-agent/SKILL.md +764 -0
  139. package/skills/database-migrations/SKILL.md +428 -0
  140. package/skills/deep-research/SKILL.md +158 -0
  141. package/skills/defi-amm-security/SKILL.md +166 -0
  142. package/skills/deployment-patterns/SKILL.md +426 -0
  143. package/skills/design-system/SKILL.md +81 -0
  144. package/skills/django-celery/SKILL.md +456 -0
  145. package/skills/django-patterns/SKILL.md +733 -0
  146. package/skills/django-security/SKILL.md +592 -0
  147. package/skills/django-tdd/SKILL.md +728 -0
  148. package/skills/django-verification/SKILL.md +468 -0
  149. package/skills/dmux-workflows/SKILL.md +190 -0
  150. package/skills/docker-patterns/SKILL.md +363 -0
  151. package/skills/documentation-lookup/SKILL.md +89 -0
  152. package/skills/dotnet-patterns/SKILL.md +320 -0
  153. package/skills/e2e-testing/SKILL.md +325 -0
  154. package/skills/email-ops/SKILL.md +120 -0
  155. package/skills/energy-procurement/SKILL.md +227 -0
  156. package/skills/enterprise-agent-ops/SKILL.md +49 -0
  157. package/skills/error-handling/SKILL.md +375 -0
  158. package/skills/eval-harness/SKILL.md +269 -0
  159. package/skills/evm-token-decimals/SKILL.md +130 -0
  160. package/skills/exa-search/SKILL.md +106 -0
  161. package/skills/fal-ai-media/SKILL.md +287 -0
  162. package/skills/fastapi-patterns/SKILL.md +327 -0
  163. package/skills/finance-billing-ops/SKILL.md +126 -0
  164. package/skills/flox-environments/SKILL.md +496 -0
  165. package/skills/flutter-dart-code-review/SKILL.md +434 -0
  166. package/skills/foundation-models-on-device/SKILL.md +243 -0
  167. package/skills/frontend-design-direction/SKILL.md +92 -0
  168. package/skills/frontend-patterns/SKILL.md +641 -0
  169. package/skills/frontend-slides/SKILL.md +183 -0
  170. package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  171. package/skills/frontend-slides/animation-patterns.md +122 -0
  172. package/skills/frontend-slides/html-template.md +419 -0
  173. package/skills/frontend-slides/scripts/export-pdf.sh +418 -0
  174. package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
  175. package/skills/frontend-slides/viewport-base.css +153 -0
  176. package/skills/fsharp-testing/SKILL.md +279 -0
  177. package/skills/gan-style-harness/SKILL.md +278 -0
  178. package/skills/gateguard/SKILL.md +125 -0
  179. package/skills/git-workflow/SKILL.md +714 -0
  180. package/skills/github-ops/SKILL.md +143 -0
  181. package/skills/golang-patterns/SKILL.md +673 -0
  182. package/skills/golang-testing/SKILL.md +719 -0
  183. package/skills/google-workspace-ops/SKILL.md +94 -0
  184. package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
  185. package/skills/healthcare-emr-patterns/SKILL.md +159 -0
  186. package/skills/healthcare-eval-harness/SKILL.md +207 -0
  187. package/skills/healthcare-phi-compliance/SKILL.md +145 -0
  188. package/skills/hermes-imports/SKILL.md +87 -0
  189. package/skills/hexagonal-architecture/SKILL.md +275 -0
  190. package/skills/hipaa-compliance/SKILL.md +78 -0
  191. package/skills/homelab-network-readiness/SKILL.md +169 -0
  192. package/skills/homelab-network-setup/SKILL.md +129 -0
  193. package/skills/homelab-pihole-dns/SKILL.md +274 -0
  194. package/skills/homelab-vlan-segmentation/SKILL.md +311 -0
  195. package/skills/homelab-wireguard-vpn/SKILL.md +305 -0
  196. package/skills/hookify-rules/SKILL.md +128 -0
  197. package/skills/inventory-demand-planning/SKILL.md +246 -0
  198. package/skills/investor-materials/SKILL.md +95 -0
  199. package/skills/investor-outreach/SKILL.md +90 -0
  200. package/skills/ios-icon-gen/SKILL.md +157 -0
  201. package/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
  202. package/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
  203. package/skills/iterative-retrieval/SKILL.md +209 -0
  204. package/skills/java-coding-standards/SKILL.md +382 -0
  205. package/skills/jira-integration/SKILL.md +292 -0
  206. package/skills/jpa-patterns/SKILL.md +150 -0
  207. package/skills/knowledge-ops/SKILL.md +153 -0
  208. package/skills/kotlin-coroutines-flows/SKILL.md +283 -0
  209. package/skills/kotlin-exposed-patterns/SKILL.md +718 -0
  210. package/skills/kotlin-ktor-patterns/SKILL.md +688 -0
  211. package/skills/kotlin-patterns/SKILL.md +710 -0
  212. package/skills/kotlin-testing/SKILL.md +823 -0
  213. package/skills/laravel-patterns/SKILL.md +414 -0
  214. package/skills/laravel-plugin-discovery/SKILL.md +228 -0
  215. package/skills/laravel-security/SKILL.md +284 -0
  216. package/skills/laravel-tdd/SKILL.md +282 -0
  217. package/skills/laravel-verification/SKILL.md +178 -0
  218. package/skills/lead-intelligence/SKILL.md +320 -0
  219. package/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
  220. package/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
  221. package/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
  222. package/skills/lead-intelligence/agents/signal-scorer.md +60 -0
  223. package/skills/liquid-glass-design/SKILL.md +279 -0
  224. package/skills/llm-trading-agent-security/SKILL.md +146 -0
  225. package/skills/logistics-exception-management/SKILL.md +221 -0
  226. package/skills/make-interfaces-feel-better/SKILL.md +151 -0
  227. package/skills/manim-video/SKILL.md +88 -0
  228. package/skills/manim-video/assets/network_graph_scene.py +52 -0
  229. package/skills/market-research/SKILL.md +74 -0
  230. package/skills/mcp-server-patterns/SKILL.md +68 -0
  231. package/skills/messages-ops/SKILL.md +103 -0
  232. package/skills/mle-workflow/SKILL.md +345 -0
  233. package/skills/motion-advanced/SKILL.md +596 -0
  234. package/skills/motion-foundations/SKILL.md +299 -0
  235. package/skills/motion-patterns/SKILL.md +435 -0
  236. package/skills/motion-ui/SKILL.md +574 -0
  237. package/skills/mysql-patterns/SKILL.md +411 -0
  238. package/skills/nanoclaw-repl/SKILL.md +32 -0
  239. package/skills/nestjs-patterns/SKILL.md +229 -0
  240. package/skills/netmiko-ssh-automation/SKILL.md +173 -0
  241. package/skills/network-bgp-diagnostics/SKILL.md +167 -0
  242. package/skills/network-config-validation/SKILL.md +210 -0
  243. package/skills/network-interface-health/SKILL.md +152 -0
  244. package/skills/nextjs-turbopack/SKILL.md +43 -0
  245. package/skills/nodejs-keccak256/SKILL.md +102 -0
  246. package/skills/nutrient-document-processing/SKILL.md +166 -0
  247. package/skills/nuxt4-patterns/SKILL.md +99 -0
  248. package/skills/openclaw-persona-forge/SKILL.md +288 -0
  249. package/skills/openclaw-persona-forge/gacha.py +224 -0
  250. package/skills/openclaw-persona-forge/gacha.sh +5 -0
  251. package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
  252. package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
  253. package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
  254. package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
  255. package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
  256. package/skills/openclaw-persona-forge/references/output-template.md +166 -0
  257. package/skills/opensource-pipeline/SKILL.md +254 -0
  258. package/skills/perl-patterns/SKILL.md +503 -0
  259. package/skills/perl-security/SKILL.md +502 -0
  260. package/skills/perl-testing/SKILL.md +474 -0
  261. package/skills/plan-orchestrate/SKILL.md +253 -0
  262. package/skills/plankton-code-quality/SKILL.md +236 -0
  263. package/skills/postgres-patterns/SKILL.md +146 -0
  264. package/skills/product-capability/SKILL.md +140 -0
  265. package/skills/product-lens/SKILL.md +91 -0
  266. package/skills/production-audit/SKILL.md +206 -0
  267. package/skills/production-scheduling/SKILL.md +237 -0
  268. package/skills/project-flow-ops/SKILL.md +110 -0
  269. package/skills/prompt-optimizer/SKILL.md +398 -0
  270. package/skills/python-patterns/SKILL.md +749 -0
  271. package/skills/python-testing/SKILL.md +815 -0
  272. package/skills/pytorch-patterns/SKILL.md +395 -0
  273. package/skills/quality-nonconformance/SKILL.md +259 -0
  274. package/skills/quarkus-patterns/SKILL.md +721 -0
  275. package/skills/quarkus-security/SKILL.md +466 -0
  276. package/skills/quarkus-tdd/SKILL.md +810 -0
  277. package/skills/quarkus-verification/SKILL.md +478 -0
  278. package/skills/ralphinho-rfc-pipeline/SKILL.md +66 -0
  279. package/skills/redis-patterns/SKILL.md +402 -0
  280. package/skills/regex-vs-llm-structured-text/SKILL.md +219 -0
  281. package/skills/remotion-video-creation/SKILL.md +43 -0
  282. package/skills/remotion-video-creation/rules/3d.md +86 -0
  283. package/skills/remotion-video-creation/rules/animations.md +29 -0
  284. package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
  285. package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
  286. package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
  287. package/skills/remotion-video-creation/rules/assets.md +78 -0
  288. package/skills/remotion-video-creation/rules/audio.md +172 -0
  289. package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
  290. package/skills/remotion-video-creation/rules/can-decode.md +75 -0
  291. package/skills/remotion-video-creation/rules/charts.md +58 -0
  292. package/skills/remotion-video-creation/rules/compositions.md +146 -0
  293. package/skills/remotion-video-creation/rules/display-captions.md +126 -0
  294. package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
  295. package/skills/remotion-video-creation/rules/fonts.md +152 -0
  296. package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
  297. package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
  298. package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
  299. package/skills/remotion-video-creation/rules/gifs.md +138 -0
  300. package/skills/remotion-video-creation/rules/images.md +130 -0
  301. package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
  302. package/skills/remotion-video-creation/rules/lottie.md +67 -0
  303. package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
  304. package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
  305. package/skills/remotion-video-creation/rules/sequencing.md +106 -0
  306. package/skills/remotion-video-creation/rules/tailwind.md +11 -0
  307. package/skills/remotion-video-creation/rules/text-animations.md +20 -0
  308. package/skills/remotion-video-creation/rules/timing.md +179 -0
  309. package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
  310. package/skills/remotion-video-creation/rules/transitions.md +122 -0
  311. package/skills/remotion-video-creation/rules/trimming.md +52 -0
  312. package/skills/remotion-video-creation/rules/videos.md +171 -0
  313. package/skills/repo-scan/SKILL.md +78 -0
  314. package/skills/research-ops/SKILL.md +111 -0
  315. package/skills/returns-reverse-logistics/SKILL.md +239 -0
  316. package/skills/rules-distill/SKILL.md +263 -0
  317. package/skills/rules-distill/scripts/scan-rules.sh +58 -0
  318. package/skills/rules-distill/scripts/scan-skills.sh +129 -0
  319. package/skills/rust-patterns/SKILL.md +498 -0
  320. package/skills/rust-testing/SKILL.md +499 -0
  321. package/skills/safety-guard/SKILL.md +74 -0
  322. package/skills/santa-method/SKILL.md +306 -0
  323. package/skills/scientific-db-pubmed-database/SKILL.md +175 -0
  324. package/skills/scientific-db-uspto-database/SKILL.md +177 -0
  325. package/skills/scientific-pkg-gget/SKILL.md +166 -0
  326. package/skills/scientific-thinking-literature-review/SKILL.md +192 -0
  327. package/skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
  328. package/skills/search-first/SKILL.md +181 -0
  329. package/skills/security-bounty-hunter/SKILL.md +99 -0
  330. package/skills/security-review/SKILL.md +502 -0
  331. package/skills/security-review/cloud-infrastructure-security.md +361 -0
  332. package/skills/seo/SKILL.md +153 -0
  333. package/skills/skill-comply/SKILL.md +57 -0
  334. package/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
  335. package/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
  336. package/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
  337. package/skills/skill-comply/prompts/classifier.md +24 -0
  338. package/skills/skill-comply/prompts/scenario_generator.md +62 -0
  339. package/skills/skill-comply/prompts/spec_generator.md +42 -0
  340. package/skills/skill-comply/pyproject.toml +15 -0
  341. package/skills/skill-comply/scripts/__init__.py +0 -0
  342. package/skills/skill-comply/scripts/classifier.py +85 -0
  343. package/skills/skill-comply/scripts/grader.py +124 -0
  344. package/skills/skill-comply/scripts/parser.py +107 -0
  345. package/skills/skill-comply/scripts/report.py +170 -0
  346. package/skills/skill-comply/scripts/run.py +127 -0
  347. package/skills/skill-comply/scripts/runner.py +186 -0
  348. package/skills/skill-comply/scripts/scenario_generator.py +70 -0
  349. package/skills/skill-comply/scripts/spec_generator.py +72 -0
  350. package/skills/skill-comply/scripts/utils.py +13 -0
  351. package/skills/skill-comply/tests/test_grader.py +197 -0
  352. package/skills/skill-comply/tests/test_parser.py +90 -0
  353. package/skills/skill-comply/tests/test_runner.py +172 -0
  354. package/skills/skill-scout/SKILL.md +139 -0
  355. package/skills/skill-stocktake/SKILL.md +193 -0
  356. package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
  357. package/skills/skill-stocktake/scripts/save-results.sh +56 -0
  358. package/skills/skill-stocktake/scripts/scan.sh +170 -0
  359. package/skills/social-graph-ranker/SKILL.md +153 -0
  360. package/skills/springboot-patterns/SKILL.md +313 -0
  361. package/skills/springboot-security/SKILL.md +271 -0
  362. package/skills/springboot-tdd/SKILL.md +157 -0
  363. package/skills/springboot-verification/SKILL.md +230 -0
  364. package/skills/strategic-compact/SKILL.md +129 -0
  365. package/skills/strategic-compact/suggest-compact.sh +54 -0
  366. package/skills/swift-actor-persistence/SKILL.md +142 -0
  367. package/skills/swift-concurrency-6-2/SKILL.md +216 -0
  368. package/skills/swift-protocol-di-testing/SKILL.md +189 -0
  369. package/skills/swiftui-patterns/SKILL.md +259 -0
  370. package/skills/tdd-workflow/SKILL.md +462 -0
  371. package/skills/team-builder/SKILL.md +166 -0
  372. package/skills/terminal-ops/SKILL.md +108 -0
  373. package/skills/tinystruct-patterns/SKILL.md +130 -0
  374. package/skills/tinystruct-patterns/references/architecture.md +77 -0
  375. package/skills/tinystruct-patterns/references/data-handling.md +35 -0
  376. package/skills/tinystruct-patterns/references/routing.md +57 -0
  377. package/skills/tinystruct-patterns/references/system-usage.md +74 -0
  378. package/skills/tinystruct-patterns/references/testing.md +59 -0
  379. package/skills/token-budget-advisor/SKILL.md +133 -0
  380. package/skills/ui-demo/SKILL.md +464 -0
  381. package/skills/ui-to-vue/SKILL.md +134 -0
  382. package/skills/unified-notifications-ops/SKILL.md +186 -0
  383. package/skills/verification-loop/SKILL.md +125 -0
  384. package/skills/video-editing/SKILL.md +309 -0
  385. package/skills/videodb/SKILL.md +373 -0
  386. package/skills/videodb/reference/api-reference.md +550 -0
  387. package/skills/videodb/reference/capture-reference.md +407 -0
  388. package/skills/videodb/reference/capture.md +101 -0
  389. package/skills/videodb/reference/editor.md +443 -0
  390. package/skills/videodb/reference/generative.md +331 -0
  391. package/skills/videodb/reference/rtstream-reference.md +564 -0
  392. package/skills/videodb/reference/rtstream.md +65 -0
  393. package/skills/videodb/reference/search.md +230 -0
  394. package/skills/videodb/reference/streaming.md +406 -0
  395. package/skills/videodb/reference/use-cases.md +118 -0
  396. package/skills/videodb/scripts/ws_listener.py +282 -0
  397. package/skills/visa-doc-translate/README.md +86 -0
  398. package/skills/visa-doc-translate/SKILL.md +117 -0
  399. package/skills/vite-patterns/SKILL.md +448 -0
  400. package/skills/windows-desktop-e2e/SKILL.md +787 -0
  401. package/skills/workspace-surface-audit/SKILL.md +124 -0
  402. package/skills/x-api/SKILL.md +233 -0
@@ -0,0 +1,428 @@
1
+ ---
2
+ name: database-migrations
3
+ description: Database migration best practices for schema changes, data migrations, rollbacks, and zero-downtime deployments across PostgreSQL, MySQL, and common ORMs (Prisma, Drizzle, Kysely, Django, TypeORM, golang-migrate).
4
+ ---
5
+
6
+ # Database Migration Patterns
7
+
8
+ Safe, reversible database schema changes for production systems.
9
+
10
+ ## When to Activate
11
+
12
+ - Creating or altering database tables
13
+ - Adding/removing columns or indexes
14
+ - Running data migrations (backfill, transform)
15
+ - Planning zero-downtime schema changes
16
+ - Setting up migration tooling for a new project
17
+
18
+ ## Core Principles
19
+
20
+ 1. **Every change is a migration** — never alter production databases manually
21
+ 2. **Migrations are forward-only in production** — rollbacks use new forward migrations
22
+ 3. **Schema and data migrations are separate** — never mix DDL and DML in one migration
23
+ 4. **Test migrations against production-sized data** — a migration that works on 100 rows may lock on 10M
24
+ 5. **Migrations are immutable once deployed** — never edit a migration that has run in production
25
+
26
+ ## Migration Safety Checklist
27
+
28
+ Before applying any migration:
29
+
30
+ - [ ] Migration has both UP and DOWN (or is explicitly marked irreversible)
31
+ - [ ] No full table locks on large tables (use concurrent operations)
32
+ - [ ] New columns have defaults or are nullable (never add NOT NULL without default)
33
+ - [ ] Indexes created concurrently (not inline with CREATE TABLE for existing tables)
34
+ - [ ] Data backfill is a separate migration from schema change
35
+ - [ ] Tested against a copy of production data
36
+ - [ ] Rollback plan documented
37
+
38
+ ## PostgreSQL Patterns
39
+
40
+ ### Adding a Column Safely
41
+
42
+ ```sql
43
+ -- GOOD: Nullable column, no lock
44
+ ALTER TABLE users ADD COLUMN avatar_url TEXT;
45
+
46
+ -- GOOD: Column with default (Postgres 11+ is instant, no rewrite)
47
+ ALTER TABLE users ADD COLUMN is_active BOOLEAN NOT NULL DEFAULT true;
48
+
49
+ -- BAD: NOT NULL without default on existing table (requires full rewrite)
50
+ ALTER TABLE users ADD COLUMN role TEXT NOT NULL;
51
+ -- This locks the table and rewrites every row
52
+ ```
53
+
54
+ ### Adding an Index Without Downtime
55
+
56
+ ```sql
57
+ -- BAD: Blocks writes on large tables
58
+ CREATE INDEX idx_users_email ON users (email);
59
+
60
+ -- GOOD: Non-blocking, allows concurrent writes
61
+ CREATE INDEX CONCURRENTLY idx_users_email ON users (email);
62
+
63
+ -- Note: CONCURRENTLY cannot run inside a transaction block
64
+ -- Most migration tools need special handling for this
65
+ ```
66
+
67
+ ### Renaming a Column (Zero-Downtime)
68
+
69
+ Never rename directly in production. Use the expand-contract pattern:
70
+
71
+ ```sql
72
+ -- Step 1: Add new column (migration 001)
73
+ ALTER TABLE users ADD COLUMN display_name TEXT;
74
+
75
+ -- Step 2: Backfill data (migration 002, data migration)
76
+ UPDATE users SET display_name = username WHERE display_name IS NULL;
77
+
78
+ -- Step 3: Update application code to read/write both columns
79
+ -- Deploy application changes
80
+
81
+ -- Step 4: Stop writing to old column, drop it (migration 003)
82
+ ALTER TABLE users DROP COLUMN username;
83
+ ```
84
+
85
+ ### Removing a Column Safely
86
+
87
+ ```sql
88
+ -- Step 1: Remove all application references to the column
89
+ -- Step 2: Deploy application without the column reference
90
+ -- Step 3: Drop column in next migration
91
+ ALTER TABLE orders DROP COLUMN legacy_status;
92
+
93
+ -- For Django: use SeparateDatabaseAndState to remove from model
94
+ -- without generating DROP COLUMN (then drop in next migration)
95
+ ```
96
+
97
+ ### Large Data Migrations
98
+
99
+ ```sql
100
+ -- BAD: Updates all rows in one transaction (locks table)
101
+ UPDATE users SET normalized_email = LOWER(email);
102
+
103
+ -- GOOD: Batch update with progress
104
+ DO $$
105
+ DECLARE
106
+ batch_size INT := 10000;
107
+ rows_updated INT;
108
+ BEGIN
109
+ LOOP
110
+ UPDATE users
111
+ SET normalized_email = LOWER(email)
112
+ WHERE id IN (
113
+ SELECT id FROM users
114
+ WHERE normalized_email IS NULL
115
+ LIMIT batch_size
116
+ FOR UPDATE SKIP LOCKED
117
+ );
118
+ GET DIAGNOSTICS rows_updated = ROW_COUNT;
119
+ RAISE NOTICE 'Updated % rows', rows_updated;
120
+ EXIT WHEN rows_updated = 0;
121
+ COMMIT;
122
+ END LOOP;
123
+ END $$;
124
+ ```
125
+
126
+ ## Prisma (TypeScript/Node.js)
127
+
128
+ ### Workflow
129
+
130
+ ```bash
131
+ # Create migration from schema changes
132
+ npx prisma migrate dev --name add_user_avatar
133
+
134
+ # Apply pending migrations in production
135
+ npx prisma migrate deploy
136
+
137
+ # Reset database (dev only)
138
+ npx prisma migrate reset
139
+
140
+ # Generate client after schema changes
141
+ npx prisma generate
142
+ ```
143
+
144
+ ### Schema Example
145
+
146
+ ```prisma
147
+ model User {
148
+ id String @id @default(cuid())
149
+ email String @unique
150
+ name String?
151
+ avatarUrl String? @map("avatar_url")
152
+ createdAt DateTime @default(now()) @map("created_at")
153
+ updatedAt DateTime @updatedAt @map("updated_at")
154
+ orders Order[]
155
+
156
+ @@map("users")
157
+ @@index([email])
158
+ }
159
+ ```
160
+
161
+ ### Custom SQL Migration
162
+
163
+ For operations Prisma cannot express (concurrent indexes, data backfills):
164
+
165
+ ```bash
166
+ # Create empty migration, then edit the SQL manually
167
+ npx prisma migrate dev --create-only --name add_email_index
168
+ ```
169
+
170
+ ```sql
171
+ -- migrations/20240115_add_email_index/migration.sql
172
+ -- Prisma cannot generate CONCURRENTLY, so we write it manually
173
+ CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_users_email ON users (email);
174
+ ```
175
+
176
+ ## Drizzle (TypeScript/Node.js)
177
+
178
+ ### Workflow
179
+
180
+ ```bash
181
+ # Generate migration from schema changes
182
+ npx drizzle-kit generate
183
+
184
+ # Apply migrations
185
+ npx drizzle-kit migrate
186
+
187
+ # Push schema directly (dev only, no migration file)
188
+ npx drizzle-kit push
189
+ ```
190
+
191
+ ### Schema Example
192
+
193
+ ```typescript
194
+ import { pgTable, text, timestamp, uuid, boolean } from "drizzle-orm/pg-core";
195
+
196
+ export const users = pgTable("users", {
197
+ id: uuid("id").primaryKey().defaultRandom(),
198
+ email: text("email").notNull().unique(),
199
+ name: text("name"),
200
+ isActive: boolean("is_active").notNull().default(true),
201
+ createdAt: timestamp("created_at").notNull().defaultNow(),
202
+ updatedAt: timestamp("updated_at").notNull().defaultNow(),
203
+ });
204
+ ```
205
+
206
+ ## Kysely (TypeScript/Node.js)
207
+
208
+ ### Workflow (kysely-ctl)
209
+
210
+ ```bash
211
+ # Initialize config file (kysely.config.ts)
212
+ kysely init
213
+
214
+ # Create a new migration file
215
+ kysely migrate make add_user_avatar
216
+
217
+ # Apply all pending migrations
218
+ kysely migrate latest
219
+
220
+ # Rollback last migration
221
+ kysely migrate down
222
+
223
+ # Show migration status
224
+ kysely migrate list
225
+ ```
226
+
227
+ ### Migration File
228
+
229
+ ```typescript
230
+ // migrations/2024_01_15_001_create_user_profile.ts
231
+ import { type Kysely, sql } from 'kysely'
232
+
233
+ // IMPORTANT: Always use Kysely<any>, not your typed DB interface.
234
+ // Migrations are frozen in time and must not depend on current schema types.
235
+ export async function up(db: Kysely<any>): Promise<void> {
236
+ await db.schema
237
+ .createTable('user_profile')
238
+ .addColumn('id', 'serial', (col) => col.primaryKey())
239
+ .addColumn('email', 'varchar(255)', (col) => col.notNull().unique())
240
+ .addColumn('avatar_url', 'text')
241
+ .addColumn('created_at', 'timestamp', (col) =>
242
+ col.defaultTo(sql`now()`).notNull()
243
+ )
244
+ .execute()
245
+
246
+ await db.schema
247
+ .createIndex('idx_user_profile_avatar')
248
+ .on('user_profile')
249
+ .column('avatar_url')
250
+ .execute()
251
+ }
252
+
253
+ export async function down(db: Kysely<any>): Promise<void> {
254
+ await db.schema.dropTable('user_profile').execute()
255
+ }
256
+ ```
257
+
258
+ ### Programmatic Migrator
259
+
260
+ ```typescript
261
+ import { Migrator, FileMigrationProvider } from 'kysely'
262
+ import { promises as fs } from 'fs'
263
+ import * as path from 'path'
264
+ // ESM only — CJS can use __dirname directly
265
+ import { fileURLToPath } from 'url'
266
+ const migrationFolder = path.join(
267
+ path.dirname(fileURLToPath(import.meta.url)),
268
+ './migrations',
269
+ )
270
+
271
+ // `db` is your Kysely<any> database instance
272
+ const migrator = new Migrator({
273
+ db,
274
+ provider: new FileMigrationProvider({
275
+ fs,
276
+ path,
277
+ migrationFolder,
278
+ }),
279
+ // WARNING: Only enable in development. Disables timestamp-ordering
280
+ // validation, which can cause schema drift between environments.
281
+ // allowUnorderedMigrations: true,
282
+ })
283
+
284
+ const { error, results } = await migrator.migrateToLatest()
285
+
286
+ results?.forEach((it) => {
287
+ if (it.status === 'Success') {
288
+ console.log(`migration "${it.migrationName}" executed successfully`)
289
+ } else if (it.status === 'Error') {
290
+ console.error(`failed to execute migration "${it.migrationName}"`)
291
+ }
292
+ })
293
+
294
+ if (error) {
295
+ console.error('migration failed', error)
296
+ process.exit(1)
297
+ }
298
+ ```
299
+
300
+ ## Django (Python)
301
+
302
+ ### Workflow
303
+
304
+ ```bash
305
+ # Generate migration from model changes
306
+ python manage.py makemigrations
307
+
308
+ # Apply migrations
309
+ python manage.py migrate
310
+
311
+ # Show migration status
312
+ python manage.py showmigrations
313
+
314
+ # Generate empty migration for custom SQL
315
+ python manage.py makemigrations --empty app_name -n description
316
+ ```
317
+
318
+ ### Data Migration
319
+
320
+ ```python
321
+ from django.db import migrations
322
+
323
+ def backfill_display_names(apps, schema_editor):
324
+ User = apps.get_model("accounts", "User")
325
+ batch_size = 5000
326
+ users = User.objects.filter(display_name="")
327
+ while users.exists():
328
+ batch = list(users[:batch_size])
329
+ for user in batch:
330
+ user.display_name = user.username
331
+ User.objects.bulk_update(batch, ["display_name"], batch_size=batch_size)
332
+
333
+ def reverse_backfill(apps, schema_editor):
334
+ pass # Data migration, no reverse needed
335
+
336
+ class Migration(migrations.Migration):
337
+ dependencies = [("accounts", "0015_add_display_name")]
338
+
339
+ operations = [
340
+ migrations.RunPython(backfill_display_names, reverse_backfill),
341
+ ]
342
+ ```
343
+
344
+ ### SeparateDatabaseAndState
345
+
346
+ Remove a column from the Django model without dropping it from the database immediately:
347
+
348
+ ```python
349
+ class Migration(migrations.Migration):
350
+ operations = [
351
+ migrations.SeparateDatabaseAndState(
352
+ state_operations=[
353
+ migrations.RemoveField(model_name="user", name="legacy_field"),
354
+ ],
355
+ database_operations=[], # Don't touch the DB yet
356
+ ),
357
+ ]
358
+ ```
359
+
360
+ ## golang-migrate (Go)
361
+
362
+ ### Workflow
363
+
364
+ ```bash
365
+ # Create migration pair
366
+ migrate create -ext sql -dir migrations -seq add_user_avatar
367
+
368
+ # Apply all pending migrations
369
+ migrate -path migrations -database "$DATABASE_URL" up
370
+
371
+ # Rollback last migration
372
+ migrate -path migrations -database "$DATABASE_URL" down 1
373
+
374
+ # Force version (fix dirty state)
375
+ migrate -path migrations -database "$DATABASE_URL" force VERSION
376
+ ```
377
+
378
+ ### Migration Files
379
+
380
+ ```sql
381
+ -- migrations/000003_add_user_avatar.up.sql
382
+ ALTER TABLE users ADD COLUMN avatar_url TEXT;
383
+ CREATE INDEX CONCURRENTLY idx_users_avatar ON users (avatar_url) WHERE avatar_url IS NOT NULL;
384
+
385
+ -- migrations/000003_add_user_avatar.down.sql
386
+ DROP INDEX IF EXISTS idx_users_avatar;
387
+ ALTER TABLE users DROP COLUMN IF EXISTS avatar_url;
388
+ ```
389
+
390
+ ## Zero-Downtime Migration Strategy
391
+
392
+ For critical production changes, follow the expand-contract pattern:
393
+
394
+ ```
395
+ Phase 1: EXPAND
396
+ - Add new column/table (nullable or with default)
397
+ - Deploy: app writes to BOTH old and new
398
+ - Backfill existing data
399
+
400
+ Phase 2: MIGRATE
401
+ - Deploy: app reads from NEW, writes to BOTH
402
+ - Verify data consistency
403
+
404
+ Phase 3: CONTRACT
405
+ - Deploy: app only uses NEW
406
+ - Drop old column/table in separate migration
407
+ ```
408
+
409
+ ### Timeline Example
410
+
411
+ ```
412
+ Day 1: Migration adds new_status column (nullable)
413
+ Day 1: Deploy app v2 — writes to both status and new_status
414
+ Day 2: Run backfill migration for existing rows
415
+ Day 3: Deploy app v3 — reads from new_status only
416
+ Day 7: Migration drops old status column
417
+ ```
418
+
419
+ ## Anti-Patterns
420
+
421
+ | Anti-Pattern | Why It Fails | Better Approach |
422
+ |-------------|-------------|-----------------|
423
+ | Manual SQL in production | No audit trail, unrepeatable | Always use migration files |
424
+ | Editing deployed migrations | Causes drift between environments | Create new migration instead |
425
+ | NOT NULL without default | Locks table, rewrites all rows | Add nullable, backfill, then add constraint |
426
+ | Inline index on large table | Blocks writes during build | CREATE INDEX CONCURRENTLY |
427
+ | Schema + data in one migration | Hard to rollback, long transactions | Separate migrations |
428
+ | Dropping column before removing code | Application errors on missing column | Remove code first, drop column next deploy |
@@ -0,0 +1,158 @@
1
+ ---
2
+ name: deep-research
3
+ description: Multi-source deep research using firecrawl and exa MCPs. Searches the web, synthesizes findings, and delivers cited reports with source attribution. Use when the user wants thorough research on any topic with evidence and citations.
4
+ ---
5
+
6
+ # Deep Research
7
+
8
+ > **Drift-prone skill.** Firecrawl/Exa MCP tool names, quotas, and result
9
+ > shapes change. Verify the configured MCP tools and current API docs before
10
+ > promising coverage or quoting live source counts.
11
+
12
+ Produce thorough, cited research reports from multiple web sources using firecrawl and exa MCP tools.
13
+
14
+ ## When to Activate
15
+
16
+ - User asks to research any topic in depth
17
+ - Competitive analysis, technology evaluation, or market sizing
18
+ - Due diligence on companies, investors, or technologies
19
+ - Any question requiring synthesis from multiple sources
20
+ - User says "research", "deep dive", "investigate", or "what's the current state of"
21
+
22
+ ## MCP Requirements
23
+
24
+ At least one of:
25
+ - **firecrawl** — `firecrawl_search`, `firecrawl_scrape`, `firecrawl_crawl`
26
+ - **exa** — `web_search_exa`, `web_search_advanced_exa`, `crawling_exa`
27
+
28
+ Both together give the best coverage. Configure in `~/.claude.json` or `~/.codex/config.toml`.
29
+
30
+ ## Workflow
31
+
32
+ ### Step 1: Understand the Goal
33
+
34
+ Ask 1-2 quick clarifying questions:
35
+ - "What's your goal — learning, making a decision, or writing something?"
36
+ - "Any specific angle or depth you want?"
37
+
38
+ If the user says "just research it" — skip ahead with reasonable defaults.
39
+
40
+ ### Step 2: Plan the Research
41
+
42
+ Break the topic into 3-5 research sub-questions. Example:
43
+ - Topic: "Impact of AI on healthcare"
44
+ - What are the main AI applications in healthcare today?
45
+ - What clinical outcomes have been measured?
46
+ - What are the regulatory challenges?
47
+ - What companies are leading this space?
48
+ - What's the market size and growth trajectory?
49
+
50
+ ### Step 3: Execute Multi-Source Search
51
+
52
+ For EACH sub-question, search using available MCP tools:
53
+
54
+ **With firecrawl:**
55
+ ```
56
+ firecrawl_search(query: "<sub-question keywords>", limit: 8)
57
+ ```
58
+
59
+ **With exa:**
60
+ ```
61
+ web_search_exa(query: "<sub-question keywords>", numResults: 8)
62
+ web_search_advanced_exa(query: "<keywords>", numResults: 5, startPublishedDate: "2025-01-01")
63
+ ```
64
+
65
+ **Search strategy:**
66
+ - Use 2-3 different keyword variations per sub-question
67
+ - Mix general and news-focused queries
68
+ - Aim for 15-30 unique sources total
69
+ - Prioritize: academic, official, reputable news > blogs > forums
70
+
71
+ ### Step 4: Deep-Read Key Sources
72
+
73
+ For the most promising URLs, fetch full content:
74
+
75
+ **With firecrawl:**
76
+ ```
77
+ firecrawl_scrape(url: "<url>")
78
+ ```
79
+
80
+ **With exa:**
81
+ ```
82
+ crawling_exa(url: "<url>", tokensNum: 5000)
83
+ ```
84
+
85
+ Read 3-5 key sources in full for depth. Do not rely only on search snippets.
86
+
87
+ ### Step 5: Synthesize and Write Report
88
+
89
+ Structure the report:
90
+
91
+ ```markdown
92
+ # [Topic]: Research Report
93
+ *Generated: [date] | Sources: [N] | Confidence: [High/Medium/Low]*
94
+
95
+ ## Executive Summary
96
+ [3-5 sentence overview of key findings]
97
+
98
+ ## 1. [First Major Theme]
99
+ [Findings with inline citations]
100
+ - Key point ([Source Name](url))
101
+ - Supporting data ([Source Name](url))
102
+
103
+ ## 2. [Second Major Theme]
104
+ ...
105
+
106
+ ## 3. [Third Major Theme]
107
+ ...
108
+
109
+ ## Key Takeaways
110
+ - [Actionable insight 1]
111
+ - [Actionable insight 2]
112
+ - [Actionable insight 3]
113
+
114
+ ## Sources
115
+ 1. [Title](url) — [one-line summary]
116
+ 2. ...
117
+
118
+ ## Methodology
119
+ Searched [N] queries across web and news. Analyzed [M] sources.
120
+ Sub-questions investigated: [list]
121
+ ```
122
+
123
+ ### Step 6: Deliver
124
+
125
+ - **Short topics**: Post the full report in chat
126
+ - **Long reports**: Post the executive summary + key takeaways, save full report to a file
127
+
128
+ ## Parallel Research with Subagents
129
+
130
+ For broad topics, use Claude Code's Task tool to parallelize:
131
+
132
+ ```
133
+ Launch 3 research agents in parallel:
134
+ 1. Agent 1: Research sub-questions 1-2
135
+ 2. Agent 2: Research sub-questions 3-4
136
+ 3. Agent 3: Research sub-question 5 + cross-cutting themes
137
+ ```
138
+
139
+ Each agent searches, reads sources, and returns findings. The main session synthesizes into the final report.
140
+
141
+ ## Quality Rules
142
+
143
+ 1. **Every claim needs a source.** No unsourced assertions.
144
+ 2. **Cross-reference.** If only one source says it, flag it as unverified.
145
+ 3. **Recency matters.** Prefer sources from the last 12 months.
146
+ 4. **Acknowledge gaps.** If you couldn't find good info on a sub-question, say so.
147
+ 5. **No hallucination.** If you don't know, say "insufficient data found."
148
+ 6. **Separate fact from inference.** Label estimates, projections, and opinions clearly.
149
+
150
+ ## Examples
151
+
152
+ ```
153
+ "Research the current state of nuclear fusion energy"
154
+ "Deep dive into Rust vs Go for backend services in 2026"
155
+ "Research the best strategies for bootstrapping a SaaS business"
156
+ "What's happening with the US housing market right now?"
157
+ "Investigate the competitive landscape for AI code editors"
158
+ ```