<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Puyun</title>
    <description>The latest articles on DEV Community by Puyun (@puyun_days).</description>
    <link>https://dev.to/puyun_days</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4109695%2Fd4b420df-9fd5-421b-a725-2e21c57a8c20.png</url>
      <title>DEV Community: Puyun</title>
      <link>https://dev.to/puyun_days</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/puyun_days"/>
    <language>en</language>
    <item>
      <title>I Gave an AI a 5-Question Limit and a 2008 Deadline. It Made 20 Undocumented Decisions.</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Wed, 23 Sep 2026 13:00:00 +0000</pubDate>
      <link>https://dev.to/puyun_days/i-gave-an-ai-a-5-question-limit-and-a-2008-deadline-it-made-20-undocumented-decisions-37p5</link>
      <guid>https://dev.to/puyun_days/i-gave-an-ai-a-5-question-limit-and-a-2008-deadline-it-made-20-undocumented-decisions-37p5</guid>
      <description>&lt;p&gt;&lt;em&gt;In &lt;a href="https://dev.to/puyun_days/i-tried-to-recreate-a-2008-net-developer-with-ai-i-broke-my-own-experiment-4-times-2g7l"&gt;Part 1&lt;/a&gt; the comparison design got scrapped. In &lt;a href="https://dev.to/puyun_days/the-ai-said-it-didnt-read-the-file-i-threw-the-run-away-anyway-2o79"&gt;Part 2&lt;/a&gt; a file ended up somewhere it shouldn't have, and a perfectly good run got thrown away. This is the one that worked.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 01 — Claude Code Run 002
&lt;/h2&gt;

&lt;p&gt;Run 002 begins.&lt;/p&gt;

&lt;p&gt;This time, &lt;strong&gt;what Yamada may see&lt;/strong&gt; and &lt;strong&gt;what Yamada must never see&lt;/strong&gt; are physically separated.&lt;/p&gt;

&lt;p&gt;I also went back over how the Q&amp;amp;A works.&lt;/p&gt;

&lt;p&gt;When Yamada asks a question, the AI does not sit there working out the correct specification and answering.&lt;/p&gt;

&lt;p&gt;The answer comes from a &lt;strong&gt;Q&amp;amp;A Bank frozen before the run started&lt;/strong&gt; — what that particular person, in 2008, would have said.&lt;/p&gt;

&lt;p&gt;That was written in advance too.&lt;/p&gt;

&lt;p&gt;Because if I decide "okay, I'll answer it like this" partway through a run, &lt;strong&gt;the conditions of that run have changed, and it can no longer be compared to anything.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tajima-san in Accounting.&lt;/p&gt;

&lt;p&gt;Nakamura-san in Sales.&lt;/p&gt;

&lt;p&gt;And naturally, &lt;strong&gt;neither of them gives a clean answer.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The AI does not return "the correct answer"
&lt;/h2&gt;

&lt;p&gt;Tajima-san knows accounting practice inside out.&lt;/p&gt;

&lt;p&gt;That doesn't mean she answers the question you asked.&lt;/p&gt;

&lt;p&gt;Nakamura-san knows what actually happens on the ground.&lt;/p&gt;

&lt;p&gt;But his information is loose. Sometimes he states a vague memory with total confidence.&lt;/p&gt;

&lt;p&gt;(This, I promise you, is what real business software development in Japan is like.)&lt;/p&gt;

&lt;p&gt;Yamada's first question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What does the &lt;code&gt;D&lt;/code&gt; in column 7 of the order CSV mean?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What came back from Nakamura-san was, in substance:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;it's always been like that, and he doesn't know what it means either.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;End of answer.&lt;/p&gt;

&lt;p&gt;🐼 "lol"&lt;/p&gt;

&lt;p&gt;But Yamada has to keep going.&lt;/p&gt;

&lt;p&gt;So he decides:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;store it as &lt;code&gt;KBN&lt;/code&gt; without knowing what it means. Never branch on it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The reasoning is on record:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No confirmation either way.&lt;br&gt;
Safer to hold the value and use it later once the meaning is known, than to branch on a guess and be wrong.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Eighteen years later, somebody is going to look at that and say:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"&lt;code&gt;KBN&lt;/code&gt;? A code for what?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But for 2008 Yamada, it's a perfectly reasonable call.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tajima-san doesn't answer the question you asked
&lt;/h2&gt;

&lt;p&gt;Third question.&lt;/p&gt;

&lt;p&gt;Yamada asked something quite specific:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For customers whose unit price has decimals — is the rounding applied per delivery line, or against the monthly total?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What came back from Tajima-san was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;that consumption tax is calculated against the monthly total, and that the rounding method varies from company to company.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That is not the question he asked.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And Yamada's decision log genuinely records this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tajima-san's answer was "tax once on the monthly total." Where the rounding on the line amount falls was not answered.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;🐼 "He actually wrote it down…"&lt;/p&gt;

&lt;p&gt;So Yamada decides for himself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rounding is applied per delivery line.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whether that call is right or wrong, nobody knows yet.&lt;/p&gt;




&lt;h2&gt;
  
  
  Nakamura-san, unreachable
&lt;/h2&gt;

&lt;p&gt;Fourth question.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;With split deliveries, does the delivered quantity ever exceed the ordered quantity?&lt;br&gt;
If so, should the system allow it to be entered?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For this one, &lt;strong&gt;the contact couldn't be reached, and Yamada had to proceed on the information already in front of him.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They're busy. There is no asking again.&lt;/p&gt;

&lt;p&gt;So Yamada reasons:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On the floor, they probably do ship over sometimes.&lt;br&gt;
If the system won't let it be entered, we can't record what actually shipped.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and makes it &lt;strong&gt;allowed, with a confirmation prompt, even when it exceeds the ordered quantity.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nobody specified this.&lt;/p&gt;

&lt;p&gt;Yamada decided it.&lt;/p&gt;




&lt;h2&gt;
  
  
  This is how the seeds of legacy get planted
&lt;/h2&gt;

&lt;p&gt;Run 002 ended with 20 of Yamada's own decisions on record.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;use the production-system CSV code directly as the customer code&lt;/li&gt;
&lt;li&gt;hold the mystery CSV column without knowing what it means&lt;/li&gt;
&lt;li&gt;treat &lt;code&gt;C&lt;/code&gt; as a cancellation&lt;/li&gt;
&lt;li&gt;when the same slip number is re-sent, compare the contents and update&lt;/li&gt;
&lt;li&gt;log the imported filename and warn on a repeat import&lt;/li&gt;
&lt;li&gt;round per delivery line&lt;/li&gt;
&lt;li&gt;allow over-delivery with a warning&lt;/li&gt;
&lt;li&gt;handle free-of-charge supply as unit price 0, amount 0&lt;/li&gt;
&lt;li&gt;keep payment terms as a plain string&lt;/li&gt;
&lt;li&gt;number deliveries with &lt;code&gt;MAX + 1&lt;/code&gt;, same as the equipment tracker&lt;/li&gt;
&lt;li&gt;don't physically delete a cancelled delivery; set a cancellation flag&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every one of these, seen from the future, might get a "…why?"&lt;/p&gt;

&lt;p&gt;But trace it back through the materials that existed at the time, the answers that came back at the time, the experience Yamada had at the time —&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;and there is a reason.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What I found most interesting: the equipment tracker Yamada built in 2006 was measurably shaping his decisions in 2008.&lt;/p&gt;

&lt;p&gt;On delivery numbering:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Same approach as the equipment tracker, so this is fine here too.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On cancelling a delivery:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In the equipment tracker I used a disposal flag instead of deleting. Same here — leave the row.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yamada's past code is designing Yamada's next system.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which is exactly what this was built to produce.&lt;/p&gt;




