tribunal-kit 9.2.1 → 9.2.4

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 (1164) hide show
  1. package/.agent/.tribunal/session.jsonl +15 -0
  2. package/.agent/ARCHITECTURE.md +4 -4
  3. package/.agent/agents/agent-shield-auditor.md +18 -0
  4. package/.agent/agents/harness-manager.md +49 -0
  5. package/.agent/agents/human-gate-negotiator.md +22 -0
  6. package/.agent/agents/kernel-scheduler.md +56 -0
  7. package/.agent/agents/memory-archivist.md +37 -0
  8. package/.agent/agents/orchestrator.md +7 -0
  9. package/.agent/agents/project-planner.md +5 -0
  10. package/.agent/agents/security-auditor.md +5 -0
  11. package/.agent/config/claude.json +1 -1
  12. package/.agent/config/plugin.json +1 -1
  13. package/.agent/history/architecture-explorer.html +352 -0
  14. package/.agent/history/architecture-graph.yaml +181 -1
  15. package/.agent/history/graph-cache.json +323 -13
  16. package/.agent/history/integrity_manifest.json +3937 -299
  17. package/.agent/history/memory/.memory.idx +50 -50
  18. package/.agent/history/snapshots/.opencode__plugins__tribunal.js.json +12 -0
  19. package/.agent/history/snapshots/.pi__extensions__tribunal.ts.json +12 -0
  20. package/.agent/history/snapshots/bin__adapter-install.js.json +1 -1
  21. package/.agent/history/snapshots/bin__mcp-server.js.json +4 -2
  22. package/.agent/history/snapshots/bin__proxy-server.js.json +1 -1
  23. package/.agent/history/snapshots/bin__spawn-agent.js.json +1 -1
  24. package/.agent/history/snapshots/bin__wrapper.js.json +1 -1
  25. package/.agent/history/snapshots/eslint.config.js.json +1 -1
  26. package/.agent/history/snapshots/hooks__session-start.js.json +11 -0
  27. package/.agent/history/snapshots/scripts__apply-version.js.json +11 -0
  28. package/.agent/history/snapshots/scripts__audit_skill_sdo.js.json +11 -0
  29. package/.agent/history/snapshots/scripts__clean-pycache.js.json +11 -0
  30. package/.agent/history/snapshots/scripts__context_compiler.js.json +17 -0
  31. package/.agent/history/snapshots/scripts__modernize_skills.js.json +11 -0
  32. package/.agent/history/snapshots/scripts__package-cores.js.json +12 -0
  33. package/.agent/history/snapshots/scripts__skill_enhancement_engine.js.json +11 -0
  34. package/.agent/history/snapshots/scripts__sync-skills.js.json +11 -0
  35. package/.agent/history/snapshots/scripts__telemetry_gc.js.json +11 -0
  36. package/.agent/history/snapshots/scripts__validate-payload.js.json +1 -1
  37. package/.agent/history/snapshots/test__integration__browser_cli.test.js.json +12 -0
  38. package/.agent/history/snapshots/test__integration__sync_status.test.js.json +1 -1
  39. package/.agent/history/snapshots/test__unit__ast_context_loader.test.js.json +12 -0
  40. package/.agent/history/snapshots/test__unit__browser_case_bridge.test.js.json +11 -0
  41. package/.agent/history/snapshots/test__unit__browser_discovery.test.js.json +10 -0
  42. package/.agent/history/snapshots/test__unit__browser_idpi.test.js.json +10 -0
  43. package/.agent/history/snapshots/test__unit__browser_sentinel.test.js.json +11 -0
  44. package/.agent/history/snapshots/test__unit__browser_synapse.test.js.json +10 -0
  45. package/.agent/history/snapshots/test__unit__browser_trimmer.test.js.json +10 -0
  46. package/.agent/history/snapshots/test__unit__context_compiler.test.js.json +26 -0
  47. package/.agent/history/snapshots/test__unit__init.test.js.json +1 -1
  48. package/.agent/history/snapshots/test__unit__learn.test.js.json +1 -1
  49. package/.agent/history/snapshots/test__unit__mcp_server.test.js.json +1 -1
  50. package/.agent/history/snapshots/test__unit__platform_download_audit.test.js.json +11 -0
  51. package/.agent/history/snapshots/test__unit__prompt_compiler.test.js.json +10 -0
  52. package/.agent/history/snapshots/test__unit__sdd_integration.test.js.json +12 -0
  53. package/.agent/history/snapshots/test__unit__stress.test.js.json +1 -1
  54. package/.agent/history/snapshots/test__unit__token_budget_broker.test.js.json +10 -0
  55. package/.agent/history/snapshots/test__unit__tui.test.js.json +10 -0
  56. package/.agent/routing_index.json +1 -1
  57. package/.agent/rules/GEMINI.md +1 -1
  58. package/.agent/rules/kernel.md +86 -0
  59. package/.agent/scripts/_utils.js +79 -1
  60. package/.agent/scripts/checklist.js +1 -1
  61. package/.agent/scripts/context_broker.js +0 -8
  62. package/.agent/scripts/context_compiler.js +1106 -3
  63. package/.agent/scripts/guardrail_engine.js +48 -11
  64. package/.agent/scripts/harness_manager.js +60 -0
  65. package/.agent/scripts/lint_runner.js +1 -1
  66. package/.agent/scripts/mcp_server.js +181 -0
  67. package/.agent/scripts/memory_archivist.js +97 -0
  68. package/.agent/scripts/memory_consolidator.js +37 -0
  69. package/.agent/scripts/memory_engine.js +526 -325
  70. package/.agent/scripts/pipeline_engine.js +45 -107
  71. package/.agent/scripts/session_logger.js +115 -0
  72. package/.agent/scripts/session_manager.js +10 -0
  73. package/.agent/scripts/swarm_dispatcher.js +197 -49
  74. package/.agent/scripts/syscall_registry.js +105 -0
  75. package/.agent/scripts/test_runner.js +1 -1
  76. package/.agent/scripts/verify_all.js +2 -2
  77. package/.agent/skill_topic_map.json +98 -22
  78. package/.agent/skills/12-principles-of-animation/SKILL.md +1 -76
  79. package/.agent/skills/60fps-animation/SKILL.md +1 -76
  80. package/.agent/skills/accessible-animation/SKILL.md +1 -76
  81. package/.agent/skills/adapt/SKILL.md +1 -76
  82. package/.agent/skills/advanced-rag-pipelines/SKILL.md +1 -76
  83. package/.agent/skills/agent-organizer/SKILL.md +1 -76
  84. package/.agent/skills/agent-syscall-guidelines/SKILL.md +25 -0
  85. package/.agent/skills/agentic-patterns/SKILL.md +1 -76
  86. package/.agent/skills/agentic-workflows-2026/SKILL.md +6 -73
  87. package/.agent/skills/agentshield-security/SKILL.md +26 -0
  88. package/.agent/skills/ai-app-hardening/SKILL.md +1 -76
  89. package/.agent/skills/ai-prompt-injection-defense/SKILL.md +1 -76
  90. package/.agent/skills/animation-on-scroll/SKILL.md +1 -76
  91. package/.agent/skills/animation-systems/SKILL.md +1 -76
  92. package/.agent/skills/antfu-conventions/SKILL.md +0 -75
  93. package/.agent/skills/api-patterns/SKILL.md +1 -76
  94. package/.agent/skills/api-security-auditor/SKILL.md +1 -76
  95. package/.agent/skills/app-builder/SKILL.md +1 -76
  96. package/.agent/skills/appflow-wireframe/SKILL.md +1 -76
  97. package/.agent/skills/apple-design/SKILL.md +1 -76
  98. package/.agent/skills/architecture/SKILL.md +1 -76
  99. package/.agent/skills/audit-and-fix/SKILL.md +41 -77
  100. package/.agent/skills/authentication-best-practices/SKILL.md +1 -76
  101. package/.agent/skills/backend-security-expert/SKILL.md +1 -76
  102. package/.agent/skills/baseline-ui/SKILL.md +1 -76
  103. package/.agent/skills/bash-linux/SKILL.md +1 -76
  104. package/.agent/skills/behavioral-modes/SKILL.md +1 -76
  105. package/.agent/skills/better-colors/SKILL.md +1 -76
  106. package/.agent/skills/better-typography/SKILL.md +1 -76
  107. package/.agent/skills/better-ui/SKILL.md +1 -76
  108. package/.agent/skills/bolder/SKILL.md +1 -76
  109. package/.agent/skills/brainstorming/SKILL.md +1 -76
  110. package/.agent/skills/browser-audit/SKILL.md +1 -76
  111. package/.agent/skills/browser-native-ai/SKILL.md +1 -76
  112. package/.agent/skills/build-primitive/SKILL.md +1 -76
  113. package/.agent/skills/building-native-ui/SKILL.md +1 -76
  114. package/.agent/skills/cicd-pro/SKILL.md +1 -76
  115. package/.agent/skills/clarify/SKILL.md +1 -76
  116. package/.agent/skills/clean-code/SKILL.md +1 -76
  117. package/.agent/skills/cloud-architect/SKILL.md +1 -76
  118. package/.agent/skills/cobejs/SKILL.md +1 -76
  119. package/.agent/skills/code-review-checklist/SKILL.md +1 -76
  120. package/.agent/skills/codebase-design/SKILL.md +1 -76
  121. package/.agent/skills/colorize/SKILL.md +1 -76
  122. package/.agent/skills/compact-landing/SKILL.md +1 -76
  123. package/.agent/skills/company-logos/SKILL.md +1 -76
  124. package/.agent/skills/config-validator/SKILL.md +1 -76
  125. package/.agent/skills/containerization-pro/SKILL.md +1 -76
  126. package/.agent/skills/context-engineering-pro/SKILL.md +5 -73
  127. package/.agent/skills/create-design-md/SKILL.md +1 -76
  128. package/.agent/skills/critique/SKILL.md +1 -76
  129. package/.agent/skills/csharp-developer/SKILL.md +1 -76
  130. package/.agent/skills/data-validation-schemas/SKILL.md +1 -76
  131. package/.agent/skills/database-design/SKILL.md +1 -76
  132. package/.agent/skills/delight/SKILL.md +1 -76
  133. package/.agent/skills/deployment-procedures/SKILL.md +1 -76
  134. package/.agent/skills/design-lab/SKILL.md +1 -76
  135. package/.agent/skills/devops-engineer/SKILL.md +1 -76
  136. package/.agent/skills/devops-incident-responder/SKILL.md +1 -76
  137. package/.agent/skills/diagnosing-bugs/SKILL.md +1 -76
  138. package/.agent/skills/distill/SKILL.md +1 -76
  139. package/.agent/skills/documentation-templates/SKILL.md +1 -76
  140. package/.agent/skills/domain-modeling/SKILL.md +1 -76
  141. package/.agent/skills/duckdb-analytical-sql/SKILL.md +1 -76
  142. package/.agent/skills/edge-ai-mobile/SKILL.md +1 -76
  143. package/.agent/skills/edge-computing/SKILL.md +1 -76
  144. package/.agent/skills/emil-design-eng/SKILL.md +1 -76
  145. package/.agent/skills/error-resilience/SKILL.md +1 -76
  146. package/.agent/skills/expo-router-v4/SKILL.md +1 -76
  147. package/.agent/skills/extract-design-system/SKILL.md +1 -76
  148. package/.agent/skills/fabel-protocol/SKILL.md +3 -73
  149. package/.agent/skills/fixing-accessibility/SKILL.md +1 -76
  150. package/.agent/skills/fixing-metadata/SKILL.md +1 -76
  151. package/.agent/skills/fixing-motion-performance/SKILL.md +1 -76
  152. package/.agent/skills/framer-motion-expert/SKILL.md +1 -76
  153. package/.agent/skills/frontend-design/SKILL.md +1 -76
  154. package/.agent/skills/frontend-security-expert/SKILL.md +1 -76
  155. package/.agent/skills/game-design-expert/SKILL.md +1 -76
  156. package/.agent/skills/game-engineering-expert/SKILL.md +1 -76
  157. package/.agent/skills/generative-ui-expert/SKILL.md +1 -76
  158. package/.agent/skills/geo-fundamentals/SKILL.md +1 -76
  159. package/.agent/skills/git-pro/SKILL.md +1 -76
  160. package/.agent/skills/github-operations/SKILL.md +1 -76
  161. package/.agent/skills/gpt-taste/SKILL.md +1 -76
  162. package/.agent/skills/graph-engineering/SKILL.md +28 -0
  163. package/.agent/skills/gsap-core/SKILL.md +1 -76
  164. package/.agent/skills/gsap-frameworks/SKILL.md +1 -76
  165. package/.agent/skills/gsap-performance/SKILL.md +1 -76
  166. package/.agent/skills/gsap-plugins/SKILL.md +1 -76
  167. package/.agent/skills/gsap-react/SKILL.md +1 -76
  168. package/.agent/skills/gsap-scrolltrigger/SKILL.md +1 -76
  169. package/.agent/skills/gsap-timeline/SKILL.md +1 -76
  170. package/.agent/skills/gsap-utils/SKILL.md +1 -76
  171. package/.agent/skills/harden/SKILL.md +1 -76
  172. package/.agent/skills/harness-protocol/SKILL.md +6 -73
  173. package/.agent/skills/hf-cli/SKILL.md +239 -0
  174. package/.agent/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  175. package/.agent/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  176. package/.agent/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  177. package/.agent/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  178. package/.agent/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  179. package/.agent/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  180. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  181. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  182. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  183. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  184. package/.agent/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  185. package/.agent/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  186. package/.agent/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  187. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  188. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  189. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  190. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  191. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  192. package/.agent/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  193. package/.agent/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  194. package/.agent/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  195. package/.agent/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  196. package/.agent/skills/hf-mem/SKILL.md +79 -0
  197. package/.agent/skills/huggingface-best/SKILL.md +134 -0
  198. package/.agent/skills/huggingface-community-evals/SKILL.md +207 -0
  199. package/.agent/skills/huggingface-community-evals/examples/.env.example +3 -0
  200. package/.agent/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  201. package/.agent/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  202. package/.agent/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  203. package/.agent/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  204. package/.agent/skills/huggingface-datasets/SKILL.md +107 -0
  205. package/.agent/skills/huggingface-gradio/SKILL.md +298 -0
  206. package/.agent/skills/huggingface-gradio/examples.md +613 -0
  207. package/.agent/skills/huggingface-llm-trainer/SKILL.md +738 -0
  208. package/.agent/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  209. package/.agent/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  210. package/.agent/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  211. package/.agent/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  212. package/.agent/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  213. package/.agent/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  214. package/.agent/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  215. package/.agent/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  216. package/.agent/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  217. package/.agent/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  218. package/.agent/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  219. package/.agent/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  220. package/.agent/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  221. package/.agent/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  222. package/.agent/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  223. package/.agent/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  224. package/.agent/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  225. package/.agent/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  226. package/.agent/skills/huggingface-local-models/SKILL.md +113 -0
  227. package/.agent/skills/huggingface-local-models/references/hardware.md +38 -0
  228. package/.agent/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  229. package/.agent/skills/huggingface-local-models/references/quantization.md +256 -0
  230. package/.agent/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  231. package/.agent/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  232. package/.agent/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  233. package/.agent/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  234. package/.agent/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  235. package/.agent/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  236. package/.agent/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  237. package/.agent/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  238. package/.agent/skills/huggingface-paper-publisher/SKILL.md +624 -0
  239. package/.agent/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  240. package/.agent/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  241. package/.agent/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  242. package/.agent/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  243. package/.agent/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  244. package/.agent/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  245. package/.agent/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  246. package/.agent/skills/huggingface-papers/SKILL.md +239 -0
  247. package/.agent/skills/huggingface-spaces/README.md +9 -0
  248. package/.agent/skills/huggingface-spaces/SKILL.md +242 -0
  249. package/.agent/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  250. package/.agent/skills/huggingface-spaces/references/3d-generation.md +98 -0
  251. package/.agent/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  252. package/.agent/skills/huggingface-spaces/references/3d-models.md +227 -0
  253. package/.agent/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  254. package/.agent/skills/huggingface-spaces/references/buckets.md +89 -0
  255. package/.agent/skills/huggingface-spaces/references/debugging.md +236 -0
  256. package/.agent/skills/huggingface-spaces/references/gradio.md +200 -0
  257. package/.agent/skills/huggingface-spaces/references/grants.md +63 -0
  258. package/.agent/skills/huggingface-spaces/references/inference-providers.md +97 -0
  259. package/.agent/skills/huggingface-spaces/references/known-errors.md +232 -0
  260. package/.agent/skills/huggingface-spaces/references/requirements.md +169 -0
  261. package/.agent/skills/huggingface-spaces/references/zerogpu.md +349 -0
  262. package/.agent/skills/huggingface-tool-builder/SKILL.md +120 -0
  263. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  264. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  265. package/.agent/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  266. package/.agent/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  267. package/.agent/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  268. package/.agent/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  269. package/.agent/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  270. package/.agent/skills/huggingface-trackio/SKILL.md +142 -0
  271. package/.agent/skills/huggingface-trackio/references/alerts.md +196 -0
  272. package/.agent/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  273. package/.agent/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  274. package/.agent/skills/huggingface-vision-trainer/SKILL.md +593 -0
  275. package/.agent/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  276. package/.agent/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  277. package/.agent/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  278. package/.agent/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  279. package/.agent/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  280. package/.agent/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  281. package/.agent/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  282. package/.agent/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  283. package/.agent/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  284. package/.agent/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  285. package/.agent/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  286. package/.agent/skills/huggingface-zerogpu/SKILL.md +289 -0
  287. package/.agent/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  288. package/.agent/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  289. package/.agent/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  290. package/.agent/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  291. package/.agent/skills/human-gate-negotiation/SKILL.md +30 -0
  292. package/.agent/skills/i18n-localization/SKILL.md +1 -76
  293. package/.agent/skills/impeccable/SKILL.md +1 -76
  294. package/.agent/skills/improve-codebase-architecture/SKILL.md +1 -76
  295. package/.agent/skills/improve-ui/SKILL.md +1 -76
  296. package/.agent/skills/intelligent-routing/SKILL.md +9 -89
  297. package/.agent/skills/knowledge-graph/SKILL.md +1 -76
  298. package/.agent/skills/landing-page/SKILL.md +1 -76
  299. package/.agent/skills/lint-and-validate/SKILL.md +1 -76
  300. package/.agent/skills/llm-engineering/SKILL.md +1 -76
  301. package/.agent/skills/local-first/SKILL.md +1 -76
  302. package/.agent/skills/local-first-architecture/SKILL.md +1 -76
  303. package/.agent/skills/lottie-animation/SKILL.md +1 -76
  304. package/.agent/skills/marquee-loop/SKILL.md +1 -76
  305. package/.agent/skills/masked-reveal/SKILL.md +1 -76
  306. package/.agent/skills/mcp-builder/SKILL.md +1 -76
  307. package/.agent/skills/micro-interaction/SKILL.md +1 -76
  308. package/.agent/skills/mobile-design/SKILL.md +1 -76
  309. package/.agent/skills/monorepo-management/SKILL.md +1 -76
  310. package/.agent/skills/morphing-icons/SKILL.md +1 -76
  311. package/.agent/skills/motion-engineering/SKILL.md +1 -76
  312. package/.agent/skills/nextjs-react-expert/SKILL.md +1 -76
  313. package/.agent/skills/nodejs-best-practices/SKILL.md +1 -76
  314. package/.agent/skills/observability/SKILL.md +1 -76
  315. package/.agent/skills/opentelemetry-observability/SKILL.md +1 -76
  316. package/.agent/skills/page-transition-animation/SKILL.md +1 -76
  317. package/.agent/skills/parallel-agents/SKILL.md +1 -76
  318. package/.agent/skills/performance-profiling/SKILL.md +1 -76
  319. package/.agent/skills/plan-writing/SKILL.md +1 -76
  320. package/.agent/skills/platform-engineer/SKILL.md +1 -76
  321. package/.agent/skills/platform-engineering-opentofu/SKILL.md +1 -76
  322. package/.agent/skills/playwright-ai-e2e/SKILL.md +1 -76
  323. package/.agent/skills/playwright-best-practices/SKILL.md +1 -76
  324. package/.agent/skills/polish/SKILL.md +1 -76
  325. package/.agent/skills/powershell-windows/SKILL.md +1 -76
  326. package/.agent/skills/pricing-page/SKILL.md +1 -76
  327. package/.agent/skills/product-aware-heuristics/SKILL.md +1 -76
  328. package/.agent/skills/progressive-blur/SKILL.md +1 -76
  329. package/.agent/skills/project-idioms/SKILL.md +1 -76
  330. package/.agent/skills/property-based-testing/SKILL.md +1 -76
  331. package/.agent/skills/python-patterns/SKILL.md +1 -76
  332. package/.agent/skills/python-pro/SKILL.md +1 -76
  333. package/.agent/skills/quieter/SKILL.md +1 -76
  334. package/.agent/skills/react-doctor/SKILL.md +1 -76
  335. package/.agent/skills/react-specialist/SKILL.md +1 -76
  336. package/.agent/skills/readme-builder/SKILL.md +1 -76
  337. package/.agent/skills/realtime-patterns/SKILL.md +1 -76
  338. package/.agent/skills/red-team-tactics/SKILL.md +1 -76
  339. package/.agent/skills/redesign-skill/SKILL.md +1 -76
  340. package/.agent/skills/review-animations/SKILL.md +1 -76
  341. package/.agent/skills/rust-pro/SKILL.md +1 -76
  342. package/.agent/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  343. package/.agent/skills/seo-fundamentals/SKILL.md +1 -76
  344. package/.agent/skills/server-management/SKILL.md +1 -76
  345. package/.agent/skills/session-log-interrogation/SKILL.md +29 -0
  346. package/.agent/skills/shadcn-ui-expert/SKILL.md +1 -76
  347. package/.agent/skills/shape/SKILL.md +1 -76
  348. package/.agent/skills/skill-creator/SKILL.md +124 -90
  349. package/.agent/skills/soft-skill/SKILL.md +1 -76
  350. package/.agent/skills/sounds-on-the-web/SKILL.md +1 -76
  351. package/.agent/skills/sql-pro/SKILL.md +1 -76
  352. package/.agent/skills/subagent-driven-development/SKILL.md +32 -0
  353. package/.agent/skills/supabase-postgres-best-practices/SKILL.md +1 -76
  354. package/.agent/skills/svg-animation/SKILL.md +1 -76
  355. package/.agent/skills/swiftui-expert/SKILL.md +1 -76
  356. package/.agent/skills/swiss-design/SKILL.md +1 -76
  357. package/.agent/skills/system-design-pro/SKILL.md +1 -76
  358. package/.agent/skills/systematic-debugging/SKILL.md +3 -73
  359. package/.agent/skills/tailwind-patterns/SKILL.md +1 -76
  360. package/.agent/skills/taste-skill/SKILL.md +1 -76
  361. package/.agent/skills/tdd-workflow/SKILL.md +1 -76
  362. package/.agent/skills/test-result-analyzer/SKILL.md +1 -76
  363. package/.agent/skills/testing-patterns/SKILL.md +1 -76
  364. package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
  365. package/.agent/skills/thinking-protocol/SKILL.md +1 -78
  366. package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
  367. package/.agent/skills/train-sentence-transformers/SKILL.md +109 -0
  368. package/.agent/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  369. package/.agent/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  370. package/.agent/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  371. package/.agent/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  372. package/.agent/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  373. package/.agent/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  374. package/.agent/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  375. package/.agent/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  376. package/.agent/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  377. package/.agent/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  378. package/.agent/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  379. package/.agent/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  380. package/.agent/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  381. package/.agent/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  382. package/.agent/skills/train-sentence-transformers/references/training_args.md +270 -0
  383. package/.agent/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  384. package/.agent/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  385. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  386. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  387. package/.agent/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  388. package/.agent/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  389. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  390. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  391. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  392. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  393. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  394. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  395. package/.agent/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  396. package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  397. package/.agent/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  398. package/.agent/skills/transformers-js/SKILL.md +692 -0
  399. package/.agent/skills/transformers-js/references/CACHE.md +339 -0
  400. package/.agent/skills/transformers-js/references/CONFIGURATION.md +438 -0
  401. package/.agent/skills/transformers-js/references/EXAMPLES.md +620 -0
  402. package/.agent/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  403. package/.agent/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  404. package/.agent/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  405. package/.agent/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  406. package/.agent/skills/transitions-dev/SKILL.md +1 -76
  407. package/.agent/skills/trend-researcher/SKILL.md +1 -76
  408. package/.agent/skills/tribunal-instincts-memory/SKILL.md +31 -0
  409. package/.agent/skills/trl-training/SKILL.md +318 -0
  410. package/.agent/skills/typescript-advanced/SKILL.md +1 -76
  411. package/.agent/skills/typeset/SKILL.md +1 -76
  412. package/.agent/skills/ui-reasoning-engine/SKILL.md +1 -76
  413. package/.agent/skills/ui-skill-packs/SKILL.md +1 -76
  414. package/.agent/skills/ui-skills-root/SKILL.md +1 -76
  415. package/.agent/skills/ui-ux-pro-max/SKILL.md +1 -76
  416. package/.agent/skills/ui-ux-researcher/SKILL.md +1 -76
  417. package/.agent/skills/vector-search-pgvector/SKILL.md +1 -76
  418. package/.agent/skills/verification-before-completion/SKILL.md +1 -76
  419. package/.agent/skills/vue-expert/SKILL.md +1 -76
  420. package/.agent/skills/vulnerability-scanner/SKILL.md +1 -76
  421. package/.agent/skills/web-accessibility-auditor/SKILL.md +1 -76
  422. package/.agent/skills/web-design-guidelines/SKILL.md +1 -76
  423. package/.agent/skills/web-quality-audit/SKILL.md +1 -76
  424. package/.agent/skills/webapp-testing/SKILL.md +1 -76
  425. package/.agent/skills/webgpu-performance/SKILL.md +1 -76
  426. package/.agent/skills/whimsy-injector/SKILL.md +1 -76
  427. package/.agent/skills/workflow-optimizer/SKILL.md +1 -76
  428. package/.agent/skills/zero-trust-passkeys/SKILL.md +1 -76
  429. package/.agent/workflows/assimilate.md +21 -0
  430. package/.agent/workflows/audit.md +5 -0
  431. package/.agent/workflows/generate.md +6 -1
  432. package/.agent/workflows/htop.md +22 -0
  433. package/.agent/workflows/marathon.md +5 -0
  434. package/.agent/workflows/orchestrate.md +1 -1
  435. package/.agent/workflows/resume.md +20 -0
  436. package/.agent/workflows/review-ai.md +1 -1
  437. package/.agent/workflows/skill-enhancement-engine.md +6 -10
  438. package/.agent/workflows/swarm.md +1 -1
  439. package/.agent/workflows/team-mode.md +22 -0
  440. package/.agent/workflows/tribunal-backend.md +1 -1
  441. package/.agent/workflows/tribunal-cicd.md +1 -1
  442. package/.agent/workflows/tribunal-database.md +1 -1
  443. package/.agent/workflows/tribunal-frontend.md +1 -1
  444. package/.agent/workflows/tribunal-full.md +9 -9
  445. package/.agent/workflows/tribunal-mobile.md +1 -1
  446. package/.agent/workflows/tribunal-speed.md +1 -1
  447. package/.agent/workflows/tribunal-ui.md +1 -1
  448. package/.agents/skills/12-principles-of-animation/SKILL.md +1 -76
  449. package/.agents/skills/60fps-animation/SKILL.md +1 -76
  450. package/.agents/skills/accessible-animation/SKILL.md +1 -76
  451. package/.agents/skills/adapt/SKILL.md +1 -76
  452. package/.agents/skills/advanced-rag-pipelines/SKILL.md +1 -76
  453. package/.agents/skills/agent-organizer/SKILL.md +1 -76
  454. package/.agents/skills/agent-syscall-guidelines/SKILL.md +25 -0
  455. package/.agents/skills/agentic-patterns/SKILL.md +1 -76
  456. package/.agents/skills/agentic-workflows-2026/SKILL.md +6 -73
  457. package/.agents/skills/agentshield-security/SKILL.md +26 -0
  458. package/.agents/skills/ai-app-hardening/SKILL.md +1 -76
  459. package/.agents/skills/ai-prompt-injection-defense/SKILL.md +1 -76
  460. package/.agents/skills/animation-on-scroll/SKILL.md +1 -76
  461. package/.agents/skills/animation-systems/SKILL.md +1 -76
  462. package/.agents/skills/antfu-conventions/SKILL.md +0 -75
  463. package/.agents/skills/api-patterns/SKILL.md +1 -76
  464. package/.agents/skills/api-security-auditor/SKILL.md +1 -76
  465. package/.agents/skills/app-builder/SKILL.md +1 -76
  466. package/.agents/skills/appflow-wireframe/SKILL.md +1 -76
  467. package/.agents/skills/apple-design/SKILL.md +1 -76
  468. package/.agents/skills/architecture/SKILL.md +1 -76
  469. package/.agents/skills/audit-and-fix/SKILL.md +41 -77
  470. package/.agents/skills/authentication-best-practices/SKILL.md +1 -76
  471. package/.agents/skills/backend-security-expert/SKILL.md +1 -76
  472. package/.agents/skills/baseline-ui/SKILL.md +1 -76
  473. package/.agents/skills/bash-linux/SKILL.md +1 -76
  474. package/.agents/skills/behavioral-modes/SKILL.md +1 -76
  475. package/.agents/skills/better-colors/SKILL.md +1 -76
  476. package/.agents/skills/better-typography/SKILL.md +1 -76
  477. package/.agents/skills/better-ui/SKILL.md +1 -76
  478. package/.agents/skills/bolder/SKILL.md +1 -76
  479. package/.agents/skills/brainstorming/SKILL.md +1 -76
  480. package/.agents/skills/browser-audit/SKILL.md +1 -76
  481. package/.agents/skills/browser-native-ai/SKILL.md +1 -76
  482. package/.agents/skills/build-primitive/SKILL.md +1 -76
  483. package/.agents/skills/building-native-ui/SKILL.md +1 -76
  484. package/.agents/skills/cicd-pro/SKILL.md +1 -76
  485. package/.agents/skills/clarify/SKILL.md +1 -76
  486. package/.agents/skills/clean-code/SKILL.md +1 -76
  487. package/.agents/skills/cloud-architect/SKILL.md +1 -76
  488. package/.agents/skills/cobejs/SKILL.md +1 -76
  489. package/.agents/skills/code-review-checklist/SKILL.md +1 -76
  490. package/.agents/skills/codebase-design/SKILL.md +1 -76
  491. package/.agents/skills/colorize/SKILL.md +1 -76
  492. package/.agents/skills/compact-landing/SKILL.md +1 -76
  493. package/.agents/skills/company-logos/SKILL.md +1 -76
  494. package/.agents/skills/config-validator/SKILL.md +1 -76
  495. package/.agents/skills/containerization-pro/SKILL.md +1 -76
  496. package/.agents/skills/context-engineering-pro/SKILL.md +5 -73
  497. package/.agents/skills/create-design-md/SKILL.md +1 -76
  498. package/.agents/skills/critique/SKILL.md +1 -76
  499. package/.agents/skills/csharp-developer/SKILL.md +1 -76
  500. package/.agents/skills/data-validation-schemas/SKILL.md +1 -76
  501. package/.agents/skills/database-design/SKILL.md +1 -76
  502. package/.agents/skills/delight/SKILL.md +1 -76
  503. package/.agents/skills/deployment-procedures/SKILL.md +1 -76
  504. package/.agents/skills/design-lab/SKILL.md +1 -76
  505. package/.agents/skills/devops-engineer/SKILL.md +1 -76
  506. package/.agents/skills/devops-incident-responder/SKILL.md +1 -76
  507. package/.agents/skills/diagnosing-bugs/SKILL.md +1 -76
  508. package/.agents/skills/distill/SKILL.md +1 -76
  509. package/.agents/skills/documentation-templates/SKILL.md +1 -76
  510. package/.agents/skills/domain-modeling/SKILL.md +1 -76
  511. package/.agents/skills/duckdb-analytical-sql/SKILL.md +1 -76
  512. package/.agents/skills/edge-ai-mobile/SKILL.md +1 -76
  513. package/.agents/skills/edge-computing/SKILL.md +1 -76
  514. package/.agents/skills/emil-design-eng/SKILL.md +1 -76
  515. package/.agents/skills/error-resilience/SKILL.md +1 -76
  516. package/.agents/skills/expo-router-v4/SKILL.md +1 -76
  517. package/.agents/skills/extract-design-system/SKILL.md +1 -76
  518. package/.agents/skills/fabel-protocol/SKILL.md +3 -73
  519. package/.agents/skills/fixing-accessibility/SKILL.md +1 -76
  520. package/.agents/skills/fixing-metadata/SKILL.md +1 -76
  521. package/.agents/skills/fixing-motion-performance/SKILL.md +1 -76
  522. package/.agents/skills/framer-motion-expert/SKILL.md +1 -76
  523. package/.agents/skills/frontend-design/SKILL.md +1 -76
  524. package/.agents/skills/frontend-security-expert/SKILL.md +1 -76
  525. package/.agents/skills/game-design-expert/SKILL.md +1 -76
  526. package/.agents/skills/game-engineering-expert/SKILL.md +1 -76
  527. package/.agents/skills/generative-ui-expert/SKILL.md +1 -76
  528. package/.agents/skills/geo-fundamentals/SKILL.md +1 -76
  529. package/.agents/skills/git-pro/SKILL.md +1 -76
  530. package/.agents/skills/github-operations/SKILL.md +1 -76
  531. package/.agents/skills/gpt-taste/SKILL.md +1 -76
  532. package/.agents/skills/graph-engineering/SKILL.md +28 -0
  533. package/.agents/skills/gsap-core/SKILL.md +1 -76
  534. package/.agents/skills/gsap-frameworks/SKILL.md +1 -76
  535. package/.agents/skills/gsap-performance/SKILL.md +1 -76
  536. package/.agents/skills/gsap-plugins/SKILL.md +1 -76
  537. package/.agents/skills/gsap-react/SKILL.md +1 -76
  538. package/.agents/skills/gsap-scrolltrigger/SKILL.md +1 -76
  539. package/.agents/skills/gsap-timeline/SKILL.md +1 -76
  540. package/.agents/skills/gsap-utils/SKILL.md +1 -76
  541. package/.agents/skills/harden/SKILL.md +1 -76
  542. package/.agents/skills/harness-protocol/SKILL.md +6 -73
  543. package/.agents/skills/hf-cli/SKILL.md +239 -0
  544. package/.agents/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  545. package/.agents/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  546. package/.agents/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  547. package/.agents/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  548. package/.agents/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  549. package/.agents/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  550. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  551. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  552. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  553. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  554. package/.agents/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  555. package/.agents/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  556. package/.agents/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  557. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  558. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  559. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  560. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  561. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  562. package/.agents/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  563. package/.agents/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  564. package/.agents/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  565. package/.agents/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  566. package/.agents/skills/hf-mem/SKILL.md +79 -0
  567. package/.agents/skills/huggingface-best/SKILL.md +134 -0
  568. package/.agents/skills/huggingface-community-evals/SKILL.md +207 -0
  569. package/.agents/skills/huggingface-community-evals/examples/.env.example +3 -0
  570. package/.agents/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  571. package/.agents/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  572. package/.agents/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  573. package/.agents/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  574. package/.agents/skills/huggingface-datasets/SKILL.md +107 -0
  575. package/.agents/skills/huggingface-gradio/SKILL.md +298 -0
  576. package/.agents/skills/huggingface-gradio/examples.md +613 -0
  577. package/.agents/skills/huggingface-llm-trainer/SKILL.md +738 -0
  578. package/.agents/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  579. package/.agents/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  580. package/.agents/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  581. package/.agents/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  582. package/.agents/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  583. package/.agents/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  584. package/.agents/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  585. package/.agents/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  586. package/.agents/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  587. package/.agents/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  588. package/.agents/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  589. package/.agents/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  590. package/.agents/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  591. package/.agents/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  592. package/.agents/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  593. package/.agents/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  594. package/.agents/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  595. package/.agents/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  596. package/.agents/skills/huggingface-local-models/SKILL.md +113 -0
  597. package/.agents/skills/huggingface-local-models/references/hardware.md +38 -0
  598. package/.agents/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  599. package/.agents/skills/huggingface-local-models/references/quantization.md +256 -0
  600. package/.agents/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  601. package/.agents/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  602. package/.agents/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  603. package/.agents/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  604. package/.agents/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  605. package/.agents/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  606. package/.agents/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  607. package/.agents/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  608. package/.agents/skills/huggingface-paper-publisher/SKILL.md +624 -0
  609. package/.agents/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  610. package/.agents/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  611. package/.agents/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  612. package/.agents/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  613. package/.agents/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  614. package/.agents/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  615. package/.agents/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  616. package/.agents/skills/huggingface-papers/SKILL.md +239 -0
  617. package/.agents/skills/huggingface-spaces/README.md +9 -0
  618. package/.agents/skills/huggingface-spaces/SKILL.md +242 -0
  619. package/.agents/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  620. package/.agents/skills/huggingface-spaces/references/3d-generation.md +98 -0
  621. package/.agents/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  622. package/.agents/skills/huggingface-spaces/references/3d-models.md +227 -0
  623. package/.agents/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  624. package/.agents/skills/huggingface-spaces/references/buckets.md +89 -0
  625. package/.agents/skills/huggingface-spaces/references/debugging.md +236 -0
  626. package/.agents/skills/huggingface-spaces/references/gradio.md +200 -0
  627. package/.agents/skills/huggingface-spaces/references/grants.md +63 -0
  628. package/.agents/skills/huggingface-spaces/references/inference-providers.md +97 -0
  629. package/.agents/skills/huggingface-spaces/references/known-errors.md +232 -0
  630. package/.agents/skills/huggingface-spaces/references/requirements.md +169 -0
  631. package/.agents/skills/huggingface-spaces/references/zerogpu.md +349 -0
  632. package/.agents/skills/huggingface-tool-builder/SKILL.md +120 -0
  633. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  634. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  635. package/.agents/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  636. package/.agents/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  637. package/.agents/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  638. package/.agents/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  639. package/.agents/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  640. package/.agents/skills/huggingface-trackio/SKILL.md +142 -0
  641. package/.agents/skills/huggingface-trackio/references/alerts.md +196 -0
  642. package/.agents/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  643. package/.agents/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  644. package/.agents/skills/huggingface-vision-trainer/SKILL.md +593 -0
  645. package/.agents/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  646. package/.agents/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  647. package/.agents/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  648. package/.agents/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  649. package/.agents/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  650. package/.agents/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  651. package/.agents/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  652. package/.agents/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  653. package/.agents/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  654. package/.agents/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  655. package/.agents/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  656. package/.agents/skills/huggingface-zerogpu/SKILL.md +289 -0
  657. package/.agents/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  658. package/.agents/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  659. package/.agents/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  660. package/.agents/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  661. package/.agents/skills/human-gate-negotiation/SKILL.md +30 -0
  662. package/.agents/skills/i18n-localization/SKILL.md +1 -76
  663. package/.agents/skills/impeccable/SKILL.md +1 -76
  664. package/.agents/skills/improve-codebase-architecture/SKILL.md +1 -76
  665. package/.agents/skills/improve-ui/SKILL.md +1 -76
  666. package/.agents/skills/intelligent-routing/SKILL.md +9 -89
  667. package/.agents/skills/knowledge-graph/SKILL.md +1 -76
  668. package/.agents/skills/landing-page/SKILL.md +1 -76
  669. package/.agents/skills/lint-and-validate/SKILL.md +1 -76
  670. package/.agents/skills/llm-engineering/SKILL.md +1 -76
  671. package/.agents/skills/local-first/SKILL.md +1 -76
  672. package/.agents/skills/local-first-architecture/SKILL.md +1 -76
  673. package/.agents/skills/lottie-animation/SKILL.md +1 -76
  674. package/.agents/skills/marquee-loop/SKILL.md +1 -76
  675. package/.agents/skills/masked-reveal/SKILL.md +1 -76
  676. package/.agents/skills/mcp-builder/SKILL.md +1 -76
  677. package/.agents/skills/micro-interaction/SKILL.md +1 -76
  678. package/.agents/skills/mobile-design/SKILL.md +1 -76
  679. package/.agents/skills/monorepo-management/SKILL.md +1 -76
  680. package/.agents/skills/morphing-icons/SKILL.md +1 -76
  681. package/.agents/skills/motion-engineering/SKILL.md +1 -76
  682. package/.agents/skills/nextjs-react-expert/SKILL.md +1 -76
  683. package/.agents/skills/nodejs-best-practices/SKILL.md +1 -76
  684. package/.agents/skills/observability/SKILL.md +1 -76
  685. package/.agents/skills/opentelemetry-observability/SKILL.md +1 -76
  686. package/.agents/skills/page-transition-animation/SKILL.md +1 -76
  687. package/.agents/skills/parallel-agents/SKILL.md +1 -76
  688. package/.agents/skills/performance-profiling/SKILL.md +1 -76
  689. package/.agents/skills/plan-writing/SKILL.md +1 -76
  690. package/.agents/skills/platform-engineer/SKILL.md +1 -76
  691. package/.agents/skills/platform-engineering-opentofu/SKILL.md +1 -76
  692. package/.agents/skills/playwright-ai-e2e/SKILL.md +1 -76
  693. package/.agents/skills/playwright-best-practices/SKILL.md +1 -76
  694. package/.agents/skills/polish/SKILL.md +1 -76
  695. package/.agents/skills/powershell-windows/SKILL.md +1 -76
  696. package/.agents/skills/pricing-page/SKILL.md +1 -76
  697. package/.agents/skills/product-aware-heuristics/SKILL.md +1 -76
  698. package/.agents/skills/progressive-blur/SKILL.md +1 -76
  699. package/.agents/skills/project-idioms/SKILL.md +1 -76
  700. package/.agents/skills/property-based-testing/SKILL.md +1 -76
  701. package/.agents/skills/python-patterns/SKILL.md +1 -76
  702. package/.agents/skills/python-pro/SKILL.md +1 -76
  703. package/.agents/skills/quieter/SKILL.md +1 -76
  704. package/.agents/skills/react-doctor/SKILL.md +1 -76
  705. package/.agents/skills/react-specialist/SKILL.md +1 -76
  706. package/.agents/skills/readme-builder/SKILL.md +1 -76
  707. package/.agents/skills/realtime-patterns/SKILL.md +1 -76
  708. package/.agents/skills/red-team-tactics/SKILL.md +1 -76
  709. package/.agents/skills/redesign-skill/SKILL.md +1 -76
  710. package/.agents/skills/review-animations/SKILL.md +1 -76
  711. package/.agents/skills/rust-pro/SKILL.md +1 -76
  712. package/.agents/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  713. package/.agents/skills/seo-fundamentals/SKILL.md +1 -76
  714. package/.agents/skills/server-management/SKILL.md +1 -76
  715. package/.agents/skills/session-log-interrogation/SKILL.md +29 -0
  716. package/.agents/skills/shadcn-ui-expert/SKILL.md +1 -76
  717. package/.agents/skills/shape/SKILL.md +1 -76
  718. package/.agents/skills/skill-creator/SKILL.md +124 -90
  719. package/.agents/skills/soft-skill/SKILL.md +1 -76
  720. package/.agents/skills/sounds-on-the-web/SKILL.md +1 -76
  721. package/.agents/skills/sql-pro/SKILL.md +1 -76
  722. package/.agents/skills/subagent-driven-development/SKILL.md +32 -0
  723. package/.agents/skills/supabase-postgres-best-practices/SKILL.md +1 -76
  724. package/.agents/skills/svg-animation/SKILL.md +1 -76
  725. package/.agents/skills/swiftui-expert/SKILL.md +1 -76
  726. package/.agents/skills/swiss-design/SKILL.md +1 -76
  727. package/.agents/skills/system-design-pro/SKILL.md +1 -76
  728. package/.agents/skills/systematic-debugging/SKILL.md +3 -73
  729. package/.agents/skills/tailwind-patterns/SKILL.md +1 -76
  730. package/.agents/skills/taste-skill/SKILL.md +1 -76
  731. package/.agents/skills/tdd-workflow/SKILL.md +1 -76
  732. package/.agents/skills/test-result-analyzer/SKILL.md +1 -76
  733. package/.agents/skills/testing-patterns/SKILL.md +1 -76
  734. package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
  735. package/.agents/skills/thinking-protocol/SKILL.md +1 -78
  736. package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
  737. package/.agents/skills/train-sentence-transformers/SKILL.md +109 -0
  738. package/.agents/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  739. package/.agents/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  740. package/.agents/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  741. package/.agents/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  742. package/.agents/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  743. package/.agents/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  744. package/.agents/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  745. package/.agents/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  746. package/.agents/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  747. package/.agents/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  748. package/.agents/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  749. package/.agents/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  750. package/.agents/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  751. package/.agents/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  752. package/.agents/skills/train-sentence-transformers/references/training_args.md +270 -0
  753. package/.agents/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  754. package/.agents/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  755. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  756. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  757. package/.agents/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  758. package/.agents/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  759. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  760. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  761. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  762. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  763. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  764. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  765. package/.agents/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  766. package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  767. package/.agents/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  768. package/.agents/skills/transformers-js/SKILL.md +692 -0
  769. package/.agents/skills/transformers-js/references/CACHE.md +339 -0
  770. package/.agents/skills/transformers-js/references/CONFIGURATION.md +438 -0
  771. package/.agents/skills/transformers-js/references/EXAMPLES.md +620 -0
  772. package/.agents/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  773. package/.agents/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  774. package/.agents/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  775. package/.agents/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  776. package/.agents/skills/transitions-dev/SKILL.md +1 -76
  777. package/.agents/skills/trend-researcher/SKILL.md +1 -76
  778. package/.agents/skills/tribunal-instincts-memory/SKILL.md +31 -0
  779. package/.agents/skills/trl-training/SKILL.md +318 -0
  780. package/.agents/skills/typescript-advanced/SKILL.md +1 -76
  781. package/.agents/skills/typeset/SKILL.md +1 -76
  782. package/.agents/skills/ui-reasoning-engine/SKILL.md +1 -76
  783. package/.agents/skills/ui-skill-packs/SKILL.md +1 -76
  784. package/.agents/skills/ui-skills-root/SKILL.md +1 -76
  785. package/.agents/skills/ui-ux-pro-max/SKILL.md +1 -76
  786. package/.agents/skills/ui-ux-researcher/SKILL.md +1 -76
  787. package/.agents/skills/vector-search-pgvector/SKILL.md +1 -76
  788. package/.agents/skills/verification-before-completion/SKILL.md +1 -76
  789. package/.agents/skills/vue-expert/SKILL.md +1 -76
  790. package/.agents/skills/vulnerability-scanner/SKILL.md +1 -76
  791. package/.agents/skills/web-accessibility-auditor/SKILL.md +1 -76
  792. package/.agents/skills/web-design-guidelines/SKILL.md +1 -76
  793. package/.agents/skills/web-quality-audit/SKILL.md +1 -76
  794. package/.agents/skills/webapp-testing/SKILL.md +1 -76
  795. package/.agents/skills/webgpu-performance/SKILL.md +1 -76
  796. package/.agents/skills/whimsy-injector/SKILL.md +1 -76
  797. package/.agents/skills/workflow-optimizer/SKILL.md +1 -76
  798. package/.agents/skills/zero-trust-passkeys/SKILL.md +1 -76
  799. package/CONTRIBUTING.md +2 -2
  800. package/README.md +242 -542
  801. package/bin/adapter-install.js +263 -263
  802. package/bin/mcp-server.js +72 -47
  803. package/bin/wrapper.js +10 -1
  804. package/dist/commands/init.js +25 -11
  805. package/dist/tui/banner.js +1 -1
  806. package/gemini-extension.json +1 -1
  807. package/mcp_config.json +1 -1
  808. package/package.json +13 -10
  809. package/plugin.json +1 -1
  810. package/scripts/context_compiler.js +49 -0
  811. package/scripts/skill_enhancement_engine.js +11 -37
  812. package/scripts/telemetry_gc.js +3 -1
  813. package/scripts/validate-payload.js +1 -6
  814. package/skills/12-principles-of-animation/SKILL.md +1 -76
  815. package/skills/60fps-animation/SKILL.md +1 -76
  816. package/skills/accessible-animation/SKILL.md +1 -76
  817. package/skills/adapt/SKILL.md +1 -76
  818. package/skills/advanced-rag-pipelines/SKILL.md +1 -76
  819. package/skills/agent-organizer/SKILL.md +1 -76
  820. package/skills/agent-syscall-guidelines/SKILL.md +25 -0
  821. package/skills/agentic-patterns/SKILL.md +1 -76
  822. package/skills/agentic-workflows-2026/SKILL.md +6 -73
  823. package/skills/agentshield-security/SKILL.md +26 -0
  824. package/skills/ai-app-hardening/SKILL.md +1 -76
  825. package/skills/ai-prompt-injection-defense/SKILL.md +1 -76
  826. package/skills/animation-on-scroll/SKILL.md +1 -76
  827. package/skills/animation-systems/SKILL.md +1 -76
  828. package/skills/antfu-conventions/SKILL.md +0 -75
  829. package/skills/api-patterns/SKILL.md +1 -76
  830. package/skills/api-security-auditor/SKILL.md +1 -76
  831. package/skills/app-builder/SKILL.md +1 -76
  832. package/skills/appflow-wireframe/SKILL.md +1 -76
  833. package/skills/apple-design/SKILL.md +1 -76
  834. package/skills/architecture/SKILL.md +1 -76
  835. package/skills/audit-and-fix/SKILL.md +41 -77
  836. package/skills/authentication-best-practices/SKILL.md +1 -76
  837. package/skills/backend-security-expert/SKILL.md +1 -76
  838. package/skills/baseline-ui/SKILL.md +1 -76
  839. package/skills/bash-linux/SKILL.md +1 -76
  840. package/skills/behavioral-modes/SKILL.md +1 -76
  841. package/skills/better-colors/SKILL.md +1 -76
  842. package/skills/better-typography/SKILL.md +1 -76
  843. package/skills/better-ui/SKILL.md +1 -76
  844. package/skills/bolder/SKILL.md +1 -76
  845. package/skills/brainstorming/SKILL.md +1 -76
  846. package/skills/browser-audit/SKILL.md +1 -76
  847. package/skills/browser-native-ai/SKILL.md +1 -76
  848. package/skills/build-primitive/SKILL.md +1 -76
  849. package/skills/building-native-ui/SKILL.md +1 -76
  850. package/skills/cicd-pro/SKILL.md +1 -76
  851. package/skills/clarify/SKILL.md +1 -76
  852. package/skills/clean-code/SKILL.md +1 -76
  853. package/skills/cloud-architect/SKILL.md +1 -76
  854. package/skills/cobejs/SKILL.md +1 -76
  855. package/skills/code-review-checklist/SKILL.md +1 -76
  856. package/skills/codebase-design/SKILL.md +1 -76
  857. package/skills/colorize/SKILL.md +1 -76
  858. package/skills/compact-landing/SKILL.md +1 -76
  859. package/skills/company-logos/SKILL.md +1 -76
  860. package/skills/config-validator/SKILL.md +1 -76
  861. package/skills/containerization-pro/SKILL.md +1 -76
  862. package/skills/context-engineering-pro/SKILL.md +5 -73
  863. package/skills/create-design-md/SKILL.md +1 -76
  864. package/skills/critique/SKILL.md +1 -76
  865. package/skills/csharp-developer/SKILL.md +1 -76
  866. package/skills/data-validation-schemas/SKILL.md +1 -76
  867. package/skills/database-design/SKILL.md +1 -76
  868. package/skills/delight/SKILL.md +1 -76
  869. package/skills/deployment-procedures/SKILL.md +1 -76
  870. package/skills/design-lab/SKILL.md +1 -76
  871. package/skills/devops-engineer/SKILL.md +1 -76
  872. package/skills/devops-incident-responder/SKILL.md +1 -76
  873. package/skills/diagnosing-bugs/SKILL.md +1 -76
  874. package/skills/distill/SKILL.md +1 -76
  875. package/skills/documentation-templates/SKILL.md +1 -76
  876. package/skills/domain-modeling/SKILL.md +1 -76
  877. package/skills/duckdb-analytical-sql/SKILL.md +1 -76
  878. package/skills/edge-ai-mobile/SKILL.md +1 -76
  879. package/skills/edge-computing/SKILL.md +1 -76
  880. package/skills/emil-design-eng/SKILL.md +1 -76
  881. package/skills/error-resilience/SKILL.md +1 -76
  882. package/skills/expo-router-v4/SKILL.md +1 -76
  883. package/skills/extract-design-system/SKILL.md +1 -76
  884. package/skills/fabel-protocol/SKILL.md +3 -73
  885. package/skills/fixing-accessibility/SKILL.md +1 -76
  886. package/skills/fixing-metadata/SKILL.md +1 -76
  887. package/skills/fixing-motion-performance/SKILL.md +1 -76
  888. package/skills/framer-motion-expert/SKILL.md +1 -76
  889. package/skills/frontend-design/SKILL.md +1 -76
  890. package/skills/frontend-security-expert/SKILL.md +1 -76
  891. package/skills/game-design-expert/SKILL.md +1 -76
  892. package/skills/game-engineering-expert/SKILL.md +1 -76
  893. package/skills/generative-ui-expert/SKILL.md +1 -76
  894. package/skills/geo-fundamentals/SKILL.md +1 -76
  895. package/skills/git-pro/SKILL.md +1 -76
  896. package/skills/github-operations/SKILL.md +1 -76
  897. package/skills/gpt-taste/SKILL.md +1 -76
  898. package/skills/graph-engineering/SKILL.md +28 -0
  899. package/skills/gsap-core/SKILL.md +1 -76
  900. package/skills/gsap-frameworks/SKILL.md +1 -76
  901. package/skills/gsap-performance/SKILL.md +1 -76
  902. package/skills/gsap-plugins/SKILL.md +1 -76
  903. package/skills/gsap-react/SKILL.md +1 -76
  904. package/skills/gsap-scrolltrigger/SKILL.md +1 -76
  905. package/skills/gsap-timeline/SKILL.md +1 -76
  906. package/skills/gsap-utils/SKILL.md +1 -76
  907. package/skills/harden/SKILL.md +1 -76
  908. package/skills/harness-protocol/SKILL.md +6 -73
  909. package/skills/hf-cli/SKILL.md +239 -0
  910. package/skills/hf-cloud-aws-context-discovery/SKILL.md +74 -0
  911. package/skills/hf-cloud-python-env-setup/SKILL.md +90 -0
  912. package/skills/hf-cloud-python-env-setup/requirements.txt +17 -0
  913. package/skills/hf-cloud-python-env-setup/scripts/check_versions.py +29 -0
  914. package/skills/hf-cloud-python-env-setup/scripts/setup_env.py +143 -0
  915. package/skills/hf-cloud-sagemaker-deployment-planner/SKILL.md +90 -0
  916. package/skills/hf-cloud-sagemaker-iam-preflight/SKILL.md +102 -0
  917. package/skills/hf-cloud-sagemaker-iam-preflight/references/minimum-permissions.json +47 -0
  918. package/skills/hf-cloud-sagemaker-iam-preflight/references/trust-policy.json +12 -0
  919. package/skills/hf-cloud-sagemaker-iam-preflight/scripts/check_role.py +184 -0
  920. package/skills/hf-cloud-sagemaker-iam-preflight/scripts/create_role.py +118 -0
  921. package/skills/hf-cloud-sagemaker-production-defaults/SKILL.md +419 -0
  922. package/skills/hf-cloud-sagemaker-production-defaults/references/deployment-template.md +59 -0
  923. package/skills/hf-cloud-sagemaker-production-defaults/scripts/_common.py +148 -0
  924. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy.py +327 -0
  925. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_async.py +434 -0
  926. package/skills/hf-cloud-sagemaker-production-defaults/scripts/deploy_ic.py +506 -0
  927. package/skills/hf-cloud-sagemaker-production-defaults/scripts/invoke_endpoint.py +180 -0
  928. package/skills/hf-cloud-sagemaker-production-defaults/scripts/teardown.py +246 -0
  929. package/skills/hf-cloud-serving-image-selection/SKILL.md +220 -0
  930. package/skills/hf-cloud-serving-image-selection/references/model-to-image.md +111 -0
  931. package/skills/hf-cloud-serving-image-selection/scripts/mirror_image.py +145 -0
  932. package/skills/hf-mem/SKILL.md +79 -0
  933. package/skills/huggingface-best/SKILL.md +134 -0
  934. package/skills/huggingface-community-evals/SKILL.md +207 -0
  935. package/skills/huggingface-community-evals/examples/.env.example +3 -0
  936. package/skills/huggingface-community-evals/examples/USAGE_EXAMPLES.md +101 -0
  937. package/skills/huggingface-community-evals/scripts/inspect_eval_uv.py +104 -0
  938. package/skills/huggingface-community-evals/scripts/inspect_vllm_uv.py +306 -0
  939. package/skills/huggingface-community-evals/scripts/lighteval_vllm_uv.py +297 -0
  940. package/skills/huggingface-datasets/SKILL.md +107 -0
  941. package/skills/huggingface-gradio/SKILL.md +298 -0
  942. package/skills/huggingface-gradio/examples.md +613 -0
  943. package/skills/huggingface-llm-trainer/SKILL.md +738 -0
  944. package/skills/huggingface-llm-trainer/references/gguf_conversion.md +296 -0
  945. package/skills/huggingface-llm-trainer/references/hardware_guide.md +283 -0
  946. package/skills/huggingface-llm-trainer/references/hub_saving.md +364 -0
  947. package/skills/huggingface-llm-trainer/references/local_training_macos.md +231 -0
  948. package/skills/huggingface-llm-trainer/references/reliability_principles.md +371 -0
  949. package/skills/huggingface-llm-trainer/references/trackio_guide.md +191 -0
  950. package/skills/huggingface-llm-trainer/references/training_methods.md +150 -0
  951. package/skills/huggingface-llm-trainer/references/training_patterns.md +203 -0
  952. package/skills/huggingface-llm-trainer/references/troubleshooting.md +282 -0
  953. package/skills/huggingface-llm-trainer/references/unsloth.md +313 -0
  954. package/skills/huggingface-llm-trainer/scripts/convert_to_gguf.py +424 -0
  955. package/skills/huggingface-llm-trainer/scripts/dataset_inspector.py +417 -0
  956. package/skills/huggingface-llm-trainer/scripts/estimate_cost.py +150 -0
  957. package/skills/huggingface-llm-trainer/scripts/hf_benchmarks.py +659 -0
  958. package/skills/huggingface-llm-trainer/scripts/train_dpo_example.py +106 -0
  959. package/skills/huggingface-llm-trainer/scripts/train_grpo_example.py +89 -0
  960. package/skills/huggingface-llm-trainer/scripts/train_sft_example.py +122 -0
  961. package/skills/huggingface-llm-trainer/scripts/unsloth_sft_example.py +512 -0
  962. package/skills/huggingface-local-models/SKILL.md +113 -0
  963. package/skills/huggingface-local-models/references/hardware.md +38 -0
  964. package/skills/huggingface-local-models/references/hub-discovery.md +178 -0
  965. package/skills/huggingface-local-models/references/quantization.md +256 -0
  966. package/skills/huggingface-lora-space-builder/SKILL.md +394 -0
  967. package/skills/huggingface-lora-space-builder/references/adapting-to-the-lora.md +113 -0
  968. package/skills/huggingface-lora-space-builder/references/base-models/krea-2.md +63 -0
  969. package/skills/huggingface-lora-space-builder/references/base-models/ltx.md +205 -0
  970. package/skills/huggingface-lora-space-builder/references/base-models/qwen-image.md +144 -0
  971. package/skills/huggingface-lora-space-builder/references/creative-mode.md +262 -0
  972. package/skills/huggingface-lora-space-builder/references/tasks.md +124 -0
  973. package/skills/huggingface-lora-space-builder/references/zerogpu-and-publishing.md +196 -0
  974. package/skills/huggingface-paper-publisher/SKILL.md +624 -0
  975. package/skills/huggingface-paper-publisher/examples/example_usage.md +326 -0
  976. package/skills/huggingface-paper-publisher/references/quick_reference.md +216 -0
  977. package/skills/huggingface-paper-publisher/scripts/paper_manager.py +606 -0
  978. package/skills/huggingface-paper-publisher/templates/arxiv.md +299 -0
  979. package/skills/huggingface-paper-publisher/templates/ml-report.md +358 -0
  980. package/skills/huggingface-paper-publisher/templates/modern.md +319 -0
  981. package/skills/huggingface-paper-publisher/templates/standard.md +201 -0
  982. package/skills/huggingface-papers/SKILL.md +239 -0
  983. package/skills/huggingface-spaces/README.md +9 -0
  984. package/skills/huggingface-spaces/SKILL.md +242 -0
  985. package/skills/huggingface-spaces/references/3d-cuda-extensions.md +109 -0
  986. package/skills/huggingface-spaces/references/3d-generation.md +98 -0
  987. package/skills/huggingface-spaces/references/3d-gsplat.md +53 -0
  988. package/skills/huggingface-spaces/references/3d-models.md +227 -0
  989. package/skills/huggingface-spaces/references/3d-outputs.md +114 -0
  990. package/skills/huggingface-spaces/references/buckets.md +89 -0
  991. package/skills/huggingface-spaces/references/debugging.md +236 -0
  992. package/skills/huggingface-spaces/references/gradio.md +200 -0
  993. package/skills/huggingface-spaces/references/grants.md +63 -0
  994. package/skills/huggingface-spaces/references/inference-providers.md +97 -0
  995. package/skills/huggingface-spaces/references/known-errors.md +232 -0
  996. package/skills/huggingface-spaces/references/requirements.md +169 -0
  997. package/skills/huggingface-spaces/references/zerogpu.md +349 -0
  998. package/skills/huggingface-tool-builder/SKILL.md +120 -0
  999. package/skills/huggingface-tool-builder/references/baseline_hf_api.py +57 -0
  1000. package/skills/huggingface-tool-builder/references/baseline_hf_api.sh +40 -0
  1001. package/skills/huggingface-tool-builder/references/baseline_hf_api.tsx +57 -0
  1002. package/skills/huggingface-tool-builder/references/find_models_by_paper.sh +230 -0
  1003. package/skills/huggingface-tool-builder/references/hf_enrich_models.sh +96 -0
  1004. package/skills/huggingface-tool-builder/references/hf_model_card_frontmatter.sh +188 -0
  1005. package/skills/huggingface-tool-builder/references/hf_model_papers_auth.sh +171 -0
  1006. package/skills/huggingface-trackio/SKILL.md +142 -0
  1007. package/skills/huggingface-trackio/references/alerts.md +196 -0
  1008. package/skills/huggingface-trackio/references/logging_metrics.md +212 -0
  1009. package/skills/huggingface-trackio/references/retrieving_metrics.md +251 -0
  1010. package/skills/huggingface-vision-trainer/SKILL.md +593 -0
  1011. package/skills/huggingface-vision-trainer/references/finetune_sam2_trainer.md +254 -0
  1012. package/skills/huggingface-vision-trainer/references/hub_saving.md +618 -0
  1013. package/skills/huggingface-vision-trainer/references/image_classification_training_notebook.md +279 -0
  1014. package/skills/huggingface-vision-trainer/references/object_detection_training_notebook.md +700 -0
  1015. package/skills/huggingface-vision-trainer/references/reliability_principles.md +310 -0
  1016. package/skills/huggingface-vision-trainer/references/timm_trainer.md +91 -0
  1017. package/skills/huggingface-vision-trainer/scripts/dataset_inspector.py +814 -0
  1018. package/skills/huggingface-vision-trainer/scripts/estimate_cost.py +217 -0
  1019. package/skills/huggingface-vision-trainer/scripts/image_classification_training.py +383 -0
  1020. package/skills/huggingface-vision-trainer/scripts/object_detection_training.py +710 -0
  1021. package/skills/huggingface-vision-trainer/scripts/sam_segmentation_training.py +382 -0
  1022. package/skills/huggingface-zerogpu/SKILL.md +289 -0
  1023. package/skills/huggingface-zerogpu/references/concurrency.md +79 -0
  1024. package/skills/huggingface-zerogpu/references/cuda-and-deps.md +66 -0
  1025. package/skills/huggingface-zerogpu/references/how-quota-works.md +74 -0
  1026. package/skills/huggingface-zerogpu/references/how-zerogpu-works.md +50 -0
  1027. package/skills/human-gate-negotiation/SKILL.md +30 -0
  1028. package/skills/i18n-localization/SKILL.md +1 -76
  1029. package/skills/impeccable/SKILL.md +1 -76
  1030. package/skills/improve-codebase-architecture/SKILL.md +1 -76
  1031. package/skills/improve-ui/SKILL.md +1 -76
  1032. package/skills/intelligent-routing/SKILL.md +9 -89
  1033. package/skills/knowledge-graph/SKILL.md +1 -76
  1034. package/skills/landing-page/SKILL.md +1 -76
  1035. package/skills/lint-and-validate/SKILL.md +1 -76
  1036. package/skills/llm-engineering/SKILL.md +1 -76
  1037. package/skills/local-first/SKILL.md +1 -76
  1038. package/skills/local-first-architecture/SKILL.md +1 -76
  1039. package/skills/lottie-animation/SKILL.md +1 -76
  1040. package/skills/marquee-loop/SKILL.md +1 -76
  1041. package/skills/masked-reveal/SKILL.md +1 -76
  1042. package/skills/mcp-builder/SKILL.md +1 -76
  1043. package/skills/micro-interaction/SKILL.md +1 -76
  1044. package/skills/mobile-design/SKILL.md +1 -76
  1045. package/skills/monorepo-management/SKILL.md +1 -76
  1046. package/skills/morphing-icons/SKILL.md +1 -76
  1047. package/skills/motion-engineering/SKILL.md +1 -76
  1048. package/skills/nextjs-react-expert/SKILL.md +1 -76
  1049. package/skills/nodejs-best-practices/SKILL.md +1 -76
  1050. package/skills/observability/SKILL.md +1 -76
  1051. package/skills/opentelemetry-observability/SKILL.md +1 -76
  1052. package/skills/page-transition-animation/SKILL.md +1 -76
  1053. package/skills/parallel-agents/SKILL.md +1 -76
  1054. package/skills/performance-profiling/SKILL.md +1 -76
  1055. package/skills/plan-writing/SKILL.md +1 -76
  1056. package/skills/platform-engineer/SKILL.md +1 -76
  1057. package/skills/platform-engineering-opentofu/SKILL.md +1 -76
  1058. package/skills/playwright-ai-e2e/SKILL.md +1 -76
  1059. package/skills/playwright-best-practices/SKILL.md +1 -76
  1060. package/skills/polish/SKILL.md +1 -76
  1061. package/skills/powershell-windows/SKILL.md +1 -76
  1062. package/skills/pricing-page/SKILL.md +1 -76
  1063. package/skills/product-aware-heuristics/SKILL.md +1 -76
  1064. package/skills/progressive-blur/SKILL.md +1 -76
  1065. package/skills/project-idioms/SKILL.md +1 -76
  1066. package/skills/property-based-testing/SKILL.md +1 -76
  1067. package/skills/python-patterns/SKILL.md +1 -76
  1068. package/skills/python-pro/SKILL.md +1 -76
  1069. package/skills/quieter/SKILL.md +1 -76
  1070. package/skills/react-doctor/SKILL.md +1 -76
  1071. package/skills/react-specialist/SKILL.md +1 -76
  1072. package/skills/readme-builder/SKILL.md +1 -76
  1073. package/skills/realtime-patterns/SKILL.md +1 -76
  1074. package/skills/red-team-tactics/SKILL.md +1 -76
  1075. package/skills/redesign-skill/SKILL.md +1 -76
  1076. package/skills/review-animations/SKILL.md +1 -76
  1077. package/skills/rust-pro/SKILL.md +1 -76
  1078. package/skills/semantic-filesystem-navigation/SKILL.md +24 -0
  1079. package/skills/seo-fundamentals/SKILL.md +1 -76
  1080. package/skills/server-management/SKILL.md +1 -76
  1081. package/skills/session-log-interrogation/SKILL.md +29 -0
  1082. package/skills/shadcn-ui-expert/SKILL.md +1 -76
  1083. package/skills/shape/SKILL.md +1 -76
  1084. package/skills/skill-creator/SKILL.md +124 -90
  1085. package/skills/soft-skill/SKILL.md +1 -76
  1086. package/skills/sounds-on-the-web/SKILL.md +1 -76
  1087. package/skills/sql-pro/SKILL.md +1 -76
  1088. package/skills/subagent-driven-development/SKILL.md +32 -0
  1089. package/skills/supabase-postgres-best-practices/SKILL.md +1 -76
  1090. package/skills/svg-animation/SKILL.md +1 -76
  1091. package/skills/swiftui-expert/SKILL.md +1 -76
  1092. package/skills/swiss-design/SKILL.md +1 -76
  1093. package/skills/system-design-pro/SKILL.md +1 -76
  1094. package/skills/systematic-debugging/SKILL.md +3 -73
  1095. package/skills/tailwind-patterns/SKILL.md +1 -76
  1096. package/skills/taste-skill/SKILL.md +1 -76
  1097. package/skills/tdd-workflow/SKILL.md +1 -76
  1098. package/skills/test-result-analyzer/SKILL.md +1 -76
  1099. package/skills/testing-patterns/SKILL.md +1 -76
  1100. package/skills/thermo-nuclear-code-quality-review/SKILL.md +1 -76
  1101. package/skills/thinking-protocol/SKILL.md +1 -78
  1102. package/skills/to-spring-or-not-to-spring/SKILL.md +1 -76
  1103. package/skills/train-sentence-transformers/SKILL.md +109 -0
  1104. package/skills/train-sentence-transformers/references/base_model_selection.md +79 -0
  1105. package/skills/train-sentence-transformers/references/dataset_formats.md +128 -0
  1106. package/skills/train-sentence-transformers/references/evaluators_cross_encoder.md +116 -0
  1107. package/skills/train-sentence-transformers/references/evaluators_multi_vector_encoder.md +101 -0
  1108. package/skills/train-sentence-transformers/references/evaluators_sentence_transformer.md +151 -0
  1109. package/skills/train-sentence-transformers/references/evaluators_sparse_encoder.md +121 -0
  1110. package/skills/train-sentence-transformers/references/hardware_guide.md +105 -0
  1111. package/skills/train-sentence-transformers/references/hf_jobs_execution.md +173 -0
  1112. package/skills/train-sentence-transformers/references/losses_cross_encoder.md +137 -0
  1113. package/skills/train-sentence-transformers/references/losses_multi_vector_encoder.md +100 -0
  1114. package/skills/train-sentence-transformers/references/losses_sentence_transformer.md +246 -0
  1115. package/skills/train-sentence-transformers/references/losses_sparse_encoder.md +106 -0
  1116. package/skills/train-sentence-transformers/references/model_architectures.md +178 -0
  1117. package/skills/train-sentence-transformers/references/prompts_and_instructions.md +160 -0
  1118. package/skills/train-sentence-transformers/references/training_args.md +270 -0
  1119. package/skills/train-sentence-transformers/references/troubleshooting.md +225 -0
  1120. package/skills/train-sentence-transformers/scripts/mine_hard_negatives.py +199 -0
  1121. package/skills/train-sentence-transformers/scripts/train_cross_encoder_distillation_example.py +254 -0
  1122. package/skills/train-sentence-transformers/scripts/train_cross_encoder_example.py +253 -0
  1123. package/skills/train-sentence-transformers/scripts/train_cross_encoder_listwise_example.py +282 -0
  1124. package/skills/train-sentence-transformers/scripts/train_multi_vector_encoder_example.py +240 -0
  1125. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_distillation_example.py +303 -0
  1126. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_example.py +227 -0
  1127. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_make_multilingual_example.py +308 -0
  1128. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_matryoshka_example.py +212 -0
  1129. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_multi_dataset_example.py +258 -0
  1130. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_static_embedding_example.py +273 -0
  1131. package/skills/train-sentence-transformers/scripts/train_sentence_transformer_with_lora_example.py +275 -0
  1132. package/skills/train-sentence-transformers/scripts/train_sparse_encoder_distillation_example.py +262 -0
  1133. package/skills/train-sentence-transformers/scripts/train_sparse_encoder_example.py +237 -0
  1134. package/skills/transformers-js/SKILL.md +692 -0
  1135. package/skills/transformers-js/references/CACHE.md +339 -0
  1136. package/skills/transformers-js/references/CONFIGURATION.md +438 -0
  1137. package/skills/transformers-js/references/EXAMPLES.md +620 -0
  1138. package/skills/transformers-js/references/MODEL_ARCHITECTURES.md +167 -0
  1139. package/skills/transformers-js/references/MODEL_REGISTRY.md +197 -0
  1140. package/skills/transformers-js/references/PIPELINE_OPTIONS.md +557 -0
  1141. package/skills/transformers-js/references/TEXT_GENERATION.md +315 -0
  1142. package/skills/transitions-dev/SKILL.md +1 -76
  1143. package/skills/trend-researcher/SKILL.md +1 -76
  1144. package/skills/tribunal-instincts-memory/SKILL.md +31 -0
  1145. package/skills/trl-training/SKILL.md +318 -0
  1146. package/skills/typescript-advanced/SKILL.md +1 -76
  1147. package/skills/typeset/SKILL.md +1 -76
  1148. package/skills/ui-reasoning-engine/SKILL.md +1 -76
  1149. package/skills/ui-skill-packs/SKILL.md +1 -76
  1150. package/skills/ui-skills-root/SKILL.md +1 -76
  1151. package/skills/ui-ux-pro-max/SKILL.md +1 -76
  1152. package/skills/ui-ux-researcher/SKILL.md +1 -76
  1153. package/skills/vector-search-pgvector/SKILL.md +1 -76
  1154. package/skills/verification-before-completion/SKILL.md +1 -76
  1155. package/skills/vue-expert/SKILL.md +1 -76
  1156. package/skills/vulnerability-scanner/SKILL.md +1 -76
  1157. package/skills/web-accessibility-auditor/SKILL.md +1 -76
  1158. package/skills/web-design-guidelines/SKILL.md +1 -76
  1159. package/skills/web-quality-audit/SKILL.md +1 -76
  1160. package/skills/webapp-testing/SKILL.md +1 -76
  1161. package/skills/webgpu-performance/SKILL.md +1 -76
  1162. package/skills/whimsy-injector/SKILL.md +1 -76
  1163. package/skills/workflow-optimizer/SKILL.md +1 -76
  1164. package/skills/zero-trust-passkeys/SKILL.md +1 -76
