agentsclimarketplace

Pi iteration workflow

Skill ralvarezdev/ralvaskills/skills/personal/pi-iteration-workflow

Edit-test workflow for the voldemorbot robot codebase — Windows-to-Pi SSH deploy loop, pixi/ROS2 rebuild triggers, flaky-WiFi survival via screen, PowerShell SSH quoting pitfalls, sudo caching on the Pi Zero. Use when pushing platform/robot changes to hardware, restarting the robot service, or a Pi SSH session misbehaves.From its SKILL.md

Install
npx -y skills add ralvarezdev/ralvaskills --skill pi-iteration-workflow

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.0 KB, 959 tokens by cl100k_base, as published. Nobody here has run it

Pi Iteration Workflow

Fast loop for editing platform/robot code on Windows and testing it live on real hardware over SSH. Companion to ros2-architect for the ROS2/Pixi workspace conventions this loop deploys — this skill owns the deploy mechanics, not the workspace architecture. Full host table and command sequences in RECIPES.md.

1. Access

  • Prefer rpi-5-direct (192.168.250.2, direct Ethernet) over WiFi aliases or the Cloudflare tunnel — the tunnel is often broken/unauthenticated and shouldn't be relied on. Full alias table in RECIPES.md.
  • Account is ralvarezdev, not pi, on both boards. Identity file: D:\Secrets\ssh\raspberrypi\id_ed25519_ralvarezdev.
  • Pi 5 has passwordless sudo; the Pi Zero does not. Any sudo command touching the Pi Zero needs an interactive password — run those in the user's own terminal, never through a non-interactive tool call.
  • mDNS (.local) resolution flakes on this network. Fall back to the raw IP with an explicit -i — the raw IP doesn't match the ~/.ssh/config Host pattern, so the identity file isn't picked up automatically.

2. The edit-test loop

  1. Edit platform/robot/... locally on Windows.
  2. Commit + push to master.
  3. cd ~/voldemorbot && git pull on the target Pi.
  4. pixi.toml/pixi.lock changed → ~/.pixi/bin/pixi install -e dev.
  5. Any ros2_ws/src source changed → ~/.pixi/bin/pixi run -e dev build-ws. Editing source alone does nothing — this step is what actually installs launch files and console_scripts.
  6. Restart the service: sudo systemctl restart voldemorbot-pi-zero.service (or -pi5).
  7. Verify it stuck with systemctl status ... --no-pager -l, then journalctl -u ... --since 'HH:MM:SS' --no-pager -l for the actual node output — status alone truncates it.

3. Regenerating pixi.lock

Always lock on the Pi 5, never Windows — Windows can't cross-build several aarch64 conda-forge sdists (e.g. netifaces) and pixi lock just hangs. The Pi 5 has 16GB RAM and is the real target arch, so it resolves cleanly and fast. Full lock-and-sync-back sequence in RECIPES.md.

4. Surviving a flaky connection

WiFi/mDNS on this network drops mid-session often enough that anything long-running (pixi install fetching packages, a colcon build) must run inside screen, not foreground SSH — the process then survives the disconnect independent of the SSH session. Detach with Ctrl+A D (not Ctrl+C); reattach with screen -d -r work (the -d force-detaches a stale "Attached" state a plain -r would refuse). /tmp is wiped on every reboot, so anything staged there needs re-copying after one. Command sequence in RECIPES.md.

5. PowerShell SSH gotcha

Don't build one SSH command string with nested double-quotes and | for PowerShell to parse — pipe characters get read as PowerShell's own pipeline operator mid-string, and \" escaping doesn't survive it. Instead, ssh -t into the box with no trailing command, then run the actual multi-line command block directly in the resulting Pi shell.

6. Sudo credential caching

A successful interactive sudo on the Pi Zero caches for ~15 minutes (/run/sudo/ts/<uid>), so a sudo systemctl restart ... issued non-interactively shortly after will succeed silently. Don't assume the window is still open, though — if sudo reports "a password is required," hand the command back to the user to run interactively rather than retrying it yourself.

What ships with it: 1 file

1.4 KB alongside SKILL.md

Gives 0 of the 12 instructions most test skills give in 959 tokens

Counted across 964 of the 1,571 authors here whose files we hold, read 2026-08-07

  • Close the browser when donein 55 of 964, across 12 files
  • Wait for network idle statein 51 of 964, across 6 files
  • Launch Chromium in headless modein 49 of 964, across 6 files
  • Use descriptive selectors for elementsin 49 of 964, across 6 files
  • Run provided scripts with help flag firstin 49 of 964, across 6 files
  • Add appropriate explicit waitsin 48 of 964, across 5 files
  • Use bundled scripts as black boxesin 46 of 964, across 3 files
  • Do not read script source codein 46 of 964, across 3 files
  • Use sync playwright for scriptsin 46 of 964, across 3 files
  • Inspect dom before executing actionsin 46 of 964, across 3 files
  • Run the full test suitein 37 of 964
  • Write the failing test firstin 29 of 964, across 23 files

Said here and by no other author read

  • prefer the direct ethernet host alias
  • pull the repository after pushing changes
  • run pixi install when the lockfile changes
  • run the workspace build when source changes
  • restart the systemd service after building
  • verify deployment using service status and logs

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 326,851. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.