Spec-Driven AI: Taking GitHub’s Spec-Kit for a Spin

August 30, 2026 AI Agent No comments

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my current or past employers’ view in any way.

I was just chatting with one of my former managers back from the days when I lived in Austria. He was telling me how shocked he was with the capabilities of today’s AI coding agents and how he built an infrastructure project within days, something that would take a team many months in the past. The most interesting part? He did it entirely by writing specifications instead of code, letting the agents work through the details.

I bet you too no longer write code with bare hands but rather get it produced by your agents. I think we are past that point where we were discussing if code is written by AI. The question now is how AI does it and what are the working workflows. For instance, how does the next agent pick up the work? If you need to do another coding session, how do you ensure you are not changing the original design decisions?

We all know about AGENTS.md, CLAUDE.md, and README.md files. They attempt to store key project guidance so an agent has a good baseline when it starts. But oftentimes, a static markdown file just isn’t enough. I was looking into what’s available in the open-source world to solve this context problem, which led me to try out github’s spec-kit.

Without too much of introductory nonsense, here it is: https://github.com/github/spec-kit . Creators say this is “An open source toolkit for building high-quality software with any AI coding agent — a ready-to-use spec-driven process (or bring your own), endlessly extensible, community-driven, and built for your whole organization.

In this post I’m just giving it a go on one of my personal projects and sharing how it goes. I have this personal minimalistic coding harness project: https://github.com/andriybuday/ii/ and now I’m going to add spec-kit into it and then have a few different model providers implement things and see how it goes.

Warning: this might be somewhat Inception movie style coding, because I will use a well known harness to improve my harness, so my harness can improve itself.

Step 1: Setting Up

One of the things that I had to re-learn and bend my mind around was that I no longer try to be correct or know how certain commands work but instead learn to communicate with agents. For example, the guide might say “uv tool install …” I might not have “uv” tool installed locally. I don’t care, I don’t actually try to run this command myself, but instead chat with my agent to install the stuff for me, and if it gets stuck it would usually find a way to unstuck itself. This really bends my mind, because previously I would look up ways to solve my problems on StackOverflow and google them, but now I just can entrust the agent to go through this process a lot quicker.

Step 2: Constitution

After you have the spec-kit installed and initialized for your agent, you will have commands like /speckit-* available. I started with /speckit-constitution. What’s awesome about this was that agent realized that in a way my project already specified bits and pieces of what’s considered constitution in “AGENTS.md” file, so it just pulled relevant info. This ended up being the commit for the constitution: https://github.com/andriybuday/ii/compare/docs/speckit-constitution?expand=1

Step 3: Work with it

The way of working through speckit seems to be through the order of these operations, roughly: specify -> clarify -> plan -> tasks -> implement (copied over from claude description):

  • /speckit-specify Describe the feature in plain language. It creates specs/NNN-short-name/spec.md — user stories, functional requirements, edge cases — and a feature branch. No code yet, no implementation details, just what and why. /speckit-specify Add OpenAI as a second LLM provider, selectable via II_PROVIDER
  • /speckit-clarify (optional but recommended) Asks up to 5 targeted questions about ambiguities in the spec and encodes your answers back into it. Worth running before planning if the spec has any judgment calls — like exactly how provider selection should behave.
  • /speckit-plan Turns the spec into plan.md — architecture/design decisions, file-level approach, contracts. This is where your constitution actually gets enforced: the plan template checks proposed design against .specify/memory/constitution.md, so if a plan would blow past the ~100-line core-loop budget or add per-provider branching instead of a common abstraction, it
    should get flagged here rather than during implementation.
  • /speckit-tasks Breaks plan.md into tasks.md — a dependency-ordered, checkbox task list. This is the actual to-do list /speckit-implement executes.
  • /speckit-analyze (optional) Cross-checks spec.md / plan.md / tasks.md for consistency gaps before you start burning implementation time. Non-destructive, just a report.
  • /speckit-implement Works through tasks.md top to bottom, executing and checking off tasks.

