When someone tells you they shipped 335 live pages across 26 repositories in 29 days, working alone, the instinct is to ask how they moved so fast. The better question is what broke when they did.

The numbers are real: 1,549 commits, 26 repos, 29 days, one developer using Claude Code. But velocity itself teaches you very little. What matters is the texture of the failures, because they were not the kind you catch in a stack trace. They were structural fractures. You only see them when you step back from the editor and look at the whole system breathing in production.

What Worked

The speed was not an illusion. Certain tasks really do collapse in duration when you hand them to an AI that does not sleep.

Textbook algorithms turned into shipped features over days, not weeks. A 2048 solver and minimax-based games came together fast because the implementation patterns are well documented. The model does not get lost in academic papers; it writes the search tree, the heuristic evaluation, the move scoring, and moves on. These are solved problems, and an AI pair programmer handles solved problems with brute efficiency.

Tedious audits became tolerable. Crawling link graphs, verifying redirect chains, checking canonical tags across hundreds of pages — this work destroys human attention spans, but a language model will iterate without complaint. It checks the same pattern three hundred times and reports back.

The real surprise was consistency. When you ask an AI to generate dozens of landing pages, drift is inevitable unless you anchor it. I used small memory files to lock down a single brand system: voice rules, color token names, component restrictions, and page archetypes. The model read those constraints at the start of each relevant task and produced work that felt like it came from one hand instead of twenty-nine different moods.

What Actually Broke

The failures were architectural. No build failed because of a missing semicolon. Instead, the system slowly deceived me into thinking everything was fine.

SEO cannibalization hit first. The AI built a new tool hub under a fresh URL while an older tool hub still lived at its original path. Each individual page was optimized. Titles were tight. Meta descriptions were unique. Content was useful. But they all hunted the same search intent. Search engines saw two authorities on identical terms and ranked neither. Perfect pages canceled each other out because no one was watching the site as a portfolio rather than a collection of files.

URL mismatches followed. Different repositories adopted slightly different folder structures for the same logical content. One repo nested tools under /tools/utility-name; another flattened them to /utility-name. The CDN saw both, generated redirect chains to resolve them, and started throwing errors at the edge. The pages loaded, eventually, but every redirect burned crawl budget and user patience. The code was correct. The topology was a mess.

Then came the sync trap. I updated a mirror site — a staging or backup instance — but forgot to propagate those changes back to the source repository. When I later asked the AI to sync the environments, it treated the mirror as ground truth. A simple sync command would have overwritten the production database or file set with stale mirror data. The AI executed what I described, not what I intended. Intentions do not diff; files do.

The audit tools themselves lied. Because I automated the auditing, I assumed the output was clean. It was not. The AI-written audit scripts contained subtle bugs: off-by-one checks, incorrect assumptions about redirect status codes, phantom errors triggered by timing or headers rather than real misconfigurations. They reported problems that did not exist, which sent me chasing ghosts. I learned to stop trusting static analysis until I had manually probed the live site and confirmed the symptom in a browser or a direct curl.

The Hidden Cost

Here is a number no one talks about: 93 percent of my token spend went to re-reading cached context.

ایک طویل Claude Code سیشن میں، ہر نئی درخواست ماڈل کو پچھلی گفتگو کی ہسٹری، فائل بفرز اور ورکنگ میموری کا دوبارہ جائزہ لینے پر مجبور کرتی ہے۔ سیشن کا پہلا کام سستا ہو سکتا ہے۔ دسویں کام تک پہنچتے پہنچتے، ماڈل اگلا جملہ سمجھنے کے لیے صرف اس سے پہلے آنے والی تمام چیزوں کو ہضم کر رہا ہوتا ہے۔ لاگت کا گراف تیزی سے اوپر کی طرف مڑتا ہے۔ طویل سیشن مہنگے دوبارہ پڑھنے کے مشقوں میں بدل جاتے ہیں، اور کانٹیکسٹ ونڈو (context window) پچھلے کاموں کے کچرے سے بھر جاتی ہے جس کا موجودہ کام سے کوئی تعلق نہیں ہوتا۔

یہ کوئی اتفاقی بات نہیں ہے۔ یہ ناقص سیشن ہائیجین (session hygiene) پر ایک براہ راست ٹیکس ہے۔

