Tuesday, October 14, 2025

Classes from an AI-Assisted Content material Migration

Dialogue of AI is throughout us, however in my expertise, sensible steerage rooted in particular use instances is surprisingly uncommon. After spending months deep within the weeds of an enormous documentation migration with AI as my assistant, I’ve discovered some hard-won classes that I feel others may benefit from.

When you work in content material engineering, technical documentation, or are merely interested by how AI holds up in a posh, real-world challenge, right here’s my tackle what labored and what didn’t.

Venture Context

I’m a DITA Data Architect on the Data Expertise crew at Splunk. DITA, brief for Darwin Data Typing Structure, is an open, XML-based commonplace for structuring and managing technical content material.

We not too long ago wrapped up the migration of three massive documentation websites right into a single assist portal, powered by a DITA-based part content material administration system (CCMS). The timeline was tight, and almost the entire sources had been inner. The migrations had been complicated and vital to the enterprise, requiring cautious planning and execution.

I initially deliberate solely to assist the migration of the smaller, unversioned web site. When that went properly, I used to be requested to guide the a lot bigger second migration. (The third web site was dealt with by one other crew.) Collectively, these two migrations meant grappling with roughly 30,000 HTML recordsdata, two very completely different web site architectures, and the problem of customizing an current Python migration script to suit the content material at hand, whereas additionally placing processes in place for writers to evaluation and clear up their content material.

I need to be clear that AI didn’t full this challenge for me. It enabled me to work quicker and extra effectively, although solely whereas I did the planning, architecting, and troubleshooting. Used successfully, AI turned an influence instrument that dramatically sped up supply, nevertheless it by no means changed the necessity for experience or oversight.

All through this challenge, I used the then-current GPT-4 fashions via an inner Cisco chat-based deployment. Nowadays, I work extra in editor-based instruments akin to GitHub Copilot. Nonetheless, the teachings I discovered ought to apply to the current (mid-2025) cutting-edge, with a couple of caveats that I point out the place related.

How I used AI successfully

Prompting

One lesson I discovered early on was to deal with prompts the best way I method technical documentation: clear, constant, and complete. Earlier than consulting the AI, I’d sketch out what wanted to occur, then break it down into granular steps and write a immediate that left as little to the creativeness as potential.

If I wasn’t positive in regards to the answer, I’d use the AI as a brainstorming companion first, then observe up with a exact immediate for implementation.

Iterative improvement

The migration automation wasn’t a single script however turned a collection of Python instruments that crawl navigation timber, fetch HTML, convert to DITA XML, cut up matters into smaller models, map content material, and deal with model diffs. Every script began small, then grew as I layered in options.

I shortly discovered that asking AI to rewrite a big script was a recipe for bugs and confusion. As an alternative, I added performance in small, well-defined increments. Every function or repair obtained its personal immediate and its personal GitLab commit. This made it simple to roll again when one thing went sideways and to trace precisely what every change achieved.

Debugging

Even with good prompts, AI-generated code hardly ever labored completely on the primary attempt – particularly because the scripts grew in measurement. My best debugging instrument was print statements. When the output wasn’t what I anticipated, I’d sprinkle print statements all through the logic to hint what was taking place. Typically I’d ask AI to re-explain the code line by line, which frequently revealed delicate logical errors or edge instances I hadn’t thought of.

Importantly, this wasn’t nearly fixing bugs, it was additionally about studying. My Python expertise grew immensely via this course of, as I pressured myself to essentially perceive each line the AI generated. If I didn’t, I’d inevitably pay the value later when a small tweak broke one thing downstream.

Nowadays, I lean on an AI-powered built-in improvement surroundings (IDE) to speed up debugging. However the precept is unchanged: don’t skip instrumentation and verification. If the AI can’t debug for you, fall again on print statements and your individual skill to hint the issue to its supply. And all the time double examine any AI-generated code.

AI as an implementer, not inventor

