Release workflow for deploying OpenEnv environments to Hugging Face Spaces and keeping canonical references in sync.
npx skills add https://github.com/huggingface/OpenEnv --skill release
This skill orchestrates the repo-embedded deployment tooling and documents the openenv-namespace canonicalization process.
hf CLI authenticated (run hf auth login or set HF_TOKEN).scripts/prepare_hf_deployment.sh can stage Docker contexts.scripts/manage_hf_collection.py for collection updates and discovery.scripts/prepare_hf_deployment.sh. Default arguments deploy every *deployable* env from envs/. Pass --env <name> to target a subset. The script:0.2.2 is only a release-candidate label and no v0.2.2 tag exists yet, the script should fall back to main for env dependency rewrites while keeping the Hub suffix at -0.2.2.openenv-core[core]>=... specs and direct Dockerfile installs to git+https://github.com/huggingface/OpenEnv.git@<resolved-ref> so the sweep does not silently install 0.2.1 from PyPI.src/, envs/<env>/, and a rewritten Dockerfile that sets BASE_IMAGE to ghcr.io/huggingface/openenv-base:latest unless a hash is supplied.openenv/openenv-<version> tags, and adds the HUB_TAG used in collection sync.hf repo create/hf upload plus visibility flags to push Docker spaces.<env>-0.2.2 (set SPACE_SUFFIX=-0.2.2 or rely on the version-derived default). Use --private to keep the collection private for now. The repo deploy script should update only the versioned collection during this phase, not the global tagged collection.hf.space domains, not anonymous browser URLs. Use scripts/verify_private_spaces.py --hf-namespace openenv --suffix -0.2.2 or inspect hf spaces info <space> plus the runtime domain from runtime.raw.domains. Prefer hf spaces ls --expand=runtime to confirm RUNNING/SLEEPING. For stuck or error states, consult scripts/prepare_hf_deployment.sh logic or fall back to the hf-space-recovery skill./health alone as sufficient. This sweep found false positives where /health was 200 but runtime use still failed: chat_env-0.2.2 returned 500 on /reset, and tbench2_env-0.2.2 also returned 500 on /reset.POST /reset is the minimum usability gate. If the action schema is simple, follow with a schema-correct POST /step probe as well; snake_env, finrl_env, and sumo_rl_env all surfaced step-time failures that a health-only check would miss.POST /reset may time out on a 20-second probe (git_env, unity_env). Treat those as inconclusive until manually retried with a longer timeout or an env-specific probe.openenv/echo_env and the TextArena variants expose multiple READY runtime domains. The verifier now probes every READY domain and reports success once any domain returns usable data, so the canonical status is based on the first passing domain rather than the first listed domain.main only when the private -0.2.2 candidate builds and passes health checks.pyproject.toml dependency to <0.2.2 to prevent inadvertent upgrades.scripts/manage_hf_collection.py --version 0.2.2 --collection-namespace openenv --skip-global-collection --space-id <space>.envs/. Before promotion, map repo envs to actual canonical repos on the Hub:atari_env, browsergym_env, chat_env, coding_env, echo_env, openspiel_env, sumo_rl_envrepl_env -> openenv/repl, tbench2_env -> openenv/tbench2textarena_env promotes into productized canonicals such as openenv/sudoku and openenv/wordle, not openenv/textarena_envopenenv spaces first and promote into the existing repo when one existsopenenv as of this sweep include openenv/atari_env, openenv/browsergym_env, openenv/chat_env, openenv/coding_env, openenv/echo_env, openenv/finqa_env, openenv/openspiel_env, openenv/repl, openenv/sudoku, openenv/wordle, openenv/sumo_rl_env, and openenv/tbench2; keep this list current when planning canonical promotions.scripts/manage_hf_collection.py with a single release tuple (namespace openenv, version 0.2.2, suffix -0.2.2).OpenEnv Environment Hub <version>.--space-id explicitly for each successfully redeployed suffixed space to avoid relying on discovery heuristics and to document the tested set.repl_env maps to openenv/repl, tbench2_env maps to openenv/tbench2, and textarena_env may be represented by productized aliases such as openenv/sudoku or openenv/wordle rather than an env-dir-matching Space.envs/, src/, and pyproject.toml resolve.uv sync detached at the start of Docker builds: the helper script injects uv install/uv sync edits automatically.scripts/prepare_hf_deployment.sh --skip-collection can be used when only validating builds without touching collections.https://<space>.hf.space/... requests return a generic 404. Use an authenticated header from the locally logged-in hf token or scripts/verify_private_spaces.py.READY domains. Do not stop at the first one. In this sweep, openenv/echo_env advertised both openenv-echo-env-v2.hf.space and openenv-echo-env.hf.space, and openenv/sudoku advertised both openenv-textarena.hf.space and openenv-sudoku.hf.space; the first domain in each pair returned 404 while the second served the env correctly. Probe every READY domain until one passes.BUILD_ERROR, use HfApi().restart_space(..., factory_reboot=True) to force a fresh rebuild of the same commit.scripts/prepare_hf_deployment.sh stages legacy Dockerfiles that COPY src/core/, it now injects COPY src/openenv/ /app/src/openenv/ and limits PYTHONPATH to /app/src because exposing /app/src/core earlier shadowed the stdlib types module and triggered ImportError: cannot import name 'GenericAlias'.browsergym_env: avoid live Hub-time git clone of MiniWoB++ when possible. A pinned tarball snapshot is more reproducible than cloning the repo during every Space build.websearch_env: staged openenv-core rewrites can become git+https://... dependencies, so the builder image must have git available before uv sync.maze_env and snake_env: when a Dockerfile stages the repo root under /app/env, add /app/env/src/core:/app/env/src:/app/env to PYTHONPATH so the Space can use the checked-out repo sources and compatibility shims during validation./app/src/core directly to PYTHONPATH can shadow the Python stdlib with /app/src/core/types.py, causing startup failures like ImportError: cannot import name 'GenericAlias' from partially initialized module 'types'. Stage src/openenv/ into /app/src/openenv/ and put only /app/src on PYTHONPATH.0.2.2 until a fix is committed.openenv namespace.hf spaces info/curl .../health output for the final success set so the release briefing notes the exact runtime status used to flip canonical references.Production-ready patterns for building LLM applications. Covers RAG pipelines, agent architectures, prompt IDEs, and LLMOps monitoring. Use when designing AI applications, implementing RAG, building agents, or setting up LLM observability.
Build production ML systems with PyTorch 2.x, TensorFlow, and modern ML frameworks. Implements model serving, feature engineering, A/B testing, and monitoring. Use PROACTIVELY for ML model deployment, inference optimization, or production ML infrastructure.
World-class ML engineering skill for productionizing ML models, MLOps, and building scalable ML systems. Expertise in PyTorch, TensorFlow, model deployment, feature stores, model monitoring, and ML infrastructure. Includes LLM integration, fine-tuning, RAG systems, and agentic AI. Use when deploying ML models, building ML platforms, implementing MLOps, or integrating LLMs into production systems.
Expert in Langfuse - the open-source LLM observability platform. Covers tracing, prompt management, evaluation, datasets, and integration with LangChain, LlamaIndex, and OpenAI. Essential for debugging, monitoring, and improving LLM applications in production. Use when: langfuse, llm observability, llm tracing, prompt management, llm evaluation.
Use this skill for reinforcement learning tasks including training RL agents (PPO, SAC, DQN, TD3, DDPG, A2C, etc.), creating custom Gym environments, implementing callbacks for monitoring and control, using vectorized environments for parallel training, and integrating with deep RL workflows. This skill should be used when users request RL algorithm implementation, agent training, environment design, or RL experimentation.
Managed vector database for production AI applications. Fully managed, auto-scaling, with hybrid search (dense + sparse), metadata filtering, and namespaces. Low latency (<100ms p95). Use for production RAG, recommendation systems, or semantic search at scale. Best for serverless, managed infrastructure.
Deploy, evaluate, fine-tune, and manage Foundry agents end-to-end with azd: hosted agent scaffold/run/deploy, prompt agent create, batch eval, continuous eval, prompt optimizer, Agent Optimizer scaffold, agent.yaml, dataset curation from traces, model fine-tuning (SFT/DPO/RFT). USE FOR: azd ai agent, azd provision/deploy, deploy agent, hosted agent, create agent, add tool to agent, invoke agent, evaluate agent, continuous eval, continuous monitoring, agent CI/CD, optimize prompt, improve prompt, optimize agent instructions, agent optimizer, deploy model, Foundry project, RBAC, role assignment, permissions, quota, capacity, region, troubleshoot agent, deployment failure, AI Services, create Foundry resource, provision, knowledge index, customize deployment, onboard, availability, fine-tune, SFT, DPO, RFT, training-data, grader, distillation, fine-tuned model, large file upload. DO NOT USE FOR: Azure Functions, App Service, general Azure deploy (use azure-deploy), general Azure prep (use azure-prepare).
Cost optimization patterns for LLM API usage — model routing by task complexity, budget tracking, retry logic, and prompt caching.
Take huggingface/release from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.