Prepare Repo Skill Env logo

Prepare Repo Skill Env

Organization
VectorSpaceLab
prepare-repo-skill-env

Create, install, and prove the minimum backend-aware Python inspection environment set for a local repository before create-repo-skill. Use when a repo package must be installed into new or existing Conda, micromamba, uv, or venv environments; when selected native tests/examples require CPU, CUDA, ROCm, MPS, or vendor accelerator dependencies; when a broken inspection environment needs diagnosis; or when hardware/backend compatibility must be verified. Consume the confirmed extraction scope and backend verification plan, then run explicit terminal commands instead of delegating environment decisions to a bundled setup script.

Overview

PublisherVectorSpaceLab
RepositoryAREX-Skill
Skill nameprepare-repo-skill-env
Stars
341
Forks
26
Bundled files
3
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by VectorSpaceLab on GitHub. Read the source before you install it.

Installation

Install the Prepare Repo Skill Env AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/VectorSpaceLab/AREX-Skill/tree/main/cli/packages/coding-agent/src/disco/skills/prepare-repo-skill-env
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/VectorSpaceLab/AREX-Skill.git /tmp/AREX-Skill
mkdir -p .claude/skills
cp -r /tmp/AREX-Skill/cli/packages/coding-agent/src/disco/skills/prepare-repo-skill-env .claude/skills/prepare-repo-skill-env
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Prepare Repo Skill Env in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Prepare Repo Skill Env on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Prepare Repo Skill Env is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Prepare Repo Skill Env

Purpose

Use this skill before create-repo-skill when a local repository needs a verified Python environment for live API and runtime inspection. The caller should provide or let this skill infer:

  • The repository path.
  • A new private environment prefix, or an existing environment that may be inspected.
  • The confirmed extraction scope, backend-classified native candidate map, and backend verification plan from create-repo-skill, when applicable.

Create the environment, install only what the confirmed scope requires, and prove that the package works from the environment's Python. "Minimum" means the smallest environment set that covers every required backend in the selected scope, not CPU-only by default. Usually one GPU-capable environment can also cover CPU checks; create additional prefixes only for conflicting backend variants or an independently selected CPU fallback claim. Run the relevant Conda, micromamba, uv, Python, and pip commands directly in the terminal. Keep each material step visible and separately diagnosable; do not hide environment creation, dependency selection, installation, or verification behind a bundled setup/bootstrap script.

Prefer Conda when it is already available because it handles Python versions and compiled dependencies well. Micromamba is an equivalent prefix-based path when it is already installed. If neither is available, use an existing compatible Python with venv, or an installed uv when it can create the requested environment. Do not mutate Conda base, the Python running DisCo, or a user-owned environment without authorization.

Do not run the repo-native candidate tests/examples during environment preparation. Install their required variants and run the smallest backend smoke checks needed to prove that final native verification is feasible; the native cases themselves run after the generated skill is integrated.

The default private prefix is $DISCO_CODING_AGENT_DIR/envs/<skill-id>-inspection when that variable is set, otherwise ~/.disco/agent/envs/<skill-id>-inspection. Resolve it to a concrete absolute path before executing commands.

This skill produces private setup evidence. Environment paths, checkout paths, commands, and logs may be handed to create-repo-skill, but must not be copied into the generated public repo skill.

Required Outputs

Deliver an ok, partial, or failed environment handoff. In every case, write a private repo_env_report.json in the caller's artifact directory, or another explicit private path when invoked directly.

For success, record:

  • Repository path, environment manager, prefix, and environment Python.
  • Confirmed extraction scope and the dependency groups selected or skipped.
  • Backend verification plan, required/optional/alternative candidates, CPU substitution decisions, hardware compatibility verdicts, and the minimum environment set selected.
  • Exact environment creation, install, and verification commands with exit status and concise output/error evidence.
  • Installed distribution names and successfully imported module names.
  • Hardware/backend verdict when relevant.
  • Any unsafe, credentialed, destructive, or long-running checks that were deliberately skipped.

Use partial only when a required backend cannot be prepared and the user explicitly authorizes skill drafting with that exact limitation. A partial handoff is not ready for full backend verification or auto-import. Without that authorization, report failed.

For failure, record the failed phase, exact command, exit status, key stderr, relevant platform/backend facts, attempted remedies, and the next viable action. State explicitly that the environment is not ready for create-repo-skill.

Reference Map

Read the relevant references before acting:

Workflow

1. Resolve Inputs and Mutation Boundaries

