Vibe Prolog
A Prolog interpreter written by AI agents under an explicit no-human-code rule — and an unusually clear-eyed report on how that went.

What it is
A Prolog interpreter in Python, produced under a rule the author wrote down and then followed: no human-written code, only prompts and instructions. It started as an accident — leftover Claude Code credits and a weekend on a phone — and turned into 825 commits in four weeks, an ISO conformance test suite, 109 test files, and an operating manual for the agents doing the work. The README is candid about what that proves and what it does not.
Who built itAn Apache Portals committer and project management committee member, listed on the Apache site under nlothian, and later founder and CEO of Tyto.AI, an AI consultancy and product company in Sydney and Adelaide; before that he was a director at the Data2Decisions co-operative research centre running machine learning projects. He had not written Prolog in about twenty years.
Build log
6 stages- 01
Leftover credits and a weekend on a phone
The origin is stated with numbers. In early November 2025 Anthropic was giving out $250 in Claude Code credits for web use; they expired on 18 November, and by the 15th the author still had $220 unspent. He was working on something else, and as a side effect “accidently vibe coded a prolog interpretor on my phone over the weekend”. He notes he had not used Prolog in twenty years. The first commit is dated 19 November 2025.
- 02
The rules were part of the experiment
The README sets out three rules and two attitudes, and they are the most reusable thing in the repository. No human-written code — prompts and instructions are allowed, and config files and documentation explicitly do not count as code. Do not deliberately add slop: if you notice it doing something wrong, get it fixed. Use every tool available, add lots of tests, automatic code reviews and security audits. Then: do not settle for average code, and have fun.
- 03
What four weeks of that looks like
825 commits between 19 November and 14 December 2025, across 29 branches whose names read as a to-do list of Prolog conformance work: tail-call optimisation, ISO character and byte I/O predicates, octal escape sequences in quoted literals, module-qualified predicate directives, library projection for residual goals. A conformance directory carries ISO test suites, and there are 109 test files, run with pytest and split into opt-in slow and performance tiers.
- 04
The scaffolding is the interesting artifact
Alongside the interpreter are the files that directed the work: an AGENTS.md setting out goals, coding rules and where documentation and tests must live; CLAUDE.md and GEMINI.md; a .gemini directory; and two directories of supporting machinery — ai-tools, and ten Python scripts in tools for checking duplicate builtins, scraping expected conformance results and measuring library load times. Twelve documents in docs cover architecture, grammar comparison, recursion optimisation and conformance testing. The project is as much a record of process as of software.
- 05
What is not AI-generated, stated plainly
The README marks one part in bold so it cannot be missed: the Prolog libraries and examples are not AI-generated. The library directory comes from scryer-prolog by way of a git subtree and keeps its original licences. Given that the rest of the repository exists under a no-human-code rule, that disclosure is doing real work — it is the difference between an interpreter that passes a library test suite and one that also wrote the library.
- 06
The author’s own verdict
The repository’s caution section is more useful than most launch posts. He does not know whether it works at all; it seems to, and some tests pass, and that is the extent of the claim. Because it is AI-written code, he notes it is unclear whether it can be copyrighted at all, which is why it is MIT. And he ends by pointing elsewhere: there are many real Prolog implementations that are probably better than this one, and you should use them. The last commit was on 14 December 2025.
What they would tell you
- Draw the line explicitly, then hold it. “No human written code” only works because the author also said what does not count — configuration and documentation — and what does: prompts and instructions are fine, quietly editing the source is not.
- Slop has to be called out, not tolerated. Two of the five rules are about refusing to accept it: fix what you notice going wrong, and when the output is average, say what is wrong with it rather than settling.
- Do not let the demo outrun the evidence. He wrote a working interpreter, then wrote that he does not know if it works, that the copyright status of AI-written code is unclear, and that better Prolog implementations exist and should be used instead.
Adjacent records
All records →No. 029
realworld-vibe-coded
A full-stack RealWorld implementation whose real subject is the harness around it: thirty-two custom Roslyn analyzers, one build entry point, and hooks that stop an agent from doing the wrong thing.
No. 009
Open Interpreter
A terminal coding agent that started as a local alternative to OpenAI Code Interpreter and was rebuilt in 2026 as a Rust fork of Codex, aimed at open-weight models.
No. 039
classic-vibe-mac
Write C in a browser tab, press Build & Run, and a System 7 Macintosh boots with your freshly compiled 68k application sitting on its desktop.