I'm loving this Agent Coding blogging series. I think I'll keep it going and perhaps create a different framework for these experiments later.
In this part of the series, I tackle a nagging issue built from years of technical and design upgrades that stem from experimenting and learning with different tools and approaches. The trade-off for all that exploration was a pile of blog posts scattered across different website versions including but not limited to WordPress, Jekyll, MongoDB and also Notion spaces. There's a term engineers loathe called 'technical debt', often accumulated by the Goddess of usability and relevance as time passes. Invariably, that's what happened with my blog content.
Coming back to the problem at hand: it stemmed from an innocent conversation with my mate Stebin, who was curious about where my old blogposts had gone and suggested to bring them back. I got curious, because I knew this time it could be a whole lot easier, recognising it as exactly the sort of problem agents excel at solving, quickly and efficiently.
Migration strategy
Before jumping into agent coding, I wanted to lay down the tools and formulate a strategy. Rather than doing everything at once, the plan was to tackle one source at a time.
I, then set to work pulling all the old source files, database backups, exporting Notion archives and old markdown repos, into a migration repository. I started tactically with migrating one source at a time. I composed a baseline target template for the agent to use as the North Star. This template was a markdown file, designed to be hosted on a GitHub repo and served through a Markdown interpreter when displayed on my Next.js website. The agent was keen to use shell scripts, but I figured it'd be easier for me to moderate it if the scripting was in JavaScript, as Node.js functions.
That seemed like a solid plan. Over two days of intermittent nudging the agent, the plan started to come together. Without much fuss, all the articles I thought were lost in the ether of mounting technical debt were migrated. I was properly chuffed to see them all resurface.
Agent migration analysis
I estimated approximately 60 articles from the original collection. Some were referral articles and software reviews for tools that no longer exist, so I conducted a quick review and selected those remotely relevant today. The current consolidated blog represents this curated migration.
The agent's systematic approach to analysing plugins, dependencies, and potential conflicts returned precious time to me. I could see this working effectively at scale, though it would require fair moderation.
Caption: Process Flow Diagram of the phased tasks for the migration strategy and execution with Agent Workflow
Process insights
While the technology stack proved diverse in problem-solving capability, there were moments when the agent would brute-force solutions for several minutes until I intervened with lateral guidance. Those machine learning algorithms are undoubtedly learning from these approaches for future iterations, and it's only going to improve. That said, at scale, the agent’s execution would likely require significant intervention and course correction.
Migration projects are inherently complex. The critical thinking behind analysis and strategy proves as important as the migration approach itself. What impressed me most was the agent's ability to work through technical archaeology, parsing years of different frameworks, content management systems, and data structures.
Systematic learnings
Agents do well at systematically analysing accumulated technical complexity and offering structured approaches to legacy system migration. Breaking problems into tactical phases allows for better human oversight and course correction during agent execution. The agent also showed a solid understanding of content patterns across different platforms, adapting migration strategies as it went.
As I wrap up this experiment, I have a working product from all this labour, both mine and the agent's. This blog is exactly what I hoped to achieve. I'm already looking forward to sharing the next experiment soon.