What if an AI assistant could tell you exactly which law supports its answer?
That's the idea behind Seera, an AI-powered legal research platform I'm building to make Ethiopian legal information easier to explore.
Instead of relying only on an LLM's general knowledge, I built a retrieval-based approach that searches indexed legal documents and grounds answers in relevant sources.
The stack includes:
Go for the backend and streaming responses
React + TypeScript for the frontend
PostgreSQL + pgvector for legal document retrieval
RAG to connect AI-generated answers with source material
One design principle matters to me: when the available sources don't support an answer, the system should make that clear rather than pretend to know.
Seera is still a work in progress, but building it has taught me a lot about combining backend engineering, AI, and a real-world problem.
I'd test Seera with a question that retrieves a closely related law but asks for a conclusion the passage doesn't support. Does it still abstain when retrieval similarity is high?
A research-assistant project exploring how AI applications can retrieve information and improve the quality of their responses through a self-correction workflow.
Project focus
Python-based AI application development.
Retrieval and research workflow design.
Improving answer reliability through evaluation and correction.
Same pattern holds in outbound tooling. Filtering, dedupe and enrichment lookups are plain code. The model only writes the first line once the row is already verified. Cuts cost and the weird outputs.
I built an open-source skill that stops AI from making every design look the same
Every AI-generated website looks the same. Centered hero. Purple gradient. Three feature cards.
The reason isn't bad taste. AI agents fill gaps in a brief with the average of their training data. If you don't define what "not average" means for your project, you get the mean.
So I built Intent Interrogator, a free skill that works across Claude Code, Codex, Cursor, Copilot, and any agent that reads the Agent Skills standard.
It does three things:
Interrogates - asks 4 questions before writing any code:
→ What should someone feel in the first 3 seconds?
→ Who specifically is this for?
→ What's the one constraint I must respect?
→ What should this definitely not look like?
Persists - saves the brief to a .intent/ file inside your project. New chat, new week, new agent, the intent is still there.
Verifies - before declaring the work done, it compares what it built against what you asked for, and produces an Intent Receipt showing where it matched and where it drifted.
That last part is the piece I haven't seen anywhere else.
You don't need to code to use it. You just answer four questions.