Hyphen
live A customer-support intelligence platform that turns conversations into structured, actionable signal.
- 2 months
- To first delivery
- $1M / 9mo
- Competing quote
- 117k
- Lines of code
- 95
- DB migrations
The commercial result: first delivery in two months, against a competing agency quote of $1M over nine months. A dependency-ordered DAG scheduler runs six chained Claude and Whisper tasks in concurrent waves — transcription, sentiment, case briefs, knowledge-base matching, proactive insights — behind a streaming RAG assistant over SSE, holding a two-second dashboard SLA on multimodal video and audio. Production hardening throughout: prompt-injection defence, hallucinated-ID rejection, idempotent race handling, and a documented model-routing and cost strategy across Haiku, Sonnet and Opus with prompt caching and the Batch API.
- Streaming RAG
- Multimodal
- Cost engineering
- Reliability
Memo
building Queryable organisational memory, built to remove cross-team silos, with citation-backed answers.
- 23 days
- Build time
- 59k
- Lines of code
- 15
- ADRs
Every update is processed on the way in: Claude tool_use structured extraction for decisions, risks and action items, plus embeddings, parallelised and idempotent. A streaming RAG assistant answers plain-English questions with inline citations back to source, and retrieval is RLS-scoped so cross-tenant leakage is structurally impossible rather than merely unlikely. Vector search on pgvector with HNSW, tuned for 100k+ documents, with per-query cost observable.
- RAG with citations
- pgvector / HNSW
- RLS-scoped retrieval
- Whisper
The Svelte 5 renderer for A2UI — agent-described interfaces rendered from data, never from generated code.
- 7 days
- Idea to npm
- 83
- Protocol tests
- 18
- Catalog components
- 3
- Transports
Spec-faithful to the v1.0 Candidate wire format, with the protocol layer as a pure reducer carrying zero framework imports. Built on a hostile-agent threat model: catalog allowlist, unconditional on*-handler stripping, prototype-pollution refusal on JSON Pointer writes, escape-then-markup for text, bounded recursion, and callableFrom enforcement — the renderer decides what exists; the agent only asks. Three transports (HTTP JSONL/SSE, the A2A extension binding, AG-UI), published to npm with a live streaming demo, and submitted to the A2UI project listing.
- Generative UI
- Untrusted-input hardening
- Protocol design
- Open source
Agent-facing component catalogs for A2UI, designed by putting the schema in front of models before building anything behind it.
- 5
- Gate findings logged
- 2
- Model families in CI
- 35
- Commits
Every component clears an emission gate before it exists: the contract and its prompt-pack go cold to multiple model families, output is validated by the same validator the tests and docs use, and every failure lands as a contract change — never prompt engineering. The gate runs in CI. The prompt-pack ships as a versioned artifact the docs render verbatim, so few-shot material and reference cannot drift. The gate log records every design finding with dates and diffs, including two where the models followed the design language more consistently than the schema did.
- Schema design for LLMs
- Evals in CI
- Structured output
- Open source