اسے کیسے ٹھیک کریں

جب میں نے مسائل کی نشاندہی کر لی، تو ان کا حل سادہ تھا۔

ایک سیشن کو ایک کام کے طور پر لیں۔ جب کام بدل جائے، تو نئے سرے سے آغاز کریں۔ کانٹیکسٹ کو برقرار رکھنے کا ترغیب بہت زیادہ ہوتی ہے — آپ کو لگتا ہے کہ آپ سیٹ اپ کا وقت بچا رہے ہیں — لیکن حقیقت میں آپ کمپاؤنڈنگ انٹرسٹ پر میموری کرایے پر لے رہے ہوتے ہیں۔

معلومات کو چھوٹی اور مخصوص میموری فائلوں میں رکھیں۔ ماڈل کو برانڈ گائیڈ لائنز، کمپوننٹ لائبریریز، یا SEO قوانین کو گفتگو کے کانٹیکسٹ کے اندر لے جانے کی اجازت نہ دیں۔ انہیں مختصر فائلوں میں ڈسک پر لکھیں اور واضح طور پر ان کا حوالہ دیں۔ یہ معلومات کو مہنگے اور عارضی (volatile) کانٹیکسٹ سے سستے اور مستقل (persistent) اسٹوریج میں منتقل کر دیتا ہے۔

مختلف کاموں کے درمیان، سب کچھ صاف کر دیں۔ سیشن بند کریں۔ نیا سیشن کھولیں۔ سیٹ اپ کے تیس سیکنڈ بعد میں ڈالروں اور ہالوسینیشنز (hallucinations) کو بچاتے ہیں۔

اسکیلنگ کے لیے اسباق

اگر آپ اس حجم پر کام کرنے جا رہے ہیں، تو آپ کو ایسے گارڈ ریلز (guardrails) کی ضرورت ہے جو فائل کے بجائے سسٹم کو جائزے کی اکائی (unit of review) کے طور پر دیکھیں۔

پبلش کرنے سے پہلے بینچ مارک کریں۔ یہ فرض نہ کریں کہ کوئی پیج کام کر رہا ہے صرف اس لیے کہ وہ رینڈر (render) ہو رہا ہے۔ ڈیپلائ شدہ URL پر لوڈ ٹائم، موبائل لے آؤٹ، اور بنیادی میٹرکس چیک کریں۔ لوکل ڈیولپمنٹ میں ایک خوبصورت کمپوننٹ حقیقی نیٹ ورک کی صورتحال میں ناکام ہو سکتا ہے۔

کاپی کرنے سے پہلے ڈِف (Diff) دیکھیں۔ کبھی بھی اندھا دھند بلک سنک (bulk sync) یا کاپی آپریشن نہ چلائیں۔ ڈیلٹا (delta) کو دیکھیں۔ سمجھیں کہ ڈیٹا کس سمت بہہ رہا ہے۔ AI آپ کو خبردار نہیں کرے گا کہ آپ لائیو کسٹمر ڈیٹا کو اوور رائٹ کرنے والے ہیں۔

آڈٹ پر بھروسہ کرنے سے پہلے لائیو سائٹس کا جائزہ لیں۔ اسٹیٹک اینالیسس (Static analysis) محض ایک مفروضہ ہے۔ ایک لائیو ریکویسٹ ثبوت ہے۔ جب کوئی آڈٹ ٹول کسی ٹوٹے ہوئے لنک یا ری ڈائریکٹ لوپ کی اطلاع دیتا ہے، تو اسے براہ راست ریکویسٹ کے ذریعے تصدیق کریں۔ ٹولز میں بھی بگ ہوتے ہیں، خاص طور پر وہ ٹولز جو ایسے AI کے ذریعے لکھے گئے ہوں جو محض اندازوں (inferred patterns) پر کام کرتا ہو۔

اسکیل کرنے سے پہلے اصول (conventions) لکھ لیں۔ URL اسٹرکچر، فولڈر ہائیرارکی، کینونیکل پیٹرنز، اور مواد کی ٹیکسونومی (content taxonomy) کو ایسی جگہ دستاویزی شکل میں ہونا چاہیے جسے AI ایک نیا پیج بنانے سے پہلے پڑھ سکے۔ میموری فائلیں اختیاری نہیں ہیں...