Step 4: Enhance ii with speckit: /speckit-specify

I know this is getting inception movie style next level, but why not. So I gave claude this prompt:

❯ /speckit-specify I would like to add skill loading capability. We want to be able to load a skill like “speckit-specify” and then have command appear in the harness like /speckit-specify. If there is industry agent agnostic way of doing so, let’s make that priority, if it has to be agent specific we can use “.ii” folder and then “skills” subfolder. We should also allow to load “.claude/skills” so if someone used claude we should be able to load those skills as well.

The above has done a bunch of stuff locally and then suggested running /scpeckit-clarify, which I think is cool, as this is something that asks you questions back. For example, it asked me how to handle name conflicts in skills and built-in commands, if auto-discovery should be implemented, and how skills should be processed in history.
The cool thing it did in the end was that it ran all of my specifications against the “constitution” and checked if there are any contradictions with it and if not if anything has to be resolved.

Step 5: /speckit-plan and /speckit-tasks and /speckit-analyse

Now I got to a stage to actually ask it to generate agent agnostic plan and then tasks. Your agent may reply with this:
No constitution violations, so the Complexity Tracking table is empty. Next step: /speckit-tasks to break this into a dependency-ordered task list.

Analysis phase gives bunch of tables and info, like # of requirements, # of tasks, constitution compliance, risks, etc.

Step 6: Benefit and use from within ii itself

So, now that this is in place and I can have skill loading inside of ii, let me give it a try:

And guess what? At one point I got this dreaded message:
ii> /speckit-plan

API Error: 400 {“type”:”error”,”error”:{“type”:”invalid_request_error”,”message”:”Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.”},”request_id”:”req_011CeZikY3neVWx9ejmT7sui”}

So that was perfect time to switch to another LLM, but a bummer is that my ii harness doesn’t yet support non-anthropic models. So I pulled musecode to finish the specification. In case you don’t know MuseCode, that’s Meta’s coding harness. MuseCode immediately loaded the speckit commands and picked up exactly where Claude left off:

It took me a few iterations to get the proper implementation in place, which made me wonder if I underspecified my specs. The way I understand speckit is that some level of ambiguity is allowed in the specification, letting the LLM fill in the details. However, I was probably too loose in how I specified the UX. Maybe UX is the one area that still needs explicit human input. After all, an AI isn’t human and doesn’t know what it actually feels like to ‘experience’ an interface. Either way, I eventually got autocomplete working similarly to how it works in most coding harnesses:

Conclusion

In this post I tried out github’s speckit via claude code, muse code, and ii (my tiny coding harness). This may sound cliche, but you know how people say that punch-cards coding switched to primitive coding languages, like fortran/assembler, which switched to higher level and so on? Well, it seems we are now switching to another higher level, which is something in the realm of specification for your product, something that is plain English, but just structured nicely. Both my former manager and I left the call with open question: how all of this is going to affect the jobs and future of software engineering. We don’t have clear answers, nobody has. But learning how to write these structured specs seems like one of the ways to prepare for it.


No comments


A few notes on Agentic AI Summit 2026

August 30, 2026 AI Agent, Conferences No comments

On Aug 1-2 I went to Agentic AI Summit 2026 in Berkeley. I have a 12 page report generated by AI from the raw notes and pictures I’ve taken, but that’s not what I want to share. This post is a few practical suggestions and a handful of takeaways / general observations.

First, some general conference attendance learnings:

  • if you go somewhere for a conference, spend the time on the face-to-face as much as possible. The talks and materials will be online. The poster presenters standing next to their work at 2pm, who will answer any question you ask, will not be. On the second day I went around and talked to nearly all of poster presenters, and it was the best few hours of the two days.
  • the people who are giving the talks are real humans, with profiles on LinkedIn and twitter, following them and connecting gives that mental bridge that connects the dots in your brain. Plus, as someone who has publicly spoken before, receiving LinkedIn connection request “say your talk” is great.
  • however silly this might look like, take pictures of the slides, I found that the act itself of taking a picture and then looking at them later gives a way of recalling the information. And as a major perk, you can just throw all of the pictures into your AI agent and it will create the summary of what what happening.
