{
  "run_id": "TayHCode--pco-seat-audit-claude-haiku-5-5-1792725136010615154",
  "checker": {
    "claims": [
      {
        "claim": "Quickstart writes a report file and prints the same report",
        "command": "python3 -m pco_seat_audit --plan examples/plan.json --usage examples/usage.json --as-of 2026-10-13T12:00:00Z --output .coldpass/runs/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": "stdout contains the Giving line of the audit report",
        "input": "examples/plan.json and examples/usage.json as of 2026-10-13T12:00:00Z",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Giving: PAID BUT UNUSED \u2014 0 / 100 unique donors",
        "returncode": 0,
        "source": "It writes `report.txt` and prints the same report.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      },
      {
        "claim": "Import-only writes an editable plan and shows the billing review",
        "command": "python3 -m pco_seat_audit --subscriptions examples/subscriptions-synthetic.txt --import-only --output .coldpass/runs/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": "stdout contains the saved billing import review heading",
        "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"
      },
      {
        "claim": "Quickstart needs no account, token, network or interactive input",
        "command": "python3 -m pco_seat_audit --plan examples/plan.json --usage examples/usage.json --as-of 2026-10-13T12:00:00Z --output .coldpass/runs/claim-offline.txt",
        "evidence": "Services: 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\n",
        "expected": "stdout contains the Services line",
        "input": "examples/plan.json and examples/usage.json, no token set",
        "kind": "claim",
        "outcome": "Real input produced the expected result: Services: OK \u2014 9 / 100 service plans",
        "returncode": 0,
        "source": "It needs no account, token, network or interactive input.",
        "source_checked": true,
        "source_file": "README.md",
        "verdict": "yes"
      }
    ],
    "cycle_checks": [
      {
        "claim": "Scheduled or looping main behavior",
        "command": "",
        "evidence": "Entry points inspected (pco_seat_audit/__main__.py, cli.py, billing.py, pricing.py) and README: the tool is a one-shot CLI run by hand. No cron, scheduler, loop, daemon, webhook, --once or --now trigger exists; the only time.sleep is a request-rate limit between API GETs (cli.py:227). Webhooks appear only in docs/api-review.md as ruled-out API resources.",
        "expected": "identify the product trigger",
        "input": "source inspection",
        "kind": "cycle",
        "outcome": "Entry points inspected (pco_seat_audit/__main__.py, cli.py, billing.py, pricing.py) and README: the tool is a one-shot CLI run by hand. No cron, scheduler, loop, daemon, webhook, --once or --now trigger exists; the only time.sleep is a request-rate limit between API GETs (cli.py:227). Webhooks appear only in docs/api-review.md as ruled-out API resources.",
        "source": "repository entry points",
        "verdict": "yes"
      }
    ],
    "details": {
      "argv": [
        "python3",
        "-m",
        "pco_seat_audit",
        "--plan",
        "examples/plan.json",
        "--usage",
        "examples/usage.json",
        "--as-of",
        "2026-10-13T12:00:00Z",
        "--output",
        ".coldpass/runs/probe-final.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": "Subscriptions paste plus offline account roots and usage gives an audit",
        "command": "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/runs/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": "audit report with Services labelled Team Members",
        "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 (second command)",
        "verdict": "yes"
      },
      {
        "claim": "Change plans ladder is applied to the audit",
        "command": "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/runs/example-ladder-final.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": "audit report notes pasted Change plans ladder",
        "input": "examples/change-plans-synthetic.txt with ladder date 2026-10-13",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md, Quickstart (third command)",
        "verdict": "yes"
      },
      {
        "claim": "Acceptance tests run with the documented command",
        "command": "python3 -m unittest discover -s tests",
        "deferred": false,
        "evidence": ".........................................................................................\n----------------------------------------------------------------------\nRan 89 tests in 2.829s\n\nOK",
        "expected": "all tests pass",
        "input": "repository tests directory",
        "kind": "example",
        "outcome": "command completed successfully",
        "returncode": 0,
        "source": "README.md, Manual inputs and tests: Run acceptance tests with `python3 -m unittest discover -s tests`.",
        "verdict": "yes"
      }
    ],
    "status": "PASS"
  },
  "diagnosis": null
}
