setup-automation

Set up GitHub Actions + WandB Automation for automatic result analysis

16 stars

Best use case

setup-automation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Set up GitHub Actions + WandB Automation for automatic result analysis

Teams using setup-automation should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/setup-automation/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/tools/setup-automation/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/setup-automation/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How setup-automation Compares

Feature / Agentsetup-automationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Set up GitHub Actions + WandB Automation for automatic result analysis

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Setup Automation

Set up the automatic analysis pipeline: WandB Automation → GitHub Actions → Claude Code. This enables automatic result analysis and PR posting when WandB runs finish.

## Prerequisites

- `/init-project` must have been run first (WandB and GitHub are configured)
- User must have a GitHub PAT with `repo` scope ready
- User must have an Anthropic API key ready

## Workflow

### Phase 1: Gather Credentials

1. **Ask for credentials** (these will be stored as GitHub Secrets, NOT in the repo):
   - Anthropic API key (`ANTHROPIC_API_KEY`)
   - GitHub PAT with `repo` scope (for WandB webhook → GitHub dispatch)
   - Confirm WandB API key is available (should already be in `.claude/settings.local.json`)

### Phase 2: GitHub Repository Configuration

2. **Get repo info**
   ```bash
   gh repo view --json owner,name,url
   ```

3. **Set GitHub Secrets**
   ```bash
   gh secret set ANTHROPIC_API_KEY
   gh secret set WANDB_API_KEY
   ```
   Claude cannot set these programmatically (they require interactive input or piped values). Guide the user to set them:
   - Option A: `echo "<value>" | gh secret set ANTHROPIC_API_KEY`
   - Option B: Set via GitHub UI → Settings → Secrets and Variables → Actions

4. **Set GitHub Variables** (non-secret, read from `.claude/settings.json`):
   ```bash
   gh variable set WANDB_ENTITY --body "<entity>"
   gh variable set WANDB_PROJECT --body "<project>"
   ```

5. **Create GitHub labels** for experiment tracking:
   ```bash
   # Workflow state labels
   gh label create "experiment:in-progress" --color "FFA500" --description "Experiment branch is being developed" --force
   gh label create "experiment:done" --color "6E6E6E" --description "Experiment cycle completed" --force

   # Verdict labels
   gh label create "experiment:winner" --color "00AA00" --description "Experiment outperformed baseline" --force
   gh label create "experiment:loser" --color "DD0000" --description "Experiment did not outperform baseline" --force

   # Run state labels (set by check-results post-pr)
   gh label create "experiment:finished" --color "0E8A16" --description "WandB run finished successfully" --force
   gh label create "experiment:failed" --color "B60205" --description "WandB run failed" --force
   gh label create "experiment:crashed" --color "B60205" --description "WandB run crashed" --force
   gh label create "experiment:running" --color "1D76DB" --description "WandB run is in progress" --force
   gh label create "experiment:killed" --color "FBCA04" --description "WandB run was killed" --force

   # Baseline labels (used by rollback-baseline)
   gh label create "regression" --color "D93F0B" --description "Baseline regression detected" --force
   gh label create "baseline" --color "5319E7" --description "Related to baseline management" --force
   ```

### Phase 3: Verify GitHub Actions Workflow

6. **Check workflow file exists**
   ```bash
   cat .github/workflows/wandb-run-finished.yml
   ```
   - If missing, warn the user and suggest re-initializing from the template

7. **Verify workflow is enabled**
   ```bash
   gh workflow list
   ```
   - If the workflow is disabled, enable it: `gh workflow enable wandb-run-finished.yml`

### Phase 4: WandB Automation Setup