One of the slides I photographed — and later fed to an agent.

Second, some observations, takeaways, and very quick thoughts:

  • AI can be compared to fire as a general purpose technology. It took centuries to make safe and extremely efficient use of fire but now it is ubiquitous and same will happen to AI. While this comparison is heavily used and is nice, in my opinion, it might be wrong to compare because the fire had nothing to do with replacing or enhancing human cognition.
  • Handling long horizon contexts and extensive work seems to be an overarching problem the industry is struggling with. Everyone is building some kind of special workflows around this. Workflows are nice, but they seem to be purely workarounds to fix LLM shortcomings (limited context, validation, etc). This might be the next major problem to solve. I could imagine LLM that is capable of constructing workflow and then following it, instead of you building that workflow for LLM.
  • Many big companies, use all the same models from just a few major AI players on the market, what makes the difference is what companies build around the models.
  • We have moved from tokenmaxxing to efficiency. A lot of talks were dedicated to reducing token waste. Entire startups exist purely to increase efficiency of model usage.
  • Way too many talks and posters were dedicated to building benchmarks and comparing models, some of that was a bit repetitive, boring, and likely obsolete very soon (just being honest here).
  • Some say that the harness is the secret ingredient and is the key differentiator in performance. On the other end, others say that whatever functionality you build into harness will be eventually learned by models. I personally don’t know how this will evolve, but I think 2 parts will exist for long time: one – something operating on environment like harness, and, two – the model itself and the responsibilities between the two will be fluid.
  • Frontier labs often move fast, in 6 month something they built might be gone, but usually they manage to reap the benefits of that work in short time, thus allowing them to further invest and iterate and thus advancing entire industry.

All in all, I think it is useful to attend conferences in your field of work in order to learn where the industry is heading, what is on people’s mind, what companies are investing into, and most of all to have face-to-face time and networking. Materials presented are oftentimes available through other means, so in a way the material is just the excuse that gets everyone in the same room.

Thanks for reading.

If were were more interested about the content of the summit check this Dawn Song’s tweet.


No comments


Vibe-coding wisp: a terminal app to run my coding agent, ii

June 14, 2026 AI, AI Agent, Vibe Coding No comments

A few weeks ago I coded minimalist coding agent, which I called ii – just about 70 lines of code which runs a while loop on top of Anthropic API. Second github commit to improve ii was done from within ii itself. My curiosity took my one step further: what if I vibe-code terminal itself? Yeah, why not, instead of running iTerm, what would it take to vibe-code one and run ii inside of it?

This is how wisp was born. The below screenshot may look just like any regular screenshot of a terminal, except this is “Wisp Terminal” mac app vibe-coded and running vibe-coded ii coding agent.

GitHub: https://github.com/andriybuday/wisp

And here is 1M tokens burned just to add basic copy and scrolling capability:

And not only this runs super-simple stuff. I can actually run OpenCode inside of this terminal and it kind of works. It has sharp edges and some things appear broken, but it does work for most part and is fast thanks to GPU rendering acceleration:

Unlike with coding agent where I could read the code and for the most part understand what is happening, I honestly don’t know what is happening in wisp. It is based on rust, does GPU accelerated text rendering, uses bunch of libraries I’ve never heard about, but it works. Here are tech details.

