Hi everyone,
During the Meta Global AI Developer Hackathon, I worked on a problem I know from my time in a bank: loan approval workflows.
Why this problem
A bank writes its credit procedures in PDF policies. To turn one policy into a working approval process, business and IT teams often meet for weeks. After that, it is hard to say which step comes from which rule of the text.
I saw this first as a developer, then as a PMO in a bank. Zotra is my attempt to make it easier.
How it works
- Read the policy. The AI (Meta's Muse Spark) drafts the steps, roles, deadlines, documents and rules from the PDF. Each step cites its paragraph.
- Review and shape. You edit the diagram by hand, or ask the assistant in plain words. Nothing is saved until you accept it.
- Test it. You play a case as any role and replay it step by step.
- Run it. On a live case, only people and CEL rules decide. The AI helps to design and test, but it does not decide.
Stack: Go, PostgreSQL, React and Tailwind. Apache 2.0 license.
Why "Zotra"?
Zotra means "path" or "direction" in Malagasy. A workflow is a path to a decision, so the name felt right.
Try it
You can run it with Docker, without an AI key (the demo replays recorded answers):
donovan-ratefison
/
Zotra
Meta Global AI Developer Hackathon 2026: a workflow studio that turns a bank's credit policy into a tested, auditable approval app
From a credit policy PDF to a tested approval app.
The AI drafts and tests. Humans decide
See it
- Video: watch the demo on YouTube.
- Live demo: zotra-demo.donovan-ratefison.mg No install and no account. The data is sample data and resets every hour. The AI replays recorded answers: follow the steps in examples/ai-replay.
Try it in 2 minutes
You need Docker with Compose v2.
git clone https://github.com/donovan-ratefison/Zotra.git && cd Zotra
docker compose up -d
Open http://127.0.0.1:8080. At the first start, Zotra adds 60 sample cases over 30 days, so the inbox, the triage and the supervision have data. No AI key is needed for the demo: the app replays recorded AI answers for the sample policies. A thin line at the top of the studio says so.
Tour in 5 minutes
These steps work with no AI key.
-
Import a policy. On the library page, under Start…
I also put a short demo on X:
Your thoughts
It is still a hackathon project, and I am still learning in this area. I would love to hear your thoughts, especially if you work in or near a bank. Issues and pull requests are welcome too.
Thanks for reading!

Top comments (2)
This is a smart place to draw the line: AI drafts and tests, people and rules decide. In a regulated workflow, that separation matters more than speed.
The part I'd want to see stressed in real use is traceability. If every step can point back to the exact paragraph in the policy it came from, a reviewer doesn't have to trust the draft — they can check it. Same with replay: being able to walk a case through step by step is what turns a diagram into something an auditor can actually follow.
One question for you: how do you handle a policy change in the middle of a live case? Do in-flight cases keep the old version, or do they get migrated to the new rules? That versioning question usually shows up sooner than people expect.
Thank you for this very helpful feedback!
You are right about traceability. That is why each step keeps its paragraph citation, and a click on it opens the PDF at that place.
For your question: in-flight cases keep the old version. Each case is linked to the version it started on, and a published version cannot change. A policy change creates a new version. New cases start on it, and open cases stay on their version until the end. So the replay of a case always uses the rules that were valid at that time.
Migration of open cases to the new rules is not in Zotra yet. I agree it will come up soon, and it is a good candidate for the next step. Thanks for the question!