8. **Guide user through WandB Automation creation**

   WandB Automations must be configured in the WandB UI. Print the following instructions:

   ```
   === WandB Automation Setup ===

   1. Go to: https://wandb.ai/<entity>/<project>/automations
   2. Click "Create automation"
   3. Configure:
      - Name: "Auto-analyze on run finish"
      - Event type: "Run state changes"
      - Trigger on: finished, failed, crashed
      - Action: "Webhook"
      - URL: https://api.github.com/repos/<owner>/<repo>/dispatches
      - Method: POST
      - Headers:
        Authorization: Bearer <YOUR_GITHUB_PAT>
        Accept: application/vnd.github+json
      - Body: (copy from misc/wandb_webhook_payload.json)
   4. Save the automation
   ```

   Ask user to confirm when done.

### Phase 5: Test the Pipeline

9. **Test GitHub dispatch** (dry run):
   ```bash
   gh api repos/<owner>/<repo>/dispatches \
     -f event_type=wandb_run_finished \
     -f 'client_payload[branch]=test' \
     -f 'client_payload[run_id]=test-run' \
     -f 'client_payload[run_state]=finished'
   ```

10. **Verify the workflow ran**:
    ```bash
    gh run list --workflow=wandb-run-finished.yml --limit 1
    ```
    - If it shows a run triggered by `repository_dispatch`, the pipeline works
    - The test run will fail (no real branch/run) — that's expected, it just proves the trigger works

### Phase 6: Summary

11. **Print verification checklist**:
    - [ ] `ANTHROPIC_API_KEY` set in GitHub Secrets
    - [ ] `WANDB_API_KEY` set in GitHub Secrets
    - [ ] `WANDB_ENTITY` set in GitHub Variables
    - [ ] `WANDB_PROJECT` set in GitHub Variables
    - [ ] All GitHub labels created (workflow, verdict, run state, baseline)
    - [ ] `.github/workflows/wandb-run-finished.yml` exists and is enabled
    - [ ] WandB Automation created with webhook to GitHub dispatch
    - [ ] Test dispatch triggered the workflow

12. **Print how it works**:
    ```
    Pipeline: WandB run finishes → WandB Automation fires webhook →
    GitHub Actions receives dispatch → Claude Code analyzes results →
    Results posted to PR automatically
    ```

## Rules

- Never store secrets in the repo — only in GitHub Secrets or `.claude/settings.local.json`
- The GitHub PAT for the webhook belongs to the user — Claude should never ask for it in plaintext. Guide the user to paste it directly into WandB UI.
- If any step fails, explain what went wrong and how to fix it manually
- This skill is idempotent — safe to re-run if setup was partial

Related Skills

zylvie-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zylvie tasks via Rube MCP (Composio). Always search tools first for current schemas.

zoominfo-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zoominfo tasks via Rube MCP (Composio). Always search tools first for current schemas.

zoho-invoice-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zoho Invoice tasks via Rube MCP (Composio): invoices, estimates, expenses, clients, and payment tracking. Always search tools first for current schemas.

zoho-inventory-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zoho Inventory tasks via Rube MCP (Composio): items, orders, warehouses, shipments, and stock management. Always search tools first for current schemas.

zoho-bigin-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zoho Bigin tasks via Rube MCP (Composio): pipelines, contacts, companies, products, and small business CRM. Always search tools first for current schemas.

zoho_desk-automation

16
from diegosouzapw/awesome-omni-skill

Zoho Desk automation via Rube MCP -- toolkit not currently available in Composio; no ZOHO_DESK_ tools found

zoho-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zoho tasks via Rube MCP (Composio). Always search tools first for current schemas.

zerobounce-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zerobounce tasks via Rube MCP (Composio). Always search tools first for current schemas.

zeplin-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zeplin tasks via Rube MCP (Composio). Always search tools first for current schemas.

zenserp-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zenserp tasks via Rube MCP (Composio). Always search tools first for current schemas.

zenrows-automation

16
from diegosouzapw/awesome-omni-skill

Automate Zenrows tasks via Rube MCP (Composio). Always search tools first for current schemas.

yousearch-automation

16
from diegosouzapw/awesome-omni-skill

Automate Yousearch tasks via Rube MCP (Composio). Always search tools first for current schemas.