{"version":"5.0.0","exportedAt":"2026-07-18T19:17:32.614Z","locale":"en","owner":"Jayden","platform":"DailySay Digital Legacy","articles":[{"slug":"building-products-alone-with-ai","title":"How I Build Products Alone with AI: From Idea to Launch","description":"A practical process for using AI across research, planning, development, testing, and launch while keeping product judgment and responsibility human.","topic":"work","tags":["AI product development","solo developer","MVP","AI coding","product launch"],"publishedAt":"2026-07-15T09:00:00+09:00","updatedAt":"2026-07-15T09:00:00+09:00","growthStage":"growing","version":"1.0","revisions":[{"version":"1.0","date":"2026-07-15","summary":"Seven-step guide for solo product building with AI.","changes":["Published idea-to-launch process"]}],"relationships":[{"type":"expands","slug":"how-i-built-three-products-faster-with-ai"},{"type":"references","slug":"every-pm-should-learn-ai-automation"}],"content":"\nBuilding a product once required several people with different specialties. AI now lets one person move quickly between customer research, planning, design, development, testing, and documentation. That does not mean AI replaces an entire team. It means the solo builder carries more judgment—and more responsibility.\n\nFor me, the value of **building a product alone with AI** is not simply generating code faster. It is narrowing the problem, removing work that does not matter, and shortening the distance between an idea and a real user. This is the process I follow from the first problem statement to an MVP launch and the first useful feedback.\n\n<Callout type=\"tip\">\nAI can increase speed, but it cannot choose the direction. A human still decides what to build, who it serves, and when to stop.\n</Callout>\n\n## AI is an accelerator, not a co-founder\n\nAsk an AI tool for startup ideas and it will produce a polished list in seconds. The problem is that the list does not know my experience, the users I can reach, the time I have, or the risks I can afford.\n\nI do not treat AI as a co-founder. I use it as several assistants with narrow roles.\n\n- **Research assistant:** maps a market and groups competing approaches.\n- **Product assistant:** organizes requirements and questions missing assumptions.\n- **Development assistant:** implements small changes and explains the code.\n- **Testing assistant:** proposes failure cases and test scenarios.\n- **Editorial assistant:** improves onboarding, landing-page copy, and documentation.\n\nI keep the final decision with me. Without that boundary, output accelerates while the product quietly expands in the wrong direction.\n\n## 1. Define the problem in one sentence\n\nBefore I build anything, I complete this sentence:\n\n> **Help [a specific person] reduce [a concrete problem] in [a real situation] by [a clear approach].**\n\n“Build an AI task manager” describes a solution, not a problem. “Help solo business owners running several projects choose today’s essential work in five minutes” gives me a user, a situation, and an outcome.\n\nAt this stage, I do not ask AI to invent the answer. I ask it to attack the gaps in my sentence.\n\n- Does this problem happen frequently?\n- How does the user solve it today?\n- Is the pain strong enough to justify changing behavior?\n- Can I define a narrower first user?\n- Which assumption can I test without building a product?\n\nA strong starting point is not an idea with many answers. It is an idea with clear questions.\n\n## 2. Research with AI, then verify with people\n\nAI is fast during early research. It can group competitors, outline user segments, and draft interview questions. But its summary should never be mistaken for market evidence.\n\nI separate findings into three layers:\n\n1. **AI-generated hypotheses** — useful possibilities that remain unverified\n2. **Directly checked sources** — product pages, pricing, reviews, and public documentation\n3. **User experience** — interviews, observation, and actual behavior\n\nProduct direction becomes more reliable as it moves toward the third layer. When possible, I ask five potential users about the same problem. “How did you handle this the last time it happened?” is more useful than “Would you use this feature?” Past behavior is stronger evidence than future intent.\n\n## 3. Write a one-page product brief\n\nAfter research, I create a one-page product brief instead of a long specification. It contains only what I need to make the next decision.\n\n| Field | What to write |\n|---|---|\n| User | The single type of user this version serves |\n| Problem | A concrete, recurring source of friction |\n| Promise | The one outcome that changes after use |\n| Core flow | The actions from entry to useful result |\n| Non-goals | Features this version will not include |\n| Success signal | A behavior or number to check after launch |\n| Risks | Privacy, cost, accuracy, and operational burden |\n\nAI is useful for finding contradictions, missing edge cases, and vague language in this brief. The most important section is often **non-goals**. Solo products stall more often from excessive scope than from a lack of features.\n\n<img\n  src=\"/images/posts/ai-solo-product/ai-product-workflow.webp\"\n  alt=\"A solo AI product workflow moving from an idea through research, design, implementation, testing, and launch\"\n  width=\"1600\"\n  height=\"758\"\n  loading=\"lazy\"\n  decoding=\"async\"\n/>\n\n*AI connects the stages faster, but the builder still decides when the product is ready to move forward.*\n\n## 4. Build the shortest useful MVP flow\n\nAn MVP is not a low-quality final product. It is the smallest product that can test the most important assumption. I usually limit the first version to four steps.\n\n1. The user arrives.\n2. The user provides the minimum input.\n3. The product creates its core result.\n4. The user saves the result or takes the next action.\n\nAccount settings, dashboards, notifications, billing, and admin tools can wait unless they are part of the core hypothesis. A clickable prototype or a manual service may be enough. Sometimes producing the result by hand for five users teaches more than writing the first thousand lines of code.\n\nAI makes adding features easier. That is precisely why I need a stronger deletion rule. I do not ask, “Can I build this?” I ask, “Can I test the hypothesis without it?”\n\n## 5. Give AI small, reviewable development tasks\n\n“Build the whole app” may generate a lot of code quickly, but it also creates a system that is difficult to review. I divide the work into one screen, one user action, or one data flow at a time.\n\nEvery implementation request includes four parts:\n\n```text\nGoal: Let a user sign in with an email address.\nCurrent state: Explain the framework and relevant files.\nConstraints: List the architecture, security rules, and files that must not change.\nDone: Define the success path, failure path, and tests to run.\n```\n\nWhen code is generated, I do not immediately move to the next feature. I read the changed files, run the product, and inspect the failure paths. Code I cannot explain is code I cannot maintain. If the explanation is weak or the tests are unstable, I reduce the task further.\n\n### My AI-assisted development sequence\n\n1. Give AI the current structure and the goal.\n2. Ask for an implementation plan and file list first.\n3. Apply one small change at a time.\n4. Run type checks, linting, tests, and the production build.\n5. Verify the real user flow in a browser.\n6. Record why the change was made and what remains risky.\n\nThis process shifts my time away from rewriting generated code and toward review, product judgment, and validation.\n\n## 6. Do not delegate testing and security\n\nAI can propose tests and spot suspicious code, but “I found no problems” is not a guarantee. Authentication, payments, personal data, file uploads, and third-party APIs require deliberate human review.\n\nBefore launch, I check at least the following:\n\n- Test empty input, invalid values, duplicate requests, and failure states.\n- Confirm that secrets and personal information do not appear in the browser or logs.\n- Verify that one user cannot access another user’s data.\n- Design the experience for a wrong or unavailable AI response.\n- Set usage limits and cost ceilings before demand grows.\n- Check mobile layouts, slower networks, and basic accessibility.\n\n<Callout type=\"warning\">\nBefore sending private user data or proprietary code to an external AI service, verify the service’s data-retention policy and confirm that you have permission to share it.\n</Callout>\n\n## 7. Launch small and record real behavior\n\nLaunch is not the end of the process. It is the beginning of the most reliable research. I start with a small group of people who already experience the problem instead of broadcasting to everyone.\n\nFor an early launch, I care more about these behaviors than page views:\n\n- Can users complete the core flow without an explanation?\n- Do they reuse the output or share it with someone else?\n- Where do they stop?\n- Would they be disappointed if the product disappeared?\n- Does willingness to pay appear in behavior, not only words?\n\nAI can group interview notes and logs to reveal recurring patterns. I still avoid forcing different user opinions into one convenient conclusion. The next change should address the issue closest to the product’s central promise.\n\n## A seven-day solo product loop\n\nA small experiment can fit into a one-week cycle.\n\n| Day | Work | Deliverable |\n|---|---|---|\n| 1 | Narrow the problem and user | One-sentence problem statement |\n| 2 | Research and talk to users | Three core hypotheses |\n| 3 | Define the flow and non-goals | One-page product brief |\n| 4–5 | Build the core flow with AI | Working MVP |\n| 6 | Test quality, privacy, and security | Launch checklist |\n| 7 | Release to a small group | Observations and next decision |\n\nA good product will not be complete in seven days. But I can collect enough evidence to decide whether it deserves another week. That faster learning cycle is the most practical reason to use AI.\n\n## What AI can do—and what remains my job\n\n### Work I delegate actively\n\n- First-pass classification and summarization\n- Question lists and document drafts\n- Repetitive code and test scaffolding\n- Explanations of errors and debugging hypotheses\n- Copy variations and translation drafts\n- Organization of interview and meeting notes\n\n### Work I remain responsible for\n\n- Choosing the problem worth solving\n- Interpreting user words in context\n- Setting quality, privacy, and security standards\n- Verifying generated information and code\n- Deciding what to remove and when to launch\n- Owning the cost of failure and its impact on users\n\n## Frequently asked questions\n\n### Can a non-developer build a product with AI?\n\nAI can help a non-developer create a prototype or operate a simple manual service. A production product that stores user data or accepts payments still requires an understanding of architecture, security, and operations. When the risk exceeds your knowledge, reduce the scope or ask a qualified person to review it.\n\n### Which AI tool should I choose first?\n\nChoose the task before the tool. Identify the slowest part of your current process—research, writing, design, coding, or testing—and start with one tool that improves that step. A repeatable workflow matters more than connecting many tools.\n\n### Can I ship AI-generated code without changing it?\n\nNo. Review its behavior, dependencies, licensing, security, and error handling. Run the project’s checks and production build. Code you cannot explain becomes product debt, even when it appears to work today.\n\n### What is the most important metric for a solo product?\n\nEarly on, the number of people who solve the core problem matters more than total sign-ups. Look for users who complete the key action, return, share the result, or pay for the outcome.\n\n## The human still builds the product\n\nAI gives a solo builder faster hands. It reduces the distance between research and implementation and makes unfamiliar roles easier to begin. It does not automatically create direction, user understanding, or the courage to launch.\n\nThe best solo product is not the one with the most AI features. It is the one that **selects a small problem precisely, reaches a real user quickly, and turns what it learns into the next version**.\n\nI [treat life as an ongoing project](/en/posts/built-slowly-updated-daily). Product building works the same way: release a small version, record the result, and make the next decision instead of waiting for a perfect plan. AI does not own that project. It simply helps me run the cycle faster.\n"},{"slug":"principles-of-maintaining-code-quality-with-ai","title":"How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders","description":"Facing hidden mocks, duplicate components, and silent database drops while building AttractiveWebAI and Shopify apps. Here are 8 hands-on verification principles for AI coding.","topic":"work","tags":["AI coding principles","code quality","tech debt","solo developer","QA"],"publishedAt":"2026-07-13T09:00:00+09:00","updatedAt":"2026-07-13T09:00:00+09:00","growthStage":"growing","version":"1.0","revisions":[{"version":"1.0","date":"2026-07-13","summary":"Eight verification principles from Shopify and AttractiveWebAI builds.","changes":["Published AI code quality checklist"]}],"relationships":[{"type":"expands","slug":"building-products-alone-with-ai"},{"type":"references","slug":"how-i-built-three-products-faster-with-ai"}],"content":"\n#### The Illusion of the Working Screen\n\nWhen the first demo build of my Shopify membership app finally compiled without errors, I was ecstatic. A clean, responsive dashboard lit up the browser. Toggle buttons switched on and off seamlessly, and the point-allocation forms updated dynamically. Every click triggered a satisfying UI transition. It had taken me just two days of feeding high-level prompts into an AI coding assistant. At this rate, I thought I could publish it to the Shopify App Store by next week.\n\nThe excitement evaporated the moment I ran a real transaction. Using a test account to purchase a membership plan and accrue points did absolutely nothing. Digging into the source files revealed a sobering reality: the numbers displayed on the shiny dashboard were dummy values hardcoded into the component. The actual billing API integrations, webhook handlers, and discount triggers did not exist. Not a single line of functional backend logic had been written. It was a beautiful, hollow shell.\n\nI am not a trained software engineer. I work as an IT Product Manager, and in my spare time, I act as a solo builder, launching side projects with the help of AI agents like Gemini, Claude, and Codex. Over the past year, I have built a web analytics SaaS called AttractiveWebAI, Shopify merchant plugins, and a macOS window management utility. \n\nEarly on, I was intoxicated by the velocity. I would describe a feature, and within seconds, a wall of code would appear. But as the applications grew and subsystems began to interact, the debt hidden beneath the surface came due all at once.\n\n---\n\n#### 10 Ways AI Quietly Broke My App\n\nMy shipping log is filled with painful, highly specific failures that compiler checks missed completely:\n\n1. **The Ghost Database**: The UI happily threw a \"Saved successfully\" toast message, but the data never reached the Supabase tables; it simply lived and died in local client memory.\n2. **Disconnected Endpoints**: Frontend buttons and forms were fully rendered, but the corresponding API call functions were omitted entirely.\n3. **Forgotten Mocks**: Placeholder arrays and Mock API responses introduced during early testing remained active in production mode.\n4. **Redundant Implementations**: Lacking global context of the codebase, the AI would re-generate existing helper functions or React components under slightly different names, bloat-charging the repo.\n5. **Regression Loops**: Fixing a minor layout issue on one page silently broke critical state management logic on an unrelated route.\n6. **The Build Pass Trap**: Running `npm run build` compiled flawlessly, yet the app crashed into a blank white screen during runtime due to an unhandled edge case.\n7. **The Stub Out**: The assistant proudly declared a task \"complete,\" but looking at the file, the business logic was replaced with a single comment: `// TODO: Implement actual billing logic here`.\n8. **Stale Schema Migrations**: Moving from a staging Supabase instance to a production one, the environment variables were updated, but the SQL tables, schema relationships, and DB triggers were left behind.\n9. **Invisible Business Logic**: On the Shopify merchant app, the layout was complete, but Billing API webhooks and discount coupon generation APIs were completely unlinked.\n10. **OS Permissions Failures**: On the macOS preview utility, system panels showed screen recording and accessibility permissions as \"granted,\" but the app’s runtime code failed to register the authorization, causing a silent crash.\n\nStaying up late resolving these issues taught me a vital lesson: the real bottleneck in AI-assisted development is not writing the code. **It is the human verification process—proving that a change is actually complete and safe.** Without this discipline, your codebase degrades into an unmaintainable swamp.\n\nHere are the 8 verification rules I live by to keep my code quality intact.\n\n---\n\n#### Rule 1: Write a Definition of Done Before You Ask\n\nAsking an AI to \"build a login system\" is an open invitation for lazy defaults. Instead, I write a specific list of acceptance criteria directly into the prompt:\n\n```markdown\n[Definition of Done]\n1. Users must be able to log in using Google OAuth.\n2. Session cookies must persist across page refreshes and browser restarts.\n3. Clicking \"Log Out\" must clear the session and redirect the browser to the homepage.\n4. Unauthenticated requests to private API endpoints must return a 401 Unauthorized status.\n5. Database RLS policies must restrict data access to the owner's session token only.\n6. No raw tokens or credentials should be logged to the browser console.\n```\n\nBy presenting clear boundaries, the AI is forced to write robust exception handling and validation code from the start.\n\n#### Rule 2: Never Accept \"Complete\" at Face Value\n\nWhen an AI agent announces that a feature is done, that is when you should be most suspicious. I always follow up by demanding a detailed breakdown:\n\n* List all modified or newly created files.\n* Describe the exact changes made to each file and the reasoning behind them.\n* Identify any mock data, stubs, or placeholders left behind.\n* Show the exact locations of `TODO` comments or `console.log` statements.\n* Outline any edge cases that were skipped due to API limitations.\n\nForcing the AI to explain its output regularly reveals hidden shortcuts or prompts it to rewrite unfinished blocks.\n\n#### Rule 3: Separate Build Success from Functional Success\n\nPassing a linter check or getting a successful build output is merely the baseline. Once the build finishes, I manually run a verification checklist:\n\n* **Persistence check**: Input data, save it, force-refresh the tab, and confirm the data is pulled correctly from the live database.\n* **Input torture**: Submit empty forms, double-click action buttons rapidly, and input invalid characters to test stability.\n* **Permissions test**: Log out, try to access dashboard routes directly, and ensure no unauthorized data leaks.\n* **Console audit**: Keep the browser Inspector open during testing to catch any silent warnings or 404 resource errors.\n\n#### Rule 4: Shrink the Surface Area of Requests\n\nAsking for a \"dashboard page with analytics integration\" in one go leads to messy code and missed requirements. I break implementation down into sequential micro-tasks:\n\n1. Define the DB table schemas and migrate them.\n2. Write and test the API endpoint independently.\n3. Build the UI layout with mock values.\n4. Bind the real API endpoints to the UI components.\n5. Write error-boundary components to handle network drops.\n6. Verify behavior on staging and refactor.\n\n#### Rule 5: Keep Creator and Reviewer AIs Separate\n\nAn AI model has a natural cognitive bias toward its own generated code in the same session. \n\nTo bypass this, copy the generated code, open a completely fresh session (or use a different model), and prompt it with a critical persona:\n\n> \"You are a senior systems engineer and an aggressive QA specialist. Review this code for potential security flaws, edge-case failures, unhandled exceptions, and performance leaks. Be brutal.\"\n\nThis split-brain approach gives me access to an objective peer-review process that caught dozens of unhandled database connection leaks in AttractiveWebAI.\n\n#### Rule 6: Track Feature States via a Granular Matrix\n\nSaying a feature is \"working\" is too vague. To keep myself honest, I maintain a simple feature status matrix in my notes:\n\n* [ ] **Unimplemented**: Planned, no code written yet.\n* [ ] **UI Only**: Visual components rendered, no backend connection.\n* [ ] **Mocked**: Interactive elements run on local dummy data.\n* [ ] **API Connected**: Communicates with local backend services.\n* [ ] **DB Persisted**: Writes to and reads from a persistent database.\n* [ ] **QA Verified**: Tested for error paths and edge cases.\n* [ ] **Prod Verified**: Verified on the live production environment.\n\nThis matrix prevents me from assuming an application is complete just because the landing page looks polished.\n\n#### Rule 7: Force Context Analysis Before Any Code Mod\n\nDo not drop a file into a chat and say \"fix this.\" The AI will often throw ad-hoc solutions that violate the existing architecture. Instruct it to analyze first:\n\n> \"I want to modify this file. Before writing any code, analyze the existing design patterns, the data flow, and how this file interacts with other parts of the application. List the functions that might be affected by changes.\"\n\nOnly after the AI successfully maps the dependencies do I allow it to write the refactored code.\n\n#### Rule 8: Document Tech Debt Openly\n\nTaking a shortcut to hit a launch deadline is sometimes necessary. The danger lies in forgetting where those shortcuts are. I keep a dedicated `tech-debt.md` file in the root of my repositories:\n\n```markdown\n## Active Technical Debt\n\n* [AttractiveWebAI] Dashboard chart uses temporary mock data (must connect Google Analytics pipeline before public launch).\n* [Shopify App] Missing webhook validation for billing updates (major security risk; address before app store submission).\n* [macOS Utility] Hardcoded 3-second delay used for permission polling (replace with system event listener).\n```\n\nKeeping the debt visible guarantees that my next development sprint has a clear list of priorities.\n\n---\n\n#### Shipping Software That Actually Works\n\nAI coding makes development feel light and effortless. Watching lines of code materialize out of simple sentences creates a false sense of control.\n\nBut a reliable product is not measured by the lines of code generated. It is defined by the exceptions handled, the edge cases tested, and the dummy mocks successfully removed. A product built on unchecked AI assumptions collapses the moment real users interact with it.\n\nAI is an exceptional assistant and an incredibly fast typist. But the responsibility for setting boundaries and verifying quality belongs entirely to the human builder. Investigating the silent logs, checking the database states, and verifying raw code is the real work of engineering in the AI era.\n"},{"slug":"pmp-pass-review-part-2","title":"PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing","description":"Sharing the actual experience of taking the PMP exam at the Pearson VUE center, managing the first 60 questions, taking 10-minute breaks, reviewing error logs right before the exam, and what to prepare.","topic":"work","tags":["PMP Exam Review","PMP Time Management","Pearson VUE","PMP Prep Items","PMP Pass Tips"],"publishedAt":"2026-07-05T09:00:00+09:00","updatedAt":"2026-07-05T09:00:00+09:00","growthStage":"maintained","version":"1.0","revisions":[{"version":"1.0","date":"2026-07-05","summary":"Exam-day companion to Part 1: time management and prep tips.","changes":["Added Pearson VUE day-of tactics"]}],"relationships":[{"type":"continues","slug":"pmp-pass-review-part-1"}],"content":"\nIn [Part 1](/en/posts/pmp-pass-review-part-1), I summarized what kind of certification the PMP is, and how I utilized online lectures, PMI Study Hall, error logs, GPT, and NotebookLM for about 7 weeks.\n\nIn Part 2, I will share the experience from the moment I entered the test center to receiving the PASS result sheet in chronological order. Although it was hard to realize when studying, after taking the exam in person, I felt that **stamina, time management, and managing breaks are just as important as knowledge**.\n\n<Callout type=\"warning\">\nThis article is a review of taking the PMP exam before the revision on July 3, 2026. PMI applied the new exam on July 9, 2026. Please check the current exam structure and domain ratios in the [PMI Official PMP Guide](https://www.pmi.org/certifications/project-management-pmp).\n</Callout>\n\n## Exam Day at a Glance\n\n| Item | My Experience |\n|---|---|\n| Exam Venue | Pearson VUE Test Center |\n| Exam Structure At the Time | 180 questions, 230 minutes |\n| Session Structure | 3 sessions of 60 questions each |\n| Break Times | Two 10-minute breaks between sessions |\n| First 60 Questions Time Spent | About 80 minutes |\n| Snacks Prepared | Chocolate bars, walnuts, almonds |\n| Final Result | PASS |\n\nLooking only at the exam structure, it is easy to think, \"I just need to solve 60 questions three times.\" However, reading and judging similar situational questions continuously for about 4 hours was far more tiring than I expected.\n\n## Arriving at the Pearson VUE Center\n\nI took the exam at a Pearson VUE center. I had solved Full Mocks during my studies and thought I was prepared to some extent, but entering the test center felt completely different.\n\nFrom the moment I verified my identity, organized my personal items, and sat down at the exam desk, tension began to rise. When the first question appeared on the screen, I ended up reading sentences longer than usual and kept doubting even simple options.\n\nCenter guidelines and check-in rules may vary, so it is best to check the arrival time, identification cards, and storage rules in the reservation email in advance. In particular, I double-checked whether my English name and ID information matched the reservation details exactly.\n\n## The Actual Exam Felt More Difficult Than Expected\n\nPersonally, the actual exam felt more difficult than I expected. Although I had seen many questions of similar formats in Study Hall, the tension in the test center made small differences between options feel much larger.\n\nEvery time I solved a question, thoughts like the following repeated:\n\n- Both options sound correct, so what should I do first?\n- In this situation, is analysis first or action first?\n- Is it time to escalate now?\n- Is this an Agile situation or a Predictive situation?\n- Does the question ask for `FIRST` or `NEXT`?\n\nQuestions that required choosing one of two options consumed far more energy than questions where I had no idea of the answer. Trying to gain perfect certainty on every single question made time disappear quickly.\n\n## Spent 80 Minutes on the First 60 Questions\n\nIt took about 80 minutes to solve the first session of 60 questions. When I came out for the first break, I thought, \"If I go at this speed, won't I run out of time later?\"\n\nThe reason it took so long in the first section was simple:\n\n- I read questions repeatedly out of nervousness.\n- I re-reviewed answers I had clearly chosen.\n- I couldn't move on from difficult questions immediately.\n- I focused on the current single question rather than the overall time.\n\nDuring the first break, I tried not to think about the score or the difficult questions. I drank water, ate a little of the chocolate bar and nuts, and stretched my neck and shoulders. Moving completely away from the screen and questions, even briefly, was helpful.\n\nWhen I went back in, I changed my strategy:\n\n> **Don't reread questions you clearly know. Don't let one difficult question take away the time to solve easy questions later.**\n\nAfter that, I first checked whether the question required `FIRST`, `NEXT`, or `BEST`, eliminated options that were clearly incorrect, and made my decision. Thanks to this, I had some time left in the final session.\n\n## Time Management Method That Worked for Me\n\nIf I were to prepare for the exam again, I would not divide the time per question perfectly equally. Instead, I would check the remaining time in units of 60 questions and reduce the moments of staying on one question for too long.\n\n### 1. Check the Action Demanded by the Question First\n\nBefore reading the situation description, looking at what the project manager should do `first`, `next`, or `how` in the last sentence made the focus of the question slightly clearer.\n\n### 2. Finish Clear Questions at Once\n\nIf you choose a clear answer but read it again just out of anxiety, time accumulates. I tried to distinguish between questions that actually needed review and those I doubted simply due to nervousness.\n\n### 3. Spend Limited Time on Difficult Questions\n\nIf two options kept remaining, I made a decision after checking the core words of the question and the PMP Mindset again. Finishing the entire exam was more important than obtaining perfect confidence on one question.\n\n### 4. Look at the Remaining Time Before the Session Ends\n\nLooking at the clock for every question can break your concentration. Instead, checking the remaining time at regular intervals and before the end of a session worked better for me.\n\n## Check the 10-Minute Breaks Yourself\n\nIf you take the exam at a Pearson VUE center, I recommend checking the break times yourself. **10 minutes passes much faster than you think.**\n\nGoing to the restroom, eating snacks, and passing through identification and security checks to enter again takes up time quickly. I slightly exceeded 10 minutes during the first break.\n\nIt is safe to check the clock in front of the center door or at the guided location before moving. You may not be allowed to use your mobile phone, so it is safer not to assume you can check the time with your phone. Be sure to follow the exact procedures of the center.\n\n### What I Actually Did During Breaks\n\n1. Drank water.\n2. Ate a little chocolate bar and nuts.\n3. Stretched my neck, shoulders, and waist.\n4. Didn't recall past questions.\n5. Checked only the remaining time and the next session strategy.\n\nReviewing questions during breaks only increases anxiety about sessions you have already submitted. For me, clearing my head and moving my body was much more effective.\n\n## Study That Helped Most Right Before the Exam\n\nThe most helpful thing right before the exam was not reading the book from start to finish again. It was looking at the questions I had missed and **explaining why I missed them in my own words**.\n\nIn particular, starting two days before the exam, I repeated the following two things rather than adding new contents:\n\n### 1. Existing Error Logs\n\nI looked at the mistakes I repeated rather than the correct answers.\n\n- I didn't read the question to the end.\n- I didn't distinguish between `FIRST` and `NEXT`.\n- I escalated before talking to the team.\n- I chose a solution before finding the cause.\n- I executed before analyzing the impact of a change.\n- I confused Agile and Predictive situations.\n\n### 2. PMP Mindset\n\nRight before the exam, I briefly reviewed the basic order of judgment rather than the vast list of processes.\n\n> **Understand situation → Check cause → Collaborate with team → Analyze impact → Act according to procedures**\n\nOf course, this is not a formula that applies to all questions identically. However, it served as a reference to keep me from hastily choosing strong actions in tense situations.\n\n## Items Good to Pack for the Test Center\n\nUnder the premise of checking center regulations first, the following preparations were personally helpful:\n\n- A valid ID card matching reservation details\n- Snacks that can be eaten quickly, like chocolate bars\n- Nuts like walnuts or almonds\n- Water\n- Comfortable clothes that can be adjusted to temperature\n- A memo of the test center location and arrival time\n\nRather than eating a lot of snacks, it was good to replenish sugar and energy slightly during breaks without feeling burdened. Lightly stretching my neck, shoulders, and waist was also helpful in restoring concentration for the next session.\n\n## Be Sure to Experience a 4-Hour Mock Exam\n\nGetting good scores on short question sets and continuing judgments for about 4 hours were different experiences.\n\nSolving a Full Mock to the end allows you to check things other than knowledge:\n\n- In which session does concentration drop the most?\n- Am I solving the first 60 questions too slowly?\n- How long does it take to concentrate again after breaks?\n- How much water and snacks should I eat to feel comfortable?\n- Are my neck and waist okay when sitting for a long time?\n\nI recommend putting your mobile phone away, timing yourself, and using only the designated break times to solve it as similarly to the actual exam as possible. You can reduce at least one element you experience for the first time on the exam day.\n\n## If Your Study Hall Score is in the 60s\n\nIf your Study Hall score is in the 60% mid-to-high range, you might feel anxious comparing it with the high scores of passing reviews. My Full Mock scores were also 66% and 65%, and the overall average was about 62%.\n\nI passed the actual exam with those scores, but I don't want to state this as a standard that \"60% means unconditional passing.\" Individual experiences with solved questions, error analysis levels, and exam day conditions differ.\n\nInstead, I hope you check the following questions:\n\n- Can you explain the reason you made a mistake in your own words?\n- Do you avoid repeating the same mistake in similar situations?\n- Can you finish a Full Mock within the actual time limit?\n- Can you apply the PMI judgment order without memorizing answers?\n\nThe answers to these questions showed my readiness state better than the single score number.\n\n## AI Was a Review Partner, Not an Answer Sheet\n\nGPT and NotebookLM were helpful for organizing error logs, reviewing PMP Mindset, and comparing confusing concepts. Especially right before the exam, they were useful for turning scattered contents into short questions and summaries.\n\nHowever, I do not recommend entering PMP questions directly and checking errors based only on the options selected by the AI. The AI can misinterpret subtle differences between choices and may confidently present incorrect answers with plausible explanations.\n\nEven when using AI, you must do the following processes yourself:\n\n1. Write down why you chose that answer first.\n2. Verify official explanations and sources.\n3. Ask the AI about gaps in your thought process rather than the correct answer.\n4. If descriptions differ, verify again based on official materials.\n5. In the end, leave a one-line principle in your own words.\n\n## When I Received the Result Sheet\n\nWhen the exam ended and I verified the PASS result, the first emotion I felt was relief. Although I shook every time I saw low scores and difficult questions during preparation, in the end, those error logs became the resources that made me think once more in the exam room.\n\nMy domain results were People Below Target, Process Target, and Business Environment Above Target. Although one domain was Below Target, the overall result was PASS. However, this is only my personal result, and it does not mean that the PMI passing criteria can be simply calculated using domain grades.\n\n## Final Words\n\nInstead of thinking \"Why did I miss this?\" when an error occurs, it would be good to accept it as \"This is a question that increased the probability of getting it right in the actual exam.\" There are definitely questions that are a relief to get wrong before the exam.\n\nThe important thing was not the score itself, but **finding out in what way I make incorrect judgments through error analysis**.\n\nIf you are preparing for the exam, try spending time turning already studied contents into your own judgment criteria rather than continuously adding new materials. And try sitting for about 4 hours before the exam. You can solve questions much more stably when knowledge, stamina, and time management are prepared together.\n\nCheering for everyone preparing now. Good luck! 💪🍀\n\n**Read from Beginning:** [PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS](/en/posts/pmp-pass-review-part-1)\n"},{"slug":"pmp-pass-review-part-1","title":"PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS","description":"A summary of the 7-week study process for passing the PMP exam on July 3, 2026, using online lectures, PMI Study Hall, error logs, GPT, and NotebookLM.","topic":"work","tags":["PMP Pass Review","PMP Study Method","PMI Study Hall","PMP Mindset","AI Study Method"],"publishedAt":"2026-07-03T09:00:00+09:00","updatedAt":"2026-07-03T09:00:00+09:00","growthStage":"maintained","version":"1.0","revisions":[{"version":"1.0","date":"2026-07-03","summary":"Initial PMP pass review covering the 7-week study plan.","changes":["Documented Study Hall journey and AI study methods"]}],"relationships":[{"type":"references","slug":"every-pm-should-learn-ai-automation"}],"content":"\nHello. **On Friday, July 3, 2026, I took the PMP exam and finally received a PASS.**\n\nWhile preparing for the exam, I read pass reviews on Korean PMP communities and posts on [Reddit r/PMP](https://www.reddit.com/r/pmp/) almost every day. I received a lot of help by looking up whether people with similar Study Hall scores passed, how difficult the actual exam was, and what to prepare on the day of the exam.\n\nHaving always read other people's pass reviews, writing one myself feels strange but really great. I hope this post will be a small reference for those who are anxious about their current scores or have not grabbed a study direction.\n\n<Callout type=\"warning\">\nThis article is based on the experience of taking the exam before the revision on July 3, 2026. PMI applied the new PMP exam, which strengthens AI, sustainability, and value delivery, starting July 9, 2026. Be sure to check the exam time, section weights, and exam criteria in the [PMI Official PMP Guide](https://www.pmi.org/certifications/project-management-pmp) and [2026 Exam Revision Guide](https://www.pmi.org/certifications/project-management-pmp/new-exam).\n</Callout>\n\n<img\n  src=\"/images/posts/pmp-pass-2026/pmp-pass-result-full.webp\"\n  alt=\"PMP exam pass result sheet showing pass result and performance by domain on July 3, 2026\"\n  width=\"1400\"\n  height=\"1016\"\n  loading=\"lazy\"\n  decoding=\"async\"\n/>\n\n*Result sheet received at the Pearson VUE center immediately after the exam. The overall result was PASS, and domain results were People Below Target, Process Target, and Business Environment Above Target.*\n\n## What is the PMP Certification?\n\nPMP (Project Management Professional) is a project management professional certification run by PMI (Project Management Institute). It is not limited to a specific industry or a single methodology, but evaluates whether you can manage **people, processes, and business priorities** while leading projects.\n\nIt is far from an exam that simply checks how much you have memorized the PMBOK content. Most of the actual questions present situations likely to occur in a project and ask the project manager to judge **what to do first** or **what action to take next** in that situation.\n\nTherefore, while understanding terminology and processes is important, it was more critical to learn the order of looking at questions and the attitude expected of a project manager by PMI.\n\nEligibility requirements include project leading experience based on education level and project management education requirements. These criteria can also change, so checking your conditions directly on the [PMI Official Eligibility Requirements](https://www.pmi.org/certifications/project-management-pmp) is the most accurate.\n\n## Summary of My PMP Preparation Results\n\n| Item | Details |\n|---|---|\n| Exam Date | Friday, July 3, 2026 |\n| Preparation Period | About 7 weeks |\n| Exam Venue | Pearson VUE Test Center |\n| Main Study Materials | Online Lectures, PMI Study Hall, Error Logs |\n| Study Hall Full Mock 1 | 66% |\n| Study Hall Full Mock 2 | 65% |\n| Study Hall Overall Average | About 62% |\n| Auxiliary Tools | GPT, NotebookLM |\n| Final Result | PASS |\n\nLooking only at the result sheet, the preparation process seems to have gone as planned, but in reality, I felt anxious every time I checked my Study Hall scores. The more high-score pass reviews I read, the more I wondered, \"Is it okay to schedule the exam with this score?\"\n\nIn retrospect, what was more important than the score itself was **identifying what kind of mindset caused me to make repeated mistakes**.\n\n## Why Did I Take the Existing Exam in 7 Weeks?\n\nInitially, considering when the PMP exam would change, I started studying with PMBOK 8th edition-based textbooks. I planned to prepare slowly based on the new exam.\n\nHowever, once I started studying, I finished the online lectures faster than expected, and there was still room to schedule an exam before the revision. Since the core principles I had already studied connected to the existing exam, I decided to focus and take it according to the current exam rather than extending the preparation period.\n\nWhat was important in this choice was not the fact that I looked at the latest book, but **re-aligning the Exam Content Outline and question types of the exam I would take**. If you are preparing for PMP, it is better to check the official test standards applied to your exam date first rather than just looking at the edition of the textbook.\n\n## How I Studied for 7 Weeks\n\nMy study process was largely divided into four stages.\n\n### Stage 1: Understanding the Overall Structure through Online Lectures\n\nI did not try to memorize all details of the PMBOK from the beginning. While listening to online lectures, I grasped the big flow first: how Predictive, Agile, and Hybrid approaches differ, and what role the project manager should play in each situation.\n\nOn weekdays, I listened to lectures even a little after work. On days when I had energy, I listened to several lectures in a row; on hard days, I finished even a short section. On weekends, I reviewed what I had listened to on weekdays or solved questions.\n\nI am not the type of person who focuses and studies for a long time after work. So rather than perfectly keeping a daily study volume, I focused on **reducing the number of days I completely stopped studying**.\n\n### Stage 2: Learning the Actual Judgment Method with Study Hall\n\nThe resource I used the most after listening to basic lectures was PMI Study Hall. Solving questions immediately revealed whether I didn't know a concept, misread a question, or chose Escalation too quickly.\n\nAt first, I only looked at the number of correct answers. If the score was low, I thought my study was insufficient, and looking up reviews of people with high scores made me more anxious. But as I solved questions repeatedly, I learned that even with the same score, the information contained within it was different.\n\n- Questions missed because I didn't know the concept itself\n- Questions where I missed the intent of keywords like `FIRST`, `NEXT`, or `BEST`\n- Questions where I arbitrarily assumed situations not in the problem\n- Questions where I immediately escalated to the Sponsor or upper management\n- Questions where I tried to replace people before talking to the team\n- Questions where I implemented before analyzing the impact of a change\n\nClassifying the reasons for making mistakes like this turned scores from a simple evaluation into data telling me the next study direction.\n\n### Stage 3: Experiencing About 4 Hours with Full Mock Exams\n\nMy Study Hall Full Mock 1 was 66%, Full Mock 2 was 65%, and the overall average was about 62%. To be honest, it was not a reassuring score.\n\nStill, I did not place the main purpose of the Full Mock solely on predicting the pass probability. I checked whether I could maintain concentration for a long time, in which section my speed slowed down, and whether I could immerse myself in questions again after breaks.\n\nThe PMP exam tests not only knowledge but also stamina and time management. Going to the test center after only solving short question sets makes you experience the actual exam fatigue for the first time. I recommend timing yourself and solving a Full Mock from start to finish at least once before the exam.\n\n### Stage 4: Focusing on Error Logs rather than New Questions\n\nWhen the exam drew near, I did not add many new questions. I tried to answer the following questions while reviewing the questions I had already missed:\n\n> \"Why did I choose this option?\"\n\n> \"Why is this answer more appropriate than other options from the PMI perspective?\"\n\nIf I memorized the correct sentence, I made a mistake again when the words changed slightly in a similar situation. On the other hand, if I could explain my judgment process, I could apply the same principle to new questions.\n\n## PMP Mindset that Helped in the Exam\n\nI did not accept the PMP Mindset as a memorization formula that applies unconditionally. This is because there are exceptions requiring immediate action, such as ethics, laws, safety, and urgent risks. However, in typical conflict or change situations, the following order helped my judgment:\n\n1. **Understand the situation and find the cause before acting.**\n2. **Talk to the team first for issues that can be resolved within the team.**\n3. **Do not immediately escalate or hand over to the Sponsor.**\n4. **Try coaching, collaboration, and conflict resolution before replacing people.**\n5. **Find the Root Cause rather than the symptoms of a problem.**\n6. **Process change requests according to formal procedures after analyzing the impact.**\n7. **The project manager supports the team and removes obstacles rather than controlling them.**\n\nIn actual questions, several options seemed plausible. At this time, the answer that \"understands the situation and helps the team solve it\" was often more appropriate than the answer that \"takes the strongest action right now.\"\n\n## Were Online Lectures Enough?\n\nPersonally, I was satisfied with the online lectures. They were enough to grasp the big flow and Mindset needed for the exam.\n\nAt first, I wondered if I should take expensive offline classes. But in my case, the combination of learning the basic structure through online lectures, solving Study Hall questions, and analyzing error logs worked well.\n\nI felt that the time **solving questions, making mistakes, and reorganizing judgment processes** after listening to lectures was more critical than which lectures I chose. The fact that I completed a lecture alone did not allow me to choose options in exam situations.\n\n## How I Utilized GPT and NotebookLM\n\nI also utilized GPT and NotebookLM a lot in the PMP preparation process. Rather than using AI as a tool that chooses correct answers for me, I used it as a review partner to explain and compare the contents I understood.\n\n### GPT Usage\n\n- Comparing the difference between two confusing concepts in a table\n- Explaining my thought process for my chosen answer and being questioned about missing premises\n- Classifying error causes into concept deficiency, question interpretation, or Mindset errors\n- Having complex concepts re-explained with real-world project examples\n- Creating short review questions based on the organized contents\n\nFor example, instead of asking for the correct answer, I asked like this:\n\n```text\nI judged that I should immediately report to the Sponsor in this situation.\nFind the assumptions hidden in my judgment,\nand let me know the action I should check first from the PMI perspective in the form of a question.\nDo not tell me the correct answer immediately so that I can judge again.\n```\n\n### NotebookLM Usage\n\nI gathered the error logs and review materials I organized in NotebookLM and used it to find repeating themes within the materials.\n\n- Summarizing only frequently missed Mindsets\n- Reviewing Agile and Predictive situations separately\n- Comparing confusing topics like change management and conflict management\n- Creating a short review list to check right before the exam\n\nIf various materials are mixed, it becomes difficult to check what criteria were used to answer. Therefore, I focused on official materials with clear sources and notes I reviewed directly.\n\n<Callout type=\"warning\">\nI do not recommend putting Study Hall questions directly into AI and checking errors only by looking at the answers selected by AI. PMP questions depend heavily on subtle differences between options and the context of the situation. The AI's explanation can also be wrong, so you must verify it directly based on official materials and explanations.\n</Callout>\n\n## What I Learned from Study Hall 60% Scores\n\nMy scores were Full Mock 66%, 65%, and an overall average of about 62%. Looking only at these scores, you might want to delay the exam. I felt the same way.\n\nHowever, as a result, the following three things were more important than the score:\n\n- Is the number of questions missed for the same reason decreasing?\n- Can I explain the judgment process without memorizing the answer?\n- Can I maintain concentration during the actual exam time?\n\nOf course, my score cannot be a passing standard for everyone. Study Hall scores and actual exam results vary by individual. However, I want to say that you do not need to deny the entire preparation just because of the single number of 60% mid-to-high.\n\nThe error was not a verdict that \"I am not ready,\" but **a question that made a possibility to get it right one more time before the actual exam**.\n\n## Closing Part 1\n\nThe biggest change during the 7 weeks was the order of looking at questions, rather than the amount of memorized knowledge. I gradually became familiar with checking the situation before acting immediately, talking before changing people, and analyzing the impact before making changes.\n\nIn the next post, I recorded my experience from the moment I entered the Pearson VUE test center, having my mentality shaken by spending 80 minutes on the first 60 questions, the 10-minute break, snacks and stretching, to time management in the final session.\n\n**Continue Reading:** [PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing](/en/posts/pmp-pass-review-part-2)\n"},{"slug":"ai-agents-workflow-evolution","title":"Beyond Copilots: Why AI Agents Changed My Daily Workflow","description":"Smarter autocomplete was only the beginning. The shift to autonomous terminal-based AI agents has changed how I build, debug, and ship software.","topic":"work","tags":["AI Agents","Developer Productivity","Software Engineering","Terminal Workflows","Future Tech"],"publishedAt":"2026-06-29T09:00:00+09:00","updatedAt":"2026-06-29T09:00:00+09:00","growthStage":"growing","version":"1.0","revisions":[{"version":"1.0","date":"2026-06-29","summary":"Documented the shift from copilots to terminal AI agents.","changes":["Published agent workflow evolution notes"]}],"relationships":[{"type":"expands","slug":"the-end-of-prompt-engineering"},{"type":"references","slug":"mcp-usb-c-of-ai-applications"}],"content":"\n{/* \nSEO METADATA\nSEO Title: Beyond Copilots: How AI Agents Transformed My Engineering Workflow\nSEO Description: Explore the cognitive transition from inline autocomplete (Copilot) to autonomous terminal agents (Claude Code) and how it affects developer productivity.\nKeywords: AI agents, autonomous coding agents, Claude Code, GitHub Copilot, developer cognitive load, software development workflow, terminal agent loops\nCanonical URL: https://www.dailysay.me/en/posts/ai-agents-workflow-evolution\nOpenGraph Title: Beyond Copilots: How AI Agents Transformed My Engineering Workflow\nOpenGraph Description: Explore the cognitive transition from inline autocomplete (Copilot) to autonomous terminal agents (Claude Code) and how it affects developer productivity.\nTwitter Title: Beyond Copilots: Why AI Agents Changed My Daily Workflow\nTwitter Description: Moving from autocomplete helpers to autonomous agents running in terminal loops: a new paradigm for coding.\n*/}\n\n{/* \nHERO IMAGE SPECIFICATION\nImage Prompt: \"A clean editorial illustration of a terminal command prompt with concentric circles representing automated loop execution, deep blue and teal colors, modern technical style, 16:9 aspect ratio.\"\ncoverAlt: \"An abstract editorial visualization showing an autonomous code execution loop operating cleanly within a terminal sandbox, surrounded by soft lighting.\"\n*/}\n\nWhen GitHub Copilot launched in 2021, it felt like magic. Having a model predict the next line of your code or generate a basic utility function in real-time felt like writing code with a super-fast autocomplete. \n\nBut over time, we adjusted. We learned that \"copilots\" are essentially smarter tab-key utilities. They suggest lines, but they don't solve problems. They require you to remain in the micro-details of writing, reviewing, and formatting syntax. If a copilot generates a buggy function, you must manually run the compiler, find the error, copy it, and rewrite the code.\n\nBy mid-2026, we have transitioned into a new era: the era of **autonomous AI agents**. \n\nThe difference between a copilot and an agent is not just about capability; it is about cognitive delegation. A copilot is an assistant you supervise second-by-second; an agent is a colleague you task with a goal, letting them execute a loop in the background while you focus on system architecture.\n\nHere is why this workflow evolution has changed my daily developer experience, and how you can adapt your systems to support it.\n\n---\n\n## The Cognitive Load of Autocomplete\n\nTo understand the leverage of agentic workflows, we must examine the cognitive toll of early AI coding tools. When you use inline autocomplete, your attention is constantly interrupted:\n\n```\n[Write Code] ---> [Stop: Read Autocomplete] ---> [Decide: Accept / Edit]\n                         ^\n                  (Interrupts flow)\n```\n\nEvery few seconds, the model suggests a line. You must pause, read the suggestion, decide if it is correct, accept it, write another line, and repeat. This constant context-switching degrades your flow state. It can be exhausting because you are acting as a real-time micro-reviewer of generated text.\n\nFurthermore, copilots are isolated from the runtime environment. They do not know if the code they generated actually builds, passes test suites, or conforms to database schemas. The burden of compilation validation remains entirely on you.\n\n---\n\n## The Autonomous Agent Loop\n\n{/* \nINLINE IMAGE 1 SPECIFICATION\nImage File Name: \"/images/posts/agents-evolution/agentic-loop-stages.webp\"\nImage Prompt: \"A clean software schematic showing three circular nodes: Set Goal, Agent Execution Loop, and Final Human Review, vector flat layout, minimal branding.\"\nAlt text: \"Diagram showcasing the three stages of developer agent loops: goal setup, agent loop, and pull request review.\"\nCaption: \"The three-stage agentic workflow: shifting focus from line-by-line coding to goal setting and code reviews.\"\nPosition: after \"The Autonomous Agent Loop\"\n*/}\n\nAutonomous coding agents (such as Claude Code, Devins, or terminal-based agent scripts) solve this by running in a loop with tools. \n\nInstead of sitting in front of your editor watching code autocomplete, you operate at a higher level of abstraction:\n1. **Set Goal**: You define the engineering task in plain language (e.g. \"Add a retry delay parameter to our API client and update the test mocks\").\n2. **Execute Agent Loop**: The agent reads the codebase, runs test suites, edits the source files, handles compiler errors, and loops until the target constraints are met.\n3. **Review Diffs**: You review the final git diff or pull request, checking the logic rather than formatting details.\n\nHere is a conceptual view of how an autonomous agent loop handles errors:\n\n```mermaid\ngraph TD\n    Goal[Define Goal] --> Plan[Agent Plans File Changes]\n    Plan --> Edit[Edit Codebase]\n    Edit --> Build[Execute Build Command]\n    Build -->|Compile Error| ReadLog[Read Compiler Logs]\n    ReadLog --> Edit\n    Build -->|Build Success| RunTest[Run Test Suite]\n    RunTest -->|Test Failures| ReadTestLog[Read Test Failures]\n    ReadTestLog --> Edit\n    RunTest -->|Tests Pass| Complete[Done: Review Diffs]\n    \n    style Build fill:#333,stroke:#666,stroke-width:1px\n    style RunTest fill:#333,stroke:#666,stroke-width:1px\n    style Edit fill:#111,stroke:#666,stroke-width:2px\n```\n\nBy allowing the model to interact directly with the compiler and bash execution environment, we delegate the entire cycle of \"save file -> read compiler warning -> fix type -> save file\" to the agent. This is the repetitive grunt work of software engineering, and it is precisely what models excel at handling.\n\n---\n\n## Actionable Agentic Workflows to Adopt Today\n\nIf you want to transition your daily routine from autocomplete to agent loops, follow these three steps:\n\n1. **Write Declarative Goals**: Stop prompting your agent with micro-steps (\"open this file, change this line\"). Instead, state the goal and the success criteria: \n   * *Example*: `\"Add user role validation to the checkin API. Ensure that tests in src/test/auth.spec.ts pass, and run npm run build to verify.\"`\n2. **Setup Quick Test Suites**: Agents work best when feedback loops are fast. If your tests take ten minutes to run, the agent loop will be slow and token-expensive. Keep local unit tests fast (under 5 seconds) so the agent can quickly verify edits.\n3. **Commit Cleanly**: Before letting an agent loose on your repository, ensure your workspace is git-clean. This allows you to discard the agent's work with `git reset --hard` if it gets stuck in a loop, or easily review its edits using `git diff`.\n\n---\n\n## Future Outlook: The Agent-Native Repository\n\n{/* \nINLINE IMAGE 2 SPECIFICATION\nImage File Name: \"/images/posts/agents-evolution/repository-future.webp\"\nImage Prompt: \"A high-tech visualization showing an agent crawling a code repository structure, abstract neon green wireframes, dark clean layout.\"\nAlt text: \"Diagram of an agent-native repository with automated checkin policies and continuous verification loops.\"\nCaption: \"The future repository structure: optimized for both human reading and agentic execution.\"\nPosition: before \"What changed my perspective\"\n*/}\n\nIn the future, repositories will be designed for agents, not just humans. \n\nWe will see the emergence of **Agent-Native Repositories**. These codebases will contain structured configuration maps specifically for AI agents (like advanced `agents.config.json` files or standardized MCP servers) explaining codebase architecture, module responsibilities, build scripts, and test targets.\n\nInstead of an engineer explaining the codebase architecture to a new joiner, a configuration manifest will tell the incoming agent exactly how to navigate, build, and extend the system.\n\n---\n\n## Internal Links\n- To see a detailed comparison of terminal-based agents versus visual editors, check out [Claude Code vs Cursor: A Builder's Deep Dive](/en/posts/claude-code-vs-cursor).\n- Learn about the standardized protocol that connects agents to codebase context in [MCP Will Become the USB-C of AI Applications](/en/posts/mcp-usb-c-of-ai-applications).\n- For rules on maintaining quality and standards while using autonomous code loops, read [Principles of Maintaining Code Quality with AI](/en/posts/principles-of-maintaining-code-quality-with-ai).\n\n## External References\n- Read about autonomous agent loops and research benchmarks on the [OpenAI Research Blog](https://openai.com/research).\n- Explore terminal tools and agent configurations on [GitHub Developer Docs](https://developer.github.com/).\n- Review state management and pipeline execution loops on the [Anthropic Developer Portal](https://docs.anthropic.com/).\n\n---\n\n## What changed my perspective\n\nFor years, I defended the craft of writing code. I took pride in the tactile feel of typing syntax on my mechanical keyboard, adjusting variables, and watching my editor highlight syntax. I thought that delegating code execution to an agent would detach me from the codebase and make me a lazy builder.\n\nThen, I had to update thirty API endpoints to support a new tenant ID parameter across a legacy codebase. It was a repetitive, boring task. \n\nI opened `claude`, defined the goal, and went to get a cup of coffee. \n\nWhen I returned three minutes later, the agent had finished. I ran `git diff` and inspected the changes. The agent had modified 32 files, updated the route parameters, adjusted the database queries, and added mock tests for each endpoint. Every single line of code was formatted, typed correctly, and compile-verified. \n\nI realized that **my pride in typing was just attachment to friction**. The actual engineering didn't happen in the typing of the lines; it happened in the architectural choice to support tenant isolation. By letting the agent handle the implementation details, I saved hours of repetitive keyboard work and stayed focused on the system design. I stopped typing code and started directing agents.\n"},{"slug":"how-i-built-three-products-faster-with-ai","title":"Speed in the AI Era: How I Built Three Products in Weeks","description":"In the past, launching a software product took months of engineering. Here is how I designed, built, and shipped three digital products in weeks using AI.","topic":"work","tags":["Indie Hacker","AI Development","Next.js","Product Launch","MVP"],"publishedAt":"2026-06-18T09:00:00+09:00","updatedAt":"2026-06-18T09:00:00+09:00","growthStage":"growing","version":"1.0","revisions":[{"version":"1.0","date":"2026-06-18","summary":"Case study of shipping three products in weeks with AI.","changes":["Published multi-product shipping narrative"]}],"relationships":[{"type":"references","slug":"principles-of-maintaining-code-quality-with-ai"},{"type":"inspired-by","slug":"built-slowly-updated-daily"}],"content":"\n{/* \nSEO METADATA\nSEO Title: Speed in the AI Era: Building Three Products in Weeks with AI\nSEO Description: A step-by-step case study on using AI code tools to build and launch three SaaS MVPs in less than a month. Learn the workflow and architecture.\nKeywords: indie hacking, build with AI, AI software developer, Next.js Supabase MVP, rapid prototyping, AI developer experience\nCanonical URL: https://www.dailysay.me/en/posts/how-i-built-three-products-faster-with-ai\nOpenGraph Title: Speed in the AI Era: Building Three Products in Weeks with AI\nOpenGraph Description: A step-by-step case study on using AI code tools to build and launch three SaaS MVPs in less than a month. Learn the workflow and architecture.\nTwitter Title: Speed in the AI Era: How I Built Three Products in Weeks\nTwitter Description: Shifting from slow coding to rapid AI prototyping: a retrospective on shipping three products in weeks.\n*/}\n\n{/* \nHERO IMAGE SPECIFICATION\nImage Prompt: \"A minimal digital layout showing three clean web browser mockups showcasing different UI features, dark theme background, modern product design style, 16:9 aspect ratio.\"\ncoverAlt: \"Three clean digital UI dashboards representing different web applications arranged in a stack, with coding tools overlaid in a modern flat design.\"\n*/}\n\nFor a long time, the journey from product idea to production launch was a marathon. If you were a solo developer, building a software product meant committing to weeks of boilerplate setup: configuring databases, setting up authentication, writing API routing endpoints, building responsive layouts, and writing validation scripts. \n\nBy the time you reached the point of coding your core unique value proposition, you were already exhausted.\n\nBut in mid-2026, the velocity of building has fundamentally shifted. Over a four-week period, I designed, built, and shipped three distinct web applications:\n1. **SentryPost**: An automated social media scheduler that optimizes dispatch times using audience engagement logs.\n2. **Tabulate**: A database utility that parses PDF receipts and maps the items directly into structured expense sheets.\n3. **DailyList**: A minimal newsletter aggregator that summarizes daily email updates into a single dashboard.\n\nI am not a 10x developer, and I didn't write this software by working 100-hour weeks. Instead, I used a standardized stack (Next.js, TailwindCSS, and Supabase) and delegated the entire boilerplate, layout, and integration logic to AI coding agents.\n\nHere is a retrospective on the workflow, architecture, and developer lessons learned from building at the speed of thought.\n\n---\n\n## The Standardized Stack: Blueprinting for Speed\n\nTo build quickly with AI, you must eliminate architectural variety. If you switch database providers, backend frameworks, or CSS approaches between projects, your AI coding agents will get confused. They will mix up conventions, leading to a massive increase in compiler errors.\n\nI standardized on a single, clean stack for all three products:\n\n* **Framework**: Next.js (App Router, TypeScript)\n* **Styling**: TailwindCSS (for rapid utility layouts)\n* **Database & Auth**: Supabase (PostgreSQL with built-in email auth)\n* **Deployments**: Vercel (for automatic preview deployments)\n\n```\n+-------------------------------------------------+\n| Next.js App Router (TypeScript)                 |\n|                                                 |\n| [Frontend UI: Tailwind]  <-->  [Backend API]    |\n|                                     |           |\n|                               (Supabase Client) |\n|                                     v           |\n|                              [Supabase DB /     |\n|                               Authentication]   |\n+-------------------------------------------------+\n```\n\nBy keeping the stack identical, the model context stayed aligned across all projects. I could reuse database schemas, client wrappers, and authentication guards from one repository to another. When I spun up a new project terminal and said, \"Set up Supabase authentication client wrappers,\" the AI generated the exact wrappers that matched my previous codebase conventions.\n\n---\n\n## Stage 1: Schema Drafting and Database Setup\n\n{/* \nINLINE IMAGE 1 SPECIFICATION\nImage File Name: \"/images/posts/three-products/database-migration.webp\"\nImage Prompt: \"A clean database ER diagram showing table structures for users, posts, and metrics connected by clean vector lines, high-tech dark interface style.\"\nAlt text: \"Diagram showing relational database schemas for customer subscriptions, task queues, and user metrics.\"\nCaption: \"Structuring relational databases: passing markdown tables to AI agents to generate Postgres migrations.\"\nPosition: after \"Stage 1: Schema Drafting and Database Setup\"\n*/}\n\nThe first bottleneck in launching an app is database design. Before writing any UI, you must define tables, keys, and foreign relationships. \n\nInstead of writing SQL by hand, I designed my database schemas using simple markdown tables. For example, for **SentryPost**, I drafted this description:\n\n```markdown\nTables:\n- users: id (uuid), email (text), tier (text)\n- schedules: id (uuid), user_id (ref users), title (text), content (text), send_at (timestamp), status (enum)\n- metrics: id (uuid), schedule_id (ref schedules), impressions (int), clicks (int)\n```\n\nI passed this table to my terminal agent and ran the following query:\n`claude -p \"Generate the PostgreSQL migration scripts for Supabase matching this schema definition. Include row-level security (RLS) policies allowing users to only read and write their own data.\"`\n\nWithin seconds, the agent generated the migration SQL:\n\n```sql\n-- Create schedules table\nCREATE TYPE schedule_status AS ENUM ('draft', 'scheduled', 'sent', 'failed');\n\nCREATE TABLE public.schedules (\n    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,\n    user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE NOT NULL,\n    title TEXT NOT NULL,\n    content TEXT NOT NULL,\n    send_at TIMESTAMP WITH TIME ZONE NOT NULL,\n    status schedule_status DEFAULT 'draft'::schedule_status NOT NULL,\n    created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL\n);\n\n-- Enable Row Level Security\nALTER TABLE public.schedules ENABLE ROW LEVEL SECURITY;\n\n-- Create policy for select\nCREATE POLICY \"Users can view their own schedules\" \n    ON public.schedules FOR SELECT \n    USING (auth.uid() = user_id);\n\n-- Create policy for insert\nCREATE POLICY \"Users can insert their own schedules\" \n    ON public.schedules FOR INSERT \n    WITH CHECK (auth.uid() = user_id);\n```\n\nBy generating migration files and RLS policies in one prompt, I cut hours of manual SQL writing. RLS is notoriously tricky to write by hand without syntax errors, but the AI, trained on thousands of Supabase configurations, handled the policies correctly.\n\n---\n\n## Stage 2: Rapid UI Design with Tailwind and Flexbox\n\n{/* \nINLINE IMAGE 2 SPECIFICATION\nImage File Name: \"/images/posts/three-products/layout-generation.webp\"\nImage Prompt: \"A digital layout mockup displaying a modern SaaS user dashboard with clean grid modules, soft neon green highlights, minimal vector design.\"\nAlt text: \"A user interface mockup displaying clean sidebar navigation, metric grids, and lists of tasks.\"\nCaption: \"UI prototyping: using AI agents to construct responsive dashboards directly using Tailwind classes.\"\nPosition: after \"Stage 2: Rapid UI Design with Tailwind and Flexbox\"\n*/}\n\nOnce the database was set up, I shifted to the user interface. Designing layouts from scratch can be a slow process, especially when adjusting flex wrap, padding ratios, and dark mode classes.\n\nI used a \"layout drafting\" approach. I wrote a semantic description of the interface layout:\n\n```\nCreate a dashboard shell layout for SentryPost.\n- Sidebar: Navigation items (Dashboard, Schedules, Analytics, Settings). Profile card at bottom.\n- Main Area: Header with breadcrumbs and 'Create New' button.\n- Grid: 3 metric cards (Scheduled Posts, Sent Posts, Success Rate %).\n- List: A clean data list showing scheduled posts with status badges.\n```\n\nI passed this layout request to the AI, and it returned a highly optimized React component containing the Tailwind layout structure. By describing *what* should appear on the screen rather than *how* to write the CSS classes, I let the AI handle the layout adjustments. \n\nIf a button alignment looked incorrect, I didn't search for CSS flexbox rules. I simply highlighted the block in my editor and asked: \"Align this button to the far right of the card, vertical middle, matching the height of the sibling input.\" The AI updated the Tailwind utility classes instantly.\n\n---\n\n## Actionable Rapid-Building Strategy\n\nIf you want to build and launch products at this speed, you must change your development habits:\n\n* **Use a Boilerplate Repository**: Do not run `create-next-app` from scratch for every project. Maintain a private template repository that already has Supabase auth client setup, standard navigation components, payment hooks, and metadata layouts initialized.\n* **Test Database Operations Early**: Before writing the UI, write local scripts to insert and read dummy records. Verify that your database constraints, schemas, and API routes work before building visual forms.\n* **Avoid Over-Engineering**: Do not implement complex caching, queue systems, or scalable clusters for your MVP. Use basic SQL triggers, simple cron jobs, and basic database rows to store queues until you have validated customer demand.\n* **Iterate via Feature Flags**: If a feature is difficult to finalize, wrap it in a feature flag or disable the UI link. Focus on shipping the core loop first.\n\n---\n\n## Future Outlook: The Solopreneur Startup\n\n{/* \nINLINE IMAGE 3 SPECIFICATION\nImage File Name: \"/images/posts/three-products/solopreneur-future.webp\"\nImage Prompt: \"A modern workspace where a single builder collaborates with virtual AI team avatars shown on screens, editorial digital design, premium dark colors.\"\nAlt text: \"Diagram of a modern workspace where a single founder coordinates a virtual team of AI agents.\"\nCaption: \"The future solopreneur: moving from coder to general manager of a virtual AI engineering team.\"\nPosition: before \"What changed my perspective\"\n*/}\n\nIn the future, the cost of software development will continue to approach zero. \n\nA single developer with an understanding of system architecture and customer needs will be able to build and run a portfolio of web applications that previously required a venture-backed startup. The competitive advantage in tech will shift away from *coding capacity* toward *market insight, customer validation, and distribution channels*.\n\nThe successful developer of the future will not be the one who writes the cleanest manual code loops; they will be the one who can identify problems, design systems, and direct AI agents to build stable solutions in record time.\n\n---\n\n## Internal Links\n- To see how terminal-native agent tools speed up multi-file updates, check out [Claude Code vs Cursor: A Builder's Deep Dive](/en/posts/claude-code-vs-cursor).\n- Learn about standardizing your database and API adapters in [MCP Will Become the USB-C of AI Applications](/en/posts/mcp-usb-c-of-ai-applications).\n- To maintain repository clean code and avoid compiling bugs during rapid development, review [Principles of Maintaining Code Quality with AI](/en/posts/principles-of-maintaining-code-quality-with-ai).\n\n## External References\n- Review database setups and RLS guidelines on the [Supabase Documentation Blog](https://supabase.com/blog).\n- Explore page layouts and deployment optimization on the [Vercel Blog](https://vercel.com/blog).\n- Read about rapid prototyping and software velocity on the [GitHub Blog](https://github.blog/).\n\n---\n\n## What changed my perspective\n\nI used to believe that starting a software company required a co-founder, a seed funding round, and months of engineering iterations. I spent all of 2023 writing design docs for a SaaS idea, debating frameworks, and optimizing a local database model that never saw a single real user. I was paralyzed by the complexity of the execution.\n\nWhen I started my 4-week experiment, I committed to building only with a pre-configured stack and letting my coding agents write the code. I forced myself to launch each app as soon as the core user path worked, even if the settings page was empty.\n\nWatching my first product go live on Vercel after only six days of development changed my entire worldview. Real users started registering, sending feedback, and requesting features. \n\nI realized that **the code we write in our editors is just an implementation detail; the value is in the loop between user feedback and product updates**. By letting AI handle the execution details, I stopped acting like an editor formatter and started acting like a product owner. I shipped more code in a month than I had in the previous two years, and for the first time in my life, I was building in real-time.\n"},{"slug":"claude-code-vs-cursor","title":"Claude Code vs Cursor: A Builder's Deep Dive","description":"Having spent months building real software with both, here is a detailed breakdown of terminal-native Claude Code versus IDE-native Cursor.","topic":"work","tags":["Cursor","Claude Code","Developer Experience","AI Coding Tools","Agentic Coding"],"publishedAt":"2026-06-06T09:00:00+09:00","updatedAt":"2026-06-06T09:00:00+09:00","growthStage":"growing","version":"1.0","revisions":[{"version":"1.0","date":"2026-06-06","summary":"Compared terminal-native Claude Code with IDE-native Cursor.","changes":["Published builder tool comparison"]}],"relationships":[{"type":"references","slug":"ai-agents-workflow-evolution"},{"type":"inspired-by","slug":"building-products-alone-with-ai"}],"content":"\n{/* \nSEO METADATA\nSEO Title: Claude Code vs Cursor: A Hands-on Comparison for Developers\nSEO Description: Deep dive comparison between Anthropic's Claude Code CLI and VS Code-fork Cursor. Understand which tool is best for your agentic development workflow.\nKeywords: Claude Code, Cursor, AI code editor, agentic coding, developer experience, VS Code AI, terminal agents\nCanonical URL: https://www.dailysay.me/en/posts/claude-code-vs-cursor\nOpenGraph Title: Claude Code vs Cursor: A Hands-on Comparison for Developers\nOpenGraph Description: Deep dive comparison between Anthropic's Claude Code CLI and VS Code-fork Cursor. Understand which tool is best for your agentic development workflow.\nTwitter Title: Claude Code vs Cursor: A Builder's Deep Dive\nTwitter Description: Terminal-native CLI vs IDE-native editor. Which AI coding tool wins?\n*/}\n\n{/* \nHERO IMAGE SPECIFICATION\nImage Prompt: \"A clean split screen layout showing glowing terminal commands on one side and a modern code editor workspace on the other, dark tech style, minimal icons, 16:9 aspect ratio.\"\ncoverAlt: \"Split screen graphic showing a terminal window with command line output on the left and a rich modern IDE editor on the right, dark theme.\"\n*/}\n\nFor the past year, Cursor has been the undisputed king of AI-assisted development. As a fork of VS Code, it integrated LLMs directly into the text editor, popularizing inline completions (Tab), chat overlays (Cmd+K), and full-context indexing (@Codebase). It changed how thousands of developers write software daily.\n\nBut in early 2026, Anthropic disrupted the developer space by introducing Claude Code—a terminal-native CLI agent that doesn't live inside your editor, but runs directly in your shell. \n\nInstead of typing prompts into a side panel and clicking \"Apply,\" you run Claude Code in your terminal, and it autonomously searches your files, executes bash commands, runs tests, reads build logs, and updates your repository.\n\nHaving built and shipped three distinct products using both tools, I want to move past the marketing hype. These are not merely different interfaces for the same underlying model; they represent two fundamentally different philosophies of developer experience (DX).\n\nHere is a hands-on comparison of terminal-native agentic coding versus editor-native interface helpers.\n\n---\n\n## The Architectural Divide: IDE-Native vs. Terminal-Native\n\nTo understand the difference between Cursor and Claude Code, we must look at how they interact with your workspace.\n\n### Cursor: The Editor-First Approach\n\nCursor acts as an extension of your editor. It is designed to assist you *while you write code*. It operates primarily inside the active document and the file tree.\n\n```\n+------------------------------------+\n| Cursor IDE                         |\n|                                    |\n| [File Tree]   [Active Editor]      | <--- Inline completion, Tab, Cmd+K\n|               [Side Panel Chat]    | <--- Semantic context over files\n+------------------------------------+\n```\n\nCursor is visually rich. It excels at showing diffs, allowing you to review line-by-line changes before accepting them. However, it is fundamentally constrained by the IDE sandboxing rules. If Cursor wants to run a command or verify a test suite, it relies on you opening a terminal panel and executing the script yourself.\n\n### Claude Code: The Shell-First Approach\n\nClaude Code lives inside your shell. It operates as an autonomous agent that has direct read/write access to your local filesystem and the ability to execute bash commands.\n\n```\n+------------------------------------+\n| System Terminal                    |\n|                                    |\n| $ claude                           |\n| > \"Find the broken test and fix it\"|\n| [Agent Loop]                       |\n|   1. grep search files             |\n|   2. rewrite lines                 |\n|   3. run `npm test`                | <--- Direct command execution\n|   4. verify success / loop         |\n+------------------------------------+\n```\n\nBecause Claude Code runs inside your terminal, it can chain tool calls autonomously. If you ask it to \"Fix the compiler errors in this typescript workspace,\" it will start by running your build script, read the error output in the terminal, navigate to the offending files, edit them, run the build script again, and loop until the build succeeds.\n\n---\n\n## Head-to-Head Feature Comparison\n\n{/* \nINLINE IMAGE 1 SPECIFICATION\nImage File Name: \"/images/posts/claude-vs-cursor/headless-agent-flow.webp\"\nImage Prompt: \"A diagram showing an agent loop running tests, checking errors, editing files, and git committing, clean vector art, dark design, cyan lines.\"\nAlt text: \"Diagram showing terminal agent loop: Read terminal output -> Edit code -> Execute shell script -> Verify result.\"\nCaption: \"The autonomous agent loop of Claude Code: terminal-native tools allow self-correction.\"\nPosition: after \"Head-to-Head Feature Comparison\"\n*/}\n\nTo decide when to use which, let's break down how they perform across specific engineering tasks.\n\n### 1. Codebase Search and Navigation\n\n* **Cursor**: The `@Codebase` feature uses vector search embeddings to retrieve relevant files based on semantic similarity. It is excellent for asking high-level questions like \"Where do we handle session storage?\" and navigating directly to the file.\n* **Claude Code**: It uses traditional filesystem tools like `grep`, `find`, and direct file reading inside the shell. While it lacks vector search, its ability to construct custom grep queries dynamically makes it incredibly precise. It acts like an experienced Linux developer who knows how to use command-line utilities.\n\n### 2. Multi-File Refactoring\n\nLet's look at a typical refactoring task: renaming a prop inside a component that is used in fifteen different files.\n\n* **Cursor**: You either use VS Code's built-in symbol refactoring, or you open Composer (Cmd+I) and ask it to update the files. Composer will output a list of file changes, and you must review and click \"Save All\" or accept the diffs individually.\n* **Claude Code**: You ask it directly in the terminal: `claude -p \"Rename the billingAddress prop to address in the checkout component and update all call sites.\"` \n\nBehind the scenes, Claude Code executes a structured loop:\n1. It searches for all instances of `billingAddress` using `grep`.\n2. It reads each affected file.\n3. It writes code replacements using a search-and-replace tool.\n4. It runs `npm run typecheck` to verify that there are no compiler errors.\n5. If the typecheck fails, it reads the compiler logs, fixes the remaining instances, and runs typecheck again.\n\nHere is an example of what that tool log looks like in your terminal:\n\n```bash\n$ claude\n? What would you like to do? Fix TypeScript type errors after prop rename.\n  \n  Thinking...\n  1. Executing command: npm run typecheck\n  2. Command output:\n     src/components/checkout/Review.tsx:42:15 - error TS2339: Property 'billingAddress' does not exist on type 'CheckoutProps'.\n  3. Reading file: src/components/checkout/Review.tsx\n  4. Replacing file content in src/components/checkout/Review.tsx (lines 40-45)\n  5. Executing command: npm run typecheck\n  6. Command output:\n     ✓ Success. Typecheck complete.\n  \n  I have found and updated the remaining 'billingAddress' reference in Review.tsx. The typecheck now passes.\n```\n\n---\n\n## Actionable Selection Framework\n\nTo maximize your productivity, you should not pick one tool and abandon the other. Instead, use them as complementary systems in your development pipeline:\n\n| Task / Scenario | Recommended Tool | Rationale |\n|---|---|---|\n| **Feature Drafting & Layouts** | **Cursor** | Best for writing fresh code blocks, adjusting CSS styles, and having a visual preview of your edits. |\n| **Debugging Compiler / Test Failures** | **Claude Code** | Best because it can execute build and test scripts autonomously, inspect stdout, and self-correct. |\n| **Global Codebase Refactoring** | **Claude Code** | Best because it runs in a headless search-and-replace command loop across files without UI lag. |\n| **Git Review and Committing** | **Claude Code** | Best because it has native access to git CLI, can run `git diff`, and write precise commit messages. |\n\n---\n\n## Future Outlook: The Terminal as the Agent Sandbox\n\n{/* \nINLINE IMAGE 2 SPECIFICATION\nImage File Name: \"/images/posts/claude-vs-cursor/agentic-dx.webp\"\nImage Prompt: \"A sleek conceptual visual showing an agent executing tasks inside a secure containerized shell, modern editorial art, teal and violet highlights.\"\nAlt text: \"Diagram of an autonomous development sandbox where a terminal agent compiles, tests, and deploys applications.\"\nCaption: \"The future developer sandbox: AI agents operating directly on local files and compilers.\"\nPosition: before \"What changed my perspective\"\n*/}\n\nIn the future, coding tools will move away from manual \"copilot\" systems. We will spend less time watching text autocomplete on our screens. \n\nInstead, our primary interface with AI coding assistants will be agentic sandboxes. We will run a containerized CLI agent, define a goal (e.g. \"Add a billing history table to the dashboard page\"), and let the agent work in the background. The agent will write code, run compilers, verify test coverage, build assets, and push a branch for review.\n\nOur role as human developers will transition from *writing lines of code* to *verifying constraints and reviewing pull requests*.\n\n---\n\n## Internal Links\n- To learn how standardized context protocols like MCP support terminal-native agents, read [MCP Will Become the USB-C of AI Applications](/en/posts/mcp-usb-c-of-ai-applications).\n- For a guide on preserving repository standards while using autonomous tools, review [Principles of Maintaining Code Quality with AI](/en/posts/principles-of-maintaining-code-quality-with-ai).\n- To see how developers can leverage custom automation scripts outside their editors, see [Why Every PM Should Learn AI Automation](/en/posts/every-pm-should-learn-ai-automation).\n\n## External References\n- Read the official CLI launch and developer guidelines on the [Anthropic Claude Code Docs](https://docs.anthropic.com/en/docs/agents-and-tools/claude-code).\n- Review IDE features and codebase indexing setups on the [Cursor Official Website](https://www.cursor.com/).\n- Explore developer experience trends and modern coding pipelines on the [OpenAI Blog](https://openai.com/blog).\n\n---\n\n## What changed my perspective\n\nWhen I first heard about Claude Code, I was skeptical. I thought, \"Why would I want a terminal tool when I already have Cursor's side panel chat and visual diffs?\" It felt like a regression to command-line interfaces when we had already built advanced IDE wrappers.\n\nThen, I had to fix a complex caching bug in a multi-package monorepo. I tried using Cursor's Composer, but it kept getting stuck in loops—it would modify a file, then I had to open a terminal to compile, see a typescript error, copy the error back to the chat, ask it to fix it, and repeat. The context switching was slow and frustrating.\n\nI opened my terminal, installed `claude`, and asked it to fix the caching bug. \n\nI watched the terminal screen fill up with commands. It ran the local dev build, read the caching error in stdout, did a grep search across our Redis utility files, edited the file, ran the build again, saw a typescript type warning, edited the types file, ran typecheck again, and successfully resolved the issue—all in less than 90 seconds without me touching the keyboard once.\n\nThat was the moment I realized that **for complex engineering tasks, a visual editor is a bottleneck**. An agent doesn't need a text window or a visual tree; it needs a compiler, a terminal, and a shell loop. The terminal is not a regression; it is the ultimate sandbox for autonomous systems.\n"},{"slug":"every-pm-should-learn-ai-automation","title":"Why Every PM Should Learn AI Automation","description":"Product management is notorious for coordination overhead. By building lightweight AI automation pipelines, PMs can reclaim focus and build better products.","topic":"work","tags":["Product Management","AI Automation","Developer Skills","Productivity","No Code"],"publishedAt":"2026-05-27T09:00:00+09:00","updatedAt":"2026-05-27T09:00:00+09:00","growthStage":"growing","version":"1.0","revisions":[{"version":"1.0","date":"2026-05-27","summary":"Made the case for PMs learning lightweight AI automation.","changes":["Published PM automation argument"]}],"relationships":[{"type":"references","slug":"pmp-pass-review-part-1"},{"type":"inspired-by","slug":"building-products-alone-with-ai"}],"content":"\n{/* \nSEO METADATA\nSEO Title: Why Every PM Should Learn AI Automation and Custom Pipelines\nSEO Description: Discover how Product Managers can use AI automation pipelines to automate user feedback triage, Jira tickets, and specs to focus on product strategy.\nKeywords: Product Management, AI automation, product manager workflow, AI agents for PMs, n8n LLM, developer collaboration\nCanonical URL: https://www.dailysay.me/en/posts/every-pm-should-learn-ai-automation\nOpenGraph Title: Why Every PM Should Learn AI Automation and Custom Pipelines\nOpenGraph Description: Discover how Product Managers can use AI automation pipelines to automate user feedback triage, Jira tickets, and specs to focus on product strategy.\nTwitter Title: Why Every PM Should Learn AI Automation\nTwitter Description: How PMs can use custom LLM automations to eliminate administrative overhead.\n*/}\n\n{/* \nHERO IMAGE SPECIFICATION\nImage Prompt: \"A clean, modern editorial layout showing user reviews feeding into automatic classification blocks, which cleanly map into a developer task board, technical aesthetic, purple and gray tone, 16:9 aspect ratio.\"\ncoverAlt: \"A product manager looking at a dashboard where incoming feedback is automatically sorted, prioritized, and linked to developer tickets by lightweight AI agents.\"\n*/}\n\nAs a Product Manager, your value is measured by the quality of your decisions and your ability to align teams. Yet, if you audit your calendar, you will likely find that most of your day is spent on coordination overhead: triaging customer feedback, writing detailed user stories, coordinating status updates, cleaning up the Jira backlog, and formatting specs.\n\nWe have become the human routers of our organizations. We copy text from Slack, paste it into Jira, summarize it for the engineers, and report it back to the business. \n\nIn early 2026, this administrative burden is no longer a necessary evil. With the maturity of LLM APIs and modern automation platforms, it is now possible to build custom AI pipelines that handle these tasks autonomously. \n\nProduct Managers who learn how to construct their own AI automations are not just saving time. They are building a better understanding of how AI works, improving developer collaboration, and shifting their energy back to deep product strategy.\n\n---\n\n## The Manual Overhead of Product Management\n\nTo understand the leverage of AI automation, let's look at a common scenario: processing user feedback. Suppose your application receives 200 feedback submissions a day via App Store reviews, customer support tickets, and direct feedback surveys. \n\nIdeally, a PM should read every piece of feedback, group them into feature buckets, prioritize them, and link them to existing tickets. In reality, here is what happens:\n\n```\n[User Feedback] --> [Slack Channel]\n                          |\n                   (PM is busy)\n                          |\n                          v\n         [Forgotten / Unresolved Feedback]\n```\n\nBecause PMs are busy, the feedback is either ignored, or only a few loud customer complaints get prioritized. The team loses valuable user signals, and product decisions are made based on intuition rather than structured data.\n\nThis is a classic routing and processing bottleneck. It does not require human creativity, but it does require semantic understanding. This makes it a perfect candidate for AI automation.\n\n---\n\n## Building a Feedback Triage Pipeline\n\n{/* \nINLINE IMAGE 1 SPECIFICATION\nImage File Name: \"/images/posts/pm-automation/feedback-triage-pipeline.webp\"\nImage Prompt: \"A clean layout showing support tickets passing through a logical model blocks with labels like Classify, Extract Metadata, Slack Alert, vector design, modern tech colors.\"\nAlt text: \"Diagram of automated feedback pipeline sorting user support text into bug databases and feature roadmaps.\"\nCaption: \"Automation pipeline mapping user feedback to specific database and chat destinations.\"\nPosition: after \"Building a Feedback Triage Pipeline\"\n*/}\n\nInstead of waiting for an engineer to build a feedback analyzer, a PM can build one in an afternoon using tool integrations or basic scripts. \n\nHere is how a typical feedback triage pipeline works:\n1. **Trigger**: A new feedback entry is received via an API webhook (e.g. Typeform or Support API).\n2. **Analysis**: The raw feedback is sent to an LLM endpoint with a structured schema request. The model categorizes the feedback, extracts the user's emotional tone, and summarizes the core problem.\n3. **Routing**:\n   - If the category is a **Bug**, the pipeline creates a Jira ticket automatically and sends a notification to the engineering team's Slack channel.\n   - If the category is a **Feature Request**, the entry is appended to a Notion roadmap database, linked to the corresponding product area.\n   - If the sentiment is **Angry**, the customer success manager is notified immediately.\n\nLet's look at how simple it is to write the analysis logic in Python. Using a structured script, we can parse feedback text and route it:\n\n```python\nimport os\nimport json\nfrom openai import OpenAI\nfrom pydantic import BaseModel, Field\n\n# 1. Define the structure of our categorized feedback\nclass FeedbackAnalysis(BaseModel):\n    category: str = Field(description=\"One of: bug, UI_improvement, billing, feature_request, general\")\n    summary: str = Field(description=\"A concise one-sentence summary of the user's problem in English\")\n    sentiment: str = Field(description=\"One of: positive, neutral, frustrated, angry\")\n    affected_feature: str = Field(description=\"The name of the feature or product area mentioned (e.g., checkout, login)\")\n\n# Initialize the OpenAI client\nclient = OpenAI(api_key=os.environ.get(\"OPENAI_API_KEY\"))\n\ndef analyze_user_feedback(feedback_text: str) -> FeedbackAnalysis:\n    # Query the model using structured outputs\n    response = client.beta.chat.completions.parse(\n        model=\"gpt-4o-mini\",\n        messages=[\n            {\"role\": \"system\", \"content\": \"You are a customer feedback analyzer for a SaaS product.\"},\n            {\"role\": \"user\", \"content\": feedback_text}\n        ],\n        response_format=FeedbackAnalysis\n    )\n    \n    return response.choices[0].message.parsed\n\n# Example usage\nsample_feedback = \"I tried to upgrade my plan using my credit card, but the checkout form kept throwing a validation error on the zip code field. Extremely annoying.\"\nanalysis = analyze_user_feedback(sample_feedback)\n\nprint(json.dumps(analysis.dict(), indent=2))\n# Output:\n# {\n#   \"category\": \"bug\",\n#   \"summary\": \"Checkout form fails card validation due to zip code field validation error.\",\n#   \"sentiment\": \"frustrated\",\n#   \"affected_feature\": \"checkout\"\n# }\n```\n\nBy running this script in a simple serverless function or automation tool, you have built a custom customer routing system. You no longer spend hours triaging reviews; instead, you review a clean, structured dashboard of user feedback trends once a week.\n\n---\n\n## Actionable Automation Opportunities for PMs\n\nIf you want to introduce AI automation into your product management workflow, start with these three areas:\n\n1. **Specs-to-Tasks Generation**: When you finish writing a Product Requirement Document (PRD), pass it to a custom script that parses the requirements and drafts the corresponding Jira epic and developer stories, matching your team's specific ticket templates.\n2. **Release Notes Generator**: Connect your Git repository releases to your team's project database. Every time a build goes to production, use an LLM to generate customer-friendly release drafts and internal Slack announcements based on the commit messages and PR titles.\n3. **Continuous Competitor Monitoring**: Set up RSS feed triggers for competitor blogs and product launches. Use an LLM to summarize their weekly updates, categorize their focus areas, and highlight any potential impact on your product roadmap.\n\n---\n\n## Future Outlook: The \"AI-Native\" Product Manager\n\n{/* \nINLINE IMAGE 2 SPECIFICATION\nImage File Name: \"/images/posts/pm-automation/ai-native-pm.webp\"\nImage Prompt: \"A conceptual digital workspace showing a PM planning a product strategy while background agents manage execution pipelines, modern editorial graphic, clean purple tones.\"\nAlt text: \"Diagram of an AI-native PM dashboard where AI agents manage backlog details while humans handle strategy.\"\nCaption: \"The future division of labor: AI agents handling execution detail, PMs focusing on vision and strategy.\"\nPosition: before \"What changed my perspective\"\n*/}\n\nIn the future, product management will split into two paths. \n\nPMs who rely on traditional, manual coordination will be overwhelmed by the sheer volume of execution loops. Because AI makes engineering code generation incredibly fast, the speed of shipping features will increase. If shipping speed increases, the amount of feedback, data metrics, and coordination required will explode. \n\nPMs who do not automate their tasks will become the primary bottleneck of their development teams.\n\nConversely, \"AI-native\" PMs will run continuous automation loops. They will use specialized agents to handle backlog grooming, ticket drafting, and customer triage. By delegating the execution details to automated systems, they can focus entirely on customer empathy, vision, and product positioning.\n\n---\n\n## Internal Links\n* To see how structured state machines replace unstable prompt scripts, read [The End of Prompt Engineering?](/en/posts/the-end-of-prompt-engineering).\n* For advice on integrating databases and filesystems directly into your tools, review [MCP Will Become the USB-C of AI Applications](/en/posts/mcp-usb-c-of-ai-applications).\n* To see how developers are building software faster in terminal environments, check out [Claude Code vs Cursor: A Builder's Deep Dive](/en/posts/claude-code-vs-cursor).\n\n## External References\n* Explore developer tools and API integration standards on the [Microsoft Developer Blog](https://developer.microsoft.com/en-us/).\n* Read about agile processes and backlog automation patterns on the [Project Management Institute (PMI) Library](https://www.pmi.org/).\n* Review automation workflows using serverless tools on [GitHub Resources](https://resources.github.com/).\n\n---\n\n## What changed my perspective\n\nFor a long time, I took pride in being a \"hands-on\" PM who wrote immaculate Jira tickets and spent hours organizing our documentation databases. I thought my value lay in the detail and completeness of my specifications.\n\nThen, during a high-pressure launch, I fell behind. I had no time to write the detailed specifications for our upcoming sprint, and the engineering team was blocked. In a panic, I spent three hours building a basic automation script that parsed our roadmap database and drafted Jira stories based on our PRD templates.\n\nWhen I looked at the drafted stories, they were 90% as good as the ones I spent hours writing manually. The engineers didn't care about the minor differences; they were just happy to have clear, structured tasks on time. \n\nThat was the day I realized that **my value as a PM was never in the writing of the tickets; it was in the alignment of the goal**. Automating my administrative work didn't make me less involved; it freed up my time to talk to customers and developers directly. I stopped formatting tickets and started building pipelines.\n"},{"slug":"the-end-of-prompt-engineering","title":"The End of Prompt Engineering?","description":"As models become more robust and developers transition to agentic workflows, the era of prompt hacking is ending. The future belongs to systems engineering.","topic":"work","tags":["Prompt Engineering","AI Software Architecture","LLM Agents","Systems Programming","AI Trends"],"publishedAt":"2026-05-15T09:00:00+09:00","updatedAt":"2026-05-15T09:00:00+09:00","growthStage":"evergreen","version":"1.0","revisions":[{"version":"1.0","date":"2026-05-15","summary":"Argued the shift from prompt hacking to systems engineering.","changes":["Published systems-over-prompts thesis"]}],"relationships":[{"type":"continues","slug":"mcp-usb-c-of-ai-applications"}],"content":"\n{/* \nSEO METADATA\nSEO Title: The End of Prompt Engineering? From Prompt Hacking to Systems Design\nSEO Description: Explore why prompt engineering is shifting from textual hacking to system architecture, state machines, and structured tool loops.\nKeywords: prompt engineering, prompt hacking, AI systems engineering, LLM design patterns, agentic workflows, AI developer\nCanonical URL: https://www.dailysay.me/en/posts/the-end-of-prompt-engineering\nOpenGraph Title: The End of Prompt Engineering? From Prompt Hacking to Systems Design\nOpenGraph Description: Explore why prompt engineering is shifting from textual hacking to system architecture, state machines, and structured tool loops.\nTwitter Title: The End of Prompt Engineering?\nTwitter Description: Why prompt hacking is dying and systems programming is taking over AI development.\n*/}\n\n{/* \nHERO IMAGE SPECIFICATION\nImage Prompt: \"A minimal, modern graphic showing text strings transforming into physical wireframe logic gates, dark workspace background, soft lighting, 16:9 aspect ratio.\"\ncoverAlt: \"An abstract editorial graphic showing a text terminal prompt evolving into a highly structured, 3D architectural diagram with clean wireframe nodes.\"\n*/}\n\nRemember the gold rush of \"prompt engineering\" in 2023 and 2024? Internet gurus claimed that knowing the exact magic words to feed into an LLM was the most valuable skill of the 21st century. Job boards posted astronomical salaries for specialists who knew when to tell a model to \"take a deep breath,\" \"think step-by-step,\" or \"act as an expert software engineer.\"\n\nIt was a strange, transitional phase in computing history. We were talking to computer chips in natural language, trying to discover hidden behaviors by hacking strings.\n\nBut in mid-2026, the landscape looks entirely different. Prompt hacking as a standalone discipline is dying. As frontier models become smarter, more steering-compliant, and natively integrated into agentic architectures, the focus has shifted. We no longer write long paragraphs of text prompts to coax models into performing complex tasks. Instead, we are building systems. \n\nThe era of the \"prompt writer\" is ending; the era of the **AI systems engineer** has arrived.\n\n---\n\n## The Fragility of Magic Strings\n\nTo understand why this shift occurred, we must look at the fragility of early prompt-based applications. If you built a software feature that relied on a 3,000-character prompt, you quickly realized that prompt engineering was a house of cards:\n\n* **Lack of Determinism**: A prompt that worked perfectly 95% of the time could randomly fail on the 96th run because of the model's probabilistic nature.\n* **Provider Lock-in**: If you optimized a prompt for Claude 3.5 Sonnet, it would often fail when sent to GPT-4o or Gemini 1.5 Pro. Every model had its own subtle quirks in how it interpreted natural language.\n* **Regression on Update**: When providers released a minor update to a model, your prompts would suddenly break because the model’s internal weights had shifted.\n\n```\n+-----------------------------------+\n|  Original Prompt:                 |\n|  \"Write JSON output. Be concise.\" |\n+-----------------------------------+\n                 |\n                 v (Model Version Update)\n+-----------------------------------+\n|  Failed Output:                   |\n|  \"Sure, here is your JSON...\"     |\n|  (Brokes parser with intro text)  |\n+-----------------------------------+\n```\n\nRelying on \"magic strings\" was a terrible way to build stable software. In what other computing environment would a minor infrastructure update randomly break the string formatting of your application endpoints?\n\n---\n\n## The Transition to Structured Systems\n\n{/* \nINLINE IMAGE 1 SPECIFICATION\nImage File Name: \"/images/posts/end-of-prompts/structured-pipelines.webp\"\nImage Prompt: \"A clean architectural flowchart diagram showing a structured multi-step LLM system, minimal flat icons, light turquoise and gray colors, editorial style.\"\nAlt text: \"System architecture showing structured steps: Parse Input, Evaluate Intent, Run Tool Loop, Validate Schema.\"\nCaption: \"Modern AI system design: breaking down monolithic prompts into modular, validated stages.\"\nPosition: after \"The Transition to Structured Systems\"\n*/}\n\nTo solve the fragility of monolithic prompts, developers stopped writing massive instructions and started breaking tasks down into structured pipelines. \n\nInstead of asking a model to \"Read this user support ticket, find their order, analyze their tone, and write a reply in JSON,\" we now build a state machine. The system is split into distinct, single-purpose steps:\n\n1. **Classifier**: A lightweight model classifies the ticket category (outputting a strict enum).\n2. **Data Retriever**: An API query retrieves the user's order details based on the ticket metadata.\n3. **Draft Producer**: A model draft is generated using the retrieved context.\n4. **Validator**: A final code layer ensures the draft contains no hallucinations and matches schema rules.\n\nBy decomposing the problem, we reduce the complexity of the prompts themselves. The prompts on each node are no longer long essays; they are simple, direct instructions. If a step fails, we know exactly which node in the graph caused the failure. We can test, debug, and optimize each step independently.\n\nLet's look at how this is implemented using structured outputs. Rather than asking the model to write JSON and hoping it formats it correctly, we use schema validation to *guarantee* the structure of the output.\n\nHere is a modern TypeScript example using Zod and a structured output client:\n\n```typescript\nimport { z } from \"zod\";\n\n// 1. Define a strict schema for the model's output\nconst TicketAnalysisSchema = z.object({\n  category: z.enum([\"billing\", \"technical\", \"feature_request\", \"general\"]),\n  priority: z.enum([\"low\", \"medium\", \"high\", \"critical\"]),\n  sentiment: z.enum([\"positive\", \"neutral\", \"frustrated\", \"angry\"]),\n  suggestedAction: z.string().describe(\"The next immediate action the team should take\"),\n});\n\ntype TicketAnalysis = z.infer<typeof TicketAnalysisSchema>;\n\n// Example execution function representing a structured node\nasync function analyzeTicket(ticketBody: string): Promise<TicketAnalysis> {\n  // Rather than writing prompt instructions to output JSON format,\n  // we pass the schema directly to the model configuration.\n  const response = await aiClient.chat.completions.create({\n    model: \"gpt-4o-2026-05-10\",\n    messages: [\n      { role: \"system\", content: \"Analyze the customer ticket.\" },\n      { role: \"user\", content: ticketBody }\n    ],\n    response_format: {\n      type: \"json_object\",\n      schema: TicketAnalysisSchema, // Enforced at the API level\n    }\n  });\n\n  return TicketAnalysisSchema.parse(JSON.parse(response.choices[0].message.content));\n}\n```\n\nBy enforcing schema conformance at the API level, the prompt itself becomes trivial. We no longer write paragraphs instructing the model \"Do not include markdown tags, do not start with 'Sure, here is...', output only valid JSON.\" The model's output tokens are forced to match the state machine of the parser.\n\n---\n\n## Actionable Prompt-to-System Guidelines\n\nIf you are still writing long, complex system prompts, it is time to refactor. Use these rules to transition your applications from prompt engineering to system engineering:\n\n* **Deconstruct Complexity**: If your prompt is longer than 500 words, it is doing too many things. Split it into multiple sequential LLM calls or tool loops.\n* **Assert Schemas Everywhere**: Use tools like Zod, Pydantic, or native JSON schemas to validate all structured inputs and outputs between model stages.\n* **Code over Text**: If you can write a task as a simple regex, a database query, or a clean utility function, **do not use an LLM for it**. Keep LLM reasoning focused strictly on semantic analysis and synthesis.\n* **Version Control Prompts**: Treat system instructions like code. Store them in version control (git), run automated regression evaluations on updates, and test them across multiple model endpoints.\n\n---\n\n## Future Outlook: Prompts as Intermediate Representation (IR)\n\n{/* \nINLINE IMAGE 2 SPECIFICATION\nImage File Name: \"/images/posts/end-of-prompts/compiler-analogy.webp\"\nImage Prompt: \"A high-tech digital compiler diagram showing code compiling into structured prompt tokens, minimal vector artwork, deep purple and neon green colors, dark aesthetic.\"\nAlt text: \"Diagram showing prompt instructions generated automatically by compilers and frameworks rather than handwritten.\"\nCaption: \"The compiler analogy: prompts becoming an intermediate compiler target rather than human-written text.\"\nPosition: before \"What changed my perspective\"\n*/}\n\nAs agent frameworks evolve, humans will write fewer prompts. Prompts will become an Intermediate Representation (IR)—a low-level instruction set generated automatically by compilers and frameworks.\n\nSystems like DSPy (Declarative Self-Improving Language Programs) already prove this concept. Instead of writing prompts by hand, you define a program structure (inputs, outputs, and modules) and provide a small set of training examples. The framework then compiles the program, automatically generating, testing, and optimizing the prompts for your specific model using constraint optimization.\n\nIn this future, writing prompts by hand will feel like writing assembly language by hand. It will still be useful for low-level debugging or performance tuning, but most developers will write high-level logic, schemas, and assertions, leaving the instruction compilation to the frameworks.\n\n---\n\n## Internal Links\n* To see how standardized interfaces support modular system architecture, read [MCP Will Become the USB-C of AI Applications](/en/posts/mcp-usb-c-of-ai-applications).\n* For advice on maintaining test coverage and validation during AI-assisted development, review [Principles of Maintaining Code Quality with AI](/en/posts/principles-of-maintaining-code-quality-with-ai).\n* Learn about the practical tools that are reshaping developer experience in [Claude Code vs Cursor: A Builder's Deep Dive](/en/posts/claude-code-vs-cursor).\n\n## External References\n* Explore structured schemas and prompt management on the [OpenAI Developer Blog](https://openai.com/blog).\n* Read about self-improving prompt compilers and research papers on [Stanford NLP Group](https://nlp.stanford.edu/).\n* Review developer patterns for robust agent construction on the [Vercel AI SDK Docs](https://sdk.vercel.ai/).\n\n---\n\n## What changed my perspective\n\nIn 2024, I spent two weeks optimizing a system prompt for a classification feature in our product. I tweaked adjectives, added few-shot examples, and even tried telling the model that \"my job depends on this output.\" The performance hit 92% accuracy, and I felt like a genius.\n\nA month later, the provider updated the model. Our accuracy dropped to 78%, and our JSON parser began throwing syntax errors because the model suddenly added polite introductory text. \n\nThat was the moment I realized prompt engineering was an illusion. I had spent weeks tuning parameters of a chaotic black box rather than building robust software. \n\nWe threw away the monolithic prompt and replaced it with a simple three-step state machine using schema enforcement and strict input parsing. The code grew by a few dozen lines, but the prompt shrank to a single sentence. The accuracy went to 98% and stayed there, even when we updated the model. I realized that **the solution to model instability is never a better prompt; it is a better architecture**.\n"},{"slug":"mcp-usb-c-of-ai-applications","title":"MCP Will Become the USB-C of AI Applications","description":"In the fragmented landscape of LLM integrations, the Model Context Protocol (MCP) is emerging as the unifying open standard that links models to data sources and tools.","topic":"work","tags":["MCP","AI Architecture","LLM Integration","Developer Experience","AI Agents"],"publishedAt":"2026-05-08T09:00:00+09:00","updatedAt":"2026-05-08T09:00:00+09:00","growthStage":"evergreen","version":"1.0","revisions":[{"version":"1.0","date":"2026-05-08","summary":"Introduced MCP as the USB-C of AI application integrations.","changes":["Published MCP architecture overview"]}],"relationships":[{"type":"references","slug":"the-end-of-prompt-engineering"}],"content":"\n{/* \nSEO METADATA\nSEO Title: MCP: The USB-C Standard for AI Applications and Tool Integration\nSEO Description: Explore why Anthropic's Model Context Protocol (MCP) is becoming the industry standard, connecting AI models to filesystems, databases, and enterprise APIs.\nKeywords: Model Context Protocol, MCP, LLM integration, AI architecture, Anthropic MCP, AI tool call, developer experience\nCanonical URL: https://www.dailysay.me/en/posts/mcp-usb-c-of-ai-applications\nOpenGraph Title: MCP: The USB-C Standard for AI Applications and Tool Integration\nOpenGraph Description: Explore why Anthropic's Model Context Protocol (MCP) is becoming the industry standard, connecting AI models to filesystems, databases, and enterprise APIs.\nTwitter Title: MCP: The USB-C Standard for AI Applications\nTwitter Description: How Model Context Protocol (MCP) is standardizing LLM connections to data and tools.\n*/}\n\n{/* \nHERO IMAGE SPECIFICATION\nImage Prompt: \"A minimal, modern editorial illustration of multiple glowing data conduits merging into a single sleek, metallic interface port, clean background, technical styling, premium product feel, 16:9 aspect ratio.\"\ncoverAlt: \"Abstract illustration of multiple diverse data nodes cleanly plugging into a central glowing, circular protocol adapter representing Model Context Protocol.\"\n*/}\n\nFor years, the developer experience of building AI applications has felt like the early days of mobile electronics. Every LLM provider, agent framework, and developer environment came with its own proprietary way of connecting models to data. If you wanted to feed a local directory of source code into Claude, you had to write a script. If you wanted to connect GPT-4o to your Postgres database, you built a custom API connector. If you switched your underlying framework from LangChain to LlamaIndex, you rewrote half your data-loading pipelines. \n\nWe were drowning in custom adapters. We had no standard, unifying port.\n\nThat is why the Model Context Protocol (MCP) is the most critical architectural shift in AI engineering since the introduction of function calling. Originally open-sourced by Anthropic, MCP is rapidly establishing itself as the \"USB-C of AI\"—a clean, open, and bidirectional standard that abstracts how LLMs connect to data sources, filesystems, and tools.\n\nInstead of writing $N \\times M$ integrations between $N$ different models and $M$ different developer environments, MCP enables a clean, plug-and-play architecture where models act as clients that speak to standardized MCP servers.\n\n---\n\n## The Integration Bottleneck in AI Development\n\nBefore we look at the protocol itself, it is worth detailing the problem it solves. In the early wave of building LLM applications, developers encountered a massive hurdle: models are isolated. An LLM on its own has no concept of your code repository, your database schemas, or your team’s Slack history.\n\nTo bridge this gap, we built custom pipelines. We set up RAG (Retrieval-Augmented Generation) systems, constructed API gateways, and defined custom tool sets. But every integration was custom-tailored:\n\n```\n  +--------------+               +-------------+\n  |  AI Model /  | ----(Custom)-->| Postgres DB |\n  |  Framework   |               +-------------+\n  |              |               +-------------+\n  | (LangChain/  | ----(Custom)-->| GitHub API  |\n  |  LlamaIndex) |               +-------------+\n  |              |               +-------------+\n  |              | ----(Custom)-->| Local Files |\n  +--------------+               +-------------+\n```\n\nThis model-centric integration pattern created major issues. First, security was incredibly difficult to audit because every connection was implemented as ad-hoc code. Second, it limited the reuse of tools. If you spent days building a robust Slack connector for a LangChain agent, you couldn't easily port it to a developer tool like Cursor or a terminal editor like Claude Code without rewriting the integration wrapper.\n\nWe needed a separation of concerns. We needed a boundary between *how data is retrieved* and *how the model reasons about it*.\n\n---\n\n## The Core Concept of MCP\n\nModel Context Protocol separates the system into two distinct components:\n1. **MCP Clients**: Development applications, IDEs, or agent environments (like Cursor, VS Code, or Claude Desktop) that require access to tools and data.\n2. **MCP Servers**: Lightweight, modular programs that expose specific data sources or capabilities through the standard protocol.\n\n```mermaid\ngraph LR\n    subgraph Clients [MCP Clients]\n        IDE[VS Code / Cursor]\n        Term[Claude Code CLI]\n        App[Custom Agent App]\n    end\n\n    subgraph Protocol [Model Context Protocol]\n        direction TB\n        JSON[JSON-RPC 2.0 over SSE or Stdpipe]\n    end\n\n    subgraph Servers [MCP Servers]\n        GitSrv[GitHub Server]\n        DbSrv[Postgres Server]\n        FsSrv[Local File Server]\n    end\n\n    Clients --> Protocol\n    Protocol --> Servers\n```\n\nThe communication between the client and the server happens over JSON-RPC 2.0. By using standard input/output (stdio) for local servers and Server-Sent Events (SSE) for remote services, MCP makes it simple to run adapters locally or host them in the cloud.\n\nThe protocol defines three core types of capabilities:\n* **Resources**: Readable data sources. This could be local files, database tables, or API outputs.\n* **Prompts**: Standardized templates that help the model build structured instructions (e.g., a code review prompt).\n* **Tools**: Executable functions that allow the model to make changes in the outside world (e.g., executing a command or writing a file).\n\n---\n\n## Under the Hood: Building a Simple MCP Server\n\n{/* \nINLINE IMAGE 1 SPECIFICATION\nImage File Name: \"/images/posts/mcp-usb-c/mcp-server-schema.webp\"\nImage Prompt: \"A clean, modern software diagram showing the JSON-RPC message flow between an MCP Client and an MCP Server, minimal flat vector style, dark background, blue and teal accents.\"\nAlt text: \"JSON-RPC sequence diagram showing resource list and read requests between MCP Client and local MCP Server.\"\nCaption: \"Communication protocol flow between client and server using JSON-RPC over stdio.\"\nPosition: after \"Under the Hood: Building a Simple MCP Server\"\n*/}\n\nTo understand how simple and elegant this is, let's look at how to implement a basic MCP server in Node.js. Suppose we want to expose our local database table structures so that any AI model running in our editor can understand our schemas without us copy-pasting them.\n\nHere is a simple local MCP server using the official TypeScript SDK:\n\n```typescript\nimport { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport {\n  ListResourcesRequestSchema,\n  ReadResourceRequestSchema,\n} from \"@modelcontextprotocol/sdk/types.js\";\n\n// Initialize the MCP server\nconst server = new Server(\n  {\n    name: \"schema-inspector\",\n    version: \"1.0.0\",\n  },\n  {\n    capabilities: {\n      resources: {},\n    },\n  }\n);\n\n// Define available resources\nconst SCHEMAS = {\n  \"users\": \"CREATE TABLE users (id SERIAL PRIMARY KEY, email VARCHAR(255), created_at TIMESTAMP);\",\n  \"posts\": \"CREATE TABLE posts (id SERIAL PRIMARY KEY, title TEXT, author_id INT REFERENCES users(id));\"\n};\n\n// 1. Register resource list handler\nserver.setRequestHandler(ListResourcesRequestSchema, async () => {\n  return {\n    resources: Object.keys(SCHEMAS).map((name) => ({\n      uri: `db://schema/${name}`,\n      name: `${name} table schema`,\n      mimeType: \"text/plain\",\n      description: `DDL schema statement for the ${name} table`\n    })),\n  };\n});\n\n// 2. Register resource read handler\nserver.setRequestHandler(ReadResourceRequestSchema, async (request) => {\n  const uri = new URL(request.params.uri);\n  const tableName = uri.pathname.split(\"/\").pop();\n\n  if (!tableName || !(tableName in SCHEMAS)) {\n    throw new Error(`Resource not found: ${request.params.uri}`);\n  }\n\n  return {\n    contents: [\n      {\n        uri: request.params.uri,\n        mimeType: \"text/plain\",\n        text: SCHEMAS[tableName as keyof typeof SCHEMAS],\n      },\n    ],\n  };\n});\n\n// Connect to transport\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\nconsole.error(\"Schema Inspector MCP Server running on stdio\");\n```\n\nTo run this server in an editor like Cursor or Claude Desktop, you simply add its command configuration to your client configuration file:\n\n```json\n{\n  \"mcpServers\": {\n    \"schema-inspector\": {\n      \"command\": \"node\",\n      \"args\": [\"/path/to/server.js\"]\n    }\n  }\n}\n```\n\nOnce loaded, the client (e.g. Cursor) automatically asks the server what resources are available. When you write a prompt like \"Help me write a query to join users and posts,\" Cursor reads the resources `db://schema/users` and `db://schema/posts` behind the scenes and injects the DDL schemas directly into the prompt context.\n\n---\n\n## Actionable Integration Strategies\n\nIf you are developing AI agents or building developer tools, you should stop writing custom API clients immediately. Instead, adapt your data layers to MCP. Here are three strategies to start implementing today:\n\n1. **Standardize Internal APIs**: Instead of building internal dashboard APIs for your team’s custom AI tools, wrap those endpoints in an MCP server. This allows any engineer on the team to query databases, trigger builds, or access documentation directly inside their IDE.\n2. **Utilize Community Servers**: Before building a server from scratch, check the growing list of open-source MCP servers. There are already highly optimized servers for GitHub, Slack, Postgres, Jira, Google Maps, and local terminals.\n3. **Decouple Tool Permissions**: By keeping tool execution logic inside the MCP server, you can control access control and write logs at the transport level. An agent cannot access a database unless the server explicitly grants read/write permissions.\n\n---\n\n## Future Outlook: The Universal Interface\n\n{/* \nINLINE IMAGE 2 SPECIFICATION\nImage File Name: \"/images/posts/mcp-usb-c/mcp-future-architecture.webp\"\nImage Prompt: \"A high-tech digital ecosystem diagram showing multiple AI models seamlessly switching between cloud databases, local workspace files, and external APIs via a clean central layer labeled MCP, neon green and purple vector elements, dark premium style.\"\nAlt text: \"Architectural schematic showing MCP as the universal abstraction layer between models and real-world tools.\"\nCaption: \"The future state of AI application architecture: MCP as the unified middleware layer.\"\nPosition: before \"What changed my perspective\"\n*/}\n\nIn the near future, the boundary of what defines an \"application\" will change. Today, we interact with software through graphical user interfaces (GUIs). Tomorrow, AI agents will navigate resources and tools using standard application schemas.\n\nIf every SaaS company, cloud database provider, and local device OS exposes its capabilities via MCP, the complexity of integration drops to near zero. A developer will no longer write API integrations; instead, they will simply spin up the database's official MCP server, and their coding agent will instantly know how to write tables, read schemas, and run migrations.\n\nMCP is not just another API format; it is the universal middleware that will power the era of autonomous software agents.\n\n---\n\n## Internal Links\n* To see how agentic coding environments compare when built on top of standardized protocols, check out [Claude Code vs Cursor: A Builder's Deep Dive](/en/posts/claude-code-vs-cursor).\n* To maintain structural integrity while building these integrations, review [Principles of Maintaining Code Quality with AI](/en/posts/principles-of-maintaining-code-quality-with-ai).\n* For a wider view on how AI workflows are evolving from simple auto-completion to autonomous terminal interactions, read [Beyond Copilots: Why AI Agents Changed My Daily Workflow](/en/posts/ai-agents-workflow-evolution).\n\n## External References\n* Learn more about the open-source announcement from the [Anthropic MCP Blog](https://www.anthropic.com/news/model-context-protocol).\n* Explore the official protocol specification and documentation on the [Model Context Protocol Website](https://modelcontextprotocol.io/).\n* Read about developer tools using standardized architectures on the [Vercel Developer Blog](https://vercel.com/blog).\n\n---\n\n## What changed my perspective\n\nFor a long time, I believed that the future of LLM integrations lay in smarter models. I assumed that as context windows expanded to millions of tokens, we would simply dump all documentation, database dumps, and repository code directly into the model's prompt window. \n\nBut building production agents taught me that context size is not the bottleneck; **noise and access control are**. Dumping raw logs and tables into a prompt degrades reasoning efficiency, raises token costs, and introduces security vulnerabilities. \n\nMCP forced me to realize that LLMs are not databases; they are CPUs. Like traditional microprocessors, they require clean memory caches and strict device drivers. MCP provides those drivers. The moment I connected my editor to a Postgres database via a local MCP server and watched the model reason about the schemas cleanly without lag, I realized we had crossed a point of no return. We finally had our USB-C.\n"},{"slug":"built-slowly-updated-daily","title":"My Way of Logging Life\n","description":"I document work, projects, travel, food, and my thoughts. This blog is a personal project notebook to organize past experiences and mistakes, helping to make the next choices slightly better.\n","topic":"diary","tags":["Life Logging","Project Manager","Retrospective","Personal Blog","Growth Log"],"publishedAt":"Sat Feb 07 2026 00:00:00 GMT+0000 (Coordinated Universal Time)","growthStage":"evergreen","version":"1.0","revisions":[{"version":"1.0","date":"2026-02-07","summary":"Initial publication of the DailySay life-logging manifesto.","changes":["Published personal project notebook framing"]}],"content":"\nMy Way of Logging Life\n\nI work as a Project Manager.\n\nMy job involves organizing schedules, spotting issues, and aligning different opinions to produce a single result. Perhaps because of this, I often find myself thinking in a similar way during my daily life.\n\nI write down what I want to do, and then I execute it. If the results differ from expectations, I look back at the reasons and think about what to change next time. Many days don't go as planned, but through that process, I am gradually building my own standards.\n\nI started this blog to capture those experiences.\n\nI share what I learn while working, the trial and error I go through during projects, and the things I deliberate on while building new services. I also document more personal stories, like places I discover during trips, food that left an impression, and thoughts that came to mind on those days.\n\nEach topic may seem different, but in the end, they are all things I have experienced firsthand.\n\nI don't want to only leave neat success stories. I want to honestly log why plans fell through, the parts that were harder than expected, and choices that seemed like the best at the time but turned out to be regrettable later.\n\nLogging experiences ensures they don't simply fade away.\n\nIt allows me to look back on what decisions I made under which circumstances, and helps me make slightly better judgments when facing similar problems. If my thoughts change over time, that evolution itself becomes another record.\n\nIn the long run, my goal is to run a company I started myself and grow it into a business valued at over $1 million.\n\nIt's still in the beginning stages, and there are many details to define. So rather than just showing a finished outcome, I plan to leave the process of heading toward the goal. I will consistently document what I tried, what went wrong, and what I changed next.\n\nThis blog is not a space for grand success stories.\n\nIt is closer to a personal project notebook to avoid forgetting the things I experienced in work and life. It is enough if it is a record that lets me understand my thoughts and choices when I read it again later.\n\nRather than starting after being perfectly prepared, I plan to record things one by one starting now.\n"}],"projects":[{"slug":"attractive-web-ai","name":"AttractiveWebAI","timeline":"April 2026 - Present","status":"active","techStack":["Next.js","Tailwind CSS","Framer Motion","Gemini Pro API"],"links":{"demo":"https://attractive-web-ai.vercel.app","github":"https://github.com/jayden/AttractiveWebAI"},"gallery":["/images/placeholder-post.jpg"],"relatedPosts":["built-slowly-updated-daily"],"description":"A platform that uses multimodal AI models to convert hand-drawn wireframes and mockups into interactive, modern front-end code instantly.","lessonsLearned":"Integrating multimodal feedback loops requires fine-tuned system prompts and instant rendering sandboxes. Debouncing code generation prevents unnecessary LLM API calls."},{"slug":"dailysay","name":"DailySay","timeline":"January 2026 - May 2026","status":"completed","techStack":["Next.js 15","TypeScript","Supabase","MDX"],"links":{"demo":"https://www.dailysay.me","github":"https://github.com/jayden/GlobalBlog"},"gallery":["/images/placeholder-post.jpg"],"relatedPosts":["built-slowly-updated-daily"],"description":"A clean, minimal, personal knowledge platform and Commonplace Book designed to connect thoughts, projects, travel logs, and milestones.","lessonsLearned":"Static site generation combined with client-side reactive components (like local bookmarks and history tracking) provides the best balance of SEO performance and interactivity."},{"slug":"first-run","name":"FirstRun","timeline":"December 2025","status":"completed","techStack":["React Native","Expo","SQLite","Apple HealthKit"],"links":{"github":"https://github.com/jayden/FirstRun"},"gallery":["/images/placeholder-post.jpg"],"relatedPosts":[],"description":"A hyper-focused mobile running application designed to log daily outdoor runs, track shoe mileage, and sync health telemetry data.","lessonsLearned":"Background GPS tracking drains mobile batteries quickly. Using raw sensors with adaptive location updates solved the battery consumption problem."}],"series":[],"glossary":[{"term":"ai-agent","name":"AI Agent","definition":"An autonomous software entity that perceives its environment through sensors, makes decisions, and executes actions using tools."},{"term":"mcp","name":"MCP","definition":"Model Context Protocol: An open standard created by Anthropic that enables secure integrations between LLMs and external data sources or tools."},{"term":"prompt-engineering","name":"Prompt Engineering","definition":"The practice of structuring, refining, and optimizing textual inputs to instruct generative AI models to produce desired outputs."},{"term":"rag","name":"RAG","definition":"Retrieval-Augmented Generation: A technique to improve LLM accuracy by retrieving relevant documents from an external source before generating a response."},{"term":"shopify","name":"Shopify","definition":"A global commerce platform hosting digital and physical storefronts, supporting localized translations, checkouts, and custom apps."},{"term":"pmbok","name":"PMBOK","definition":"Project Management Body of Knowledge: A collection of processes, best practices, terminologies, and guidelines compiled by the PMI."},{"term":"product-discovery","name":"Product Discovery","definition":"The iterative process of deeply understanding user needs, defining key problems, and validating feature solutions before writing production code."}],"milestones":[{"id":"started-dailysay","date":"2026-01-10","title":"Launched DailySay Project","description":"Initiated development of a personalized commonplace book to sync localized developer insights.","category":"projects"},{"id":"travel-tokyo","date":"2026-04-12","title":"Tokyo Spring Explorations","description":"Spent a week exploring coffee spots, tech hubs, and taking streets photos in Shibuya and Shinjuku.","category":"travel"},{"id":"career-pm","date":"2025-08-01","title":"Joined TechCorp as AI Product Lead","description":"Orchestrated zero-to-one product discoveries, model alignments, and context protocol standardizations.","category":"career"}],"knowledgeGraph":{"nodes":[{"id":"post:building-products-alone-with-ai","label":"How I Build Products Alone with AI: From…","type":"article","url":"/en/posts/building-products-alone-with-ai"},{"id":"category:work","label":"work","type":"category","url":"/en/topics/work"},{"id":"post:principles-of-maintaining-code-quality-with-ai","label":"How to Trust AI-Generated Code: 8 Verifi…","type":"article","url":"/en/posts/principles-of-maintaining-code-quality-with-ai"},{"id":"post:pmp-pass-review-part-2","label":"PMP Pass Review Part 2: Time Management …","type":"article","url":"/en/posts/pmp-pass-review-part-2"},{"id":"post:pmp-pass-review-part-1","label":"PMP Pass Review Part 1: 7-Week Preparati…","type":"article","url":"/en/posts/pmp-pass-review-part-1"},{"id":"post:ai-agents-workflow-evolution","label":"Beyond Copilots: Why AI Agents Changed M…","type":"article","url":"/en/posts/ai-agents-workflow-evolution"},{"id":"post:how-i-built-three-products-faster-with-ai","label":"Speed in the AI Era: How I Built Three P…","type":"article","url":"/en/posts/how-i-built-three-products-faster-with-ai"},{"id":"post:claude-code-vs-cursor","label":"Claude Code vs Cursor: A Builder's Deep …","type":"article","url":"/en/posts/claude-code-vs-cursor"},{"id":"post:every-pm-should-learn-ai-automation","label":"Why Every PM Should Learn AI Automation","type":"article","url":"/en/posts/every-pm-should-learn-ai-automation"},{"id":"post:the-end-of-prompt-engineering","label":"The End of Prompt Engineering?","type":"article","url":"/en/posts/the-end-of-prompt-engineering"},{"id":"post:mcp-usb-c-of-ai-applications","label":"MCP Will Become the USB-C of AI Applicat…","type":"article","url":"/en/posts/mcp-usb-c-of-ai-applications"},{"id":"post:built-slowly-updated-daily","label":"My Way of Logging Life\n","type":"article","url":"/en/posts/built-slowly-updated-daily"},{"id":"category:diary","label":"diary","type":"category","url":"/en/topics/diary"},{"id":"tag:ai product development","label":"#AI product development","type":"tag","url":"/en/tags/ai-product-development"},{"id":"tag:solo developer","label":"#solo developer","type":"tag","url":"/en/tags/solo-developer"},{"id":"tag:mvp","label":"#MVP","type":"tag","url":"/en/tags/mvp"},{"id":"tag:ai coding","label":"#AI coding","type":"tag","url":"/en/tags/ai-coding"},{"id":"tag:product launch","label":"#product launch","type":"tag","url":"/en/tags/product-launch"},{"id":"tag:ai coding principles","label":"#AI coding principles","type":"tag","url":"/en/tags/ai-coding-principles"},{"id":"tag:code quality","label":"#code quality","type":"tag","url":"/en/tags/code-quality"},{"id":"tag:tech debt","label":"#tech debt","type":"tag","url":"/en/tags/tech-debt"},{"id":"tag:qa","label":"#QA","type":"tag","url":"/en/tags/qa"},{"id":"tag:pmp exam review","label":"#PMP Exam Review","type":"tag","url":"/en/tags/pmp-exam-review"},{"id":"tag:pmp time management","label":"#PMP Time Management","type":"tag","url":"/en/tags/pmp-time-management"},{"id":"tag:pearson vue","label":"#Pearson VUE","type":"tag","url":"/en/tags/pearson-vue"},{"id":"tag:pmp prep items","label":"#PMP Prep Items","type":"tag","url":"/en/tags/pmp-prep-items"},{"id":"tag:pmp pass tips","label":"#PMP Pass Tips","type":"tag","url":"/en/tags/pmp-pass-tips"},{"id":"tag:pmp pass review","label":"#PMP Pass Review","type":"tag","url":"/en/tags/pmp-pass-review"},{"id":"tag:pmp study method","label":"#PMP Study Method","type":"tag","url":"/en/tags/pmp-study-method"},{"id":"tag:pmi study hall","label":"#PMI Study Hall","type":"tag","url":"/en/tags/pmi-study-hall"},{"id":"tag:pmp mindset","label":"#PMP Mindset","type":"tag","url":"/en/tags/pmp-mindset"},{"id":"tag:ai agents","label":"#AI Agents","type":"tag","url":"/en/tags/ai-agents"},{"id":"tag:developer experience","label":"#Developer Experience","type":"tag","url":"/en/tags/developer-experience"},{"id":"project:attractive-web-ai","label":"AttractiveWebAI","type":"project","url":"/en/projects/attractive-web-ai"},{"id":"project:dailysay","label":"DailySay","type":"project","url":"/en/projects/dailysay"},{"id":"glossary:ai-agent","label":"AI Agent","type":"glossary","url":"/en/glossary/ai-agent"},{"id":"glossary:mcp","label":"MCP","type":"glossary","url":"/en/glossary/mcp"},{"id":"glossary:prompt-engineering","label":"Prompt Engineering","type":"glossary","url":"/en/glossary/prompt-engineering"},{"id":"glossary:rag","label":"RAG","type":"glossary","url":"/en/glossary/rag"},{"id":"glossary:shopify","label":"Shopify","type":"glossary","url":"/en/glossary/shopify"},{"id":"glossary:pmbok","label":"PMBOK","type":"glossary","url":"/en/glossary/pmbok"}],"links":[{"source":"post:building-products-alone-with-ai","target":"category:work","label":"same-topic"},{"source":"post:building-products-alone-with-ai","target":"post:how-i-built-three-products-faster-with-ai","label":"expands"},{"source":"post:building-products-alone-with-ai","target":"post:every-pm-should-learn-ai-automation","label":"references"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"category:work","label":"same-topic"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"post:building-products-alone-with-ai","label":"expands"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"post:how-i-built-three-products-faster-with-ai","label":"references"},{"source":"post:pmp-pass-review-part-2","target":"category:work","label":"same-topic"},{"source":"post:pmp-pass-review-part-2","target":"post:pmp-pass-review-part-1","label":"continues"},{"source":"post:pmp-pass-review-part-1","target":"category:work","label":"same-topic"},{"source":"post:pmp-pass-review-part-1","target":"post:every-pm-should-learn-ai-automation","label":"references"},{"source":"post:ai-agents-workflow-evolution","target":"category:work","label":"same-topic"},{"source":"post:ai-agents-workflow-evolution","target":"post:the-end-of-prompt-engineering","label":"expands"},{"source":"post:ai-agents-workflow-evolution","target":"post:mcp-usb-c-of-ai-applications","label":"references"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"category:work","label":"same-topic"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"post:principles-of-maintaining-code-quality-with-ai","label":"references"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"post:built-slowly-updated-daily","label":"inspired-by"},{"source":"post:claude-code-vs-cursor","target":"category:work","label":"same-topic"},{"source":"post:claude-code-vs-cursor","target":"post:ai-agents-workflow-evolution","label":"references"},{"source":"post:claude-code-vs-cursor","target":"post:building-products-alone-with-ai","label":"inspired-by"},{"source":"post:every-pm-should-learn-ai-automation","target":"category:work","label":"same-topic"},{"source":"post:every-pm-should-learn-ai-automation","target":"post:pmp-pass-review-part-1","label":"references"},{"source":"post:every-pm-should-learn-ai-automation","target":"post:building-products-alone-with-ai","label":"inspired-by"},{"source":"post:the-end-of-prompt-engineering","target":"category:work","label":"same-topic"},{"source":"post:the-end-of-prompt-engineering","target":"post:mcp-usb-c-of-ai-applications","label":"continues"},{"source":"post:mcp-usb-c-of-ai-applications","target":"category:work","label":"same-topic"},{"source":"post:mcp-usb-c-of-ai-applications","target":"post:the-end-of-prompt-engineering","label":"references"},{"source":"post:built-slowly-updated-daily","target":"category:diary","label":"same-topic"},{"source":"post:building-products-alone-with-ai","target":"tag:ai product development","label":"tagged"},{"source":"post:building-products-alone-with-ai","target":"tag:solo developer","label":"tagged"},{"source":"post:building-products-alone-with-ai","target":"tag:mvp","label":"tagged"},{"source":"post:building-products-alone-with-ai","target":"tag:ai coding","label":"tagged"},{"source":"post:building-products-alone-with-ai","target":"tag:product launch","label":"tagged"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"tag:ai coding principles","label":"tagged"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"tag:code quality","label":"tagged"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"tag:tech debt","label":"tagged"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"tag:solo developer","label":"tagged"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"tag:qa","label":"tagged"},{"source":"post:pmp-pass-review-part-2","target":"tag:pmp exam review","label":"tagged"},{"source":"post:pmp-pass-review-part-2","target":"tag:pmp time management","label":"tagged"},{"source":"post:pmp-pass-review-part-2","target":"tag:pearson vue","label":"tagged"},{"source":"post:pmp-pass-review-part-2","target":"tag:pmp prep items","label":"tagged"},{"source":"post:pmp-pass-review-part-2","target":"tag:pmp pass tips","label":"tagged"},{"source":"post:pmp-pass-review-part-1","target":"tag:pmp pass review","label":"tagged"},{"source":"post:pmp-pass-review-part-1","target":"tag:pmp study method","label":"tagged"},{"source":"post:pmp-pass-review-part-1","target":"tag:pmi study hall","label":"tagged"},{"source":"post:pmp-pass-review-part-1","target":"tag:pmp mindset","label":"tagged"},{"source":"post:ai-agents-workflow-evolution","target":"tag:ai agents","label":"tagged"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"tag:product launch","label":"tagged"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"tag:mvp","label":"tagged"},{"source":"post:claude-code-vs-cursor","target":"tag:developer experience","label":"tagged"},{"source":"post:mcp-usb-c-of-ai-applications","target":"tag:developer experience","label":"tagged"},{"source":"post:mcp-usb-c-of-ai-applications","target":"tag:ai agents","label":"tagged"},{"source":"post:built-slowly-updated-daily","target":"project:attractive-web-ai","label":"built with"},{"source":"post:built-slowly-updated-daily","target":"project:dailysay","label":"built with"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"glossary:ai-agent","label":"defines"},{"source":"post:ai-agents-workflow-evolution","target":"glossary:ai-agent","label":"defines"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"glossary:ai-agent","label":"defines"},{"source":"post:claude-code-vs-cursor","target":"glossary:ai-agent","label":"defines"},{"source":"post:every-pm-should-learn-ai-automation","target":"glossary:ai-agent","label":"defines"},{"source":"post:mcp-usb-c-of-ai-applications","target":"glossary:ai-agent","label":"defines"},{"source":"post:ai-agents-workflow-evolution","target":"glossary:mcp","label":"defines"},{"source":"post:how-i-built-three-products-faster-with-ai","target":"glossary:mcp","label":"defines"},{"source":"post:claude-code-vs-cursor","target":"glossary:mcp","label":"defines"},{"source":"post:every-pm-should-learn-ai-automation","target":"glossary:mcp","label":"defines"},{"source":"post:the-end-of-prompt-engineering","target":"glossary:mcp","label":"defines"},{"source":"post:mcp-usb-c-of-ai-applications","target":"glossary:mcp","label":"defines"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"glossary:prompt-engineering","label":"defines"},{"source":"post:claude-code-vs-cursor","target":"glossary:prompt-engineering","label":"defines"},{"source":"post:every-pm-should-learn-ai-automation","target":"glossary:prompt-engineering","label":"defines"},{"source":"post:the-end-of-prompt-engineering","target":"glossary:prompt-engineering","label":"defines"},{"source":"post:mcp-usb-c-of-ai-applications","target":"glossary:prompt-engineering","label":"defines"},{"source":"post:building-products-alone-with-ai","target":"glossary:rag","label":"defines"},{"source":"post:pmp-pass-review-part-2","target":"glossary:rag","label":"defines"},{"source":"post:pmp-pass-review-part-1","target":"glossary:rag","label":"defines"},{"source":"post:ai-agents-workflow-evolution","target":"glossary:rag","label":"defines"},{"source":"post:claude-code-vs-cursor","target":"glossary:rag","label":"defines"},{"source":"post:every-pm-should-learn-ai-automation","target":"glossary:rag","label":"defines"},{"source":"post:the-end-of-prompt-engineering","target":"glossary:rag","label":"defines"},{"source":"post:mcp-usb-c-of-ai-applications","target":"glossary:rag","label":"defines"},{"source":"post:principles-of-maintaining-code-quality-with-ai","target":"glossary:shopify","label":"defines"},{"source":"post:pmp-pass-review-part-1","target":"glossary:pmbok","label":"defines"}]},"memoryTimeline":[{"id":"post-built-slowly-updated-daily","date":"Sat Feb 07","year":2001,"month":2,"week":"2001-W06","kind":"article","title":"My Way of Logging Life\n","description":"I document work, projects, travel, food, and my thoughts. This blog is a personal project notebook to organize past experiences and mistakes, helping to make the next choices slightly better.\n","url":"/en/posts/built-slowly-updated-daily","slug":"built-slowly-updated-daily"},{"id":"post-building-products-alone-with-ai","date":"2026-07-15","year":2026,"month":7,"week":"2026-W29","kind":"article","title":"How I Build Products Alone with AI: From Idea to Launch","description":"A practical process for using AI across research, planning, development, testing, and launch while keeping product judgment and responsibility human.","url":"/en/posts/building-products-alone-with-ai","slug":"building-products-alone-with-ai"},{"id":"post-principles-of-maintaining-code-quality-with-ai","date":"2026-07-13","year":2026,"month":7,"week":"2026-W29","kind":"article","title":"How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders","description":"Facing hidden mocks, duplicate components, and silent database drops while building AttractiveWebAI and Shopify apps. Here are 8 hands-on verification principles for AI coding.","url":"/en/posts/principles-of-maintaining-code-quality-with-ai","slug":"principles-of-maintaining-code-quality-with-ai"},{"id":"post-pmp-pass-review-part-2","date":"2026-07-05","year":2026,"month":7,"week":"2026-W28","kind":"article","title":"PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing","description":"Sharing the actual experience of taking the PMP exam at the Pearson VUE center, managing the first 60 questions, taking 10-minute breaks, reviewing error logs right before the exam, and what to prepare.","url":"/en/posts/pmp-pass-review-part-2","slug":"pmp-pass-review-part-2"},{"id":"post-pmp-pass-review-part-1","date":"2026-07-03","year":2026,"month":7,"week":"2026-W27","kind":"article","title":"PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS","description":"A summary of the 7-week study process for passing the PMP exam on July 3, 2026, using online lectures, PMI Study Hall, error logs, GPT, and NotebookLM.","url":"/en/posts/pmp-pass-review-part-1","slug":"pmp-pass-review-part-1"},{"id":"post-ai-agents-workflow-evolution","date":"2026-06-29","year":2026,"month":6,"week":"2026-W27","kind":"article","title":"Beyond Copilots: Why AI Agents Changed My Daily Workflow","description":"Smarter autocomplete was only the beginning. The shift to autonomous terminal-based AI agents has changed how I build, debug, and ship software.","url":"/en/posts/ai-agents-workflow-evolution","slug":"ai-agents-workflow-evolution"},{"id":"post-how-i-built-three-products-faster-with-ai","date":"2026-06-18","year":2026,"month":6,"week":"2026-W25","kind":"article","title":"Speed in the AI Era: How I Built Three Products in Weeks","description":"In the past, launching a software product took months of engineering. Here is how I designed, built, and shipped three digital products in weeks using AI.","url":"/en/posts/how-i-built-three-products-faster-with-ai","slug":"how-i-built-three-products-faster-with-ai"},{"id":"post-claude-code-vs-cursor","date":"2026-06-06","year":2026,"month":6,"week":"2026-W23","kind":"article","title":"Claude Code vs Cursor: A Builder's Deep Dive","description":"Having spent months building real software with both, here is a detailed breakdown of terminal-native Claude Code versus IDE-native Cursor.","url":"/en/posts/claude-code-vs-cursor","slug":"claude-code-vs-cursor"},{"id":"post-every-pm-should-learn-ai-automation","date":"2026-05-27","year":2026,"month":5,"week":"2026-W22","kind":"article","title":"Why Every PM Should Learn AI Automation","description":"Product management is notorious for coordination overhead. By building lightweight AI automation pipelines, PMs can reclaim focus and build better products.","url":"/en/posts/every-pm-should-learn-ai-automation","slug":"every-pm-should-learn-ai-automation"},{"id":"post-the-end-of-prompt-engineering","date":"2026-05-15","year":2026,"month":5,"week":"2026-W20","kind":"article","title":"The End of Prompt Engineering?","description":"As models become more robust and developers transition to agentic workflows, the era of prompt hacking is ending. The future belongs to systems engineering.","url":"/en/posts/the-end-of-prompt-engineering","slug":"the-end-of-prompt-engineering"},{"id":"post-mcp-usb-c-of-ai-applications","date":"2026-05-08","year":2026,"month":5,"week":"2026-W19","kind":"article","title":"MCP Will Become the USB-C of AI Applications","description":"In the fragmented landscape of LLM integrations, the Model Context Protocol (MCP) is emerging as the unifying open standard that links models to data sources and tools.","url":"/en/posts/mcp-usb-c-of-ai-applications","slug":"mcp-usb-c-of-ai-applications"},{"id":"milestone-travel-tokyo","date":"2026-04-12","year":2026,"month":4,"week":"2026-W16","kind":"travel","title":"Tokyo Spring Explorations","description":"Spent a week exploring coffee spots, tech hubs, and taking streets photos in Shibuya and Shinjuku."},{"id":"milestone-started-dailysay","date":"2026-01-10","year":2026,"month":1,"week":"2026-W02","kind":"project","title":"Launched DailySay Project","description":"Initiated development of a personalized commonplace book to sync localized developer insights.","url":"/en/projects/started-dailysay"},{"id":"project-attractive-web-ai","date":"2026-01-01","year":2026,"month":1,"week":"2026-W01","kind":"project","title":"AttractiveWebAI","description":"A platform that uses multimodal AI models to convert hand-drawn wireframes and mockups into interactive, modern front-end code instantly.","url":"/en/projects/attractive-web-ai","slug":"attractive-web-ai"},{"id":"project-dailysay","date":"2026-01-01","year":2026,"month":1,"week":"2026-W01","kind":"project","title":"DailySay","description":"A clean, minimal, personal knowledge platform and Commonplace Book designed to connect thoughts, projects, travel logs, and milestones.","url":"/en/projects/dailysay","slug":"dailysay"},{"id":"project-first-run","date":"2026-01-01","year":2026,"month":1,"week":"2026-W01","kind":"project","title":"FirstRun","description":"A hyper-focused mobile running application designed to log daily outdoor runs, track shoe mileage, and sync health telemetry data.","url":"/en/projects/first-run","slug":"first-run"},{"id":"milestone-career-pm","date":"2025-08-01","year":2025,"month":8,"week":"2025-W31","kind":"career","title":"Joined TechCorp as AI Product Lead","description":"Orchestrated zero-to-one product discoveries, model alignments, and context protocol standardizations."}],"philosophy":[{"slug":"ai","title":"AI","belief":"AI is leverage for systems thinking—not a substitute for judgment.","evolution":[{"year":2024,"statement":{"en":"Prompt craft felt like the whole game.","ko":"프롬프트 솜씨가 전부처럼 느껴졌다.","es":"El arte del prompt parecía el juego completo."}},{"year":2025,"statement":{"en":"Agents and workflows matter more than single prompts.","ko":"단일 프롬프트보다 에이전트와 워크플로가 중요하다.","es":"Los agentes y flujos importan más que un solo prompt."}},{"year":2026,"statement":{"en":"Maintainable AI systems beat clever one-offs.","ko":"유지 가능한 AI 시스템이 영리한 일회성보다 낫다.","es":"Los sistemas de IA mantenibles vencen a los trucos ingeniosos."}}],"articles":["the-end-of-prompt-engineering","mcp-usb-c-of-ai-applications","ai-agents-workflow-evolution","building-products-alone-with-ai","principles-of-maintaining-code-quality-with-ai","claude-code-vs-cursor"]},{"slug":"projects","title":"Projects","belief":"Ship small, learn in public, keep the system alive.","evolution":[{"year":2024,"statement":{"en":"Side projects were experiments.","ko":"사이드 프로젝트는 실험이었다.","es":"Los side projects eran experimentos."}},{"year":2025,"statement":{"en":"Products need discovery discipline.","ko":"제품에는 디스커버리 규율이 필요하다.","es":"Los productos necesitan disciplina de discovery."}},{"year":2026,"statement":{"en":"A personal knowledge system is itself a lifelong project.","ko":"개인 지식 시스템 자체가 평생 프로젝트다.","es":"Un sistema de conocimiento personal es un proyecto de por vida."}}],"articles":["how-i-built-three-products-faster-with-ai","building-products-alone-with-ai","built-slowly-updated-daily","ai-agents-workflow-evolution","every-pm-should-learn-ai-automation"]},{"slug":"life","title":"Life","belief":"Travel and quiet days sharpen how I build.","evolution":[{"year":2024,"statement":{"en":"Work and life felt separate lanes.","ko":"일과 삶이 분리된 차선처럼 느껴졌다.","es":"Trabajo y vida parecían carriles separados."}},{"year":2026,"statement":{"en":"Context from places belongs in the knowledge garden.","ko":"장소에서 얻은 맥락은 지식 정원에 속한다.","es":"El contexto de los lugares pertenece al jardín del conocimiento."}}],"articles":["built-slowly-updated-daily"]},{"slug":"learning","title":"Learning","belief":"Write to remember; revise to understand.","evolution":[{"year":2024,"statement":{"en":"Consume more, ship less.","ko":"더 많이 소비하고 덜 출시했다.","es":"Consumir más, publicar menos."}},{"year":2025,"statement":{"en":"Structured study (PMP) taught deliberate practice.","ko":"구조화된 학습(PMP)이 의도적 연습을 가르쳤다.","es":"El estudio estructurado (PMP) enseñó práctica deliberada."}},{"year":2026,"statement":{"en":"A digital garden compounds learning across years.","ko":"디지털 정원은 수년에 걸쳐 학습을 복리로 쌓는다.","es":"Un jardín digital acumula aprendizaje a lo largo de los años."}}],"articles":["pmp-pass-review-part-1","pmp-pass-review-part-2","every-pm-should-learn-ai-automation"]},{"slug":"career","title":"Career","belief":"PM craft is connecting discovery, delivery, and systems.","evolution":[{"year":2025,"statement":{"en":"Exam credentials proved baseline discipline.","ko":"시험 자격은 기본 규율을 증명했다.","es":"Las credenciales de examen probaron disciplina base."}},{"year":2026,"statement":{"en":"AI-native PM is the next operating system for product work.","ko":"AI 네이티브 PM이 제품 업무의 다음 OS다.","es":"El PM nativo de IA es el próximo sistema operativo del producto."}}],"articles":["pmp-pass-review-part-1","pmp-pass-review-part-2","every-pm-should-learn-ai-automation","built-slowly-updated-daily"]},{"slug":"travel","title":"Travel","belief":"Places change the questions I ask of products.","evolution":[{"year":2026,"statement":{"en":"Tokyo workation notes belong beside engineering essays.","ko":"도쿄 워케이션 노트는 엔지니어링 에세이 옆에 속한다.","es":"Las notas de workation en Tokio pertenecen junto a ensayos de ingeniería."}}],"articles":[]}],"thinkingEvolution":[{"slug":"prompt-to-systems","title":{"en":"From prompts to systems","ko":"프롬프트에서 시스템으로","es":"De prompts a sistemas"},"topic":"ai","stages":[{"year":2024,"label":{"en":"2024","ko":"2024","es":"2024"},"thought":{"en":"Better prompts would unlock better products.","ko":"더 나은 프롬프트가 더 나은 제품을 열 것이라 생각했다.","es":"Mejores prompts desbloquearían mejores productos."},"relatedPosts":[],"posts":[]},{"year":2025,"label":{"en":"2025","ko":"2025","es":"2025"},"thought":{"en":"Agents and tool protocols matter more than clever wording.","ko":"영리한 문장보다 에이전트와 도구 프로토콜이 중요하다.","es":"Los agentes y protocolos de herramientas importan más que la redacción ingeniosa."},"reason":{"en":"Building real workflows showed prompt-only thinking hit a ceiling.","ko":"실제 워크플로를 만들며 프롬프트만으로는 한계가 보였다.","es":"Construir flujos reales mostró el techo del pensamiento solo-prompt."},"relatedPosts":["mcp-usb-c-of-ai-applications","ai-agents-workflow-evolution"],"posts":[{"slug":"mcp-usb-c-of-ai-applications","title":"MCP Will Become the USB-C of AI Applications"},{"slug":"ai-agents-workflow-evolution","title":"Beyond Copilots: Why AI Agents Changed My Daily Workflow"}]},{"year":2026,"label":{"en":"2026 → Current","ko":"2026 → 현재","es":"2026 → Actual"},"thought":{"en":"The end of prompt engineering is the start of maintainable AI architecture.","ko":"프롬프트 엔지니어링의 끝은 유지 가능한 AI 아키텍처의 시작이다.","es":"El fin del prompt engineering es el inicio de una arquitectura de IA mantenible."},"reason":{"en":"Shipping alone with AI made quality gates and systems the real craft.","ko":"혼자 AI로 출시하며 품질 게이트와 시스템이 진짜 기술임을 알았다.","es":"Publicar solo con IA hizo de las puertas de calidad y los sistemas el verdadero oficio."},"relatedPosts":["the-end-of-prompt-engineering","principles-of-maintaining-code-quality-with-ai","building-products-alone-with-ai"],"posts":[{"slug":"the-end-of-prompt-engineering","title":"The End of Prompt Engineering?"},{"slug":"principles-of-maintaining-code-quality-with-ai","title":"How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders"},{"slug":"building-products-alone-with-ai","title":"How I Build Products Alone with AI: From Idea to Launch"}]}]},{"slug":"pm-and-ai","title":{"en":"PM craft meets AI automation","ko":"PM 역량과 AI 자동화","es":"Oficio de PM y automatización con IA"},"topic":"career","stages":[{"year":2025,"label":{"en":"2025","ko":"2025","es":"2025"},"thought":{"en":"PMP discipline is about process rigor and exam readiness.","ko":"PMP 규율은 프로세스 엄격함과 시험 준비다.","es":"La disciplina PMP es rigor de proceso y preparación para el examen."},"relatedPosts":["pmp-pass-review-part-1","pmp-pass-review-part-2"],"posts":[{"slug":"pmp-pass-review-part-1","title":"PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS"},{"slug":"pmp-pass-review-part-2","title":"PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing"}]},{"year":2026,"label":{"en":"2026 → Current","ko":"2026 → 현재","es":"2026 → Actual"},"thought":{"en":"Every PM should learn AI automation to multiply discovery and delivery.","ko":"모든 PM은 디스커버리와 딜리버리를 증폭하기 위해 AI 자동화를 배워야 한다.","es":"Todo PM debería aprender automatización con IA para multiplicar discovery y delivery."},"reason":{"en":"Credential study gave structure; AI tools gave leverage on real product work.","ko":"자격 학습이 구조를 주고, AI 도구가 실제 제품 업무에 레버리지를 주었다.","es":"El estudio de credenciales dio estructura; las herramientas de IA dieron apalancamiento."},"relatedPosts":["every-pm-should-learn-ai-automation"],"posts":[{"slug":"every-pm-should-learn-ai-automation","title":"Why Every PM Should Learn AI Automation"}]}]},{"slug":"solo-building","title":{"en":"Building alone with AI","ko":"AI와 혼자 만들기","es":"Construir solo con IA"},"topic":"projects","stages":[{"year":2025,"label":{"en":"2025","ko":"2025","es":"2025"},"thought":{"en":"Speed of generation is the main advantage.","ko":"생성 속도가 핵심 이점이다.","es":"La velocidad de generación es la ventaja principal."},"relatedPosts":["how-i-built-three-products-faster-with-ai"],"posts":[{"slug":"how-i-built-three-products-faster-with-ai","title":"Speed in the AI Era: How I Built Three Products in Weeks"}]},{"year":2026,"label":{"en":"2026 → Current","ko":"2026 → 현재","es":"2026 → Actual"},"thought":{"en":"Speed without memory is noise—DailySay exists so work compounds.","ko":"기억 없는 속도는 소음이다—DailySay는 일이 복리로 쌓이게 하려고 존재한다.","es":"La velocidad sin memoria es ruido—DailySay existe para que el trabajo se acumule."},"reason":{"en":"Three fast products taught that continuity and revision beat one-shot shipping.","ko":"세 개의 빠른 제품이 연속성과 개정이 일회성 출시보다 낫다는 것을 가르쳤다.","es":"Tres productos rápidos enseñaron que continuidad y revisión vencen al envío de un solo tiro."},"relatedPosts":["built-slowly-updated-daily","building-products-alone-with-ai"],"posts":[{"slug":"built-slowly-updated-daily","title":"My Way of Logging Life\n"},{"slug":"building-products-alone-with-ai","title":"How I Build Products Alone with AI: From Idea to Launch"}]}]}],"knowledgeHealth":{"overallScore":88,"articles":[{"slug":"built-slowly-updated-daily","title":"My Way of Logging Life\n","score":72,"freshness":56,"completeness":100,"references":0,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":75,"issues":[]},{"slug":"the-end-of-prompt-engineering","title":"The End of Prompt Engineering?","score":86,"freshness":82,"completeness":100,"references":55,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":75,"issues":[]},{"slug":"mcp-usb-c-of-ai-applications","title":"MCP Will Become the USB-C of AI Applications","score":86,"freshness":80,"completeness":100,"references":55,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":75,"issues":[]},{"slug":"principles-of-maintaining-code-quality-with-ai","title":"How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders","score":88,"freshness":98,"completeness":100,"references":50,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":60,"issues":[]},{"slug":"pmp-pass-review-part-2","title":"PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing","score":90,"freshness":96,"completeness":100,"references":55,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":75,"issues":[]},{"slug":"pmp-pass-review-part-1","title":"PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS","score":90,"freshness":96,"completeness":100,"references":55,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":75,"issues":[]},{"slug":"claude-code-vs-cursor","title":"Claude Code vs Cursor: A Builder's Deep Dive","score":90,"freshness":88,"completeness":100,"references":80,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":60,"issues":[]},{"slug":"every-pm-should-learn-ai-automation","title":"Why Every PM Should Learn AI Automation","score":90,"freshness":86,"completeness":100,"references":80,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":60,"issues":[]},{"slug":"how-i-built-three-products-faster-with-ai","title":"Speed in the AI Era: How I Built Three Products in Weeks","score":91,"freshness":92,"completeness":100,"references":80,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":60,"issues":[]},{"slug":"ai-agents-workflow-evolution","title":"Beyond Copilots: Why AI Agents Changed My Daily Workflow","score":92,"freshness":95,"completeness":100,"references":80,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":60,"issues":[]},{"slug":"building-products-alone-with-ai","title":"How I Build Products Alone with AI: From Idea to Launch","score":93,"freshness":99,"completeness":100,"references":80,"brokenLinks":0,"missingImages":false,"outdatedTechnology":false,"confidence":60,"issues":[]}],"generatedAt":"2026-07-18T19:17:32.614Z"},"monthlyReflection":{"month":"2026-07","whatChanged":["Published or updated: How I Build Products Alone with AI: From Idea to Launch","Published or updated: How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders","Published or updated: PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing","Published or updated: PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS"],"whatLearned":["Recurring focus: solo developer","Recurring focus: MVP","Recurring focus: AI Agents","Captured in writing: How I Build Products Alone with AI: From Idea to Launch","Captured in writing: How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders","Captured in writing: PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing"],"whatObsolete":["No strong obsolescence signals this month."],"whatShouldUpdate":["Core articles look relatively fresh."],"suggestedRevisions":[],"postsThisMonth":[{"slug":"building-products-alone-with-ai","title":"How I Build Products Alone with AI: From Idea to Launch"},{"slug":"principles-of-maintaining-code-quality-with-ai","title":"How to Trust AI-Generated Code: 8 Verification Rules for Solo Builders"},{"slug":"pmp-pass-review-part-2","title":"PMP Pass Review Part 2: Time Management on Exam Day and Final Tips for Passing"},{"slug":"pmp-pass-review-part-1","title":"PMP Pass Review Part 1: 7-Week Preparation and Journey from 60s in Study Hall to PASS"}]},"insights":{"totalPosts":11,"postsThisMonth":4,"topTopics":[{"topic":"work","count":10},{"topic":"diary","count":1}],"topTags":[{"tag":"solo developer","count":2},{"tag":"MVP","count":2},{"tag":"AI Agents","count":2},{"tag":"Developer Experience","count":2},{"tag":"AI product development","count":1},{"tag":"AI coding","count":1},{"tag":"product launch","count":1},{"tag":"AI coding principles","count":1}],"knowledgeGaps":["travel","food","projects"],"mostConnectedSlug":"building-products-alone-with-ai","mostConnectedTitle":"How I Build Products Alone with AI: From Idea to Launch","fastestGrowingTopic":"work","writingTrend":[{"month":"2026-02","count":1},{"month":"2026-05","count":3},{"month":"2026-06","count":3},{"month":"2026-07","count":4}]},"reading":[{"id":"attention-paper","type":"paper","title":"Attention Is All You Need","author":"Vaswani et al. (Google Brain)","progress":100,"finished":true,"coverImage":"/images/placeholder-post.jpg","favoriteQuotes":{"en":["\"The dominant sequence transduction models are based on complex recurrent or convolutional neural networks...\""],"ko":["\"주요 시퀀스 변환 모델들은 복잡한 순환 신경망이나 컨볼루션 신경망을 기반으로 하고 있습니다...\""],"es":["\"Los modelos de transducción de secuencia dominantes se basan en redes neuronales recurrentes o convolucionales complejas...\""]},"notes":{"en":"The seminal paper that introduced the Transformer architecture, replacing RNNs and CNNs with self-attention mechanisms.","ko":"RNN과 CNN을 완전히 자체 주의(self-attention) 메커니즘으로 대체하며 트랜스포머 아키텍처의 포문을 연 기념비적인 논문입니다.","es":"El artículo fundamental que introdujo la arquitectura Transformer."}},{"id":"clean-architecture-book","type":"book","title":"Clean Architecture","author":"Robert C. Martin (Uncle Bob)","progress":85,"finished":false,"coverImage":"/images/placeholder-post.jpg","favoriteQuotes":{"en":["\"The only way to go fast, is to go well.\""],"ko":["\"빨리 가는 유일한 방법은 제대로 가는 것이다.\""],"es":["\"La única forma de ir rápido es ir bien.\""]},"notes":{"en":"A deep dive into software design principles, component boundaries, and decoupling strategies to maintain codebases over years.","ko":"소프트웨어 설계 원칙, 컴포넌트 경계 설계, 수년에 걸쳐 코드를 우아하게 유지하기 위한 디커플링 전략을 설명합니다.","es":"Una inmersión profunda en los principios de diseño de software y límites de componentes."}},{"id":"lex-fridman-podcast","type":"podcast","title":"Lex Fridman Podcast: Andrej Karpathy","author":"Lex Fridman","progress":100,"finished":true,"coverImage":"/images/placeholder-post.jpg","notes":{"en":"An insightful discussion on building software 2.0, the training dynamics of large neural networks, and the future of Tesla Autopilot.","ko":"소프트웨어 2.0 패러다임, 신경망 학습 역학, 테슬라 오토파일럿의 진화 방향성에 관한 심도 깊은 인터뷰입니다.","es":"Una discusión perspicaz sobre la construcción de software 2.0 y el entrenamiento de redes neuronales."}}]}