Stack / architecture (AI summary):

  • Rust terminal emulator. Deps: winit 0.30 (window/input), wgpu 23 (GPU), fontdue 0.9 (glyph rasterization), portable-pty 0.8 (shell PTY), vte 0.13.1 (ANSI parser), pollsterbitflagsbytemuckarboard 3 (clipboard, added this session).
  • Data flow: keypress → PTY write → shell → bytes → vte parser → Terminal cell grid → Renderer builds textured quads → wgpu draw. One quad per glyph/background/cursor; glyphs sampled from a single R8Unorm atlas texture.
  • Render is immediate-mode: build_vertices() walks the whole grid every frame and emits a vertex buffer + u16 index buffer.

Also, unlike coding agent, which was vibe-coded with Sonnet model, I had to run Opus to get this one working and at one point I got stuck with rendering where the text wold not render, so I used Claude Cowork and gave it permission to take screenshots and fix the rendering and iterate on it.

Instead of conclusion

So where am I going with all of this? Well, it has never been easier to implement literary anything you might need. If needed (and if you have enough tokens) I’m sure you can vibe-code operating system for yourself. Producing code has never been this easy and quick. At the same time we are moving more closer to the core of why software engineering exists – which is to solve real world problems and I am looking to learn how all of this evolves.


No comments


400 Posts. 17 Years. 4 Countries. 6 Companies. ONE Story.

May 30, 2026 Borderless Engineer, My book No comments

My daughter recently told me that she wants to publish a manga book. She has all of the characters, story, world description and bunch of drawings. I love that for her a book is just something that you “make” and none of the technicalities bother her (other than I have to buy her Apple Pencil Pro & iPad).

Back in 2012 I published e-book on design patters with unique coding examples (download page in Ukrainian). Maybe it wasn’t a perfect creation of mine, but many people loved it and I found that multiple Ukrainian universities used it as recommended literature for their computer science courses. Before I had it out I told a friend that I want to make it and he was skeptical, I then spent 20 weeks regularly on Tuesday rigorously writing posts and transforming them into chapters of the book.

400 Posts. 17 Years. 4 Countries. 6 Companies. ONE Story.

This blog has about 400 posts written throughout 2009-2026 on software engineering, career, AI, opinions, book reviews, and so much more in between. This blog is my voice and my story of borderless ever-immigrant and career navigator. A story of an engineer who left Ukraine, moved through Austria and Canada to USA, landed jobs at IAEA, Amazon, Google, and Meta, and other companies and wrote technical posts all along. A concept I have in mind is a practical guide for international/immigrating software engineers navigating tech careers, built from 17 years of doing exactly that. This is not a textbook or a self-help book, but rather something in between. Going over career transitions, promotion mechanics, immigration reality, the AI shift, and the mental frameworks that helped me navigate it all.

Why now?

In the age of AI the cost of producing text (or code) is extremely low, at the same time truly unique stories and genuinely authentic thoughts are becoming more rare.

I already have all of the raw material, stories, thoughts and so on, all the AI has to do is to help me with mechanical work, in fact I’m having Claude Co-work grinding through entire blog, cataloging it, proposing draft table of contents, identifying gaps, etc.

Burning lots of tokens, but I think it is worth it. All of the material is mine, all of the creative decisions are mine. I hate AI generated slop, so you can be sure no AI text would go into it without my own style or voice. Below is a working title and table of contents (AI generated):

Working title: The Borderless Engineer

Part I: The Foundation

  • Where It Starts — Your First Job and Why You’ll Leave It
  • Transplanting Yourself — Immigration as Career Strategy
  • The Learning Machine — How to Absorb Faster Than Everyone Around You

Part II: Navigating Big Tech

  • Getting In — Interviews, Preparation, and the Mental Game
  • The Promotion Formula
  • Finding Your Voice
  • The Generalist’s Advantage
  • When to Leave — Career Transitions at the Top

Part III: The Engineer’s Toolkit

  • Frameworks for Thinking
  • The Athlete-Engineer
  • Mentorship — Both Sides
  • Financial Independence for the Immigrant Engineer

Part IV: The AI Transformation

  • From Skeptic to Believer — My AI Journey
  • The Asteroid Has Landed
  • Don’t Outsource Your Thinking

