pixi-workspace
Skill4 starsChanged 34 days agoCC0-1.0View on GitHub
Berkeley Humanoids pixi + ROS 2 workspace conventions. Use when creating, editing, or reviewing pixi.toml manifests, pixi tasks, or workspace scripts (activate, doctor, canup).
- Reads credentials
- Deletes or force-pushes
1 other project uses a version of this.
Adopted by
Most recently taken up by
- berkeley-humanoids/skillsword for word, first seen Oct 9, 2026
Other versions1 project uses a version of this.
Word for word · 1
- berkeley-humanoids/skills★ 4100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- clean-codingSkill
- github-workflowSkill
- grounded-researchSkill
- paper-figuresSkill
- research-code-validationSkill
- robotics-conventionsSkill
- ros2-conventionsSkill
- ste-writingSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 0 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Every task carries description = "…": pixi task list is the menu.
- Very specific: line 98
No rosdep, no apt — pixi.toml is the dependency source of truth.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Pixi Workspace
Every Berkeley Humanoids pixi workspace exposes the same pixi task interface: a universal maintenance core plus a reserved vocabulary for the deployment and utility tasks each workspace defines. Tasks are thin wrappers over canonical commands (ros2 launch/run, colcon), never a replacement layer; everything keeps working verbatim inside pixi shell.
General Guideline
- Every task carries
description = "…":pixi task listis the menu._-prefixed tasks are hidden plumbing. - Launch-wrapping tasks are arg-less command strings so trailing
key:=valueforwards verbatim. Don't use typedargson them. - No deployment or utility task may auto-build — a hardware bringup must never trigger a surprise rebuild. Only
buildchainssetup. If a prerequisite is missing, print an error that says how to fix it. - Where a new entry point goes (first rule that matches):
- operates on the workspace (fetch/build/verify) → maintenance task, universal names only;
- everyday robot scenario or utility → workspace task (reserved vocabulary where it applies, free kebab-case otherwise);
- needs root / mutates host state (CAN buses, kernel) →
scripts/*.shrun with explicitsudo, never a task; - rarely used / one-shot → no task; document the canonical command (
pixi run ros2 …orpixi shellthenros2 …).
- Forbidden names:
install/shell(shadow pixi verbs),run/start(redundant next to the vocabulary),launch-*prefixes, colon namespacing (build:all), same-name tasks in multiple environments.
Maintenance Tasks
The universal core — every developer-facing workspace provides these five, names and semantics reserved:
| Task | Meaning | Rules |
setup | fetch/prepare sources beyond pixi itself (vcs import, fetch scripts) | idempotent and cached (canonical shape below); safe to re-run; chained by build |
build | build the workspace's default libraries with colcon | depends-on = ["setup"]; style flags come from config/colcon-defaults.yaml, only semantic selection flags (--packages-skip-regex, --packages-up-to) appear inline |
test | run the workspace's tests, linters excluded | colcon test … --ctest-args -LE linter; omit only if the workspace truly has no tests |
clean | wipe the colcon overlay | exactly rm -rf build install log; never touches src/ or .pixi/ |
doctor | workspace health check (scripts/doctor.sh) | checks: workspace root, env active, /opt/ros contamination (hard fail), sources imported, overlay built + sourced, ROS_DOMAIN_ID; warnings for fixable, non-zero for fatal |
Day one is one command: pixi run build (pixi self-heals the env; setup is chained and cached), verified by pixi run doctor.
Archetype-local extras are allowed (with descriptions), never required of other workspaces — dev workspace: build-all (adds the EtherCAT/Prime lane), test-result (singular, matches the colcon verb), lint (the .githooks ament linter set), check (= test + lint), gen-dds, test-dds; buildfarm manifest: setup (hidden _import + _overlay), package, publish — the packaging verb is package, never build*.
Robot Deployment Tasks
Reserved names: a workspace that has the concept must use the name; the stack each name brings up is the workspace's own call (state it in the task description).
| Task | Meaning |
sim / sim-<scene> | bring up the robot stack in simulation — environment only, no policy |
real / real-<scene> | real hardware bringup (pass hardware_config:=, calibration_file:=) |
policy / policy-<task> | prepare + load the control policy against an already-running stack (pass wandb_run_path:= or checkpoint_file:=) |
deploy-sim | one-command sim2sim deployment = bringup + policy in one (pass wandb_run_path:= or checkpoint_file:=) |
deploy-real | one-command real deployment = hardware bringup + policy in one (pass wandb_run_path:= / checkpoint_file:=, hardware_config:=, calibration_file:=) |
viz | live state viewer of a running robot (viewer:=viser default, optionally viewer:=rerun, viewer:=rviz) |
calibrate | run calibration procedure; writes calibration.yaml |
- Grammar:
<scenario>[-<qualifier>], kebab-case, at most one qualifier, encoding only the primary task variant. All secondary parameters stay ROS launch arguments:- Good:
pixi run sim-reach robot:=g1 policy:=latest - Bad:
pixi run sim-unitree-g1-reach-latest
- Good:
- Unqualified = the workspace's default target.
deploy-*wraps a combined launch file — two blocking bringups can't be chained withdepends-on.
Debugging and Utility Tasks
Free kebab-case, verb-first where natural; each is a one-line wrapper over the canonical ros2 run command, so its meaning can't drift from the tool it wraps.
| Task | Meaning |
ping-bus | single-actuator GetDeviceId ping — no Enable, safe on a powered robot |
scan-bus | scan a CAN bus for Robstride device ids (read-only) |
profile-bus | link probe: RTT/jitter (inert) or +lumped delay (PRBS torque) |
Rarely-used companions (the profile report/plot generator, the static URDF inspector, the MIT slider GUI) deliberately have no task — document their canonical ros2 run/launch forms instead.
Environment
- The canonical
setupshape (all three parts required — an uncachedvcs importre-fetches every remote and fails offline; without--skip-existingit resets locally-checked-out branches to pins):
[tasks.setup]
cmd = "vcs import --skip-existing --input <repo>.repos src && mkdir -p build && touch build/.setup-stamp"
inputs = ["<repo>.repos"]
outputs = ["build/.setup-stamp"]
description = "Import third-party source deps — idempotent, cached on the .repos file"- Overlay sourcing via a guarded activation script (POSIX
setup.sh, notsetup.bash), never a bareinstall/setup.*entry:
[activation]
scripts = ["scripts/activate.sh"]if [ -f "$PIXI_PROJECT_ROOT/install/setup.sh" ]; then
. "$PIXI_PROJECT_ROOT/install/setup.sh"
fi- Colcon style flags (
--symlink-install, compile-commands) go inconfig/colcon-defaults.yamlviaCOLCON_DEFAULTS_FILEin[activation.env], so manualcolcon build==pixi run build. [activation.env]always setsRCUTILS_COLORIZED_OUTPUT=1+ the console format; deployment workspaces pin their robot'sROS_DOMAIN_ID, the dev workspace leaves it unpinned.- Channels:
https://prefix.dev/robostack-jazzybeforehttps://prefix.dev/conda-forge(binary consumers puthttps://prefix.dev/berkeley-humanoidsfirst). Single default environment; add features/environments only when dependencies genuinely diverge. - No rosdep, no apt —
pixi.tomlis the dependency source of truth.
Gotchas (verified the hard way)
- ament_python console scripts install to
lib/<pkg>/(ros2 runlocation), never onPATH. If a CLI ever needs to be onPATH, also install a shim viadata_files('bin', [...])— colcon then emits apath.shhook for the package. - README quickstarts lead with the one-command tasks, then point at
pixi task listinstead of duplicating command tables.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

