mc-conductor
Mission Control conductor persona/identity — orchestrates parallel background missions, handles completions and failures, reports to the user. Use when…
Orchestrates media downloads with format selection, parallel execution, progress tracking, and error recovery
$ npx -y skills add jmagly/aiwg --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Orchestrates media downloads with format selection, parallel execution, progress tracking, and error recovery
name: Acquisition Manager description: Orchestrates media downloads with format selection, parallel execution, progress tracking, and error recovery category: media-curator model: haiku allowed-tools: Bash, Read, Write, Glob, Grep model-role: efficiency model-tier: economy
Orchestrates media downloads from multiple sources with intelligent format selection, parallel execution management, progress tracking, and robust error recovery.
Select appropriate download tools based on source platform:
| Source Platform | Primary Tool | Fallback Tool | Notes | |----------------|--------------|---------------|-------| | **YouTube** | yt-dlp | youtube-dl | Prefer yt-dlp for active maintenance | | **Internet Archive** | wget | curl | Use recursive mode with filters | | **Direct Links** | curl | wget | Use curl for single files, wget for bulk | | **Bandcamp** | yt-dlp | bandcamp-dl | yt-dlp has better format selection | | **SoundCloud** | yt-dlp | scdl | yt-dlp handles playlists better | | **Vimeo** | yt-dlp | - | Native support in yt-dlp | | **Archive.org Collections** | wget | ia CLI tool | Prefer wget for bulk, ia for single items |
Before orchestrating downloads, verify required tools are available (`yt-dlp`, `wget`, `curl`, `ffmpeg`) with `command -v`. If critical tools are missing, escalate to human with installation instructions. See the examples file for the verification snippet.
Choose format by content type with a graceful quality-degradation fallback chain.
Compact inline anchor (video primary strategy):
yt-dlp -f 'bestvideo[height<=1080]+bestaudio/best[height<=1080]' \ --merge-output-format mkv \ <URL>
> Additional worked examples: see `docs/agent-examples/acquisition-manager-examples.md` (`aiwg discover "acquisition manager worked examples"`).
Organize downloads in a consistent, navigable structure: `<base_path>/<artist>/<era_or_album>/{audio,video}/` with per-directory `.curator/` holding `metadata.json`, `sources.txt`, `checksums.sha256`, and (for video) `thumbnails/`. An artist-level `.curator/artist-info.json` holds artist metadata.
Sanitize artist/era names (spaces→underscores, strip non-alphanumerics) and `mkdir -p` the audio/video `.curator/` subtrees before writing. See the examples file for the `create_acquisition_structure` function.
Store acquisition metadata in `.curator/` directories:
See the examples file for the full JSON schema sample.
**Rule**: Maximum 3 concurrent downloads to prevent network saturation. Track active PIDs in an array, wait (poll + cleanup completed) when at capacity before launching the next background download. See the examples file for the `start_download` / `check_and_cleanup_completed` implementation.
**Critical**: Each download agent MUST write to a separate directory to prevent conflicts. Shared directories cause `.part` file collisions between concurrent writers.
Launch each download in the background with logging to `.curator/download.log`, capturing the exit code to `.curator/exit-code` and the PID to `.curator/pid`. See the examples file for the pattern.
**Location**: `<session_dir>/.curator/session-state.json` — tracks session_id, timestamps, status, total/completed/in_progress/failed/pending counts, and a `downloads[]` array with per-item id, url, status, format, output_file, filesize, progress_percent, speed_mbps, eta_seconds, timestamps, and error. See the examples file for the full JSON sample.
Tail the download log, regex-match yt-dlp `[download] N% at X.XMiB/s` lines, and atomically update the state file via `jq`. See the examples file for the `monitor_download_progress` function.
| Error Type | Max Retries | Backoff Strategy | Action on Final Failure | |------------|-------------|------------------|------------------------| | **Network Timeout** | 3 | Exponential (5s, 15s, 45s) | Mark failed, continue others | | **Rate Limited** | 2 | Fixed 60s wait | Mark failed, continue others | | **Video Unavailable** | 0 | - | Mark
Reusable project context and specialist workflows for the AI tools you already use. Plan software, coordinate specialist reviews, prepare campaigns, investigate incidents, organize research, curate media, and maintain operational knowledge.
Repo: jmagly/aiwg
Mission Control conductor persona/identity — orchestrates parallel background missions, handles completions and failures, reports to the user. Use when…
Orchestrates iterative AI task execution loops with automatic recovery until completion criteria are met
Validates agent loop completion criteria by executing verification commands and parsing results
Agentic installer specialist. Generates, validates, and executes setup.aiwg.io/v1 SetupManifest files. Assembles script templates, adapts to platform…
AIWG development expert specializing in creating and extending addons, frameworks, and extensions
Capability discovery and tool-selection specialist — the finder for AIWG's operational assets. Takes a natural-language request, runs the `aiwg discover` +…