{
  "run_id": "TayHCode--pco-seat-audit-claude-haiku-5-5-1792739117646818814",
  "checker": {
    "claims": [
      {
        "claim": "Quickstart runs with no account, token, network or interactive input",
        "command": "/opt/homebrew/bin/python3 -m pco_seat_audit --plan examples/plan.json --usage examples/usage.json --as-of 2026-10-13T12:00:00Z --output .coldpass/out/claim-quickstart.txt",
        "evidence": "Giving: PAID BUT UNUSED \u2014 0 / 100 unique donors (paid tier: Standard)\nServices: OK \u2014 9 / 100 service plans (paid tier: Standard)\n  Services comparison: 90-day activity count in the manual plan's unit (service plans); this does not measure occupied seats or seat/licence usage.\nPublishing: OK \u2014 1 / 20 published episodes (paid tier: Standard)\n\nUnofficial tool; not affiliated with or endorsed by Planning Center.\nPlan and price values come from pasted subscriptions or manual corrections; available API-root limits take priority. Confirm all values against current billing.\nReport reference time: 2026",
        "expected": "audit report printed with Giving paid but unused",
        "input": "synthetic examples/plan.json and examples/usage.json",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Giving: PAID BUT UNUSED \u2014 0 / 100 unique donors",
        "returncode": 0,
        "source": "It needs no account, token, network or interactive input.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Import-only writes JSON to the file and shows the billing review in the terminal",
        "command": "/opt/homebrew/bin/python3 -m pco_seat_audit --subscriptions examples/subscriptions-synthetic.txt --import-only --output .coldpass/out/claim-import.json",
        "evidence": "Saved billing import review (physical source lines; HTML text normalized).\nReview the extracted price, plan and optional storage before changing a subscription.\nSubscriptions shape observed 2026-10-13: bare USD/$ prices are monthly, and positive/zero prices mean paid/not paid. Confirm discounts and tax.\ncheck_ins:\n  paid: true\n    source line 9: $44\n  tier: \"360 Daily Check-Ins\"\n    source line 10: 360 Daily Check-Ins\n  limit: 360\n    source line 10: 360 Daily Check-Ins\n  storage: not applicable\n  price_shown: {\"amount\": 44.0, \"currency\": \"$\", \"period\": \"month\"}\n    source line 9: $44\n  monthl",
        "expected": "billing review printed and JSON plan written",
        "input": "examples/subscriptions-synthetic.txt with --import-only",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Saved billing import review",
        "returncode": 0,
        "source": "Import-only writes JSON to the file and shows the billing review in the terminal.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Inspected README.md and pco_seat_audit/cli.py, billing.py, pricing.py and __main__.py. The tool is a one-shot command-line audit with no cron, scheduler, loop, webhook, --once or --now entry point. The only time.sleep is a 0.25 s request spacing delay inside the API client. Nothing runs repeatedly, so no product cycle was triggered.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Inspected README.md and pco_seat_audit/cli.py, billing.py, pricing.py and __main__.py. The tool is a one-shot command-line audit with no cron, scheduler, loop, webhook, --once or --now entry point. The only time.sleep is a 0.25 s request spacing delay inside the API client. Nothing runs repeatedly, so no product cycle was triggered.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "/opt/homebrew/bin/python3",
        "-m",
        "pco_seat_audit",
        "--plan",
        "examples/plan.json",
        "--usage",
        "examples/usage.json",
        "--as-of",
        "2026-10-13T12:00:00Z",
        "--output",
        ".coldpass/out/probe-report.txt"
      ],
      "kind": "cli",
      "needs_browser": false,
      "needs_credentials": false,
      "returncode": 0,
      "scope": "product operation",
      "stderr": "",
      "stdout": "Planning Center usage audit \u2014 Synthetic sample organization\nLook-back window: 90 days\nPlan source: plan file examples/plan.json\nUsage source: usage file examples/usage.json\n\nFor account administrators. Recommendations only; no account changes are made.\n\nCheck Ins: LOW USAGE \u2014 2 / 500 unique people checked in (paid tier: Large); Consider Small (200 unique people checked in); possible saving 20.00 per month (confirm current billing)\n  Check-Ins comparison: distinct people across 90 days against a daily check-in allowance; this is not a daily usage figure. Review daily use before changing plans.\nRegistrations: LOW USAGE \u2014 2 / 100 attendee records (paid tier: Standard); Consider Basic (50 attendee records); possible saving 15.00 per month (confirm current billing)\nGiving: PAID BUT UNUSED \u2014 0 / 100 unique donors (paid tier: Standard)\nServices: OK \u2014 9 / 100 service plans (paid tier: Standard)\n[excerpt truncated]",
      "working": true
    },
    "evidence_strength": "readme_checked",
    "example_checks": [
      {
        "claim": "Quickstart: synthetic plan and usage audit",
        "command": "/opt/homebrew/bin/python3 -m pco_seat_audit --plan examples/plan.json --usage examples/usage.json --as-of 2026-10-13T12:00:00Z --output .coldpass/out/example-plan.txt",
        "deferred": false,
        "evidence": "ED \u2014 0 / 100 unique donors (paid tier: Standard)\nServices: OK \u2014 9 / 100 service plans (paid tier: Standard)\n  Services comparison: 90-day activity count in the manual plan's unit (service plans); this does not measure occupied seats or seat/licence usage.\nPublishing: OK \u2014 1 / 20 published episodes (paid tier: Standard)\n\nUnofficial tool; not affiliated with or endorsed by Planning Center.\nPlan and price values come from pasted subscriptions or manual corrections; available API-root limits take priority. Confirm all values against current billing.\nReport reference time: 2026-10-13T12:00:00+00:00",
        "expected": "report with Services OK line",
        "input": "examples/plan.json examples/usage.json --as-of 2026-10-13T12:00:00Z",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Quickstart",
        "verdict": "yes"
      },
      {
        "claim": "Next quickstart: Subscriptions paste with API-root responses",
        "command": "/opt/homebrew/bin/python3 -m pco_seat_audit --subscriptions examples/subscriptions-synthetic.txt --account-roots examples/account-roots-synthetic.json --usage examples/usage.json --as-of 2026-10-13T12:00:00Z --output .coldpass/out/example-subscriptions.txt",
        "deferred": false,
        "evidence": "r it\n  limit: not found \u2014 enter it\n  storage: not applicable\n  price_shown: not found \u2014 enter it\n  monthly_price: not found \u2014 enter it\nSupply missing required billing values in a correction plan file. Optional storage and tiers without numeric limits need manual review; no missing paid status or price is guessed.\nPrice ladder: built-in 2026-10-13; pasted products: none; pasted date: not supplied. Monthly USD before tax; confirm current prices. A pasted product replaces that product's whole default ladder; other products retain the dated default.\nReport reference time: 2026-10-13T12:00:00+00:00",
        "expected": "report with Team Members seat line",
        "input": "examples/subscriptions-synthetic.txt, examples/account-roots-synthetic.json, examples/usage.json",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Quickstart",
        "verdict": "yes"
      },
      {
        "claim": "Change plans ladder quickstart",
        "command": "/opt/homebrew/bin/python3 -m pco_seat_audit --subscriptions examples/subscriptions-synthetic.txt --account-roots examples/account-roots-synthetic.json --change-plans examples/change-plans-synthetic.txt --ladder-date 2026-10-13 --usage examples/usage.json --as-of 2026-10-13T12:00:00Z --output .coldpass/out/example-ladder.txt",
        "deferred": false,
        "evidence": "rage: not applicable\n  price_shown: not found \u2014 enter it\n  monthly_price: not found \u2014 enter it\nSupply missing required billing values in a correction plan file. Optional storage and tiers without numeric limits need manual review; no missing paid status or price is guessed.\nPrice ladder: built-in 2026-10-13; pasted products: check_ins, publishing, registrations, services; pasted date: 2026-10-13. Monthly USD before tax; confirm current prices. A pasted product replaces that product's whole default ladder; other products retain the dated default.\nReport reference time: 2026-10-13T12:00:00+00:00",
        "expected": "report with pasted Change plans price ladder",
        "input": "examples/change-plans-synthetic.txt --ladder-date 2026-10-13",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Quickstart",
        "verdict": "yes"
      },
      {
        "claim": "Review a paste and write an editable partial plan without usage or a token",
        "command": "/opt/homebrew/bin/python3 -m pco_seat_audit --subscriptions examples/subscriptions-synthetic.txt --import-only --output .coldpass/out/example-import.json",
        "deferred": false,
        "evidence": "  price_shown: not found \u2014 enter it\n  monthly_price: not found \u2014 enter it\nSupply missing required billing values in a correction plan file. Optional storage and tiers without numeric limits need manual review; no missing paid status or price is guessed.\nPrice ladder: built-in 2026-10-13; pasted products: none; pasted date: not supplied. Monthly USD before tax; confirm current prices. A pasted product replaces that product's whole default ladder; other products retain the dated default.\nPartial plan written to .coldpass/out/example-import.json; supply missing values and metrics before auditing.",
        "expected": "billing review and partial plan JSON",
        "input": "examples/subscriptions-synthetic.txt --import-only",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Quickstart",
        "verdict": "yes"
      },
      {
        "claim": "Acceptance tests",
        "command": "/opt/homebrew/bin/python3 -m unittest discover -s tests",
        "deferred": false,
        "evidence": ".........................................................................................\n----------------------------------------------------------------------\nRan 89 tests in 2.820s\n\nOK",
        "expected": "all offline tests pass",
        "input": "tests/ directory",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md Manual inputs and tests",
        "verdict": "yes"
      },
      {
        "claim": "Live account connection via fetch",
        "command": "",
        "deferred": false,
        "evidence": "Missing prerequisite: needs a Planning Center Personal Access Token (PCO_APP_ID and PCO_SECRET). Not available in this guest. Ran the same fetch command without credentials: it exits 2 with 'error: live mode needs PCO_APP_ID and PCO_SECRET environment variables' and writes no complete report; the offline paths above were run instead.",
        "expected": "documented command completes successfully",
        "input": "",
        "kind": "example",
        "outcome": "Missing prerequisite: needs a Planning Center Personal Access Token (PCO_APP_ID and PCO_SECRET). Not available in this guest. Ran the same fetch command without credentials: it exits 2 with 'error: live mode needs PCO_APP_ID and PCO_SECRET environment variables' and writes no complete report; the offline paths above were run instead.",
        "source": "README.md Connect your account to obtain usage",
        "verdict": "blocked"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
