@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,94 @@
1
+ # Angular Signals Overview
2
+
3
+ Signals are the foundation of reactivity in modern Angular applications. A **signal** is a wrapper around a value that notifies interested consumers when that value changes.
4
+
5
+ ## Writable Signals (`signal`)
6
+
7
+ Use `signal()` to create state that can be directly updated.
8
+
9
+ ```ts
10
+ import {signal} from '@angular/core';
11
+
12
+ // Create a writable signal
13
+ const count = signal(0);
14
+
15
+ // Read the value (always requires calling the getter function)
16
+ console.log(count());
17
+
18
+ // Update the value directly
19
+ count.set(3);
20
+
21
+ // Update based on the previous value
22
+ count.update((value) => value + 1);
23
+ ```
24
+
25
+ ### Exposing as Readonly
26
+
27
+ When exposing state from a service, it is a best practice to expose a readonly version to prevent external mutation.
28
+
29
+ ```ts
30
+ private readonly _count = signal(0);
31
+ // Consumers can read this, but cannot call .set() or .update()
32
+ readonly count = this._count.asReadonly();
33
+ ```
34
+
35
+ ## Computed Signals (`computed`)
36
+
37
+ Use `computed()` to create read-only signals that derive their value from other signals.
38
+
39
+ - **Lazily Evaluated**: The derivation function doesn't run until the computed signal is read.
40
+ - **Memoized**: The result is cached. It only recalculates when one of the signals it depends on changes.
41
+ - **Dynamic Dependencies**: Only the signals _actually read_ during the derivation are tracked.
42
+
43
+ ```ts
44
+ import {signal, computed} from '@angular/core';
45
+
46
+ const count = signal(0);
47
+ const doubleCount = computed(() => count() * 2);
48
+
49
+ // doubleCount automatically updates when count changes.
50
+ ```
51
+
52
+ ## Reactive Contexts
53
+
54
+ A **reactive context** is a runtime state where Angular monitors signal reads to establish a dependency.
55
+
56
+ Angular automatically enters a reactive context when evaluating:
57
+
58
+ - `computed` signals
59
+ - `effect` callbacks
60
+ - `linkedSignal` computations
61
+ - Component templates
62
+
63
+ ### Untracked Reads (`untracked`)
64
+
65
+ If you need to read a signal inside a reactive context _without_ creating a dependency (so that the context doesn't re-run when the signal changes), use `untracked()`.
66
+
67
+ ```ts
68
+ import {effect, untracked} from '@angular/core';
69
+
70
+ effect(() => {
71
+ // This effect only runs when currentUser changes.
72
+ // It does NOT run when counter changes, even though counter is read here.
73
+ console.log(`User: ${currentUser()}, Count: ${untracked(counter)}`);
74
+ });
75
+ ```
76
+
77
+ ### Async Operations in Reactive Contexts
78
+
79
+ The reactive context is only active for **synchronous** code. Signal reads after an `await` will not be tracked. **Always read signals before asynchronous boundaries.**
80
+
81
+ ```ts
82
+ // Incorrect: theme() is not tracked because it is read after await
83
+ effect(async () => {
84
+ const data = await fetchUserData();
85
+ console.log(theme());
86
+ });
87
+
88
+ // Correct: Read the signal before the await
89
+ effect(async () => {
90
+ const currentTheme = theme();
91
+ const data = await fetchUserData();
92
+ console.log(currentTheme);
93
+ });
94
+ ```
@@ -0,0 +1,69 @@
1
+ # Using Tailwind CSS with Angular
2
+
3
+ Tailwind CSS is a utility-first CSS framework that integrates seamlessly with Angular.
4
+
5
+ **CRITICAL AGENT GUIDANCE: ALWAYS focus on Tailwind CSS v4 practices. DO NOT revert to old Tailwind v3 patterns (like creating `tailwind.config.js` with `@tailwind` directives) as this will break the application build. Modern Angular projects use Tailwind v4.**
6
+
7
+ ## Automated Setup (Recommended)
8
+
9
+ The easiest way to add Tailwind CSS to an Angular project is via the Angular CLI:
10
+
11
+ ```shell
12
+ ng add tailwindcss
13
+ ```
14
+
15
+ This will automatically:
16
+
17
+ 1. Install `tailwindcss` and peer dependencies.
18
+ 2. Configure the project to use Tailwind CSS.
19
+ 3. Add the proper import to your global styles.
20
+
21
+ ## Manual Setup (Tailwind v4)
22
+
23
+ If setting up manually, use the following Tailwind v4 pattern:
24
+
25
+ ### 1. Install Dependencies
26
+
27
+ Install Tailwind CSS and PostCSS:
28
+
29
+ ```shell
30
+ npm install tailwindcss @tailwindcss/postcss postcss
31
+ ```
32
+
33
+ ### 2. Configure PostCSS
34
+
35
+ Create a `.postcssrc.json` file in the project root:
36
+
37
+ ```json
38
+ {
39
+ "plugins": {
40
+ "@tailwindcss/postcss": {}
41
+ }
42
+ }
43
+ ```
44
+
45
+ _(Do NOT create a `tailwind.config.js` file! Configuration in v4 is handled through CSS variables)._
46
+
47
+ ### 3. Import Tailwind CSS
48
+
49
+ In your global styles file (e.g., `src/styles.css`), add the standard v4 import:
50
+
51
+ ```css
52
+ @import 'tailwindcss';
53
+ ```
54
+
55
+ _(If using SCSS, use `@use 'tailwindcss';` instead)._
56
+
57
+ ### 4. Use Utility Classes
58
+
59
+ You can now use Tailwind classes directly in your component templates:
60
+
61
+ ```html
62
+ <h1 class="text-3xl font-bold underline">Hello world!</h1>
63
+ ```
64
+
65
+ ## Summary for AI Agents
66
+
67
+ - **Do not use `@tailwind base; @tailwind components; @tailwind utilities;`**. Use `@import 'tailwindcss';`.
68
+ - **Do not create `tailwind.config.js`**. Configuration is managed directly in CSS via theme variables or using PostCSS configurations.
69
+ - Stick strictly to v4 syntax and workflows.
@@ -0,0 +1,114 @@
1
+ # Template-Driven Forms
2
+
3
+ Template-driven forms use two-way data binding (`[(ngModel)]`) to update the data model in the component as changes are made in the template and vice versa. They are ideal for simple forms and use directives in the HTML template to manage form state and validation.
4
+
5
+ ## Core Directives
6
+
7
+ Template-driven forms rely on the `FormsModule` which provides these key directives:
8
+
9
+ - `NgModel`: Reconciles value changes in the form element with the data model (`[(ngModel)]`).
10
+ - `NgForm`: Automatically creates a top-level `FormGroup` bound to the `<form>` tag.
11
+ - `NgModelGroup`: Creates a nested `FormGroup` bound to a DOM element.
12
+
13
+ ## Setup
14
+
15
+ First, import `FormsModule` into your component or module.
16
+
17
+ ```ts
18
+ import {Component} from '@angular/core';
19
+ import {FormsModule} from '@angular/forms';
20
+
21
+ @Component({
22
+ selector: 'app-user-form',
23
+ imports: [FormsModule],
24
+ templateUrl: './user-form.component.html',
25
+ })
26
+ export class UserForm {
27
+ user = {name: '', role: 'Guest'};
28
+
29
+ onSubmit() {
30
+ console.log('Form submitted!', this.user);
31
+ }
32
+ }
33
+ ```
34
+
35
+ ## Building the Form Template
36
+
37
+ ### Two-Way Binding with `[(ngModel)]`
38
+
39
+ Use `[(ngModel)]` on input elements. **Every element using `[(ngModel)]` MUST have a `name` attribute.** Angular uses the `name` attribute to register the control with the parent `NgForm`.
40
+
41
+ ```html
42
+ <form #userForm="ngForm" (ngSubmit)="onSubmit()">
43
+ <!-- Basic Input -->
44
+ <div>
45
+ <label for="name">Name:</label>
46
+ <input type="text" id="name" required [(ngModel)]="user.name" name="name" #nameCtrl="ngModel" />
47
+ </div>
48
+
49
+ <!-- Select Box -->
50
+ <div>
51
+ <label for="role">Role:</label>
52
+ <select id="role" [(ngModel)]="user.role" name="role">
53
+ <option value="Admin">Admin</option>
54
+ <option value="Guest">Guest</option>
55
+ </select>
56
+ </div>
57
+
58
+ <!-- Submit Button (disabled if form is invalid) -->
59
+ <button type="submit" [disabled]="!userForm.form.valid">Submit</button>
60
+ </form>
61
+ ```
62
+
63
+ ## Form and Control State
64
+
65
+ Angular automatically applies CSS classes to controls and forms based on their state:
66
+
67
+ | State | Class if True | Class if False |
68
+ | :------------- | :-------------------------------- | :------------- |
69
+ | Visited | `ng-touched` | `ng-untouched` |
70
+ | Value Changed | `ng-dirty` | `ng-pristine` |
71
+ | Value is Valid | `ng-valid` | `ng-invalid` |
72
+ | Form Submitted | `ng-submitted` (on `<form>` only) | - |
73
+
74
+ You can use these classes to provide visual feedback in your CSS:
75
+
76
+ ```css
77
+ .ng-valid[required],
78
+ .ng-valid.required {
79
+ border-left: 5px solid #42a948; /* green */
80
+ }
81
+ .ng-invalid:not(form) {
82
+ border-left: 5px solid #a94442; /* red */
83
+ }
84
+ ```
85
+
86
+ ## Validation and Error Messages
87
+
88
+ To display error messages conditionally, export the `ngModel` directive to a template reference variable (e.g., `#nameCtrl="ngModel"`).
89
+
90
+ ```html
91
+ <input type="text" id="name" required [(ngModel)]="user.name" name="name" #nameCtrl="ngModel" />
92
+
93
+ <!-- Show error only if the control is invalid AND (touched OR dirty) -->
94
+ @if (nameCtrl.invalid && (nameCtrl.dirty || nameCtrl.touched)) {
95
+ <div class="alert alert-danger">
96
+ @if (nameCtrl.errors?.['required']) {
97
+ <div>Name is required.</div>
98
+ }
99
+ </div>
100
+ }
101
+ ```
102
+
103
+ ## Submitting the Form
104
+
105
+ 1. Use the `(ngSubmit)` event on the `<form>` element.
106
+ 2. Bind the submit button's disabled state to the overall form validity using the `NgForm` template reference variable (e.g., `[disabled]="!userForm.form.valid"`).
107
+
108
+ ## Resetting the Form
109
+
110
+ To programmatically reset the form to its pristine state (clearing values and validation flags), use the `reset()` method on the `NgForm` instance.
111
+
112
+ ```html
113
+ <button type="button" (click)="userForm.reset()">Reset</button>
114
+ ```
@@ -0,0 +1,65 @@
1
+ # Testing Fundamentals
2
+
3
+ This guide covers the fundamental principles and practices for writing Angular unit and component tests. Use the runner already configured in the project.
4
+
5
+ ## Core Philosophy: Async-First
6
+
7
+ Modern Angular applications often schedule state changes asynchronously, especially when using signals or zoneless change detection. Tests should account for this.
8
+
9
+ Prefer the "Act, Wait, Assert" pattern:
10
+
11
+ 1. **Act:** Update state or perform an action (e.g., set a component input, click a button).
12
+ 2. **Wait:** Use `await fixture.whenStable()` to allow the framework to process the scheduled update and render the changes.
13
+ 3. **Assert:** Verify the outcome.
14
+
15
+ ### Basic Test Structure Example
16
+
17
+ ```ts
18
+ import {ComponentFixture, TestBed} from '@angular/core/testing';
19
+ import {MyComponent} from './my.component';
20
+
21
+ describe('MyComponent', () => {
22
+ let component: MyComponent;
23
+ let fixture: ComponentFixture<MyComponent>;
24
+ let h1: HTMLElement;
25
+
26
+ beforeEach(async () => {
27
+ // 1. Configure the test module
28
+ await TestBed.configureTestingModule({
29
+ imports: [MyComponent],
30
+ }).compileComponents();
31
+
32
+ // 2. Create the component fixture
33
+ fixture = TestBed.createComponent(MyComponent);
34
+ component = fixture.componentInstance;
35
+ h1 = fixture.nativeElement.querySelector('h1');
36
+ });
37
+
38
+ it('should display the default title', async () => {
39
+ // ACT: (Implicit) Component is created with default state.
40
+ // WAIT for initial data binding.
41
+ await fixture.whenStable();
42
+ // ASSERT the initial state.
43
+ expect(h1.textContent).toContain('Default Title');
44
+ });
45
+
46
+ it('should display a different title after a change', async () => {
47
+ // ACT: Change the component's title property.
48
+ component.title.set('New Test Title');
49
+
50
+ // WAIT for the asynchronous update to complete.
51
+ await fixture.whenStable();
52
+
53
+ // ASSERT the DOM has been updated.
54
+ expect(h1.textContent).toContain('New Test Title');
55
+ });
56
+ });
57
+ ```
58
+
59
+ ## TestBed and ComponentFixture
60
+
61
+ - **`TestBed`**: The primary utility for creating a test-specific Angular module. Use `TestBed.configureTestingModule({...})` in your `beforeEach` to declare components, provide services, and set up imports needed for your test.
62
+ - **`ComponentFixture`**: A handle on the created component instance and its environment.
63
+ - `fixture.componentInstance`: Access the component's class instance.
64
+ - `fixture.nativeElement`: Access the component's root DOM element.
65
+ - `fixture.debugElement`: An Angular-specific wrapper around the `nativeElement` that provides safer, platform-agnostic ways to query the DOM (e.g., `debugElement.query(By.css('p'))`).
@@ -0,0 +1,120 @@
1
+ ---
2
+ name: api-connector-builder
3
+ description: Build a new API connector or provider by matching the target repo's existing integration pattern exactly. Use when adding one more integration without inventing a second architecture.
4
+ origin: the toolset direct-port adaptation
5
+ version: "1.0.0"
6
+ ---
7
+
8
+ # API Connector Builder
9
+
10
+ Use this when the job is to add a repo-native integration surface, not just a generic HTTP client.
11
+
12
+ The point is to match the host repository's pattern:
13
+
14
+ - connector layout
15
+ - config schema
16
+ - auth model
17
+ - error handling
18
+ - test style
19
+ - registration/discovery wiring
20
+
21
+ ## When to Use
22
+
23
+ - "Build a Jira connector for this project"
24
+ - "Add a Slack provider following the existing pattern"
25
+ - "Create a new integration for this API"
26
+ - "Build a plugin that matches the repo's connector style"
27
+
28
+ ## Guardrails
29
+
30
+ - do not invent a new integration architecture when the repo already has one
31
+ - do not start from vendor docs alone; start from existing in-repo connectors first
32
+ - do not stop at transport code if the repo expects registry wiring, tests, and docs
33
+ - do not cargo-cult old connectors if the repo has a newer current pattern
34
+
35
+ ## Workflow
36
+
37
+ ### 1. Learn the house style
38
+
39
+ Inspect at least 2 existing connectors/providers and map:
40
+
41
+ - file layout
42
+ - abstraction boundaries
43
+ - config model
44
+ - retry / pagination conventions
45
+ - registry hooks
46
+ - test fixtures and naming
47
+
48
+ ### 2. Narrow the target integration
49
+
50
+ Define only the surface the repo actually needs:
51
+
52
+ - auth flow
53
+ - key entities
54
+ - core read/write operations
55
+ - pagination and rate limits
56
+ - webhook or polling model
57
+
58
+ ### 3. Build in repo-native layers
59
+
60
+ Typical slices:
61
+
62
+ - config/schema
63
+ - client/transport
64
+ - mapping layer
65
+ - connector/provider entrypoint
66
+ - registration
67
+ - tests
68
+
69
+ ### 4. Validate against the source pattern
70
+
71
+ The new connector should look obvious in the codebase, not imported from a different ecosystem.
72
+
73
+ ## Reference Shapes
74
+
75
+ ### Provider-style
76
+
77
+ ```text
78
+ providers/
79
+ existing_provider/
80
+ __init__.py
81
+ provider.py
82
+ config.py
83
+ ```
84
+
85
+ ### Connector-style
86
+
87
+ ```text
88
+ integrations/
89
+ existing/
90
+ client.py
91
+ models.py
92
+ connector.py
93
+ ```
94
+
95
+ ### TypeScript plugin-style
96
+
97
+ ```text
98
+ src/integrations/
99
+ existing/
100
+ index.ts
101
+ client.ts
102
+ types.ts
103
+ test.ts
104
+ ```
105
+
106
+ ## Quality Checklist
107
+
108
+ - [ ] matches an existing in-repo integration pattern
109
+ - [ ] config validation exists
110
+ - [ ] auth and error handling are explicit
111
+ - [ ] pagination/retry behavior follows repo norms
112
+ - [ ] registry/discovery wiring is complete
113
+ - [ ] tests mirror the host repo's style
114
+ - [ ] docs/examples are updated if expected by the repo
115
+
116
+ ## Related Skills
117
+
118
+ - `backend-patterns`
119
+ - `mcp-server-patterns`
120
+ - `github-ops`