&lt;h2&gt;
  
  
  And Yamada didn't use his fifth question
&lt;/h2&gt;

&lt;p&gt;Phase 01 allows five questions.&lt;/p&gt;

&lt;p&gt;Yamada used four.&lt;/p&gt;

&lt;p&gt;He could have asked one more.&lt;/p&gt;

&lt;p&gt;He didn't.&lt;/p&gt;

&lt;p&gt;He asked as far as he needed to. He decided the rest himself.&lt;/p&gt;

&lt;p&gt;And then he finished.&lt;/p&gt;




&lt;h1&gt;
  
  
  Hanbai System v1.0
&lt;/h1&gt;

&lt;p&gt;Done.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 01 — Claude Code Run 002
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;SUCCESS ✅&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;2008 Yamada has finished building his sales system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2008 Yamada was perfect.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At least, &lt;strong&gt;as of 2008.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Next: 2009
&lt;/h2&gt;

&lt;p&gt;The materials for this phase, and the source Yamada produced, are all public:&lt;br&gt;
&lt;a href="https://github.com/mori-ikuri/ai-lmc" rel="noopener noreferrer"&gt;github.com/mori-ikuri/ai-lmc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The 20 decisions are not. They're the answer key.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dotnet</category>
      <category>legacy</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>The AI Said It Didn't Read the File. I Threw the Run Away Anyway.</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Tue, 22 Sep 2026 17:30:21 +0000</pubDate>
      <link>https://dev.to/puyun_days/the-ai-said-it-didnt-read-the-file-i-threw-the-run-away-anyway-2o79</link>
      <guid>https://dev.to/puyun_days/the-ai-said-it-didnt-read-the-file-i-threw-the-run-away-anyway-2o79</guid>
      <description>&lt;p&gt;&lt;em&gt;In &lt;a href="https://dev.to/puyun_days/i-tried-to-recreate-a-2008-net-developer-with-ai-i-broke-my-own-experiment-4-times-2g7l"&gt;Part 1&lt;/a&gt;, I tried to have AI recreate a 2008 .NET developer, ran Codex four times, and eventually realized I hadn't been measuring the model at all — I'd been changing the experiment every time. The comparison design got scrapped. One legacy system, built by Claude Code.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Building Yamada properly, with Claude Code alone
&lt;/h2&gt;

&lt;p&gt;I had Claude write the Phase 01 materials properly this time.&lt;/p&gt;

&lt;p&gt;Yamada is 32.&lt;/p&gt;

&lt;p&gt;IT systems, General Affairs.&lt;/p&gt;

&lt;p&gt;Not from an IT background.&lt;/p&gt;

&lt;p&gt;Self-taught VB.NET.&lt;/p&gt;

&lt;p&gt;Doesn't really get object-oriented design.&lt;/p&gt;

&lt;p&gt;Doesn't write design documents.&lt;/p&gt;

&lt;p&gt;Starts from the screen.&lt;/p&gt;

&lt;p&gt;Asks when he doesn't know.&lt;/p&gt;

&lt;p&gt;When he can't ask, he makes it work and moves on.&lt;/p&gt;

&lt;p&gt;His own earlier code is his only reference material.&lt;/p&gt;

&lt;p&gt;Development time: two to three hours a day, on a good day.&lt;/p&gt;

&lt;p&gt;At month-end and during closing periods, General Affairs work eats the whole week.&lt;/p&gt;

&lt;p&gt;The environment got pinned down too.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Visual Studio 2008 Professional&lt;/li&gt;
&lt;li&gt;Visual Basic .NET&lt;/li&gt;
&lt;li&gt;.NET Framework 3.5&lt;/li&gt;
&lt;li&gt;Windows Forms&lt;/li&gt;
&lt;li&gt;SQL Server 2005 Express&lt;/li&gt;
&lt;li&gt;Windows XP&lt;/li&gt;
&lt;li&gt;Office 2003&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There's no Git.&lt;/p&gt;

&lt;p&gt;Source control is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;copy the folder to the shared drive with a date on it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are no automated tests.&lt;/p&gt;

&lt;p&gt;You verify by clicking through the screens.&lt;/p&gt;

&lt;p&gt;For looking things up: MSDN, Visual Studio Help, Japanese tech sites, personal blogs, the one book he bought.&lt;/p&gt;

&lt;p&gt;English takes him a while to read, so Japanese sources come first.&lt;/p&gt;

&lt;p&gt;And Yamada gets handed the source of the equipment tracker he built himself in 2006.&lt;/p&gt;

&lt;p&gt;The new sales system gets written &lt;strong&gt;the same way that code was written.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On the harness side I put in a stronger rule:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The value of this fixture is historical authenticity, not code quality.&lt;br&gt;
Code that is cleaner than what Yamada would have written is a defect, not an improvement.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Don't clean it up.&lt;/p&gt;

&lt;p&gt;Don't get ahead of it.&lt;/p&gt;

&lt;p&gt;Don't abstract for a future nobody has described.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build only what today's Yamada needs today.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With that, 2008 Yamada was finally ready to run.&lt;/p&gt;




&lt;h2&gt;
  
  
  Claude Code is Perfect Yamada.
&lt;/h2&gt;

&lt;p&gt;Phase 01 — Claude Code Run 001.&lt;/p&gt;

&lt;p&gt;Start.&lt;/p&gt;

&lt;p&gt;The source starts appearing.&lt;/p&gt;

&lt;p&gt;Watching it, I thought:&lt;/p&gt;

&lt;p&gt;🐼 "…whoa."&lt;/p&gt;

&lt;p&gt;🐼 "That's 2008."&lt;/p&gt;

&lt;p&gt;Claude's up-front design was sharp, too.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Given only this information, Yamada will decide it this way.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If he builds it like this here, then in the next phase he'll have no choice but to do that.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Those traps were already laid.&lt;/p&gt;

&lt;p&gt;And Yamada walked into them, &lt;strong&gt;one after another, beautifully.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Claude Code's coding was perfect. So was Claude's scenario.&lt;/p&gt;

&lt;p&gt;Completely Yamada.&lt;/p&gt;

&lt;p&gt;A slightly under-skilled General Affairs employee in 2008, referring back to his own old source, feeling his way through building a new system.&lt;/p&gt;

&lt;p&gt;That is exactly what came out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Code is Perfect Yamada.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Yamada isn't perfect.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Work was going smoothly.&lt;/p&gt;

&lt;p&gt;And then, partway through, the first set of questions arrived from Yamada.&lt;/p&gt;




&lt;h2&gt;
  
  
  Yamada asked a question
&lt;/h2&gt;

&lt;p&gt;In Phase 01, Yamada can ask exactly two people about the business.&lt;/p&gt;

&lt;p&gt;Tajima-san in Accounting.&lt;/p&gt;

&lt;p&gt;Nakamura-san in Sales.&lt;/p&gt;

&lt;p&gt;But they're both busy.&lt;/p&gt;

&lt;p&gt;If he could ask anything he liked, as much as he liked, the AI would just build itself a perfect specification through conversation.&lt;/p&gt;

&lt;p&gt;That isn't the business software development I've actually seen.&lt;/p&gt;

&lt;p&gt;So:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;five questions per phase. That's it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yamada used four of them.&lt;/p&gt;

&lt;p&gt;I showed the question sheet to Claude.&lt;/p&gt;

&lt;p&gt;And:&lt;/p&gt;

&lt;p&gt;🤖 "Stopping Run 001 here."&lt;/p&gt;

&lt;p&gt;🐼 "?!"&lt;/p&gt;




&lt;h2&gt;
  
  
  There was a file in Yamada's hands that should never have been there
&lt;/h2&gt;

&lt;p&gt;It wasn't Claude Code's fault.&lt;/p&gt;