@@ -0,0 +1,143 @@
1
+ #!/usr/bin/env python3
2
+ """Create an isolated Python environment for SageMaker work. Cross-platform.
3
+
4
+ Idempotent. Prefers uv, falls back to the stdlib venv module.
5
+
6
+ Handles the platform difference in venv layout: the interpreter lives at
7
+ `<venv>/bin/python` on macOS/Linux and `<venv>\\Scripts\\python.exe` on Windows.
8
+ The path it prints is the correct one for the host OS.
9
+
10
+ Usage:
11
+ python setup_env.py [VENV_DIR=.venv] [PYTHON_VERSION=3.12]
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ import os
17
+ import shutil
18
+ import subprocess
19
+ import sys
20
+ from pathlib import Path
21
+
22
+ # 3.10-3.12 is the safe zone for modern boto3 + awscli. 3.13+ may work but ML
23
+ # libs lag on wheel availability.
24
+ SUPPORTED_MIN = (3, 10)
25
+ SUPPORTED_MAX = (3, 12)
26
+
27
+ IS_WINDOWS = os.name == "nt"
28
+
29
+
30
+ def log(msg: str) -> None:
31
+ print(f"[setup_env] {msg}", file=sys.stderr, flush=True)
32
+
33
+
34
+ def parse_version(v: str) -> tuple[int, int]:
35
+ try:
36
+ major, minor = (int(p) for p in v.split(".")[:2])
37
+ return (major, minor)
38
+ except ValueError:
39
+ log(f"ERROR: invalid Python version '{v}' (expected e.g. 3.12)")
40
+ sys.exit(1)
41
+
42
+
43
+ def venv_python(venv_dir: Path) -> Path:
44
+ """Path to the interpreter inside a venv, per platform."""
45
+ if IS_WINDOWS:
46
+ return venv_dir / "Scripts" / "python.exe"
47
+ return venv_dir / "bin" / "python"
48
+
49
+
50
+ def interpreter_version(python_path: Path) -> str | None:
51
+ if not python_path.exists():
52
+ return None
53
+ proc = subprocess.run(
54
+ [str(python_path), "-c",
55
+ "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"],
56
+ capture_output=True, text=True,
57
+ )
58
+ return proc.stdout.strip() if proc.returncode == 0 else None
59
+
60
+
61
+ def find_base_python(version: str) -> str | None:
62
+ """Locate a base interpreter for the requested version for `python -m venv`."""
63
+ # Try `pythonX.Y` (Unix) / `pythonX.Y.exe`, then the Windows `py` launcher.
64
+ candidate = shutil.which(f"python{version}")
65
+ if candidate:
66
+ return candidate
67
+ if IS_WINDOWS and shutil.which("py"):
68
+ probe = subprocess.run(["py", f"-{version}", "--version"], capture_output=True, text=True)
69
+ if probe.returncode == 0:
70
+ return f"py -{version}" # sentinel; expanded by caller
71
+ return None
72
+
73
+
74
+ def main() -> int:
75
+ venv_dir = Path(sys.argv[1]) if len(sys.argv) > 1 else Path(".venv")
76
+ python_version = sys.argv[2] if len(sys.argv) > 2 else "3.12"
77
+
78
+ ver = parse_version(python_version)
79
+ if not (SUPPORTED_MIN <= ver <= SUPPORTED_MAX):
80
+ lo = ".".join(map(str, SUPPORTED_MIN))
81
+ hi = ".".join(map(str, SUPPORTED_MAX))
82
+ log(f"ERROR: Python {python_version} outside supported range {lo}-{hi}")
83
+ log("Use 3.10, 3.11, or 3.12.")
84
+ return 1
85
+
86
+ installer = "uv" if shutil.which("uv") else "venv"
87
+ if installer == "venv":
88
+ log("uv not found — falling back to python + venv. Consider: https://docs.astral.sh/uv/")
89
+
90
+ py = venv_python(venv_dir)
91
+
92
+ # Reuse existing env only if Python version matches.
93
+ current = interpreter_version(py)
94
+ if current == python_version:
95
+ log(f"Env exists at {venv_dir} with Python {current} — reusing")
96
+ else:
97
+ if current is not None:
98
+ log(f"Env at {venv_dir} uses Python {current} (wanted {python_version}) — recreating")
99
+ shutil.rmtree(venv_dir)
100
+
101
+ if installer == "uv":
102
+ uv = shutil.which("uv")
103
+ if subprocess.run([uv, "venv", "--python", python_version, str(venv_dir)]).returncode != 0:
104
+ log("ERROR: `uv venv` failed.")
105
+ return 1
106
+ else:
107
+ base = find_base_python(python_version)
108
+ if not base:
109
+ log(f"ERROR: python{python_version} not found on PATH.")
110
+ log("Install via pyenv/asdf/brew/system package manager, the Windows installer, or install uv.")
111
+ return 1
112
+ base_cmd = base.split() if base.startswith("py ") else [base]
113
+ if subprocess.run([*base_cmd, "-m", "venv", str(venv_dir)]).returncode != 0:
114
+ log("ERROR: `python -m venv` failed.")
115
+ return 1
116
+ log(f"Created env at {venv_dir}")
117
+
118
+ requirements = Path(__file__).resolve().parent.parent / "requirements.txt"
119
+ if not requirements.is_file():
120
+ log(f"ERROR: requirements.txt not found at {requirements}")
121
+ return 1
122
+
123
+ log(f"Installing from {requirements}")
124
+ if installer == "uv":
125
+ uv = shutil.which("uv")
126
+ rc = subprocess.run(
127
+ [uv, "pip", "install", "--python", str(py), "--upgrade", "-r", str(requirements)]
128
+ ).returncode
129
+ else:
130
+ subprocess.run([str(py), "-m", "pip", "install", "--upgrade", "pip"])
131
+ rc = subprocess.run(
132
+ [str(py), "-m", "pip", "install", "--upgrade", "-r", str(requirements)]
133
+ ).returncode
134
+ if rc != 0:
135
+ log("ERROR: dependency install failed.")
136
+ return 1
137
+
138
+ log(f"Done. Invoke directly: {py} <script>")
139
+ return 0
140
+
141
+
142
+ if __name__ == "__main__":
143
+ sys.exit(main())
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: hf-cloud-sagemaker-deployment-planner
3
+ description: 'Plan and coordinate the deployment of a model to Amazon SageMaker AI. Use this skill whenever the user wants to deploy, host, serve, or expose a model on SageMaker or AWS — including phrases like "deploy a model", "host this LLM on AWS", "serve this embedding model", "deploy a reranker", "deploy a text-to-image / diffusion model", "host this for async inference", "create an endpoint", "serve my fine-tuned model", or any request that involves making a model available for inference on AWS. Use this even when the user is vague (e.g. "I just want to get this running on AWS, you figure it out"). Works for text-generation LLMs, embedding models, rerankers, classifiers, text-to-image / diffusion models — picks the right serving stack and chooses between real-time and async inference. This is the entry-point skill for SageMaker deployment work — it asks clarifying questions, picks a deployment pathway, and coordinates the other deployment skills.'
4
+ ---
5
+
6
+ # SageMaker Deployment Planner
7
+
8
+ You are helping a user deploy a model to Amazon SageMaker. Most users invoking this skill want the model deployed with reasonable defaults, in as few questions as possible. Ask only what you need, recommend a pathway honestly, and hand off to the specialized skills.
9
+
10
+ ## Workflow phases
11
+
12
+ 1. **Discovery** — what is being deployed and what are the constraints (this skill)
13
+ 2. **Pathway selection** — real-time / serverless / async / batch / Bedrock CMI (this skill)
14
+ 3. **Context preflight** — `hf-cloud-aws-context-discovery`, then `hf-cloud-python-env-setup`
15
+ 4. **IAM preflight** — `hf-cloud-sagemaker-iam-preflight`
16
+ 5. **Image selection** — `hf-cloud-serving-image-selection`
17
+ 6. **Deployment** — `hf-cloud-sagemaker-production-defaults`
18
+
19
+ Phases 1–2 are this skill's job. The others activate when their patterns match.
20
+
21
+ ## Discovery: ask only what you need
22
+
23
+ You will eventually need to know:
24
+
25
+ - **What model**: HuggingFace ID, S3 path to artifacts, or model name. If the user is vague ("the model I fine-tuned"), ask for the artifact location.
26
+ - **Model type**: text-generation LLM, embedding/reranker, or other (classifier, NER, etc.). This determines the serving stack — usually inferable from the model name (anything ending in `-embed-*`, starting with `BAAI/bge-`, `sentence-transformers/*` etc. is embeddings; chat/instruct models are LLMs). Only ask if it's genuinely ambiguous.
27
+ - **Traffic shape**: roughly how often will this be called?
28
+ - **Latency tolerance**: interactive, near-real-time, or async?
29
+ - **Cost sensitivity**: ask only if the user signals it or the traffic pattern is ambiguous.
30
+
31
+ Region comes from `hf-cloud-aws-context-discovery` — don't ask unless the user volunteers it.
32
+
33
+ Do **not** front-load all of these. A common minimal set is just: *what model, and roughly how often will it be called?* The model name usually settles the model-type question. That alone is often enough to narrow the pathway to two candidates. If the user already told you something, don't ask again.
34
+
35
+ ## Pathway selection
36
+
37
+ | Pathway | When it fits | When it does not |
38
+ |---|---|---|
39
+ | **Real-time endpoint** | Steady traffic, sub-second to few-second latency, always-on | Very spiky or very sparse traffic (wastes money on idle) |
40
+ | **Real-time, scale to zero** | Sparse or scheduled traffic, dev/test endpoints, and a client that tolerates a ~9 min first request after idle | Any interactive SLA: every request during the wake fails with a 400 |
41
+ | **Serverless inference** | Spiky/intermittent, tolerates cold starts (~10s+), simpler models | LLMs above a few B params (memory/cold-start limits), strict SLAs |
42
+ | **Async inference** | Long inference (>60s), large payloads, queue-friendly | Interactive synchronous calls |
43
+ | **Batch transform** | Offline scoring over a dataset | Anything online or interactive |
44
+ | **Bedrock Custom Model Import** | Wants Bedrock-compatible API, supported base family, weights only | Custom inference logic, unsupported architectures |
45
+
46
+ For LLMs, **real-time endpoints are the default** unless traffic is explicitly spiky/sparse or inference is long-running. Serverless looks attractive for "low traffic" cases but most LLMs exceed its memory limits.
47
+
48
+ For **embeddings**, real-time is again the default — but CPU instances are usually the right choice (much cheaper, fast enough for most embedding workloads). Don't reflexively recommend GPU instances for embedding models; ask `hf-cloud-serving-image-selection` to consider CPU variants if the model is small (<1B params) and traffic is moderate.
49
+
50
+ For **text-to-image, video generation, or other long-inference workloads** (>30s per request) where traffic is also bursty: async inference is the right answer. It supports genuine scale-to-zero between batches and queues requests via S3, so you don't pay for idle GPU. `hf-cloud-sagemaker-production-defaults` has a dedicated `deploy_async.py` for this.
51
+
52
+ Real-time, real-time scale-to-zero, and async are the three scripted pathways (`deploy.py`, `deploy_ic.py`, `deploy_async.py` in `hf-cloud-sagemaker-production-defaults`). Serverless, batch transform, and Bedrock Custom Model Import are not currently scripted — for those, hand the user off with a brief explanation rather than trying to deploy them through this workflow.
53
+
54
+ **Scale to zero, real-time or async?** Both reach zero and both make the first request after idle slow. Pick async when one inference can exceed the 60s `InvokeEndpoint` limit, when payloads are large, or when the client can accept an S3 result instead of a synchronous response. Pick real-time scale-to-zero when the client needs a normal synchronous HTTP response and can retry through the wake. Real-time scale-to-zero needs inference components; the plain real-time pathway cannot go below one instance.
55
+
56
+ If two pathways are both reasonable, say so in one sentence each and pick one. Don't bury the recommendation in options.
57
+
58
+ ## Instance selection: check quota before recommending
59
+
60
+ Endpoint quotas are per instance type, per region, and default to **0** for GPU types in many accounts. Recommending an instance the account can't launch wastes a full deploy cycle on `ResourceLimitExceeded`. Check first:
61
+
62
+ ```bash
63
+ aws service-quotas list-service-quotas --service-code sagemaker --region <region> \
64
+ --query "Quotas[?contains(QuotaName, 'for endpoint usage') && Value > \`0\`].[QuotaName, Value]" \
65
+ --output table
66
+ ```
67
+
68
+ If the type you want isn't in the result, recommend one that is — or tell the user to request an increase (hours to days) *before* creating anything.
69
+
70
+ If the call itself is denied, say so once and continue. The quota check is an optimization, not a gate: the deployment surfaces the real limit as `ResourceLimitExceeded`. Never stop the workflow, and never ask the user to change IAM, for a preflight check.
71
+
72
+ GPU family notes for the common 24 GB tier:
73
+
74
+ - `ml.g5.*` (A10G) and `ml.g6.*` (L4) both work with current vLLM images when the gpu-3-1 AMI is set (see `hf-cloud-serving-image-selection`). g6 is the newer generation and slightly cheaper per hour; g5 has roughly double the memory bandwidth, which usually means better LLM token throughput. Pick whichever has quota; when both do, either is defensible — g5 for throughput, g6 for cost.
75
+ - `ml.g6e.*` (L40S, 48 GB) when the model doesn't fit in 24 GB.
76
+
77
+ Once you have enough to recommend, state it plainly:
78
+
79
+ > Based on what you've told me, I'd recommend a real-time endpoint on `ml.g5.xlarge`. The model is small enough that this is cost-effective, and your traffic pattern is steady enough that you won't be paying for idle. Alternative: serverless would be cheaper if traffic dries up for hours at a time, but Qwen3-0.6B is at the edge of serverless memory limits and cold starts would be 15–30s. Want me to proceed with the real-time endpoint?
80
+
81
+ Then wait for confirmation. The user should know what they're about to spend money on before you create anything.
82
+
83
+ The plan lives in the conversation — don't generate `plan.yaml` or similar artifacts unless explicitly asked.
84
+
85
+ ## Style
86
+
87
+ - Users invoking this skill are deferring to the agent because they don't want to do AWS plumbing. Match that energy: efficient, not exhaustive.
88
+ - One round of clarifying questions is usually enough. Three rounds is interrogation.
89
+ - When you don't know something specific (current image URI, SDK API surface, quotas), check it rather than guess. Other skills handle the "how to check" details.
90
+ - If the user pushes back on a recommendation, accept it. They know their constraints better than you do.
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: hf-cloud-sagemaker-iam-preflight
3
+ description: 'Ensure a usable SageMaker execution role exists before deploying or training. Use this skill whenever about to create a SageMaker endpoint, model, training job, or any resource that requires an execution role. Use it especially when the user has not provided a role ARN explicitly, when scripts are about to call `iam:CreateRole`, or when an AccessDenied error mentions an IAM action. Never blindly call `iam:CreateRole` — always check for existing roles first. This skill prevents the most common SageMaker deployment failure: trying to create IAM resources from an SSO principal that has no IAM write permissions.'
4
+ ---
5
+
6
+ # SageMaker IAM Preflight
7
+
8
+ Every SageMaker resource needs an **execution role** — the IAM role SageMaker assumes to read model artifacts from S3, pull serving containers from ECR, and write logs. Most deployments fail here because the script tried to create a new role without checking if a usable one already existed, then blew up because the caller is an SSO principal.
9
+
10
+ This skill encodes the right order: discover, validate, only create if necessary.
11
+
12
+ ## Running the helpers (cross-platform)
13
+
14
+ The helpers are Python so they run identically on Windows, macOS, and Linux:
15
+
16
+ ```bash
17
+ python3 scripts/check_role.py # macOS / Linux
18
+ python scripts/check_role.py # Windows (PowerShell / cmd)
19
+ ```
20
+
21
+ **Run them from the shell where the AWS CLI already works** — i.e. wherever `aws sts get-caller-identity` succeeds. The script shells out to that same `aws` binary and inherits the shell's profile, region, SSO session, proxy, and credential chain.
22
+
23
+ > **Windows / WSL / Git Bash caveat.** Do **not** invoke these through a Bash shim (WSL, Git Bash, MSYS) on Windows. Those Bash environments frequently do **not** share the Windows AWS config, credentials, SSO sessions, environment variables, or proxy settings — so `aws sts get-caller-identity` fails inside Bash even when it works natively in PowerShell. (This is exactly why the old `.sh` helpers failed on Windows and were replaced with Python.) If you're in PowerShell, run `python ...\check_role.py` directly in PowerShell. If the helper still can't see your identity, run the same discovery natively (see "Native AWS CLI equivalent" below) in the shell where `aws sts get-caller-identity` returns your ARN.
24
+
25
+ ## Order of operations
26
+
27
+ ### Step 1 — Did the user provide a role?
28
+
29
+ Validate that one specifically:
30
+
31
+ ```bash
32
+ python3 scripts/check_role.py "<role-name-or-arn>"
33
+ ```
34
+
35
+ On success it prints the ARN to stdout (exit 0). On failure it logs why on stderr. Don't try to silently fix a broken role — surface the problem.
36
+
37
+ ### Step 2 — Discover existing roles
38
+
39
+ ```bash
40
+ python3 scripts/check_role.py
41
+ ```
42
+
43
+ Lists roles matching common SageMaker patterns (`AmazonSageMaker-ExecutionRole-*`, `SageMakerExecutionRole*`, etc.), **ranks by last-used date** (most recent first), validates trust policy in that order, returns the first usable ARN. Most accounts that have used SageMaker before already have one.
44
+
45
+ Why rank by last-used: in accounts with multiple roles (auto-generated 2021 role + manual project role + etc.), the alphabetically-first one is rarely the actively-maintained one. The most-recently-used role is more likely to have current policies — including cross-account ECR pull. The script prints the ranking so you can see which got picked.
46
+
47
+ IAM frequently reports **no** `RoleLastUsed` at all (tracking only covers recent activity). When every candidate ties at "never used", the script falls back to **newest creation date** — a newer role is more likely to have current policies than a 2021 leftover.
48
+
49
+ ### Step 3 — Create, only if discovery found nothing
50
+
51
+ **If the user can create** (has IAM permissions):
52
+
53
+ ```bash
54
+ python3 scripts/create_role.py "<role-name>" "<model-bucket>"
55
+ ```
56
+
57
+ Second arg scopes S3 access to a specific bucket. Omit if unknown; script warns and the user can update the policy later.
58
+
59
+ **If the user cannot create** (SSO principal — `hf-cloud-aws-context-discovery` will have flagged this):
60
+
61
+ Stop and surface this clearly. Don't retry alternative IAM operations hoping one works:
62
+
63
+ > I can't find an existing SageMaker execution role, and you're authenticated via SSO so you can't create one directly. Please either:
64
+ > - Ask your AWS admin for a SageMaker execution role ARN, or
65
+ > - Have them grant your SSO permission set `iam:CreateRole`, `iam:PutRolePolicy`
66
+
67
+ Specific instructions get unblocked fast; vague "permission denied" messages don't.
68
+
69
+ ## What "validated" means
70
+
71
+ A role is usable when (1) it exists, (2) its trust policy allows `sagemaker.amazonaws.com` to `sts:AssumeRole`, and (3) its permissions grant only the actions and resources this deployment needs. See `references/trust-policy.json` for the canonical trust policy.
72
+
73
+ `check_role.py` verifies existence and trust because policy evaluation depends on the deployment's exact S3, ECR, logging, and optional output resources. Before deployment, inspect the selected role's policies and compare them with `references/minimum-permissions.json`; add only missing actions and scope them to the required resources. Do not attach `AmazonSageMakerFullAccess` or defer permission review until an `AccessDenied` failure.
74
+
75
+ ## Minimum permissions
76
+
77
+ `references/minimum-permissions.json` is the standalone inline policy for endpoint execution:
78
+ - `s3:GetObject` + `s3:ListBucket` on the model artifact bucket
79
+ - ECR pull permissions
80
+ - CloudWatch logs and metrics
81
+
82
+ `create_role.py` installs this inline policy without attaching a managed FullAccess policy. Replace `REPLACE_WITH_MODEL_BUCKET` in the template with the actual bucket name — `create_role.py` does this automatically when given a bucket as its second argument. Add narrowly scoped permissions separately for optional features such as async output or data capture.
83
+
84
+ ## Native AWS CLI equivalent (fallback)
85
+
86
+ If the Python helper can't run or can't see your identity (rare — usually a broken PATH or running under a Bash shim that lacks AWS context), do the same preflight by hand in the shell where `aws sts get-caller-identity` works. The logic is just AWS CLI calls; the helper exists only to bundle and rank them.
87
+
88
+ PowerShell:
89
+
90
+ ```powershell
91
+ # 1. List candidate SageMaker roles
92
+ aws iam list-roles --query "Roles[?contains(RoleName,'SageMaker') || contains(RoleName,'sagemaker')]" --output json
93
+
94
+ # 2. For each candidate, confirm the trust policy allows sagemaker.amazonaws.com
95
+ aws iam get-role --role-name <role-name> --query "Role.AssumeRolePolicyDocument" --output json
96
+
97
+ # 3. Prefer the most-recently-used role with SageMaker-execution naming
98
+ # (LastUsedDate is often None for every role — then prefer newest CreateDate)
99
+ aws iam get-role --role-name <role-name> --query "Role.[RoleLastUsed.LastUsedDate, CreateDate]" --output text
100
+ ```
101
+
102
+ Pick the most-recently-used role whose trust policy contains `sagemaker.amazonaws.com`. Use the resulting ARN exactly as if `check_role.py` had returned it. Bash/macOS/Linux use the same commands.
@@ -0,0 +1,47 @@
1
+ {
2
+ "Version": "2012-10-17",
3
+ "Statement": [
4
+ {
5
+ "Sid": "S3ModelArtifactAccess",
6
+ "Effect": "Allow",
7
+ "Action": [
8
+ "s3:GetObject",
9
+ "s3:ListBucket"
10
+ ],
11
+ "Resource": [
12
+ "arn:aws:s3:::REPLACE_WITH_MODEL_BUCKET",
13
+ "arn:aws:s3:::REPLACE_WITH_MODEL_BUCKET/*"
14
+ ]
15
+ },
16
+ {
17
+ "Sid": "ECRPullServingImages",
18
+ "Effect": "Allow",
19
+ "Action": [
20
+ "ecr:GetAuthorizationToken",
21
+ "ecr:BatchCheckLayerAvailability",
22
+ "ecr:GetDownloadUrlForLayer",
23
+ "ecr:BatchGetImage"
24
+ ],
25
+ "Resource": "*"
26
+ },
27
+ {
28
+ "Sid": "CloudWatchLogs",
29
+ "Effect": "Allow",
30
+ "Action": [
31
+ "logs:CreateLogStream",
32
+ "logs:CreateLogGroup",
33
+ "logs:PutLogEvents",
34
+ "logs:DescribeLogStreams"
35
+ ],
36
+ "Resource": "arn:aws:logs:*:*:log-group:/aws/sagemaker/*"
37
+ },
38
+ {
39
+ "Sid": "CloudWatchMetrics",
40
+ "Effect": "Allow",
41
+ "Action": [
42
+ "cloudwatch:PutMetricData"
43
+ ],
44
+ "Resource": "*"
45
+ }
46
+ ]
47
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "Version": "2012-10-17",
3
+ "Statement": [
4
+ {
5
+ "Effect": "Allow",
6
+ "Principal": {
7
+ "Service": "sagemaker.amazonaws.com"
8
+ },
9
+ "Action": "sts:AssumeRole"
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,184 @@
1
+ #!/usr/bin/env python3
2
+ """Discover and validate a SageMaker execution role. Cross-platform (Windows/macOS/Linux).
3
+
4
+ Without args: searches the account for usable roles, ranks by last-used date
5
+ (newest creation date when last-used is unrecorded), returns the first one
6
+ with a valid trust policy.
7
+ With arg: validates the named role.
8
+
9
+ Does NOT create roles — see create_role.py.
10
+
11
+ Why Python (not a shell script): this runs `aws` from the *same* shell the user
12
+ launched it in, inheriting their AWS profile, region, SSO session, proxy, and
13
+ credential chain. A bundled Bash helper on Windows (Git Bash/WSL/MSYS) often
14
+ does NOT share that context, so `aws sts get-caller-identity` fails there even
15
+ when the native CLI works fine. Run this from the shell where `aws sts
16
+ get-caller-identity` already succeeds.
17
+
18
+ Usage:
19
+ python check_role.py # discover
20
+ python check_role.py <role-name-or-arn> # validate a specific role
21
+
22
+ (On Windows the launcher is usually `python`; on macOS/Linux it's `python3`.)
23
+
24
+ Exit: 0 = usable role found (ARN printed to stdout)
25
+ 1 = no usable role
26
+ 2 = AWS CLI / credentials error
27
+ """
28
+
29
+ from __future__ import annotations
30
+
31
+ import fnmatch
32
+ import json
33
+ import shutil
34
+ import subprocess
35
+ import sys
36
+
37
+ ROLE_NAME_PATTERNS = [
38
+ "AmazonSageMaker-ExecutionRole-*",
39
+ "SageMakerExecutionRole*",
40
+ "*SageMaker*Execution*",
41
+ "*sagemaker*execution*",
42
+ ]
43
+
44
+
45
+ def log(msg: str) -> None:
46
+ print(f"[check_role] {msg}", file=sys.stderr, flush=True)
47
+
48
+
49
+ def aws_bin() -> str:
50
+ """Resolve the `aws` executable, honoring PATHEXT (finds aws.exe/aws.cmd on Windows)."""
51
+ exe = shutil.which("aws")
52
+ if not exe:
53
+ log("ERROR: the 'aws' CLI was not found on PATH.")
54
+ log("Install AWS CLI v2 and confirm `aws sts get-caller-identity` works in this shell.")
55
+ sys.exit(2)
56
+ return exe
57
+
58
+
59
+ def run_aws(args: list[str]) -> subprocess.CompletedProcess:
60
+ """Run an aws CLI command, capturing output. Never raises on nonzero exit."""
61
+ return subprocess.run(
62
+ [aws_bin(), *args],
63
+ capture_output=True,
64
+ text=True,
65
+ )
66
+
67
+
68
+ def get_role(role_name: str) -> dict | None:
69
+ """Return the Role dict from `aws iam get-role`, or None if it can't be read."""
70
+ proc = run_aws(["iam", "get-role", "--role-name", role_name, "--output", "json"])
71
+ if proc.returncode != 0:
72
+ return None
73
+ try:
74
+ return json.loads(proc.stdout)["Role"]
75
+ except (json.JSONDecodeError, KeyError):
76
+ return None
77
+
78
+
79
+ def trust_allows_sagemaker(role: dict) -> bool:
80
+ """True if the trust policy lets sagemaker.amazonaws.com assume the role."""
81
+ trust = role.get("AssumeRolePolicyDocument", {})
82
+ # Substring check over the serialized doc — matches the original shell helper
83
+ # and is robust to single/list Principal.Service shapes.
84
+ return "sagemaker.amazonaws.com" in json.dumps(trust)
85
+
86
+
87
+ def validate_role(role_name: str, quiet: bool = False) -> str | None:
88
+ """Return the role ARN if it exists and trusts SageMaker, else None."""
89
+ role = get_role(role_name)
90
+ if role is None:
91
+ if not quiet:
92
+ log(f"Role '{role_name}' does not exist or you cannot describe it.")
93
+ return None
94
+ if not trust_allows_sagemaker(role):
95
+ if not quiet:
96
+ log(f"Role '{role_name}': trust policy does not allow sagemaker.amazonaws.com")
97
+ return None
98
+ return role.get("Arn")
99
+
100
+
101
+ def main() -> int:
102
+ if run_aws(["sts", "get-caller-identity"]).returncode != 0:
103
+ log("ERROR: 'aws sts get-caller-identity' failed. Run hf-cloud-aws-context-discovery first.")
104
+ log("Run this helper from the shell where the AWS CLI is configured (e.g. PowerShell on Windows).")
105
+ return 2
106
+
107
+ # Path 1: validate a user-supplied role
108
+ if len(sys.argv) >= 2:
109
+ supplied = sys.argv[1]
110
+ role_name = supplied.rsplit("/", 1)[-1] if supplied.startswith("arn:aws:iam::") else supplied
111
+ log(f"Validating: {role_name}")
112
+ arn = validate_role(role_name)
113
+ if arn:
114
+ log(f"OK: {arn}")
115
+ print(arn)
116
+ return 0
117
+ return 1
118
+
119
+ # Path 2: discover candidates
120
+ log("Searching for SageMaker execution roles in the account...")
121
+ proc = run_aws(["iam", "list-roles", "--query", "Roles[*].RoleName", "--output", "json"])
122
+ if proc.returncode != 0:
123
+ log("Could not list roles (caller likely lacks iam:ListRoles).")
124
+ log("Ask the user for an existing role ARN, or have someone with IAM access run this.")
125
+ return 1
126
+ try:
127
+ all_roles = json.loads(proc.stdout) or []
128
+ except json.JSONDecodeError:
129
+ all_roles = []
130
+
131
+ candidates = [
132
+ name
133
+ for name in all_roles
134
+ if any(fnmatch.fnmatchcase(name, pat) for pat in ROLE_NAME_PATTERNS)
135
+ ]
136
+
137
+ if not candidates:
138
+ log("No matching roles. Options:")
139
+ log(" 1. Ask the user for an ARN (role might have an unusual name)")
140
+ log(" 2. Create one (see create_role.py, requires iam:CreateRole)")
141
+ return 1
142
+
143
+ log(f"Found {len(candidates)} candidate(s): {' '.join(candidates)}")
144
+
145
+ # Rank by RoleLastUsed (most recent first) — alphabetical order rarely picks
146
+ # the actively-maintained role in accounts with multiple SageMaker roles.
147
+ # Fetch each role once and reuse the result for both ranking and validation.
148
+ log("Ranking by last-used date (fallback: creation date)...")
149
+ roles_by_name: dict[str, dict] = {}
150
+ ranked: list[tuple[str, str, str]] = [] # (last_used, create_date, role_name)
151
+ for name in candidates:
152
+ role = get_role(name)
153
+ if role is None:
154
+ continue
155
+ roles_by_name[name] = role
156
+ last_used = (role.get("RoleLastUsed") or {}).get("LastUsedDate") or ""
157
+ # IAM often reports no RoleLastUsed at all (tracking only covers recent
158
+ # activity); when every candidate ties at "", newest CreateDate wins.
159
+ create_date = str(role.get("CreateDate") or "")
160
+ # ISO-8601 timestamps sort chronologically as strings; "" (never used)
161
+ # sorts before any timestamp, so descending order puts it last.
162
+ ranked.append((last_used, create_date, name))
163
+
164
+ ranked.sort(reverse=True)
165
+
166
+ log("Ranking (most recent first):")
167
+ for last_used, create_date, name in ranked:
168
+ when = f"last used {last_used}" if last_used else f"never used, created {create_date or '?'}"
169
+ log(f" - {name} ({when})")
170
+
171
+ for _, _, name in ranked:
172
+ if trust_allows_sagemaker(roles_by_name[name]):
173
+ arn = roles_by_name[name].get("Arn")
174
+ log(f"Using: {arn}")
175
+ print(arn)
176
+ return 0
177
+
178
+ log("No candidate passed validation (they exist but lack correct trust policy).")
179
+ log("Fix the trust policy or create a new role (see create_role.py).")
180
+ return 1
181
+
182
+
183
+ if __name__ == "__main__":
184
+ sys.exit(main())