Resolve these before installation:

  • repo_path: canonical local checkout path.
  • environment_prefix: canonical target prefix/path.
  • Confirmed included/excluded directories, selected workflows, and user requirements from create-repo-skill when available.
  • Backend-classified native candidates owned by included workflows. Require backend requirement, criticality, CPU substitution, dependency variant, hardware prerequisites, preparation smoke, and final native expectation.
  • The caller's backend verification plan and proposed minimum environment set. If either is missing during a create-repo-skill call, derive it from repo evidence before installation rather than defaulting silently to CPU.
  • Python version supported by repo metadata and required backend wheels.
  • Distribution name and import module names.
  • Required extras, requirements files, build tools, and backend packages.
  • Backend expectation: auto, cpu, cuda, rocm, mps, or another documented backend.
  • Whether the prefix is new, private and reusable, or user-owned.
  • Whether potentially breaking mutation of an existing environment is already authorized.

When called automatically by create-repo-skill, use its resolved private default prefix without asking again. During a direct invocation, ask for a prefix or propose the private default before writing there. Never infer a path outside the stated default-prefix policy.

If the prefix exists, inspect it read-only first. Imports, version queries, pip check, metadata queries, and safe CLI help are read-only. Installing, upgrading, downgrading, uninstalling, or repairing packages is mutation. Ask before mutating a user-provided environment unless the user already authorized that operation; otherwise create a new private prefix when allowed.

2. Inspect the Repository Before Choosing Commands

Read references/install-planning.md. Inspect pyproject.toml, setup.cfg, setup.py, requirements files, lockfiles, environment.yml, CI install steps, source roots, entry points, and documented install variants.

Build a concise install and backend map before running anything:

text
Selected Python: 3.11 (repo supports >=3.10; required wheels available)
Included scope: src/package, docs/gpu-inference.md, examples/infer.py
Excluded scope: training/, benchmarks/
Required candidate: examples/infer.py | cuda | required | CPU substitute: none
Optional candidate: benchmarks/throughput.py | cuda | optional | excluded
Host verdict: compatible NVIDIA GPU/driver/wheel
Environment set: one CUDA-capable prefix covering CUDA and CPU checks
Install: base package + [inference,cuda] + compatible torch CUDA wheel
Skip: [train], [all], requirements-dev.txt, benchmark dependencies
Preparation smoke: torch CUDA allocation + package backend import
Final native case: examples/infer.py with tiny fixture (run after integration)

Do not assume the repository name is the distribution or import name. Do not install all extras or every requirements file as a substitute for analysis.

3. Probe Available Managers and Hardware

Run discovery commands separately so their outcomes remain visible:

bash
command -v conda
command -v micromamba
command -v uv
command -v python3.11
command -v python3
command -v python

Use platform-equivalent commands on Windows. Query versions for tools that exist. Do not treat a missing command as a fatal error until all suitable paths have been evaluated.

Read references/hardware-and-backends.md and probe only the hardware relevant to the requested or repo-required backend. A visible GPU does not by itself require a GPU install for package inspection.

Apply the backend plan after probing:

  • When an included capability has a required backend and CPU substitute: none, prepare and verify that backend whenever compatible hardware and packages are available. A CPU-only prefix is not ready for that scope.
  • When CPU substitute is full and the selected CPU candidate verifies the same behavior, use the CPU path and record the evidence.
  • When the backend is optional, omit it from the minimum environment when it is unavailable or outside the selected scope, but preserve an explicit unverified-capability note.
  • When required hardware or a compatible dependency variant is unavailable, do not install an arbitrary GPU wheel or call the CPU environment ok. Report failed, ask to narrow scope, or produce partial only after the user accepts drafting with the required-backend limitation.
  • When required backend variants conflict, create separate concrete prefixes and verify each one. Do not mutate one prefix repeatedly between incompatible CPU/CUDA/ROCm/vendor states.

If no suitable Conda/micromamba, uv, or Python runtime exists, do not invoke a bundled downloader. Explain the host change required and ask before installing a runtime or environment manager unless the user already authorized that exact kind of host-level installation. Once authorized, use the platform's normal package manager or the selected tool's documented installer with explicit, reviewable terminal commands, then resume this workflow. Do not silently curl and execute an installer.

4. Create the Required Environment Set with Direct Commands

Substitute concrete absolute paths and the selected Python version in every command. Do not execute examples with placeholder paths.

Create the primary prefix for the strongest required selected backend. A GPU-capable prefix normally also runs CPU checks. When the backend plan requires incompatible variants, derive distinct suffixes such as -cuda, -rocm, or -cpu from the caller's private prefix and record every prefix in the report.

For Conda:

bash
conda create --yes --prefix "/absolute/path/to/inspection-env" "python=3.11" pip
conda run --prefix "/absolute/path/to/inspection-env" python -c "import sys; print(sys.executable); print(sys.version)"

For an already installed micromamba:

bash
micromamba create --yes --prefix "/absolute/path/to/inspection-env" "python=3.11" pip
micromamba run --prefix "/absolute/path/to/inspection-env" python -c "import sys; print(sys.executable); print(sys.version)"

