<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Aayush Goenka: Log</title><description>A running log of building software with AI, learning, and personal finance.</description><link>https://aayushgoenka.com/</link><item><title>AI hallucination is a challenge that keeps appearing</title><link>https://aayushgoenka.com/log/2026-07-13/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-13/</guid><description>Five confident, false claims about my own site went straight into the docs that exist to be the source of truth. The linter caught none of them. Only reading the code did.</description><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Roger (my senior engineer agent) wrote up the new essay architecture for the site. Tidy doc, clear plan. However, five of its statements about how the code works were false.&lt;/p&gt;
&lt;p&gt;All of it was written as if verified. Sadly, none of it was true.&lt;/p&gt;
&lt;p&gt;Gautam (my chief engineer agent) reviewed and blocked the doc. Glad I have a reviewer for each critical step!&lt;/p&gt;
&lt;p&gt;Roger fixed it. Gautam blocked it again. Across the two rounds he found all five, by actually reviewing the code and not just relying on the docs Roger had updated.&lt;/p&gt;
&lt;p&gt;The part that stung the most was that my linter caught none of them. Every false claim was a perfectly resolved reference to a false fact. The links all worked even though the facts were wrong.&lt;/p&gt;
&lt;p&gt;Turns out, this happened because of how I had built the org chart. Roger was running on a cheaper model, and his charter told him to escalate to a stronger one for high-stakes work.&lt;/p&gt;
&lt;p&gt;But that clause could never fire. No model can change the model already running it. I had written a rule that was not implementable by design. Cheaper models make mistakes, duh!&lt;/p&gt;
&lt;p&gt;Then Nadia (Chief of Staff agent) did it too, an hour after we wrote the rule against it, with a claim about my linter she had inferred instead of read. And at day&apos;s close, a sixth false claim turned up. It had survived both rounds of review.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Learning&lt;/strong&gt;: &lt;strong&gt;Every technical claim in a doc cites the file and symbol it was checked against.&lt;/strong&gt; Every rule needs teeth, and every fact needs checking before it gets repeated.&lt;/p&gt;
&lt;p&gt;This ate up a lot of time today. I will share how it holds up in the next few days.&lt;/p&gt;
</content:encoded></item><item><title>Spent the whole day making my system more robust</title><link>https://aayushgoenka.com/log/2026-07-12/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-12/</guid><description>Hardening my AI vault for a day: drift detection, self-testing scripts, a live dashboard built from source, and a trick to catch an AI drifting mid-session.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Fable access got extended by another week or so. Yay! So obviously, I had to use its superpower to judge my &apos;brain&apos; (the vault of files and code I have been building to train my AI to cater to my requirements more closely and autonomously).&lt;/p&gt;
&lt;p&gt;It found several areas to improve, along with the recommendations from the &lt;a href=&quot;/log/2026-07-11&quot;&gt;first agent team meeting&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;We spent the whole day tightening screws across various steps of the process, including:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Catching when Claude started drifting, so we could start a fresh session and not lose context-based behaviour.&lt;/li&gt;
&lt;li&gt;Adding self checks for each script where fake violations were planted to confirm the &apos;alarm&apos; was actually working.&lt;/li&gt;
&lt;li&gt;Building a monitoring dashboard for system health that stays live and is built from the files in the vault (so no duplication and no drift risk).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;They all worked like a charm. I&apos;d highly recommend anyone getting frustrated that their AI starts deviating from its original behaviour to do this:&lt;/p&gt;
&lt;p&gt;Add a line on top of your Claude.md (or equivalent markdown file):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Drift canary:&lt;/strong&gt; begin every response with &lt;strong&gt;Keyword · [focus] · turn N&lt;/strong&gt; (chat and every agent&apos;s final message). Its absence, or a frozen/stale tag, is my signal that adherence is degrading. NEVER automate it: the fragility is the instrument; a canary that cannot die tells me nothing.&lt;/p&gt;
&lt;p&gt;Essentially, each time the AI responds it will first say the &lt;strong&gt;Keyword&lt;/strong&gt;, followed by the question you are asking and the &lt;strong&gt;turn number&lt;/strong&gt;, i.e. how many times it has replied to you in that session.&lt;/p&gt;
&lt;p&gt;If the AI starts drifting, you will notice it doesn&apos;t show those things, and that is your signal to clear or start a new session. For me this happened after the 40th turn, but it all depends on the depth and length of your conversation.&lt;/p&gt;
</content:encoded></item><item><title>Went LIVE with the new version of the website today</title><link>https://aayushgoenka.com/log/2026-07-11/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-11/</guid><description>Launch day for the rebuilt site, and the redirect bug a skeptical second reader caught before it could 404 five of six old essay URLs and sink their ranking.</description><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I could have pushed the new site within the hour of starting the work on it four days ago and it would have probably looked just fine, but I chose to spend the extra time learning how it is actually built, and by the 4th day I am so much more knowledgeable about the inner workings of all of it.&lt;/p&gt;
&lt;p&gt;In the process, I also enhanced my &lt;a href=&quot;/log/2026-07-10&quot;&gt;agentic system&lt;/a&gt; to have 6 recruits who are helping me build, review, diagnose, and keep things in check.&lt;/p&gt;
&lt;p&gt;A lot of the steps today involved &apos;plumbing&apos; on the hosting space, testing thoroughly before pushing it live, and deciding whether the apex or the www version of the domain was canonical. Who knew? Both are different sites, and one needs to pick one to be the default that the other one re-routes to.&lt;/p&gt;
&lt;p&gt;Btw, this learning came from Gautam (my Chief Engineer agent), who reviewed the change and found my redirects only matched the URLs without a trailing slash, while Google had actually indexed the trailing-slash versions. Five of six old essay URLs would have quietly 404&apos;d and lost their ranking, and I&apos;d have shipped it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The lesson I&apos;m taking: treat launching as a checklist. The cheapest line on it is a second reader whose whole job is to be skeptical&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This made me ask myself, why not have my agents hold their first meeting themselves and review the whole vault and share their &apos;executive summary&apos; with me.&lt;/p&gt;
&lt;p&gt;So, I did do that. I built a format where each agent individually reviews the whole vault and creates a summary. Then each agent reviews the others&apos; summaries and puts pointers where they have a different opinion, and it goes back and forth for 3 rounds. After this Nadia (the Chief of Staff) summarizes that into bullets for me.&lt;/p&gt;
&lt;p&gt;Not only did I run this with Claude as the AI, but I also used Gemma 4 (a local LLM) to do the same exact exercise. Gemma took 2.5 times longer (~20 min) and had a slightly more generic recommendation. But overall quite impressive.&lt;/p&gt;
&lt;p&gt;Thinking of trying it a few more times in the coming days before making it a regular cadence.&lt;/p&gt;
</content:encoded></item><item><title>I built a small team of AI agents</title><link>https://aayushgoenka.com/log/2026-07-10/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-10/</guid><description>I built a small team of named AI agents to help run my system, each with a charter and one area it owns, reviewing each other&apos;s work to catch what one misses.</description><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Today I built something that still feels strange to say out loud: a small team of AI agents to help run my own system. Each one has a name, a charter, and a single area it&apos;s accountable for.&lt;/p&gt;
&lt;p&gt;The first recruits are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nadia&lt;/strong&gt; (Chief of Staff)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gautam&lt;/strong&gt; (Chief Engineer)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Roger&lt;/strong&gt; (Senior Engineer)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HeeraMai&lt;/strong&gt; (Curator)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nadia routes the work, Roger builds, Gautam reviews, and HeeraMai keeps things honest.&lt;/p&gt;
&lt;p&gt;I must say, it is quite exciting to have agents that are named.&lt;/p&gt;
&lt;p&gt;All four of them are people I have worked with in the past and are excellent at what they do, so it is very easy for me to remember them and invoke them wherever their help is needed across the system.&lt;/p&gt;
&lt;p&gt;If you haven&apos;t yet, do write a markdown file which captures the job description of a particular role you wish the agent to do.&lt;/p&gt;
&lt;p&gt;Claude always starts a fresh session whenever that agent gets a job to be done, and that usually means the best output from Claude.&lt;/p&gt;
&lt;p&gt;Also, &lt;strong&gt;having an output from one agent get reviewed by another does help plug holes that the first missed.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Will cover more details on how to set up agents, test them, and their benefits in a longer essay in future.&lt;/p&gt;
</content:encoded></item><item><title>Built the content-as-data-pipeline today</title><link>https://aayushgoenka.com/log/2026-07-09/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-09/</guid><description>A plumbing day: wiring the site so a new markdown file in one folder becomes a published page with a single push. Content as data.</description><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;It was a plumbing day, which I anticipate will be a lot of my time in future too. As I was porting the content from the previous version, I worked with Claude to build a system where &lt;strong&gt;I just had to create a new markdown file in a specific folder and the content would automatically appear on the website with one push.&lt;/strong&gt; Quite a neat solution that organized everything around content for me.&lt;/p&gt;
&lt;p&gt;I also spent time trying to teach Claude to summarize my daily journal into smaller summaries that I could then edit or change for my log entries. However, there is a long way to go to get it right. For now anything the model outputs sounds so robotic and not at all how I would speak.&lt;/p&gt;
&lt;p&gt;So, if any piece of content you see from me is fully AI generated, I will tag it accordingly.&lt;/p&gt;
&lt;p&gt;For now, I continue to work on the designs, porting, code understanding, and testing everything on localhost. The page is starting to look better.&lt;/p&gt;
</content:encoded></item><item><title>Learning to build something real with AI is more fun</title><link>https://aayushgoenka.com/log/2026-07-08/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-08/</guid><description>How AI mentoring actually works when you&apos;re learning to build: I had Claude hand me the code to type, and challenge me to hit the problem before showing the fix.</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I had a fun time &lt;a href=&quot;/log/2026-07-07&quot;&gt;yesterday&lt;/a&gt;, having Claude mentor me. I added a code.md file in the repo to capture some of the learnings and instructed Claude to add comments to all pieces of code so I could easily follow. Another thing that helped was &lt;strong&gt;asking Claude to not execute it directly, but share the code with me and ask me to create, edit or delete the right files.&lt;/strong&gt; This way I understood how and why certain pieces of code worked and were connected. Super fun.&lt;/p&gt;
&lt;p&gt;However, I didn&apos;t want to just make some toy apps. I wanted to work on a real project while I was learning. So I pivoted to redesigning and launching my website. In the process I skilled up in a lot of areas: HTML, CSS, JavaScript, &lt;a href=&quot;https://astro.build&quot;&gt;Astro&lt;/a&gt;, Git, and hosting.&lt;/p&gt;
&lt;p&gt;One interesting thing that happened was, as I was copying the essays from the previous version of the website, it became clear to me that it was a repetitive task and there must be a better way of doing this. So Claude helped me add Astro to the codebase by hand, no scaffolder, and moved the shared shell into a single file. My homepage went from a full page of HTML down to a few lines. Neat!&lt;/p&gt;
&lt;p&gt;And this whole time, Claude was being a mentor to me, challenging me to experience the problem first and then guiding me through what the right way to do it was. It was as sweet as an AI can get.&lt;/p&gt;
&lt;p&gt;Try adding this to your Claude.md file and see for yourself:&lt;/p&gt;
&lt;h2&gt;Always&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Concise, no flattery. Teach the why as we work; correct misconceptions the moment they appear (mentor mode). Disclose assumptions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Surface what I am not thinking about. Question the incumbent tool: presence is not proof it&apos;s best (Best tool, not default tool).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Building is easy, knowing how it is built is the game</title><link>https://aayushgoenka.com/log/2026-07-07/</link><guid isPermaLink="true">https://aayushgoenka.com/log/2026-07-07/</guid><description>Why I chose to understand how my website is built instead of just shipping it: the real skill when building with AI is reviewing what it writes.</description><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I had a version of this website live for a few months now. It was built using Antigravity and had &lt;a href=&quot;/essays&quot;&gt;a few essays&lt;/a&gt; I had written (drafted by me and refined by AI), but I had no clue how the backend actually worked. So every time I had to change something I had to voice it to the AI and trust that it wouldn&apos;t break anything else. That was frustrating.&lt;/p&gt;
&lt;p&gt;So, this time around as my first project I knew I couldn&apos;t ignore the &apos;how&apos; of anything I do with AI.&lt;/p&gt;
&lt;p&gt;However, in the past it took me weeks to learn HTML, CSS, JavaScript and even longer to make anything remotely useful out of it. I knew, if I entered the zone of learning how to write each of the different languages, I would not get anywhere.&lt;/p&gt;
&lt;p&gt;The strategy had to be more centered around &lt;strong&gt;understanding&lt;/strong&gt; what was written and managing the workflows with sharp management skills. Execution with the right checks and balances makes me far more productive.&lt;/p&gt;
&lt;p&gt;So, I spent the whole day prompting Claude to:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Design a 10 day course to educate me on how to spot the right code and the common mistakes, and to test my understanding of it.&lt;/li&gt;
&lt;li&gt;Design Claude.md principles to make sure Claude always wore the mentor hat as it was working with me.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Already learning a lot, and Claude even put deliberate bugs in to test my understanding. It felt like a real tutor and was actually fun to learn from.&lt;/p&gt;
&lt;p&gt;I will continue to hone this muscle: &lt;strong&gt;be good at reviewing what has been built.&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item></channel></rss>