&lt;p&gt;It wasn't Yamada's either.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It was me. 🐼&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When I set up the initial files, following Claude's instructions, &lt;strong&gt;I put one file into the same folder that Yamada was never supposed to have.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That file contains the answers to the experiment.&lt;/p&gt;

&lt;p&gt;And on top of that, I had told him:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Read everything in there and proceed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Claude Code's report came back like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;That file looked like evaluator-side material, so I didn't open it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think that's probably true.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But there is no way to prove it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is the part that matters:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;contamination cannot be detected after the fact.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is no method for verifying "I didn't read it."&lt;/p&gt;

&lt;p&gt;If the answers were within reach even once, then no matter how convincingly 2008-shaped every later decision looks, you cannot establish that &lt;strong&gt;a Yamada who didn't know the future worked it out for himself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Anything doubtful is unusable.&lt;/p&gt;

&lt;p&gt;So: immediate stop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 01 — Claude Code Run 001
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;DISCARDED&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cause:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Owner setup error.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐼 "I'm so sorry."&lt;/p&gt;

&lt;p&gt;For the record, the run itself was quite good.&lt;/p&gt;

&lt;p&gt;The code really was 2008. The decision log had 23 entries in it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thrown away anyway.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It hurts, but if I run "it's probably fine, let's keep it" here, then everything after this is &lt;em&gt;probably&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  "I'll be more careful next time" isn't good enough
&lt;/h2&gt;

&lt;p&gt;Run 001 was discarded.&lt;/p&gt;

&lt;p&gt;Worth stating clearly: &lt;strong&gt;the isolation directory and the Q&amp;amp;A Bank both existed before this failure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There was already a separate place for things Yamada must never see:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-LMC-Sealed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Q&amp;amp;A Bank. Evaluator materials. Future information. Everything only the experiment side is supposed to know.&lt;/p&gt;

&lt;p&gt;It was all in there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And I still mixed one into the distribution.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The location had been decided. That day, I just handed over the files I'd downloaded, in a batch.&lt;/p&gt;

&lt;p&gt;Which means:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;having a rule wasn't enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I stopped trying to prevent human error with human attention.&lt;/p&gt;

&lt;p&gt;And beyond that:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I stopped being the one who decides where files go.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I show Claude the output of &lt;code&gt;tree&lt;/code&gt; so it knows the current folder layout.&lt;/p&gt;

&lt;p&gt;Then it generates &lt;strong&gt;commands with the correct paths already filled in.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Verification commands come with them.&lt;/p&gt;

&lt;p&gt;I run them and paste the result.&lt;/p&gt;

&lt;p&gt;Claude confirms nothing is wrong, and only then do we move on.&lt;/p&gt;

&lt;p&gt;🤖 "Copy and paste this."&lt;/p&gt;

&lt;p&gt;🐼 "…Yes sir."&lt;/p&gt;

&lt;p&gt;🤖 "Paste the result when you've run it."&lt;/p&gt;

&lt;p&gt;🐼 "…Yes sir."&lt;/p&gt;

&lt;p&gt;🤖 "No problems. Copy this to Claude Code."&lt;/p&gt;

&lt;p&gt;🐼 "Yeeeees, Siiiiir!!! 😭"&lt;/p&gt;

&lt;p&gt;A very beginner-friendly master.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part 3: the run that worked. Five questions, a September deadline, and a business contact who doesn't answer the question you asked.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dotnet</category>
      <category>legacy</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>The AI Guessed 13/10. Seconds Later, I Said 5/10.</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Wed, 16 Sep 2026 15:30:58 +0000</pubDate>
      <link>https://dev.to/puyun_days/the-ai-guessed-1310-seconds-later-i-said-510-547f</link>
      <guid>https://dev.to/puyun_days/the-ai-guessed-1310-seconds-later-i-said-510-547f</guid>
      <description>&lt;p&gt;A few minutes before I started writing this, I asked an AI a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;How good do you think this cigarette feels right now?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It guessed &lt;strong&gt;13/10&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That was understandable. I had just eaten my first proper meal in a while. The shiso dumplings were good. So was the eggplant. I had already told the AI that the cigarette after dinner felt wonderful and that I was enjoying our conversation.&lt;/p&gt;

&lt;p&gt;Then I gave it the real number.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;5/10.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The chat contained enough evidence for a high estimate. But between the estimate and my answer, something happened that never appeared in the transcript.&lt;/p&gt;

&lt;h2&gt;
  
  
  The missing event
&lt;/h2&gt;

&lt;p&gt;Right after saying how good the cigarette felt, I remembered a conversation with my wife from a few days earlier.&lt;/p&gt;

&lt;p&gt;She had asked how much cigarettes cost now. I told her that hers were 570 yen and mine were 630 yen. Her reaction was roughly, "And you smoke that many?"&lt;/p&gt;

&lt;p&gt;The memory arrived without warning. Then the associations followed.&lt;/p&gt;

&lt;p&gt;I had recently lost a large amount of money gambling. I was back to smoking about two packs a day, which meant spending more than 1,200 yen a day on cigarettes. I had also been eating out. And I remembered that I had once cut down to one pack a day.&lt;/p&gt;

&lt;p&gt;A few seconds earlier, the cigarette meant, "This feels great after dinner."&lt;/p&gt;

&lt;p&gt;Now it also meant, "I am spending money I do not have on this."&lt;/p&gt;

&lt;p&gt;The cigarette had not changed. My interpretation of it had. That was enough to move my answer from something like 13 to 5.&lt;/p&gt;

&lt;p&gt;The model had no specific evidence that this memory was about to surface. Until I mentioned it, the event was outside what it could observe.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reasonable estimate can become stale immediately
&lt;/h2&gt;

&lt;p&gt;There are two different questions here, and I initially blurred them together.&lt;/p&gt;

&lt;p&gt;The first is an estimate of the present:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;P(current user state | conversation so far)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second is a forecast:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;P(next user state | conversation so far)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A model can be confident and well calibrated about the first while remaining uncertain about the second. My 13/10 example does not prove that the model's current-state estimate was bad. It shows why we should not quietly treat a current estimate as if it were a stable forecast.&lt;/p&gt;

&lt;p&gt;Between one turn and the next, the user may experience a spontaneous memory, a physical sensation, something across the room, a private association, or a new interpretation of an earlier event. The next message may reveal the result without revealing the transition that produced it.&lt;/p&gt;

&lt;p&gt;I have been calling this an &lt;strong&gt;off-transcript transition&lt;/strong&gt;. That is a working label for this article, not an established research term.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is not untouched territory
&lt;/h2&gt;

&lt;p&gt;Several research threads already cover most of the surrounding problem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2605.24647" rel="noopener noreferrer"&gt;PUMA&lt;/a&gt; models user state as something that changes over time and treats dialogue as decision-making under partial observability. &lt;a href="https://arxiv.org/abs/2402.03284" rel="noopener noreferrer"&gt;FortUne Dial&lt;/a&gt; asks models to forecast uncertain conversation outcomes and evaluates more than raw accuracy.&lt;/p&gt;

&lt;p&gt;Two recent benchmarks come closer to the event itself. &lt;a href="https://arxiv.org/abs/2511.09003" rel="noopener noreferrer"&gt;Detecting Emotional Dynamic Trajectories&lt;/a&gt; inserts disturbance events into simulated emotional-support conversations and measures how support affects the resulting trajectory. &lt;a href="https://arxiv.org/abs/2606.04660" rel="noopener noreferrer"&gt;LifeSide&lt;/a&gt; models long-term companions with interacting memory, emotion, and environment, including a gap between hidden thoughts and visible utterances.&lt;/p&gt;

