Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add TashanGKD/tashan-cursor-skills --skill test-env-setupgit clone --depth 1 https://github.com/TashanGKD/tashan-cursor-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tashangkd/tashan-cursor-skills/test-env-setup)<a href="https://agentmods.dev/skills/tashangkd/tashan-cursor-skills/test-env-setup"><img src="https://agentmods.dev/badge/skills/tashangkd/tashan-cursor-skills/test-env-setup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tashangkd/tashan-cursor-skills/test-env-setup"><img src="https://agentmods.dev/badge/skills/tashangkd/tashan-cursor-skills/test-env-setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00096 | $0.04407 |
| Opus 5.5 | $0.00038 | $0.01763 |
| Sonnet 5.5 | $0.00019 | $0.00881 |
| Haiku 4.5 | $0.00010 | $0.00441 |
Grade C, and why
test-env-setup scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
curl -s http://localhost:[PORT]/config-check 2>/dev/null | python3 -c " Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s --max-time 3 http://localhost:[PORT]/health 2>/dev/null How it starts
The opening of the file, as written. The whole thing — 442 lines — stays where its author put it; the contents beside it link to each section on GitHub.
测试环境自动准备(test-env-setup)
使命:让「说一句话就能开始测试」成为现实。 在测试智能体开始执行任何测试用例之前,自动完成所有环境准备工作。 若环境不可修复,输出明确的人工干预指引,不静默失败。
知识导航表
| 层级 | 文档 | 用途 |
|---|---|---|
| D1 项目配置 | 项目群/[项目]/.cursor/test-config.md(若存在) |
项目专属配置:端口/账号/技术栈 |
| D2 技术架构 | 项目群/[项目]/2_技术架构/技术框架.md |
了解服务架构和启动方式 |
| D3 部署文档 | 项目群/[项目]/DEPLOY_ARCH.md |
生产/测试账号信息 |
激活后立即执行
Step 0 【读取项目配置】
先尝试读取 .cursor/test-config.md(项目专属配置)
IF 不存在:使用智能推断(见后文「自动推断逻辑」)
Step 1 【后端服务健康检查 + 自动启动】
1.1 检查服务是否在目标端口响应:
```bash
curl -s --max-time 3 http://localhost:[PORT]/health 2>/dev/null
```
IF 响应正常(含 "ok" 或 HTTP 200):
→ 输出「✅ 后端服务正常(端口 [PORT])」
→ 跳到 Step 2
IF 无响应:
1.2 检查是否有进程占用端口:
```bash
lsof -i :[PORT] 2>/dev/null | head -5
```
IF 有进程但未响应 → kill 并重启:
```bash
pkill -f "uvicorn.*[PORT]" 2>/dev/null || true
pkill -f "node.*[PORT]" 2>/dev/null || true
sleep 2
```
1.3 自动启动服务(根据技术栈):
FastAPI/Python 项目:
```bash
cd [项目根目录]
# 激活虚拟环境(优先 .venv,其次 venv,其次系统 Python)
PYTHON=$([ -f .venv/bin/python ] && echo .venv/bin/python || \
[ -f venv/bin/python ] && echo venv/bin/python || \
echo python3)
# 后台启动,日志写入 /tmp/test-backend.log
nohup $PYTHON -m uvicorn backend.app.main:app \
--host 0.0.0.0 --port [PORT] --workers 1 \
> /tmp/test-backend.log 2>&1 &
echo "启动PID: $!"
```
Node.js/Next.js 项目:
```bash
cd [项目根目录]
nohup npm run dev > /tmp/test-frontend.log 2>&1 &
```
1.4 等待服务就绪(最多 30 秒):
```bash
for i in $(seq 1 10); do
sleep 3
curl -s http://localhost:[PORT]/health && echo "✅ 服务就绪" && break
echo "等待中... ($i/10)"
done
```
IF 30 秒后仍无响应:
→ 读取启动日志诊断:cat /tmp/test-backend.log | tail -20
→ 输出错误信息和诊断建议
→ 停止,输出:「❌ 后端服务无法自动启动,需要人工检查」
→ 附上日志内容供人工排查
Step 2 【数据库连接验证】
```bash
# 通过服务健康端点间接验证 DB
curl -s http://localhost:[PORT]/config-check 2>/dev/null | python3 -c "
import sys, json
d = json.load(sys.stdin)
print('DB:', '✅' if d.get('db_configured') else '❌')
" 2>/dev/null || echo "config-check 端点不可用(跳过DB验证)"
```
IF DB 未连接(db_configured=false):
→ 尝试启动数据库(如有 docker-compose):
```bash
docker-compose -f docker-compose.dev.yml up -d postgres 2>/dev/null || true
sleep 5
```
→ 重新检查
IF 仍然无法连接 → 输出「❌ 数据库连接失败,需要人工检查」
Step 3 【测试账号验证 + 自动创建(完整 Persona 体系)】
需要创建以下 4 类测试人格账号(Personas):
```python
# 测试 Persona 定义(从 test-config.md 读取,以下为默认值)
PERSONAS = [
# admin:管理员,生成邀请码
{"phone": "10000000001", "password": "admin2026",
"role": "admin", "handle": "test_admin", "display_name": "测试管理员"},
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 442 lines · 96 tokens per session scan C e0402fff4c13
test-env-setup is a skill published in the GitHub repository TashanGKD/tashan-cursor-skills (22 stars, last pushed 6mo ago), licensed MIT. It adds 96 tokens to every session and 4,407 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it C with 2 findings (downloads and executes remote code, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
sonicg-write-e2e-test
OrbitalSonic Gemini Skill: Write missing E2E androidTest/Espresso tests for critical flows, run on device, report results; on failures ask consent before fixing production code and retest. Requires emulator or physical device. No new libraries without approval. Part of test- suite.
sonic-write-e2e-test
OrbitalSonic Claude Skill: Write missing E2E androidTest/Espresso tests for critical flows, run on device, report results; on failures ask consent before fixing production code and retest. Requires emulator or physical device. No new libraries without approval. Part of test- suite.
deploy-verify
Post-deploy smoke test across browser, Sentry, Supabase, Langfuse, and the public web. Use when "verify deploy", "smoke test production", "post-release check", or "ship or rollback". Deploy plus watch → workflow-ship-and-observe.
qa
QA lead testing mode with browser automation. Tests affected pages, fills forms, takes screenshots. Use when user says /qa, wants to test the app, needs QA verification, or wants browser-based testing.
sonicg-write-test
OrbitalSonic Gemini Skill: Full test pass gate — asks yes/no for unit, integration, and E2E, runs the chosen suites (plus the emulator walkthrough with E2E), reports results, and on failures asks consent before fixing production code and retests. Use for a full test pass, run all tests, or @sonicg-write-test. For one…
sonic-write-test
OrbitalSonic Claude Skill: Full test pass gate — asks yes/no for unit, integration, and E2E, runs the chosen suites (plus the emulator walkthrough with E2E), reports results, and on failures asks consent before fixing production code and retests. Use for a full test pass, run all tests, or /sonic-write-test. For one…