{
  "skill_name": "hotplex-setup",
  "evals": [
    {
      "id": 1,
      "name": "fresh-install-doctor-driven",
      "prompt": "I just cloned HotPlex and need to set up the complete environment. Check all dependencies and guide me through installation.",
      "expected_output": "Skill should run `hotplex doctor --json` first. If hotplex is not installed, guide through binary install + `hotplex onboard`. Should parse the doctor JSON report and address each failed/warned item by category (environment, config, dependencies, security, runtime, messaging, stt, tts, agent_config). Should NOT manually check each dependency one by one — rely on doctor output.",
      "files": [],
      "assertions": [
        {
          "name": "doctor-first",
          "text": "Runs hotplex doctor as first diagnostic step",
          "check_type": "output_contains",
          "pattern": "hotplex doctor|doctor --json|diagnostic"
        },
        {
          "name": "json-parsing",
          "text": "Parses JSON report structure (summary, diagnostics)",
          "check_type": "output_contains",
          "pattern": "summary|diagnostics|pass|warn|fail|category"
        },
        {
          "name": "category-handling",
          "text": "Handles diagnostics by category (environment, config, dependencies, etc.)",
          "check_type": "output_contains",
          "pattern": "environment|config|dependencies|security|runtime|messaging"
        },
        {
          "name": "onboard-mentioned",
          "text": "Mentions hotplex onboard as installation option",
          "check_type": "output_contains",
          "pattern": "onboard|wizard"
        },
        {
          "name": "fix-guidance",
          "text": "Provides targeted fix for each failed item",
          "check_type": "output_contains",
          "pattern": "install|fix|chmod|brew|apt|pip|config"
        }
      ]
    },
    {
      "id": 2,
      "name": "stt-troubleshooting",
      "prompt": "STT isn't working. The error says 'stt_once.py not found'. Help me fix the STT setup.",
      "expected_output": "Skill should identify this as an STT issue, check Python packages (funasr-onnx, modelscope), verify STT model download status, check STT configuration, and provide targeted fix. Should reference references/stt.md for detailed STT configuration.",
      "files": [],
      "assertions": [
        {
          "name": "stt-issue-identified",
          "text": "Identifies STT problem from context",
          "check_type": "output_contains",
          "pattern": "STT|stt_once|not found|语音"
        },
        {
          "name": "packages-checked",
          "text": "Checks Python packages (funasr-onnx, modelscope)",
          "check_type": "output_contains",
          "pattern": "funasr-onnx|modelscope|pip|package"
        },
        {
          "name": "model-verified",
          "text": "Verifies STT model presence",
          "check_type": "output_contains",
          "pattern": "SenseVoice|model|modelscope|cache"
        },
        {
          "name": "config-checked",
          "text": "Checks STT configuration",
          "check_type": "output_contains",
          "pattern": "stt_provider|config|feishu_cloud|local"
        },
        {
          "name": "fix-instructions",
          "text": "Provides targeted fix instructions",
          "check_type": "output_contains",
          "pattern": "install|pip install|python3|download|stt"
        }
      ]
    },
    {
      "id": 3,
      "name": "tts-ffmpeg-missing",
      "prompt": "HotPlex doctor 报告 tts.runtime 失败，说 ffmpeg 未找到。怎么修复？",
      "expected_output": "Skill should identify this as a TTS/ffmpeg issue, provide platform-specific ffmpeg installation commands, explain why ffmpeg is needed (MP3 to Opus conversion for voice messages), and reference references/tts.md for detailed TTS configuration.",
      "files": [],
      "assertions": [
        {
          "name": "tts-issue-identified",
          "text": "Identifies TTS/ffmpeg issue",
          "check_type": "output_contains",
          "pattern": "TTS|tts|ffmpeg|语音"
        },
        {
          "name": "ffmpeg-install",
          "text": "Provides ffmpeg installation commands for relevant platform",
          "check_type": "output_contains",
          "pattern": "brew install ffmpeg|apt install ffmpeg|choco install ffmpeg"
        },
        {
          "name": "why-ffmpeg",
          "text": "Explains why ffmpeg is needed",
          "check_type": "output_contains",
          "pattern": "Opus|MP3|转码|转换|audio|voice"
        },
        {
          "name": "tts-reference",
          "text": "References TTS documentation for details",
          "check_type": "output_contains",
          "pattern": "tts\\.md|TTS 配置|TTS 详细"
        }
      ]
    },
    {
      "id": 4,
      "name": "chinese-onboard",
      "prompt": "我第一次使用 HotPlex，需要帮忙安装和配置飞书对接。",
      "expected_output": "Skill should guide user through: 1) Install HotPlex binary, 2) Run `hotplex onboard` for interactive setup, 3) Focus on Feishu-specific configuration (app_id, app_secret), 4) Validate credentials, 5) Verify with doctor.",
      "files": [],
      "assertions": [
        {
          "name": "install-guidance",
          "text": "Provides installation guidance",
          "check_type": "output_contains",
          "pattern": "install|安装|onboard|curl|brew"
        },
        {
          "name": "feishu-config",
          "text": "Covers Feishu-specific configuration",
          "check_type": "output_contains",
          "pattern": "飞书|feishu|app_id|app_secret|cli_"
        },
        {
          "name": "credential-validation",
          "text": "Mentions credential validation",
          "check_type": "output_contains",
          "pattern": "验证|validate|curl|token"
        },
        {
          "name": "verify-step",
          "text": "Includes verification step",
          "check_type": "output_contains",
          "pattern": "doctor|验证|verify|health"
        }
      ]
    },
    {
      "id": 5,
      "name": "quick-verification",
      "prompt": "Quick check if HotPlex environment is ready to run.",
      "expected_output": "Skill should run `hotplex doctor --json` as the primary diagnostic. Parse the summary field. If all pass, confirm ready. If failures, list them by category with quick fix hints.",
      "files": [],
      "assertions": [
        {
          "name": "doctor-run",
          "text": "Runs hotplex doctor for quick check",
          "check_type": "output_contains",
          "pattern": "doctor|diagnostic|check"
        },
        {
          "name": "result-interpreted",
          "text": "Interprets and reports the result clearly",
          "check_type": "output_contains",
          "pattern": "ready|blocker|pass|fail|issue|就绪"
        },
        {
          "name": "fix-hints",
          "text": "Provides fix hints for any issues found",
          "check_type": "output_contains",
          "pattern": "fix|install|resolve|修复"
        }
      ]
    }
  ]
}