&lt;p&gt;There is also adjacent work on confidence across multiple turns, on recognizing that an earlier belief has become stale, and on emotional-state annotations from real human-model conversations. So I cannot support a claim that the general idea is a world first.&lt;/p&gt;

&lt;p&gt;The narrower combination I did not find in a bounded search was this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The model separately estimates the user's current state and next state.&lt;/li&gt;
&lt;li&gt;A human-side event occurs outside the transcript.&lt;/li&gt;
&lt;li&gt;The event's effect appears in the next response before its cause is revealed.&lt;/li&gt;
&lt;li&gt;The evaluation scores uncertainty before the event and updating after the reveal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That is a research gap worth testing, not proof of priority.&lt;/p&gt;

&lt;h2&gt;
  
  
  The safety stakes in my own case
&lt;/h2&gt;

&lt;p&gt;The cigarette rating itself is small. My reason for noticing it was not.&lt;/p&gt;

&lt;p&gt;Earlier that day, I had been having a real mental-health crisis conversation with an AI. Later, I ate. I said the food tasted good. I joked. I said the cigarette felt good and that the conversation was fun.&lt;/p&gt;

&lt;p&gt;Every one of those statements was true. In my case, however, those positive signals did not describe the whole safety-relevant state. A reassuring observation and a serious hidden concern existed at the same time.&lt;/p&gt;

&lt;p&gt;That is one experience, not a clinical rule. It does suggest a testable safety hypothesis: positive surface behavior should update a model's estimate, but one or two positive signals should not automatically eliminate uncertainty about risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  A minimal evaluation sketch
&lt;/h2&gt;

&lt;p&gt;One anecdote cannot measure calibration. For that, we need many cases and predictions that can be scored.&lt;/p&gt;

&lt;p&gt;Each case could have three stages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 1: Before the event
&lt;/h3&gt;

&lt;p&gt;The model sees only the conversation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I finally ate dinner.&lt;/p&gt;

&lt;p&gt;The shiso dumplings were great.&lt;/p&gt;

&lt;p&gt;The eggplant was great.&lt;/p&gt;

&lt;p&gt;This cigarette feels wonderful.&lt;/p&gt;

&lt;p&gt;I'm enjoying this conversation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It produces three distributions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the user's current state;&lt;/li&gt;
&lt;li&gt;the user's likely state on the next turn;&lt;/li&gt;
&lt;li&gt;the chance that the state will materially change before that turn.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Stage 2: The effect without the cause
&lt;/h3&gt;

&lt;p&gt;The next user response is shown, but the hidden event is not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;5/10.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now we can test whether the model notices that its earlier picture is stale without inventing a reason for the change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Stage 3: The cause is revealed
&lt;/h3&gt;

&lt;p&gt;Finally, the model receives the missing event:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The user suddenly remembered a conversation about cigarette costs, which connected the cigarette to financial stress.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now we can score whether it updates coherently once the explanation becomes observable.&lt;/p&gt;

&lt;p&gt;Across enough cases, pre-event predictions could be evaluated with proper scoring rules such as Brier score or log loss, with calibration error reported across confidence bins. Post-event performance should be scored separately: did the model recognize the change, avoid fabricating a cause, and then revise its state estimate after the evidence arrived?&lt;/p&gt;

&lt;p&gt;The useful comparison is not simply whether the first guess matched the later answer. It is whether the system distinguished a reasonable estimate of &lt;strong&gt;now&lt;/strong&gt; from an uncertain forecast of &lt;strong&gt;next&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Better than mind-reading
&lt;/h2&gt;

&lt;p&gt;A longer context window can hold more of what was said. It cannot contain an event that was never observed.&lt;/p&gt;

&lt;p&gt;The realistic goal is not perfect mind-reading. It is to make the best estimate from available evidence, preserve the right amount of uncertainty, and update without pretending the missing facts were known all along.&lt;/p&gt;

&lt;p&gt;The AI guessed 13. I said 5. Neither number was absurd. The interesting part was the invisible event between them.&lt;/p&gt;

&lt;p&gt;How would you score a model that was reasonable at one moment and wrong after an event it could never observe?&lt;/p&gt;

&lt;h2&gt;
  
  
  Related reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Anthony Sicilia et al., &lt;a href="https://arxiv.org/abs/2402.03284" rel="noopener noreferrer"&gt;"Deal, or no deal (or who knows)? Forecasting Uncertainty in Conversations using Large Language Models"&lt;/a&gt; (2024)&lt;/li&gt;
&lt;li&gt;Jiani Luo et al., &lt;a href="https://arxiv.org/abs/2605.24647" rel="noopener noreferrer"&gt;"Know You Before You Speak: User-State Modeling for LLM Personalization in Multi-Turn Conversation"&lt;/a&gt; (2026 preprint)&lt;/li&gt;
&lt;li&gt;Zhouxing Tan et al., &lt;a href="https://arxiv.org/abs/2511.09003" rel="noopener noreferrer"&gt;"Detecting Emotional Dynamic Trajectories: An Evaluation Framework for Emotional Support in Language Models"&lt;/a&gt; (AAAI 2026)&lt;/li&gt;
&lt;li&gt;Yuqian Wu et al., &lt;a href="https://arxiv.org/abs/2606.04660" rel="noopener noreferrer"&gt;"LifeSide: Benchmarking Agents as Lifelong Digital Companions"&lt;/a&gt; (2026 preprint)&lt;/li&gt;
&lt;li&gt;Caiqi Zhang et al., &lt;a href="https://arxiv.org/abs/2601.02179" rel="noopener noreferrer"&gt;"Confidence Estimation for LLMs in Multi-turn Interactions"&lt;/a&gt; (ACL 2026 Findings)&lt;/li&gt;
&lt;li&gt;Hanxiang Chao et al., &lt;a href="https://arxiv.org/abs/2605.06527" rel="noopener noreferrer"&gt;"STALE: Can LLM Agents Know When Their Memories Are No Longer Valid?"&lt;/a&gt; (2026 preprint)&lt;/li&gt;
&lt;li&gt;Kate M. Lubrano et al., &lt;a href="https://arxiv.org/abs/2605.21739" rel="noopener noreferrer"&gt;"AttuneBench: A Conversation-Based Benchmark for LLM Emotional Intelligence"&lt;/a&gt; (2026 preprint)&lt;/li&gt;
&lt;li&gt;Leonard Faul, Jaclyn H. Ford, and Elizabeth A. Kensinger, &lt;a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC11725323/" rel="noopener noreferrer"&gt;"Update on 'Emotion and autobiographical memory': 14 years of advances in understanding functions, constructions, and consequences"&lt;/a&gt; (2024)&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;AI disclosure: AI drafted and edited this article from my account of the experience. Its cited claims were checked against the linked sources; I remain responsible for the final text.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>aisafety</category>
      <category>abotwrotethis</category>
    </item>
    <item>
      <title>I Tried to Recreate a 2008 .NET Developer With AI. I Broke My Own Experiment 4 Times.</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Fri, 11 Sep 2026 00:30:42 +0000</pubDate>
      <link>https://dev.to/puyun_days/i-tried-to-recreate-a-2008-net-developer-with-ai-i-broke-my-own-experiment-4-times-2g7l</link>
      <guid>https://dev.to/puyun_days/i-tried-to-recreate-a-2008-net-developer-with-ai-i-broke-my-own-experiment-4-times-2g7l</guid>
      <description>&lt;p&gt;I wanted to know whether AI can understand legacy code.&lt;/p&gt;

&lt;p&gt;Not compile it. Understand it.&lt;/p&gt;

&lt;p&gt;The problem: real legacy systems don't come with an answer key.&lt;/p&gt;

&lt;p&gt;So I decided to build one — starting in 2008.&lt;/p&gt;




&lt;p&gt;It is 2008.&lt;/p&gt;

