{
  "schema": "carehab-duo/1",
  "name": "proof-of-done",
  "title": "Proof of Done",
  "version": "0.1.0",
  "license": "MIT",
  "tier": "open",
  "summary": "A skill plus stdlib-only verifier that checks a claimed-live URL from observed HTTP(S) responses (status, redirects, TLS, text, checksum) instead of an agent's self-report.",
  "parts": {
    "skill": "skills/proof-of-done/SKILL.md",
    "verifier": "verifier/proof_of_done.py",
    "operator_artifacts": [
      "operator/five_signals_card.md",
      "operator/video_storyboard.md"
    ],
    "fixtures": [
      "fixtures/serve_fixture.py",
      "fixtures/scenarios.json"
    ]
  },
  "tools_permissions": {
    "skill_allowed_tools": [
      "Bash"
    ],
    "verifier": {
      "network": "outbound HTTP(S) to the user-given URL only",
      "filesystem": "read-only except optional checksum file (--sha256-file); writes nothing",
      "subprocess": "none"
    }
  },
  "data_privacy": {
    "collects": "nothing",
    "sends": "one HTTP GET per hop to the URL the user gives (and its redirects); no telemetry",
    "stores": "nothing; result printed to stdout only"
  },
  "test_commands": [
    "./run_tests.sh"
  ],
  "install": {
    "scope": "Claude Code: copy skills/proof-of-done/ to ~/.claude/skills/proof-of-done/ or <project>/.claude/skills/proof-of-done/",
    "steps": [
      "Unzip the package.",
      "Copy skills/proof-of-done/ into ~/.claude/skills/ (or <project>/.claude/skills/).",
      "Keep verifier/proof_of_done.py somewhere the agent can run with python3 (3.8+).",
      "Run ./run_tests.sh to confirm."
    ]
  },
  "claims_not_made": [
    "No universal cross-agent compatibility: only the Claude Code skill directory install is tested.",
    "SKILL.md is advice to an agent, not an enforcement gate.",
    "LIVE_VERIFIED means the URL answered as expected at one moment, not that the whole task is correct.",
    "No video exists; operator/video_storyboard.md is a storyboard and script only.",
    "Does not prove content correctness beyond the requested text/checksum checks.",
    "Does not defend against a malicious server that serves different content to different clients.",
    "Verifier output is evidence only when a human or CI ran it; an agent running its own verifier produces an agent claim.",
    "Hashes are same-origin: they detect corruption, not a compromised host; not third-party verified.",
    "Declared tools_permissions are documentation, not an enforced sandbox.",
    "No wellbeing or effectiveness effect is claimed."
  ],
  "artifacts": [
    {
      "path": "LICENSE",
      "sha256": "df32f88f33ff95e9e85405a3d153e6a09c43f25f564649e797973e670863b789",
      "bytes": 1066
    },
    {
      "path": "README.md",
      "sha256": "24439edf263e74a25c04b1f10dd06e891d75f74fd5087fa235ad6deec5a512f9",
      "bytes": 2986
    },
    {
      "path": "fixtures/scenarios.json",
      "sha256": "9106828d565d305c786585ba7c669233cb186bdc67373a0259f7d22d3113e193",
      "bytes": 2509
    },
    {
      "path": "fixtures/serve_fixture.py",
      "sha256": "a5ab7e5e78f65d879df64fda448a24185e39fe0681ff630db5d88fdc0c6c3dba",
      "bytes": 2679
    },
    {
      "path": "operator/five_signals_card.md",
      "sha256": "4ac9cfc0864ab782d7309fe77c1b5dbe35c73d8db4d2fea4ffbb4d22d3429a65",
      "bytes": 1191
    },
    {
      "path": "operator/video_storyboard.md",
      "sha256": "6b52f13dce3976b2d32c4b9cd1e3466e8a99f0cbc4f513b08bea5642ce83226a",
      "bytes": 2008
    },
    {
      "path": "run_tests.sh",
      "sha256": "6f3150b9a679af29dd56179555e319c3e360ea95caa1cd7d31f5eb68bcc46f40",
      "bytes": 174
    },
    {
      "path": "skills/proof-of-done/SKILL.md",
      "sha256": "0360ea8df4aab907b75afc88d19c7a5e2537a8aaeb17cc53691432908861abf9",
      "bytes": 2169
    },
    {
      "path": "tests/live_example_output.txt",
      "sha256": "eb20f6514fea799ce1b5bd90a0f9074a99bdcdb5157e69a7e5384368091e5157",
      "bytes": 658
    },
    {
      "path": "tests/test_output.txt",
      "sha256": "02afc6ade50548ab858e0198c67d9eca5372cea60ebdf179ee1d79907518143d",
      "bytes": 2194
    },
    {
      "path": "tests/test_proof_of_done.py",
      "sha256": "4c3548b38e26ee66fe596ab4d54aa96ff0b21cfd5424773817324bfcc07671e9",
      "bytes": 9435
    },
    {
      "path": "verifier/proof_of_done.py",
      "sha256": "07eb16a6237bd2cecf5c8cb1380459d9d7925e5d2bc2c33dd9ee6bf007df1455",
      "bytes": 9666
    }
  ],
  "human_agent_split": {
    "human_artifacts": [
      "operator/five_signals_card.md",
      "operator/video_storyboard.md",
      "README.md"
    ],
    "agent_artifacts": [
      "skills/proof-of-done/SKILL.md",
      "verifier/proof_of_done.py"
    ]
  }
}
