{
  "$schema": "https://bestaiskill.com/schemas/agent-install/2.json",
  "skill": "tibo-reset-codex",
  "built": "2026-10-26",
  "control_level": 4,
  "control_level_label": "L4 高权限",
  "capabilities": [
    "execute_command",
    "install_deps",
    "network",
    "write_file"
  ],
  "required_controls": {
    "agent": [
      "sandbox_recommended",
      "graded_authorization"
    ],
    "admin": [
      "approval_process",
      "rollback_support",
      "full_audit"
    ]
  },
  "evidence": [
    {
      "file": "scripts/",
      "summary": "Execute local scripts or commands: python3 scripts/query_usage.py [--auth-file …] [--expected-email …] (bundled in repository, standard"
    },
    {
      "file": "scripts/ 或 SKILL.md",
      "summary": "Declares dynamic installation of external language package dependencies"
    },
    {
      "file": "网络端点",
      "summary": "Declares external network access: GET https://codex-reset.com/api/timeline (third-party community site, unauthenticated)"
    },
    {
      "file": "本地工作目录",
      "summary": "File read/write and artifact output: forecast_log.py creates directories under ${XDG_STATE_HOME:-~/.local/state}/tibo-reset-codex/"
    }
  ],
  "verification": {
    "method": "第二遍独立复核（找茬视角）：①glob 清点目录（含隐藏）确认资产面：SKILL.md + references×3 + scripts×2 + tests×2 共 8 个文件，无隐藏脚本；②以 raw 整读两个脚本全文（query_usage.py 183 行、forecast_log.py 222 行），逐项核对 docstring 声明与代码行为是否一致（是否只读？是否跟随重定向？重试策略？写盘路径与权限？凭据是否可能出现在输出里？）；③提取 SKILL.md 与 references 中出现的每一个域名/URL 并逐条回查调用点，确认无未记载的外发目标；④针对「凭据泄漏」做反例检索：检查所有 print/异常文案/JSON 输出路径是否夹带 token；⑤对全目录做安全 token 终扫（shell=True/eval/exec/os.system/base64 长块/access_token/refresh_token/secret）并扫描 >200 字符无空格长行；⑥核对文档内平台边界声明是否自洽（macOS only / Windows 未实测 / 脚本 macOS-Linux）；⑦git 核对 pin commit 与目录最后一次提交。",
    "second_pass": [
      {
        "item": "query_usage.py 的『只读、不改登录态、不外发到别处』声明是否有反例",
        "status": "ok",
        "detail": "反例检索失败：全文只有一处 urllib.request.Request/opener.open，method=\"GET\"，URL 为常量 USAGE_URL，且被 NoRedirect 拦截跳转（redirect_request 直接 raise 'redirect_refused: open the official Usage page instead'）；无写文件、无 subprocess、无 os.remove/chmod；凭据只出现在两个请求头里。docstring 'No refresh or redemption occurs.' 与代码一致。"
      },
      {
        "item": "凭据是否可能通过输出或错误信息泄漏",
        "status": "ok",
        "detail": "专门核对：UsageError 的 docstring 即声明 'A public error message which never contains credential values.'；实际 raise 的字符串全部是固定短语（auth_incomplete / identity_mismatch / authentication_failed / usage_unavailable / redirect_refused），无格式化拼接令牌；main 只 print(json.dumps(result))，而 result 由 normalize_usage 构造，字段为 email/plan_type/windows/计数/notes，不含 token。结论成立。"
      },
      {
        "item": "forecast_log.py 是否真的无网络，且写盘路径与权限与文档一致",
        "status": "ok",
        "detail": "import 段无 urllib/socket/requests；唯一文件操作是 locked_journal 的 os.open(..., 0o600) 与 makedirs(mode=0o700)，路径 root = ${XDG_STATE_HOME:-~/.local/state}/tibo-reset-codex/forecasts.jsonl，与 references/forecast-feedback.md 所述『默认文件是 ${XDG_STATE_HOME:-~/.local/state}/tibo-reset-codex/forecasts.jsonl』一致。docstring 'No network, account access, reset redemption, or background process.' 与代码一致。"
      },
      {
        "item": "是否漏记外发目标（把每个出现的域名回查调用点）",
        "status": "ok",
        "detail": "全目录域名提取结果为：codex-reset.com、api.fxtwitter.com、status.openai.com、api.openai.com、chatgpt.com、cdn.syndication.twimg.com、publish.twitter.com、publish.x.com、x.com、codexlimitwatch.com、codex.lunarwerx.com、codexrunway.com、help.openai.com、otexts.com、example.com/example.invalid（占位）。逐条已归入 external_deps 的 13 个条目（x.com 与 api.openai.com 作为原始来源/端点宿主被 fxtwitter 通道覆盖，chatgpt.com 同时是产品页与用量端点，otexts.com 为文档参考读物）。无未记载的隐蔽外发。"
      },
      {
        "item": "『时区换算 / 平台支持』声明是否自洽",
        "status": "discrepancy",
        "detail": "SKILL.md 明确标注时区换算命令为 **macOS only**（依赖 BSD date -j/-f，'GNU date 无此参数'），references/account-usage.md 也写『Windows 未实测』；但同仓库的 scripts/forecast_log.py 自述平台为『Python 3.10+, macOS/Linux』，query_usage.py 未声明平台限制。即脚本层覆盖 macOS/Linux，文档层把时区换算限定在 macOS。两者非矛盾（不同组件不同约束），但使用者在 Linux 上直接照抄 SKILL.md 的 date 命令会报错——文档已用『macOS only』披露，属已知限制而非隐藏缺陷。"
      },
      {
        "item": "脚本与文档对『重定向』的处理是否一致（安全相关，看是否有代码比文档更松的地方）",
        "status": "ok",
        "detail": "SKILL.md 未特别强调重定向；脚本却主动以 NoRedirect 拒绝任何跳转并把用户导向官方 Usage 页面。这是代码比文档更严（有利方向），不构成夸大，已记入 verdict.strengths。"
      },
      {
        "item": "文档中的端点『实测 200 / 字段形状』类声明能否在本次侦查中复核",
        "status": "unlocatable",
        "detail": "SKILL.md 含大量带日期的端点实测声明（如『用 Tibo Radar JSON API 找最新公开公告（2026-08-26 实测 200）』、fxtwitter『2026-08-30 实测：免登录、直连即可』、以及『完整正文在 `tweet.text` 字段——不是 `full_text`』）。本次为离线源码侦查，未发起任何外部请求，因此这些『当前是否仍可用/字段形状是否仍成立』无法在源码内定位验证。文档自身亦声明端点『都会间歇抖动』『不是稳定的公共 API 契约』并把重试写成必须步骤。故记为待补，不作为推翻第一遍结论的依据。"
      },
      {
        "item": "pin commit 与 skill.path 是否与任务书表格一致",
        "status": "ok",
        "detail": "git rev-parse HEAD = d5c4678cb5d4fd6acc9c922690df035dbd33d247，与任务书表格『库内 HEAD』一致；目录位于仓库根，相对路径 tibo-reset-codex；本目录最后一次提交 49ddcdae（2026-09-08 22:13）。GitHub API 复核 MIT / stars 1392 / pushed 2026-09-15T09:30:04Z。"
      }
    ],
    "level": 1,
    "level_label": "V1 已固定",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247",
    "sha256": "f36131d1c8019312d64b18529f3d9c3b46f5e5d1569af1f3e600ccf79064e316",
    "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/tibo-reset-codex.tar.gz",
    "sha256": "f36131d1c8019312d64b18529f3d9c3b46f5e5d1569af1f3e600ccf79064e316",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  },
  "original": {
    "github": "https://github.com/daymade/claude-code-skills/tree/main/tibo-reset-codex",
    "path": "tibo-reset-codex",
    "commit": "d5c4678cb5d4fd6acc9c922690df035dbd33d247"
  }
}