{
  "checker": {
    "claims": [
      {
        "claim": "The documented npx installer adds the skills to the project, and they can be listed back",
        "command": "npx skills@latest list",
        "evidence": "tdd                          \u001b[0m \u001b[38;5;102m./.claude/skills/tdd                          \u001b[0m\n  \u001b[38;5;102mAgents:\u001b[0m Claude Code  \u001b[38;5;102mSource:\u001b[0m mattpocock/skills\n\u001b[36mteach                        \u001b[0m \u001b[38;5;102m./.claude/skills/teach                        \u001b[0m\n  \u001b[38;5;102mAgents:\u001b[0m Claude Code  \u001b[38;5;102mSource:\u001b[0m mattpocock/skills\n\u001b[36mto-questionnaire             \u001b[0m \u001b[38;5;102m./.claude/skills/to-questionnaire             \u001b[0m\n  \u001b[38;5;102mAgents:\u001b[0m Claude Code  \u001b[38;5;102mSource:\u001b[0m mattpocock/skills\n\u001b[36mto-spec                      \u001b[0m \u001b[38;5;102m./.claude/skill",
        "expected": "installed skill list includes tdd",
        "input": "skills list in the project where skills add ran",
        "kind": "claim",
        "outcome": "Real input produced the expected result: tdd",
        "returncode": 0,
        "source": "npx skills@latest add mattpocock/skills -a <agent>  # cursor, opencode, devin, windsurf, amp, pi; omit -a to choose",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "The tdd skill is installed and can be slotted into a project",
        "command": "npx skills@latest list",
        "evidence": "tdd                          \u001b[0m \u001b[38;5;102m./.claude/skills/tdd                          \u001b[0m\n  \u001b[38;5;102mAgents:\u001b[0m Claude Code  \u001b[38;5;102mSource:\u001b[0m mattpocock/skills\n\u001b[36mteach                        \u001b[0m \u001b[38;5;102m./.claude/skills/teach                        \u001b[0m\n  \u001b[38;5;102mAgents:\u001b[0m Claude Code  \u001b[38;5;102mSource:\u001b[0m mattpocock/skills\n\u001b[36mto-questionnaire             \u001b[0m \u001b[38;5;102m./.claude/skills/to-questionnaire             \u001b[0m\n  \u001b[38;5;102mAgents:\u001b[0m Claude Code  \u001b[38;5;102mSource:\u001b[0m mattpocock/skills\n\u001b[36mto-spec                      \u001b[0m \u001b[38;5;102m./.claude/skill",
        "expected": "installed skill list includes tdd",
        "input": "skills list in the project where skills add ran",
        "kind": "claim",
        "outcome": "Real input produced the expected result: tdd",
        "returncode": 0,
        "source": "I've built a **[`/tdd`](./skills/engineering/tdd/SKILL.md) skill** you can slot into any project.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected: README.md, package.json scripts (check-plugin-version, version), scripts/list-skills.sh, scripts/link-skills.sh, CLAUDE.md, .github/workflows (release.yml/triage-label.yml/needs-info.yml are GitHub CI triggers, not product cycles). The product is a set of Markdown agent skills with no cron, loop, webhook, --once or --now entry point. Schedules appear only as advice to the agent inside skills such as chief-of-staff and loop-me, so there is no product-run cycle to trigger.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected: README.md, package.json scripts (check-plugin-version, version), scripts/list-skills.sh, scripts/link-skills.sh, CLAUDE.md, .github/workflows (release.yml/triage-label.yml/needs-info.yml are GitHub CI triggers, not product cycles). The product is a set of Markdown agent skills with no cron, loop, webhook, --once or --now entry point. Schedules appear only as advice to the agent inside skills such as chief-of-staff and loop-me, so there is no product-run cycle to trigger.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "npx",
        "skills@latest",
        "list"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "[1mProject Skills[0m\n\n[36mask-matt                     [0m [38;5;102m./.claude/skills/ask-matt                     [0m\n  [38;5;102mAgents:[0m Claude Code  [38;5;102mSource:[0m mattpocock/skills\n[36mchief-of-staff               [0m [38;5;102m./.claude/skills/chief-of-staff               [0m\n  [38;5;102mAgents:[0m Claude Code  [38;5;102mSource:[0m mattpocock/skills\n[36mclaude-handoff               [0m [38;5;102m./.claude/skills/claude-handoff               [0m\n  [38;5;102mAgents:[0m Claude Code  [38;5;102mSource:[0m mattpocock/skills\n[36mcode-review                  [0m [38;5;102m./.claude/skills/code-review                  [0m\n  [38;5;102mAgents:[0m Claude Code  [38;5;102mSource:[0m mattpocock/skills\n[36mcodebase-design              [0m [38;5;102m./.claude/skills/codebase-design              [0m\n  [38;5;102mAgents:[0m Claude Code  [38;5;102mSource:[0m mattpocock/skills\n[excerpt truncated]",
      "working": false
    },
    "evidence_strength": "partly_checked",
    "example_checks": [
      {
        "claim": "Repo check that the plugin version is in sync with package.json",
        "command": "npm run check-plugin-version",
        "deferred": false,
        "evidence": "> mattpocock-skills@1.3.1 check-plugin-version\n> node scripts/sync-plugin-version.mjs --check\n\nplugin.json version is 1.3.1 (already in sync)",
        "expected": "plugin.json version is 1.3.1 (already in sync)",
        "input": "--check",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "package.json scripts.check-plugin-version",
        "verdict": "yes"
      },
      {
        "claim": "Lists every SKILL.md in the repo (dev-only listing script)",
        "command": "bash scripts/list-skills.sh",
        "deferred": false,
        "evidence": "-deep-modules/SKILL.md\nskills/in-progress/writing-beats/SKILL.md\nskills/in-progress/writing-fragments/SKILL.md\nskills/in-progress/writing-shape/SKILL.md\nskills/misc/git-guardrails-claude-code/SKILL.md\nskills/misc/migrate-to-shoehorn/SKILL.md\nskills/misc/scaffold-exercises/SKILL.md\nskills/misc/setup-pre-commit/SKILL.md\nskills/productivity/grill-me/SKILL.md\nskills/productivity/grilling/SKILL.md\nskills/productivity/handoff/SKILL.md\nskills/productivity/teach/SKILL.md\nskills/productivity/to-questionnaire/SKILL.md\nskills/productivity/wait-what/SKILL.md\nskills/productivity/writing-for-agents/SKILL.md",
        "expected": "prints skill paths including skills/engineering/tdd/SKILL.md",
        "input": "no arguments",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "scripts/list-skills.sh",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "deviations": [
    "Ubuntu's apt nodejs (v18.19.1) is below the skills CLI requirement (node >= 22.20); npx skills failed with a SyntaxError on styleText. Substituted a user-local Node 22.23.4 tarball from nodejs.org and linked it into /usr/local/bin.",
    "The README's installer was run non-interactively with -a claude-code -y (the README's interactive prompt cannot run in this guest).",
    "Replay details report working:false and evidence_strength partly_checked: the replayed operation is a read-back of the installed skill list, not a fresh install or an agent loading a skill. The claims themselves were judged yes.",
    "Telemetry declined via DISABLE_TELEMETRY=1 and DO_NOT_TRACK=1."
  ],
  "fault_owner": null,
  "main_blocker": "The saved checks do not fully confirm documented product behavior.",
  "operation": "Install the skills from mattpocock/skills with the README's npx installer, then list the installed skills (including tdd) and run the repo's documented check scripts.",
  "operation_scope": "Linux Ubuntu 24.04 guest, Node.js >= 22.20 (the skills CLI refuses Node 18), network access to GitHub and npm. Installs into a scratch project at /tmp/skills-trial (outside the checkout) for the claude-code agent. Not exercised: the Claude Code plugin install, scripts/link-skills.sh (dev-only, writes to ~/.claude), and any agent actually loading a skill.",
  "outcome": "unverified",
  "plain_failure": null,
  "steps": [
    "git init; git remote add origin https://github.com/mattpocock/skills; git fetch --depth 1 origin 5beb35b040e3de97e54fa9e386d7e42d15c295c2; git reset --mixed FETCH_HEAD",
    "sudo apt-get install -y nodejs npm (gave Node v18.19.1, too old for the skills CLI)",
    "curl node-v22.23.4-linux-x64.tar.xz from nodejs.org into /tmp/node22; symlinked node/npm/npx into /usr/local/bin",
    "npx --yes skills@latest --help (from /tmp)",
    "npx --yes skills@latest add mattpocock/skills -a claude-code -y (run in /tmp/skills-trial, DISABLE_TELEMETRY=1 DO_NOT_TRACK=1)",
    "npx skills@latest list (in /tmp/skills-trial): 38 skills, including tdd",
    "npm ci (in checkout, per release.yml)",
    "npm run check-plugin-version: plugin.json version is 1.3.1 (already in sync)",
    "bash scripts/list-skills.sh: lists SKILL.md paths including skills/engineering/tdd/SKILL.md",
    "python3 -I <guest-path> --validate --replay: valid, no problems, replay PASS"
  ],
  "stuck_step": "npx skills@latest list",
  "suggested_fix": "None required for this product. Optional: the skills CLI should document its Node >= 22.20 requirement in the README install section, since the README does not mention it."
}
