Skip to content
OpenSmartRoute
Skillv1.0.0

juicebox-debug-bundle

Collect Juicebox debug evidence. Trigger: "juicebox debug", "juicebox support ticket".

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (plugins/saas-packs/juicebox-pack/skills/juicebox-debug-bundle/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill juicebox-debug-bundle. Copyright stays with the author (MIT).

Juicebox Debug Bundle

Overview

Collect Juicebox API connectivity status, dataset health, analysis quota usage, and rate limit state into a single diagnostic archive. This bundle helps troubleshoot failed dataset uploads, stalled AI analysis runs, quota exhaustion, and API authentication problems.

Debug Collection Script

#!/bin/bash
set -euo pipefail
BUNDLE="debug-juicebox-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BUNDLE"

# Environment check
echo "=== Juicebox Debug Bundle ===" | tee "$BUNDLE/summary.txt"
echo "Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$BUNDLE/summary.txt"
echo "JUICEBOX_API_KEY: ${JUICEBOX_API_KEY:+[SET]}" >> "$BUNDLE/summary.txt"

# API connectivity — health endpoint
HTTP=$(curl -s -o /dev/null -w "%{http_code}" \
  -H "Authorization: Bearer ${JUICEBOX_API_KEY}" \
  https://api.juicebox.ai/v1/health 2>/dev/null || echo "000")
echo "API Status: HTTP $HTTP" >> "$BUNDLE/summary.txt"

# Account quota
curl -s -H "Authorization: Bearer ${JUICEBOX_API_KEY}" \
  "https://api.juicebox.ai/v1/account/quota" \
  > "$BUNDLE/quota.json" 2>&1 || true

# Datasets and recent analyses
curl -s -H "Authorization: Bearer ${JUICEBOX_API_KEY}" \
  "https://api.juicebox.ai/v1/datasets?limit=10" > "$BUNDLE/datasets.json" 2>&1 || true
curl -s -H "Authorization: Bearer ${JUICEBOX_API_KEY}" \
  "https://api.juicebox.ai/v1/analyses?limit=5" > "$BUNDLE/recent-analyses.json" 2>&1 || true

# Rate limit headers
curl -s -D "$BUNDLE/rate-headers.txt" -o /dev/null \
  -H "Authorization: Bearer ${JUICEBOX_API_KEY}" https://api.juicebox.ai/v1/health 2>/dev/null || true

tar -czf "$BUNDLE.tar.gz" "$BUNDLE" && rm -rf "$BUNDLE"
echo "Bundle: $BUNDLE.tar.gz"

Analyzing the Bundle

tar -xzf debug-juicebox-*.tar.gz
cat debug-juicebox-*/summary.txt                    # Auth + API health
jq '{used, limit, remaining}' debug-juicebox-*/quota.json        # Quota usage
jq '.[] | {id, name, row_count}' debug-juicebox-*/datasets.json  # Dataset inventory
jq '.[] | {id, status, created_at}' debug-juicebox-*/recent-analyses.json

Common Issues

Symptom Check in Bundle Fix
API returns 401 summary.txt shows HTTP 401 Regenerate API key in Juicebox Settings > API Keys
Dataset upload stuck datasets.json shows processing status for >10 min Check file format (CSV/JSON required); reduce file size below 100MB
Analysis quota exhausted quota.json shows remaining at 0 Upgrade plan or wait for monthly quota reset
Analysis run failed recent-analyses.json shows error status Check dataset has required columns; verify data types match analysis type
Rate limited (429) rate-headers.txt shows Retry-After Implement exponential backoff; batch dataset queries

Automated Health Check

async function checkJuicebox(): Promise<void> {
  const key = process.env.JUICEBOX_API_KEY;
  if (!key) { console.error("[FAIL] JUICEBOX_API_KEY not set"); return; }

  const res = await fetch("https://api.juicebox.ai/v1/health", {
    headers: { Authorization: `Bearer ${key}` },
  });
  console.log(`[${res.ok ? "OK" : "FAIL"}] API: HTTP ${res.status}`);

  if (res.ok) {
    const quota = await fetch("https://api.juicebox.ai/v1/account/quota", {
      headers: { Authorization: `Bearer ${key}` },
    });
    if (quota.ok) {
      const data = await quota.json();
      console.log(`[INFO] Quota remaining: ${data.remaining ?? "unknown"}`);
    }
  }
}
checkJuicebox();

Prerequisites

  • A sandbox workspace, synthetic fixture, approved diagnostic scope, redaction rules, secret references, source/destination allowlists, and an incident owner with a cleanup path.

Instructions

  1. Collect diagnostics from a sandbox fixture only; reject literal credentials, contact-level payloads, and unapproved sources or destinations.
  2. Capture aggregate health, quota, and error signals, then verify suppression, log redaction, and contacts_exported=0.
  3. Stop collection on policy, scope, or retention drift; revoke temporary access and restore the known-good configuration if required.
  4. Store only the redacted bundle for the approved retention window, then delete staged artifacts.

Output

Produce a debug receipt with environment, fixture type, aggregate health/error/quota signals, suppression/no-export/redaction checks, incident owner, retention/deletion proof, and rollback reference. Exclude request payloads, identities, contact data, and secrets.

Error Handling

Condition Response
Sensitive material appears in the bundle Stop collection, delete the artifact, rotate/revoke access as appropriate, and repeat with redaction enforced.
Scope or policy drift Halt the canary and restore the approved configuration before further diagnostics.

Examples

env=staging; fixture=synthetic; health=pass; quota=within-budget; suppression=pass; contacts_exported=0; bundle=redacted; cleanup=verified is a safe debug receipt.

Resources

  • Juicebox Status

Next Steps

See juicebox-common-errors.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-juicebox-debu-3782d2/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-juicebox-debu-3782d2.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-juicebox-debu-3782d2",
  "kind": "skill",
  "name": "juicebox-debug-bundle",
  "description": "Collect Juicebox debug evidence. Trigger: \"juicebox debug\", \"juicebox support ticket\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding",
      "customer_support"
    ],
    "tags": [
      "skill-md",
      "saas",
      "recruiting",
      "juicebox",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Collect Juicebox debug evidence. Trigger: \"juicebox debug\", \"juicebox support ticket\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/saas-packs/juicebox-pack/skills/juicebox-debug-bundle/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/saas-packs/juicebox-pack/skills/juicebox-debug-bundle/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/saas-packs/juicebox-pack/skills/juicebox-debug-bundle/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Bash(curl:*),",
      "Grep"
    ],
    "license": "MIT"
  },
  "instructions": "# Juicebox Debug Bundle\n\n## Overview\n\nCollect Juicebox API connectivity status, dataset health, analysis quota usage, and rate limit state into a single diagnostic archive. This bundle helps troubleshoot failed dataset uploads, stalled AI analysis runs, quota exhaustion, and API authentication problems.\n\n## Debug Collection Script\n\n```bash\n#!/bin/bash\nset -euo pipefail\nBUNDLE=\"debug-juicebox-$(date +%Y%m%d-%H%M%S)\"\nmkdir -p \"$BUNDLE\"\n\n# Environment check\necho \"=== Juicebox Debug Bundle ===\" | tee \"$BUNDLE/summary.txt\"\necho \"Generated: $(date -u +%Y-%m-%dT%H:%M:%SZ)\" >> \"$BUNDLE/summary.txt\"\nec",
  "cost": {
    "context_tokens": 1269
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-juicebox-debu-3782d2/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.