Part V: The Philosophy

  • Design Your Own Path

What do you think? Drop a comment or reach out directly. If you are reading this via e-mail subscription you can simply reply. This is early enough that your feedback can actually shape the book.


No comments


Meet ii – the most minimalistic AI agent

May 17, 2026 AI, AI Agent No comments

Sometimes my non-tech friends ask me basic but fundamental questions like “What is a token?” or yesterday my spouse asked me “What is an agent?” and I was like: damn, ugh, I cannot resist an urge to implement extremely minimalistic one just for fun, so here it is in about ~70 lines of code:
https://github.com/andriybuday/ii/

See screenshot for it in action. I asked it to implement new functionality for itself and push it to github:

So what is a [coding] agent? AI generated answer below, but in my simple words: it’s like an assistant that talks to an AI model on your behalf and does things for you until it needs more input from you. In slightly more tech works: it is just a glorified while loop on top of API call. That’s it.

Here is AI generated answer:
An AI coding agent is a program that uses a large language model not just to answer questions, but to act — in a loop. You give it a goal, it calls the model, the model decides whether to write code, read a file, run a shell command, or search the web, the agent executes that action and feeds the result back, and the loop continues until the task is done or it gives up. The magic isn’t the LLM itself — it’s the harness: a message history that accumulates context, a tool registry that connects language to real side effects, and a loop that keeps going until stop_reason === "end_turn". Strip away the marketing and every coding agent on the market — Claude Code, Cursor, pi — is some variation of this ~70-line pattern. The complexity is in the edges: context compaction when history gets too long, parallel vs. sequential tool execution, session persistence, retry logic. But the core? A while loop and an API call.

Yeah, API call in a while loop. That’s what it is. Thanks for reading!

Minimal Implementation in TypeScript

Step 1: The types. Two things to define — a message (who said what, user or assistant or tool result) and a tool (name, schema, and a function that actually does something).

type Message = { role: "user" | "assistant"; content: string };
interface Tool { name: string; execute: (input: unknown) => Promise<string>; }

Step 2: The loop. Call the model, check stop_reason. If it wants to use a tool, execute it and feed the result back as a new user message. Repeat until end_turn.

while (true) {
  const response = await llm.call(history, tools);
  if (response.stop_reason === "end_turn") return response.text;
  history.push(await executeTool(response.tool_call)); // loop continues
}

Step 3: Wire a tool. A tool is just a name, a JSON schema the model reads to know how to call it, and a function that runs when it does.

const bash: Tool = { name: “bash”, execute: (cmd) => exec(cmd) };

What Pi Adds on Top of This Core

LayerPi FeatureYour Equivalent
Eventsagent.subscribe(event => ...) with typed events (message_update, tool_start, agent_end)Add an EventEmitter or callbacks
StreamingStreamed text deltas via SSEUse client.messages.stream()
Custom message typesDeclaration merging on AgentMessage for app-specific rolesA discriminated union
Context managementtransformContext() — prune/inject before each LLM callSlice this.history if token count > threshold
CompactionSummarize old messages via a second LLM callTrigger when response.usage.input_tokens > N
Tool execution modePer-tool "sequential" vs "parallel"Promise.all vs sequential for...of
Session persistenceAuto-save to ~/.pi/agent/sessions/ as JSONLJSON.stringify(this.history) to disk
Retry/error handlingConfigurable retry with backoffWrap the LLM call in a retry loop


No comments


2026 May Coding Agents Landscape

May 3, 2026 AI, AI Agent No comments

This post is mainly to take a snapshot of AI Coding Agents on the market as of May 2026. There is very little I’ve done to write this post but it serves its purpose. Besides it is very interesting.

This below was prepared with help of Claude:

If it doesn’t render, you might need to open the this link directly.


No comments


Vancouver Sun Run 2026 X-Ray

April 26, 2026 AI, Vibe Coding No comments

