← back to Sdcc Mockups

extension-v0/README.md

70 lines

# SDCC Borrower Helper — v0.1 prototype

Privacy-first browser extension for federal student loan borrowers.

## Install (developer mode)

1. Open `chrome://extensions` in Chrome / Edge / Brave
2. Toggle **Developer mode** (top-right)
3. Click **Load unpacked**
4. Select this directory (`extension-v0/`)
5. The extension will appear in your toolbar — pin it for easy access

## What it does

- **On Page tab** — when you're on `studentaid.gov`, NSLDS, MOHELA, Aidvantage, Nelnet, or EdFinancial, scans the page locally for loan-data signals (balance, IDR plan, servicer name) and tells you what it found. Nothing leaves the browser.
- **PSLF tab** — quick eligibility check based on loan type + employer + qualifying payments
- **IDR tab** — side-by-side: SAVE (paused) / PAYE / new IBR
- **Letter tab** — paste a confusing servicer letter, get plain English (rule-based; production version uses local LLM)
- **Links tab** — direct bookmarks to the trusted federal sources

## Verify the privacy claim

The extension makes **zero outbound network requests**. To confirm:

1. Open `chrome://extensions` → **Inspect views: service worker** (none — there is no background script)
2. Open the popup → right-click → Inspect → Network tab → use any feature → confirm 0 requests
3. Inspect `manifest.json` — no `background` key, no `webRequest` permission, no `connect-src` other than `'self'`
4. Reproducible build: this entire extension is a few static files. SHA the directory; verify against published build hash.

## Permissions

- `storage` — for popup state only (form values), never synced
- `activeTab` — to read the URL of the page you're currently looking at (not other tabs)
- `host_permissions` for the 6 federal/servicer domains — content script reads page DOM passively

The extension does NOT request: `tabs` (full URL access), `webRequest`, `cookies`, `history`, `<all_urls>`, identity, geolocation, or any other broad permission.

## File structure

```
extension-v0/
├── manifest.json          MV3 spec — 4 host permissions, 0 broad permissions
├── popup.html             Popup UI (5 tabs)
├── popup.js               All client-side logic
├── content/
│   ├── badge.js           Floating badge on federal pages
│   └── badge.css          Badge styles (scoped via #sdcc-helper-badge)
├── icons/
│   ├── icon16.png         16×16 toolbar icon
│   ├── icon48.png         48×48 management page
│   └── icon128.png        128×128 store listing
└── README.md              this file
```

## What's NOT in v0.1

- Real federal page DOM extraction (current version reads `body.innerText` for keyword signals only)
- LLM-based letter translation (current uses 8 hardcoded patterns)
- Auto-fill into PSLF ECF / IDR application forms
- Servicer-specific data extraction
- Spanish UI

## License

MIT — open source on day one. Source of truth: SDCC's GitHub (TBD). Reproducible builds enable anyone to verify the extension behaves identically to the source.

## Why this is unusual

Most fintech apps in this space (Summer, Savi, Chipper) ingest your data to their servers — they have to, given their business model. SDCC is a non-profit advocacy org; we don't need your loan numbers to do our mission. This extension is the architectural proof that helpful is possible without surveillance. Read the full legal/technical analysis at https://sdccanalysis.agentabrams.com/extension.html.