@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,548 @@
1
+ ---
2
+ name: coding-standards
3
+ description: Baseline cross-project coding conventions for naming, readability, immutability, and code-quality review. Use detailed frontend or backend skills for framework-specific patterns.
4
+ ---
5
+
6
+ # Coding Standards & Best Practices
7
+
8
+ Baseline coding conventions applicable across projects.
9
+
10
+ This skill is the shared floor, not the detailed framework playbook.
11
+
12
+ - Use `frontend-patterns` for React, state, forms, rendering, and UI architecture.
13
+ - Use `backend-patterns` or `api-design` for repository/service layers, endpoint design, validation, and server-specific concerns.
14
+ - Use `rules/common/coding-style.md` when you need the shortest reusable rule layer instead of a full skill walkthrough.
15
+
16
+ ## When to Activate
17
+
18
+ - Starting a new project or module
19
+ - Reviewing code for quality and maintainability
20
+ - Refactoring existing code to follow conventions
21
+ - Enforcing naming, formatting, or structural consistency
22
+ - Setting up linting, formatting, or type-checking rules
23
+ - Onboarding new contributors to coding conventions
24
+
25
+ ## Scope Boundaries
26
+
27
+ Activate this skill for:
28
+ - descriptive naming
29
+ - immutability defaults
30
+ - readability, KISS, DRY, and YAGNI enforcement
31
+ - error-handling expectations and code-smell review
32
+
33
+ Do not use this skill as the primary source for:
34
+ - React composition, hooks, or rendering patterns
35
+ - backend architecture, API design, or database layering
36
+ - domain-specific framework guidance when a narrower the toolset skill already exists
37
+
38
+ ## Code Quality Principles
39
+
40
+ ### 1. Readability First
41
+ - Code is read more than written
42
+ - Clear variable and function names
43
+ - Self-documenting code preferred over comments
44
+ - Consistent formatting
45
+
46
+ ### 2. KISS (Keep It Simple, Stupid)
47
+ - Simplest solution that works
48
+ - Avoid over-engineering
49
+ - No premature optimization
50
+ - Easy to understand > clever code
51
+
52
+ ### 3. DRY (Don't Repeat Yourself)
53
+ - Extract common logic into functions
54
+ - Create reusable components
55
+ - Share utilities across modules
56
+ - Avoid copy-paste programming
57
+
58
+ ### 4. YAGNI (You Aren't Gonna Need It)
59
+ - Don't build features before they're needed
60
+ - Avoid speculative generality
61
+ - Add complexity only when required
62
+ - Start simple, refactor when needed
63
+
64
+ ## TypeScript/JavaScript Standards
65
+
66
+ ### Variable Naming
67
+
68
+ ```typescript
69
+ // PASS: GOOD: Descriptive names
70
+ const marketSearchQuery = 'election'
71
+ const isUserAuthenticated = true
72
+ const totalRevenue = 1000
73
+
74
+ // FAIL: BAD: Unclear names
75
+ const q = 'election'
76
+ const flag = true
77
+ const x = 1000
78
+ ```
79
+
80
+ ### Function Naming
81
+
82
+ ```typescript
83
+ // PASS: GOOD: Verb-noun pattern
84
+ async function fetchMarketData(marketId: string) { }
85
+ function calculateSimilarity(a: number[], b: number[]) { }
86
+ function isValidEmail(email: string): boolean { }
87
+
88
+ // FAIL: BAD: Unclear or noun-only
89
+ async function market(id: string) { }
90
+ function similarity(a, b) { }
91
+ function email(e) { }
92
+ ```
93
+
94
+ ### Immutability Pattern (CRITICAL)
95
+
96
+ ```typescript
97
+ // PASS: ALWAYS use spread operator
98
+ const updatedUser = {
99
+ ...user,
100
+ name: 'New Name'
101
+ }
102
+
103
+ const updatedArray = [...items, newItem]
104
+
105
+ // FAIL: NEVER mutate directly
106
+ user.name = 'New Name' // BAD
107
+ items.push(newItem) // BAD
108
+ ```
109
+
110
+ ### Error Handling
111
+
112
+ ```typescript
113
+ // PASS: GOOD: Comprehensive error handling
114
+ async function fetchData(url: string) {
115
+ try {
116
+ const response = await fetch(url)
117
+
118
+ if (!response.ok) {
119
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`)
120
+ }
121
+
122
+ return await response.json()
123
+ } catch (error) {
124
+ console.error('Fetch failed:', error)
125
+ throw new Error('Failed to fetch data')
126
+ }
127
+ }
128
+
129
+ // FAIL: BAD: No error handling
130
+ async function fetchData(url) {
131
+ const response = await fetch(url)
132
+ return response.json()
133
+ }
134
+ ```
135
+
136
+ ### Async/Await Best Practices
137
+
138
+ ```typescript
139
+ // PASS: GOOD: Parallel execution when possible
140
+ const [users, markets, stats] = await Promise.all([
141
+ fetchUsers(),
142
+ fetchMarkets(),
143
+ fetchStats()
144
+ ])
145
+
146
+ // FAIL: BAD: Sequential when unnecessary
147
+ const users = await fetchUsers()
148
+ const markets = await fetchMarkets()
149
+ const stats = await fetchStats()
150
+ ```
151
+
152
+ ### Type Safety
153
+
154
+ ```typescript
155
+ // PASS: GOOD: Proper types
156
+ interface Market {
157
+ id: string
158
+ name: string
159
+ status: 'active' | 'resolved' | 'closed'
160
+ created_at: Date
161
+ }
162
+
163
+ function getMarket(id: string): Promise<Market> {
164
+ // Implementation
165
+ }
166
+
167
+ // FAIL: BAD: Using 'any'
168
+ function getMarket(id: any): Promise<any> {
169
+ // Implementation
170
+ }
171
+ ```
172
+
173
+ ## React Best Practices
174
+
175
+ ### Component Structure
176
+
177
+ ```typescript
178
+ // PASS: GOOD: Functional component with types
179
+ interface ButtonProps {
180
+ children: React.ReactNode
181
+ onClick: () => void
182
+ disabled?: boolean
183
+ variant?: 'primary' | 'secondary'
184
+ }
185
+
186
+ export function Button({
187
+ children,
188
+ onClick,
189
+ disabled = false,
190
+ variant = 'primary'
191
+ }: ButtonProps) {
192
+ return (
193
+ <button
194
+ onClick={onClick}
195
+ disabled={disabled}
196
+ className={`btn btn-${variant}`}
197
+ >
198
+ {children}
199
+ </button>
200
+ )
201
+ }
202
+
203
+ // FAIL: BAD: No types, unclear structure
204
+ export function Button(props) {
205
+ return <button onClick={props.onClick}>{props.children}</button>
206
+ }
207
+ ```
208
+
209
+ ### Custom Hooks
210
+
211
+ ```typescript
212
+ // PASS: GOOD: Reusable custom hook
213
+ export function useDebounce<T>(value: T, delay: number): T {
214
+ const [debouncedValue, setDebouncedValue] = useState<T>(value)
215
+
216
+ useEffect(() => {
217
+ const handler = setTimeout(() => {
218
+ setDebouncedValue(value)
219
+ }, delay)
220
+
221
+ return () => clearTimeout(handler)
222
+ }, [value, delay])
223
+
224
+ return debouncedValue
225
+ }
226
+
227
+ // Usage
228
+ const debouncedQuery = useDebounce(searchQuery, 500)
229
+ ```
230
+
231
+ ### State Management
232
+
233
+ ```typescript
234
+ // PASS: GOOD: Proper state updates
235
+ const [count, setCount] = useState(0)
236
+
237
+ // Functional update for state based on previous state
238
+ setCount(prev => prev + 1)
239
+
240
+ // FAIL: BAD: Direct state reference
241
+ setCount(count + 1) // Can be stale in async scenarios
242
+ ```
243
+
244
+ ### Conditional Rendering
245
+
246
+ ```typescript
247
+ // PASS: GOOD: Clear conditional rendering
248
+ {isLoading && <Spinner />}
249
+ {error && <ErrorMessage error={error} />}
250
+ {data && <DataDisplay data={data} />}
251
+
252
+ // FAIL: BAD: Ternary hell
253
+ {isLoading ? <Spinner /> : error ? <ErrorMessage error={error} /> : data ? <DataDisplay data={data} /> : null}
254
+ ```
255
+
256
+ ## API Design Standards
257
+
258
+ ### REST API Conventions
259
+
260
+ ```
261
+ GET /api/markets # List all markets
262
+ GET /api/markets/:id # Get specific market
263
+ POST /api/markets # Create new market
264
+ PUT /api/markets/:id # Update market (full)
265
+ PATCH /api/markets/:id # Update market (partial)
266
+ DELETE /api/markets/:id # Delete market
267
+
268
+ # Query parameters for filtering
269
+ GET /api/markets?status=active&limit=10&offset=0
270
+ ```
271
+
272
+ ### Response Format
273
+
274
+ ```typescript
275
+ // PASS: GOOD: Consistent response structure
276
+ interface ApiResponse<T> {
277
+ success: boolean
278
+ data?: T
279
+ error?: string
280
+ meta?: {
281
+ total: number
282
+ page: number
283
+ limit: number
284
+ }
285
+ }
286
+
287
+ // Success response
288
+ return NextResponse.json({
289
+ success: true,
290
+ data: markets,
291
+ meta: { total: 100, page: 1, limit: 10 }
292
+ })
293
+
294
+ // Error response
295
+ return NextResponse.json({
296
+ success: false,
297
+ error: 'Invalid request'
298
+ }, { status: 400 })
299
+ ```
300
+
301
+ ### Input Validation
302
+
303
+ ```typescript
304
+ import { z } from 'zod'
305
+
306
+ // PASS: GOOD: Schema validation
307
+ const CreateMarketSchema = z.object({
308
+ name: z.string().min(1).max(200),
309
+ description: z.string().min(1).max(2000),
310
+ endDate: z.string().datetime(),
311
+ categories: z.array(z.string()).min(1)
312
+ })
313
+
314
+ export async function POST(request: Request) {
315
+ const body = await request.json()
316
+
317
+ try {
318
+ const validated = CreateMarketSchema.parse(body)
319
+ // Proceed with validated data
320
+ } catch (error) {
321
+ if (error instanceof z.ZodError) {
322
+ return NextResponse.json({
323
+ success: false,
324
+ error: 'Validation failed',
325
+ details: error.errors
326
+ }, { status: 400 })
327
+ }
328
+ }
329
+ }
330
+ ```
331
+
332
+ ## File Organization
333
+
334
+ ### Project Structure
335
+
336
+ ```
337
+ src/
338
+ ├── app/ # Next.js App Router
339
+ │ ├── api/ # API routes
340
+ │ ├── markets/ # Market pages
341
+ │ └── (auth)/ # Auth pages (route groups)
342
+ ├── components/ # React components
343
+ │ ├── ui/ # Generic UI components
344
+ │ ├── forms/ # Form components
345
+ │ └── layouts/ # Layout components
346
+ ├── hooks/ # Custom React hooks
347
+ ├── lib/ # Utilities and configs
348
+ │ ├── api/ # API clients
349
+ │ ├── utils/ # Helper functions
350
+ │ └── constants/ # Constants
351
+ ├── types/ # TypeScript types
352
+ └── styles/ # Global styles
353
+ ```
354
+
355
+ ### File Naming
356
+
357
+ ```
358
+ components/Button.tsx # PascalCase for components
359
+ hooks/useAuth.ts # camelCase with 'use' prefix
360
+ lib/formatDate.ts # camelCase for utilities
361
+ types/market.types.ts # camelCase with .types suffix
362
+ ```
363
+
364
+ ## Comments & Documentation
365
+
366
+ ### When to Comment
367
+
368
+ ```typescript
369
+ // PASS: GOOD: Explain WHY, not WHAT
370
+ // Use exponential backoff to avoid overwhelming the API during outages
371
+ const delay = Math.min(1000 * Math.pow(2, retryCount), 30000)
372
+
373
+ // Deliberately using mutation here for performance with large arrays
374
+ items.push(newItem)
375
+
376
+ // FAIL: BAD: Stating the obvious
377
+ // Increment counter by 1
378
+ count++
379
+
380
+ // Set name to user's name
381
+ name = user.name
382
+ ```
383
+
384
+ ### JSDoc for Public APIs
385
+
386
+ ```typescript
387
+ /**
388
+ * Searches markets using semantic similarity.
389
+ *
390
+ * @param query - Natural language search query
391
+ * @param limit - Maximum number of results (default: 10)
392
+ * @returns Array of markets sorted by similarity score
393
+ * @throws {Error} If OpenAI API fails or Redis unavailable
394
+ *
395
+ * @example
396
+ * ```typescript
397
+ * const results = await searchMarkets('election', 5)
398
+ * console.log(results[0].name) // "Trump vs Biden"
399
+ * ```
400
+ */
401
+ export async function searchMarkets(
402
+ query: string,
403
+ limit: number = 10
404
+ ): Promise<Market[]> {
405
+ // Implementation
406
+ }
407
+ ```
408
+
409
+ ## Performance Best Practices
410
+
411
+ ### Memoization
412
+
413
+ ```typescript
414
+ import { useMemo, useCallback } from 'react'
415
+
416
+ // PASS: GOOD: Memoize expensive computations
417
+ const sortedMarkets = useMemo(() => {
418
+ return markets.sort((a, b) => b.volume - a.volume)
419
+ }, [markets])
420
+
421
+ // PASS: GOOD: Memoize callbacks
422
+ const handleSearch = useCallback((query: string) => {
423
+ setSearchQuery(query)
424
+ }, [])
425
+ ```
426
+
427
+ ### Lazy Loading
428
+
429
+ ```typescript
430
+ import { lazy, Suspense } from 'react'
431
+
432
+ // PASS: GOOD: Lazy load heavy components
433
+ const HeavyChart = lazy(() => import('./HeavyChart'))
434
+
435
+ export function Dashboard() {
436
+ return (
437
+ <Suspense fallback={<Spinner />}>
438
+ <HeavyChart />
439
+ </Suspense>
440
+ )
441
+ }
442
+ ```
443
+
444
+ ### Database Queries
445
+
446
+ ```typescript
447
+ // PASS: GOOD: Select only needed columns
448
+ const { data } = await supabase
449
+ .from('markets')
450
+ .select('id, name, status')
451
+ .limit(10)
452
+
453
+ // FAIL: BAD: Select everything
454
+ const { data } = await supabase
455
+ .from('markets')
456
+ .select('*')
457
+ ```
458
+
459
+ ## Testing Standards
460
+
461
+ ### Test Structure (AAA Pattern)
462
+
463
+ ```typescript
464
+ test('calculates similarity correctly', () => {
465
+ // Arrange
466
+ const vector1 = [1, 0, 0]
467
+ const vector2 = [0, 1, 0]
468
+
469
+ // Act
470
+ const similarity = calculateCosineSimilarity(vector1, vector2)
471
+
472
+ // Assert
473
+ expect(similarity).toBe(0)
474
+ })
475
+ ```
476
+
477
+ ### Test Naming
478
+
479
+ ```typescript
480
+ // PASS: GOOD: Descriptive test names
481
+ test('returns empty array when no markets match query', () => { })
482
+ test('throws error when OpenAI API key is missing', () => { })
483
+ test('falls back to substring search when Redis unavailable', () => { })
484
+
485
+ // FAIL: BAD: Vague test names
486
+ test('works', () => { })
487
+ test('test search', () => { })
488
+ ```
489
+
490
+ ## Code Smell Detection
491
+
492
+ Watch for these anti-patterns:
493
+
494
+ ### 1. Long Functions
495
+ ```typescript
496
+ // FAIL: BAD: Function > 50 lines
497
+ function processMarketData() {
498
+ // 100 lines of code
499
+ }
500
+
501
+ // PASS: GOOD: Split into smaller functions
502
+ function processMarketData() {
503
+ const validated = validateData()
504
+ const transformed = transformData(validated)
505
+ return saveData(transformed)
506
+ }
507
+ ```
508
+
509
+ ### 2. Deep Nesting
510
+ ```typescript
511
+ // FAIL: BAD: 5+ levels of nesting
512
+ if (user) {
513
+ if (user.isAdmin) {
514
+ if (market) {
515
+ if (market.isActive) {
516
+ if (hasPermission) {
517
+ // Do something
518
+ }
519
+ }
520
+ }
521
+ }
522
+ }
523
+
524
+ // PASS: GOOD: Early returns
525
+ if (!user) return
526
+ if (!user.isAdmin) return
527
+ if (!market) return
528
+ if (!market.isActive) return
529
+ if (!hasPermission) return
530
+
531
+ // Do something
532
+ ```
533
+
534
+ ### 3. Magic Numbers
535
+ ```typescript
536
+ // FAIL: BAD: Unexplained numbers
537
+ if (retryCount > 3) { }
538
+ setTimeout(callback, 500)
539
+
540
+ // PASS: GOOD: Named constants
541
+ const MAX_RETRIES = 3
542
+ const DEBOUNCE_DELAY_MS = 500
543
+
544
+ if (retryCount > MAX_RETRIES) { }
545
+ setTimeout(callback, DEBOUNCE_DELAY_MS)
546
+ ```
547
+
548
+ **Remember**: Code quality is not negotiable. Clear, maintainable code enables rapid development and confident refactoring.