一键导入
test
Smart test runner — auto-detects what changed vs main, runs relevant tests (health, browser smoke, go tests). Writes a gate file so /push knows tests passed.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Smart test runner — auto-detects what changed vs main, runs relevant tests (health, browser smoke, go tests). Writes a gate file so /push knows tests passed.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
End-to-end validate a `text.ara.so/backend` (website-agent) fix against a real Railway preview environment BEFORE merging to main. Pushes the current branch, deploys the SHA to the long-lived `preview` Railway env, confirms the new `git_sha` is live via `/healthz`, then sends a focused signed webhook replay (single-turn or short multi-turn) to a reserved 555-01XX test phone, and polls Braintrust for the root span's `outcome` / rounds / tools / reply. Use whenever you change anything in `backend/src/` (tool handlers, system prompt, builder loop, etc.) and want production-fidelity proof — not just unit tests — before opening the PR. Invoked as `/replay-railway-preview` or `/replay railway preview`.
Ara's secrets convention — all runtime credentials live in Infisical (project "Ara-passwords"), one folder per active GitHub repo (`/ara-engineer`, `/text-ara-so`). The old megarepo lives at `/legacy-ara-megarepo` tagged `legacy` — reference only. Never ask the user to paste keys; never commit .env; never build a custom vault.
Align the website-agent (system prompt + routing) with successful on-Ara website building; analyze Braintrust traces for derailment (wrong phase, local-dev tutoring, missing deploy, paywall/connect confusion), patch `text.ara.so/backend` (primarily `system-prompt.ts`), then verify in a tight loop—`bt` / Braintrust evals / `bun run e2e` (replay + live)—and report a before vs after fit table. Invoked as `/align`, `/align <trace url>`, `/align users …` (pair with `/trace` to gather traces). Companion to `/trace`.
Ara agent-trace debugging — inspect Braintrust traces for the website-agent (TS/Bun, Cerebras, Vercel AI SDK v6). Invoked as `/trace recent`, `/trace turn <turn_id>`, `/trace convo <chat_id>`, `/trace user <phone>`, `/trace top users` (aggregate: who messaged most in a time window — one latest-turn link per sender, table below), `/trace tool <name>`, `/trace span <id>`, `/trace <url>`, `/trace test` (run canonical e2e via `text.ara.so/backend/scripts/e2e.ts` (`bun run e2e --target=local --scenarios=<name>`)), `/trace score`, `/trace online`, or `/trace grow`. **Use `/align`** to align system prompt and gates to traces and report before/after tables (`skills/align/SKILL.md`). **When the user asks for users’ traces / links:** give **one permalink per user** — the **latest** `webhook.inbound` root only. **When they ask for top / busiest users over a time range:** use the **top users table** format (Msgs, User, single review link) — no per-thread “all turns” column unless they ask.
Deeply research a technology already in the stack. Pulls latest official docs, changelogs, release notes, production recipes, and pitfalls via heavy web search — then maps findings onto the exact usage pattern in this repo to surface underused features and confirm best practices. Use whenever someone asks "are we using X right?", "what's the best way to use X for Y?", or "what did X ship recently that we should adopt?"
Braintrust `bt` CLI for Ara — every agent-facing service emits spans to the `Ara` project (org `Aradotso`). Use for inspecting logs/traces/prompts/evals, authenticating, SQL over spans, and wrapping new code with tracing. For the Ara-specific span shape and debug recipes (`/trace recent`, `/trace turn`, `/trace user`, etc.) see the companion `/trace` skill.
| name | test |
| version | 1.0.0 |
| description | Smart test runner — auto-detects what changed vs main, runs relevant tests (health, browser smoke, go tests). Writes a gate file so /push knows tests passed. |
| allowed-tools | ["Bash","Read","Grep","Glob"] |
Auto-detect what changed and run the right tests. Write a gate file for /push.
/test — auto-detect and run relevant tests/test health — endpoint health checks only/test browser — browser smoke test only/test all — run everythingCHANGED=$(git diff origin/main --name-only 2>/dev/null || git diff HEAD~1 --name-only)
echo "$CHANGED"
| Pattern | Tests to run |
|---|---|
*.tsx, *.ts, src/components/, src/pages/ | Browser smoke |
Ara-backend/, *.py, routes/, services/ | Health endpoints |
*.go | go test ./... |
package.json, *.config.*, *.md | Syntax check only |
WORKER=$(cmux --json new-split right | python3 -c "import sys,json; print(json.load(sys.stdin)['surface_ref'])")
Read the port from CLAUDE.md in the worktree root if available, else default to 4000 for API, 5173 for app.
# Must test against local dev server if you have code changes
if lsof -i :$API_PORT -sTCP:LISTEN > /dev/null 2>&1; then
API_URL="http://localhost:$API_PORT"
else
echo "ERROR: No local server on :$API_PORT — start dev server before testing"
exit 1
fi
cmux send --surface "$WORKER" "curl -sf $API_URL/health | python3 -m json.tool\n"
BROWSER=$(cmux --json browser open "http://localhost:$APP_PORT" | python3 -c "import sys,json; print(json.load(sys.stdin)['surface_ref'])")
cmux browser $BROWSER wait --load-state complete --timeout-ms 15000
Inject auth using the DEV credentials from CLAUDE.md (agent email/password):
SESSION=$(curl -s -X POST "$DEV_SUPABASE_URL/auth/v1/token?grant_type=password" \
-H "apikey: $DEV_SUPABASE_ANON_KEY" -H "Content-Type: application/json" \
-d "{\"email\":\"$DEV_EMAIL\",\"password\":\"$DEV_PASSWORD\"}")
cmux browser $BROWSER eval "localStorage.setItem('supabase.auth.token', JSON.stringify($SESSION))"
cmux browser $BROWSER goto "http://localhost:$APP_PORT/console"
cmux browser $BROWSER wait --load-state complete --timeout-ms 15000
Smoke checks:
cmux browser $BROWSER get title — must contain "Ara", not "Sign in"cmux browser $BROWSER errors list — no JS crashescmux browser $BROWSER snapshot --compact — nav elements visiblecmux browser $BROWSER screenshot — read the screenshot to visually verifycmux send --surface "$WORKER" "cd $(git rev-parse --show-toplevel) && go test ./... 2>&1\n"
sleep 15
cmux capture-pane --surface "$WORKER"
GATE="$(git rev-parse --show-toplevel)/.worktree-test-gate"
cat > "$GATE" << EOF
branch=$(git rev-parse --abbrev-ref HEAD)
commit=$(git rev-parse HEAD)
timestamp=$(date -u +%Y-%m-%dT%H:%M:%SZ)
result=pass
EOF
echo "Gate written: $GATE"
## Test Results
| Suite | Result | Detail |
|---------|--------|---------------------|
| Health | PASS | 8/8 endpoints OK |
| Browser | PASS | Console loaded, auth OK |
Ready for /push.