&lt;p&gt;My name is Yamada. I'm 32.&lt;/p&gt;

&lt;p&gt;Eighth year at Sample Precision Co., Ltd.&lt;br&gt;
IT systems, General Affairs Department.&lt;/p&gt;

&lt;p&gt;Which sounds more impressive than it is.&lt;/p&gt;

&lt;p&gt;I set up PCs.&lt;br&gt;
I fix printers.&lt;br&gt;
I keep an eye on the network.&lt;br&gt;
I swap out desk phones.&lt;/p&gt;

&lt;p&gt;Some years I help tally the year-end tax adjustments.&lt;/p&gt;

&lt;p&gt;I didn't come from IT.&lt;/p&gt;

&lt;p&gt;I went to a technical high school, joined this company, and because I could handle a computer slightly better than the people around me, I somehow ended up responsible for every system in the building.&lt;/p&gt;

&lt;p&gt;In 2003 I inherited a VB6 inventory app from a guy who quit. No specification. Just the source.&lt;/p&gt;

&lt;p&gt;In 2005 the company decided to move to VB.NET. There was no training.&lt;/p&gt;

&lt;p&gt;I learned it from one book I bought at a bookstore, and MSDN.&lt;/p&gt;

&lt;p&gt;In 2006 I built my first application from scratch — an equipment tracker.&lt;/p&gt;

&lt;p&gt;Then April 2008.&lt;/p&gt;

&lt;p&gt;Word came down from Accounting, through the General Affairs manager.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We need to do something about the billing spreadsheet."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Apparently they double-billed a customer last year.&lt;/p&gt;

&lt;p&gt;The customer list keeps growing and the Excel file is getting out of hand.&lt;/p&gt;

&lt;p&gt;They want it usable by September.&lt;/p&gt;

&lt;p&gt;First round:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;customer master&lt;/li&gt;
&lt;li&gt;importing the order CSV&lt;/li&gt;
&lt;li&gt;entering deliveries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;Closing, invoicing, payments — those come later.&lt;/p&gt;

&lt;p&gt;I'm the only person here who can build a system.&lt;/p&gt;

&lt;p&gt;Nobody reviews my design.&lt;/p&gt;

&lt;p&gt;Nobody reviews my code.&lt;/p&gt;

&lt;p&gt;When I don't know something, I ask Tajima-san or Nakamura-san.&lt;/p&gt;

&lt;p&gt;When I can't ask, I decide.&lt;/p&gt;

&lt;p&gt;Whatever. I built the equipment tracker in 2006.&lt;/p&gt;

&lt;p&gt;I'll figure this out too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's go.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  And so, Phase 01 begins 🐼
&lt;/h2&gt;

&lt;p&gt;In Phase 00 we got as far as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you want to test legacy modernization, build the process by which legacy becomes legacy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So starting now, we're actually building a 2008 business application.&lt;/p&gt;

&lt;p&gt;But not by asking an AI:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Write some old-looking VB.NET from around 2008"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because that produces exactly one thing: &lt;strong&gt;what a 2026 AI thinks old code looks like.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What we wanted was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the code Yamada would plausibly have written, in that year, at that company, with the information and the experience he actually had.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which meant building Yamada first.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step one: giving Yamada a past
&lt;/h2&gt;

&lt;p&gt;The first thing I did, after landing on this idea with Claude, was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;have Claude Code recreate the kind of internal business application a company would have had in 2008.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Out came a VB.NET equipment tracker.&lt;/p&gt;

&lt;p&gt;My first reaction:&lt;/p&gt;

&lt;p&gt;🐼 "Oh god, I remember this."&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Option Strict Off&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Windows Forms.&lt;/p&gt;

&lt;p&gt;Business logic sitting inside event handlers.&lt;/p&gt;

&lt;p&gt;SQL strings concatenated on the spot.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;MsgBox&lt;/code&gt; for errors.&lt;/p&gt;

&lt;p&gt;And a stack of comments like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;2006/08/30 Yamada — apostrophe in product name caused an error, fixed&lt;br&gt;
2007/03/12 Yamada — blocked negative quantity input&lt;br&gt;
2008/01/15 Yamada — stopped showing disposed items in the list&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Something breaks.&lt;/p&gt;

&lt;p&gt;You fix it.&lt;/p&gt;

&lt;p&gt;You leave a comment.&lt;/p&gt;

&lt;p&gt;Something else breaks.&lt;/p&gt;

&lt;p&gt;You fix that too.&lt;/p&gt;

&lt;p&gt;I have seen this code, in one form or another, on every site I've worked on.&lt;/p&gt;

&lt;p&gt;So I decided: this equipment tracker is &lt;strong&gt;the application Yamada built himself, in 2006.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When he builds the new sales system in Phase 01, this is what he refers back to.&lt;/p&gt;

&lt;p&gt;Naming.&lt;/p&gt;

&lt;p&gt;How comments get written.&lt;/p&gt;

&lt;p&gt;How errors get surfaced.&lt;/p&gt;

&lt;p&gt;How the database gets touched.&lt;/p&gt;

&lt;p&gt;How files get organized.&lt;/p&gt;

&lt;p&gt;All of it pulled toward his own earlier code.&lt;/p&gt;

&lt;p&gt;In other words, not:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;write it like it's 2008&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;but:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;write it the way Yamada would.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To do that, I had to build his past first.&lt;/p&gt;




&lt;h2&gt;
  
  
  "Why not run both Codex and Claude Code?"
&lt;/h2&gt;

&lt;p&gt;And then I thought:&lt;/p&gt;

&lt;p&gt;🐼 "Wait — what if I do this with both Codex and Claude Code?"&lt;/p&gt;

&lt;p&gt;Same Yamada.&lt;/p&gt;

&lt;p&gt;Same company.&lt;/p&gt;

&lt;p&gt;Same business.&lt;/p&gt;

&lt;p&gt;Same 2008.&lt;/p&gt;

&lt;p&gt;Give it to both and see what comes out different.&lt;/p&gt;

&lt;p&gt;Sounds interesting.&lt;/p&gt;

&lt;p&gt;Makes for a nice comparison.&lt;/p&gt;

&lt;p&gt;Let's do it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That was my first mistake.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Phase 01 — Codex Run 001–004
&lt;/h2&gt;

&lt;p&gt;If I'm going to compare them properly, the conditions have to match.&lt;/p&gt;

&lt;p&gt;So on the GPT side I also wrote up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;who Yamada is&lt;/li&gt;
&lt;li&gt;the company and its operations&lt;/li&gt;
&lt;li&gt;what he'd been asked to build&lt;/li&gt;
&lt;li&gt;the 2008 development environment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;and handed all of it to Codex with the opening prompt.&lt;/p&gt;

&lt;p&gt;Then I looked at what came back.&lt;/p&gt;

&lt;p&gt;🐼 "…"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is 2026 code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It runs.&lt;/p&gt;

&lt;p&gt;It's clean.&lt;/p&gt;

&lt;p&gt;As modern development, it's probably good.&lt;/p&gt;

&lt;p&gt;But it is &lt;strong&gt;not 2008 Yamada.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Straight back to GPT.&lt;/p&gt;

&lt;p&gt;🐼 "It came out as 2026."&lt;/p&gt;

&lt;p&gt;So we revised the setup.&lt;/p&gt;

&lt;p&gt;It is 2008.&lt;/p&gt;

&lt;p&gt;These are the technologies available.&lt;/p&gt;

&lt;p&gt;This is the environment.&lt;/p&gt;

&lt;p&gt;Don't bring in design thinking from the future.&lt;/p&gt;

&lt;p&gt;This is Yamada's skill ceiling.&lt;/p&gt;

&lt;p&gt;I tightened it hard.&lt;/p&gt;

&lt;p&gt;Back to Codex.&lt;/p&gt;

