--- name: b2 description: >- Manage Arizona Computer Guru's (ACG) Backblaze B2 storage account via the B2 Native API v3. Talks to the LIVE production B2 account (accountId 46f69bc61163, region us-west-001) that holds the per-client MSP360/CloudBerry backup destinations. List buckets and application keys, list files / file versions, compute per-bucket stored size, and produce the headline storage-cost report (the mspbackups storage-cost calc). Provision buckets and scoped backup keys and delete buckets/keys (all destructive ops are gated behind --confirm). Read-only by default. Invoke for: "backblaze", "b2", "b2 storage", "bucket", "storage cost", "backup storage", "mspbackups storage", "list buckets b2". --- **Grok skill.** This maps to the shared skill in `.claude/skills/b2/SKILL.md`. Read `.claude/skills/b2/SKILL.md` (first use GrepAI via `search_tool` + `use_tool` (grepai__grepai_search etc.) for semantic context lookup per the GrepAI-first rule in CLAUDE.md, .grok/README.md, and .grok/skills/context/SKILL.md; only fall back to `read_file` if full verbatim content is needed for editing/review) and follow it exactly, adapting for Grok's tools: - Use `run_terminal_command` (with Git Bash mapping via .grok/skills/windows-bash/SKILL.md or full "C:\\Program Files\\Git\\bin\\bash.exe" + PATH export as per harness and .grok/hooks/) to run the Python CLI in `.claude/skills/b2/scripts/b2.py` (use `py` per identity.json, with CLAUDETOOLS_ROOT or derived from identity). - Use `spawn_subagent` for any delegation. - For searches/context: always prefer `search_tool` + `use_tool` for MCP tools (grepai__* primary for code/wiki/session logs). - Destructive subcommands remain gated behind `--confirm` exactly as in the source. - Obey CLAUDE.md (Grok loads it as always-in project rules), .grok/README.md, use GrepAI-first before any direct file tools. The full details — running the CLI, credentials (always via vault.sh or 1password skill, never hardcoded), cache model, safety gating, common commands (status, buckets, files, usage/cost, create/delete with --confirm), prefix purge/lifecycle mechanism, storage cost calc ($0.00695/GB decimal, mspbackups), account structure (12 buckets, keys), and references — are in the source `.claude/skills/b2/SKILL.md` (and its scripts/ and references/). Invoke via the documented commands (e.g. py .../b2.py status, $B2 usage --json, gated deletes/purges), using the Grok terminal tool. The skill talks to the live B2 account — treat writes conservatively. **For MSP backups machine removal (e.g. "remove SBS from mspbackups" for glaztech):** - First, context load via GrepAI + .grok/skills/context/SKILL.md (wiki/clients/glaztech.md, clients/glaztech/, RMM mspbackups, .claude/memory/ mspbackups refs, account structure in source). - List buckets/keys/files for the machine (often per-client MSP360 prefix like MBS-/CBB_SBS/ or in MSPBackups20200311 / ACG-GLAZTECH). - Use gated delete-key (for the machine's backup key), delete-prefix (for the SBS/ machine prefix to schedule lifecycle purge), or delete-bucket if decommissioning the whole destination --confirm. - Follow prefix purge/lifecycle exactly (dry-run without --confirm, commit with, wait ~24-48h for B2 lifecycle, verify with bucket-size, cleanup rule with lifecycle-remove). - Update client docs, session log, memory as needed after. See also: .grok/skills/1password/SKILL.md for secrets if needed, the mspbackups context in memory/wiki, .grok/agents/backup.md , .grok/skills/context/SKILL.md (has explicit MSP + glaztech + SBS example).