integrations/claude-code-skills/arthur-onboard/arthur-onboard-eval-provider/SKILL.md
--- name: arthur-onboard-eval-provider description: Arthur onboarding sub-skill — Step 8: Configure an LLM provider for continuous evals (OpenAI, Anthropic, Gemini, Bedrock, or Vertex AI). Reads/writes .arthur-engine.env. allowed-tools: Bash, Read, Write --- # Arthur Onboard — Step 8: Configure Eval Model Provider ## Read State ```bash cat .arthur-engine.env 2>/dev/null || echo "(no state file)" ``` Parse `ARTHUR_ENGINE_URL` and `ARTHUR_API_KEY`. --- ## Check Existing Providers ```bash cu
npx skillsauth add arthur-ai/arthur-engine integrations/claude-code-skills/arthur-onboard/arthur-onboard-eval-providerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
cat .arthur-engine.env 2>/dev/null || echo "(no state file)"
Parse ARTHUR_ENGINE_URL and ARTHUR_API_KEY.
curl -s \
-H "Authorization: Bearer $ARTHUR_API_KEY" \
"$ARTHUR_ENGINE_URL/api/v1/model_providers" | \
python3 -c "
import sys, json
d = json.load(sys.stdin)
for p in d.get('providers', []):
print(f'{p[\"provider\"]}: enabled={p[\"enabled\"]}')
"
If an enabled provider exists: Use it (prefer OpenAI > Anthropic > Gemini > Bedrock > Vertex AI). Write ARTHUR_EVAL_PROVIDER and ARTHUR_EVAL_MODEL to the state file, then exit this skill.
Ask user to choose:
openai → model gpt-4oanthropic → model claude-3-5-haiku-20241022gemini → model gemini-1.5-flashbedrock → model anthropic.claude-3-haiku-20240307-v1:0vertex_ai → model gemini-1.5-flashARTHUR_EVAL_PROVIDER=none to state, then exit)If a provider is chosen, show the user this message and wait for their confirmation (do not ask them to type the key in chat; do not run getpass via the Bash tool — it has no TTY):
Please run this to securely enter your
<Provider>API key (replace<Provider>with the actual provider name in the prompt):
! python3 -c "import getpass, os, stat; p=os.path.expanduser('~/.ae_tmp_key'); key=getpass.getpass('<Provider> API key (hidden): '); open(p,'w').write(key); os.chmod(p, 0o600); print('Key saved.')"Let me know when done.
Then read the key from the temp file and configure:
PROVIDER_API_KEY=$(cat ~/.ae_tmp_key && rm -f ~/.ae_tmp_key)
curl -s -X PUT \
-H "Authorization: Bearer $ARTHUR_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"api_key\": \"$PROVIDER_API_KEY\"}" \
"$ARTHUR_ENGINE_URL/api/v1/model_providers/$PROVIDER"
Write ARTHUR_EVAL_PROVIDER and ARTHUR_EVAL_MODEL to .arthur-engine.env:
STATE_FILE=".arthur-engine.env"
grep -v '^ARTHUR_EVAL_PROVIDER=\|^ARTHUR_EVAL_MODEL=' \
"$STATE_FILE" 2>/dev/null > /tmp/ae_env_tmp && mv /tmp/ae_env_tmp "$STATE_FILE" || true
echo "ARTHUR_EVAL_PROVIDER=$PROVIDER" >> "$STATE_FILE"
echo "ARTHUR_EVAL_MODEL=$MODEL" >> "$STATE_FILE"
tools
--- name: arthur-onboard-verify description: Arthur onboarding sub-skill — Step 7: Verify that traces are flowing from the instrumented application to Arthur Engine. Reads credentials from .arthur-engine.env. allowed-tools: Bash, Read --- # Arthur Onboard — Step 7: Verify Instrumentation ## Read State ```bash cat .arthur-engine.env 2>/dev/null || echo "(no state file)" ``` Parse `ARTHUR_ENGINE_URL`, `ARTHUR_API_KEY`, `ARTHUR_TASK_ID`. --- ## Tell the User to Run Their Application Show the
tools
--- name: arthur-onboard-task description: Arthur onboarding sub-skill — Step 3: Set up an Arthur Task (create or select). Reads/writes .arthur-engine.env. allowed-tools: Bash, Read, Write, Edit --- # Arthur Onboard — Step 3: Set Up Arthur Task **Goal:** Establish `ARTHUR_TASK_ID` in `.arthur-engine.env`. ## Read State ```bash cat .arthur-engine.env 2>/dev/null || echo "(no state file)" ``` Parse `ARTHUR_ENGINE_URL`, `ARTHUR_API_KEY`, and `ARTHUR_TASK_ID` from the output. **State write hel
tools
--- name: arthur-onboard-prompts description: Arthur onboarding sub-skill — Step 6: Extract prompts from the target repository and register them with Arthur Engine. Reads credentials from .arthur-engine.env. allowed-tools: Bash, Read, Task --- # Arthur Onboard — Step 6: Extract & Register Prompts ## Read State ```bash cat .arthur-engine.env 2>/dev/null || echo "(no state file)" ``` Parse `ARTHUR_ENGINE_URL`, `ARTHUR_API_KEY`, `ARTHUR_TASK_ID`. --- ## Extract Prompts via Sub-agent Delegate
development
Onboard an agentic application to the Arthur SaaS Platform (platform.arthur.ai). Guides through authentication, workspace selection, engine deployment, model creation, code instrumentation, trace verification, and eval configuration.