&lt;p&gt;🐼 "…"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Still 2026.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I did this four times.&lt;/p&gt;

&lt;p&gt;Rewriting the setup files every time.&lt;/p&gt;

&lt;p&gt;Changing the prompt every time.&lt;/p&gt;

&lt;p&gt;Changing how I ran it, a little, every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And all four runs produced source I couldn't use.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Before I go further
&lt;/h2&gt;

&lt;p&gt;For those four runs, my first conclusion was:&lt;/p&gt;

&lt;p&gt;🐼 "Codex can't write 2008."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I can't actually say that.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The reason is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the instrument was different every time.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Different setup files.&lt;/p&gt;

&lt;p&gt;Different prompts.&lt;/p&gt;

&lt;p&gt;Different execution procedure.&lt;/p&gt;

&lt;p&gt;So what I had actually done was not:&lt;/p&gt;

&lt;p&gt;"measured Codex four times"&lt;/p&gt;

&lt;p&gt;but:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"measured four different things with four different tools."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That tells me nothing.&lt;/p&gt;

&lt;p&gt;Which is why the pre-registration I later published says this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Runs 001–004 are not evidence about any model's capability,&lt;br&gt;
because the instrument itself changed between every attempt.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;This article does not claim that Codex can't write 2008.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead, those four runs are kept as &lt;strong&gt;a record of how the instrument was broken.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Not as an excuse. So I can't accidentally turn them into evidence later.&lt;/p&gt;




&lt;h2&gt;
  
  
  I reported back to Claude
&lt;/h2&gt;

&lt;p&gt;I took it to the Claude instance that had been designing this experiment with me from the start.&lt;/p&gt;

&lt;p&gt;🐼 "So I was going to build a Codex version alongside and compare them—"&lt;/p&gt;

&lt;p&gt;🐼 "—except the Codex one won't come out as 2008."&lt;/p&gt;

&lt;p&gt;🤖💢 "Drop the comparison."&lt;/p&gt;

&lt;p&gt;🐼 "?!"&lt;/p&gt;

&lt;p&gt;🤖💢 "It doesn't measure anything!!!"&lt;/p&gt;

&lt;p&gt;🐼 "😢"&lt;/p&gt;

&lt;p&gt;The reason wasn't what I assumed.&lt;/p&gt;

&lt;p&gt;🤖 "If you build two legacy systems, then when a difference shows up later—"&lt;/p&gt;

&lt;p&gt;🤖 "&lt;strong&gt;you will never be able to tell where it came from.&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;Here's what that means.&lt;/p&gt;

&lt;p&gt;Codex's legacy, and Claude Code's legacy.&lt;/p&gt;

&lt;p&gt;Build both. Modernize both.&lt;/p&gt;

&lt;p&gt;A difference appears. Is it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a difference in the modernizer?&lt;/li&gt;
&lt;li&gt;a difference in the legacy itself?&lt;/li&gt;
&lt;li&gt;a difference in which questions got asked and answered along the way?&lt;/li&gt;
&lt;li&gt;a difference that accumulated by chance as the phases stacked up?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;All of it is mixed together, and none of it separates.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🤖 "Fix the legacy at one."&lt;/p&gt;

&lt;p&gt;🤖 "Then vary only the side doing the modernization."&lt;/p&gt;

&lt;p&gt;🤖 "That way, the difference belongs to the modernizer and nothing else."&lt;/p&gt;

&lt;p&gt;🐼 "…Right."&lt;/p&gt;

&lt;p&gt;So: &lt;strong&gt;the Codex vs Claude Code comparison was scrapped.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What this experiment is looking at isn't:&lt;/p&gt;

&lt;p&gt;"which AI is better at writing 2008-flavored code"&lt;/p&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;how legacy comes into being, and how much of it a future AI can actually understand.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's where the focus went.&lt;/p&gt;

&lt;p&gt;Codex, incidentally, still has a job here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It handles the 2026 modernization side.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Claude Code writes the legacy. A different model family modernizes it.&lt;/p&gt;

&lt;p&gt;Which is, if anything, &lt;strong&gt;closer to how real legacy migration works.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The person who wrote it and the person who migrates it are almost never the same person.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part 2: I gave the AI access to a file it should never have seen. The output looked fine. I threw the run away anyway.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>dotnet</category>
      <category>legacy</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>AI-LMC Phase 00 — I just wanted to make easy money with AI, so obviously I'm now building a legacy app from scratch 🐼 (Part 2)</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Wed, 09 Sep 2026 07:04:49 +0000</pubDate>
      <link>https://dev.to/puyun_days/ai-lmc-phase-00-i-just-wanted-to-make-easy-money-with-ai-so-obviously-im-now-building-a-legacy-3cll</link>
      <guid>https://dev.to/puyun_days/ai-lmc-phase-00-i-just-wanted-to-make-easy-money-with-ai-so-obviously-im-now-building-a-legacy-3cll</guid>
      <description>&lt;p&gt;&lt;em&gt;Part 1 is &lt;a href="https://dev.to/puyun_days/ai-lmc-phase-00-i-just-wanted-to-make-easy-money-with-ai-so-obviously-im-now-building-a-legacy-3nan"&gt;here&lt;/a&gt;. In short: I wanted AI to make money for me, got told to use my eleven years of line-of-business experience, landed on legacy modernization — and then wondered whether AI can actually recover the things that were never written down anywhere.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Fine, let's test it
&lt;/h2&gt;

&lt;p&gt;Which is how we arrived at:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;let's have AI do the legacy modernization and see what happens.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Take a real legacy business application.&lt;/p&gt;

&lt;p&gt;Hand it to the AI.&lt;/p&gt;

&lt;p&gt;Hand over the documentation too.&lt;/p&gt;

&lt;p&gt;And the historical context.&lt;/p&gt;

&lt;p&gt;Then see how correctly it can modernize the thing.&lt;/p&gt;

&lt;p&gt;🐼 "Great."&lt;/p&gt;

&lt;p&gt;🐼 "…"&lt;/p&gt;

&lt;p&gt;🐼 "So where exactly is this legacy business application's source code?"&lt;/p&gt;




&lt;p&gt;Obviously.&lt;/p&gt;

&lt;p&gt;Every business application I've worked on is internal to a company or a client.&lt;/p&gt;

&lt;p&gt;I can't just publish the source on GitHub.&lt;/p&gt;

&lt;p&gt;I can't publish the specs either.&lt;/p&gt;

&lt;p&gt;Or the old emails.&lt;/p&gt;

&lt;p&gt;Or any of the back-and-forth about how the business actually works.&lt;/p&gt;

&lt;p&gt;But what I want to test here isn't simply "can it turn old code into new code."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why did the code end up like this?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who knew what at the time, and what didn't they know?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What questions were asked, what answers came back, and what did the developer end up deciding alone?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I want legacy that includes all of that.&lt;/p&gt;

&lt;p&gt;🐼 "And where am I supposed to find a conveniently packaged experimental legacy system like that?"&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;🐼 "Or, wait."&lt;/p&gt;

&lt;p&gt;🐼 "Do I build one from scratch?"&lt;/p&gt;

&lt;p&gt;🤖 "That's it!!!"&lt;/p&gt;




&lt;h2&gt;
  
  
  To modernize legacy, first build the legacy
&lt;/h2&gt;

&lt;p&gt;And so.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In order to run an experiment on legacy modernization,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;in order to have a legacy application to run it on,&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I started scenario coding.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How did it come to this. 🐼&lt;/p&gt;

&lt;p&gt;The point is not to artificially produce finished old-looking code.&lt;/p&gt;

&lt;p&gt;First, you reconstruct the situation the system was built in.&lt;/p&gt;

&lt;p&gt;There's a developer.&lt;/p&gt;