For venv on Unix-like systems:

bash
python3.11 -m venv "/absolute/path/to/inspection-env"
"/absolute/path/to/inspection-env/bin/python" -c "import sys; print(sys.executable); print(sys.version)"

On Windows, use the environment's Scripts/python.exe. If installed uv is the best available path, make its runtime acquisition explicit:

bash
uv venv --seed --python 3.11 "/absolute/path/to/inspection-env"
"/absolute/path/to/inspection-env/bin/python" -c "import sys; print(sys.executable); print(sys.version)"

If uv would download a Python runtime, treat that as runtime installation and apply the authorization rule from step 3.

Do not rely on shell activation. For subsequent Conda/micromamba commands use run --prefix; for venv/uv use the environment Python's absolute path. This prevents commands from accidentally using DisCo's or the user's current Python.

5. Install the Minimum Required Package Set

Execute one meaningful install phase at a time, with a finite terminal-tool timeout and observable output. A typical new Conda environment uses commands like:

bash
conda run --prefix "/absolute/path/to/inspection-env" python -m pip install -e "/absolute/path/to/repo"

For venv/uv:

bash
"/absolute/path/to/inspection-env/bin/python" -m pip install -e "/absolute/path/to/repo"

Add only evidence-backed requirements or extras:

bash
conda run --prefix "/absolute/path/to/inspection-env" python -m pip install -r "/absolute/path/to/repo/requirements-inference.txt"
conda run --prefix "/absolute/path/to/inspection-env" python -m pip install -e "/absolute/path/to/repo[inference]"

Follow repo documentation when backend foundations such as torch, JAX, TensorFlow, or a compiler/toolkit must be installed first. Do not reflexively upgrade pip/setuptools/wheel or broad dependency sets, especially in an existing environment; do so only when repo/build evidence requires it.

For every required backend candidate, install its evidence-backed dependency variant into the prefix assigned by the backend plan. Do not install a CPU-only torch/JAX/TensorFlow build into a required CUDA/ROCm environment and then count package importability as backend coverage. Conversely, do not install GPU stacks for optional or excluded candidates merely because hardware is visible.

Do not combine creation, multiple installs, and verification into one large shell command. After each phase, record the exact command, exit status, elapsed time, and relevant output in the private report. On failure, diagnose the specific phase and adjust the next visible command rather than rerunning an opaque all-in-one installer.

If metadata resolution or downloads stall, interrupt the command, distinguish network delay from compilation, and use the network guidance in references/install-planning.md. Proxy or VPN details supplied by the user are local execution context only; never bake them into the skill or generated package content.

6. Verify from the Environment Python

Read references/verification-and-failure-report.md. At minimum, run direct commands for:

  • Environment Python identity and version.
  • python -m pip check.
  • Distribution metadata from the environment.
  • Imports using the environment Python, preferably from outside the checkout and with -I when compatible, so the current directory or user site cannot make a broken install look healthy.
  • Relevant CLI/API smoke checks.
  • A preparation smoke check for every required backend in the backend plan, using the prefix assigned to that backend. For CUDA/ROCm/MPS or a vendor accelerator, prove framework/backend availability and a minimal device operation when safe.

Examples for Conda:

bash
conda run --prefix "/absolute/path/to/inspection-env" python -m pip check
conda run --prefix "/absolute/path/to/inspection-env" python -I -c "from importlib.metadata import version; print(version('distribution-name'))"
conda run --prefix "/absolute/path/to/inspection-env" python -I -c "import package_name; print(package_name.__file__)"

Equivalent venv commands must use the environment Python's absolute path. A successful environment creation or pip install is not verification. Fix and rerun every applicable failed gate before an ok handoff. Do not run the repo-native cases yet; record which final cases this prepared environment must support after skill integration.

7. Write the Report and Handoff

Write repo_env_report.json from the actual command results. Do not invent missing output or mark skipped gates as passed. Include at least:

json
{
  "schemaVersion": 2,
  "status": "ok",
  "readiness": {
    "skillDrafting": true,
    "fullBackendVerification": true,
    "backendGateEligibleForAutoImport": true
  },
  "repositoryPath": "/absolute/path/to/repo",
  "environment": {
    "manager": "conda",
    "prefix": "/absolute/path/to/inspection-env",
    "pythonExecutable": "/absolute/path/to/inspection-env/bin/python",
    "backends": ["cpu", "cuda"]
  },
  "workflowEnvironment": {
    "executable": "/absolute/path/to/inspection-env/bin/python",
    "cwd": "/absolute/path/to/repo",
    "package": "distribution-name",
    "version": "1.2.3"
  },
  "additionalEnvironments": [],
  "backendPlan": {
    "required": [
      {
        "backend": "cuda",
        "capability": "GPU inference",
        "cpuSubstitute": "none",
        "hostVerdict": "compatible",
        "dependencyVariant": "repo cuda extra plus compatible framework wheel",
        "preparationSmoke": "passed",
        "finalNativeCandidates": ["examples/infer.py"]
      }
    ],
    "optional": [],
    "alternative": []
  },
  "installPlan": {
    "python": "3.11",
    "includedScope": [],
    "excludedScope": [],
    "installedGroups": [],
    "skippedGroups": []
  },
  "commands": [],
  "verification": {},
  "warnings": [],
  "failures": []
}

