Agent skill · Audited from source
Cloud Uploader
skill · bitwize-music-studio/claude-ai-music-skillsCC0-1.0 licenceAudited 29 Oct 2026 · source 3e049bfcc994
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 3e049bfcc994 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Uploads promo videos and content to Cloudflare R2 or AWS S3. Use when the user wants to host promo content for social media or distribution.
Cite
Cite this page
ModelsAtlas. “Cloud Uploader (bitwize-music-studio/claude-ai-music-skills)”. Retrieved 29 Oct 2026. https://modelsatlas.com/skills/bitwize-music-studio/cloud-uploader
Trust audit
Audit 0.4.1 · source read 29 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha 3e049bfcc994 · 29 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherbitwize-music-studio GitHub organizationOwner of the repository this skill is read from
- Source folderbitwize-music-studio/claude-ai-music-skills/skills/cloud-uploaderThe exact folder we audited
- LicenceCC0-1.0As the repository states it
- Commit pinned for this verdict3e049bfcc994A new audit runs when the source changes
- Repository statusNot archivedPushed today
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Uploads promo videos and content to Cloudflare R2 or AWS S3. Use when the user wants to host promo content for social media or distribution.
---
name: cloud-uploader
description: Uploads promo videos and content to Cloudflare R2 or AWS S3. Use when the user wants to host promo content for social media or distribution.
model: sonnet
effort: low
prerequisites:
- promo-director
allowed-tools:
- Read
- Bash
- Glob
requirements:
python:
- boto3
---
# Cloud Uploader Skill
Upload promo videos and other album content to cloud storage (Cloudflare R2 or AWS S3).
## Purpose
After generating promo videos with `/bitwize-music:promo-director`, upload them to cloud storage for:
- Hosting on websites
- Sharing via direct links
- CDN distribution
- Backup and archival
## When to Use
- After promo videos generated, user wants to upload to cloud
- User says "upload promos to R2" or "upload to S3"
- User says "upload promo videos for [album]"
- Manual invocation only (not automatic)
## Position in Workflow
```
Generate → Master → Promo Videos → **[Cloud Upload]** → Release
```
Optional step after promo-director, before release-director.
## Prerequisites
### Cloud Configuration
Cloud credentials must be configured in `~/.bitwize-music/config.yaml`:
```yaml
cloud:
enabled: true
provider: "r2" # or "s3"
# For Cloudflare R2
r2:
account_id: "your-account-id"
access_key_id: "your-access-key"
secret_access_key: "your-secret-key"
bucket: "promo-videos"
# For AWS S3
s3:
region: "us-west-2"
access_key_id: "your-access-key"
secret_access_key: "your-secret-key"
bucket: "promo-videos"
```
See `${CLAUDE_PLUGIN_ROOT}/reference/cloud/setup-guide.md` for detailed setup instructions.
### Required Files
- Promo videos generated (run `/bitwize-music:promo-director` first)
- Located at: `{audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/`
- Album sampler at: `{audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4`
### Python Dependencies
```bash
# If using the shared venv (recommended)
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
# Or install separately
pip install boto3
```
The upload script uses `~/.bitwize-music/venv` if available, otherwise falls back to system Python.
## Workflow
### 1. Verify Prerequisites
**Check config:**
```bash
cat ~/.bitwize-music/config.yaml | grep -A 20 "cloud:"
```
Verify:
- `cloud.enabled: true`
- Provider credentials configured (r2 or s3)
- Bucket name set
**Check promo videos exist:**
```bash
ls {audio_root}/artists/{artist}/albums/{genre}/{album}/promo_videos/
ls {audio_root}/artists/{artist}/albums/{genre}/{album}/album_sampler.mp4
```
If missing:
```
Error: Promo videos not found.
Generate with: /bitwize-music:promo-director {album}
```
### 2. Get Python Command
**Call `get_python_command()` first** to get the venv Python path and plugin root. Use these for all bash invocations below.
```
PYTHON="{python from get_python_command}"
PLUGIN_DIR="{plugin_root from get_python_command}"
```
### 3. Preview Upload (Dry Run)
Preview first:
```bash
$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --dry-run
```
Output shows:
- Provider and bucket
- Files to upload
- S3 keys (paths in bucket)
- File sizes
### 4. Upload Files
**Upload all (promos + sampler):**
```bash
$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album}
```
**Upload only track promos:**
```bash
$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --type promos
```
**Upload only album sampler:**
```bash
$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --type sampler
```
**Upload with public access:**
```bash
$PYTHON "$PLUGIN_DIR/tools/cloud/upload_to_cloud.py" {album} --public
```
### 5. Verify Upload
**For R2:**
- Check Cloudflare dashboard → R2 → Your bucket
- Files should appear under `{artist}/{album}/`
**For S3:**
- Check AWS Console → S3 → Your bucket
- Or use AWS CLI: `aws s3 ls s3://{bucket}/{artist}/{album}/`
### 5. Report Results
```
## Cloud Upload Complete
**Provider:** R2 (or S3)
**Bucket:** {bucket}
**Album:** {album}
**Uploaded Files:**
- {artist}/{album}/promos/01-track_promo.mp4
- {artist}/{album}/promos/02-track_promo.mp4
- ...
- {artist}/{album}/promos/album_sampler.mp4
**Total:** 11 files, 125.4 MB
**Next Steps:**
1. Verify files in cloud dashboard
2. If public: Test URLs work
3. Continue to release: /bitwize-music:release-director {album}
```
## Upload Path Structure
**IMPORTANT: Cloud paths are FLAT - no genre folder.**
The cloud path structure is different from the local content structure:
| Location | Path Structure |
|----------|----------------|
| Local content | `{content_root}/artists/{artist}/albums/{genre}/{album}/` |
| Local audio | `{audio_root}/artists/{artist}/albums/{genre}/{album}/` |
| **Cloud** | `{artist}/{album}/` (no genre!) |
Files are organized in the bucket as:
```
{bucket}/
└── {artist}/
└── {album}/
└── promos/
├── 01-track_promo.mp4
├── 02-track_promo.mp4
├── ...
└── album_sampler.mp4
```
**Example for album "my-album" by "bitwize" in rock genre:**
- Local: `~/music/artists/bitwize/albums/rock/my-album/`
- Cloud: `bitwize/my-album/promos/` (NOT `bitwize/albums/rock/my-album/`)
## Command Options
| Option | Description |
|--------|-------------|
| `--type promos` | Upload only track promo videos |
| `--type sampler` | Upload only album sampler |
| `--type all` | Upload both (default) |
| `--dry-run` | Preview without uploading |
| `--public` | Set files as public-read |
| `--audio-root PATH` | Override audio_root from config |
## Invocation Examples
**Basic upload:**
```
/bitwize-music:cloud-uploader my-album
```
**Preview only:**
```
/bitwize-music:cloud-uploader my-album --dry-run
```
**Upload promos only:**
```
/bitwize-music:cloud-uploader my-album --type promos
```
**Upload with public access:**
```
/bitwize-music:cloud-uploader my-album --public
```
## Error Handling
**"Cloud uploads not enabled"**
- Add `cloud.enabled: true` to config
- SeeExcerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 3e049bf
pip install boto3
git clone https://github.com/bitwize-music-studio/claude-ai-music-skills git -C claude-ai-music-skills checkout 3e049bfcc994
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 3e049bfcc994 only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
3e049bfcc994
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/bitwize-music-studio/cloud-uploader/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
bitwize-music-studio/claude-ai-music-skills
Searches and retrieves documents from free public sources using automated browser navigation. Use when research needs primary source documents like court filings, government reports, or public records.
bitwize-music-studio/claude-ai-music-skills
Scans lyrics for explicit content and verifies that explicit flags match actual content. Use before Suno generation or release to ensure accurate content ratings.
bitwize-music-studio/claude-ai-music-skills
Shows available skills, common workflows, and quick reference for the plugin. Use when the user asks for help, what skills are available, or how to do something.
bitwize-music-studio/claude-ai-music-skills
Places album art files in the correct audio and content directory locations. Use when the user has generated or downloaded album artwork that needs to be saved.
bitwize-music-studio/claude-ai-music-skills
Moves audio files to the correct album location with proper path structure. Use when the user has downloaded WAV files from Suno or other sources that need to be organized.
bitwize-music-studio/claude-ai-music-skills
Moves track markdown files to the correct album location. Use when the user has track files in Downloads or other locations that need to be placed in an album.
Add this badge to your README
[](https://modelsatlas.com/skills/bitwize-music-studio/cloud-uploader/)
<a href="https://modelsatlas.com/skills/bitwize-music-studio/cloud-uploader/"><img src="https://modelsatlas.com/skills/bitwize-music-studio/cloud-uploader/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about Cloud Uploader
What does the Cloud Uploader skill do?
Is Cloud Uploader safe to install?
What can Cloud Uploader access on my machine?
How current is this page?
Sources
- github.com/bitwize-music-studio/claude-ai-music-skills/tree/main — the audited source at commit 3e049bfcc994 and every finding aboveObserved · 29 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Cloud Uploader skill do?
- Is Cloud Uploader safe to install?
- What can Cloud Uploader access on my machine?