Day 1: Laying the Foundation
Exploring full agentic coding—starting a project where every line of code goes through an AI agent, from user research to first implementation.
The Premise
I started this project to explore the idea of full agentic coding. It is inspired by harness engineering where all code contributions have to go through an agent.
There are a few benefits I see with this approach.
- Every line of code is in the training distribution of AI agents.
- All maintenance work by humans can be repeated as agent skills.
- Scaling up the engineering team without being bottlenecked on hiring.
Bootstrapping the Repo
The repository started with only AGENTS.md and CONTRIBUTING.md files. The agents file documents the general principles to follow when it comes to coding while the contributing guide explicitly spells out that all code changes have to go through a prompt. Both of them are summarised by Claude itself after giving it reference links to the original concept.
User Research First
Before talking to the agent about my implementation plan, I interviewed 6 of my friends who might be interested in using the product. I compiled their feedback into a user research document and arrived at a set of core features that I can give to the agent. No LLMs were used to distill my findings from user interviews because the chats are highly personal and imbued with my own opinions.
Working With the Agent
About half of the features set that came out of my user research can be commonly found in modern SaaS products so the agent had no issue coming up with ideas on how to implement. Even a smaller model like gpt-oss-20b was sufficient for brainstorming. However, when it comes to discussing the most innovative features, even Opus 4.6 had trouble following the idea consistently.
For example, Claude’s initial idea was to represent playbooks separately from the task and store them in the database. I felt that layer of indirection was unnecessary and advised it to just use a markdown file so that task and playbook become a single agent skill. This conceptual change was surprisingly difficult for the agent to grasp as it took quite a lot of back and forth to finally arrive at a consistent design. Unfortunately the discussion took up so much context that when it came to implementation the agent completely forgot that I told it to write in golang. For some reason, it preferred using python.
Baby Steps
I had to break down the idea into even baby steps.
Instead of firing off agents to work on the code right away, I prompted Claude to create a PLAN.md detailing the initial architecture of the product. I did not care that some parts like the template matching algorithm were broken. They can be fixed later after we have bootstrapped the project. I started a new session to implement the plan and voila we had the first code change landed by Claude.
In retrospect, it might not be necessary to separate the planning and implementation sessions since the scope of the task was reduced. But I was a little bit paranoid coming out of 3 initial prompts where the agent repeatedly forgot details from older context.