This challenge taught me that AI is implausible at taking a well-defined concept and turning it into working code. However in case you ask it to design an structure or invent a migration technique from scratch, it should most likely allow you to down. My most efficient workflow was to (1) design the method myself, (2) describe it intimately, (3) let the AI deal with the implementation and boilerplate, and (4) evaluation, take a look at, and refine the AI output.

Model management

I can’t stress sufficient the significance of model management, even for easy scripts. Each time I added a function or fastened a bug, I made a commit. When a bug appeared days later, I might stroll again via my historical past and pinpoint the place issues broke. Certain, that is primary software program engineering, however while you’re working with AI, it’s much more important. The speed of change will increase, and your individual reminiscence of every modification is inevitably much less exhaustive.

The online impact of those practices was pace with out chaos. We delivered far quicker than we might have in any other case, and the standard of the output considerably lowered post-migration cleanup.

The place AI fell brief

As precious as AI was, it had many shortcomings. The cracks began to indicate because the scripts grew in measurement and complexity:

  • Context limits: When scripts obtained longer, the AI misplaced observe of earlier code sections. It might add new standalone options, however integrating new logic into current, interdependent code? That always failed except I spelled out precisely the place and the right way to make adjustments. I ought to observe that immediately’s newer fashions with bigger context home windows may scale back among the points I bumped into with the migration scripts. However I believe that it’s nonetheless vital to be as particular as potential about what sections must be up to date and with what logic.
  • Failure to discover a working implementation: I discovered that generally the AI merely couldn’t resolve the issue as outlined within the immediate. If I requested for a change and it failed three or 4 instances, that was normally a sign to step again and check out one thing completely different – whether or not that meant prompting for an alternate method or writing the code myself.
  • System understanding: Sure bugs or edge instances required a strong understanding of our programs, like how the CCMS handles ID values, or how competing case sensitivity guidelines throughout programs might journey issues up. This can be a essential space the place AI couldn’t assist me.

What I’d do otherwise subsequent time

Right here’s my recommendation, if I needed to do it once more:

  • Plan core libraries and conventions early: Determine in your stack, naming schemes, and file construction on the outset and embrace them in each immediate. Inconsistencies right here led to time wasted refactoring scripts midstream. That stated, working in an editor-based instrument that’s conscious of your total pipeline will assist to maintain your libraries constant from the outset.
  • Sanitize every little thing: File names, IDs, casing, and different seemingly minor particulars could cause main downstream issues. Embrace this steerage in your prompting boilerplate.
  • Account for customized content material: Don’t assume all docs observe the identical patterns and positively don’t assume the AI understands the nuances of your content material. Discover out early the place the outliers are. This upfront work will prevent time in the long term.
  • Doc the complicated stuff: For any logic that takes various minutes to know, write down a radical clarification you may refer again to later. There have been instances I needed to re-analyze difficult components of the scripts weeks later, when an in depth observe would have set me again on track.

One non-AI tip: maintain copies of your supply and transformed markup in a repository even after importing the transformed content material to your manufacturing tooling. I promise that you simply’ll have to refer again to them.

AI as a companion, not a alternative

Reflecting on the challenge, I can emphatically say that AI didn’t change my important considering. As an alternative, it amplified my expertise, serving to me work at a pace and scale that may have been tough to attain alone, whereas streamlining the post-migration cleanup. However anytime I leaned too closely on AI with out cautious planning, I wasted time and needed to backtrack.

The true worth got here from pairing my area information and significant considering with AI’s skill to iterate shortly and implement. Used thoughtfully, AI helped me ship a challenge that turned a profession milestone.

When you’re dealing with your individual daunting migration, or simply need to get extra out of AI in your workflow, I hope these classes prevent some ache, and perhaps even encourage you to tackle a problem you might need thought was too massive to deal with.

Discover extra tales on our Innovation channel and subscribe right here!

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles