@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,284 @@
1
+ ---
2
+ name: laravel-security
3
+ description: Laravel security best practices for authn/authz, validation, CSRF, mass assignment, file uploads, secrets, rate limiting, and secure deployment.
4
+ ---
5
+
6
+ # Laravel Security Best Practices
7
+
8
+ Comprehensive security guidance for Laravel applications to protect against common vulnerabilities.
9
+
10
+ ## When to Activate
11
+
12
+ - Adding authentication or authorization
13
+ - Handling user input and file uploads
14
+ - Building new API endpoints
15
+ - Managing secrets and environment settings
16
+ - Hardening production deployments
17
+
18
+ ## How It Works
19
+
20
+ - Middleware provides baseline protections (CSRF via `VerifyCsrfToken`, security headers via `SecurityHeaders`).
21
+ - Guards and policies enforce access control (`auth:sanctum`, `$this->authorize`, policy middleware).
22
+ - Form Requests validate and shape input (`UploadInvoiceRequest`) before it reaches services.
23
+ - Rate limiting adds abuse protection (`RateLimiter::for('login')`) alongside auth controls.
24
+ - Data safety comes from encrypted casts, mass-assignment guards, and signed routes (`URL::temporarySignedRoute` + `signed` middleware).
25
+
26
+ ## Core Security Settings
27
+
28
+ - `APP_DEBUG=false` in production
29
+ - `APP_KEY` must be set and rotated on compromise
30
+ - Set `SESSION_SECURE_COOKIE=true` and `SESSION_SAME_SITE=lax` (or `strict` for sensitive apps)
31
+ - Configure trusted proxies for correct HTTPS detection
32
+
33
+ ## Session and Cookie Hardening
34
+
35
+ - Set `SESSION_HTTP_ONLY=true` to prevent JavaScript access
36
+ - Use `SESSION_SAME_SITE=strict` for high-risk flows
37
+ - Regenerate sessions on login and privilege changes
38
+
39
+ ## Authentication and Tokens
40
+
41
+ - Use Laravel Sanctum or Passport for API auth
42
+ - Prefer short-lived tokens with refresh flows for sensitive data
43
+ - Revoke tokens on logout and compromised accounts
44
+
45
+ Example route protection:
46
+
47
+ ```php
48
+ use Illuminate\Http\Request;
49
+ use Illuminate\Support\Facades\Route;
50
+
51
+ Route::middleware('auth:sanctum')->get('/me', function (Request $request) {
52
+ return $request->user();
53
+ });
54
+ ```
55
+
56
+ ## Password Security
57
+
58
+ - Hash passwords with `Hash::make()` and never store plaintext
59
+ - Use Laravel's password broker for reset flows
60
+
61
+ ```php
62
+ use Illuminate\Support\Facades\Hash;
63
+ use Illuminate\Validation\Rules\Password;
64
+
65
+ $validated = $request->validate([
66
+ 'password' => ['required', 'string', Password::min(12)->letters()->mixedCase()->numbers()->symbols()],
67
+ ]);
68
+
69
+ $user->update(['password' => Hash::make($validated['password'])]);
70
+ ```
71
+
72
+ ## Authorization: Policies and Gates
73
+
74
+ - Use policies for model-level authorization
75
+ - Enforce authorization in controllers and services
76
+
77
+ ```php
78
+ $this->authorize('update', $project);
79
+ ```
80
+
81
+ Use policy middleware for route-level enforcement:
82
+
83
+ ```php
84
+ use Illuminate\Support\Facades\Route;
85
+
86
+ Route::put('/projects/{project}', [ProjectController::class, 'update'])
87
+ ->middleware(['auth:sanctum', 'can:update,project']);
88
+ ```
89
+
90
+ ## Validation and Data Sanitization
91
+
92
+ - Always validate inputs with Form Requests
93
+ - Use strict validation rules and type checks
94
+ - Never trust request payloads for derived fields
95
+
96
+ ## Mass Assignment Protection
97
+
98
+ - Use `$fillable` or `$guarded` and avoid `Model::unguard()`
99
+ - Prefer DTOs or explicit attribute mapping
100
+
101
+ ## SQL Injection Prevention
102
+
103
+ - Use Eloquent or query builder parameter binding
104
+ - Avoid raw SQL unless strictly necessary
105
+
106
+ ```php
107
+ DB::select('select * from users where email = ?', [$email]);
108
+ ```
109
+
110
+ ## XSS Prevention
111
+
112
+ - Blade escapes output by default (`{{ }}`)
113
+ - Use `{!! !!}` only for trusted, sanitized HTML
114
+ - Sanitize rich text with a dedicated library
115
+
116
+ ## CSRF Protection
117
+
118
+ - Keep `VerifyCsrfToken` middleware enabled
119
+ - Include `@csrf` in forms and send XSRF tokens for SPA requests
120
+
121
+ For SPA authentication with Sanctum, ensure stateful requests are configured:
122
+
123
+ ```php
124
+ // config/sanctum.php
125
+ 'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', 'localhost')),
126
+ ```
127
+
128
+ ## File Upload Safety
129
+
130
+ - Validate file size, MIME type, and extension
131
+ - Store uploads outside the public path when possible
132
+ - Scan files for malware if required
133
+
134
+ ```php
135
+ final class UploadInvoiceRequest extends FormRequest
136
+ {
137
+ public function authorize(): bool
138
+ {
139
+ return (bool) $this->user()?->can('upload-invoice');
140
+ }
141
+
142
+ public function rules(): array
143
+ {
144
+ return [
145
+ 'invoice' => ['required', 'file', 'mimes:pdf', 'max:5120'],
146
+ ];
147
+ }
148
+ }
149
+ ```
150
+
151
+ ```php
152
+ $path = $request->file('invoice')->store(
153
+ 'invoices',
154
+ config('filesystems.private_disk', 'local') // set this to a non-public disk
155
+ );
156
+ ```
157
+
158
+ ## Rate Limiting
159
+
160
+ - Apply `throttle` middleware on auth and write endpoints
161
+ - Use stricter limits for login, password reset, and OTP
162
+
163
+ ```php
164
+ use Illuminate\Cache\RateLimiting\Limit;
165
+ use Illuminate\Http\Request;
166
+ use Illuminate\Support\Facades\RateLimiter;
167
+
168
+ RateLimiter::for('login', function (Request $request) {
169
+ return [
170
+ Limit::perMinute(5)->by($request->ip()),
171
+ Limit::perMinute(5)->by(strtolower((string) $request->input('email'))),
172
+ ];
173
+ });
174
+ ```
175
+
176
+ ## Secrets and Credentials
177
+
178
+ - Never commit secrets to source control
179
+ - Use environment variables and secret managers
180
+ - Rotate keys after exposure and invalidate sessions
181
+
182
+ ## Encrypted Attributes
183
+
184
+ Use encrypted casts for sensitive columns at rest.
185
+
186
+ ```php
187
+ protected $casts = [
188
+ 'api_token' => 'encrypted',
189
+ ];
190
+ ```
191
+
192
+ ## Security Headers
193
+
194
+ - Add CSP, HSTS, and frame protection where appropriate
195
+ - Use trusted proxy configuration to enforce HTTPS redirects
196
+
197
+ Example middleware to set headers:
198
+
199
+ ```php
200
+ use Illuminate\Http\Request;
201
+ use Symfony\Component\HttpFoundation\Response;
202
+
203
+ final class SecurityHeaders
204
+ {
205
+ public function handle(Request $request, \Closure $next): Response
206
+ {
207
+ $response = $next($request);
208
+
209
+ $response->headers->add([
210
+ 'Content-Security-Policy' => "default-src 'self'",
211
+ 'Strict-Transport-Security' => 'max-age=31536000', // add includeSubDomains/preload only when all subdomains are HTTPS
212
+ 'X-Frame-Options' => 'DENY',
213
+ 'X-Content-Type-Options' => 'nosniff',
214
+ 'Referrer-Policy' => 'no-referrer',
215
+ ]);
216
+
217
+ return $response;
218
+ }
219
+ }
220
+ ```
221
+
222
+ ## CORS and API Exposure
223
+
224
+ - Restrict origins in `config/cors.php`
225
+ - Avoid wildcard origins for authenticated routes
226
+
227
+ ```php
228
+ // config/cors.php
229
+ return [
230
+ 'paths' => ['api/*', 'sanctum/csrf-cookie'],
231
+ 'allowed_methods' => ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'],
232
+ 'allowed_origins' => ['https://app.example.com'],
233
+ 'allowed_headers' => [
234
+ 'Content-Type',
235
+ 'Authorization',
236
+ 'X-Requested-With',
237
+ 'X-XSRF-TOKEN',
238
+ 'X-CSRF-TOKEN',
239
+ ],
240
+ 'supports_credentials' => true,
241
+ ];
242
+ ```
243
+
244
+ ## Logging and PII
245
+
246
+ - Never log passwords, tokens, or full card data
247
+ - Redact sensitive fields in structured logs
248
+
249
+ ```php
250
+ use Illuminate\Support\Facades\Log;
251
+
252
+ Log::info('User updated profile', [
253
+ 'user_id' => $user->id,
254
+ 'email' => '[REDACTED]',
255
+ 'token' => '[REDACTED]',
256
+ ]);
257
+ ```
258
+
259
+ ## Dependency Security
260
+
261
+ - Run `composer audit` regularly
262
+ - Pin dependencies with care and update promptly on CVEs
263
+
264
+ ## Signed URLs
265
+
266
+ Use signed routes for temporary, tamper-proof links.
267
+
268
+ ```php
269
+ use Illuminate\Support\Facades\URL;
270
+
271
+ $url = URL::temporarySignedRoute(
272
+ 'downloads.invoice',
273
+ now()->addMinutes(15),
274
+ ['invoice' => $invoice->id]
275
+ );
276
+ ```
277
+
278
+ ```php
279
+ use Illuminate\Support\Facades\Route;
280
+
281
+ Route::get('/invoices/{invoice}/download', [InvoiceController::class, 'download'])
282
+ ->name('downloads.invoice')
283
+ ->middleware('signed');
284
+ ```
@@ -0,0 +1,282 @@
1
+ ---
2
+ name: laravel-tdd
3
+ description: Test-driven development for Laravel with PHPUnit and Pest, factories, database testing, fakes, and coverage targets.
4
+ ---
5
+
6
+ # Laravel TDD Workflow
7
+
8
+ Test-driven development for Laravel applications using PHPUnit and Pest with 80%+ coverage (unit + feature).
9
+
10
+ ## When to Use
11
+
12
+ - New features or endpoints in Laravel
13
+ - Bug fixes or refactors
14
+ - Testing Eloquent models, policies, jobs, and notifications
15
+ - Prefer Pest for new tests unless the project already standardizes on PHPUnit
16
+
17
+ ## How It Works
18
+
19
+ ### Red-Green-Refactor Cycle
20
+
21
+ 1) Write a failing test
22
+ 2) Implement the minimal change to pass
23
+ 3) Refactor while keeping tests green
24
+
25
+ ### Test Layers
26
+
27
+ - **Unit**: pure PHP classes, value objects, services
28
+ - **Feature**: HTTP endpoints, auth, validation, policies
29
+ - **Integration**: database + queue + external boundaries
30
+
31
+ Choose layers based on scope:
32
+
33
+ - Use **Unit** tests for pure business logic and services.
34
+ - Use **Feature** tests for HTTP, auth, validation, and response shape.
35
+ - Use **Integration** tests when validating DB/queues/external services together.
36
+
37
+ ### Database Strategy
38
+
39
+ - `RefreshDatabase` for most feature/integration tests (runs migrations once per test run, then wraps each test in a transaction when supported; in-memory databases may re-migrate per test)
40
+ - `DatabaseTransactions` when the schema is already migrated and you only need per-test rollback
41
+ - `DatabaseMigrations` when you need a full migrate/fresh for every test and can afford the cost
42
+
43
+ Use `RefreshDatabase` as the default for tests that touch the database: for databases with transaction support, it runs migrations once per test run (via a static flag) and wraps each test in a transaction; for `:memory:` SQLite or connections without transactions, it migrates before each test. Use `DatabaseTransactions` when the schema is already migrated and you only need per-test rollbacks.
44
+
45
+ ### Testing Framework Choice
46
+
47
+ - Default to **Pest** for new tests when available.
48
+ - Use **PHPUnit** only if the project already standardizes on it or requires PHPUnit-specific tooling.
49
+
50
+ ## Examples
51
+
52
+ ### PHPUnit Example
53
+
54
+ ```php
55
+ use App\Models\User;
56
+ use Illuminate\Foundation\Testing\RefreshDatabase;
57
+ use Tests\TestCase;
58
+
59
+ final class ProjectControllerTest extends TestCase
60
+ {
61
+ use RefreshDatabase;
62
+
63
+ public function test_owner_can_create_project(): void
64
+ {
65
+ $user = User::factory()->create();
66
+
67
+ $response = $this->actingAs($user)->postJson('/api/projects', [
68
+ 'name' => 'New Project',
69
+ ]);
70
+
71
+ $response->assertCreated();
72
+ $this->assertDatabaseHas('projects', ['name' => 'New Project']);
73
+ }
74
+ }
75
+ ```
76
+
77
+ ### Feature Test Example (HTTP Layer)
78
+
79
+ ```php
80
+ use App\Models\Project;
81
+ use App\Models\User;
82
+ use Illuminate\Foundation\Testing\RefreshDatabase;
83
+ use Tests\TestCase;
84
+
85
+ final class ProjectIndexTest extends TestCase
86
+ {
87
+ use RefreshDatabase;
88
+
89
+ public function test_projects_index_returns_paginated_results(): void
90
+ {
91
+ $user = User::factory()->create();
92
+ Project::factory()->count(3)->for($user)->create();
93
+
94
+ $response = $this->actingAs($user)->getJson('/api/projects');
95
+
96
+ $response->assertOk();
97
+ $response->assertJsonStructure(['success', 'data', 'error', 'meta']);
98
+ }
99
+ }
100
+ ```
101
+
102
+ ### Pest Example
103
+
104
+ ```php
105
+ use App\Models\User;
106
+ use Illuminate\Foundation\Testing\RefreshDatabase;
107
+
108
+ use function Pest\Laravel\actingAs;
109
+ use function Pest\Laravel\assertDatabaseHas;
110
+
111
+ uses(RefreshDatabase::class);
112
+
113
+ test('owner can create project', function () {
114
+ $user = User::factory()->create();
115
+
116
+ $response = actingAs($user)->postJson('/api/projects', [
117
+ 'name' => 'New Project',
118
+ ]);
119
+
120
+ $response->assertCreated();
121
+ assertDatabaseHas('projects', ['name' => 'New Project']);
122
+ });
123
+ ```
124
+
125
+ ### Feature Test Pest Example (HTTP Layer)
126
+
127
+ ```php
128
+ use App\Models\Project;
129
+ use App\Models\User;
130
+ use Illuminate\Foundation\Testing\RefreshDatabase;
131
+
132
+ use function Pest\Laravel\actingAs;
133
+
134
+ uses(RefreshDatabase::class);
135
+
136
+ test('projects index returns paginated results', function () {
137
+ $user = User::factory()->create();
138
+ Project::factory()->count(3)->for($user)->create();
139
+
140
+ $response = actingAs($user)->getJson('/api/projects');
141
+
142
+ $response->assertOk();
143
+ $response->assertJsonStructure(['success', 'data', 'error', 'meta']);
144
+ });
145
+ ```
146
+
147
+ ### Factories and States
148
+
149
+ - Use factories for test data
150
+ - Define states for edge cases (archived, admin, trial)
151
+
152
+ ```php
153
+ $user = User::factory()->state(['role' => 'admin'])->create();
154
+ ```
155
+
156
+ ### Database Testing
157
+
158
+ - Use `RefreshDatabase` for clean state
159
+ - Keep tests isolated and deterministic
160
+ - Prefer `assertDatabaseHas` over manual queries
161
+
162
+ ### Persistence Test Example
163
+
164
+ ```php
165
+ use App\Models\Project;
166
+ use Illuminate\Foundation\Testing\RefreshDatabase;
167
+ use Tests\TestCase;
168
+
169
+ final class ProjectRepositoryTest extends TestCase
170
+ {
171
+ use RefreshDatabase;
172
+
173
+ public function test_project_can_be_retrieved_by_slug(): void
174
+ {
175
+ $project = Project::factory()->create(['slug' => 'alpha']);
176
+
177
+ $found = Project::query()->where('slug', 'alpha')->firstOrFail();
178
+
179
+ $this->assertSame($project->id, $found->id);
180
+ }
181
+ }
182
+ ```
183
+
184
+ ### Fakes for Side Effects
185
+
186
+ - `Bus::fake()` for jobs
187
+ - `Queue::fake()` for queued work
188
+ - `Mail::fake()` and `Notification::fake()` for notifications
189
+ - `Event::fake()` for domain events
190
+
191
+ ```php
192
+ use Illuminate\Support\Facades\Queue;
193
+
194
+ Queue::fake();
195
+
196
+ dispatch(new SendOrderConfirmation($order->id));
197
+
198
+ Queue::assertPushed(SendOrderConfirmation::class);
199
+ ```
200
+
201
+ ```php
202
+ use Illuminate\Support\Facades\Notification;
203
+
204
+ Notification::fake();
205
+
206
+ $user->notify(new InvoiceReady($invoice));
207
+
208
+ Notification::assertSentTo($user, InvoiceReady::class);
209
+ ```
210
+
211
+ ### Auth Testing (Sanctum)
212
+
213
+ ```php
214
+ use Laravel\Sanctum\Sanctum;
215
+
216
+ Sanctum::actingAs($user);
217
+
218
+ $response = $this->getJson('/api/projects');
219
+ $response->assertOk();
220
+ ```
221
+
222
+ ### HTTP and External Services
223
+
224
+ - Use `Http::fake()` to isolate external APIs
225
+ - Assert outbound payloads with `Http::assertSent()`
226
+
227
+ ### Coverage Targets
228
+
229
+ - Enforce 80%+ coverage for unit + feature tests
230
+ - Use `pcov` or `XDEBUG_MODE=coverage` in CI
231
+
232
+ ### Test Commands
233
+
234
+ - `php artisan test`
235
+ - `vendor/bin/phpunit`
236
+ - `vendor/bin/pest`
237
+
238
+ ### Test Configuration
239
+
240
+ - Use `phpunit.xml` to set `DB_CONNECTION=sqlite` and `DB_DATABASE=:memory:` for fast tests
241
+ - Keep separate env for tests to avoid touching dev/prod data
242
+
243
+ ### Authorization Tests
244
+
245
+ ```php
246
+ use Illuminate\Support\Facades\Gate;
247
+
248
+ $this->assertTrue(Gate::forUser($user)->allows('update', $project));
249
+ $this->assertFalse(Gate::forUser($otherUser)->allows('update', $project));
250
+ ```
251
+
252
+ ### Inertia Feature Tests
253
+
254
+ When using Inertia.js, assert on the component name and props with the Inertia testing helpers.
255
+
256
+ ```php
257
+ use App\Models\User;
258
+ use Inertia\Testing\AssertableInertia;
259
+ use Illuminate\Foundation\Testing\RefreshDatabase;
260
+ use Tests\TestCase;
261
+
262
+ final class DashboardInertiaTest extends TestCase
263
+ {
264
+ use RefreshDatabase;
265
+
266
+ public function test_dashboard_inertia_props(): void
267
+ {
268
+ $user = User::factory()->create();
269
+
270
+ $response = $this->actingAs($user)->get('/dashboard');
271
+
272
+ $response->assertOk();
273
+ $response->assertInertia(fn (AssertableInertia $page) => $page
274
+ ->component('Dashboard')
275
+ ->where('user.id', $user->id)
276
+ ->has('projects')
277
+ );
278
+ }
279
+ }
280
+ ```
281
+
282
+ Prefer `assertInertia` over raw JSON assertions to keep tests aligned with Inertia responses.