@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,419 @@
1
+ # HTML Presentation Template
2
+
3
+ Reference architecture for generating slide presentations. Every presentation follows this structure.
4
+
5
+ ## Base HTML Structure
6
+
7
+ ```html
8
+ <!DOCTYPE html>
9
+ <html lang="en">
10
+ <head>
11
+ <meta charset="UTF-8" />
12
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
13
+ <title>Presentation Title</title>
14
+
15
+ <!-- Fonts: use Fontshare or Google Fonts — never system fonts -->
16
+ <link rel="stylesheet" href="https://api.fontshare.com/v2/css?f[]=..." />
17
+
18
+ <style>
19
+ /* ===========================================
20
+ CSS CUSTOM PROPERTIES (THEME)
21
+ Change these to change the whole look
22
+ =========================================== */
23
+ :root {
24
+ /* Colors — from chosen style preset */
25
+ --bg-primary: #0a0f1c;
26
+ --bg-secondary: #111827;
27
+ --text-primary: #ffffff;
28
+ --text-secondary: #9ca3af;
29
+ --accent: #00ffcc;
30
+ --accent-glow: rgba(0, 255, 204, 0.3);
31
+
32
+ /* Typography — MUST use clamp() */
33
+ --font-display: "Clash Display", sans-serif;
34
+ --font-body: "Satoshi", sans-serif;
35
+ --title-size: clamp(2rem, 6vw, 5rem);
36
+ --subtitle-size: clamp(0.875rem, 2vw, 1.25rem);
37
+ --body-size: clamp(0.75rem, 1.2vw, 1rem);
38
+
39
+ /* Spacing — MUST use clamp() */
40
+ --slide-padding: clamp(1.5rem, 4vw, 4rem);
41
+ --content-gap: clamp(1rem, 2vw, 2rem);
42
+
43
+ /* Animation */
44
+ --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
45
+ --duration-normal: 0.6s;
46
+ }
47
+
48
+ /* ===========================================
49
+ BASE STYLES
50
+ =========================================== */
51
+ * {
52
+ margin: 0;
53
+ padding: 0;
54
+ box-sizing: border-box;
55
+ }
56
+
57
+ /* --- PASTE viewport-base.css CONTENTS HERE --- */
58
+
59
+ /* ===========================================
60
+ ANIMATIONS
61
+ Trigger via .visible class (added by JS on scroll)
62
+ =========================================== */
63
+ .reveal {
64
+ opacity: 0;
65
+ transform: translateY(30px);
66
+ transition:
67
+ opacity var(--duration-normal) var(--ease-out-expo),
68
+ transform var(--duration-normal) var(--ease-out-expo);
69
+ }
70
+
71
+ .slide.visible .reveal {
72
+ opacity: 1;
73
+ transform: translateY(0);
74
+ }
75
+
76
+ /* Stagger children for sequential reveal */
77
+ .reveal:nth-child(1) {
78
+ transition-delay: 0.1s;
79
+ }
80
+ .reveal:nth-child(2) {
81
+ transition-delay: 0.2s;
82
+ }
83
+ .reveal:nth-child(3) {
84
+ transition-delay: 0.3s;
85
+ }
86
+ .reveal:nth-child(4) {
87
+ transition-delay: 0.4s;
88
+ }
89
+
90
+ /* ... preset-specific styles ... */
91
+ </style>
92
+ </head>
93
+ <body>
94
+ <!-- Optional: Progress bar -->
95
+ <div class="progress-bar"></div>
96
+
97
+ <!-- Optional: Navigation dots -->
98
+ <nav class="nav-dots"><!-- Generated by JS --></nav>
99
+
100
+ <!-- Slides -->
101
+ <section class="slide title-slide">
102
+ <h1 class="reveal">Presentation Title</h1>
103
+ <p class="reveal">Subtitle or author</p>
104
+ </section>
105
+
106
+ <section class="slide">
107
+ <div class="slide-content">
108
+ <h2 class="reveal">Slide Title</h2>
109
+ <p class="reveal">Content...</p>
110
+ </div>
111
+ </section>
112
+
113
+ <!-- More slides... -->
114
+
115
+ <script>
116
+ /* ===========================================
117
+ SLIDE PRESENTATION CONTROLLER
118
+ =========================================== */
119
+ class SlidePresentation {
120
+ constructor() {
121
+ this.slides = document.querySelectorAll(".slide");
122
+ this.currentSlide = 0;
123
+ this.setupIntersectionObserver();
124
+ this.setupKeyboardNav();
125
+ this.setupTouchNav();
126
+ this.setupProgressBar();
127
+ this.setupNavDots();
128
+ }
129
+
130
+ setupIntersectionObserver() {
131
+ // Add .visible class when slides enter viewport
132
+ // Triggers CSS animations efficiently
133
+ }
134
+
135
+ setupKeyboardNav() {
136
+ // Arrow keys, Space, Page Up/Down
137
+ }
138
+
139
+ setupTouchNav() {
140
+ // Touch/swipe support for mobile
141
+ }
142
+
143
+ setupProgressBar() {
144
+ // Update progress bar on scroll
145
+ }
146
+
147
+ setupNavDots() {
148
+ // IMPORTANT: Always clear before building — if outerHTML was
149
+ // captured while dots were rendered, re-opening the file would
150
+ // append a duplicate set on top of the existing ones.
151
+ this.navDotsContainer.innerHTML = "";
152
+ // Generate and manage navigation dots
153
+ }
154
+ }
155
+
156
+ new SlidePresentation();
157
+ </script>
158
+ </body>
159
+ </html>
160
+ ```
161
+
162
+ ## Required JavaScript Features
163
+
164
+ Every presentation must include:
165
+
166
+ 1. **SlidePresentation Class** — Main controller with:
167
+ - Keyboard navigation (arrows, space, page up/down)
168
+ - Touch/swipe support
169
+ - Mouse wheel navigation
170
+ - Progress bar updates
171
+ - Navigation dots
172
+
173
+ 2. **Intersection Observer** — For scroll-triggered animations:
174
+ - Add `.visible` class when slides enter viewport
175
+ - Trigger CSS transitions efficiently
176
+
177
+ 3. **Optional Enhancements** (match to chosen style):
178
+ - Custom cursor with trail
179
+ - Particle system background (canvas)
180
+ - Parallax effects
181
+ - 3D tilt on hover
182
+ - Magnetic buttons
183
+ - Counter animations
184
+
185
+ 4. **Inline Editing** (only if user opted in during Phase 1 — skip entirely if they said No):
186
+ - Edit toggle button (hidden by default, revealed via hover hotzone or `E` key)
187
+ - Auto-save to localStorage
188
+ - Export/save file functionality
189
+ - See "Inline Editing Implementation" section below
190
+
191
+ ## Inline Editing Implementation (Opt-In Only)
192
+
193
+ **If the user chose "No" for inline editing in Phase 1, do NOT generate any edit-related HTML, CSS, or JS.**
194
+
195
+ **Do NOT use CSS `~` sibling selector for hover-based show/hide.** The CSS-only approach (`edit-hotzone:hover ~ .edit-toggle`) fails because `pointer-events: none` on the toggle button breaks the hover chain: user hovers hotzone -> button becomes visible -> mouse moves toward button -> leaves hotzone -> button disappears before click.
196
+
197
+ **Required approach: JS-based hover with 400ms delay timeout.**
198
+
199
+ HTML:
200
+
201
+ ```html
202
+ <div class="edit-hotzone"></div>
203
+ <button class="edit-toggle" id="editToggle" title="Edit mode (E)">Edit</button>
204
+ ```
205
+
206
+ CSS (visibility controlled by JS classes only):
207
+
208
+ ```css
209
+ /* Do NOT use CSS ~ sibling selector for this!
210
+ pointer-events: none breaks the hover chain.
211
+ Must use JS with delay timeout. */
212
+ .edit-hotzone {
213
+ position: fixed;
214
+ top: 0;
215
+ left: 0;
216
+ width: 80px;
217
+ height: 80px;
218
+ z-index: 10000;
219
+ cursor: pointer;
220
+ }
221
+ .edit-toggle {
222
+ opacity: 0;
223
+ pointer-events: none;
224
+ transition: opacity 0.3s ease;
225
+ z-index: 10001;
226
+ }
227
+ .edit-toggle.show,
228
+ .edit-toggle.active {
229
+ opacity: 1;
230
+ pointer-events: auto;
231
+ }
232
+ ```
233
+
234
+ JS (three interaction methods):
235
+
236
+ ```javascript
237
+ // 1. Click handler on the toggle button
238
+ document.getElementById("editToggle").addEventListener("click", () => {
239
+ editor.toggleEditMode();
240
+ });
241
+
242
+ // 2. Hotzone hover with 400ms grace period
243
+ const hotzone = document.querySelector(".edit-hotzone");
244
+ const editToggle = document.getElementById("editToggle");
245
+ let hideTimeout = null;
246
+
247
+ hotzone.addEventListener("mouseenter", () => {
248
+ clearTimeout(hideTimeout);
249
+ editToggle.classList.add("show");
250
+ });
251
+ hotzone.addEventListener("mouseleave", () => {
252
+ hideTimeout = setTimeout(() => {
253
+ if (!editor.isActive) editToggle.classList.remove("show");
254
+ }, 400);
255
+ });
256
+ editToggle.addEventListener("mouseenter", () => {
257
+ clearTimeout(hideTimeout);
258
+ });
259
+ editToggle.addEventListener("mouseleave", () => {
260
+ hideTimeout = setTimeout(() => {
261
+ if (!editor.isActive) editToggle.classList.remove("show");
262
+ }, 400);
263
+ });
264
+
265
+ // 3. Hotzone direct click
266
+ hotzone.addEventListener("click", () => {
267
+ editor.toggleEditMode();
268
+ });
269
+
270
+ // 4. Keyboard shortcut (E key, skip when editing text)
271
+ document.addEventListener("keydown", (e) => {
272
+ if (
273
+ (e.key === "e" || e.key === "E") &&
274
+ !e.target.getAttribute("contenteditable")
275
+ ) {
276
+ editor.toggleEditMode();
277
+ }
278
+ });
279
+ ```
280
+
281
+ **CRITICAL: `exportFile()` must strip edit state before capturing outerHTML.**
282
+
283
+ When the user presses Ctrl+S in edit mode, `document.documentElement.outerHTML` captures the live DOM —
284
+ including `body.edit-active`, `contenteditable="true"` on every text element, and `.active`/`.show` classes on
285
+ the toggle button and banner. Anyone opening the saved file sees dashed outlines, a checkmark button, and an
286
+ edit banner, as if permanently stuck in edit mode.
287
+
288
+ Always implement `exportFile()` like this:
289
+
290
+ ```javascript
291
+ exportFile() {
292
+ // Temporarily strip edit state so the saved file opens cleanly
293
+ const editableEls = Array.from(document.querySelectorAll('[contenteditable]'));
294
+ editableEls.forEach(el => el.removeAttribute('contenteditable'));
295
+ document.body.classList.remove('edit-active');
296
+
297
+ // Also strip UI classes from toggle button and banner
298
+ const editToggle = document.getElementById('editToggle');
299
+ const editBanner = document.querySelector('.edit-banner');
300
+ editToggle?.classList.remove('active', 'show');
301
+ editBanner?.classList.remove('active', 'show');
302
+
303
+ const html = '<!DOCTYPE html>\n' + document.documentElement.outerHTML;
304
+
305
+ // Restore edit state so the user can keep editing
306
+ document.body.classList.add('edit-active');
307
+ editableEls.forEach(el => el.setAttribute('contenteditable', 'true'));
308
+ editToggle?.classList.add('active');
309
+ editBanner?.classList.add('active');
310
+
311
+ const blob = new Blob([html], { type: 'text/html' });
312
+ const a = document.createElement('a');
313
+ a.href = URL.createObjectURL(blob);
314
+ a.download = 'presentation.html';
315
+ a.click();
316
+ URL.revokeObjectURL(a.href);
317
+ }
318
+ ```
319
+
320
+ ## Image Pipeline (Skip If No Images)
321
+
322
+ If user chose "No images" in Phase 1, skip this entirely. If images were provided, process them before generating HTML.
323
+
324
+ **Dependency:** `pip install Pillow`
325
+
326
+ ### Image Processing
327
+
328
+ ```python
329
+ from PIL import Image, ImageDraw
330
+
331
+ # Circular crop (for logos on modern/clean styles)
332
+ def crop_circle(input_path, output_path):
333
+ img = Image.open(input_path).convert('RGBA')
334
+ w, h = img.size
335
+ size = min(w, h)
336
+ left, top = (w - size) // 2, (h - size) // 2
337
+ img = img.crop((left, top, left + size, top + size))
338
+ mask = Image.new('L', (size, size), 0)
339
+ ImageDraw.Draw(mask).ellipse([0, 0, size, size], fill=255)
340
+ img.putalpha(mask)
341
+ img.save(output_path, 'PNG')
342
+
343
+ # Resize (for oversized images that inflate HTML)
344
+ def resize_max(input_path, output_path, max_dim=1200):
345
+ img = Image.open(input_path)
346
+ img.thumbnail((max_dim, max_dim), Image.LANCZOS)
347
+ img.save(output_path, quality=85)
348
+ ```
349
+
350
+ | Situation | Operation |
351
+ | -------------------------------- | ----------------------------- |
352
+ | Square logo on rounded aesthetic | `crop_circle()` |
353
+ | Image > 1MB | `resize_max(max_dim=1200)` |
354
+ | Wrong aspect ratio | Manual crop with `img.crop()` |
355
+
356
+ Save processed images with `_processed` suffix. Never overwrite originals.
357
+
358
+ ### Image Placement
359
+
360
+ **Use direct file paths** (not base64) — presentations are viewed locally:
361
+
362
+ ```html
363
+ <img src="assets/logo_round.png" alt="Logo" class="slide-image logo" />
364
+ <img
365
+ src="assets/screenshot.png"
366
+ alt="Screenshot"
367
+ class="slide-image screenshot"
368
+ />
369
+ ```
370
+
371
+ ```css
372
+ .slide-image {
373
+ max-width: 100%;
374
+ max-height: min(50vh, 400px);
375
+ object-fit: contain;
376
+ border-radius: 8px;
377
+ }
378
+ .slide-image.screenshot {
379
+ border: 1px solid rgba(255, 255, 255, 0.1);
380
+ border-radius: 12px;
381
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
382
+ }
383
+ .slide-image.logo {
384
+ max-height: min(30vh, 200px);
385
+ }
386
+ ```
387
+
388
+ **Adapt border/shadow colors to match the chosen style's accent.** Never repeat the same image on multiple slides (except logos on title + closing).
389
+
390
+ **Placement patterns:** Logo centered on title slide. Screenshots in two-column layouts with text. Full-bleed images as slide backgrounds with text overlay (use sparingly).
391
+
392
+ ---
393
+
394
+ ## Code Quality
395
+
396
+ **Comments:** Every section needs clear comments explaining what it does and how to modify it.
397
+
398
+ **Accessibility:**
399
+
400
+ - Semantic HTML (`<section>`, `<nav>`, `<main>`)
401
+ - Keyboard navigation works fully
402
+ - ARIA labels where needed
403
+ - `prefers-reduced-motion` support (included in viewport-base.css)
404
+
405
+ ## File Structure
406
+
407
+ Single presentations:
408
+
409
+ ```
410
+ presentation.html # Self-contained, all CSS/JS inline
411
+ assets/ # Images only, if any
412
+ ```
413
+
414
+ Multiple presentations in one project:
415
+
416
+ ```
417
+ [name].html
418
+ [name]-assets/
419
+ ```