environment.pythonExecutable remains private report evidence. It is not the object to pass directly to workflow agent(). The caller must use the canonical workflowEnvironment object with executable, optional cwd, distribution package, and exact version.

Use status: "ok" only when every required preparation/backend gate passes. Use status: "partial" only after explicit user acceptance, with skillDrafting: true, fullBackendVerification: false, and backendGateEligibleForAutoImport: false. Use status: "failed" when a required gate remains unresolved without that acceptance. The commands entries should identify phase, command, exit status, and concise stdout/stderr evidence; do not put credentials or secret-bearing environment variables in the report.

For every handoff, provide:

text
Environment status: <ok|partial|failed>
Ready for skill drafting: <yes|no>
Ready for full backend verification: <yes|no>
Backend gate eligible for auto-import: <yes|no>
Repository path: <repo_path>
Environment manager: <conda|micromamba|venv|uv>
Environment prefix: <environment_prefix>
Additional environment(s): <prefix/backend or none>
Temporary inspection Python: <python_executable>
Workflow environment: {"executable":"<python_executable>","cwd":"<repo_path>","package":"<distribution_name>","version":"<verified_version>"}
Installed package name(s): <distribution names>
Verified import(s): <modules>
Verification report: <repo_env_report.json>
Required backend verdict(s): <backend: preparation smoke passed/blocked>
Final native backend case(s): <candidate ids to run after skill integration>
Accepted partial limitation: <exact user-accepted block or none>
Additional notes: <extras installed, skipped unsafe checks, limitations>

create-repo-skill may continue normally from ok. It may continue drafting from partial only after preserving the accepted backend block and disabling auto-import. It must not continue from failed without repair or an explicitly narrowed extraction scope.

Non-Negotiables

  • Execute environment creation, package installation, and verification as explicit terminal commands; do not route them through a bundled wrapper.
  • Never install into or mutate Conda base.
  • Never use DisCo's current Python as the target environment unless the user explicitly requests and authorizes that mutation.
  • Never delete or recreate an existing prefix without explicit authorization.
  • Never mutate a user-provided environment in a potentially breaking way without authorization; use a new private prefix when permitted.
  • Never install broad extras, dev requirements, or backend packages unrelated to the confirmed extraction scope.
  • Never call a CPU-only environment ok for a required CUDA/ROCm/MPS/vendor capability whose CPU substitute is partial or none.
  • Never silently downgrade a required backend candidate to optional because hardware, wheels, drivers, or toolkits are unavailable.
  • Never mark a partial environment eligible for auto-import. Preserve the required-backend block for final native verification and informed user acceptance.
  • Never rely only on shell activation or an unqualified python/pip after environment creation.
  • Never treat successful creation or installation as proof of usability.
  • Never hide a failed or skipped verification gate in an ok report.
  • Never wait indefinitely on a stalled resolver, download, or build. Use finite timeouts, retain useful failure evidence, and diagnose before retrying.
  • Never copy private environment paths, proxy details, command logs, or setup reports into the generated public repo skill.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Prepare Repo Skill Env AI skill do?

Create, install, and prove the minimum backend-aware Python inspection environment set for a local repository before create-repo-skill. Use when a repo package must be installed into new or existing Conda, micromamba, uv, or venv environments; when selected native tests/examples require CPU, CUDA, ROCm, MPS, or vendor accelerator dependencies; when a broken inspection environment needs diagnosis; or when hardware/backend compatibility must be verified. Consume the confirmed extraction scope and backend verification plan, then run explicit terminal commands instead of delegating environment...

Why use Prepare Repo Skill Env on TypingMind?

Because you install it once and use it with any model. Prepare Repo Skill Env is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Prepare Repo Skill Env in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/VectorSpaceLab/AREX-Skill/tree/main/cli/packages/coding-agent/src/disco/skills/prepare-repo-skill-env. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Prepare Repo Skill Env?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Prepare Repo Skill Env?

As many as you like. As long as a model supports skills, you can use Prepare Repo Skill Env with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Prepare Repo Skill Env AI skill free?

Yes. It is published on GitHub by VectorSpaceLab under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