@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,373 @@
1
+ ---
2
+ name: videodb
3
+ description: See, Understand, Act on video and audio. See- ingest from local files, URLs, RTSP/live feeds, or live record desktop; return realtime context and playable stream links. Understand- extract frames, build visual/semantic/temporal indexes, and search moments with timestamps and auto-clips. Act- transcode and normalize (codec, fps, resolution, aspect ratio), perform timeline edits (subtitles, text/image overlays, branding, audio overlays, dubbing, translation), generate media assets (image, audio, video), and create real time alerts for events from live streams or desktop capture.
4
+ allowed-tools: Read Grep Glob Bash(python:*)
5
+ argument-hint: "[task description]"
6
+ ---
7
+
8
+ # VideoDB Skill
9
+
10
+ **Perception + memory + actions for video, live streams, and desktop sessions.**
11
+
12
+ ## When to use
13
+
14
+ ### Desktop Perception
15
+ - Start/stop a **desktop session** capturing **screen, mic, and system audio**
16
+ - Stream **live context** and store **episodic session memory**
17
+ - Run **real-time alerts/triggers** on what's spoken and what's happening on screen
18
+ - Produce **session summaries**, a searchable timeline, and **playable evidence links**
19
+
20
+ ### Video ingest + stream
21
+ - Ingest a **file or URL** and return a **playable web stream link**
22
+ - Transcode/normalize: **codec, bitrate, fps, resolution, aspect ratio**
23
+
24
+ ### Index + search (timestamps + evidence)
25
+ - Build **visual**, **spoken**, and **keyword** indexes
26
+ - Search and return exact moments with **timestamps** and **playable evidence**
27
+ - Auto-create **clips** from search results
28
+
29
+ ### Timeline editing + generation
30
+ - Subtitles: **generate**, **translate**, **burn-in**
31
+ - Overlays: **text/image/branding**, motion captions
32
+ - Audio: **background music**, **voiceover**, **dubbing**
33
+ - Programmatic composition and exports via **timeline operations**
34
+
35
+ ### Live streams (RTSP) + monitoring
36
+ - Connect **RTSP/live feeds**
37
+ - Run **real-time visual and spoken understanding** and emit **events/alerts** for monitoring workflows
38
+
39
+ ## How it works
40
+
41
+ ### Common inputs
42
+ - Local **file path**, public **URL**, or **RTSP URL**
43
+ - Desktop capture request: **start / stop / summarize session**
44
+ - Desired operations: get context for understanding, transcode spec, index spec, search query, clip ranges, timeline edits, alert rules
45
+
46
+ ### Common outputs
47
+ - **Stream URL**
48
+ - Search results with **timestamps** and **evidence links**
49
+ - Generated assets: subtitles, audio, images, clips
50
+ - **Event/alert payloads** for live streams
51
+ - Desktop **session summaries** and memory entries
52
+
53
+ ### Running Python code
54
+
55
+ Before running any VideoDB code, change to the project directory and load environment variables:
56
+
57
+ ```python
58
+ from dotenv import load_dotenv
59
+ load_dotenv(".env")
60
+
61
+ import videodb
62
+ conn = videodb.connect()
63
+ ```
64
+
65
+ This reads `VIDEO_DB_API_KEY` from:
66
+ 1. Environment (if already exported)
67
+ 2. Project's `.env` file in current directory
68
+
69
+ If the key is missing, `videodb.connect()` raises `AuthenticationError` automatically.
70
+
71
+ Do NOT write a script file when a short inline command works.
72
+
73
+ When writing inline Python (`python -c "..."`), always use properly formatted code — use semicolons to separate statements and keep it readable. For anything longer than ~3 statements, use a heredoc instead:
74
+
75
+ ```bash
76
+ python << 'EOF'
77
+ from dotenv import load_dotenv
78
+ load_dotenv(".env")
79
+
80
+ import videodb
81
+ conn = videodb.connect()
82
+ coll = conn.get_collection()
83
+ print(f"Videos: {len(coll.get_videos())}")
84
+ EOF
85
+ ```
86
+
87
+ ### Setup
88
+
89
+ When the user asks to "setup videodb" or similar:
90
+
91
+ ### 1. Install SDK
92
+
93
+ ```bash
94
+ pip install "videodb[capture]" python-dotenv
95
+ ```
96
+
97
+ If `videodb[capture]` fails on Linux, install without the capture extra:
98
+
99
+ ```bash
100
+ pip install videodb python-dotenv
101
+ ```
102
+
103
+ ### 2. Configure API key
104
+
105
+ The user must set `VIDEO_DB_API_KEY` using **either** method:
106
+
107
+ - **Export in terminal** (before starting Claude): `export VIDEO_DB_API_KEY=your-key`
108
+ - **Project `.env` file**: Save `VIDEO_DB_API_KEY=your-key` in the project's `.env` file
109
+
110
+ Get a free API key at [console.videodb.io](https://console.videodb.io) (50 free uploads, no credit card).
111
+
112
+ **Do NOT** read, write, or handle the API key yourself. Always let the user set it.
113
+
114
+ ### Quick Reference
115
+
116
+ ### Upload media
117
+
118
+ ```python
119
+ # URL
120
+ video = coll.upload(url="https://example.com/video.mp4")
121
+
122
+ # YouTube
123
+ video = coll.upload(url="https://www.youtube.com/watch?v=VIDEO_ID")
124
+
125
+ # Local file
126
+ video = coll.upload(file_path="/path/to/video.mp4")
127
+ ```
128
+
129
+ ### Transcript + subtitle
130
+
131
+ ```python
132
+ # force=True skips the error if the video is already indexed
133
+ video.index_spoken_words(force=True)
134
+ text = video.get_transcript_text()
135
+ stream_url = video.add_subtitle()
136
+ ```
137
+
138
+ ### Search inside videos
139
+
140
+ ```python
141
+ from videodb.exceptions import InvalidRequestError
142
+
143
+ video.index_spoken_words(force=True)
144
+
145
+ # search() raises InvalidRequestError when no results are found.
146
+ # Always wrap in try/except and treat "No results found" as empty.
147
+ try:
148
+ results = video.search("product demo")
149
+ shots = results.get_shots()
150
+ stream_url = results.compile()
151
+ except InvalidRequestError as e:
152
+ if "No results found" in str(e):
153
+ shots = []
154
+ else:
155
+ raise
156
+ ```
157
+
158
+ ### Scene search
159
+
160
+ ```python
161
+ import re
162
+ from videodb import SearchType, IndexType, SceneExtractionType
163
+ from videodb.exceptions import InvalidRequestError
164
+
165
+ # index_scenes() has no force parameter — it raises an error if a scene
166
+ # index already exists. Extract the existing index ID from the error.
167
+ try:
168
+ scene_index_id = video.index_scenes(
169
+ extraction_type=SceneExtractionType.shot_based,
170
+ prompt="Describe the visual content in this scene.",
171
+ )
172
+ except Exception as e:
173
+ match = re.search(r"id\s+([a-f0-9]+)", str(e))
174
+ if match:
175
+ scene_index_id = match.group(1)
176
+ else:
177
+ raise
178
+
179
+ # Use score_threshold to filter low-relevance noise (recommended: 0.3+)
180
+ try:
181
+ results = video.search(
182
+ query="person writing on a whiteboard",
183
+ search_type=SearchType.semantic,
184
+ index_type=IndexType.scene,
185
+ scene_index_id=scene_index_id,
186
+ score_threshold=0.3,
187
+ )
188
+ shots = results.get_shots()
189
+ stream_url = results.compile()
190
+ except InvalidRequestError as e:
191
+ if "No results found" in str(e):
192
+ shots = []
193
+ else:
194
+ raise
195
+ ```
196
+
197
+ ### Timeline editing
198
+
199
+ **Important:** Always validate timestamps before building a timeline:
200
+ - `start` must be >= 0 (negative values are silently accepted but produce broken output)
201
+ - `start` must be < `end`
202
+ - `end` must be <= `video.length`
203
+
204
+ ```python
205
+ from videodb.timeline import Timeline
206
+ from videodb.asset import VideoAsset, TextAsset, TextStyle
207
+
208
+ timeline = Timeline(conn)
209
+ timeline.add_inline(VideoAsset(asset_id=video.id, start=10, end=30))
210
+ timeline.add_overlay(0, TextAsset(text="The End", duration=3, style=TextStyle(fontsize=36)))
211
+ stream_url = timeline.generate_stream()
212
+ ```
213
+
214
+ ### Transcode video (resolution / quality change)
215
+
216
+ ```python
217
+ from videodb import TranscodeMode, VideoConfig, AudioConfig
218
+
219
+ # Change resolution, quality, or aspect ratio server-side
220
+ job_id = conn.transcode(
221
+ source="https://example.com/video.mp4",
222
+ callback_url="https://example.com/webhook",
223
+ mode=TranscodeMode.economy,
224
+ video_config=VideoConfig(resolution=720, quality=23, aspect_ratio="16:9"),
225
+ audio_config=AudioConfig(mute=False),
226
+ )
227
+ ```
228
+
229
+ ### Reframe aspect ratio (for social platforms)
230
+
231
+ **Warning:** `reframe()` is a slow server-side operation. For long videos it can take
232
+ several minutes and may time out. Best practices:
233
+ - Always limit to a short segment using `start`/`end` when possible
234
+ - For full-length videos, use `callback_url` for async processing
235
+ - Trim the video on a `Timeline` first, then reframe the shorter result
236
+
237
+ ```python
238
+ from videodb import ReframeMode
239
+
240
+ # Always prefer reframing a short segment:
241
+ reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)
242
+
243
+ # Async reframe for full-length videos (returns None, result via webhook):
244
+ video.reframe(target="vertical", callback_url="https://example.com/webhook")
245
+
246
+ # Presets: "vertical" (9:16), "square" (1:1), "landscape" (16:9)
247
+ reframed = video.reframe(start=0, end=60, target="square")
248
+
249
+ # Custom dimensions
250
+ reframed = video.reframe(start=0, end=60, target={"width": 1280, "height": 720})
251
+ ```
252
+
253
+ ### Generative media
254
+
255
+ ```python
256
+ image = coll.generate_image(
257
+ prompt="a sunset over mountains",
258
+ aspect_ratio="16:9",
259
+ )
260
+ ```
261
+
262
+ ## Error handling
263
+
264
+ ```python
265
+ from videodb.exceptions import AuthenticationError, InvalidRequestError
266
+
267
+ try:
268
+ conn = videodb.connect()
269
+ except AuthenticationError:
270
+ print("Check your VIDEO_DB_API_KEY")
271
+
272
+ try:
273
+ video = coll.upload(url="https://example.com/video.mp4")
274
+ except InvalidRequestError as e:
275
+ print(f"Upload failed: {e}")
276
+ ```
277
+
278
+ ### Common pitfalls
279
+
280
+ | Scenario | Error message | Solution |
281
+ |----------|--------------|----------|
282
+ | Indexing an already-indexed video | `Spoken word index for video already exists` | Use `video.index_spoken_words(force=True)` to skip if already indexed |
283
+ | Scene index already exists | `Scene index with id XXXX already exists` | Extract the existing `scene_index_id` from the error with `re.search(r"id\s+([a-f0-9]+)", str(e))` |
284
+ | Search finds no matches | `InvalidRequestError: No results found` | Catch the exception and treat as empty results (`shots = []`) |
285
+ | Reframe times out | Blocks indefinitely on long videos | Use `start`/`end` to limit segment, or pass `callback_url` for async |
286
+ | Negative timestamps on Timeline | Silently produces broken stream | Always validate `start >= 0` before creating `VideoAsset` |
287
+ | `generate_video()` / `create_collection()` fails | `Operation not allowed` or `maximum limit` | Plan-gated features — inform the user about plan limits |
288
+
289
+ ## Examples
290
+
291
+ ### Canonical prompts
292
+ - "Start desktop capture and alert when a password field appears."
293
+ - "Record my session and produce an actionable summary when it ends."
294
+ - "Ingest this file and return a playable stream link."
295
+ - "Index this folder and find every scene with people, return timestamps."
296
+ - "Generate subtitles, burn them in, and add light background music."
297
+ - "Connect this RTSP URL and alert when a person enters the zone."
298
+
299
+ ### Screen Recording (Desktop Capture)
300
+
301
+ Use `ws_listener.py` to capture WebSocket events during recording sessions. Desktop capture supports **macOS** only.
302
+
303
+ #### Quick Start
304
+
305
+ 1. **Choose state dir**: `STATE_DIR="${VIDEODB_EVENTS_DIR:-$HOME/.local/state/videodb}"`
306
+ 2. **Start listener**: `VIDEODB_EVENTS_DIR="$STATE_DIR" python scripts/ws_listener.py --clear "$STATE_DIR" &`
307
+ 3. **Get WebSocket ID**: `cat "$STATE_DIR/videodb_ws_id"`
308
+ 4. **Run capture code** (see reference/capture.md for the full workflow)
309
+ 5. **Events written to**: `$STATE_DIR/videodb_events.jsonl`
310
+
311
+ Use `--clear` whenever you start a fresh capture run so stale transcript and visual events do not leak into the new session.
312
+
313
+ #### Query Events
314
+
315
+ ```python
316
+ import json
317
+ import os
318
+ import time
319
+ from pathlib import Path
320
+
321
+ events_dir = Path(os.environ.get("VIDEODB_EVENTS_DIR", Path.home() / ".local" / "state" / "videodb"))
322
+ events_file = events_dir / "videodb_events.jsonl"
323
+ events = []
324
+
325
+ if events_file.exists():
326
+ with events_file.open(encoding="utf-8") as handle:
327
+ for line in handle:
328
+ try:
329
+ events.append(json.loads(line))
330
+ except json.JSONDecodeError:
331
+ continue
332
+
333
+ transcripts = [e["data"]["text"] for e in events if e.get("channel") == "transcript"]
334
+ cutoff = time.time() - 300
335
+ recent_visual = [
336
+ e for e in events
337
+ if e.get("channel") == "visual_index" and e["unix_ts"] > cutoff
338
+ ]
339
+ ```
340
+
341
+ ## Additional docs
342
+
343
+ Reference documentation is in the `reference/` directory adjacent to this SKILL.md file. Use the Glob tool to locate it if needed.
344
+
345
+ - [reference/api-reference.md](reference/api-reference.md) - Complete VideoDB Python SDK API reference
346
+ - [reference/search.md](reference/search.md) - In-depth guide to video search (spoken word and scene-based)
347
+ - [reference/editor.md](reference/editor.md) - Timeline editing, assets, and composition
348
+ - [reference/streaming.md](reference/streaming.md) - HLS streaming and instant playback
349
+ - [reference/generative.md](reference/generative.md) - AI-powered media generation (images, video, audio)
350
+ - [reference/rtstream.md](reference/rtstream.md) - Live stream ingestion workflow (RTSP/RTMP)
351
+ - [reference/rtstream-reference.md](reference/rtstream-reference.md) - RTStream SDK methods and AI pipelines
352
+ - [reference/capture.md](reference/capture.md) - Desktop capture workflow
353
+ - [reference/capture-reference.md](reference/capture-reference.md) - Capture SDK and WebSocket events
354
+ - [reference/use-cases.md](reference/use-cases.md) - Common video processing patterns and examples
355
+
356
+ **Do not use ffmpeg, moviepy, or local encoding tools** when VideoDB supports the operation. The following are all handled server-side by VideoDB — trimming, combining clips, overlaying audio or music, adding subtitles, text/image overlays, transcoding, resolution changes, aspect-ratio conversion, resizing for platform requirements, transcription, and media generation. Only fall back to local tools for operations listed under Limitations in reference/editor.md (transitions, speed changes, crop/zoom, colour grading, volume mixing).
357
+
358
+ ### When to use what
359
+
360
+ | Problem | VideoDB solution |
361
+ |---------|-----------------|
362
+ | Platform rejects video aspect ratio or resolution | `video.reframe()` or `conn.transcode()` with `VideoConfig` |
363
+ | Need to resize video for Twitter/Instagram/TikTok | `video.reframe(target="vertical")` or `target="square"` |
364
+ | Need to change resolution (e.g. 1080p → 720p) | `conn.transcode()` with `VideoConfig(resolution=720)` |
365
+ | Need to overlay audio/music on video | `AudioAsset` on a `Timeline` |
366
+ | Need to add subtitles | `video.add_subtitle()` or `CaptionAsset` |
367
+ | Need to combine/trim clips | `VideoAsset` on a `Timeline` |
368
+ | Need to generate voiceover, music, or SFX | `coll.generate_voice()`, `generate_music()`, `generate_sound_effect()` |
369
+
370
+ ## Provenance
371
+
372
+ Reference material for this skill is vendored locally under `skills/videodb/reference/`.
373
+ Use the local copies above instead of following external repository links at runtime.