An Elixir/OTP platform showcasing a portfolio powered by an AI chat assistant with continuous compliance, full traceability, and self‑improving agents.
- Dev stack:
make dev
(frees port 4000, starts db/OPA, detects host Ollama, runs migrations, boots Phoenix). - Health:
GET /api/health
- Chat:
POST /api/chat
with JSON{ "message": "..." }
and headerx-org-id
. - Trace summary:
GET /api/traces/:trace_id/summary
.
- Runtime: Phoenix API, OTP supervisors, Oban jobs, Postgres + pgvector, OPA, Ollama.
- Orchestrator → Agents with plan/act/explain + decision records in audit.
- Memory: vector (RAG) + relational graph. Multi‑tenant via Postgres RLS.
- Scripts:
bin/dev
,bin/test
,bin/stop
,bin/port-kill
. - Make targets:
dev
,testc
,phx
,format
,lint
,dialyzer
. - CI: format, Credo, tests, Dialyzer, Sobelow.
- Issue‑first: open an Issue (Feature/Bug/Chore templates). Intake creates a branch and a draft PR (labeled
needs-HIL
). - PR template enforces Summary, Scope, Risk/Governance, Testing, and Checklist.
- Contributor Guide:
AGENTS.md
- Product Requirements:
docs/PRD.md
- M2: RAG embedding pipeline; SpreadsheetAgent (CSV→XLSX); PDFAgent; HttpFetch.
- M3: OPA preflight in flows; HIL UI; trace viewer page.
- M4: ToolSmith agent generation; auto PR + HIL gate.
- M5: Observability (OTel, metrics); blue/green deploy docs.