I ran Vancouver Sun Run for the 5th time this year. This is 10k race in Vancouver, roughly 30k-60k people run this race. My official time is 50min:17sec. This isn’t my personal record (48:17), but given I didn’t train for running this is fairly decent result (probably my 3rd best 10k run).

I just vibe-coded this Vancouver Sun Run X-Ray app with two tabs. The Race Map simulates all 45,013 finishers moving along the official course. You can drag the time slider and watch the people spread out. Upload your GPX and your position appears as an orange dot. The secon tab Public Results digs into the real data corral effects, finish time distributions by age group, city breakdowns.

The race data comes from a community-parsed CSV of the official Sportstats results.

I ran the race, got home, opened Claude Code, and had a working app before dinner. That’s the pattern with vibe coding: you start with curiosity, not a spec.

Live: vancouversunrunxray.streamlit.app

GitHub: github.com/andriybuday/vancouversunrunxray

Before next Sun Run I can probably vibe-code something more viral and vibrant so that people on the run can play with it and have run. At very least I have this in mind for my 2027 run (which I already signed up for).


No comments


Vibe Coding on the Road

April 12, 2026 Vibe Coding No comments

Writing this from Sedona, AZ as I travel. Maintaining weekly writing cadence is really hard especially when on a family trip with busy schedule. Instead of pushing myself to write a long essay or skipping a week I decided to vibe-code something really fast and at the same time be practical (maybe with a bit of extra work but not today).

Create a tool that generates interactive html page of a trip. You give it some locations of places you visited (just names is enough) and throw a bunch of GPX files with tracking of hikes/walks you’ve made. My GPX files come from Garmin Connect where I loaded 10 of those from the trip and threw into “trip_data” folder, but I believe it could be easy to exten the tool to actually connect to your Strava/Garmin or other tracking software you use.

Here is github repo for the tool: https://github.com/andriybuday/tripmap

When you run it on a folder that has GPX files and stops.yaml file it generates a map that looks like this:

Here is a direct link in case the map doesn’t show embedded for you.

I think it is really nice to get this customized map that connects both driving directions and hikes that I’ve done. I didn’t put everything on the map from my trip (like hotels or restaurants where I ate) but that could easily be done, so then you have really nice comprehensive map just for yourself with all of the actual places you visited.

Because AI generated the script, I asked it to also write this paragraph: The tool is built in Python using folium to generate the interactive map, gpxpy to load GPX tracks from my Garmin watch, OSRM for real driving directions between stops (no API key needed), and Nominatim for resolving place names into coordinates. Stops are configured in a simple YAML file, and the output is a single self-contained HTML file hosted on GitHub Pages.

Conclusion: similarly to my previous blog post where I created concert playlist maker this blog post just proves the point that instead of looking for a ready solution online that may or may not exist it is super easy to build things yourself without too much effort. The best thing is that it is exactly what you need.

Another conclusion is this: staying consistent is really hard, especially when traveling or when things are happening in life. But finding a low effort way to build something even a bit useful makes it possible. Happy I wrote this.


No comments


Vibe Coded a Concert Setlist Making Tool

April 5, 2026 Vibe Coding No comments

Something you might not know about me is that I go to Metal concerts. I just built a tool I will actually use. One of the typical things that I do before going to a concert is that I look for a setlist of the tour so I can get more familiar with the support bands and with the songs that are going to play. The problem I have is that usually there are no ready made setlists or they are not the songs the bands actually are playing, this sucks, so I built a tool for myself, and you if you are using YouTube music:

App website: https://makesetlist.streamlit.app

And this is github repo: https://github.com/andriybuday/setlistmaker

The functionality is simple: type your headliner, and enter the date, hit “Find Lineup” which will connect to Ticketmaster API and try find the lineup. If lineup is NOT found, say not sold on ticketmaster or past event, you would need to type band names manually (sorry). After which hit “Fetch Setlists” which looks at past events of the bands at setlist.fm using their API. You get a list of songs that you have possibility to review and exclude some songs if you don’t want them:

