Show HN: Vibe Prolog (github.com)

44 points by nl ↗ HN
Like a lot of people I got the $250 Claude Code credit and didn't use it up.

I decided to try to use it up over the weekend using (mostly) my phone and vibe coded a Prolog interpreter.

Now I'm seeing how far I can push it.

6 comments

[ 2.5 ms ] story [ 22.1 ms ] thread
(comment deleted)
Have you considered asking for a version in assembly?
If the project is about testing Claude's capabilities, the prompts will be more interesting to have.
What are the odds :) I made this two weeks ago, also with Claude.

This one's a straight port, paip-python's[0] Prolog interpreter. (Itself based on Norvig's Paradigms of Artificial Intelligence Programming book, originally in Lisp.)[1]

https://github.com/a-n-d-a-i/prolog.js

It was in the web ui, so I expected it to give me a code block, but it spun up a vm, set up a npm project, generated tests... ran them. I was quite surprised.

Your version is the opposite of mine, in a very good way. Your one is mostly tests! My version's tests are... well, you'll see ;)

Both are surprisingly short. 700-ish for mine, ~1200-ish for yours (as far as the actual interpreter goes), right?

That seems like a lot of bang per buck for something as powerful as a Prolog interpreter! I don't know very much about Prolog though, so maybe there's a lot of crucial parts missing here.

At any rate the original is a teaching device, and the book[1] goes into some length on the limitations of Prolog, both this version and in general.

[0] Original source in Python: https://github.com/dhconnelly/paip-python

[1] Original original source in Lisp: https://norvig.github.io/paip-lisp/#/chapter11

Here's an idea.

There have been over a dozen commits in the last 2 hours. If you are actually "vibe coding" a Prolog, then post the prompts you have used in the last 2 hours here.

If it helps to have a specific starting point, commit 7bbe652[0] is as good as any.

0 - https://github.com/nlothian/Vibe-Prolog/commit/7bbe652eaf0b0...

Wait, you think I'm coding this by hand! That is amazing. I love it!

I don't remember when which part happened, but I've been gradually moving over to the tools in https://github.com/nlothian/Vibe-Prolog/tree/main/ai-tools for most of the development. Most of the coding itself there is done with kilocode.

Most of the early conversations don't seem to be available in Claude code now (is there a way to see complete history?), but here's a typical session:

> can this interpreter pass command line arguments to the prolog program?

[no]

> add these as missing to @FEATURES.md

[done]

> use `gh issue` to create an issue to address this.

> - Explain comprehensively what needs to be done > - Note that new test cases must be created > - Note that @FEATURES.md needs updating

> Do not provide estimates

That raised: https://github.com/nlothian/Vibe-Prolog/issues/75

Here's the PR for that: https://github.com/nlothian/Vibe-Prolog/pull/92/files

That PR was generated using my fix-issue-with-kilocode command. The source code for that is all in here: https://github.com/nlothian/Vibe-Prolog/tree/main/ai-tools.

The code reviews were done with Codex and Gemini, and responded to using my address_pr_comments command in that same directory.