{"id":48247212,"url":"https://github.com/itprodirect/exai-insurance-intel","last_synced_at":"2026-04-04T20:40:09.780Z","repository":{"id":340240988,"uuid":"1164843794","full_name":"itprodirect/exai-insurance-intel","owner":"itprodirect","description":"AI-powered insurance intelligence toolkit for carrier research, expert lookup, contractor vetting, and CAT-loss investigation.","archived":false,"fork":false,"pushed_at":"2026-03-26T23:46:02.000Z","size":558,"stargazers_count":0,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T11:26:50.055Z","etag":null,"topics":["agent-search","caching","catastrophe","cost-tracking","evaluation","exa","insurance","jupyter-notebook","litigation-support","people-search","web-search"],"latest_commit_sha":null,"homepage":"https://www.claims.itprodirect.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itprodirect.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-23T14:48:13.000Z","updated_at":"2026-03-26T23:35:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itprodirect/exai-insurance-intel","commit_stats":null,"previous_names":["itprodirect/exai-search-demo","itprodirect/exai-insurance-intel"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/itprodirect/exai-insurance-intel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itprodirect%2Fexai-insurance-intel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itprodirect%2Fexai-insurance-intel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itprodirect%2Fexai-insurance-intel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itprodirect%2Fexai-insurance-intel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itprodirect","download_url":"https://codeload.github.com/itprodirect/exai-insurance-intel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itprodirect%2Fexai-insurance-intel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31413282,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-search","caching","catastrophe","cost-tracking","evaluation","exa","insurance","jupyter-notebook","litigation-support","people-search","web-search"],"created_at":"2026-04-04T20:40:09.121Z","updated_at":"2026-04-04T20:40:09.750Z","avatar_url":"https://github.com/itprodirect.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# exai-insurance-intel\n\nExa-powered **insurance intelligence toolkit** for CAT-loss, claims, expert, contractor, and market research workflows.\n\n## What This Repo Is Today\n\nThis repo is a **backend workflow engine, API, and pilot web UI** for insurance intelligence. All core intelligence workflows (ranked search, cited answers, research reports, structured extraction, seed-URL discovery, benchmark evaluation) are fully implemented, tested, and runnable from the CLI, Jupyter notebook, FastAPI server, and Next.js frontend.\n\n**What exists:**\n- Complete CLI with 8 commands covering all Exa API endpoints\n- FastAPI server wrapping all workflows as JSON endpoints\n- Next.js frontend with search, answer, and research workflow UIs\n- SQLite caching with budget enforcement and cost ledger\n- Evaluation taxonomy with benchmark suites (55+ insurance queries)\n- Artifact export system (JSON/JSONL/CSV/Markdown)\n- Smoke + live execution modes with CI on every push\n- Comprehensive test suite (~3,300 lines)\n\n**What does not exist yet:**\n- Container or cloud deployment (no Docker, no Terraform)\n- Production database (SQLite cache only)\n- Authentication or multi-user support\n\n**Near-term direction:** Build a controlled pilot web product layer on top of the existing workflow engine. See [docs/roadmap.md](docs/roadmap.md) for phased tracks and [docs/pilot-architecture-decision.md](docs/pilot-architecture-decision.md) for architectural defaults.\n\nThis repo stays intentionally lean while supporting repeatable notebook and CLI workflows for insurance research, cited answers, structured extraction, and report generation.\n\nCore local resources:\n- one core notebook: `exa_people_search_eval.ipynb`\n- one local env file: `.env` (not committed)\n- one local sqlite cache: `exa_cache.sqlite` (not committed)\n\n## Quick Navigation\n\n- [What this repo evaluates](#what-this-repo-evaluates)\n- [Feature matrix](#feature-matrix)\n- [Architecture](#architecture)\n- [Windows 11 setup](#windows-11-setup-python-310)\n- [CLI commands](#cli-commands)\n- [API server](#api-server)\n- [Frontend](#frontend)\n- [Experiment artifacts](#experiment-artifacts)\n- [Demo gallery](#demo-gallery)\n- [Integration boundaries](#integration-boundaries)\n- [Manual Live Validation](#manual-live-validation)\n- [Roadmap and delivery history](#roadmap-and-delivery-history)\n- [Guardrails](#guardrails)\n\n## Feature Matrix\n\n| Capability | Status | Primary interface | Primary artifact/output | Notes |\n| --- | --- | --- | --- | --- |\n| Ranked search | Done | `python -m exa_demo search` | `results.jsonl`, `summary.json` | Supports additive deep-search controls |\n| Benchmark evaluation | Done | `python -m exa_demo eval` | `queries.jsonl`, `results.jsonl`, `summary.json` | Includes taxonomy scoring and grouped comparison context |\n| Search-type comparison | Done | `python -m exa_demo compare-search-types` | `comparison.md` plus paired run artifacts | Compares `deep` vs `deep-reasoning` end to end |\n| Cited answers | Done | `python -m exa_demo answer` | `answer.json` | Separate workflow from ranked-search evaluation |\n| Research reports | Done | `python -m exa_demo research` | `research.json` | Separate report-style workflow with citations |\n| Structured extraction | Done | `python -m exa_demo structured-search` | `structured_output.json` | Uses `outputSchema` for schema-driven extraction |\n| Seed-URL discovery | Done | `python -m exa_demo find-similar` | `find_similar.json` | Separate `/findSimilar` workflow and normalization path |\n| Cache and budget ledger | Done | Notebook + CLI | `exa_cache.sqlite`, `summary.json` | Prevents re-billing on cache hits |\n| API server | Done | `uvicorn exa_demo.api:app` | JSON responses | Thin FastAPI wrapper over CLI workflows; smoke mode first-class |\n| Frontend UI | Done | `npm run dev` in `frontend/` | Browser UI | Next.js + TypeScript + Tailwind + shadcn/ui; search, answer, research |\n| Smoke CI and local tests | Done | GitHub Actions + `pytest -q` | CI runs and local test suite | Default workflow runs `pytest` and notebook smoke |\n\n## Architecture\n\n```mermaid\nflowchart TD\n    U[\"Notebook or CLI user flow\"] --\u003e CLI[\"CLI / notebook orchestration\"]\n    CLI --\u003e CFG[\"Config + runtime state\"]\n    CLI --\u003e CACHE[\"SQLite cache + budget ledger\"]\n    CLI --\u003e CLIENT[\"Exa client adapters\"]\n    CLIENT --\u003e EXA[\"Exa endpoints\\n/search, /answer, /research, /findSimilar\"]\n    CLIENT --\u003e MOCK[\"Smoke-mode mocked responses\"]\n    CLIENT --\u003e MODELS[\"Typed models + normalization\"]\n    MODELS --\u003e EVAL[\"Evaluation + taxonomy + grouped comparison\"]\n    MODELS --\u003e ART[\"Artifact writer\"]\n    EVAL --\u003e ART\n    ART --\u003e EXP[\"experiments/\u003crun-id\u003e/ artifacts\"]\n    EXP --\u003e DOCS[\"README, roadmap, issue tracker, session notes\"]\n```\n\n## Repo Map\n\n- `src/exa_demo/cli.py`: thin CLI entrypoint; parser/runtime/compare helpers live in `cli_parser.py`, `cli_runtime.py`, and `cli_eval.py`\n- `src/exa_demo/client.py`: stable transport facade; payload builders and smoke responders live in `client_payloads.py` and `client_smoke.py`\n- `src/exa_demo/models.py`: stable model facade; shared API/result records live in `api_models.py`\n- `src/exa_demo/reporting.py`: summary/research facade; comparison analysis/rendering lives in `comparison_reporting.py` and `comparison_analysis.py`\n- `src/exa_demo/artifacts.py`: experiment writer; manifest/serialization helpers live in `artifact_manifest.py`\n- `src/exa_demo/`: remaining reusable package modules for config, evaluation, workflows, cache, and safety\n- `tests/`: CLI, client, model, artifact, script, and evaluation coverage\n- `benchmarks/insurance_cat_queries.json`: named query suites used by notebook and CLI evaluation\n- `experiments/`: runtime artifact root for workflow commands; local runs stay untracked by default\n- `docs/roadmap.md`: canonical backlog and delivery phases\n- `docs/issue-tracker.md`: GitHub issue-to-roadmap mapping\n- `docs/sessions/`: durable session history\n\n## What This Repo Evaluates\n\n- Query relevance for CAT-loss / insurance professional discovery\n- Cost per uncached query and projected spend at scale\n- Repeatability via sqlite caching (reruns should not re-bill)\n- Safe usage posture (public/professional info only)\n\n## Recommended Cheap Defaults\n\nIn Cell 2 (`CONFIG`), start with:\n- `use_highlights=True`\n- `use_text=False`\n- `use_summary=False`\n- `num_results=5`\n\nOptional for before/after reporting in notebook Cell 9:\n- `CONFIG[\"compare_to_run_id\"] = \"\u003cbaseline-run-id\u003e\"`\n- `CONFIG[\"compare_base_dir\"] = \"experiments\"`\n\n## Windows 11 Setup (Python 3.10+)\n\n1. Open PowerShell in this repo.\n2. Create venv:\n\n```powershell\npy -3.10 -m venv .venv\n```\n\n3. Activate:\n\n```powershell\n.\\.venv\\Scripts\\Activate.ps1\n```\n\n4. Install dependencies:\n\n```powershell\npython -m pip install --upgrade pip\npip install -r requirements.txt\n```\n\n\n## Installable Package and CLI\n\nFor an editable install with the CLI and dev tools available:\n\n```powershell\npip install -e \".[dev]\"\n```\n\nIf your environment blocks build-dependency downloads, use:\n\n```powershell\npip install -e \".[dev]\" --no-build-isolation\n```\n\nOptional local hooks:\n\n```powershell\npre-commit install\n```\n## Configure Environment\n\nCreate `.env` from template:\n\n```powershell\nCopy-Item .env.example .env\n```\n\nEdit `.env`:\n\n```env\nEXA_API_KEY=your_real_exa_api_key\nEXA_SMOKE_NO_NETWORK=0\n# Optional: set a run id label for grouped budget metrics\n# EXA_RUN_ID=demo-2026-03-05\n```\n\nNotes:\n- `.env` is ignored by git.\n- If you want no-network testing, use smoke mode (`EXA_SMOKE_NO_NETWORK=1` or runner `--mode smoke`).\n\n## Run Notebook\n\nOpen `exa_people_search_eval.ipynb` in Jupyter Lab or VS Code and run top-to-bottom.\n\nNotebook flow is intentionally fixed to 9 cells:\n1. Install/import + env load\n2. Config\n3. Exa call wrapper\n4. Cache wrapper (sqlite) + budget enforcement\n5. Single query demo\n6. Batch query suite\n7. Summary + qualitative notes\n8. Cost projections\n9. Decision rubric + integration recommendations\n\n\n## CLI Commands\n\n```powershell\npython -m exa_demo search \"forensic engineer insurance expert witness\" --mode smoke --json\npython -m exa_demo answer \"What is the Florida appraisal clause dispute process?\" --mode smoke --json\npython -m exa_demo research \"Summarize the Florida CAT market outlook.\" --mode smoke --json\npython -m exa_demo structured-search \"independent adjuster florida catastrophe claims\" --schema-file .\\path\\to\\structured-schema.json --mode smoke --json\npython -m exa_demo find-similar \"https://example.com/florida-appraisal-decision\" --mode smoke --json\npython -m exa_demo search \"Florida property insurance appraisal clause\" --type deep --additional-query \"Florida appraisal dispute statute\" --start-published-date 2025-01-01 --livecrawl --json\npython -m exa_demo eval --mode smoke --suite forensic_and_damage_engineering --limit 5 --json\npython -m exa_demo compare-search-types --mode smoke --suite forensic_and_damage_engineering --baseline-type deep --candidate-type deep-reasoning --limit 5 --json\npython -m exa_demo eval --mode smoke --limit 5 --compare-to-run-id 20260310T033256Z --json\npython -m exa_demo budget --run-id demo-2026-03 --json\n```\n\nThe search and eval commands write the same `experiments/\u003cRUN_ID\u003e/` artifact bundle as the notebook flow.\nThe `answer` command writes the same run directory and adds an `answer.json` artifact containing the cited-answer payload.\nThe `research` command writes the same run directory and adds `research.json` plus `research.md` artifacts for the research-report payload.\nThe `structured-search` command runs a schema-driven deep search and writes a `structured_output.json` artifact containing the extracted structured payload.\nThe `find-similar` command runs a seed-URL discovery workflow and writes a `find_similar.json` artifact containing the similar-result payload.\nEval workflows also emit additive export companions such as `results.csv`, `comparison.json`, `grouped_query_outcomes.csv`, and `manifest.json` without changing the existing JSON/JSONL contracts.\nDeep-search-oriented request shaping is now exposed directly in the CLI with additive flags such as `--additional-query`, `--start-published-date`, `--end-published-date`, and `--livecrawl`.\nSearch cost estimation can also be overridden from the CLI for search-type experiments with flags such as `--deep-search-cost-1-25` and `--deep-reasoning-search-cost-1-25`.\n\nEval output now includes a taxonomy scorecard (relevance, credibility, actionability, confidence) and per-query failure reasons (`no_results`, `off_domain`, `low_confidence`).\nUse `--compare-to-run-id` for before/after deltas across quality and failure rates when both runs share query text.\nWhen comparison is enabled, the run also writes a human-readable `experiments/\u003cRUN_ID\u003e/comparison.md` report with grouped query outcomes when suite context is available.\n`compare-search-types` is the end-to-end workflow for running the same suite against two search types and emitting the grouped comparison bundle in one command.\n`answer` is a separate cited-answer workflow and intentionally does not reuse the ranked-search evaluation taxonomy.\n`structured-search` is a separate schema-driven extraction workflow and intentionally stores the raw structured payload outside the ranked-search `results.jsonl` path.\n`find-similar` is a separate discovery workflow and intentionally stores the similar-result payload outside the ranked-search evaluation path.\n\n## API Server\n\nThe API is a thin FastAPI wrapper over the same workflow functions the CLI uses. Install with the `api` extra:\n\n```powershell\npip install -e \".[api]\"\n```\n\nStart the server:\n\n```powershell\nuvicorn exa_demo.api:app --reload\n```\n\nThe server runs on `http://127.0.0.1:8000` by default. Interactive docs are at `/docs`.\n\n### Endpoints\n\n| Method | Path | Request body | Description |\n| --- | --- | --- | --- |\n| `GET` | `/health` | — | Health check |\n| `POST` | `/api/search` | `{\"query\": \"...\", \"mode\": \"smoke\"}` | Ranked search with evaluation |\n| `POST` | `/api/answer` | `{\"query\": \"...\", \"mode\": \"smoke\"}` | Cited-answer workflow |\n| `POST` | `/api/research` | `{\"query\": \"...\", \"mode\": \"smoke\"}` | Research report workflow |\n| `POST` | `/api/find-similar` | `{\"url\": \"...\", \"mode\": \"smoke\"}` | Seed-URL discovery |\n| `POST` | `/api/structured-search` | `{\"query\": \"...\", \"output_schema\": {...}, \"mode\": \"smoke\"}` | Schema-driven extraction |\n\nAll endpoints default to `smoke` mode. Set `\"mode\": \"live\"` for real Exa API calls (requires `EXA_API_KEY`).\n\n### Quick smoke test\n\n```powershell\ncurl -X POST http://127.0.0.1:8000/api/search -H \"Content-Type: application/json\" -d \"{\\\"query\\\": \\\"forensic engineer insurance\\\", \\\"mode\\\": \\\"smoke\\\"}\"\n```\n\n## Frontend\n\nThe frontend is a Next.js app in `frontend/` that calls the FastAPI backend through a server-side proxy (no CORS issues).\n\n### Setup\n\n```powershell\ncd frontend\nnpm install\ncp .env.local.example .env.local\n```\n\n### Local Development (backend + frontend)\n\nTerminal 1 — start the API server:\n\n```powershell\nuvicorn exa_demo.api:app --reload\n```\n\nTerminal 2 — start the frontend:\n\n```powershell\ncd frontend\nnpm run dev\n```\n\nOpen `http://localhost:3000`. The frontend proxies API calls to the backend at `http://127.0.0.1:8000` (configurable via `BACKEND_URL` in `frontend/.env.local`).\n\n### What the frontend provides\n\n- Health indicator showing backend connection status\n- Tab-based workflow selector (Search, Answer, Research)\n- Search: query input, result count, taxonomy scores, result cards with highlights\n- Answer: question input, cited answer display with source links\n- Research: topic input, report display with sources\n- Loading spinners and error handling on all workflows\n\nAll workflows default to smoke mode — no API key or network needed for frontend development.\n\n## Benchmark Fixture\n\nThe packaged regression-style query fixture lives at `benchmarks/insurance_cat_queries.json`.\nThe fixture now supports named suites while preserving the aggregate default set, and suites can be authored as plain query arrays or richer objects with suite metadata plus mixed string/object query entries.\nUse `--suite all` for the full benchmark or pick a named segment such as `forensic_and_damage_engineering`, `restoration_and_mitigation`, `carrier_tpa_and_vendor_ecosystem`, or `regulatory_legislative_and_market_news`.\nThe notebook still owns execution and presentation, but Cell 6 now loads this fixture so the query set is reusable in tests and future CLI flows.\n\n\n## Experiment Artifacts\n\nEach notebook run now writes a versioned artifact bundle under `experiments/\u003cRUN_ID\u003e/`:\n\n- `config.json`\n- `queries.jsonl`\n- `results.jsonl`\n- `summary.json`\n\nWorkflow-specific commands may also add:\n\n- `answer.json`\n- `research.json`\n- `research.md`\n- `find_similar.json`\n- `structured_output.json`\n- `results.csv`\n- `comparison.json`\n- `grouped_query_outcomes.csv`\n- `manifest.json`\n\nSmoke-mode runs keep the same artifact shape, but with mocked results and zero spend.\nEvery run also records runtime execution metadata in `config.json`, `summary.json`, and `manifest.json` so downstream review can distinguish smoke artifacts from live runs.\nLocal runtime outputs under `experiments/` are intentionally gitignored by default; the repo may still keep a small curated sample artifact set when needed for documentation or regression context.\n\n## Demo Gallery\n\nUse [docs/demo-gallery.md](docs/demo-gallery.md) as the top-level walkthrough for the shipped workflows:\n\n- `search` for ranked discovery and evaluation\n- `answer` for cited lookup questions\n- `research` for report-style market or regulatory summaries\n- `structured-search` for schema-driven extraction\n- `find-similar` for seed-URL expansion\n- `compare-search-types` for quality/cost tradeoff analysis\n\nThe gallery is deliberately command-first. It points at the exact entrypoint and artifact for each workflow without changing the project core.\n\n## Integration Boundaries\n\nUse [docs/integration-boundaries.md](docs/integration-boundaries.md) for the current smoke-vs-live execution contract, artifact expectations, and delivery rules.\n\n## Manual Live Validation\n\nUse the manual GitHub Actions workflow in [.github/workflows/live-validation.yml](.github/workflows/live-validation.yml) when you want a deliberate real-API validation pass against the shipped CLI workflows.\n\nLocal dry run:\n\n```powershell\npython .\\scripts\\run_live_validation.py --mode smoke\n```\n\nGuidance:\n- default to `--mode smoke` locally unless you are intentionally validating live API behavior\n- the manual workflow is bounded by design and uploads runtime artifacts for review\n- `--include-comparison` is optional because it is materially more expensive than the default endpoint checks\n\n## Cache + Budget Behavior\n\n- Requests are cached in `exa_cache.sqlite` by payload hash.\n- Repeated requests return cache hits and should not re-bill.\n- Budget hard stop applies to **uncached calls in current `RUN_ID`**.\n- Metrics still include all-time totals for visibility.\n\nReset cache safely:\n\n```powershell\npython .\\scripts\\reset_cache.py\n```\n\nSkip prompt:\n\n```powershell\npython .\\scripts\\reset_cache.py --yes\n```\n\n## Smoke Runner (nbclient)\n\n```powershell\npython .\\scripts\\run_notebook_smoke.py --mode smoke\n```\n\n## Local Quality Gate\n\n- `python -m ruff check .`\n- `python -m pytest -q`\n- `pre-commit run --all-files`\n- `python scripts/run_live_validation.py --mode smoke`\n\nModes:\n- `--mode smoke`: forced no-network run (default)\n- `--mode live`: real API calls (requires `EXA_API_KEY`)\n- `--mode auto`: live if key exists, otherwise smoke\n\nRecommended boundary:\n- default to `--mode smoke` for development, CI, and docs validation\n- use `--mode live` only for deliberate manual validation with a real key and human review\n\nOptional timeout override:\n\n```powershell\npython .\\scripts\\run_notebook_smoke.py --mode smoke --timeout 180\n```\n\n## Safe Cost Tuning\n\nIn Cell 2 (`CONFIG`), adjust only these first:\n- `num_results`\n- `use_highlights`\n- `use_text`\n- `use_summary`\n\nGuidance:\n- Keep `num_results` low for first pass\n- Keep text/summary off unless needed for second-pass review\n- Estimator intentionally rejects unsupported high `num_results` ranges until pricing tiers are updated\n\n## GitHub Sync\n\nIf needed:\n\n```powershell\ngit init\ngit branch -M main\ngit add .\ngit commit -m \"feat: minimal exa people search eval harness\"\ngit remote add origin https://github.com/itprodirect/exai-insurance-intel.git\ngit push -u origin main\n```\n\nIf remote already exists:\n\n```powershell\ngit remote set-url origin https://github.com/itprodirect/exai-insurance-intel.git\ngit push -u origin main\n```\n\n\n## Deep-Dive Rebuild Review\n\nFor a from-scratch architecture critique and refactor roadmap, see `docs/rebuild_review.md`.\n\n\n## Roadmap and Delivery History\n\n- Canonical roadmap: [docs/roadmap.md](docs/roadmap.md)\n- GitHub issue tracker mapping: [docs/issue-tracker.md](docs/issue-tracker.md)\n- ADR index: [docs/adr/README.md](docs/adr/README.md)\n- Session note template: [docs/sessions/README.md](docs/sessions/README.md)\n- Latest implementation session: [docs/sessions/2026-03-20-phase4-refactor-decomposition.md](docs/sessions/2026-03-20-phase4-refactor-decomposition.md)\n\n## Guardrails\n\n- Public/professional info only\n- No address hunting / doxxing\n- No contact harvesting\n- Redaction stays enabled in notebook output\n- Human review required before operational use\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitprodirect%2Fexai-insurance-intel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitprodirect%2Fexai-insurance-intel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitprodirect%2Fexai-insurance-intel/lists"}