Find notice windows, expiring contracts, and missing owners before an unwanted renewal or service interruption. The pack reads a local JSON portfolio and produces a deterministic, auditable report; an optional connected coding-agent CLI can turn the findings into a concise operator brief.
Who it is for
Operations, procurement, finance, and platform teams that keep contract dates in a spreadsheet or export but do not have a reliable daily renewal watch.
Quick start
sudo bash install.sh --no-service
cp examples/contracts.json my_contracts.json
./venv/bin/python agent.py --portfolio my_contracts.json scan
./venv/bin/python agent.py --portfolio my_contracts.json report --out renewal_report.md
Each contract needs contract_id, vendor, end_date, notice_days, and an accountable owner. Missing fields are findings, never silently guessed.
local contracts.json
|
v
parse and validate --> calculate notice date --> classify risk --> Markdown / JSON report
|
+--> optional BYO-LLM brief
Honest operating modes
| Capability | Deterministic core | Optional BYO-LLM |
|---|---|---|
| Date arithmetic, notice windows, missing data | Yes | Not needed |
| JSON and Markdown reports | Yes | Not needed |
| Prioritized human-readable renewal brief | Template summary | Claude Code, Kimi Code, or Codex CLI |
No API key or network call is required. The optional CLI uses the subscription already connected on the machine. This agent identifies dates and ownership gaps; it never sends cancellation notices, accepts renewal terms, or changes a vendor account.
Commands
python agent.py --portfolio my_contracts.json --window-days 90 scan
python agent.py --portfolio my_contracts.json report --out renewal_report.md
python agent.py --portfolio my_contracts.json brief
python agent.py status
python test_agent.py
See CUSTOMIZE.md for your export connector and CHECKLIST.md for production use.