@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,86 @@
1
+ ---
2
+ name: 3d
3
+ description: 3D content in Remotion using Three.js and React Three Fiber.
4
+ metadata:
5
+ tags: 3d, three, threejs
6
+ ---
7
+
8
+ # Using Three.js and React Three Fiber in Remotion
9
+
10
+ Follow React Three Fiber and Three.js best practices.
11
+ Only the following Remotion-specific rules need to be followed:
12
+
13
+ ## Prerequisites
14
+
15
+ First, the `@remotion/three` package needs to be installed.
16
+ If it is not, use the following command:
17
+
18
+ ```bash
19
+ npx remotion add @remotion/three # If project uses npm
20
+ bunx remotion add @remotion/three # If project uses bun
21
+ yarn remotion add @remotion/three # If project uses yarn
22
+ pnpm exec remotion add @remotion/three # If project uses pnpm
23
+ ```
24
+
25
+ ## Using ThreeCanvas
26
+
27
+ You MUST wrap 3D content in `<ThreeCanvas>` and include proper lighting.
28
+ `<ThreeCanvas>` MUST have a `width` and `height` prop.
29
+
30
+ ```tsx
31
+ import { ThreeCanvas } from "@remotion/three";
32
+ import { useVideoConfig } from "remotion";
33
+
34
+ const { width, height } = useVideoConfig();
35
+
36
+ <ThreeCanvas width={width} height={height}>
37
+ <ambientLight intensity={0.4} />
38
+ <directionalLight position={[5, 5, 5]} intensity={0.8} />
39
+ <mesh>
40
+ <sphereGeometry args={[1, 32, 32]} />
41
+ <meshStandardMaterial color="red" />
42
+ </mesh>
43
+ </ThreeCanvas>
44
+ ```
45
+
46
+ ## No animations not driven by `useCurrentFrame()`
47
+
48
+ Shaders, models etc MUST NOT animate by themselves.
49
+ No animations are allowed unless they are driven by `useCurrentFrame()`.
50
+ Otherwise, it will cause flickering during rendering.
51
+
52
+ Using `useFrame()` from `@react-three/fiber` is forbidden.
53
+
54
+ ## Animate using `useCurrentFrame()`
55
+
56
+ Use `useCurrentFrame()` to perform animations.
57
+
58
+ ```tsx
59
+ const frame = useCurrentFrame();
60
+ const rotationY = frame * 0.02;
61
+
62
+ <mesh rotation={[0, rotationY, 0]}>
63
+ <boxGeometry args={[2, 2, 2]} />
64
+ <meshStandardMaterial color="#4a9eff" />
65
+ </mesh>
66
+ ```
67
+
68
+ ## Using `<Sequence>` inside `<ThreeCanvas>`
69
+
70
+ The `layout` prop of any `<Sequence>` inside a `<ThreeCanvas>` must be set to `none`.
71
+
72
+ ```tsx
73
+ import { Sequence } from "remotion";
74
+ import { ThreeCanvas } from "@remotion/three";
75
+
76
+ const { width, height } = useVideoConfig();
77
+
78
+ <ThreeCanvas width={width} height={height}>
79
+ <Sequence layout="none">
80
+ <mesh>
81
+ <boxGeometry args={[2, 2, 2]} />
82
+ <meshStandardMaterial color="#4a9eff" />
83
+ </mesh>
84
+ </Sequence>
85
+ </ThreeCanvas>
86
+ ```
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: animations
3
+ description: Fundamental animation skills for Remotion
4
+ metadata:
5
+ tags: animations, transitions, frames, useCurrentFrame
6
+ ---
7
+
8
+ All animations MUST be driven by the `useCurrentFrame()` hook.
9
+ Write animations in seconds and multiply them by the `fps` value from `useVideoConfig()`.
10
+
11
+ ```tsx
12
+ import { useCurrentFrame } from "remotion";
13
+
14
+ export const FadeIn = () => {
15
+ const frame = useCurrentFrame();
16
+ const { fps } = useVideoConfig();
17
+
18
+ const opacity = interpolate(frame, [0, 2 * fps], [0, 1], {
19
+ extrapolateRight: 'clamp',
20
+ });
21
+
22
+ return (
23
+ <div style={{ opacity }}>Hello World!</div>
24
+ );
25
+ };
26
+ ```
27
+
28
+ CSS transitions or animations are FORBIDDEN - they will not render correctly.
29
+ Tailwind animation class names are FORBIDDEN - they will not render correctly.
@@ -0,0 +1,173 @@
1
+ import {loadFont} from '@remotion/google-fonts/Inter';
2
+ import {AbsoluteFill, spring, useCurrentFrame, useVideoConfig} from 'remotion';
3
+
4
+ const {fontFamily} = loadFont();
5
+
6
+ const COLOR_BAR = '#D4AF37';
7
+ const COLOR_TEXT = '#ffffff';
8
+ const COLOR_MUTED = '#888888';
9
+ const COLOR_BG = '#0a0a0a';
10
+ const COLOR_AXIS = '#333333';
11
+
12
+ // Ideal composition size: 1280x720
13
+
14
+ const Title: React.FC<{children: React.ReactNode}> = ({children}) => (
15
+ <div style={{textAlign: 'center', marginBottom: 40}}>
16
+ <div style={{color: COLOR_TEXT, fontSize: 48, fontWeight: 600}}>
17
+ {children}
18
+ </div>
19
+ </div>
20
+ );
21
+
22
+ const YAxis: React.FC<{steps: number[]; height: number}> = ({
23
+ steps,
24
+ height,
25
+ }) => (
26
+ <div
27
+ style={{
28
+ display: 'flex',
29
+ flexDirection: 'column',
30
+ justifyContent: 'space-between',
31
+ height,
32
+ paddingRight: 16,
33
+ }}
34
+ >
35
+ {steps
36
+ .slice()
37
+ .reverse()
38
+ .map((step) => (
39
+ <div
40
+ key={step}
41
+ style={{
42
+ color: COLOR_MUTED,
43
+ fontSize: 20,
44
+ textAlign: 'right',
45
+ }}
46
+ >
47
+ {step.toLocaleString()}
48
+ </div>
49
+ ))}
50
+ </div>
51
+ );
52
+
53
+ const Bar: React.FC<{
54
+ height: number;
55
+ progress: number;
56
+ }> = ({height, progress}) => (
57
+ <div
58
+ style={{
59
+ flex: 1,
60
+ display: 'flex',
61
+ flexDirection: 'column',
62
+ justifyContent: 'flex-end',
63
+ }}
64
+ >
65
+ <div
66
+ style={{
67
+ width: '100%',
68
+ height,
69
+ backgroundColor: COLOR_BAR,
70
+ borderRadius: '8px 8px 0 0',
71
+ opacity: progress,
72
+ }}
73
+ />
74
+ </div>
75
+ );
76
+
77
+ const XAxis: React.FC<{
78
+ children: React.ReactNode;
79
+ labels: string[];
80
+ height: number;
81
+ }> = ({children, labels, height}) => (
82
+ <div style={{flex: 1, display: 'flex', flexDirection: 'column'}}>
83
+ <div
84
+ style={{
85
+ display: 'flex',
86
+ alignItems: 'flex-end',
87
+ gap: 16,
88
+ height,
89
+ borderLeft: `2px solid ${COLOR_AXIS}`,
90
+ borderBottom: `2px solid ${COLOR_AXIS}`,
91
+ paddingLeft: 16,
92
+ }}
93
+ >
94
+ {children}
95
+ </div>
96
+ <div
97
+ style={{
98
+ display: 'flex',
99
+ gap: 16,
100
+ paddingLeft: 16,
101
+ marginTop: 12,
102
+ }}
103
+ >
104
+ {labels.map((label) => (
105
+ <div
106
+ key={label}
107
+ style={{
108
+ flex: 1,
109
+ textAlign: 'center',
110
+ color: COLOR_MUTED,
111
+ fontSize: 20,
112
+ }}
113
+ >
114
+ {label}
115
+ </div>
116
+ ))}
117
+ </div>
118
+ </div>
119
+ );
120
+
121
+ export const MyAnimation = () => {
122
+ const frame = useCurrentFrame();
123
+ const {fps, height} = useVideoConfig();
124
+
125
+ const data = [
126
+ {month: 'Jan', price: 2039},
127
+ {month: 'Mar', price: 2160},
128
+ {month: 'May', price: 2327},
129
+ {month: 'Jul', price: 2426},
130
+ {month: 'Sep', price: 2634},
131
+ {month: 'Nov', price: 2672},
132
+ ];
133
+
134
+ const minPrice = 2000;
135
+ const maxPrice = 2800;
136
+ const priceRange = maxPrice - minPrice;
137
+ const chartHeight = height - 280;
138
+ const yAxisSteps = [2000, 2400, 2800];
139
+
140
+ return (
141
+ <AbsoluteFill
142
+ style={{
143
+ backgroundColor: COLOR_BG,
144
+ padding: 60,
145
+ display: 'flex',
146
+ flexDirection: 'column',
147
+ fontFamily,
148
+ }}
149
+ >
150
+ <Title>Gold Price 2024</Title>
151
+
152
+ <div style={{display: 'flex', flex: 1}}>
153
+ <YAxis steps={yAxisSteps} height={chartHeight} />
154
+ <XAxis height={chartHeight} labels={data.map((d) => d.month)}>
155
+ {data.map((item, i) => {
156
+ const progress = spring({
157
+ frame: frame - i * 5 - 10,
158
+ fps,
159
+ config: {damping: 18, stiffness: 80},
160
+ });
161
+
162
+ const barHeight =
163
+ ((item.price - minPrice) / priceRange) * chartHeight * progress;
164
+
165
+ return (
166
+ <Bar key={item.month} height={barHeight} progress={progress} />
167
+ );
168
+ })}
169
+ </XAxis>
170
+ </div>
171
+ </AbsoluteFill>
172
+ );
173
+ };
@@ -0,0 +1,100 @@
1
+ import {
2
+ AbsoluteFill,
3
+ interpolate,
4
+ useCurrentFrame,
5
+ useVideoConfig,
6
+ } from 'remotion';
7
+
8
+ const COLOR_BG = '#ffffff';
9
+ const COLOR_TEXT = '#000000';
10
+ const FULL_TEXT = 'From prompt to motion graphics. This is Remotion.';
11
+ const PAUSE_AFTER = 'From prompt to motion graphics.';
12
+ const FONT_SIZE = 72;
13
+ const FONT_WEIGHT = 700;
14
+ const CHAR_FRAMES = 2;
15
+ const CURSOR_BLINK_FRAMES = 16;
16
+ const PAUSE_SECONDS = 1;
17
+
18
+ // Ideal composition size: 1280x720
19
+
20
+ const getTypedText = ({
21
+ frame,
22
+ fullText,
23
+ pauseAfter,
24
+ charFrames,
25
+ pauseFrames,
26
+ }: {
27
+ frame: number;
28
+ fullText: string;
29
+ pauseAfter: string;
30
+ charFrames: number;
31
+ pauseFrames: number;
32
+ }): string => {
33
+ const pauseIndex = fullText.indexOf(pauseAfter);
34
+ const preLen =
35
+ pauseIndex >= 0 ? pauseIndex + pauseAfter.length : fullText.length;
36
+
37
+ let typedChars = 0;
38
+ if (frame < preLen * charFrames) {
39
+ typedChars = Math.floor(frame / charFrames);
40
+ } else if (frame < preLen * charFrames + pauseFrames) {
41
+ typedChars = preLen;
42
+ } else {
43
+ const postPhase = frame - preLen * charFrames - pauseFrames;
44
+ typedChars = Math.min(
45
+ fullText.length,
46
+ preLen + Math.floor(postPhase / charFrames),
47
+ );
48
+ }
49
+ return fullText.slice(0, typedChars);
50
+ };
51
+
52
+ const Cursor: React.FC<{
53
+ frame: number;
54
+ blinkFrames: number;
55
+ symbol?: string;
56
+ }> = ({frame, blinkFrames, symbol = '\u258C'}) => {
57
+ const opacity = interpolate(
58
+ frame % blinkFrames,
59
+ [0, blinkFrames / 2, blinkFrames],
60
+ [1, 0, 1],
61
+ {extrapolateLeft: 'clamp', extrapolateRight: 'clamp'},
62
+ );
63
+
64
+ return <span style={{opacity}}>{symbol}</span>;
65
+ };
66
+
67
+ export const MyAnimation = () => {
68
+ const frame = useCurrentFrame();
69
+ const {fps} = useVideoConfig();
70
+
71
+ const pauseFrames = Math.round(fps * PAUSE_SECONDS);
72
+
73
+ const typedText = getTypedText({
74
+ frame,
75
+ fullText: FULL_TEXT,
76
+ pauseAfter: PAUSE_AFTER,
77
+ charFrames: CHAR_FRAMES,
78
+ pauseFrames,
79
+ });
80
+
81
+ return (
82
+ <AbsoluteFill
83
+ style={{
84
+ backgroundColor: COLOR_BG,
85
+ }}
86
+ >
87
+ <div
88
+ style={{
89
+ color: COLOR_TEXT,
90
+ fontSize: FONT_SIZE,
91
+ fontWeight: FONT_WEIGHT,
92
+ fontFamily: 'sans-serif',
93
+ }}
94
+ >
95
+ <span>{typedText}</span>
96
+ <Cursor frame={frame} blinkFrames={CURSOR_BLINK_FRAMES} />
97
+ </div>
98
+ </AbsoluteFill>
99
+ );
100
+ };
@@ -0,0 +1,108 @@
1
+ import {loadFont} from '@remotion/google-fonts/Inter';
2
+ import React from 'react';
3
+ import {
4
+ AbsoluteFill,
5
+ spring,
6
+ useCurrentFrame,
7
+ useVideoConfig,
8
+ } from 'remotion';
9
+
10
+ /*
11
+ * Highlight a word in a sentence with a spring-animated wipe effect.
12
+ */
13
+
14
+ // Ideal composition size: 1280x720
15
+
16
+ const COLOR_BG = '#ffffff';
17
+ const COLOR_TEXT = '#000000';
18
+ const COLOR_HIGHLIGHT = '#A7C7E7';
19
+ const FULL_TEXT = 'This is Remotion.';
20
+ const HIGHLIGHT_WORD = 'Remotion';
21
+ const FONT_SIZE = 72;
22
+ const FONT_WEIGHT = 700;
23
+ const HIGHLIGHT_START_FRAME = 30;
24
+ const HIGHLIGHT_WIPE_DURATION = 18;
25
+
26
+ const {fontFamily} = loadFont();
27
+
28
+ const Highlight: React.FC<{
29
+ word: string;
30
+ color: string;
31
+ delay: number;
32
+ durationInFrames: number;
33
+ }> = ({word, color, delay, durationInFrames}) => {
34
+ const frame = useCurrentFrame();
35
+ const {fps} = useVideoConfig();
36
+
37
+ const highlightProgress = spring({
38
+ fps,
39
+ frame,
40
+ config: {damping: 200},
41
+ delay,
42
+ durationInFrames,
43
+ });
44
+ const scaleX = Math.max(0, Math.min(1, highlightProgress));
45
+
46
+ return (
47
+ <span style={{position: 'relative', display: 'inline-block'}}>
48
+ <span
49
+ style={{
50
+ position: 'absolute',
51
+ left: 0,
52
+ right: 0,
53
+ top: '50%',
54
+ height: '1.05em',
55
+ transform: `translateY(-50%) scaleX(${scaleX})`,
56
+ transformOrigin: 'left center',
57
+ backgroundColor: color,
58
+ borderRadius: '0.18em',
59
+ zIndex: 0,
60
+ }}
61
+ />
62
+ <span style={{position: 'relative', zIndex: 1}}>{word}</span>
63
+ </span>
64
+ );
65
+ };
66
+
67
+ export const MyAnimation = () => {
68
+ const highlightIndex = FULL_TEXT.indexOf(HIGHLIGHT_WORD);
69
+ const hasHighlight = highlightIndex >= 0;
70
+ const preText = hasHighlight ? FULL_TEXT.slice(0, highlightIndex) : FULL_TEXT;
71
+ const postText = hasHighlight
72
+ ? FULL_TEXT.slice(highlightIndex + HIGHLIGHT_WORD.length)
73
+ : '';
74
+
75
+ return (
76
+ <AbsoluteFill
77
+ style={{
78
+ backgroundColor: COLOR_BG,
79
+ alignItems: 'center',
80
+ justifyContent: 'center',
81
+ fontFamily,
82
+ }}
83
+ >
84
+ <div
85
+ style={{
86
+ color: COLOR_TEXT,
87
+ fontSize: FONT_SIZE,
88
+ fontWeight: FONT_WEIGHT,
89
+ }}
90
+ >
91
+ {hasHighlight ? (
92
+ <>
93
+ <span>{preText}</span>
94
+ <Highlight
95
+ word={HIGHLIGHT_WORD}
96
+ color={COLOR_HIGHLIGHT}
97
+ delay={HIGHLIGHT_START_FRAME}
98
+ durationInFrames={HIGHLIGHT_WIPE_DURATION}
99
+ />
100
+ <span>{postText}</span>
101
+ </>
102
+ ) : (
103
+ <span>{FULL_TEXT}</span>
104
+ )}
105
+ </div>
106
+ </AbsoluteFill>
107
+ );
108
+ };
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: assets
3
+ description: Importing images, videos, audio, and fonts into Remotion
4
+ metadata:
5
+ tags: assets, staticFile, images, fonts, public
6
+ ---
7
+
8
+ # Importing assets in Remotion
9
+
10
+ ## The public folder
11
+
12
+ Place assets in the `public/` folder at your project root.
13
+
14
+ ## Using staticFile()
15
+
16
+ You MUST use `staticFile()` to reference files from the `public/` folder:
17
+
18
+ ```tsx
19
+ import {Img, staticFile} from 'remotion';
20
+
21
+ export const MyComposition = () => {
22
+ return <Img src={staticFile('logo.png')} />;
23
+ };
24
+ ```
25
+
26
+ The function returns an encoded URL that works correctly when deploying to subdirectories.
27
+
28
+ ## Using with components
29
+
30
+ **Images:**
31
+
32
+ ```tsx
33
+ import {Img, staticFile} from 'remotion';
34
+
35
+ <Img src={staticFile('photo.png')} />;
36
+ ```
37
+
38
+ **Videos:**
39
+
40
+ ```tsx
41
+ import {Video} from '@remotion/media';
42
+ import {staticFile} from 'remotion';
43
+
44
+ <Video src={staticFile('clip.mp4')} />;
45
+ ```
46
+
47
+ **Audio:**
48
+
49
+ ```tsx
50
+ import {Audio} from '@remotion/media';
51
+ import {staticFile} from 'remotion';
52
+
53
+ <Audio src={staticFile('music.mp3')} />;
54
+ ```
55
+
56
+ **Fonts:**
57
+
58
+ ```tsx
59
+ import {staticFile} from 'remotion';
60
+
61
+ const fontFamily = new FontFace('MyFont', `url(${staticFile('font.woff2')})`);
62
+ await fontFamily.load();
63
+ document.fonts.add(fontFamily);
64
+ ```
65
+
66
+ ## Remote URLs
67
+
68
+ Remote URLs can be used directly without `staticFile()`:
69
+
70
+ ```tsx
71
+ <Img src="https://example.com/image.png" />
72
+ <Video src="https://remotion.media/video.mp4" />
73
+ ```
74
+
75
+ ## Important notes
76
+
77
+ - Remotion components (`<Img>`, `<Video>`, `<Audio>`) ensure assets are fully loaded before rendering
78
+ - Special characters in filenames (`#`, `?`, `&`) are automatically encoded