Skip to content
Back to skills

Yoyopod Rust Artifact

ASecurity

Manual fallback for fetching CI Rust artifacts onto the Pi (prefer /yoyopod-deploy)

  • 6 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added June 14, 2026
toolsrustgobashdebugginggitdatabase

Works with

  • cli

Security analysis

A100/100

Scanned June 14, 2026

npx -y skills add attmous/yoyopod --skill yoyopod-rust-artifact --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Yoyopod Rust Artifact?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Yoyopod Rust Artifact
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/attmous-yoyopod-rust-artifact/badge)](https://www.skillsdirectory.com/skills/attmous-yoyopod-rust-artifact)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: yoyopod-rust-artifact
description: Manual fallback for fetching CI Rust artifacts onto the Pi (prefer /yoyopod-deploy)
disable-model-invocation: true
allowed-tools:
  - Read
  - Bash(git status:*)
  - Bash(git branch --show-current:*)
  - Bash(git rev-parse:*)
  - Bash(git push:*)
  - Bash(gh run:*)
  - Bash(gh pr:*)
  - Bash(mkdir:*)
  - Bash(chmod:*)
  - Bash(ssh:*)
  - Bash(scp:*)
  - Bash(yoyopod target:*)
---

## Prefer `/yoyopod-deploy`

`yoyopod target deploy` (skill `/yoyopod-deploy`) replaces this entire
flow with a single command. It:

- verifies the worktree is clean and the commit is pushed
- finds the successful CI run for the exact commit
- runs `gh run download` for `yoyopod-rust-device-arm64-<sha>`
- syncs the Pi checkout
- scps + extracts the worker binaries into `device/*/build/`
- restarts `yoyopod-dev.service` and verifies startup

Use this skill only when you need to do part of that flow manually —
for example debugging a half-broken Pi state, swapping a single
artifact, or working around a `gh` CLI auth issue.

## Rule

Rust binaries for hardware validation must come from GitHub Actions
artifacts for the exact commit being tested. Do not run `cargo build`
on the Raspberry Pi Zero 2W unless the user explicitly overrides this
rule.

## Current Rust Artifact Contract

Use the artifact whose suffix equals the exact commit under test, not a
pull request merge SHA:

```bash
yoyopod-rust-device-arm64-<sha>
```

It contains:

```bash
yoyopod-rust-device-arm64-<sha>.tar.gz
```

That tarball extracts an install-ready `device/.../build/...` tree:

| Path inside extracted tree | Purpose |
| --- | --- |
| `device/runtime/build/yoyopod-runtime` | Top-level Rust runtime entrypoint. |
| `device/ui/build/yoyopod-ui-host` | Whisplay UI worker and LVGL renderer. |
| `device/media/build/yoyopod-media-host` | Rust media/mpv worker. |
| `device/voip/build/yoyopod-voip-host` | Rust Liblinphone/SIP worker. |
| `device/network/build/yoyopod-network-host` | Rust SIM7600/PPP/GPS worker. |
| `device/cloud/build/yoyopod-cloud-host` | Rust cloud MQTT worker. |
| `device/power/build/yoyopod-power-host` | Rust PiSugar/power worker. |
| `device/speech/build/yoyopod-speech-host` | Rust speech/Ask worker. |

## Manual Steps (when `/yoyopod-deploy` cannot be used)

1. **Check local git status.** If there are local changes, commit them
   first or stop and ask the user whether this is a debugging exception.

2. **Resolve branch and commit.**

   ```bash
   git branch --show-current
   git rev-parse HEAD
   ```

3. **Push the commit.** Run `git push`. If there is no upstream, run
   `git push -u origin <branch>`.

4. **Find the successful CI run for the exact commit.**

   ```bash
   gh run list --workflow CI --branch <branch> --json databaseId,headSha,status,conclusion --limit 20
   ```

   Use only a run whose `headSha` equals the commit from step 2 and
   whose conclusion is `success`. If the run is still queued or in
   progress, wait. If it failed, inspect the failed job before any
   hardware step.

5. **Download and extract the Rust device bundle locally.**

   ```bash
   mkdir -p .artifacts/rust-device/<sha>
   gh run download <run-id> --name yoyopod-rust-device-arm64-<sha> --dir .artifacts/rust-device/<sha>
   tar -xzf .artifacts/rust-device/<sha>/yoyopod-rust-device-arm64-<sha>.tar.gz -C .artifacts/rust-device/<sha>
   ```

6. **Make sure the Pi dev checkout is on the same commit.**

   ```bash
   yoyopod target mode activate dev
   # then deploy without artifact (this is the simple-case fallback that
   # only re-syncs git state; binaries follow in step 7):
   yoyopod target deploy --sha <sha>
   ```

7. **Install the CI-built Rust binaries on the Pi (only if step 6 did
   not already do it — `yoyopod target deploy` normally does this end
   to end).**

   ```bash
   scp .artifacts/rust-device/<sha>/yoyopod-rust-device-arm64-<sha>.tar.gz <user>@<host>:/tmp/yoyopod-rust-device-arm64-<sha>.tar.gz
   ssh <user>@<host> 'cd /opt/yoyopod-dev/checkout && \
       tar -xzf /tmp/yoyopod-rust-device-arm64-<sha>.tar.gz && \
       chmod +x device/runtime/build/yoyopod-runtime \
                device/ui/build/yoyopod-ui-host \
                device/media/build/yoyopod-media-host \
                device/voip/build/yoyopod-voip-host \
                device/network/build/yoyopod-network-host \
                device/cloud/build/yoyopod-cloud-host \
                device/power/build/yoyopod-power-host \
                device/speech/build/yoyopod-speech-host'
   yoyopod target restart
   ```

8. **Validate.** Automated on-Pi validation returns in Round 2 of the
   CLI rebuild. Until then, validate manually:

   ```bash
   yoyopod target status
   yoyopod target logs --follow
   journalctl -u yoyopod-dev.service -f
   ```

   Exercise the changed surface on the device.

9. **Report exact provenance.** Include the branch, commit SHA, CI run
   ID, artifact names, Pi host, command result, and whether the dev
   service was left running.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.