streetlight:面向西雅图住房困难人群的免费匿名 AI 支持工具
am-dj-ct/streetlight
开源项目 streetlight 正在开发 V1,为西雅图 / King County 面临住房不稳定、文书和福利申请难题的人群提供免费、免账号的 AI 支持,默认匿名,不保留 PII、无广告、无付费层级。项目处于预发布阶段,将通过一线合作机构软启动,代码以 Apache License 2.0 公开在 GitHub,并设有优雅退出路径。
Free, no-account AI support for people navigating housing instability, paperwork, benefits, and hard decisions in Seattle / King County.
Anonymous by default. No accounts, no PII retention, no ads, no upsell, no data harvesting, no premium tier. Open source from day one.
A software engineer in SOMA uses Claude every day. He pays $20/month and it's a rounding error in his budget. A guy sleeping in a shelter ten blocks away has the exact same brain. Often harder problems. Zero access. That gap is not a moral failure on his part. It's an access gap. This project closes it, in one city, for one population, as a public utility.
Status
Pre-launch. V1 in development. Soft-launch through named frontline partners when the build is ready.
Documents
- Agent instructions — shared coding-agent entry point for Claude Code, Codex, and other agents.
- Thesis — why this tool exists and the reasoning behind it.
- V1 Specification — what the tool is, concretely.
- Data and Privacy Architecture — how it's built, what it logs (and doesn't), and the threat model.
- What this tool will not do — the "no" list.
- Translation handoff — how locale files are produced, reviewed, and audited for completeness.
- Translation worklist — generated per-language missing-key checklist for translation maintenance.
- Resource maintenance — how the hand-curated human-help lists are verified and kept fresh.
- Operational runbook — dashboard-first incident and pause procedures.
- Partner bug report template — structured no-content issue intake for frontline partners.
- Partner launch packet — ready-to-send framing, limits, and bug-report links for soft launch.
- Partner materials index — quick map of the soft-launch docs set.
- Security policy — how to report vulnerabilities safely.
- Contributing guide — how to open issues and send pull requests.
- Code of conduct — participation and moderation standards.
Project structure
This is a one-person, one-year commitment with a graceful sunset path if no institutional home is found by year-end. The about page is honest about this. Code stays public on GitHub regardless.
Useful commands
npm run lintnpm run dev:mock— runs the app with zero-cost local mock chat repliesnpm run dev:live— runs the app against the configured live model pathnpm run buildnpm run check:audit— runs npm audit for dependency advisoriesnpm run check:localesnpm run check:locales:summary— quieter locale-gap summary for routine verification loopsnpm run check:launch— static soft-launch readiness check for docs, placeholders, translations, and env contractnpm run check:env— validates local/env-example boolean and numeric value shapes without printing secretsnpm run check:forbidden-integrations— fails if forbidden analytics, error-reporting, or log-forwarding packages are addednpm run check:no-tracked-secrets— scans tracked files for common secret-shaped values before pushnpm run check:ops— dry-run validation for the incident and ops helper scriptsnpm run check:response-style— runs live brief-first response-shape cases against the configured/api/chatpathnpm run check:translation-worklist— verifies that the generated translation worklist is currentnpm run cost:status— shows the local model pair and whether cheap local mode is activenpm run diagnostics:local— prints the current local server mode and the report-page metadata snapshotnpm run ops:status— prints the local health, deploy metadata, model mode, and any launch-doc placeholders still hanging aroundnpm run build:translation-worklistnpm run incident:new -- --slug short-name --severity Sev-2— scaffolds a public Sev-1/Sev-2 incident write-up fromincidents/TEMPLATE.mdnpm run incident:sev3 -- --what "..." --action "..." --outcome "..."— appends a structured Sev-3 note toincidents/log.md- add
--dry-run trueto either incident command if you want a preview without writing files npm run validate:data— validates referral/crisis schema plus source and last-verified metadatanpm run data:status— shows the oldest referral/crisis entries and whether any have drifted past the freshness thresholdnpm run smoke— checks key pages plus a small synthetic end-to-end chat flow againstACCESS_TOOL_BASE_URLorhttp://localhost:3000npm run smoke:quick— cheaper local smoke pass with a smaller synthetic samplenpm run regression:prompts— runs the synthetic prompt suite intests/prompts/against the configured live model pathnpm run regression:mock— runs the full prompt set in mock-local plumbing mode without live model calls; this is what PR verification usesnpm run regression:quick— cheaper prompt plumbing check; in mock mode it verifies streaming/classifier wiring without pretending to validate live model behaviornpm run verify:quick— lower-cost local check for active setup work, now including the diagnostics snapshot and quick regression plumbing passnpm run verify:mock— full local no-spend verification with all smoke cases and all prompt fixtures in mock plumbing modenpm run verify— runs the local pre-launch verification stack
npm run dev:mock is for zero-cost local UI work. npm run dev:live is the
easy way back to real model calls. Full prompt regression still expects live
model replies, so npm run regression:prompts will stop with a clear message
while mock mode is active. Use npm run regression:mock for a full no-spend
plumbing pass. The GitHub Actions Verify workflow runs the full mock suite on
PRs and pushes to main; run npm run regression:prompts with the Haiku
testing model path before model, prompt, or deploy changes where live behavior
matters. Run npm run check:response-style after prompt changes that affect
answer length or structure.
Utility routes
/healthz— simple no-store JSON health check for local smoke checks and future monitoring/report-problem— structured no-content bug report draft builder that stays client-side and opens amailto:draft
License
Licensed under the Apache License, Version 2.0. See LICENSE.
Contact
Bug reports currently go to jesse@balancedlivingtherapy.com.
来源:GitHub · github.com