一键导入
arthur-onboard-platform-workspace
Arthur onboarding sub-skill — Platform Step 3: Select or create a workspace in Arthur Platform. Reads/writes .arthur-engine.env.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Arthur onboarding sub-skill — Platform Step 3: Select or create a workspace in Arthur Platform. Reads/writes .arthur-engine.env.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | arthur-onboard-platform-workspace |
| description | Arthur onboarding sub-skill — Platform Step 3: Select or create a workspace in Arthur Platform. Reads/writes .arthur-engine.env. |
Goal: Establish ARTHUR_PLATFORM_WORKSPACE_ID and ARTHUR_PLATFORM_WORKSPACE_NAME in .arthur-engine.env.
cat .arthur-engine.env 2>/dev/null || echo "(no state file)"
Parse ARTHUR_PLATFORM_URL, ARTHUR_PLATFORM_TOKEN, ARTHUR_PLATFORM_WORKSPACE_ID, and ARTHUR_PLATFORM_WORKSPACE_NAME from the output.
State write helper:
STATE_FILE=".arthur-engine.env"
grep -v '^ARTHUR_PLATFORM_WORKSPACE_ID=\|^ARTHUR_PLATFORM_WORKSPACE_NAME=' \
"$STATE_FILE" 2>/dev/null > /tmp/ae_env_tmp && mv /tmp/ae_env_tmp "$STATE_FILE" || true
echo "ARTHUR_PLATFORM_WORKSPACE_ID=$WS_ID" >> "$STATE_FILE"
echo "ARTHUR_PLATFORM_WORKSPACE_NAME=$WS_NAME" >> "$STATE_FILE"
Invoke the arthur-onboard-platform-token sub-skill to get a fresh token.
If it outputs TOKEN_REFRESH=MISSING_CREDENTIALS or TOKEN_REFRESH=FAILED: re-invoke arthur-onboard-platform-access to re-authenticate, then resume this skill.
Verify the workspace still exists and is accessible:
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
-H "Authorization: Bearer $ARTHUR_PLATFORM_TOKEN" \
"${ARTHUR_PLATFORM_URL}/api/v1/workspaces/${ARTHUR_PLATFORM_WORKSPACE_ID}" 2>/dev/null || echo "000")
echo "WS_STATUS=$HTTP_STATUS"
200 → confirm reuse with user ("Use workspace '<ARTHUR_PLATFORM_WORKSPACE_NAME>'?"); if yes, exit this skill401 → token expired; tell user to re-run arthur-onboard-platform-access to refresh it, then retry this skill404 → workspace no longer exists; proceed to list/create belowWS_RESPONSE=$(curl -s \
-H "Authorization: Bearer $ARTHUR_PLATFORM_TOKEN" \
"${ARTHUR_PLATFORM_URL}/api/v1/organization/workspaces")
WS_LIST=$(echo "$WS_RESPONSE" | python3 -c "
import sys, json
d = json.load(sys.stdin)
workspaces = d.get('records') or d.get('resources') or d.get('data') or d.get('workspaces') or (d if isinstance(d, list) else [])
for ws in workspaces:
print(f' {ws[\"id\"]}: {ws[\"name\"]}')
if not workspaces:
print(' (no workspaces found)')
" 2>/dev/null || echo " (error parsing response)")
echo "$WS_LIST"
If the response is a 404 or error, try the alternate path:
WS_RESPONSE=$(curl -s \
-H "Authorization: Bearer $ARTHUR_PLATFORM_TOKEN" \
"${ARTHUR_PLATFORM_URL}/api/v1/workspaces")
Show the list to the user and ask:
"Which workspace would you like to use? Enter the workspace name or ID, or type new to create one."
Find the matching workspace from the response and extract its ID and name:
WS_ID=$(echo "$WS_RESPONSE" | python3 -c "
import sys, json
d = json.load(sys.stdin)
workspaces = d.get('records') or d.get('resources') or d.get('data') or d.get('workspaces') or (d if isinstance(d, list) else [])
for ws in workspaces:
if ws.get('name') == '$USER_SELECTION' or ws.get('id') == '$USER_SELECTION':
print(ws['id'])
break
" 2>/dev/null)
WS_NAME=$(echo "$WS_RESPONSE" | python3 -c "
import sys, json
d = json.load(sys.stdin)
workspaces = d.get('records') or d.get('resources') or d.get('data') or d.get('workspaces') or (d if isinstance(d, list) else [])
for ws in workspaces:
if ws.get('name') == '$USER_SELECTION' or ws.get('id') == '$USER_SELECTION':
print(ws['name'])
break
" 2>/dev/null)
echo "WS_ID=$WS_ID"
echo "WS_NAME=$WS_NAME"
Proceed to "Save Workspace to State".
Ask the user for the workspace name.
NEW_WS_RESPONSE=$(curl -s -X POST \
-H "Authorization: Bearer $ARTHUR_PLATFORM_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"name\": \"$WS_NAME\"}" \
"${ARTHUR_PLATFORM_URL}/api/v1/organization/workspaces")
WS_ID=$(echo "$NEW_WS_RESPONSE" | \
python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null)
WS_NAME=$(echo "$NEW_WS_RESPONSE" | \
python3 -c "import sys,json; print(json.load(sys.stdin).get('name',''))" 2>/dev/null)
echo "WS_ID=$WS_ID"
echo "WS_NAME=$WS_NAME"
If WS_ID is empty: show the raw response to debug. If the path returned 404, try POST /api/v1/workspaces instead. If creation still fails, ask the user to create the workspace in the platform UI and provide its ID.
STATE_FILE=".arthur-engine.env"
grep -v '^ARTHUR_PLATFORM_WORKSPACE_ID=\|^ARTHUR_PLATFORM_WORKSPACE_NAME=' \
"$STATE_FILE" 2>/dev/null > /tmp/ae_env_tmp && mv /tmp/ae_env_tmp "$STATE_FILE" || true
echo "ARTHUR_PLATFORM_WORKSPACE_ID=$WS_ID" >> "$STATE_FILE"
echo "ARTHUR_PLATFORM_WORKSPACE_NAME=$WS_NAME" >> "$STATE_FILE"
Confirm to the user: "Workspace set: <WS_NAME> (<WS_ID>)"
Exit this skill.
Arthur onboarding sub-skill — Step 4: Analyze the target repository (language, framework, existing instrumentation). Writes detection results to .arthur-engine.env.
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.
Arthur onboarding sub-skill — Step 9: Recommend and configure continuous LLM evals for the Arthur task. Reads credentials and eval provider from .arthur-engine.env.
Arthur onboarding sub-skill — Step 5: Instrument the target repository with Arthur tracing (Python SDK, Mastra TS, or OpenInference). Reads detection results from .arthur-engine.env.
Arthur onboarding sub-skill — Step 2: Ensure Arthur GenAI Engine is available (local install or remote). Reads/writes .arthur-engine.env.
Onboard an agentic application to Arthur GenAI Engine. Guides through engine connection, task setup, code instrumentation, trace verification, and eval configuration. Invoke from any agentic application repository.