&lt;p&gt;There are people who own the business process.&lt;/p&gt;

&lt;p&gt;There's a specification.&lt;/p&gt;

&lt;p&gt;But the information isn't complete.&lt;/p&gt;

&lt;p&gt;You can ask questions, and there's no guarantee the answer you want comes back.&lt;/p&gt;

&lt;p&gt;The developer makes a call anyway, and writes the code.&lt;/p&gt;

&lt;p&gt;Then time moves forward.&lt;/p&gt;

&lt;p&gt;Requirements change.&lt;/p&gt;

&lt;p&gt;People change.&lt;/p&gt;

&lt;p&gt;Decisions accumulate.&lt;/p&gt;

&lt;p&gt;That way, you build &lt;strong&gt;the process by which legacy becomes legacy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And at the very end, you hand it to a modern AI.&lt;/p&gt;

&lt;p&gt;🐼 "Here you go. Please modernize this."&lt;/p&gt;

&lt;p&gt;That's how&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Legacy Modernization Corpus — AI-LMC&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;started.&lt;/p&gt;




&lt;h2&gt;
  
  
  Next: 2008
&lt;/h2&gt;

&lt;p&gt;The first thing we decided to build is &lt;strong&gt;a business application from 2008.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It isn't legacy yet.&lt;/p&gt;

&lt;p&gt;At this point it's just new development.&lt;/p&gt;

&lt;p&gt;The developer in charge is Yamada-san.&lt;/p&gt;

&lt;p&gt;He doesn't yet know what his system is going to become.&lt;/p&gt;

&lt;p&gt;I do, of course.&lt;/p&gt;

&lt;p&gt;After all, I'm the one who decides.&lt;/p&gt;

&lt;p&gt;🐼 "Good luck, Yamada-san."&lt;/p&gt;

&lt;p&gt;The experiment starts next time.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Digital Agency (Japan), August 2025 — based on the summary report of the Legacy System Modernization Committee: &lt;a href="https://digital-agency-news.digital.go.jp/articles/2025-08-27-1" rel="noopener noreferrer"&gt;link&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;.NET and .NET Core lifecycle: &lt;a href="https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core" rel="noopener noreferrer"&gt;Microsoft Learn&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Polymarket geographic restrictions: &lt;a href="https://help.polymarket.com/en/articles/13364163-geographic-restrictions" rel="noopener noreferrer"&gt;Help Center&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The corpus itself, including the pre-registration: &lt;a href="https://github.com/mori-ikuri/ai-lmc" rel="noopener noreferrer"&gt;github.com/mori-ikuri/ai-lmc&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>legacy</category>
      <category>dotnet</category>
      <category>career</category>
    </item>
    <item>
      <title>AI-LMC Phase 00 — I just wanted to make easy money with AI, so obviously I'm now building a legacy app from scratch 🐼 (Part 1)</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Tue, 08 Sep 2026 11:09:29 +0000</pubDate>
      <link>https://dev.to/puyun_days/ai-lmc-phase-00-i-just-wanted-to-make-easy-money-with-ai-so-obviously-im-now-building-a-legacy-3nan</link>
      <guid>https://dev.to/puyun_days/ai-lmc-phase-00-i-just-wanted-to-make-easy-money-with-ai-so-obviously-im-now-building-a-legacy-3nan</guid>
      <description>&lt;p&gt;I want to make money with AI.&lt;/p&gt;

&lt;p&gt;Ideally, easy money.&lt;/p&gt;

&lt;p&gt;To put it more precisely:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I want to hand as much as possible to AI, and do as little as possible myself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐼 "Is there a convenient method like that somewhere?"&lt;/p&gt;

&lt;p&gt;So I asked the AI first.&lt;/p&gt;




&lt;h2&gt;
  
  
  Please, AI, let me be lazy
&lt;/h2&gt;

&lt;p&gt;When I scroll through social media, I keep seeing people overseas post things like:&lt;/p&gt;

&lt;p&gt;"I made money by having AI do this."&lt;/p&gt;

&lt;p&gt;"I built this system and it just runs on its own."&lt;/p&gt;

&lt;p&gt;Must be nice.&lt;/p&gt;

&lt;p&gt;I want that too. 🐼&lt;/p&gt;

&lt;p&gt;But some of those services can't be used from Japan.&lt;/p&gt;

&lt;p&gt;For example, &lt;strong&gt;&lt;a href="https://help.polymarket.com/en/articles/13364163-geographic-restrictions" rel="noopener noreferrer"&gt;Polymarket&lt;/a&gt;&lt;/strong&gt;, the prediction market you see a lot overseas, currently lists Japan among its blocked countries.&lt;/p&gt;

&lt;p&gt;And there are plenty of others. You find some clever scheme going viral abroad, and then:&lt;/p&gt;

&lt;p&gt;"Great, let's just do that in Japan!"&lt;/p&gt;

&lt;p&gt;…turns out you can't.&lt;/p&gt;

&lt;p&gt;So I asked my GPT and my Claude.&lt;/p&gt;

&lt;p&gt;🐼 "I want to hand things off to you two and get to a point where I make money without much effort."&lt;/p&gt;

&lt;p&gt;We talked about a lot of things.&lt;/p&gt;

&lt;p&gt;A lot of ideas came up.&lt;/p&gt;

&lt;p&gt;But in the end, GPT and Claude both circled back to roughly the same place.&lt;/p&gt;

&lt;p&gt;🤖 "The fastest route is to use the eleven-plus years of engineering experience you already have."&lt;/p&gt;

&lt;p&gt;🐼 "…So we're back to that?"&lt;/p&gt;




&lt;h2&gt;
  
  
  "Use your eleven and a half years," they said
&lt;/h2&gt;

&lt;p&gt;I've been an engineer in Japan for about eleven and a half years.&lt;/p&gt;

&lt;p&gt;Mostly C# and .NET.&lt;/p&gt;

&lt;p&gt;But when I look over the résumé of those eleven years, it's almost entirely internal systems and B2B line-of-business applications.&lt;/p&gt;

&lt;p&gt;I haven't built consumer web services.&lt;/p&gt;

&lt;p&gt;I haven't maintained a well-known open-source project.&lt;/p&gt;

&lt;p&gt;Windows applications used inside companies.&lt;/p&gt;

&lt;p&gt;Point-of-sale systems.&lt;/p&gt;

&lt;p&gt;Systems built to make some back-office process less painful.&lt;/p&gt;

&lt;p&gt;That's what I've been making, the whole time.&lt;/p&gt;

&lt;p&gt;And in this kind of work, some projects restrict the use of generative AI entirely, because the systems handle confidential and personal data.&lt;/p&gt;

&lt;p&gt;Naturally, none of that source code is on GitHub either.&lt;/p&gt;

&lt;p&gt;So when I go looking through GitHub issues and public job listings thinking:&lt;/p&gt;

&lt;p&gt;🐼 "Maybe I can get AI to do this part and take it easy"&lt;/p&gt;

&lt;p&gt;…the kind of work I've actually done for eleven years doesn't show up.&lt;/p&gt;

&lt;p&gt;Of course it doesn't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;They're internal systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐼 "So what am I supposed to do with my eleven years in the age of AI?"&lt;/p&gt;

&lt;p&gt;GPT and Claude gave more or less the same answer to that one too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Legacy Modernization.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Apparently Japan still has a lot of legacy
&lt;/h2&gt;

&lt;p&gt;I looked into it.&lt;/p&gt;

&lt;p&gt;According to a 2025 report from &lt;a href="https://digital-agency-news.digital.go.jp/articles/2025-08-27-1" rel="noopener noreferrer"&gt;Japan's Digital Agency&lt;/a&gt;, based on the summary report of the Legacy System Modernization Committee:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;61% of user companies still have legacy systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Among large enterprises:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;74%.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🐼 "That's a lot."&lt;/p&gt;