Because I use Gemini and YouTube music, I simply used prompt generation:

I then just put this into my Gemini and get my playlist ready to play:

Now a bit on technology stack:

Written by AI: The whole thing runs on two Python files, two API keys, and zero JavaScript. Streamlit handles the UI — I didn’t write a single line of HTML. setlist.fm has a free API that returns recent setlists for any band. Ticketmaster has a real public developer API (unlike BandsInTown, which I wasted time on — their keys are per-artist only, nuts) that gives you the event lineup. And Gemini with its YouTube Music extension does the actual playlist creation — no YouTube API, no OAuth dance, just a well-formatted prompt. The whole backend is one API call to Ticketmaster, one to setlist.fm per band, and a string formatter. That’s it.

Now back to my own writing: Yes there are two API keys in use that are rate limited, so if many of you use this app it might run into issues, but I doubt that other than me anybody else will use it. And… it is just a beauty of it. Because of Vibe-coding, something like this takes me an hour or less to implement and now I can use it anytime.

We now live in a world where a personal itch gets scratched in an hour by building an app for your own needs.


No comments


Conway’s Game of Life, Coded From a Mall

March 29, 2026 AI, AI Agent No comments

When I was in university I coded “Conway’s Game of Life”, which is a primitive simulation of cellular life, if there are a certain number of live cells around they produce more cells and if conditions are not favorable cells die off. I don’t know what the meaning of life is. Would at some point the argument come to say that AI is alive? This is very philosophical, this post is instead a very practical showcase of some of the most recent tools and advances in AI as I play with them.

Just have a look at this photo:

As you can see I’m somewhere in a mall, asking my Claude Cowork running on my mac at home to create a folder ~/Projects/gameoflifecowork and generate a single HTML page with Conway’s game of life implementation. I came home and there it was an html page right in that folder with the implementation. It is perfectly working. I’m adding it here. If you are reading from e-mail you would need to open the blog to see it in action.

[if you are reading from e-mail you might need to open in browser to see The Game Of Life]

Cowork is an extremely powerful (and dangerous tool). It is not yet a very smooth experience. Sometimes I need it to prompt multiple times, most of the time there is no proper feedback in the Mobile app so I don’t know what is happening. For instance, I also asked it to go to my “Downloads” folder and locate any concert tickets and tell me how much I paid for them. Unfortunately there was no way to see on the mobile app the answer to the tickets (not in any chat), but when I came home I saw a dedicated chat open on my computer that had the answer.

Under the hood Cowork runs Claude Code to implement the game of life, so I was wondering if I can compare different models and how good of a job they do, so I installed Open Code and connected Gemini API, Anthropic API, and also local LLM!

With Gemini API I generated a really great fast full screen Game Of Life, which cost me about 0.20$. Local llama3.1 unfortunately is not suitable for this task, I had to give it many additional instructions and it messed up every time until in the end I got an empty html file with some broken functionality, which I fixed with Copilot just to get it render:

Screenshot Lllama3.1 implementation of GameOfLife (with lots of manual effort)

Gemini’s Game of Life was full screen and rendered perfectly:

Gemini PRO Game Of Life

I then switched to Claude Haiku 4.5 to generate the Game of Life you can see above.

This implementation cost me about 0.33$. 

What was a small mini-assignment at university to code the Game Of Life, which I did with C++ and probably took me few days, now turns out to be just 0.20$-0.30$ throwaway code just to test different API integrations. Right now I understand why those cells live and die as I wrote this algorithm myself in C++ but I’m wondering if at one point we will not know what is happening inside implementations generated by AI.

Life remains for the most part a mystery to science, though we are getting closer and closer to understanding how it works. At the same time a reverse is happening with AI we are slowly getting further and further from understanding what goes into the beautiful implementation of Game of Life.


No comments