{
  "checker": {
    "claims": [
      {
        "claim": "scu checks each skill in skills-lock.json against its GitHub source",
        "command": "<guest-path> --cwd <guest-path> --json",
        "evidence": "not-installed\",\n    \"installSource\": \"mattpocock/skills/skills/engineering/tdd\",\n    \"url\": \"https://github.com/mattpocock/skills/tree/HEAD/skills/engineering/tdd\",\n    \"hasStalePath\": false\n  }\n]\n",
        "expected": "tdd is listed with its upstream status",
        "input": "project with skills-lock.json listing mattpocock/skills tdd",
        "kind": "claim",
        "outcome": "Real input produced the expected result: not-installed",
        "returncode": 0,
        "source": "compares every skill with its GitHub source and reports what changed",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "scu --json prints a machine-readable report",
        "command": "<guest-path> --cwd <guest-path> --json",
        "evidence": "\"status\": \"not-installed\",\n    \"installSource\": \"mattpocock/skills/skills/engineering/tdd\",\n    \"url\": \"https://github.com/mattpocock/skills/tree/HEAD/skills/engineering/tdd\",\n    \"hasStalePath\": false\n  }\n]\n",
        "expected": "JSON report with tdd status",
        "input": "project with skills-lock.json listing mattpocock/skills tdd",
        "kind": "claim",
        "outcome": "Real input produced the expected result: \"status\": \"not-installed\"",
        "returncode": 0,
        "source": "scu --json     # machine-readable report",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected README, package.json bin entries (scu -> dist/cli.js) and src/*.ts (no setInterval, cron, scheduler, watch or webhook code). scu runs once per invocation; --exit-code is a CI exit status, not a product cycle.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected README, package.json bin entries (scu -> dist/cli.js) and src/*.ts (no setInterval, cron, scheduler, watch or webhook code). scu runs once per invocation; --exit-code is a CI exit status, not a product cycle.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "<guest-path>",
        "--cwd",
        "<guest-path>",
        "--json"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "[\n  {\n    \"name\": \"tdd\",\n    \"status\": \"not-installed\",\n    \"installSource\": \"mattpocock/skills/skills/engineering/tdd\",\n    \"url\": \"https://github.com/mattpocock/skills/tree/HEAD/skills/engineering/tdd\",\n    \"hasStalePath\": false\n  }\n]",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Development: offline test suite passes",
        "command": "pnpm test",
        "deferred": false,
        "evidence": "rge was not planned for\n      ---\n      duration_ms: 82.075011\n      type: 'test'\n      ...\n    # Subtest: should restore the previous version when the lock is unreadable after installing\n    ok 4 - should restore the previous version when the lock is unreadable after installing\n      ---\n      duration_ms: 83.051335\n      type: 'test'\n      ...\n    1..4\nok 42 - upgradeSkill installed version check\n  ---\n  duration_ms: 315.443158\n  type: 'suite'\n  ...\n1..42\n# tests 185\n# suites 42\n# pass 185\n# fail 0\n# cancelled 0\n# skipped 0\n# todo 0\n# duration_ms 10233.783964\n$ node --test \"src/**/*.test.ts\"",
        "expected": "all node --test cases pass",
        "input": "pnpm test",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Development section (pnpm test)",
        "verdict": "yes"
      },
      {
        "claim": "Usage: scu --json machine-readable report on the documented lock file",
        "command": "<guest-path> --cwd <guest-path> --json",
        "deferred": false,
        "evidence": "[\n  {\n    \"name\": \"tdd\",\n    \"status\": \"not-installed\",\n    \"installSource\": \"mattpocock/skills/skills/engineering/tdd\",\n    \"url\": \"https://github.com/mattpocock/skills/tree/HEAD/skills/engineering/tdd\",\n    \"hasStalePath\": false\n  }\n]",
        "expected": "JSON report listing tdd",
        "input": "--cwd <guest-path> --json",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Usage (scu --json)",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Installed scu from the pinned checkout with npm install -g --prefix into a user-local prefix, not the published npm package from the README Installation section, so the tested code is the snapshot.",
    "Ran scu via absolute path <guest-path> because the prefix is not on PATH.",
    "Used a fixture project (<guest-path>) with a hand-written skills-lock.json, because the snapshot has no lock file. The computedHash is a dummy value; the result does not test update detection or installs.",
    "Not run: scu -u / --force (would modify skills), --scan (needs SkillSpector, uv tool install from GitHub, not done), --ui (opens a browser; browser use was not allowed beyond the CDP endpoint check), --min-age and --exit-code (no update to hold back)."
  ],
  "fault_owner": null,
  "main_blocker": null,
  "operation": "Check skills listed in skills-lock.json for newer upstream versions with scu (skills-check-updates), report-only, JSON output",
  "operation_scope": "Node >=22.18 (guest has v22.23.4, npm 10.9.9, pnpm 12.15.0), GitHub network access. Fixture project <guest-path> with one lock entry (mattpocock/skills tdd). No local skill copy installed, so status is not-installed. No credentials or browser needed.",
  "outcome": "working",
  "plain_failure": null,
  "steps": [
    "curl $CDP_URL/json/version -> HTTP 200 (Chrome/155.0.8059.84); not used, product is CLI-only",
    "pnpm install (README Development) -> exit 0, 4 packages added",
    "pnpm build (README Development) -> exit 0, dist/ written",
    "pnpm test (README Development) -> 185 tests, 0 failing",
    "npm install -g --prefix <guest-path> <guest-path> -> scu and skills-check-updates bins linked to dist/cli.js",
    "scu --help -> exit 0 (setup check)",
    "scu --cwd <guest-path> --details -> tdd not installed, 0 skills up to date",
    "scu --cwd <guest-path> --json -> JSON report with name tdd, status not-installed (probe and claims)",
    "<env-var>=<guest-path> python3 -I <guest-path> --validate --replay -> valid, replay PASS"
  ],
  "stuck_step": null,
  "suggested_fix": null
}
