idea180-credimesh-federated.../README.md

76 lines
2.5 KiB
Markdown

# idea180-credimesh-federated-privacy
CrediMesh is a federated underwriting core for privacy-preserving mortgage evaluation.
This repository provides a deterministic orchestration slice for:
- privacy-minimized shared signals from income and appraisal adapters
- graph-of-contracts registration and conformance checks
- an ADMM-lite solver for affordability, collateral, and rate reconciliation
- Ed25519-signed audit events
- SQLite-backed governance persistence
## What it does
The package evaluates a `LocalUnderwritingProblem` by:
1. transforming borrower evidence into `SharedSignal` records with strict privacy budgets
2. checking those signals against contract metadata in a graph registry
3. reconciling affordability and collateral constraints with a deterministic solver
4. writing tamper-evident audit entries into SQLite without storing raw borrower payloads
## Modules
- `models.py`: request, signal, plan, budget, and audit models
- `identity.py`: Ed25519 DID-style identities
- `contracts.py`: contract specs, conformance, and registry graph
- `adapters.py`: income verification and property appraisal adapters
- `solver.py`: deterministic underwriting solver
- `ledger.py`: SQLite governance ledger
- `orchestrator.py`: end-to-end flow
## Quick start
```python
from idea180_credimesh_federated_privacy import CrediMeshOrchestrator, LocalUnderwritingProblem, SQLiteGovernanceLedger, create_identity
problem = LocalUnderwritingProblem(
borrower_id="borrower-1",
lender_id="lender-a",
requested_amount=400000,
property_value=520000,
annual_income=180000,
monthly_obligations=900,
)
with SQLiteGovernanceLedger(":memory:") as ledger:
orchestrator = CrediMeshOrchestrator(create_identity("lender-a"), ledger)
result = orchestrator.evaluate(
problem,
[
{"gross_monthly_income": 15000, "employment_months": 48, "employer_stability_score": 9.0},
{"gross_monthly_income": 15200, "employment_months": 50, "employer_stability_score": 8.8},
],
{"appraised_value": 535000, "confidence": 0.9, "comparables_count": 6, "days_on_market": 18},
)
print(result.plan.model_dump())
```
## Testing
Run the local verification gate:
```bash
bash test.sh
```
That script installs dependencies, runs `pytest`, and executes `python3 -m build`.
## Design rules
- Keep borrower data minimized at the signal boundary.
- Preserve deterministic replay for identical inputs.
- Update tests whenever contract behavior changes.
- Keep the SQLite ledger append-only and privacy-safe.