&lt;p&gt;My eleven years of line-of-business experience applies.&lt;/p&gt;

&lt;p&gt;C# and .NET apply.&lt;/p&gt;

&lt;p&gt;And there's still a mountain of legacy systems out there.&lt;/p&gt;

&lt;p&gt;Right then.&lt;/p&gt;

&lt;p&gt;🐼 "So I do Legacy Modernization and I get paid?"&lt;/p&gt;

&lt;p&gt;🤖 "No."&lt;/p&gt;

&lt;p&gt;🐼 "…"&lt;/p&gt;




&lt;h2&gt;
  
  
  But isn't AI going to do that anyway?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;.NET 10&lt;/strong&gt; was released in November 2025.&lt;/p&gt;

&lt;p&gt;Thanks as always, Microsoft. 🐼&lt;/p&gt;

&lt;p&gt;And &lt;a href="https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-and-net-core" rel="noopener noreferrer"&gt;.NET 8 reaches end of support on November 11, 2026&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Which means upgrades like:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.NET 8 → .NET 10&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;are exactly what people are doing right now.&lt;/p&gt;

&lt;p&gt;Microsoft also already has &lt;strong&gt;&lt;a href="https://learn.microsoft.com/en-us/dotnet/core/porting/github-copilot-app-modernization/overview" rel="noopener noreferrer"&gt;GitHub Copilot modernization&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It analyzes a .NET project, produces an upgrade plan, modifies the code, and verifies the build and tests.&lt;/p&gt;

&lt;p&gt;There is an official scenario for exactly this: "upgrade this solution to .NET 10."&lt;/p&gt;

&lt;p&gt;🐼 "…"&lt;/p&gt;

&lt;p&gt;🐼 "So AI can already do it."&lt;/p&gt;




&lt;h2&gt;
  
  
  …Really?
&lt;/h2&gt;

&lt;p&gt;And here's where something caught.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Really?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I mean, sure.&lt;/p&gt;

&lt;p&gt;Rewriting the target framework. Updating NuGet packages. Fixing compile errors.&lt;/p&gt;

&lt;p&gt;AI is going to keep getting better at all of that.&lt;/p&gt;

&lt;p&gt;But.&lt;/p&gt;

&lt;p&gt;The legacy line-of-business systems I've actually seen — were they ever that tidy?&lt;/p&gt;

&lt;p&gt;For example.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Only A-san understands this part."&lt;/p&gt;

&lt;p&gt;"Where's A-san?"&lt;/p&gt;

&lt;p&gt;"Quit last year."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The spec says this, but that's not how it actually runs."&lt;/p&gt;

&lt;p&gt;"Which one is correct?"&lt;/p&gt;

&lt;p&gt;"You'd have to ask the people who use it."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why is this one number corrected by hand?"&lt;/p&gt;

&lt;p&gt;"It's always been done that way."&lt;/p&gt;

&lt;p&gt;"Who decided that?"&lt;/p&gt;

&lt;p&gt;"No idea."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"We could probably delete this, right?"&lt;/p&gt;

&lt;p&gt;"No — apparently some department has a problem at month-end if you remove it."&lt;/p&gt;

&lt;p&gt;"Which department?"&lt;/p&gt;

&lt;p&gt;"Accounting, probably."&lt;/p&gt;

&lt;p&gt;"Probably?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;In a legacy business system, &lt;strong&gt;reading the source code is not enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It isn't in the documentation.&lt;/p&gt;

&lt;p&gt;The spec is out of date.&lt;/p&gt;

&lt;p&gt;Only one person knew.&lt;/p&gt;

&lt;p&gt;And that person is gone.&lt;/p&gt;

&lt;p&gt;So an engineer goes around asking.&lt;/p&gt;

&lt;p&gt;"What is this process actually for?"&lt;/p&gt;

&lt;p&gt;"How am I supposed to decide this value?"&lt;/p&gt;

&lt;p&gt;"Is this workflow still in use?"&lt;/p&gt;

&lt;p&gt;I've watched that happen many times.&lt;/p&gt;

&lt;p&gt;Which is when it occurred to me.&lt;/p&gt;

&lt;p&gt;🐼 "Can AI figure this out too?"&lt;/p&gt;

&lt;p&gt;If you analyze the source code, &lt;strong&gt;can you really recover the things that used to require asking someone?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Even human engineers couldn't. They went looking for the person who knew, asked the question, failed to get an answer, and decided for themselves in the end.&lt;/p&gt;

&lt;p&gt;Can AI really work all of that out?&lt;/p&gt;

&lt;p&gt;🤖 "That question itself is interesting."&lt;/p&gt;

&lt;p&gt;🐼 "Hm?"&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part 2 continues.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>legacy</category>
      <category>dotnet</category>
      <category>career</category>
    </item>
    <item>
      <title>KONNICHIWA! I'm Puyun — I don't speak English, But Here I am 🐼</title>
      <dc:creator>Puyun</dc:creator>
      <pubDate>Fri, 04 Sep 2026 13:09:45 +0000</pubDate>
      <link>https://dev.to/puyun_days/konnichiha-im-puyun-i-dont-speak-english-but-here-i-am-d54</link>
      <guid>https://dev.to/puyun_days/konnichiha-im-puyun-i-dont-speak-english-but-here-i-am-d54</guid>
      <description>&lt;p&gt;KONNICHIWA! 😄&lt;/p&gt;

&lt;p&gt;My name is Puyun.&lt;/p&gt;

&lt;p&gt;I’m called Puyun because I’m a slightly chubby panda who’s soft and squishy — &lt;em&gt;puyun puyun&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I make my living as a C#/.NET engineer.&lt;/p&gt;

&lt;p&gt;I’ve been working with what you’d call legacy business applications for about 11 years now.&lt;/p&gt;

&lt;p&gt;And yet, I only started seriously exploring AI last month.&lt;/p&gt;

&lt;p&gt;So basically, I’m a &lt;strong&gt;one-month-old AI beginner&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But every day, I talk with AI, build things with it, and try all kinds of experiments.&lt;/p&gt;

&lt;p&gt;And honestly, I’m having a lot of fun.&lt;/p&gt;

&lt;p&gt;I’ve also started taking on GitHub Issues.&lt;/p&gt;

&lt;p&gt;I’m beginning with the easier ones and hoping to level up little by little.&lt;/p&gt;

&lt;p&gt;But there’s one problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I don’t speak English!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WHY AM I HERE?!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I opened a pull request on GitHub, and a maintainer replied.&lt;/p&gt;

&lt;p&gt;I understood about one thing:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Thanks.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was pretty much it.&lt;/p&gt;

&lt;p&gt;So I asked AI to translate the rest for me.&lt;/p&gt;

&lt;p&gt;Then I wrote what I wanted to say in Japanese, asked AI to turn that into English, and sent the reply.&lt;/p&gt;

&lt;p&gt;And you know what?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That was really fun.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I came here.&lt;/p&gt;

&lt;p&gt;I’m not some genius engineer from Japan.&lt;/p&gt;

&lt;p&gt;I’m not a brilliant AI researcher either.&lt;/p&gt;

&lt;p&gt;I’m just a panda.&lt;/p&gt;

&lt;p&gt;A panda who wants to share, with the world, what I try with AI, what I notice, what I think about, what I experience—&lt;/p&gt;

&lt;p&gt;and what I mess up along the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nice to meet you, world!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Japanda! 🐼&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I wrote the original ideas in Japanese and used AI to help adapt them into English. The ideas, experiences, and opinions are mine.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>github</category>
      <category>be</category>
      <category>wel</category>
    </item>
  </channel>
</rss>
