Research Init
brycewang-stanford/Auto-Empirical-Research-Skills
Scaffold a new research project with full reproducibility infrastructure in R and/or Python.
Sets up and maintains AzureML-ready Python projects as uv workspaces with devcontainers, a Makefile and job YAML, so local runs match cloud jobs and experiments stay reproducible.
$ npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Kilo-Org/kilo-marketplace azureml-scaffolding --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/azureml-scaffolding .claude/skills/azureml-scaffolding && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "azureml-scaffolding" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffolding into .claude/skills/azureml-scaffolding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azureml-scaffolding", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffoldingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Kilo-Org/kilo-marketplace azureml-scaffolding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/azureml-scaffolding .agents/skills/azureml-scaffolding && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "azureml-scaffolding" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffolding into .agents/skills/azureml-scaffolding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azureml-scaffolding", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Kilo-Org/kilo-marketplace azureml-scaffolding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/azureml-scaffolding .cursor/skills/azureml-scaffolding && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "azureml-scaffolding" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffolding into .cursor/skills/azureml-scaffolding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azureml-scaffolding", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Kilo-Org/kilo-marketplace.git --path skills/azureml-scaffolding--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Kilo-Org/kilo-marketplace azureml-scaffolding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/azureml-scaffolding .gemini/skills/azureml-scaffolding && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "azureml-scaffolding" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffolding into .gemini/skills/azureml-scaffolding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azureml-scaffolding", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Kilo-Org/kilo-marketplace azureml-scaffoldingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/azureml-scaffolding .github/skills/azureml-scaffolding && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "azureml-scaffolding" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffolding into .github/skills/azureml-scaffolding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azureml-scaffolding", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Kilo-Org/kilo-marketplace azureml-scaffolding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Kilo-Org/kilo-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/azureml-scaffolding .opencode/skills/azureml-scaffolding && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "azureml-scaffolding" agent skill from https://github.com/Kilo-Org/kilo-marketplace/tree/main/skills/azureml-scaffolding into .opencode/skills/azureml-scaffolding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "azureml-scaffolding", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
azureml-scaffoldingSets up and maintains AzureML-ready Python projects as uv workspaces with devcontainers, a Makefile and job YAML, so local runs match cloud jobs and experiments stay reproducible.
This skill gives AI and ML projects a reproducible structure built for AzureML cloud execution. It works from three layers that each depend only on the inner ones: code as pure Python with no platform dependencies, specification as job YAML that sits next to the code it describes, and orchestration through a Makefile or CI that knows about specs but nothing about code internals. Code that imports or shells out to platform-specific tools has escaped its layer, and the skill says to push that concern outward.
Everything is a package, a uv workspace member with its own pyproject.toml, build system, src layout, tests and explicitly declared dependencies, including other workspace packages, so undeclared imports fail by design. Packages are for computation only, reading from paths and writing to paths, while registering assets, deploying models or downloading data belongs to orchestration. Bundled assets include a devcontainer with a Dockerfile, a Makefile, a root pyproject.toml, an AGENTS.md and an example package with an aml-job.yaml. The skill also covers local and cloud execution, job submission, pipelines, datasets and linting.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit ff51758. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
makeuvFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.astral.shlearn.microsoft.compackaging.python.orgcontainers.devdocs.docker.commdformat.readthedocs.iopre-commit.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
AzureML Project Scaffolding loads about 3.1k tokens when it runs, and up to ~7.3k if it reads all its reference files. Until then it costs about 137 tokens; SKILL.md has 1,326 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
devcontainer.json), and `.env`.1. **Create user `.env.local`.** Copy from `.env` and substitute placeholders.├── .env # Azure config (safe defaults, committed)- **`.env`** is committed with empty/safe defaults. Per-developer overrides go in `.env.local`1. **Ensure `.env` / `.env.local` are populated.** Cloud submission requires valid Azureup, workspace). Ask the human to verify `.env.local` hasAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Kilo-Org/kilo-marketplace at commit ff51758, republished under its MIT licence (© Kilo-Org). 1,326 words, ~3,114 tokens.
.claude/skills/azureml-scaffolding/SKILL.md (or your agent's skills folder). This skill also uses 23 other files; get the full folder from GitHub.A battle-tested structure for AI projects that require reproducible experimentation, leveraging AzureML for cloud execution. It ensures reproducibility from day one without sacrificing the path to production — and without breaking the ability to keep experimenting once you're there. Code, environments, specs, and dependencies are wired so that what runs locally runs on AzureML, with no surprises.
These principles are foundational. Every decision about project structure, tooling, or workflow must be evaluated against them.
Three layers — Each layer depends only on inner layers:
Litmus test — If Python code imports or shells out to anything platform-specific (az,
mlflow.register_model, endpoint APIs), it has escaped the Code layer. If a job YAML knows about
scheduling, version registration, or what happens after the job finishes, it has escaped the
Specification layer. Push the concern up to the next layer. Every generated or modified file must
respect this layering — never merge concerns across layers even when it seems expedient.
One mental model — Everything is a package: a uv workspace member with its
own pyproject.toml, [build-system],
src layout, source, tests, and dependencies. Same structure, same commands,
everywhere.
src/my_package/
├── pyproject.toml # deps, metadata, [build-system]
├── aml-job.yaml # aml spec (if executable, optional)
├── src/my_package/ # package source (src layout)
│ ├── __init__.py
│ └── __main__.py # entry point (if executable, optional)
└── tests/Same structure for every package — no special cases, nothing to restructure later. A package is for computation — read from paths, do work, write to paths. If a task doesn't compute (registering assets, deploying models, downloading data via platform tools), it isn't a package — it's orchestration.
Explicit deps — Each package declares its own dependencies — including other workspace
packages via [tool.uv.sources] — in its pyproject.toml. Runs are isolated per
package, so undeclared imports fail by design. This keeps cloud jobs lean and makes deploying a
subset of packages straightforward.
Colocation — Everything needed to understand and run a piece of work lives together in one folder. Easy to find, easy to reason about.
Run anywhere the same — Same command, same lockfile, same result — whether on your laptop, a colleague's machine, a VM, or AzureML. One Dockerfile serves as both devcontainer and cloud runner. Python deps installed at runtime by uv, not baked in.
Complexity must be earned — Start with the simplest correct thing. Add structure only when a specific need demands it. But respect what exists: if the project has grown beyond the basics, that complexity was earned and should not be regressed without understanding why it was introduced.
A lean Makefile orchestrates everything: self-documenting (make help), the single entry point
for running, testing, and managing the project. All packages are uv workspace members resolved by
one lockfile at the root. Keep one target per concept (run/test/aml); avoid package-specific aliases
unless explicitly requested.
A complete minimal project lives in assets/ — use it as the reference for every file's exact
content and structure. Contents match project tree outlined below and package trees outlined above.
pyproject.toml (workspace
declaration, dev deps only), Makefile, AGENTS.md, .devcontainer/ (Dockerfile +
devcontainer.json), and .env.src/ with its own pyproject.toml,
src/<name>/ (with __init__.py and __main__.py), and tests/. Adapt from the mypkg
package in assets/ and rename — grep for mypkg and replace with your package name everywhere
(pyproject.toml, imports, etc.). Treat __main__.py as starter sample logic..env.local. Copy from .env and substitute placeholders.make sync — this creates uv.lock. Commit it.<project>/
├── .devcontainer/ # Dockerfile + devcontainer.json
├── .env # Azure config (safe defaults, committed)
├── AGENTS.md # project context for AI agents
├── Makefile # single entry point
├── pyproject.toml # workspace root, dev deps only
├── uv.lock # committed — reproducibility anchor
└── src/
└── <package>/ # one package to startAll three must exit 0 before proceeding. Fix and re-run from make sync until they do.
make sync # uv.lock exists at root
make run pkg=<package_name> # produces expected stdout/files
make test # all tests passpyproject.toml declares
members = ["src/*"] and has no runtime deps — only dev tools in [dependency-groups].uv.lock is committed. Created/updated automatically by uv run and make sync
(which runs uv sync --all-packages under the hood). Always use make sync instead of bare
uv sync — the flag ensures every workspace member is installed, so make test and imports work.uv-managed) → pyproject.toml / uv.lock.Dockerfile.ml) → .devcontainer/devcontainer.json
features..env is committed with empty/safe defaults. Per-developer overrides go in .env.local
(gitignored).target-version and
type-checker Python version) aligned with requires-python in root and package pyproject.toml
files.Map each independently runnable piece to a package under src/, extract its deps into a
pyproject.toml, and follow the same steps above. Get one package working end-to-end first, then
migrate the rest. If clashes exist (e.g., existing AGENTS.md), make sure to merge gracefully.
Keep cloud as a separate step: first make run, then make aml to submit to AzureML.
aml-job.yaml to the package folder if it doesn't exist yet. Copy from
./assets/src/mypkg/aml-job.yaml and rename mypkg references. For the full schema, see the
$schema link inside the file.__main__.py. The command, inputs in aml-job.yaml must match the
current entry point and any arguments it expects. If __main__.py changed since the YAML was
created, update the YAML to reflect the current state..env / .env.local are populated. Cloud submission requires valid Azure
configuration (subscription, resource group, workspace). Ask the human to verify .env.local has
all values filled in before proceeding.<azure-ml-cluster-name>), dataset references, etc.make aml pkg=<package_name> from the project root.Ask the human to confirm in Azure ML Studio: job completed, tags/metrics visible, outputs/
contains expected artifacts.
This skill covers what runs inside a job and how to submit it. What happens after — registering outputs as versioned data or model assets, deploying models to endpoints, scheduling recurring runs — is orchestration that lives outside the job, typically in CI pipelines or operational scripts. The same layer rule applies: those concerns never leak into Python code or job YAML. How they're implemented varies by project; where they live does not — always the outermost layer.
./assets/src/mypkg/aml-job.yaml: command, inputs, code path, environment build context, compute../assets/src/mypkg/src/mypkg/__main__.py how to persist in AzureML:./outputs = persisted job artifacts.Keep the core scaffold minimal. Add these only when the project needs them. Each reference file
includes an AGENTS.md section — merge it to the project's AGENTS.md when applying the
extension so new agent sessions discover the added capabilities.
runs/ for local runs, cloud-job output
download, and git-linked experiment commits for diff-from-main traceability:
details.© Kilo-Org, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 23 other files (scripts, references, assets) in skills/azureml-scaffolding of Kilo-Org/kilo-marketplace.
Open the folder on GitHubat commit ff51758
AzureML Project Scaffolding next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| AzureML Project Scaffolding this skillKilo-Org/kilo-marketplace | 190 | — | ~3.1k | Automated safety check: Notes | MIT | |
| Research Initbrycewang-stanford/Auto-Empirical-Research-Skills | 4.6k | — | ~839 | Automated safety check: Pass | Custom licence | |
| Flowfile Build and Environment SetupEdwardvaneechoud/Flowfile | 385 | — | ~7.3k | Automated safety check: Notes | MIT | |
| Python Packagingwshobson/agents | 40k | 12 repos | ~911 | Automated safety check: Pass | MIT | |
| Deps Bumplkmeta/txtify | 135 | — | ~585 | Automated safety check: Pass | Apache-2.0 | |
| Sync Dependabot App Depsossf/oss-crs | 165 | — | ~1.7k | Automated safety check: Notes | MIT |
brycewang-stanford/Auto-Empirical-Research-Skills
Scaffold a new research project with full reproducibility infrastructure in R and/or Python.
Edwardvaneechoud/Flowfile
Recreates every Flowfile development and build environment from scratch, with exact version pins and an explanation of what each Makefile target really does.
wshobson/agents
Package and publish Python libraries and CLI tools: project layout, pyproject.toml, build backends, wheels and source distributions, versioning and PyPI releases.
lkmeta/txtify
Safely update Txtify dependencies or resolve Dependabot alerts.
ossf/oss-crs
Read every open Dependabot PR for an application-code dependency (Python pip/uv and JS npm/yarn/pnpm) and carry each version bump over to the local dependency files (requirements.txt…
XiaomiMiMo/MiMo-Code
Sets up Python projects with uv for packages and environments, ruff for linting and formatting, and pyright for type checking, with rules for running everything through uv.
Kilo-Org/kilo-marketplace
Creates, inspects, edits and runs Jupyter notebooks, scaffolding experiment or tutorial notebooks from templates and preferring a Jupyter MCP server over raw JSON edits.
Kilo-Org/kilo-marketplace
Takes a plain-language dashboard request through brand setup, data exploration, planning, an interactive HTML mock and a Tableau implementation spec.
Kilo-Org/kilo-marketplace
Ingest and transform data files (CSV/JSON/Parquet/Arrow IPC) into Elasticsearch with stream processing and custom transforms.
Kilo-Org/kilo-marketplace
A skill your agent uses when arranging Apache NiFi processors, process groups, ports, comments, numbering, crossing connections, dense fan-in/fan-out, or reusable readable canvas layouts.
Kilo-Org/kilo-marketplace
Render Cisco Data Fabric ingest-time routing workflows and Splunk Cloud Platform Ingest Processor setup plans with SPL2 pipelines, source types, destinations, lifecycle handoffs, queue and…
Kilo-Org/kilo-marketplace
Develop and deploy Lakeflow Jobs on Databricks via DABs, Python SDK, or the CLI.
Works with
Categories
Sets up and maintains AzureML-ready Python projects as uv workspaces with devcontainers, a Makefile and job YAML, so local runs match cloud jobs and experiments stay reproducible. This skill gives AI and ML projects a reproducible structure built for AzureML cloud execution. It works from three layers that each depend only on the inner ones: code as pure Python with no platform dependencies, specification as job YAML that sits next to the code it describes, and orchestration through a Makefile or CI that knows about specs but nothing about code internals.
AzureML Project Scaffolding fits situations like: starting a new AzureML-based ML project with a reproducible layout; adding a package and its job YAML to an existing uv workspace; submitting a job to Azure Machine Learning from a Makefile; deciding where platform-specific logic belongs in the project.
Run `npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a claude-code`. Or copy the skill folder (skills/azureml-scaffolding in Kilo-Org/kilo-marketplace) into .claude/skills/azureml-scaffolding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a codex`. Or copy the skill folder (skills/azureml-scaffolding in Kilo-Org/kilo-marketplace) into .agents/skills/azureml-scaffolding in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Kilo-Org/kilo-marketplace --skill azureml-scaffolding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/azureml-scaffolding, .gemini/skills/azureml-scaffolding, .github/skills/azureml-scaffolding and .opencode/skills/azureml-scaffolding in your project.
Going by SKILL.md and its folder, AzureML Project Scaffolding needs Python for the scripts in its folder and the command-line tools its instructions call (make and uv). Our summary lists: uv for Python workspaces; An Azure Machine Learning workspace for cloud jobs.
SKILL.md names 7 domains. As links in the text: docs.astral.sh, learn.microsoft.com, packaging.python.org, containers.dev, docs.docker.com, mdformat.readthedocs.io and pre-commit.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
AzureML Project Scaffolding is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with AzureML Project Scaffolding: Research Init (brycewang-stanford/Auto-Empirical-Research-Skills, 4.6k stars), Flowfile Build and Environment Setup (Edwardvaneechoud/Flowfile, 385 stars), Python Packaging (wshobson/agents, 40k stars) and Deps Bump (lkmeta/txtify, 135 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Kilo-Org (a GitHub organization) maintains it in Kilo-Org/kilo-marketplace, which has 190 GitHub stars. The repository holds 86 skills in this directory. The repository was last updated on September 28, 2026.
Source: Kilo-Org/kilo-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.