{"id":22,"date":"2026-05-12T22:45:56","date_gmt":"2026-05-12T13:45:56","guid":{"rendered":"https:\/\/sr-works.net\/blog-en\/?p=22"},"modified":"2026-05-12T22:45:56","modified_gmt":"2026-05-12T13:45:56","slug":"completing-the-translation-of-16-files-the-night-all-the-ais-went-down-and-the-completion-of-the-four-way-collaboration","status":"publish","type":"post","link":"https:\/\/sr-works.net\/blog-en\/completing-the-translation-of-16-files-the-night-all-the-ais-went-down-and-the-completion-of-the-four-way-collaboration\/","title":{"rendered":"Completing the Translation of 16 Files \u2014 The Night All the AIs Went Down, and the Completion of the Four-Way Collaboration"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>This article was originally written in Japanese and translated into English with AI assistance. Please note that some expressions may carry nuances from the original Japanese.<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\ud83c\uddef\ud83c\uddf5 <a href=\"https:\/\/note.com\/sr_works\/n\/n9c7379598e86\">\u65e5\u672c\u8a9e\u7248\u306f\u3053\u3061\u3089 \/ Japanese version<\/a><\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\">In the previous post (SP02), I covered the first six sessions of the HP English translation project \u2014 the discovery and repair of the footer damage, the establishment of the three-way cross-review system, and the structural solution to procedural mistakes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This post covers the second half: translating the remaining four files and carrying the project through to completion. The biggest stumble of the project was waiting in this second half. The night all the AIs went down.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Taking On a Giant 68 KB File<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In Sessions 7 and 8, I completed the translation of the What&#8217;s New page (<code>whats_new.html<\/code>) and the About page. Three files remained. The biggest wall among them was <code>index.html<\/code> \u2014 the top page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This file was 68 KB, three to four times the size of the others. It contained product introductions, a development timeline, a technology stack overview \u2014 the content that effectively represents the entire site. It was also the file with the most expressions that required careful handling from an intellectual-property perspective.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For example, the phrase &#8220;six AI systems&#8221; appears six times in historical descriptions, while descriptions of the current state say &#8220;seven.&#8221; The translation needed to preserve this distinction precisely. Past references should say &#8220;six systems,&#8221; and present references &#8220;seven systems.&#8221; Mix them up even once, and you give the reader contradictory information.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before handing <code>index.html<\/code> to Claude Code, I first had Claude.ai chat read through it entirely and identify the IP-protection-critical passages in advance. Twelve spots of architecture-design-related terminology, seven spots involving six\/seven systems notation. I compiled these into a list and incorporated them into the translation prompt, which prevented Claude Code from accidentally &#8220;just making everything seven&#8221; across the board.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Session 9 \u2014 The Night All the AIs Went Down<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Session 9 was the most abnormal session of this project. The amount of work done was zero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As I wrote in SP02, by this point Copilot was refusing to read files entirely, and was out of action as a reviewer. &#8220;If Copilot isn&#8217;t available, we&#8217;ll just run reviews through Claude Code and Claude.ai chat&#8221; \u2014 that was the plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But then, even Claude \u2014 our fallback \u2014 died.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">It was the night I was about to begin translating the product detail page (<code>ai-multilingual-meeting-detail.html<\/code>). When I sent a status-check prompt to Claude Code, I got back an API 500 error. Retries gave the same. Three failures in a row.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;If Claude Code is unhealthy, let me switch models,&#8221; I thought, and retried after changing settings. Still no good. Even when I shortened the prompt to the absolute minimum \u2014 &#8220;just return git status&#8221; \u2014 I got a 500.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reluctantly, I shut down Claude Code and restarted it. <code>git status<\/code> and <code>git log<\/code> came through. But just as I breathed a sigh of relief, the moment I tried to run a <code>grep<\/code> command, this time I got an auth error (401).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;Maybe it&#8217;s just a Claude Code issue,&#8221; I thought, and tried to continue in Claude.ai chat. The chat side displayed: &#8220;Cannot connect to Claude.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copilot couldn&#8217;t read files. Claude Code wouldn&#8217;t run due to errors. Claude.ai chat couldn&#8217;t even connect. All three AIs were unusable at once. When Copilot first became unstable, I could still think &#8220;I&#8217;ll just use Claude instead.&#8221; But now Claude itself was down. The backup for the backup didn&#8217;t exist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At that point, I decided: &#8220;There&#8217;s nothing to do but wait.&#8221; I judged this was an infrastructure outage on Anthropic&#8217;s side. If it&#8217;s a problem on the service provider&#8217;s end, not my environment, there&#8217;s nothing to do but wait.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Structural Vulnerability of AI-Dependent Development<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest lesson from Session 9 was this simple fact: &#8220;Development that depends on AI stops completely when AI infrastructure fails.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In traditional development \u2014 the style of writing with just a text editor and compiler \u2014 work can continue even if the internet connection drops. The tools are right there in your hands. But in vibe coding, when AI services go down, you literally cannot do anything. Since the ability to write code resides on the AI side, the human has no option but to wait.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I believe this is an inherent vulnerability of vibe coding. Convenience and fragility often go hand in hand. In SP01 I wrote about &#8220;the pitfall of an era when AI can build anything,&#8221; but &#8220;there are moments when you cannot build anything&#8221; is another feature of this era.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That said, I don&#8217;t think we need to fear this vulnerability too much. By the next day, the service had recovered, and I was able to resume as Session 10 in a new chat. Outages are temporary. What matters is accepting that &#8220;things can stop&#8221; as a premise, breaking work into session-sized chunks, and committing intermediate state diligently.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Phase A Complete \u2014 Finishing the Translation Without Copilot Review<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From Session 10 onward, Claude had recovered, and I progressed through the remaining files smoothly. The two product detail pages had the most IP-protection-critical content, but the three-step approach I had established with <code>index.html<\/code> \u2014 &#8220;prior analysis \u2192 translation \u2192 verification&#8221; \u2014 worked.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Session 11, the last translation file was completed, and all eight English-version files were in place. Internally, I&#8217;ve been calling this &#8220;Phase A complete.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, the translations up to this point were completed by just Claude Code + Claude.ai chat, a two-way system. The third-party review by Copilot was missing. As I wrote in SP02, Copilot had been left as-is, refusing file reads. The decision was to prioritize keeping the translation moving, but we couldn&#8217;t skip Copilot review from a quality-assurance standpoint.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wrestling with Copilot \u2014 Somehow Getting It to Review<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With translation done, the next step was to have Copilot review. But Copilot was still unable to read files. From here, the struggle began.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Since this is translation review, HTML file reading was essential. Text pasting had a 10,240-character limit \u2014 not workable for long files like the product detail pages. I tried converting to text files (<code>.txt<\/code>) and uploading those, but that didn&#8217;t work either. I tried converting to PDF, but Copilot pushed back: &#8220;It has to be an HTML file.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;You were reading HTML just a little while ago,&#8221; I pointed out. It kept insisting, &#8220;The specification has changed.&#8221; Within the last hour or so, mind you.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The exchange went on. &#8220;The PDF contents are no longer auto-extracted \u2014 paste the text instead.&#8221; &#8220;Text is impossible because of the character limit, which is why I made a PDF.&#8221; &#8220;The PDF contents are treated as empty.&#8221; After all that, it kindly explained: &#8220;You&#8217;re not doing anything wrong on your end. It&#8217;s a change on Copilot&#8217;s side.&#8221; Well then, please do something about it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the end, when I attached the PDF again from the web version of Copilot, it suddenly said: &#8220;I can now confirm the full English-version HTML.&#8221; The reason is unclear. What it had been saying was impossible became possible using the same method. A considerable amount of wasted time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And once it could read the file, another problem emerged. The HTML source code had been broken during the PDF conversion. Spaces were inserted around underscores in BEM notation (a CSS class-naming convention), comment tag closings were mangled, and newlines appeared mid-attribute value. Copilot explained this as &#8220;breakage during text extraction from PDF,&#8221; but it was Copilot&#8217;s specification change that forced PDF delivery in the first place \u2014 a circular argument.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ultimately, I fixed the tag breakage on the Claude Code side and had Copilot focus only on the naturalness of the English. The role of Copilot as &#8220;reviewer&#8221; in the three-way system was preserved, but frankly, the journey to restoration was more exhausting than the translation work itself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the reality of vibe coding. Even with three AIs, each one becomes unstable for different reasons at different times. And when you ask the AI itself why it became unstable, you don&#8217;t get accurate answers. Right after saying &#8220;the spec has changed,&#8221; it does the same thing with the same method. Even in human-to-human communication this would be confusing, but with AI especially, pursuing &#8220;why can you do it now when you couldn&#8217;t a moment ago&#8221; yields no answers. You need the judgment to give up and move forward.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Copilot&#8217;s &#8220;Legal Tone&#8221; Revision Suggestions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The revived Copilot offered an interesting observation. It noted that the wording of the AI translation disclaimer (the header banner saying &#8220;This page contains AI-assisted translation&#8221;) was too casual for a business site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Indeed, the initial disclaimer had been written during translation work with a &#8220;good enough if the meaning gets across&#8221; mindset. Following Copilot&#8217;s feedback, I rewrote it in a tone closer to legal documentation. What was previously &#8220;This page contains AI-assisted translation&#8221; was revised to formal wording that specifies the scope of disclaimer and a contact point for inquiries.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AI generates \u2192 another AI reviews \u2192 human scrutinizes and accepts or rejects. This cycle, which had nearly collapsed at one point, ended up elevating quality even to the level of legal language. It was worth persisting to restore the three-way system rather than giving up.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, having all eight files in place with review completed wasn&#8217;t the end. A list of issues that had accumulated through Phase A \u2014 beyond the disclaimer wording, the footer horizontal rule inconsistency, navigation structure mismatches \u2014 remained. That&#8217;s Phase B.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Phase B \u2014 What Should Have Been &#8220;Minor Fixes&#8221; Became Major Surgery<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Phase B was initially estimated as &#8220;a collection of minor fixes.&#8221; But once I looked into it, the scope was beyond imagination.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The biggest discovery was that the navigation structure existed in two different variants. Of the 16 files, 10 were built in Pattern A (<code>ul&gt;li&gt;a<\/code> format) and 6 in Pattern B (<code>div&gt;a<\/code> format), and mobile display behavior was split into three patterns. On some pages the hamburger menu would open and close. On others it was always displayed and wrapped. On yet others, the menu disappeared entirely.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This &#8220;disappearing menu&#8221; was occurring on the About and What&#8217;s New pages. On mobile access, navigation wasn&#8217;t displayed at all, leaving zero routes to other pages. This is a serious practical bug.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The cause was subtle structural differences between HTML that had been AI-generated at different times. Differences in generation timing and prompts produced divergent internal structures across pages of the same site. The theme I wrote about in SP02 \u2014 &#8220;fixing HTML broken by AI, with AI&#8221; \u2014 was repeating itself here.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Session 15, I performed a large-scale refactoring that unified all 16 files to Pattern B + hamburger toggle. Including link path corrections, 212 modifications were made in a single session.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">16 Files, Completed<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With all Phase B issues closed, the 8 English files + 8 Japanese files = 16 files were now consistent both structurally and linguistically.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">From the start of the project to this point: 15 sessions, Session 1 through 15. One AI breaks, another fixes, a third reviews, a human decides. Through that repetition, the 16-file multilingual site came together.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, this is still just within my local development environment. It hasn&#8217;t been uploaded to the production server. Next time: at last, the production deployment story. Unexpected traps were waiting here too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next Time<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SP04: &#8220;Production Deployment \u2014 The .htaccess Trap and the Moment of Going Live.&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">About Soul Resonant Works<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Soul Resonant Works is a solo venture developing seven local AI systems.<br>Starting from zero programming experience, the development is progressing through collaboration with AI.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83c\udf10 Soul Resonant Works:<br>\u2192 <a href=\"https:\/\/www.sr-works.net\/en\/\">https:\/\/www.sr-works.net\/en\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udcdd This blog publishes the entire development process as a serialized journal.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><em>If you found this article useful, please share it.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article was originally written in Japanese and translated into English with AI assistance. Please note that some expressions may carry nuances from the original Japanese. \ud83c\uddef\ud83c\uddf5 \u65e5\u672c\u8a9e\u7248\u306f\u3053\u3061\u3089 \/ Japanese version In the previous post (SP02), I covered the first six sessions of the HP English translation project \u2014 the discovery and repair of the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","hentry","category-ai-development-journal"],"_links":{"self":[{"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/posts\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":1,"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":35,"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/posts\/22\/revisions\/35"}],"wp:attachment":[{"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sr-works.net\/blog-en\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}