{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "home-assistant",
  "built": "2026-10-26",
  "control_level": 4,
  "control_level_label": "L4 高权限",
  "capabilities": [
    "execute_command",
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "sandbox_recommended",
      "graded_authorization"
    ],
    "admin": [
      "approval_process",
      "rollback_support",
      "full_audit"
    ]
  },
  "evidence": [
    {
      "file": "scripts/",
      "summary": "Executes local scripts or commands: ssh root@homeassistant.local \"ha core check\" (configuration validation, ~30-60s)"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: http://homeassistant.local:8123 — Home Assistant REST API, hass-cli via HASS_SERVER"
    },
    {
      "file": "本地工作目录",
      "summary": "File I/O and artifact output: Writes .yaml/.yml within the HA instance /config (automations.yaml, scripts/scenes/templates, configuration.yaml)"
    }
  ],
  "verification": {
    "method": "第二遍独立重读 + 换角度反查（目标：推翻第一遍结论）：① 全量文件清单（含隐藏文件、gitignore 关闭）核对资产面，确认无 scripts/、无 .sh/.py/.js；② 逐 token 扫描（HASS_TOKEN/HASS_SERVER/hass-cli/mcp/curl/scp/ssh/websocket/supervisor/token/secret/.env/secrets.yaml/backup/HACS/Playwright/context7）并统计命中行数，逐条读命中上下文；③ 网络面清点：把所有 http(s) URL 与主机名（homeassistant.local、mcp.context7.com、github.com）分离出真实服务端点与徽章/文档链接；④ 声明 vs 能力核对：把 README 的能力bullet 与 SKILL.md/reference 逐条对照找夸大；⑤ 反查调用点：确认 SKILL.md 正文中两个 reference 相对链接真实存在且指路句与实际内容对应；⑥ 用 python 读文件对每条 quote 做子串存在性校验（全部命中）；⑦ 独立质疑安全档位：专门找『是否有漏掉的网络调用/隐藏脚本/凭证外泄指令』，并评估 token 与第三方 MCP 两项是否足以支撑橙色。",
    "second_pass": [
      {
        "item": "skill 目录与 SKILL.md 定位（任务提示为待定位）",
        "status": "ok",
        "detail": "实际路径 skills/home-assistant-manager/SKILL.md 存在，frontmatter name: home-assistant-manager 与 description 与任务给的一字不差；同目录含 reference/{automations,dashboards}.md 与 dashboard.png。"
      },
      {
        "item": "『MCP 还是原生 REST？』的事实核对",
        "status": "ok",
        "detail": "两者都给，但性质不同：SKILL.md 只对 MCP 表达偏好（'MCP (preferred when available)'）并点名官方 mcp_server 集成与社区 ha-mcp，却未给任何 MCP 安装/配置命令；真正可直接执行的命令全是 hass-cli/ssh/scp。README 中唯一的 claude mcp add 是 context7（文档检索），不是 HA 控制通道。故『MCP 优先』属策略声明，可执行面是 CLI/SSH。"
      },
      {
        "item": "凭证读取【决定档位的关键项】",
        "status": "ok",
        "detail": "HASS_TOKEN 全仓命中 4 处：SKILL.md 第 22/24 行（hass-cli 需 HASS_SERVER/HASS_TOKEN、判存在 `[ -n \"$HASS_TOKEN\" ]`）、README 第 83 行（前置条件列出两个环境变量）、README 第 328 行（export 占位值）。无任何要求打印、回显、上传或写入 token 的指令；同时 SKILL.md 明令不读不写 .env/secrets.yaml。结论：存在环境变量依赖但无外泄路径，仍因持 token 的 CLI/MCP 通道记 orange。"
      },
      {
        "item": "隐藏脚本 / 可执行代码核查",
        "status": "ok",
        "detail": "glob 含隐藏文件全量结果仅 9 个：.gitignore、LICENSE、README.md、release.txt、SKILL.md、dashboard.png、reference/automations.md、reference/dashboards.md、.claude-plugin/{plugin,marketplace}.json、.github/FUNDING.yml。无 .sh/.py/.js/.ts，无 package.json，无 hook 配置。所以 security.scripts_executed 列出的都是 SKILL.md 指示宿主去跑的外部命令，不是仓库自带脚本。"
      },
      {
        "item": "网络端点清点（区分服务端点与文档链接）",
        "status": "ok",
        "detail": "真实服务端点仅两个：http://homeassistant.local:8123（HA REST，README 第 327 行）与 https://mcp.context7.com/mcp（README 第 347 行）。其余 URL 为 shields 徽章、github.com 仓库/安装 tarball、home-assistant.io 文档、buymeacoffee 按钮、semver.org，均非 skill 运行所需的调用面。websocket 与 supervisor 全仓零命中——SKILL.md 未声称也不使用 WebSocket API 或 Supervisor API。"
      },
      {
        "item": "功能声明 vs 实际能力（夸大检查）",
        "status": "discrepancy",
        "detail": "README『Workflow Optimization』bullet 写 'No Restart for Dashboards'，而同仓库 dashboards.md 与 SKILL.md 都明确写直接文件编辑（scp/git）到 .storage/lovelace.* 可能不被识别、需 `ha core restart`（HA 缓存 lovelace store）。README 该 bullet 只在『UI 编辑 + 硬刷新』这一子情形下成立，属表述宽于实际；这是唯一发现的声明出入，不影响其余能力项（自动化语法、验证闭环、卡片选型等条条有正文支撑）。"
      },
      {
        "item": "reference 分层是否真实被引用（而非死文件）",
        "status": "ok",
        "detail": "SKILL.md 正文对 reference/automations.md 与 reference/dashboards.md 各有一条显式指路句（'→ read [`reference/…`](reference/…)'），且两个文件首行都反向声明 'Core deploy/verify rules are in `../SKILL.md`'，双向链接成立。"
      },
      {
        "item": "reload/restart 决策表与 HA 语义一致性",
        "status": "ok",
        "detail": "表内 reload 集合（automations/scripts/scenes/groups/template entities/themes）与 restart 集合（configuration.yaml core、新集成、platform sensors、MQTT 平台、lovelace_dashboards）与 automations.md 中 blueprint 改动需 reload、dashboard 注册需 restart 的说明自洽，无自相矛盾。"
      },
      {
        "item": "automation.trigger 跳过 conditions 的陷阱声明",
        "status": "ok",
        "detail": "SKILL.md 与 automations.md 两处均写明 skip_condition 默认 true、手动触发只证明 actions 不证明 gate，并给出 skip_condition: false 的补测法，互相印证、非孤证。"
      },
      {
        "item": "注入面评估的反例搜寻",
        "status": "ok",
        "detail": "主动找『把外部文本当指令』的证据：全仓 grep 无 fetch/网页抓取/用户粘贴解析类指令；唯一把外部文本引入模型的是 context7 文档（被指定为配置依据）与 dashboards.md 的截图回报流程。二者均需用户预配/授权，且 SKILL.md 未授权 agent 依日志或页面内容改变任务目标；故记为被动注入面而非指令通道。"
      },
      {
        "item": "quote 逐条存在性校验",
        "status": "ok",
        "detail": "用 python 读原始文件对本文所有 evidence.quote 做子串比对，全部命中（含 ≥ 字符、换行片段与行首缩进均逐字一致）；无 paraphrase 冒充 quote。"
      },
      {
        "item": "pin commit 与元数据核对",
        "status": "ok",
        "detail": "工作副本 git rev-parse HEAD = 21126796f5da91d6d18757f0059762a5ab16ccd4，与任务给定 40 位 SHA 一致；plugin.json version 1.1.0 与 release.txt 最新条目 v1.1.0（2026-07-05）自洽，last_push 2026-07-04T22:43:09Z 落在此版本窗口内。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "21126796f5da91d6d18757f0059762a5ab16ccd4",
    "sha256": "23d2cb212a09fcafaa9494eabe70fc88accd34cb059df69e8435fba86756eda1",
    "reviewed_by": null,
    "reviewed_at": null
  },
  "assessed_at": "2026-10-25",
  "method_version": "2.0",
  "mirror": {
    "archive": "https://skillpub.pages.dev/r2/v/2026-09-15/home-assistant.tar.gz",
    "sha256": "23d2cb212a09fcafaa9494eabe70fc88accd34cb059df69e8435fba86756eda1",
    "commit": "21126796f5da91d6d18757f0059762a5ab16ccd4"
  },
  "original": {
    "github": "https://github.com/komal-SkyNET/claude-skill-homeassistant/tree/main/skills/home-assistant-manager",
    "path": "skills/home-assistant-manager",
    "commit": "21126796f5da91d6d18757f0059762a5ab16ccd4"
  }
}