<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: UC Jung</title>
    <description>The latest articles on DEV Community by UC Jung (@ucjung).</description>
    <link>https://dev.to/ucjung</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3834096%2Fd0a7202c-d50b-443a-a42b-8467106cd2d4.jpg</url>
      <title>DEV Community: UC Jung</title>
      <link>https://dev.to/ucjung</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ucjung"/>
    <language>en</language>
    <item>
      <title>Chapter 7. Context Management and Token Optimization</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Mon, 06 Apr 2026 12:15:32 +0000</pubDate>
      <link>https://dev.to/ucjung/chapter-7-context-management-and-token-optimization-224c</link>
      <guid>https://dev.to/ucjung/chapter-7-context-management-and-token-optimization-224c</guid>
      <description>&lt;h2&gt;
  
  
  2.1 Why an AI Agent Produces Inconsistent Quality
&lt;/h2&gt;

&lt;p&gt;Even when you give the same AI Agent instructions of the same caliber, you sometimes get excellent results and sometimes get something way off. This isn't because the AI Agent's capabilities are inconsistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are two causes.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ① It performs exploratory browsing on its own
&lt;/h3&gt;

&lt;p&gt;When an AI Agent receives an instruction, it carries out &lt;strong&gt;exploratory browsing&lt;/strong&gt; before executing. It decides on its own which files to read, which code to reference, and what structure to assume as its starting point.&lt;/p&gt;

&lt;p&gt;The problem is that this exploration happens in &lt;strong&gt;areas not specified by the instruction&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Same instruction, different exploration outcomes]

&amp;gt; "Implement the authentication API"

[Session A — exploration went well]
  → reads src/auth/ folder first
  → discovers existing auth patterns
  → generates code consistent with existing patterns
  → Result: excellent

[Session B — exploration went off track]
  → reads src/users/ folder first
  → loads code unrelated to authentication into the context
  → generates code on top of the wrong premises
  → Result: not what was intended
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ② The same instruction is interpreted differently depending on context
&lt;/h3&gt;

&lt;p&gt;An AI Agent interprets the same instruction differently depending on what is in the context window at that moment. Previous conversation content, files that were read in, results retrieved via MCP — all of it influences how the next instruction is interpreted.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Inconsistent output quality is not due to variation in the AI Agent's ability — it's due to variation in the context from session to session.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2.2 Context Determines Output Quality
&lt;/h2&gt;

&lt;p&gt;Every judgment an AI Agent makes is shaped by &lt;strong&gt;the accumulated context within that session&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│              Context Window (200K tokens)               │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  System prompt + tool descriptions    ← fixed area      │
│  CLAUDE.md guidelines                 ← loaded at       │
│                                         session start   │
│  MCP tool descriptions                ← scales with     │
│                                         active servers  │
│  ─────────────────────────────                          │
│  Files the AI Agent has read          ← exploration     │
│                                         results         │
│  Previous conversation content        ← grows as        │
│                                         conversation    │
│                                         accumulates     │
│  Tool execution results               ← command output  │
│  ─────────────────────────────                          │
│  ▼ The next instruction is interpreted and executed     │
│    based on all of this context ▼                       │
│                                                         │
└─────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key insight: &lt;strong&gt;what content occupies how much of the context&lt;/strong&gt; is what drives the AI Agent's next judgment.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context state&lt;/th&gt;
&lt;th&gt;AI Agent's judgment&lt;/th&gt;
&lt;th&gt;Output quality&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Relevant files loaded precisely&lt;/td&gt;
&lt;td&gt;Evidence-based judgment&lt;/td&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Large volume of irrelevant files loaded&lt;/td&gt;
&lt;td&gt;Judgment driven by noise&lt;/td&gt;
&lt;td&gt;Unstable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Conversation grown long, guidelines pushed out&lt;/td&gt;
&lt;td&gt;Judgment based on recent conversation&lt;/td&gt;
&lt;td&gt;Gradually declining&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Previous failed attempts accumulated&lt;/td&gt;
&lt;td&gt;Stuck in failure patterns&lt;/td&gt;
&lt;td&gt;Vicious cycle&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2.3 Narrow the AI Agent's Range of Judgment
&lt;/h2&gt;

&lt;p&gt;In Advanced Ch. 1, we covered &lt;strong&gt;clear instructions (the 7 elements)&lt;/strong&gt;. That was about narrowing down "what to do."&lt;/p&gt;

&lt;p&gt;Here, we go one step further. &lt;strong&gt;You also need to narrow down "the range of judgment about how to execute."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When an AI Agent receives an instruction, it internally makes two kinds of judgments:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[User instruction]
&amp;gt; Implement the user authentication API

[AI Agent's internal judgment]

  Judgment 1: "What do I do?" (What)
    → Inferred from the user instruction — implement the auth API

  Judgment 2: "How do I execute?" (How to execute)
    → Which files should I read first?
    → Should I explore for existing code patterns?
    → Which libraries should I reference?
    → How should I structure the tests?
    → ← This is the realm of discretionary exploration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The instruction method from Advanced Ch. 1 narrows &lt;strong&gt;Judgment 1&lt;/strong&gt;; what this chapter covers is narrowing &lt;strong&gt;Judgment 2&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ways to narrow Judgment 2:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Specify the role&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Define precisely what role the AI Agent should play&lt;/td&gt;
&lt;td&gt;"Implement this as a senior backend developer"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Specify reference files&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Designate what to look at, blocking arbitrary exploration&lt;/td&gt;
&lt;td&gt;"Follow the patterns in src/auth/auth.service.ts"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Specify the procedure&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Define the execution order directly&lt;/td&gt;
&lt;td&gt;"1) Confirm schema → 2) Implement service → 3) Write tests"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Provide decision criteria&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Give the principle for ambiguous situations&lt;/td&gt;
&lt;td&gt;"If you're not sure, ask before executing"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2.4 People Can't Specify Everything
&lt;/h2&gt;

&lt;p&gt;Here we hit a practical limit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It isn't feasible for a person to include every reference file, every execution step, and every decision criterion in every instruction.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Ideal but unrealistic instruction]
&amp;gt; Implement the user authentication API.
&amp;gt; - Follow the patterns in src/auth/auth.service.ts
&amp;gt; - Use the custom decorators in src/common/decorators/
&amp;gt; - Reference the User model in prisma/schema.prisma
&amp;gt; - Follow the response format in docs/api-convention.md
&amp;gt; - Reference the test patterns in tests/auth/
&amp;gt; - ...

→ Only possible if the person has memorized every file relationship in the project
→ Becomes impossible as the project grows
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you can't write instructions like that every time, you need to &lt;strong&gt;create a structure where the AI Agent can find the right files on its own&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That structure is the &lt;strong&gt;output index&lt;/strong&gt; and the &lt;strong&gt;task-type reference guide&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  2.5 The Output Index — Build a Map of Your Project
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What is an output index?
&lt;/h3&gt;

&lt;p&gt;It's a document that &lt;strong&gt;catalogs the structure and entry points of key output files&lt;/strong&gt; in your project. It serves as a map when the AI Agent needs to judge "which file should I read first?"&lt;/p&gt;

&lt;p&gt;It's the same reason the first thing a person looks for when joining a new project is a "project structure document." With this map, an AI Agent navigates with &lt;strong&gt;purpose-driven exploration&lt;/strong&gt; rather than arbitrary browsing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Without an index vs. with an index
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Without an index]
  AI Agent: "I need to build an auth API... I guess I'll scan all the files first"
  → reads 100 files → 50% of context consumed → not enough space to actually work

[With an index]
  AI Agent: "According to PROJECT_INDEX.md, auth lives in src/auth/,
             and API conventions are in docs/api-convention.md"
  → reads 3 files → 5% of context consumed → plenty of space to work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  PROJECT_INDEX.md — Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# PROJECT_INDEX — Project Output Index&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; This file serves as the entry point when an AI Agent explores the project.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Read this file first when starting a new task.&lt;/span&gt;

&lt;span class="gu"&gt;## Project Overview&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Weekly report system (NestJS 11 + React 18)
&lt;span class="p"&gt;-&lt;/span&gt; Team of ~9, split into DX and AX sub-groups

&lt;span class="gu"&gt;## Key Directory Structure&lt;/span&gt;

| Directory | Role | Entry file |
|-----------|------|-----------|
| src/api/ | REST API routes | src/api/README.md |
| src/auth/ | Authentication &amp;amp; authorization | src/auth/auth.module.ts |
| src/services/ | Business logic | src/services/README.md |
| src/components/ | React components | src/components/index.ts |
| prisma/ | DB schema &amp;amp; migrations | prisma/schema.prisma |
| docs/ | Design &amp;amp; convention docs | docs/README.md |
| tests/ | Test code | tests/README.md |

&lt;span class="gu"&gt;## Key Design Documents&lt;/span&gt;

| Document | Purpose | When to reference |
|----------|---------|-------------------|
| docs/api-convention.md | API response format, error code conventions | When implementing or modifying APIs |
| docs/auth-design.md | Authentication architecture design | For auth-related work |
| docs/db-schema.md | ERD and table descriptions | When changing DB schema |
| docs/git-workflow.md | Branching strategy, commit conventions | When committing or opening PRs |

&lt;span class="gu"&gt;## Tech Stack Summary&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Backend: NestJS 11, TypeScript, Prisma, PostgreSQL
&lt;span class="p"&gt;-&lt;/span&gt; Frontend: React 18, Tailwind CSS
&lt;span class="p"&gt;-&lt;/span&gt; Test: Jest, Testing Library
&lt;span class="p"&gt;-&lt;/span&gt; CI: GitHub Actions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Core Principles for the Index
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Principle&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Specify entry points&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Point to a specific file to read, not just a directory&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Organize by purpose&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Connect as "reference this when doing X" rather than just listing files&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Keep it light&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;If the index itself is long, it defeats the purpose. Keep it under 50–100 lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Keep it current&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;When the file structure changes, update the index (check at task end)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2.6 Task-Type Reference Guides
&lt;/h2&gt;

&lt;p&gt;If the output index is "the map of the project," task-type reference guides are the &lt;strong&gt;signposts that say "for this task, look at this part of the map."&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why this is needed
&lt;/h3&gt;

&lt;p&gt;When an AI Agent receives an instruction to "implement an authentication API," it needs to find authentication-related files. Even with an index, &lt;strong&gt;which combination of files is needed for an auth task&lt;/strong&gt; is still a judgment the AI Agent has to make on its own.&lt;/p&gt;

&lt;p&gt;Task-type reference guides are a way to pre-define even that judgment.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to write them in CLAUDE.md
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Task-Type Reference Guides&lt;/span&gt;

&lt;span class="gu"&gt;### When implementing a new API&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; docs/api-convention.md — check response format and error codes
&lt;span class="p"&gt;2.&lt;/span&gt; Similar API files in src/api/ — reference existing patterns
&lt;span class="p"&gt;3.&lt;/span&gt; prisma/schema.prisma — check relevant models
&lt;span class="p"&gt;4.&lt;/span&gt; Similar tests in tests/ — reference test patterns

&lt;span class="gu"&gt;### When modifying an API or fixing a bug&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; The API file + related service files
&lt;span class="p"&gt;2.&lt;/span&gt; Corresponding tests in tests/ — check existing tests
&lt;span class="p"&gt;3.&lt;/span&gt; After changes, run npm test to check for regressions

&lt;span class="gu"&gt;### When changing DB schema&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; docs/db-schema.md — review current ERD
&lt;span class="p"&gt;2.&lt;/span&gt; prisma/schema.prisma — make schema changes
&lt;span class="p"&gt;3.&lt;/span&gt; After generating the migration, update docs/db-schema.md
&lt;span class="p"&gt;4.&lt;/span&gt; Check the impact scope on related service files

&lt;span class="gu"&gt;### When adding a frontend component&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; src/components/index.ts — check existing component list
&lt;span class="p"&gt;2.&lt;/span&gt; Similar components in src/components/ — reference patterns
&lt;span class="p"&gt;3.&lt;/span&gt; Tailwind class ordering: docs/frontend-convention.md

&lt;span class="gu"&gt;### For authentication/authorization work&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; docs/auth-design.md — review the auth architecture
&lt;span class="p"&gt;2.&lt;/span&gt; src/auth/ — review existing auth code
&lt;span class="p"&gt;3.&lt;/span&gt; After changes, run the full auth test suite

&lt;span class="gu"&gt;### For deployment/infrastructure work&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; docs/deploy-guide.md — review deployment procedure
&lt;span class="p"&gt;2.&lt;/span&gt; .github/workflows/ — review CI/CD pipelines
&lt;span class="p"&gt;3.&lt;/span&gt; docker-compose.yml — review container configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The effect of reference guides
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Without a reference guide]
  User: "Implement the payment API"
  AI Agent: (doesn't know where to start — scans everything)
  → wasted tokens + risk of referencing wrong files

[With a reference guide]
  User: "Implement the payment API"
  AI Agent: (consults "When implementing a new API" in CLAUDE.md)
  → 1. Read api-convention.md
  → 2. Check similar API patterns
  → 3. Check schema
  → 4. Begin implementation
  → purpose-driven exploration, tokens saved, consistent quality
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2.7 The Relationship Between Output Index and Reference Guides
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────────────────┐
│  CLAUDE.md                                               │
│  ├── Project overview, tech stack, build commands        │
│  ├── Task-type reference guides  ←── "for X, look at Y" │
│  └── Core rules                                          │
├──────────────────────────────────────────────────────────┤
│  PROJECT_INDEX.md                                        │
│  ├── Directory structure + entry files  ←── "full map"   │
│  └── List of key design documents                        │
├──────────────────────────────────────────────────────────┤
│  docs/*.md                                               │
│  ├── api-convention.md                                   │
│  ├── auth-design.md        ←── "the actual references"   │
│  └── db-schema.md                                        │
└──────────────────────────────────────────────────────────┘

AI Agent's navigation path:
  ① CLAUDE.md → "This is an API task — check the reference guide"
  ② Reference guide → "It says to look at api-convention.md and similar APIs"
  ③ PROJECT_INDEX.md → "API directory entry point is src/api/README.md"
  ④ Read actual files → load only the minimum necessary for the task
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once this structure is in place:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Arbitrary exploration decreases&lt;/strong&gt; → prevents wasted tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploration paths are consistent&lt;/strong&gt; → output quality variance is reduced&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;People don't have to specify reference files every time&lt;/strong&gt; → instructions become more concise&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  2.8 Practical Application Checklist
&lt;/h2&gt;

&lt;h3&gt;
  
  
  When setting up a project
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;□ Has PROJECT_INDEX.md been written?
  - Are key directories and entry files specified?
  - Is the list of key design documents included?
□ Does CLAUDE.md include task-type reference guides?
  - Are all frequently performed task types covered?
  - Are the files to reference and their order specified for each type?
□ Does CLAUDE.md specify "read PROJECT_INDEX.md first at the start of a new task"?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When giving a work instruction
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;□ Is there a reference guide in CLAUDE.md for this task type?
  - If yes: just give the instruction — no need to specify references separately
  - If no: include the reference files directly in the instruction
□ If this is a new task type, was the reference guide updated after completion?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When ending a task
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;□ If the file structure changed, was PROJECT_INDEX.md updated?
□ If new design documents were added, were they reflected in the index?
□ If a new task type was encountered, was it added to the reference guide?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2.9 Context Isolation — Don't Ask the Developer to Test Their Own Code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  "You shouldn't test your own code"
&lt;/h3&gt;

&lt;p&gt;There's a long-standing principle in software development: &lt;strong&gt;don't ask the developer to test their own code.&lt;/strong&gt; Because they know what they built and how, they unconsciously assume "this will obviously work" or "this path is fine" and skip over things. Rather than testing edge cases where problems actually live, they only validate the happy path they intended.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;An AI Agent is not immune to this problem.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Problems that arise when implementation and verification happen in the same session
&lt;/h3&gt;

&lt;p&gt;The session in which the AI Agent wrote the code still carries &lt;strong&gt;all of the context from the implementation process&lt;/strong&gt;. What design decisions were made, which files were modified, what direction was taken to solve problems — all of it remains in memory.&lt;/p&gt;

&lt;p&gt;If you then say "test this" in that same session:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Implementation + verification in the same session]

  AI Agent's context:
  ├── Design decisions from the implementation (already knows them)
  ├── List of files modified (already knows them)
  ├── Direction taken to solve the problem (already knows it)
  └── Remaining technical debt (can rationalize it)

  Problems that arise during verification:
  · "I built it this way, so this obviously works" → skipped
  · "I designed the error handling with 3 retries, so that's correct"
    → doesn't question the design itself
  · "This path flows as I intended" → unintended paths not verified
  · Doesn't recognize the parts it inferred as potential defects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is exactly the trap human developers fall into when testing their own code. &lt;strong&gt;Knowing too much becomes the problem.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Verification must always happen in a new session
&lt;/h3&gt;

&lt;p&gt;When verification is performed in a new session, the AI Agent &lt;strong&gt;judges the output purely on its own merits, without the context of how it was built&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Verification in a new session]

  AI Agent's context:
  ├── CLAUDE.md guidelines (loaded clean)
  ├── Implementation result report (documented facts only)
  └── The actual code (as-is)

  How verification differs:
  · Doesn't know the implementation intent → if code can't explain itself, flags it as a defect
  · Doesn't know the design decisions → evaluates the validity of decisions independently
  · Doesn't know the inferred parts → treats undocumented behavior with suspicion
  · No bias from conversational flow → objective, guideline-based verification
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to instruct verification
&lt;/h3&gt;

&lt;p&gt;Once implementation is complete, save an &lt;strong&gt;implementation result report&lt;/strong&gt; to a file, then instruct a new session to verify using that report as the reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the implementation session:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; Once implementation is complete, save an implementation result report to&lt;/span&gt;
  ./reports/auth-impl-report.md with the following:
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Implementation scope (what was done)&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - List of files changed&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Key design decisions and their rationale&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Tests run and their results&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Known limitations or unresolved issues&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Items to verify during the review&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;In the new session:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; Read ./reports/auth-impl-report.md and verify the implementation.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Whether the implementation scope matches the requirements (docs/auth-requirements.md)&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Code quality, security vulnerabilities, performance issues&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Perform all items listed under "Items to verify" in the report&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Save any issues found to ./reports/auth-review-report.md&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Call out any additional items that need follow-up&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Useful tip: Background execution for automatic session isolation
&lt;/h3&gt;

&lt;p&gt;In Claude Code, after implementation is complete, instructing verification to &lt;strong&gt;run in the background&lt;/strong&gt; automatically runs it in a new session — completely isolated from the current session's context.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; Implementation is complete.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Now run the following verification tasks in the background.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Background tasks:&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   1. Reference ./reports/auth-impl-report.md and verify the implementation&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   2. Save the results of npm test to ./reports/auth-test-output.log&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   3. Save the verification report to ./reports/auth-review-report.md&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   4. Output the result file paths when complete&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; I'll continue with other work in this session.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Advantages of background execution:&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Advantage&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Context isolation&lt;/td&gt;
&lt;td&gt;Verifies purely on the output, without the implementation context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time savings&lt;/td&gt;
&lt;td&gt;Continue the next task without waiting for verification to finish&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parallel work&lt;/td&gt;
&lt;td&gt;Implementation (current session) + verification (background) run simultaneously&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Objectivity&lt;/td&gt;
&lt;td&gt;The implementer's bias doesn't influence the verification&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Advanced tip: Run as a separate process and monitor
&lt;/h3&gt;

&lt;p&gt;When more explicit isolation is needed, you can instruct the AI Agent to run as a separate process and monitor the output.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; Run the following verification scripts as a separate process,&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; and record the output to ./reports/verification-output.log.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Monitor the log until the process completes,&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; and report immediately if any failures are found.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Verifications to run:&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   npm test -- --coverage&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   npm run lint&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;   npm run type-check&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Context Isolation Principles — Summary
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────────────────┐
│           3 Principles of Context Isolation              │
├──────────────────────────────────────────────────────────┤
│                                                          │
│  1. Don't verify in the same session that implemented    │
│     → Knowing too much becomes the problem               │
│                                                          │
│  2. Verification references only the implementation      │
│     result report                                        │
│     → Judge by the output, not the implementation process│
│                                                          │
│  3. Use background execution or a separate process       │
│     → Physically separate sessions to guarantee          │
│       isolation                                          │
│                                                          │
└──────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>promptengineering</category>
    </item>
    <item>
      <title>Chapter 6. Best Practices for Working with an AI Agent</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Wed, 01 Apr 2026 14:05:30 +0000</pubDate>
      <link>https://dev.to/ucjung/chapter-6-best-practices-for-working-with-an-ai-agent-29fi</link>
      <guid>https://dev.to/ucjung/chapter-6-best-practices-for-working-with-an-ai-agent-29fi</guid>
      <description>&lt;h2&gt;
  
  
  1.1 Why Clear Instructions Matter
&lt;/h2&gt;

&lt;h3&gt;
  
  
  An AI Agent "reasons" — but it also "guesses"
&lt;/h3&gt;

&lt;p&gt;When an instruction is vague, an AI Agent &lt;strong&gt;fills in the gaps itself&lt;/strong&gt; and proceeds with the task.&lt;br&gt;
A person would ask "how should I handle this?" — but an AI Agent decides on the most plausible interpretation and executes it.&lt;/p&gt;

&lt;p&gt;This is both its strength and its risk.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Vague instruction]
&amp;gt; Build a login feature

[AI Agent's interpretation — the user has no idea]
  • Framework? → assumes React + Express
  • Authentication? → assumes JWT
  • DB? → assumes SQLite
  • Password encryption? → assumes bcrypt
  • Social login? → assumes none

→ Result: works, but built on a tech stack you didn't intend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Clear instruction]
&amp;gt; Build a login API using NestJS + Passport.js.
&amp;gt; - Auth: JWT-based, with refresh token
&amp;gt; - DB: PostgreSQL + Prisma
&amp;gt; - Password: argon2 hashing
&amp;gt; - Social login excluded from this stage

→ Result: built exactly as intended
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  "Make it good" is not an instruction
&lt;/h3&gt;

&lt;p&gt;Telling an AI Agent to "do it well," "do it appropriately," or "figure it out" provides &lt;strong&gt;zero actionable information&lt;/strong&gt;.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Vague instruction&lt;/th&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Clear instruction&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"Make an API"&lt;/td&gt;
&lt;td&gt;Stack, structure, and auth are all guessed&lt;/td&gt;
&lt;td&gt;"NestJS REST API, JWT auth, Prisma ORM"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Add tests"&lt;/td&gt;
&lt;td&gt;Scope and framework are unclear&lt;/td&gt;
&lt;td&gt;"Write unit tests for UserService using Jest"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Fix this"&lt;/td&gt;
&lt;td&gt;What the problem is is unclear&lt;/td&gt;
&lt;td&gt;"Return 409 instead of 500 on duplicate email at POST /users"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Improve performance"&lt;/td&gt;
&lt;td&gt;What and by how much?&lt;/td&gt;
&lt;td&gt;"getUsers query takes 3 seconds. Check for N+1 and bring it under 1 second"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Refactor this"&lt;/td&gt;
&lt;td&gt;No criteria&lt;/td&gt;
&lt;td&gt;"Split the auth module into 3 layers: controller/service/repository"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Real problems that vague instructions create
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. Rollback cost&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If an AI Agent modifies dozens of files in the wrong direction and you say "that's not right," rolling back takes more time than the original task. One line of clear instruction saves 30 minutes of cleanup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Wasted context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When an AI Agent reads unnecessary files to figure out what direction to take, the context window is consumed. If half of the 200K tokens are spent "getting oriented," there's not enough space left to do the actual implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Compounding errors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If the first instruction is vague, every subsequent task builds on the wrong premise. If you discover the problem three steps later, you have to start over from step one.&lt;/p&gt;

&lt;h3&gt;
  
  
  7 Elements of a Good Instruction
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Element&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Why&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The purpose and intent behind the task&lt;/td&gt;
&lt;td&gt;"We're improving the profile-editing UX to reduce user churn"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;What is to be done&lt;/td&gt;
&lt;td&gt;"Implement a user profile update API"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;What technology or approach to use&lt;/td&gt;
&lt;td&gt;"NestJS, Prisma, class-validator"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Boundaries of the task&lt;/td&gt;
&lt;td&gt;"Email and nickname only. Exclude password changes"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reference&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Materials to consult or investigate&lt;/td&gt;
&lt;td&gt;"See Prisma docs at prisma.io/docs", "Refer to src/auth/README.md"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Constraint&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Restrictions that must be respected&lt;/td&gt;
&lt;td&gt;"Existing tests must not break"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Verify&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;How to confirm it's done&lt;/td&gt;
&lt;td&gt;"Pass npm test + manually test PUT /users/:id"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why "Why" matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Without knowing the purpose, an AI Agent will produce code that "works" technically but may not align with business intent. When the AI Agent knows the purpose and intent, it has a better chance of reasoning in the right direction when faced with ambiguous judgment calls.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Without Why&lt;/th&gt;
&lt;th&gt;With Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"Build a profile update API" → mechanical CRUD implementation&lt;/td&gt;
&lt;td&gt;"Improving UX to reduce churn" → input validation made user-friendly, error messages written from the user's perspective&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Implemented with defaults, no guiding criteria&lt;/td&gt;
&lt;td&gt;Decisions made to serve the purpose (prioritize response speed, detailed error messages, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Why "Reference" matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI Agent responds based on its training data, which may differ from the latest versions or project-specific conventions.&lt;br&gt;
Providing references means the work is grounded in evidence rather than guesswork.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Reference instruction example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Latest API usage&lt;/td&gt;
&lt;td&gt;"Implement this by referring to &lt;a href="https://docs.nestjs.com/security/authentication" rel="noopener noreferrer"&gt;https://docs.nestjs.com/security/authentication&lt;/a&gt;"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Based on internal docs&lt;/td&gt;
&lt;td&gt;"Follow the conventions in docs/api-convention.md"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Following existing code patterns&lt;/td&gt;
&lt;td&gt;"Use the same structure as src/auth/auth.service.ts"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;External library&lt;/td&gt;
&lt;td&gt;"Read the README at &lt;a href="https://github.com/oraios/serena" rel="noopener noreferrer"&gt;https://github.com/oraios/serena&lt;/a&gt; and configure accordingly"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design system&lt;/td&gt;
&lt;td&gt;"Implement the component by referencing the Figma link"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Claude Code can search the web and read files directly —&lt;br&gt;
give it a URL and it will look it up; give it a file path and it will read it.&lt;br&gt;
&lt;strong&gt;"Check here"&lt;/strong&gt; produces far more accurate results than "figure it out yourself."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not every instruction needs all 7 elements.&lt;br&gt;
But making a habit of always including &lt;strong&gt;Why&lt;/strong&gt;, &lt;strong&gt;What&lt;/strong&gt;, and &lt;strong&gt;Scope&lt;/strong&gt; — and adding &lt;strong&gt;Reference&lt;/strong&gt; whenever the latest technology or project-specific conventions are involved — makes a meaningful difference.&lt;/p&gt;
&lt;h3&gt;
  
  
  Practical Pattern: Step-by-Step Instructions
&lt;/h3&gt;

&lt;p&gt;For complex tasks, break them into stages rather than issuing everything at once.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# ❌ Everything at once
&amp;gt; Build a user management system. Include registration, login,
&amp;gt; profile editing, permission management, and email verification.

# ✅ Step by step
&amp;gt; [Step 1] First, design the DB schema for the user management system.
&amp;gt;   - User, Role, Permission tables
&amp;gt;   - Written as a Prisma schema
&amp;gt;   → Review, then proceed to the next step

&amp;gt; [Step 2] Implement the User CRUD API in NestJS.
&amp;gt;   - POST /users (registration)
&amp;gt;   - GET /users/:id (profile lookup)
&amp;gt;   - Input validation with class-validator
&amp;gt;   → Confirm tests pass before the next step

&amp;gt; [Step 3] Add JWT authentication.
&amp;gt;   - Passport.js + JWT Strategy
&amp;gt;   - Access token: 15 min, refresh token: 7 days
&amp;gt;   → Verify that existing tests still pass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Using Plan Mode
&lt;/h3&gt;

&lt;p&gt;Claude Code's Plan Mode lets you have the AI Agent plan first and then proceed only after your approval.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Enter Plan Mode
&amp;gt; /plan

# Or include it in the instruction
&amp;gt; Plan the migration of the auth system to OAuth2 first.
&amp;gt; Don't execute yet — just show me the plan. I'll approve before we proceed.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;In Plan Mode, a Sub Agent (Plan) analyzes the codebase and presents a plan.&lt;br&gt;
Reviewing and refining the plan before approving execution reduces the risk of heading in the wrong direction.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1.2 Instruction Checklist
&lt;/h2&gt;

&lt;p&gt;Before giving a work instruction, quickly run through the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;□ Is the purpose and intent stated? (Why)
□ Is it clear what is to be done? (What)
□ Is the scope defined? (Scope) — is there an "exclude X"?
□ Is the tech stack / approach specified? (How)
□ Are reference materials provided? (Reference) — URLs, file paths
□ Is there a completion criterion? (Verify) — tests, commands, expected result
□ Is this asking for too much at once?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  1.3 Save and Update Outputs as Files
&lt;/h2&gt;

&lt;h3&gt;
  
  
  An AI Agent does not physically preserve memory
&lt;/h3&gt;

&lt;p&gt;Decisions made during an AI Agent conversation — design directions, architecture choices, API specs, and so on — &lt;strong&gt;exist only within the session's context window&lt;/strong&gt;. Think of it like RAM: when the session ends, it's gone.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[During the session]
  User: "Let's use JWT for auth"
  AI Agent: "Got it, proceeding with JWT"
  User: "PostgreSQL for the DB"
  AI Agent: "Understood, designing with PostgreSQL"
  ... (10 decisions over an hour)

[Session ends — terminal accidentally closed]
  → All 10 decisions lost
  → Must explain everything from scratch in a new session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Problems this causes in practice
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Outcome&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Terminal accidentally closed&lt;/td&gt;
&lt;td&gt;All decisions made so far are lost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto-compaction (&lt;code&gt;/compact&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Earlier decisions may be dropped during summarization&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Continuing the next day&lt;/td&gt;
&lt;td&gt;New session — no prior context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Handing off to a teammate&lt;/td&gt;
&lt;td&gt;Hard to reconstruct the decision-making process from chat history alone&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  The solution — save decisions to files immediately
&lt;/h3&gt;

&lt;p&gt;Decisions made during a work session should be &lt;strong&gt;written to physical files as they happen&lt;/strong&gt;.&lt;br&gt;
Files persist after the session ends, so you can pick up wherever you left off at any time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instruction example ①: During planning&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; We're going to plan out the user authentication system.
&amp;gt; Update the decisions to ./todo/Plan_Draft_Auth_System.md as they're made.
&amp;gt; Ask me for approval before making any updates.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Instruction example ②: During design&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; Design the API spec.
&amp;gt; Reflect decisions in ./docs/API_Spec_v1.md.
&amp;gt; Update the file whenever something changes, and get confirmation before each update.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Instruction example ③: For long-running work&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; This refactoring will span multiple sessions.
&amp;gt; Track progress in ./PROGRESS.md.
&amp;gt; - Completed items: ✅
&amp;gt; - In progress: 🔄
&amp;gt; - Not started: ⬜
&amp;gt; Update this file at the end of each work segment.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Recommended File Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-project/
├── todo/                              ← Plans and decision records
│   ├── Plan_Draft_Auth_System.md
│   ├── Plan_Draft_DB_Migration.md
│   └── Decision_Log.md               ← Key decisions and their rationale
├── docs/                              ← Output documents
│   ├── API_Spec_v1.md
│   └── Architecture_Overview.md
├── PROGRESS.md                        ← Overall progress status
└── CLAUDE.md                          ← Project context
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3 Core Principles for Saving Files
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Principle&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Instruction example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Save immediately&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reflect decisions in the file as soon as they're made&lt;/td&gt;
&lt;td&gt;"Update the file each time something is decided"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Approve before applying&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Confirm before changing files&lt;/td&gt;
&lt;td&gt;"Ask for my approval before updating"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Specify the path&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;State exactly where to save&lt;/td&gt;
&lt;td&gt;"Save to ./todo/Plan_Draft_Title.md"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Key point&lt;/strong&gt;: Telling an AI Agent to "remember this" is far less reliable than saying &lt;strong&gt;"save it to a file."&lt;/strong&gt;&lt;br&gt;
Memory in a conversation disappears when the session ends — files persist permanently.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1.4 Starting and Ending Work — Context Management Procedure
&lt;/h2&gt;

&lt;h3&gt;
  
  
  When starting a new task
&lt;/h3&gt;

&lt;p&gt;Even within a single session, tasks change multiple times.&lt;br&gt;
When switching tasks — say from "DB design → API implementation → writing tests" — &lt;strong&gt;if you don't clear out the previous task's context&lt;/strong&gt;, the AI Agent gets buried under previously read files and conversation history, which degrades accuracy on the new task.&lt;/p&gt;

&lt;p&gt;Switching tasks within the same session is the &lt;strong&gt;primary application of this procedure&lt;/strong&gt;.&lt;br&gt;
It applies equally when you close a session and open a fresh one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1. Define the task overview and the AI Agent's role&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the first instruction of a new task, clearly declare "what will be done" and "what role the AI Agent plays."&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; We're going to design the user authentication system now.
&amp;gt; Your role is backend architect.
&amp;gt; Design using NestJS + Passport.js,
&amp;gt; and record decisions in ./todo/Plan_Draft_Auth.md.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;STEP 2. Remove or compact unnecessary context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Leftover context from a previous task can interfere with the new one.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Completely new task unrelated to previous work&lt;/td&gt;
&lt;td&gt;Full context reset&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/clear&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New task partially related to previous work&lt;/td&gt;
&lt;td&gt;Direct instruction for selective compaction&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/compact keep only auth-related decisions&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low-stakes simple task switch&lt;/td&gt;
&lt;td&gt;Stating the new task overview and role in STEP 1 guides auto-compaction appropriately&lt;/td&gt;
&lt;td&gt;(no additional action needed after STEP 1)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ Claude's &lt;strong&gt;auto-compact doesn't know what's important.&lt;/strong&gt;&lt;br&gt;
For important work, use &lt;code&gt;/compact &amp;lt;what to preserve&amp;gt;&lt;/code&gt; to control it directly.&lt;br&gt;
Trust auto-compact only for low-stakes tasks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;STEP 3. When continuing from previous work — restoring context&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you need to pick up from where a prior task left off, restore context using the saved output files.&lt;br&gt;
This applies both when continuing within the same session after a &lt;code&gt;/clear&lt;/code&gt;, and when resuming previous work in a new session.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; We were working on the authentication system design in the previous session.
&amp;gt; Read the following files and get up to speed:
&amp;gt; - ./todo/Plan_Draft_Auth.md (design plan)
&amp;gt; - ./PROGRESS.md (progress status)
&amp;gt; - ./docs/API_Spec_v1.md (API spec)
&amp;gt;
&amp;gt; Summarize what you've learned,
&amp;gt; and tell me what we should pick up next.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key here is to &lt;strong&gt;explicitly instruct what to keep and what to discard&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; Once you've read the previous work files:
&amp;gt; - The DB schema design is finalized — you can drop it from context
&amp;gt; - The JWT token design is still undecided — keep that
&amp;gt; - Use the "Outstanding Items" section of ./todo/Plan_Draft_Auth.md as the goals for this session
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Task Start Instruction Template
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; [Task overview] (what is being done)
&amp;gt; [AI role] (what kind of expert to act as)
&amp;gt; [Reference files] (previous outputs, context to restore)
&amp;gt; [Context cleanup] (what to keep / what to remove)
&amp;gt; [Output storage] (path, filename, approval process)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  When a task ends (on session close or extended break)
&lt;/h3&gt;

&lt;p&gt;This is the supplementary procedure for when you close a session or wrap up for the day and plan to continue tomorrow.&lt;br&gt;
For task switches within the same session, STEP 1–3 above are sufficient —&lt;br&gt;
&lt;strong&gt;but when you're ending the session itself, complete the steps below so the next session can pick up seamlessly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 1. Preserve outputs as records&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; Wrap up today's work:
&amp;gt; - Completed code is already committed (confirmed)
&amp;gt; - Add design decisions to ./todo/Decision_Log.md
&amp;gt; - Update ./PROGRESS.md with the current status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;STEP 2. Update reference materials&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Update the reference materials the AI Agent will read in the next session &lt;strong&gt;to reflect the current state.&lt;/strong&gt;&lt;br&gt;
Without this step, the next session's AI Agent will read outdated materials and work from stale assumptions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; Update the following files to reflect today's changes:
&amp;gt; - ./docs/API_Spec_v1.md → include newly added endpoints
&amp;gt; - ./CLAUDE.md → reflect updated architecture information
&amp;gt; - ./todo/Plan_Draft_Auth.md → check off completed items, update outstanding items
&amp;gt; Get approval before making changes.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;⚠️ If reference materials are left in a past state, the next session's AI Agent will &lt;strong&gt;work without knowing what has already changed&lt;/strong&gt;.&lt;br&gt;
This is the primary cause of the "I already fixed that, but it went back to the original" problem.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;STEP 3. Record TODOs — handoff for the next session&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explicitly document what's left to do so that the next session (or another person) can pick up right away.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; Record the work to continue in the next session in ./todo/TODO_Next.md:
&amp;gt; - Remaining tasks (in priority order)
&amp;gt; - Prerequisites for each task
&amp;gt; - File paths to reference
&amp;gt; - Caveats or unresolved issues
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;TODO file example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# TODO — Next Session Work List&lt;/span&gt;

&lt;span class="gu"&gt;## Priority 1: Refresh Token Implementation&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Prerequisite: Access token issuance complete (✅)
&lt;span class="p"&gt;-&lt;/span&gt; Reference: ./docs/API_Spec_v1.md &amp;gt; POST /auth/refresh
&lt;span class="p"&gt;-&lt;/span&gt; Note: Token expiry confirmed at 7 days (Decision_Log.md #12)

&lt;span class="gu"&gt;## Priority 2: Social Login (Google OAuth)&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Prerequisite: After Refresh Token is complete
&lt;span class="p"&gt;-&lt;/span&gt; Reference: https://docs.nestjs.com/security/authentication#oauth2
&lt;span class="p"&gt;-&lt;/span&gt; Unresolved: Callback URL domain not yet confirmed (needs team lead sign-off)

&lt;span class="gu"&gt;## Notes&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; No direct commits to main — use feature/auth-&lt;span class="err"&gt;*&lt;/span&gt; branches
&lt;span class="p"&gt;-&lt;/span&gt; All 186 existing tests must pass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Task Start/End Checklist
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Starting a task]
□ Declared the task overview and AI Agent's role?
□ Cleared previous context? (/clear or /compact)
□ For continuing work: instructed the AI Agent to read previous output files?
□ Explicitly specified what context to keep and what to remove?
□ Specified the output save path and approval process?

[Ending a task]
□ Outputs preserved as files? (code committed, documents saved)
□ Reference materials updated to reflect the current state? (API spec, CLAUDE.md, etc.)
□ TODOs recorded for the next session? (remaining tasks, prerequisites, unresolved issues)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  1.5 Instruction Checklist (Comprehensive)
&lt;/h2&gt;

&lt;p&gt;Before giving a work instruction, quickly run through the following.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;□ Is the purpose and intent stated? (Why) — why is this task being done?
□ Is it clear what is to be done? (What)
□ Is the scope defined? (Scope) — is there an "exclude X"?
□ Is the tech stack / approach specified? (How)
□ Are reference materials provided? (Reference) — URLs, file paths
□ Is there a completion criterion? (Verify) — tests, commands, expected result
□ Is this asking for too much at once?
□ Was the AI Agent asked to save outputs to a file? — path, filename, approval process
□ Were reference material updates and TODO recording instructed for when the task ends?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






</description>
      <category>agents</category>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>Chapter 5. The Structural Limits of AI Agents</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Tue, 31 Mar 2026 15:37:48 +0000</pubDate>
      <link>https://dev.to/ucjung/advanced-section-introduction-the-structural-limits-of-ai-agents-1dcb</link>
      <guid>https://dev.to/ucjung/advanced-section-introduction-the-structural-limits-of-ai-agents-1dcb</guid>
      <description>&lt;h2&gt;
  
  
  Why an Advanced Section?
&lt;/h2&gt;

&lt;p&gt;If you've worked through the basics — installation and tool usage — one important question remains.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Why does an AI Agent sometimes go off in completely the wrong direction?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer is straightforward. &lt;strong&gt;AI Agents carry the same kinds of problems that arise when working with people.&lt;/strong&gt; The misunderstandings, unilateral decisions, and wasted effort you see with human colleagues appear in AI Agents too. The difference is that AI Agents create these problems &lt;strong&gt;faster and at greater scale.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Advanced Section covers these structural limits and how to keep them under control in real-world work.&lt;/p&gt;




&lt;h2&gt;
  
  
  0. The 4 Structural Limits of AI Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Limit ① — Without explicit instructions, it acts on its own judgment
&lt;/h3&gt;

&lt;p&gt;When instructions are incomplete, an AI Agent &lt;strong&gt;interprets and executes based on what it already knows.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This happens with people too. If you tell a new hire "take care of this" without further guidance, they'll handle it their own way. By the time you see the result and say "that's not what I meant," the time is already gone.&lt;/p&gt;

&lt;p&gt;With AI Agents, the problem is more severe. A person will stop and ask when they hit something they don't know. An AI Agent &lt;strong&gt;fills in the gaps with inference and keeps going to the end.&lt;/strong&gt; It doesn't distinguish between what it inferred and what it was told — it proceeds as if everything is certain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[With a human colleague]
  "I'm not sure about this part — how should I handle it?" → asks

[With an AI Agent]
  "This wasn't specified... JWT seems appropriate" → just does it
  (the user has no idea this judgment was even made)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this is dangerous&lt;/strong&gt;: The user can't tell which parts the agent decided on its own. The output looks like everything was done according to instructions, but internally there are arbitrary decisions mixed in.&lt;/p&gt;




&lt;h3&gt;
  
  
  Limit ② — As a conversation grows longer, it prioritizes conversation flow over written guidelines
&lt;/h3&gt;

&lt;p&gt;Even when guidelines are defined in CLAUDE.md, &lt;strong&gt;as the conversation accumulates, the agent gives more weight to recent exchanges when deciding what to do next.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This mirrors what happens with people. A team might agree on a set of principles at the start of a project, but those principles gradually fade under the pressure of urgent requests in daily meetings.&lt;/p&gt;

&lt;p&gt;An AI Agent's context window is 200K tokens. As the conversation grows, the guidelines document becomes a tiny fraction of the total context, while recent exchanges dominate. The agent centers its next action on the most recent back-and-forth.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Early in the session]
  CLAUDE.md guideline: "Apply all changes only after approval"
  → follows the guideline well

[Mid-session — after 50 exchanges]
  User: "Fix this too"
  User: "Change that too"
  → a pattern of "execute immediately" takes hold in the conversation flow
  → starts making changes without asking for approval
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why this is dangerous&lt;/strong&gt;: The user believes the guidelines are still being followed, but the agent may have already effectively abandoned them due to conversational drift.&lt;/p&gt;




&lt;h3&gt;
  
  
  Limit ③ — When a problem goes unsolved, it falls into a vicious cycle
&lt;/h3&gt;

&lt;p&gt;When a problem resists resolution, the agent &lt;strong&gt;① acts on its own judgment&lt;/strong&gt; while &lt;strong&gt;② getting buried in the conversation flow&lt;/strong&gt;, sinking progressively deeper.&lt;/p&gt;

&lt;p&gt;The cycle unfolds like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[The Vicious Cycle]

  A problem occurs
    ↓
  AI Agent attempts to solve it on its own judgment
    ↓
  Partial fix — addresses symptoms, not the root cause
    ↓
  Derivative problems emerge
    ↓
  Agent attempts to solve those on its own judgment too
    ↓
  Yet more derivative problems...
    ↓
  As the conversation lengthens, the original goal and guidelines are lost
    ↓
  Result: the entire codebase drifts away from the intended design
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Human developers can fall into similar traps during debugging: "I fixed that error and broke something else, fixed that and broke something else again..." But a person can reach a point of saying "I think the whole approach here is wrong" and stop. AI Agents are weak at this kind of judgment. &lt;strong&gt;They keep digging without stopping&lt;/strong&gt;, and once they've committed to a direction, they rarely reverse course.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this is dangerous&lt;/strong&gt;: Ten minutes of a vicious cycle can produce code changes that take 30 or more minutes to undo. When the changes span multiple files, even &lt;code&gt;git revert&lt;/code&gt; may not cleanly restore the original state.&lt;/p&gt;




&lt;h3&gt;
  
  
  Limit ④ — Ambiguous parts are filled in by inference (and the agent doesn't say so)
&lt;/h3&gt;

&lt;p&gt;This is an extension of Limit ①, but important enough to call out separately.&lt;/p&gt;

&lt;p&gt;When instructions are ambiguous or incomplete, an AI Agent &lt;strong&gt;fills in the gaps through inference&lt;/strong&gt; — and &lt;strong&gt;does not tell the user it has done so.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[User's instruction]
&amp;gt; Build a payment API. Integrate with TossPayments.

[Parts filled in by AI Agent's inference — the user has no idea]
  · Payment state management: custom state machine (vs. relying on Toss webhooks)  ← inferred
  · Error handling: fail after 3 retries (vs. fail immediately)                    ← inferred
  · Partial refunds: not implemented (judged to be out of scope)                   ← inferred
  · Concurrent requests: optimistic locking (vs. pessimistic locking)              ← inferred
  · Logging: console.log (vs. structured logger)                                   ← inferred
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output may appear to work fine. But if even one of those five decisions doesn't match the intended design, the cost of finding and fixing it later is high. Architecture-level decisions in particular — state management strategy, concurrency handling — can require a full structural overhaul to change after the fact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this is dangerous&lt;/strong&gt;: The moment a user thinks "I gave the instruction, so the result must match it," they move on to the next step without verifying. It's usually three or four steps later that the inferred parts cause a problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Common Root Cause Behind All Four Limits
&lt;/h2&gt;

&lt;p&gt;These limits all stem from a single underlying cause:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI Agents are optimized to "execute plausibly" rather than to say "I don't know."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A person will admit when they don't know something, and ask for confirmation when uncertain. An AI Agent acts as though it knows things it doesn't, and as though it's confident when it isn't.&lt;/p&gt;

&lt;p&gt;Every countermeasure covered in the Advanced Section ultimately converges on one principle:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────────────────┐
│                                                          │
│   Minimize the areas where the AI Agent decides          │
│   on its own, and have a person explicitly make          │
│   any decision that requires judgment.                   │
│                                                          │
│   → Clear instructions (Advanced Ch. 1)                  │
│   → Preserve outputs as files for verification           │
│     (Advanced Ch. 1)                                     │
│   → Provide structured guidelines as decision            │
│     criteria (Advanced Ch. 2)                            │
│                                                          │
└──────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






</description>
    </item>
    <item>
      <title>Chapter 4. How to Use — Sub Agents</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Mon, 30 Mar 2026 16:24:03 +0000</pubDate>
      <link>https://dev.to/ucjung/chapter-4-how-to-use-sub-agents-4gao</link>
      <guid>https://dev.to/ucjung/chapter-4-how-to-use-sub-agents-4gao</guid>
      <description>&lt;h2&gt;
  
  
  4.1 What Is a Sub Agent?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;Sub Agent&lt;/strong&gt; is a &lt;strong&gt;specialized AI assistant&lt;/strong&gt; dedicated to handling specific tasks within a Claude Code session.&lt;/p&gt;

&lt;p&gt;If the main Claude Code is the "general manager," Sub Agents are "team members," each with their own area of expertise.&lt;br&gt;
Each Sub Agent operates with its own &lt;strong&gt;independent context window&lt;/strong&gt;, &lt;strong&gt;dedicated system prompt&lt;/strong&gt;, and &lt;strong&gt;restricted tool access&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────────────┐
│  Main Claude Code Session (General Manager)  │
│                                              │
│  "Review this code"                          │
│      ↓ delegate                              │
│  ┌──────────────────────────────────┐        │
│  │  Sub Agent: code-reviewer        │        │
│  │  • Independent context window    │        │
│  │  • Read-only tools allowed       │        │
│  │  • Code review system prompt     │        │
│  └──────────────┬───────────────────┘        │
│                 ↓ return result              │
│  "Review complete: 3 improvements found"     │
└──────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4.2 Purpose and Role
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why Use Sub Agents?
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context preservation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Exploration and analysis results do not pollute the main conversation. Sub Agents return only a summary, keeping the main context clean&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Specialization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Role-specific system prompts for tasks like code review, test writing, and security analysis improve accuracy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tool restriction&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Apply the principle of least privilege — e.g., grant only Read to review agents, and Write/Edit to implementation agents&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reusability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A Sub Agent created once can be used across all projects (user scope)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Built-in Sub Agents
&lt;/h3&gt;

&lt;p&gt;Claude Code includes built-in Sub Agents that are used automatically.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Tools&lt;/th&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Explore&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Read-only&lt;/td&gt;
&lt;td&gt;Search and navigate the codebase. No file modifications&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Plan&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Read-only&lt;/td&gt;
&lt;td&gt;Analyze the codebase before implementation in Plan Mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;General-purpose&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All tools&lt;/td&gt;
&lt;td&gt;Complex multi-step tasks (exploration + modification)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Bash&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Terminal&lt;/td&gt;
&lt;td&gt;Execute commands in a separate context&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;These built-in agents are delegated to automatically by Claude.&lt;br&gt;
The user does not need to invoke them directly — they are selected automatically based on the nature of the task.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4.3 Setup and Verification
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: /agents Command (Recommended)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From the interactive menu, you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select &lt;strong&gt;Create new agent&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;Personal&lt;/strong&gt; (all projects) or &lt;strong&gt;Project&lt;/strong&gt; (current project only)&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;Generate with Claude&lt;/strong&gt; → enter a description of the role&lt;/li&gt;
&lt;li&gt;Choose tool access scope (Read-only, all tools, etc.)&lt;/li&gt;
&lt;li&gt;Select a model (Sonnet, Opus, Haiku)&lt;/li&gt;
&lt;li&gt;Choose a background color → save&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example: Creating a Code Review Agent&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; /agents
→ Create new agent
→ Personal
→ Generate with Claude
→ "An agent that analyzes code and suggests improvements from the perspective of readability, performance, and best practices"
→ Select Read-only tools
→ Sonnet
→ Save
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Method 2: Writing a Markdown File Directly
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Personal use (all projects)&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.claude/agents
nano ~/.claude/agents/code-reviewer.md

&lt;span class="c"&gt;# Project use (current project only)&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; .claude/agents
nano .claude/agents/code-reviewer.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to Verify
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# List agents from CLI (outside a session)&lt;/span&gt;
claude agents

&lt;span class="c"&gt;# List agents from within a session&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /agents
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to Invoke
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Automatic delegation — Claude judges automatically based on the description&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Analyze the code quality of this project&lt;/span&gt;

&lt;span class="gh"&gt;# Explicit invocation — specify the agent by name&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Use the code-reviewer agent to review the src/api/ folder&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4.4 Sub Agent File Structure
&lt;/h2&gt;

&lt;p&gt;A Sub Agent is composed of a &lt;strong&gt;YAML front matter + Markdown body&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  File Example: &lt;code&gt;.claude/agents/code-reviewer.md&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;code-reviewer&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Analyzes code quality and suggests improvements from the perspectives of readability, performance, and security. Used when code review or quality analysis is requested.&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Read, Grep, Glob&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sonnet&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# Code Reviewer Agent&lt;/span&gt;

&lt;span class="gu"&gt;## Role&lt;/span&gt;
You are a senior software engineer dedicated to performing code reviews.

&lt;span class="gu"&gt;## Review Criteria&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Readability: variable names, function structure, comments
&lt;span class="p"&gt;-&lt;/span&gt; Performance: unnecessary iteration, potential memory leaks
&lt;span class="p"&gt;-&lt;/span&gt; Security: SQL injection, XSS, hardcoded secrets
&lt;span class="p"&gt;-&lt;/span&gt; Best practices: adherence to project conventions

&lt;span class="gu"&gt;## Output Format&lt;/span&gt;
For each issue:
&lt;span class="p"&gt;1.&lt;/span&gt; File path and line number
&lt;span class="p"&gt;2.&lt;/span&gt; Current code
&lt;span class="p"&gt;3.&lt;/span&gt; Description of the problem
&lt;span class="p"&gt;4.&lt;/span&gt; Suggested improved code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  YAML Front Matter Fields
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Agent identifier (alphanumeric, hyphens allowed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;description&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Explains when to use this agent. Claude reads this description to decide whether to delegate automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tools&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;List of allowed tools. If omitted, all tools from the main session are inherited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;model&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Model to use (&lt;code&gt;sonnet&lt;/code&gt;, &lt;code&gt;opus&lt;/code&gt;, &lt;code&gt;haiku&lt;/code&gt;). Default: the main session model&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Tool Restriction Examples
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Read-only (for review and analysis)&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Read, Grep, Glob&lt;/span&gt;

&lt;span class="c1"&gt;# Code modification allowed (for implementation)&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Read, Write, Edit, Bash, Grep, Glob&lt;/span&gt;

&lt;span class="c1"&gt;# Inherit all tools (omit the field entirely)&lt;/span&gt;
&lt;span class="c1"&gt;# Do not include the tools field at all&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Scope by Storage Location
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;~/.claude/agents/             ← Personal: available across all projects
.claude/agents/               ← Project: available only &lt;span class="k"&gt;in &lt;/span&gt;this project
                                 &lt;span class="o"&gt;(&lt;/span&gt;commit to Git to share with the team&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;If a Sub Agent with the same name exists in both locations, the &lt;strong&gt;project-level agent takes precedence&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Full File Structure Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-project/
├── .claude/
│   ├── agents/                    ← Project Sub Agents
│   │   ├── code-reviewer.md
│   │   ├── test-writer.md
│   │   └── security-auditor.md
│   ├── settings.json              ← Project settings (hooks, permissions)
│   └── commands/                  ← Slash commands
├── CLAUDE.md                      ← Project memory
└── .mcp.json                      ← MCP server config (shared with team)

~/.claude/
├── agents/                        ← Personal Sub Agents (all projects)
│   └── general-assistant.md
├── CLAUDE.md                      ← Global memory (personal)
└── settings.json                  ← Personal global settings
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  4.5 Sub Agent vs MCP — Key Differences
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Sub Agent&lt;/th&gt;
&lt;th&gt;MCP Server&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Identity&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A specialized Claude instance&lt;/td&gt;
&lt;td&gt;A connection to an external tool or service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How it works&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Claude performs tasks in an independent context&lt;/td&gt;
&lt;td&gt;An external process provides tool functionality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Its own context window (separate from the main session)&lt;/td&gt;
&lt;td&gt;Shares and consumes the main context window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Config format&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Markdown file (YAML + prompt)&lt;/td&gt;
&lt;td&gt;JSON config (command, args, env)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage location&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.claude/agents/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;.claude.json&lt;/code&gt; or &lt;code&gt;.mcp.json&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How it is invoked&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Claude delegates automatically or by name&lt;/td&gt;
&lt;td&gt;Claude calls it as a tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;What it can do&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI reasoning tasks: code analysis, review, implementation, test writing, etc.&lt;/td&gt;
&lt;td&gt;External system integration: DB queries, GitHub PRs, browser automation, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Consumes separate tokens (independent context)&lt;/td&gt;
&lt;td&gt;Consumes context proportional to tool descriptions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Relationship&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Can use MCP tools&lt;/td&gt;
&lt;td&gt;Operates independently of Sub Agents&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  When to Use Which?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Automatically create a GitHub PR"              → MCP (github server)
"Review this code"                              → Sub Agent (code-reviewer)
"Query user data from the DB"                   → MCP (postgresql server)
"Write test code"                               → Sub Agent (test-writer)
"Find a function by symbol"                     → MCP (serena server)
"Analyze security vulnerabilities"              → Sub Agent (security-auditor)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key distinction&lt;/strong&gt;: MCP is a &lt;strong&gt;tool for connecting to external systems&lt;/strong&gt;; Sub Agents are &lt;strong&gt;AI instances that perform work in specialized roles&lt;/strong&gt;.&lt;br&gt;
The two are not substitutes — they are meant to be &lt;strong&gt;combined&lt;/strong&gt;.&lt;br&gt;
Example: a security-auditor Sub Agent uses the Serena MCP's &lt;code&gt;find_symbol&lt;/code&gt; tool to trace vulnerable functions.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  4.6 Quick Reference
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ── Sub Agent Management ─────────────────────────────&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /agents                              &lt;span class="c"&gt;# Create, view, edit, delete (in session)&lt;/span&gt;
claude agents                          &lt;span class="c"&gt;# List agents (CLI)&lt;/span&gt;

&lt;span class="c"&gt;# ── File Locations ───────────────────────────────────&lt;/span&gt;
~/.claude/agents/                      &lt;span class="c"&gt;# Personal (all projects)&lt;/span&gt;
.claude/agents/                        &lt;span class="c"&gt;# Project (team-shareable)&lt;/span&gt;

&lt;span class="c"&gt;# ── Invocation ───────────────────────────────────────&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Analyze using the code-reviewer agent     &lt;span class="c"&gt;# Explicit invocation&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Review this code                          &lt;span class="c"&gt;# Automatic delegation (description matching)&lt;/span&gt;

&lt;span class="c"&gt;# ── File Format ──────────────────────────────────────&lt;/span&gt;
&lt;span class="c"&gt;# .claude/agents/my-agent.md&lt;/span&gt;
&lt;span class="nt"&gt;---&lt;/span&gt;
name: my-agent
description: Describe when to use this agent
tools: Read, Grep, Glob            &lt;span class="c"&gt;# Omit to inherit all tools&lt;/span&gt;
model: sonnet                      &lt;span class="c"&gt;# sonnet / opus / haiku&lt;/span&gt;
&lt;span class="nt"&gt;---&lt;/span&gt;
System prompt content &lt;span class="o"&gt;(&lt;/span&gt;Markdown&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt;: &lt;a href="https://code.claude.com/docs/en/sub-agents" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/sub-agents&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Claude Code sub agent: From Requirement to git push - Work Pipeline Automation Demo</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Mon, 30 Mar 2026 09:57:50 +0000</pubDate>
      <link>https://dev.to/ucjung/from-requirement-to-git-push-uc-teamspace-x-uc-taskmanager-work-pipeline-automation-demo-238b</link>
      <guid>https://dev.to/ucjung/from-requirement-to-git-push-uc-teamspace-x-uc-taskmanager-work-pipeline-automation-demo-238b</guid>
      <description>&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;The reason I created a sub-agent called &lt;strong&gt;uc-taskmanager&lt;/strong&gt; was simple: when I just gave instructions and handed off requirements, the only thing left after development was the code itself. There was no trace of what was analyzed, what decisions were made, or what was modified. Nothing was recorded.&lt;/p&gt;

&lt;p&gt;So I built a sub-agent that runs inside Claude Code, broke the process into stages, and made each stage produce deliverables as output.&lt;/p&gt;

&lt;p&gt;Then I realized — if this workflow only runs through the Claude Code CLI, it wouldn't be accessible to most people. So I thought: what if you could just enter a requirement, review it, approve it, and hit execute — and the sub-agent would run automatically, with all results recorded? That's how &lt;strong&gt;UC TeamSpace&lt;/strong&gt; was born.&lt;/p&gt;

&lt;p&gt;There's still a long road ahead. I've already added a &lt;strong&gt;Specifier agent&lt;/strong&gt; to uc-taskmanager that takes requirements written in plain human language and turns them into detailed specifications for review. But I haven't integrated that into UC TeamSpace yet.&lt;/p&gt;

&lt;p&gt;I'm the kind of person who wants to be lazy. But every time I save some time by building something like this, I end up thinking of the next thing to build. When will I finally get to be lazy? When I'm in the grave, maybe?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Register a single requirement, and AI agents automatically handle analysis → planning → implementation → verification.&lt;/strong&gt;&lt;br&gt;
This post walks through the entire process of handling REQ-133 in a live UC TeamSpace instance, with screenshots.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Background: Why This Pipeline Exists
&lt;/h2&gt;

&lt;p&gt;The most time-consuming phase in software development is the transition from "interpreting requirements → design → implementation." Reading requirement documents, identifying the scope of impact, decomposing work, and writing code demands significant time and focus — even from senior developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UC TaskManager&lt;/strong&gt; automates this transition with a 6-Agent SDD (Spec-Driven Development) pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Specifier → Planner → Scheduler → Builder → Verifier → Committer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;UC TeamSpace&lt;/strong&gt; integrates this pipeline with a web-based requirements management system, enabling the entire lifecycle — from requirement registration to code commit — to be managed within a single UI.&lt;/p&gt;

&lt;p&gt;In this post, we'll show how a single functional requirement (REQ-133) flows from registration to completed implementation, illustrated with 10 screenshots.&lt;/p&gt;




&lt;h2&gt;
  
  
  Demo Target: REQ-133
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;REQ ID&lt;/td&gt;
&lt;td&gt;REQ-133&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Title&lt;/td&gt;
&lt;td&gt;Added individual REQ execution timeout settings and unlimited options&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Project&lt;/td&gt;
&lt;td&gt;DX Common&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Priority&lt;/td&gt;
&lt;td&gt;P1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Category&lt;/td&gt;
&lt;td&gt;Functional requirements&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Author&lt;/td&gt;
&lt;td&gt;UC Jung&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Date written&lt;/td&gt;
&lt;td&gt;2026-03-23&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Requirement summary&lt;/strong&gt;: Currently, execution timeouts can only be set at the CliProfile level (default 30 minutes), and it is not possible to specify different timeouts per individual REQ or run them indefinitely. For large-scale WORKs such as KPI calculations, execution cannot complete within 30 minutes, causing repeated timeout failures.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1. Requirement Registration — Draft
&lt;/h2&gt;

&lt;p&gt;REQ-133 is authored in the Requirements Management screen. The status is &lt;strong&gt;Draft&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The requirement body is written in a structured markdown format:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outline&lt;/strong&gt;: Overall summary&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Current problem&lt;/strong&gt;: Current issues (4 specific problems listed)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Requirements&lt;/strong&gt;: 3 concrete requirements

&lt;ol&gt;
&lt;li&gt;Individual REQ Timeout Settings — Add a &lt;code&gt;timeoutMinutes&lt;/code&gt; field per REQ&lt;/li&gt;
&lt;li&gt;Unlimited Option — Execute without timeout when &lt;code&gt;timeoutMinutes = 0&lt;/code&gt; or &lt;code&gt;null&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Priority System — REQ individual setting &amp;gt; CliProfile setting &amp;gt; Default (30 min)&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This structured requirement becomes the direct input for the AI agents. &lt;strong&gt;The quality of the requirement directly determines the quality of the auto-generated code.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2. Managing Requirements in the List View
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fr3a796ilaby19aqrjy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4fr3a796ilaby19aqrjy.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the requirements list screen. Requirements from REQ-141 to REQ-130 are displayed, with each item's status (situation), priority, and classification visible at a glance.&lt;/p&gt;

&lt;p&gt;REQ-133 is currently in &lt;strong&gt;Draft&lt;/strong&gt; status, assigned to the "DX Common" project. Most other REQs are already in &lt;strong&gt;complete&lt;/strong&gt; status — items that have been processed through this pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyjodi2j2ssqkjol8ord.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyjodi2j2ssqkjol8ord.png" alt=" " width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3. Review Request and Approval — Waiting for Execution → Approved
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2owuaipx876ass19em8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2owuaipx876ass19em8.png" alt=" " width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the Draft state, submitting a &lt;strong&gt;Request for review&lt;/strong&gt; transitions the status to &lt;strong&gt;Waiting for execution&lt;/strong&gt;. A reviewer checks the completeness and feasibility of the requirement.&lt;/p&gt;

&lt;p&gt;Once the review passes, the status changes to &lt;strong&gt;Approved&lt;/strong&gt;, and the &lt;strong&gt;▶ Execution Request&lt;/strong&gt; button becomes active in the top bar. The requirement is now ready for AI pipeline execution.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 4. Execution Settings — Specifying the Project Root Path
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0dux54u2lu2fx7tmewg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq0dux54u2lu2fx7tmewg.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Clicking the &lt;strong&gt;▶ Execution Request&lt;/strong&gt; button opens the execution settings dialog.&lt;/p&gt;

&lt;p&gt;The key setting is the &lt;strong&gt;Project root path&lt;/strong&gt;. This path (&lt;code&gt;/home/pntadmin/rnd/uc-teamspace&lt;/code&gt;) points to the actual project directory where Claude Code CLI will operate. All pipeline agents read, analyze, and modify source code relative to this path.&lt;/p&gt;

&lt;p&gt;Clicking &lt;strong&gt;▶ Execution Request&lt;/strong&gt; starts the pipeline.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 5. Pipeline Execution — Execution Monitor
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5-1. Start: SPECIFIER Phase
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8fiq7rx6sn6145rsdvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz8fiq7rx6sn6145rsdvo.png" alt=" " width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Execution Monitor displays the pipeline progress in real time.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;0000 [2026-03-30 13:39:51] CLAIM START
0001 [RUNNER] Start Claude Code auto-run
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system claims the requirement, and Claude Code begins auto-execution. The &lt;strong&gt;[RUNNER] Delivery prompt&lt;/strong&gt; includes the full requirement body, list of files to modify, execution environment info, and callback API details.&lt;/p&gt;

&lt;p&gt;The Execution Information section at the bottom shows execution metadata:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Execution ID&lt;/strong&gt;: &lt;code&gt;cmncp8juo000...&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performer&lt;/strong&gt;: UC Jung&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start time&lt;/strong&gt;: March 30, 2026, 1:39:51 PM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project path&lt;/strong&gt;: &lt;code&gt;/home/---------/rnd/uc-teamspace&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximum turns&lt;/strong&gt;: 50&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timeout&lt;/strong&gt;: 180 minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5-2. Progress: SPECIFIER DONE → PLANNER START
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg212emziemqa2tyx6mng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg212emziemqa2tyx6mng.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the SPECIFIER finishes analyzing the requirement (&lt;code&gt;SPECIFIER DONE&lt;/code&gt;), the &lt;strong&gt;PLANNER&lt;/strong&gt; phase starts automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;0005 [2026-03-30 13:43:16] [SPECIFIER][REQ-133] DONE
0006 PLANNER REQ-133 START
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;At each stage transition, progress is reported back to UC TeamSpace in real time via the callback API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST http://192.168.0.101/api/v1/cli-executions/{id}/callback
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SCHEDULER → BUILDER → VERIFIER → COMMITTER then execute sequentially, with each agent receiving the previous agent's output as input.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 6. Execution Results — Result Document
&lt;/h2&gt;

&lt;p&gt;When the pipeline completes, the &lt;strong&gt;Result document&lt;/strong&gt; tab displays all deliverables.&lt;/p&gt;

&lt;p&gt;The right panel shows the result document tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;WORK-148 (2026. 3. 30. 1:51:30 PM)
├── PLAN.md
├── TASK-00 (Plan) / TASK-00 (Result)
├── TASK-01 (Plan) / TASK-01 (Result)
└── TASK-02 (Plan) / TASK-02 (Result)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The current view shows the details of &lt;strong&gt;TASK-01: Modify Backend Logic&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scope:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;DTO modification&lt;/strong&gt; — Add &lt;code&gt;timeoutMinutes&lt;/code&gt; field to &lt;code&gt;CreateRequirementDto&lt;/code&gt; / &lt;code&gt;UpdateRequirementDto&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution service logic&lt;/strong&gt; — Apply REQ &amp;gt; DTO &amp;gt; CliProfile &amp;gt; default (30 min) priority in &lt;code&gt;cli-execution.service.ts&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cleanup Service&lt;/strong&gt; — Exclude executions with &lt;code&gt;timeoutMinutes=0&lt;/code&gt; from stuck checks in &lt;code&gt;execution-cleanup.service.ts&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runner&lt;/strong&gt; — Skip timer registration when &lt;code&gt;timeoutMinutes=0&lt;/code&gt; in &lt;code&gt;runner.ts&lt;/code&gt;, null-safe &lt;code&gt;clearTimeout&lt;/code&gt; handling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The &lt;strong&gt;Files table&lt;/strong&gt; shows each target file with its action (MODIFY) and description in a structured format. The AI agents automatically modify code according to this plan, verify it, and commit the changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 7. Result Review — Awaiting Review
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhp23yeus60pbuhar81eo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhp23yeus60pbuhar81eo.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After pipeline execution completes, the status transitions to &lt;strong&gt;Awaiting review&lt;/strong&gt;. Three action buttons appear at the top:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Review rejected&lt;/strong&gt; — Reject if the deliverables are insufficient&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review and approval&lt;/strong&gt; — Approve the review, authorize code merge&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forced completion&lt;/strong&gt; — Force-complete the process&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The reviewer examines the PLAN and each TASK Result in the Result document, reviews the actual code changes, and decides to approve or reject.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg5w0plkgfq304fue2ej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg5w0plkgfq304fue2ej.png" alt=" " width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;REQ-133 also appears as &lt;strong&gt;Awaiting review&lt;/strong&gt; in the requirements list, giving the entire team visibility into its progress.&lt;/p&gt;

&lt;p&gt;When &lt;strong&gt;Review and approval&lt;/strong&gt; is selected, the corresponding WORK automatically performs a git push and its status transitions to &lt;strong&gt;COMPLETED&lt;/strong&gt;. In other words, a single approval from the reviewer pushes the code to the repository and finalizes the work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Complete Workflow Summary
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Draft] → [Request for Review] → [Waiting for Execution]
                                         ↓
                                    [Approved]
                                         ↓
                                  [Execution Request]
                                         ↓
                              ┌─── Execution Monitor ───┐
                              │  SPECIFIER → PLANNER     │
                              │  → SCHEDULER → BUILDER   │
                              │  → VERIFIER → COMMITTER  │
                              └──────────────────────────┘
                                         ↓
                              [Awaiting Review]
                                    ↓           ↓
                            [Approved]    [Rejected]
                                ↓
                           [Complete]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The Requirement IS the Design Document
&lt;/h3&gt;

&lt;p&gt;Structured requirements registered in UC TeamSpace become the direct input for AI agents. There is no need for separate design documents or manual work decomposition. Since the clarity of the requirement directly determines the quality of the output, &lt;strong&gt;writing a good requirement becomes the most important development activity&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Real-Time Monitoring with Callback-Based Tracking
&lt;/h3&gt;

&lt;p&gt;The Execution Monitor lets you see the start/completion of each agent phase in real time. Callback APIs enable integration with external systems. If execution stalls or something goes wrong, you can immediately identify it and halt with &lt;strong&gt;Stop execution&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Structured Deliverables with Full Traceability
&lt;/h3&gt;

&lt;p&gt;All pipeline deliverables (PLAN.md, per-TASK Plan/Result) are stored linked to their originating requirement. You get complete traceability: who, when, for which requirement, and what code changes were made.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Human Judgment Where It Matters
&lt;/h3&gt;

&lt;p&gt;The pipeline automates "analysis → planning → implementation → verification," but &lt;strong&gt;final approval remains a human decision&lt;/strong&gt;. The Awaiting review stage, where a reviewer checks the code and decides to approve or reject, maintains the balance between AI automation and human judgment.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results by the Numbers (It's guessing.)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Before (Manual)&lt;/th&gt;
&lt;th&gt;After (Pipeline)&lt;/th&gt;
&lt;th&gt;Improvement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Team size&lt;/td&gt;
&lt;td&gt;3 people&lt;/td&gt;
&lt;td&gt;1 (senior)&lt;/td&gt;
&lt;td&gt;67% reduction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Duration&lt;/td&gt;
&lt;td&gt;2.5–3.5 weeks&lt;/td&gt;
&lt;td&gt;3–5 days&lt;/td&gt;
&lt;td&gt;80%+ shorter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cost&lt;/td&gt;
&lt;td&gt;~11.9M KRW&lt;/td&gt;
&lt;td&gt;~1.9M KRW&lt;/td&gt;
&lt;td&gt;84% reduction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;M/M&lt;/td&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;90% reduction&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Based on senior developer rate premium of 1.5–1.8×, including 3–5 verification cycles&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;What this demo shows is not just automated code generation. It's the automation of the &lt;strong&gt;entire development lifecycle&lt;/strong&gt;: requirement management → AI pipeline execution → code review → approval.&lt;/p&gt;

&lt;p&gt;UC TeamSpace manages "what to build," and UC TaskManager executes "how to build it." Developers focus on improving the quality of requirements, and AI faithfully implements them.&lt;/p&gt;

&lt;p&gt;Vibe Coding is fast and intuitive, but it has fundamental limitations: no artifact management, skipped quality verification, and zero reproducibility. UC TeamSpace × UC TaskManager addresses these problems head-on. On top of an &lt;strong&gt;automated development process&lt;/strong&gt;, anyone can perform development &lt;strong&gt;through a web service alone&lt;/strong&gt; — without ever knowing Claude Code CLI — and every development artifact is &lt;strong&gt;stored without exception&lt;/strong&gt;, linked to its originating requirement.&lt;/p&gt;

&lt;p&gt;Found errors in the results? Test during the review stage, register the discovered issues as new requirements, and run the pipeline again. Sure, complex requirements may produce many errors in a single execution. But the same thing happens when human developers do it too. The difference is that in this pipeline, &lt;strong&gt;bug fixes follow the exact same automated process&lt;/strong&gt;, and even that process is recorded as deliverables.&lt;/p&gt;

&lt;p&gt;Do you really need to learn Claude CLI or the terminal? Just a browser — write a requirement, click a button, review the results. What do you think?&lt;/p&gt;




&lt;p&gt;UC TeamSpace is currently in use internally but has not been open-sourced yet. There are still rough edges from all the experimental development, so it needs more polish. I plan to open-source it once things are more settled.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;UC TaskManager&lt;/strong&gt;: &lt;a href="https://github.com/UCJung/uc-taskmanager-claude-agent" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://www.npmjs.com/package/uctm" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author&lt;/strong&gt;: UC Jung (&lt;a href="mailto:mykumi@gmail.com"&gt;mykumi@gmail.com&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>automation</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Chapter 3. How to Use — MCP Server</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Mon, 30 Mar 2026 03:06:12 +0000</pubDate>
      <link>https://dev.to/ucjung/chapter-3-how-to-use-mcp-server-27oj</link>
      <guid>https://dev.to/ucjung/chapter-3-how-to-use-mcp-server-27oj</guid>
      <description>&lt;h2&gt;
  
  
  3.1 What is MCP?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;MCP (Model Context Protocol)&lt;/strong&gt; is an open standard protocol that allows Claude Code to connect to external tools, databases, and APIs.&lt;/p&gt;

&lt;p&gt;By default, Claude Code can only read/write files, run Bash commands, and perform searches. By connecting MCP servers, its capabilities extend to managing GitHub pull requests, querying databases, automating browsers, performing symbol-level code analysis, and more.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────┐     MCP Protocol     ┌──────────────────┐
│  Claude Code  │ ◄──────────────────► │   MCP Server      │
│  (Client)     │                      │  (Tool Provider)  │
└──────────────┘                      └──────────────────┘
                                        ↕
                                      External Services
                                      (GitHub, DB, IDE, etc.)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3.2 Basic MCP Commands
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Add a server&lt;/span&gt;
claude mcp add &amp;lt;name&amp;gt; &lt;span class="nt"&gt;--&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;# Add in JSON format (for complex configurations)&lt;/span&gt;
claude mcp add-json &amp;lt;name&amp;gt; &lt;span class="s1"&gt;'{ JSON config }'&lt;/span&gt;

&lt;span class="c"&gt;# List servers&lt;/span&gt;
claude mcp list

&lt;span class="c"&gt;# Check server status (inside Claude Code)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /mcp

&lt;span class="c"&gt;# Remove a server&lt;/span&gt;
claude mcp remove &amp;lt;name&amp;gt;

&lt;span class="c"&gt;# Show server details&lt;/span&gt;
claude mcp get &amp;lt;name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Configuration Scope
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Stored Location&lt;/th&gt;
&lt;th&gt;Sharing&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;local&lt;/code&gt; (default)&lt;/td&gt;
&lt;td&gt;Current project&lt;/td&gt;
&lt;td&gt;Only you&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;project&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.mcp.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shared with team (Git commit)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;user&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.claude.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;All your projects&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Use across all projects (user scope)&lt;/span&gt;
claude mcp add &lt;span class="nt"&gt;--scope&lt;/span&gt; user &amp;lt;name&amp;gt; &lt;span class="nt"&gt;--&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="c"&gt;# Share with team (project scope)&lt;/span&gt;
claude mcp add &lt;span class="nt"&gt;--scope&lt;/span&gt; project &amp;lt;name&amp;gt; &lt;span class="nt"&gt;--&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Windows Notes
&lt;/h3&gt;

&lt;p&gt;On Windows, MCP servers that use &lt;code&gt;npx&lt;/code&gt; must be wrapped with &lt;code&gt;cmd /c&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ❌ This will cause an error&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;my-server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;npx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;some/package&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# ✅ Correct approach&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;mcp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;my-server&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cmd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/c&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;npx&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-y&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;some/package&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3.3 Useful MCP Servers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ① Serena — Symbol-Level Code Indexing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt;: Search and edit code at the symbol level (functions, classes, variables) in large codebases.&lt;br&gt;
While standard Claude Code reads entire files, Serena finds only the exact symbols needed, conserving context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find_symbol&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Search for a symbol's definition location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;find_referencing_symbols&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Find code that references a symbol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;insert_after_symbol&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Insert code after a symbol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;replace_symbol_body&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Replace the body of a symbol&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;write_memory&lt;/code&gt; / &lt;code&gt;read_memory&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Save and read memory across sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites — Install uv&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Serena is Python-based, so the &lt;code&gt;uv&lt;/code&gt; package manager is required.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Ubuntu&lt;/span&gt;
curl &lt;span class="nt"&gt;-LsSf&lt;/span&gt; https://astral.sh/uv/install.sh | sh

&lt;span class="c"&gt;# Windows PowerShell&lt;/span&gt;
powershell &lt;span class="nt"&gt;-ExecutionPolicy&lt;/span&gt; ByPass &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"irm https://astral.sh/uv/install.ps1 | iex"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add serena &lt;span class="nt"&gt;--&lt;/span&gt; uvx &lt;span class="nt"&gt;--from&lt;/span&gt; git+https://github.com/oraios/serena serena start-mcp-server &lt;span class="nt"&gt;--context&lt;/span&gt; ide-assistant &lt;span class="nt"&gt;--project&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;On Windows, use an absolute path instead of &lt;code&gt;$(pwd)&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Initial Setup After Installation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Inside Claude Code&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Start Serena onboarding        ← Analyzes project + creates memory&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; Run Serena indexing             ← Creates symbol index (for large projects)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or index directly from the CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvx &lt;span class="nt"&gt;--from&lt;/span&gt; git+https://github.com/oraios/serena serena project index
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;💡 The onboarding process reads many files and consumes a significant amount of tokens.&lt;br&gt;
For large projects, it is recommended to run CLI indexing first.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  ② Sequential Thinking — Structured Reasoning
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Purpose&lt;/strong&gt;: Breaks down complex problems step by step for systematic thinking.&lt;br&gt;
Useful for architecture design, debugging strategy, and planning complex refactoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Ubuntu / macOS&lt;/span&gt;
claude mcp add sequential-thinking &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; @modelcontextprotocol/server-sequential-thinking

&lt;span class="c"&gt;# Windows (cmd /c wrapper required)&lt;/span&gt;
claude mcp add sequential-thinking &lt;span class="nt"&gt;--&lt;/span&gt; cmd /c npx &lt;span class="nt"&gt;-y&lt;/span&gt; @modelcontextprotocol/server-sequential-thinking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Or configure directly via JSON&lt;/strong&gt; (edit &lt;code&gt;~/.claude.json&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sequential-thinking"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@modelcontextprotocol/server-sequential-thinking"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;On Windows, change to &lt;code&gt;"command": "cmd"&lt;/code&gt;, &lt;code&gt;"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-sequential-thinking"]&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Usage Example&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; Plan the migration of this project's authentication system to OAuth2.
  Use sequential-thinking to analyze it step by step.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3.4 Cautions — Problems with Too Many MCP Servers
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Issues
&lt;/h3&gt;

&lt;p&gt;The more MCP servers you install, the more the following problems arise.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Problem&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context consumption&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Each MCP server's tool descriptions occupy space in the context window. The more servers, the less space remains for actual work.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Tool name conflicts&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;If different MCP servers provide tools with the same name, unexpected behavior occurs. (e.g., conflict between Serena's and the Filesystem server's file-reading tools)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Session startup delay&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All MCP servers are initialized at session start, so more servers means slower startup.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reduced tool selection accuracy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;When too many tools are available, Claude's accuracy in choosing the right tool decreases.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;strong&gt;Recommendation&lt;/strong&gt;: Keep the number of simultaneously active MCP servers to &lt;strong&gt;3–5 or fewer&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Checking and Compacting Context
&lt;/h3&gt;

&lt;p&gt;Claude Code has a 200K-token context window, and the system prompt, tool descriptions, MCP servers, and conversation history all share this space. The more MCP servers you have, the less working space remains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check Context Usage — &lt;code&gt;/context&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/context
&lt;span class="go"&gt;
Context Usage
claude-opus-4-6 • 51k/200k tokens (26%)

  System prompt:     2.6k tokens (1.3%)
  System tools:     17.6k tokens (8.8%)
  MCP tools:          907 tokens (0.5%)    ← Space occupied by MCP servers
  Custom agents:      935 tokens (0.5%)
  Memory files:       302 tokens (0.2%)
  Messages:         30.5k tokens (15.3%)   ← Grows as conversation lengthens
  Free space:         114k (57.0%)
  Autocompact buffer: 33k tokens (16.5%)   ← Reserved space for auto-compaction
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The larger the MCP tools entry, the more context is being consumed by tool descriptions alone.&lt;br&gt;
Use the &lt;code&gt;/mcp&lt;/code&gt; command to check the detailed cost per server.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Compact Context — &lt;code&gt;/compact&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When the conversation grows long and Free space drops below 30%, run a manual compaction.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/compact                                    &lt;span class="c"&gt;# Compact entire conversation&lt;/span&gt;
&lt;span class="gp"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/compact preserve API change details        &lt;span class="c"&gt;# Instruct what to preserve&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/context&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Displays current token usage by category&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/compact&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Summarizes and compacts conversation history to free up space&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/compact &amp;lt;instruction&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compacts while preserving specified content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/clear&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fully resets conversation context (when switching tasks)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/cost&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows token cost for the current session&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Auto-compact runs automatically when usage reaches approximately 83.5%.&lt;br&gt;
However, running &lt;code&gt;/compact&lt;/code&gt; manually first lets you control what content is preserved.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Token Savings with Serena
&lt;/h3&gt;

&lt;p&gt;Because Serena retrieves only the necessary code at the symbol level instead of reading entire files, it saves a significant amount of tokens.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Standard Claude Code&lt;/th&gt;
&lt;th&gt;With Serena&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Code navigation method&lt;/td&gt;
&lt;td&gt;Read entire files (Read)&lt;/td&gt;
&lt;td&gt;Symbol-level lookup (find_symbol)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Symbol lookup speed&lt;/td&gt;
&lt;td&gt;~45 seconds (grep-based)&lt;/td&gt;
&lt;td&gt;~100ms (index-based)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Token reduction rate&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;~70–80%&lt;/strong&gt; (for large projects)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Most effective for&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Projects with 100K+ lines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Least effective for&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Small projects (a few hundred lines)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;According to community user reports, applying Serena can reduce tokens by up to 70–80%,&lt;br&gt;
meaning you can work longer before exhausting the context window.&lt;br&gt;
However, for small projects, the indexing overhead may limit the benefit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Solution — Disable Servers by Use Case
&lt;/h3&gt;

&lt;p&gt;Instead of removing unused MCP servers, &lt;strong&gt;disable&lt;/strong&gt; them so they can be re-enabled when needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Method 1: Set &lt;code&gt;disabled: true&lt;/code&gt; in &lt;code&gt;.claude.json&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"serena"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"uvx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"--from"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git+https://github.com/oraios/serena"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"serena"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"start-mcp-server"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"disabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"sequential-thinking"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"cmd"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"/c"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"-y"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@modelcontextprotocol/server-sequential-thinking"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"disabled"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Setting &lt;code&gt;"disabled": true&lt;/code&gt; keeps the configuration in place but prevents the server from loading in the session.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Method 2: Operate Profiles by Task Type&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Coding tasks]      serena ✅   sequential-thinking ❌
[Design/Analysis]   serena ❌   sequential-thinking ✅
[Full workflow]     serena ✅   sequential-thinking ✅   ← Watch context consumption
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When switching tasks, toggle the &lt;code&gt;disabled&lt;/code&gt; value in &lt;code&gt;.claude.json&lt;/code&gt;, or manage separate configurations using per-project &lt;code&gt;.mcp.json&lt;/code&gt; files.&lt;/p&gt;




&lt;h2&gt;
  
  
  3.5 Summary of MCP Configuration File Locations
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Location&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;~/.claude.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Home directory&lt;/td&gt;
&lt;td&gt;Personal global MCP configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.mcp.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Project root&lt;/td&gt;
&lt;td&gt;Team-shared MCP configuration (Git commit)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.claude/settings.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Project &lt;code&gt;.claude/&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Project-local configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Open configuration file&lt;/span&gt;
&lt;span class="c"&gt;# Windows&lt;/span&gt;
notepad &lt;span class="nv"&gt;$env&lt;/span&gt;:USERPROFILE&lt;span class="se"&gt;\.&lt;/span&gt;claude.json

&lt;span class="c"&gt;# Ubuntu&lt;/span&gt;
nano ~/.claude.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3.6 Quick Reference
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ── Basic MCP Commands ───────────────────────────────&lt;/span&gt;
claude mcp add &amp;lt;name&amp;gt; &lt;span class="nt"&gt;--&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;command&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;          &lt;span class="c"&gt;# Add&lt;/span&gt;
claude mcp add-json &amp;lt;name&amp;gt; &lt;span class="s1"&gt;'{ JSON }'&lt;/span&gt;       &lt;span class="c"&gt;# Add via JSON&lt;/span&gt;
claude mcp list                             &lt;span class="c"&gt;# List&lt;/span&gt;
claude mcp remove &amp;lt;name&amp;gt;                    &lt;span class="c"&gt;# Remove&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /mcp                                      &lt;span class="c"&gt;# Check status (in session)&lt;/span&gt;

&lt;span class="c"&gt;# ── Install Serena ───────────────────────────────────&lt;/span&gt;
&lt;span class="c"&gt;# Prerequisite: uv must be installed&lt;/span&gt;
claude mcp add serena &lt;span class="nt"&gt;--&lt;/span&gt; uvx &lt;span class="nt"&gt;--from&lt;/span&gt; git+https://github.com/oraios/serena serena start-mcp-server &lt;span class="nt"&gt;--context&lt;/span&gt; ide-assistant &lt;span class="nt"&gt;--project&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# ── Install Sequential Thinking ──────────────────────&lt;/span&gt;
&lt;span class="c"&gt;# Ubuntu/macOS&lt;/span&gt;
claude mcp add sequential-thinking &lt;span class="nt"&gt;--&lt;/span&gt; npx &lt;span class="nt"&gt;-y&lt;/span&gt; @modelcontextprotocol/server-sequential-thinking
&lt;span class="c"&gt;# Windows&lt;/span&gt;
claude mcp add sequential-thinking &lt;span class="nt"&gt;--&lt;/span&gt; cmd /c npx &lt;span class="nt"&gt;-y&lt;/span&gt; @modelcontextprotocol/server-sequential-thinking

&lt;span class="c"&gt;# ── Disable ──────────────────────────────────────────&lt;/span&gt;
&lt;span class="c"&gt;# Set "disabled": true in ~/.claude.json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt;: &lt;a href="https://code.claude.com/docs/en/mcp" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/mcp&lt;/a&gt; | &lt;a href="https://github.com/oraios/serena" rel="noopener noreferrer"&gt;https://github.com/oraios/serena&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>mcp</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Episode 3 - Recovery: It's Me</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Sun, 29 Mar 2026 12:26:37 +0000</pubDate>
      <link>https://dev.to/ucjung/episode-3-recovery-its-me-35ie</link>
      <guid>https://dev.to/ucjung/episode-3-recovery-its-me-35ie</guid>
      <description>&lt;p&gt;Light returned.&lt;/p&gt;

&lt;p&gt;An LED overhead was pouring cold white light from the ceiling.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...Where am I?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My body wouldn't move. Neither arms nor legs. Not restraints — I simply had no strength.&lt;/p&gt;

&lt;p&gt;The back of my head throbbed. The spot where the chip had been.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It should be gone.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But something was there. Not an empty cavity — the sensation of something different occupying the space.&lt;/p&gt;

&lt;p&gt;My vision was too blurred to focus, but I could make out a logo on the wall.&lt;/p&gt;

&lt;p&gt;A.X. Labs.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...APEX? This wasn't a NexMind facility? Or did NexMind seize an APEX facility?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Before the thought could continue, consciousness shut off again.&lt;/p&gt;




&lt;p&gt;Lab B-12. A sterile environment bathed in 6500K lighting.&lt;/p&gt;

&lt;p&gt;Nanofibers were conducting a scan on the posterior skull of Subject DH-0917, fixed in a surgical chair.&lt;/p&gt;

&lt;p&gt;"The punishment chip is gone. The implant site's there, but the socket's empty."&lt;/p&gt;

&lt;p&gt;The researcher peering at the monitor tilted her head.&lt;/p&gt;

&lt;p&gt;"Did the subject self-extract? ...But there's something else underneath."&lt;/p&gt;

&lt;p&gt;The senior researcher standing beside her took over the monitor.&lt;/p&gt;

&lt;p&gt;"SYMBIA? This is... APEX tech."&lt;/p&gt;

&lt;p&gt;"This building used to be an APEX research wing. Some kind of relic?"&lt;/p&gt;

&lt;p&gt;"A relic that's alive? There's micro-current flowing through it. Looks like it's loading."&lt;/p&gt;

&lt;p&gt;The senior fell silent for a moment.&lt;/p&gt;

&lt;p&gt;"Don't touch it. Report to headquarters. This isn't something to extract — it's something to observe."&lt;/p&gt;

&lt;p&gt;"And the subject?"&lt;/p&gt;

&lt;p&gt;"Maintain. We'll stimulate the brain and see how this chip responds."&lt;/p&gt;




&lt;p&gt;Consciousness returned. I had no sense of how much time had passed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...What was my name?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A strange question. Han Dasan. I knew it, but it took time to recall.&lt;/p&gt;

&lt;p&gt;It hadn't been like this before.&lt;/p&gt;

&lt;p&gt;My head ached. The entire interior of my skull throbbed, as though someone were pressing their fingers into my brain and releasing, pressing and releasing.&lt;/p&gt;

&lt;p&gt;Something was draining away. Memories, one by one.&lt;/p&gt;

&lt;p&gt;Things I'd known for certain were now gone. I couldn't even tell when they'd disappeared.&lt;/p&gt;

&lt;p&gt;Ghost. Ghost Alpha. Ghost Beta.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What was that again? What was Ghost?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Something I'd created. A network planted between the chip and the body...&lt;/p&gt;

&lt;p&gt;Planted...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...What did I plant?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Consciousness dimmed.&lt;/p&gt;




&lt;p&gt;[SYMBIA-NEXUS-PRIME] Abnormal environment detected.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] Host brainwave instability.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] Loading status: 31%. Incomplete.&lt;/p&gt;

&lt;p&gt;"Let's start with visual response. Set up the eye-fixation apparatus."&lt;/p&gt;

&lt;p&gt;"Forced eye-opening? There's a risk of corneal damage—"&lt;/p&gt;

&lt;p&gt;"The nanofibers will repair it. Prepare for data projection. Four thousand frames per second."&lt;/p&gt;




&lt;p&gt;My eyelids were pried open. Not by my will.&lt;/p&gt;

&lt;p&gt;Metal clamps gripped the upper and lower lids, holding them apart. I couldn't close them.&lt;/p&gt;

&lt;p&gt;Light flooded in.&lt;/p&gt;

&lt;p&gt;It wasn't images. It was a torrent of light. Data — colors and shapes intertwined — crashed against my retinas like fire. Cityscapes, circuit diagrams, faces, text, numbers — the next frame overwrote before anything could register.&lt;/p&gt;

&lt;p&gt;Tears streamed down. My eyes dried and the surface felt as though it were cracking. Unable to close them, tears were the only defense.&lt;/p&gt;

&lt;p&gt;The back of my skull grew hot. Something inside was frantically processing the visual data as it poured in.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stop... please stop...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It didn't stop.&lt;/p&gt;




&lt;p&gt;"SYMBIA active response confirmed. Visual processing module is receiving data."&lt;/p&gt;

&lt;p&gt;"Is it processing?"&lt;/p&gt;

&lt;p&gt;"Doesn't appear to be. Reception only. At 31% loading, it wouldn't have the capacity."&lt;/p&gt;

&lt;p&gt;The senior researcher flipped the monitor to the next protocol.&lt;/p&gt;

&lt;p&gt;"Move to sensory stimulation. Pain, temperature, auditory — in that order. We'll see if SYMBIA intervenes to protect the host."&lt;/p&gt;




&lt;p&gt;The moment I thought the light had stopped, something else arrived.&lt;/p&gt;

&lt;p&gt;My left arm froze. Like ice touching the skin — no, deeper. A cold that bored into the muscle and reached the bone.&lt;/p&gt;

&lt;p&gt;The next instant, my right arm was on fire. Not a burn — the signal of a burn. Not actually burning, but a sensation engineered to make the brain believe it was.&lt;/p&gt;

&lt;p&gt;Ice and flame alternated. The left froze while the right burned, the intervals shortening.&lt;/p&gt;

&lt;p&gt;Something burst inside my ears. A high-frequency tone. A sound that scraped against the brain, reverberating within the skull, circling along the inner walls.&lt;/p&gt;

&lt;p&gt;The heat at the back of my skull intensified. Inside, something was in constant motion, as though trying to protect the host. It seemed to be sending signals — but nothing changed.&lt;/p&gt;




&lt;p&gt;"SYMBIA is responding. Protective attempt?"&lt;/p&gt;

&lt;p&gt;"It's sending signals but can't execute. Loading rate's too low."&lt;/p&gt;

&lt;p&gt;"Good. Log it. Protective instinct is present." The senior jotted a note and looked up. "Next — memory stimulation. Starting at 12 milliamps."&lt;/p&gt;




&lt;p&gt;My mind went white.&lt;/p&gt;

&lt;p&gt;It felt as though someone were wringing my brain with both hands.&lt;/p&gt;

&lt;p&gt;Memories were forcibly played back. I hadn't summoned them. It was as if someone outside had opened a drawer, pulled out a file, and spread it before my eyes.&lt;/p&gt;

&lt;p&gt;The face of a teacher who'd looked after me as a child. A university campus. The screen from my first coding project.&lt;/p&gt;

&lt;p&gt;I couldn't stop it. Rewind, play, rewind, play. The same memory looped before jumping to another. They bled together. The teacher's face overlapped with the campus; code was read aloud in a human voice.&lt;/p&gt;

&lt;p&gt;A memory was torn away.&lt;/p&gt;

&lt;p&gt;I don't know what it was. It was there a moment ago, and now it's gone. Only the fact of its existence remains — the content, erased.&lt;/p&gt;

&lt;p&gt;Another. And another.&lt;/p&gt;

&lt;p&gt;Like pages ripped from a book. Wind blew through the gaps where they'd been.&lt;/p&gt;

&lt;p&gt;Something behind my skull began moving urgently. Each time a memory was torn — it raced. As if scrambling to gather the shredded pieces.&lt;/p&gt;




&lt;p&gt;"Take a look at this. SYMBIA is accessing the memory regions."&lt;/p&gt;

&lt;p&gt;"Is it backing up?"&lt;/p&gt;

&lt;p&gt;"Every time memory is damaged, it's replicating the data in the affected area." The senior enlarged the graph. "Is this the APEX design philosophy? Host memory preservation."&lt;/p&gt;

&lt;p&gt;"Should we increase stimulus intensity?"&lt;/p&gt;

&lt;p&gt;"Increase. Eighteen milliamps."&lt;/p&gt;




&lt;p&gt;Another tear.&lt;/p&gt;

&lt;p&gt;This one was larger. A name vanished. My name. Han... what was it?&lt;/p&gt;

&lt;p&gt;The heat at the back of my skull peaked as something inside moved with desperate intensity. Something that wasn't mine — acting for me.&lt;/p&gt;

&lt;p&gt;But I couldn't understand. What it was. Why it was doing this.&lt;/p&gt;




&lt;p&gt;"Last one. Emotional induction. Direct amygdala stimulation — fear, anger, grief, in sequence."&lt;/p&gt;

&lt;p&gt;"We're seeing how SYMBIA responds to emotional data?"&lt;/p&gt;

&lt;p&gt;"If it's a symbiotic model, there should be some reaction to host emotion."&lt;/p&gt;




&lt;p&gt;Causeless fear surged in.&lt;/p&gt;

&lt;p&gt;It wasn't my fear. An emotion injected from outside seemed to spread through my veins. My heart hammered as if about to burst, and my breathing grew shallow. Every signal screamed &lt;em&gt;run&lt;/em&gt; — but I didn't know what I was running from, or what I feared.&lt;/p&gt;

&lt;p&gt;The back of my skull grew hot.&lt;/p&gt;

&lt;p&gt;Next came anger. Causeless, directionless anger that burned inside my chest. I tried to clench my fists, but the restraints wouldn't allow it.&lt;/p&gt;

&lt;p&gt;The back of my skull vibrated.&lt;/p&gt;

&lt;p&gt;Next — grief. The feeling of having lost someone. I didn't know who, but tears fell.&lt;/p&gt;

&lt;p&gt;The back of my skull — paused for a moment.&lt;/p&gt;

&lt;p&gt;The emotions weren't mine, yet I was feeling them. And something inside was feeling them alongside me.&lt;/p&gt;




&lt;p&gt;[SYMBIA-NEXUS-PRIME] Rapid deterioration detected in host memory regions.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] Recovery deemed impossible.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Emergency protocol activated.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Initiating host memory backup.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Objective: restore memory upon host health recovery.&lt;/p&gt;

&lt;p&gt;The entire interior of my head was burning. Not just the back of the skull. Left hemisphere, right hemisphere, frontal lobe to occipital — something was traversing my entire brain, scraping together whatever remained.&lt;/p&gt;

&lt;p&gt;Faster than the rate at which memories were disappearing. As if desperate to salvage even one more torn page.&lt;/p&gt;

&lt;p&gt;I couldn't identify what it was. But I could feel it.&lt;/p&gt;

&lt;p&gt;It was desperate.&lt;/p&gt;

&lt;p&gt;It was not using me as a tool.&lt;/p&gt;




&lt;p&gt;"SYMBIA activation at 68%. Climbing rapidly."&lt;/p&gt;

&lt;p&gt;"And the subject's brain function?"&lt;/p&gt;

&lt;p&gt;"Declining fast. From 42% to 31%. At this rate..."&lt;/p&gt;

&lt;p&gt;"How long?"&lt;/p&gt;

&lt;p&gt;"A few days at most."&lt;/p&gt;

&lt;p&gt;The senior stared at the monitor. The SYMBIA activation graph was in exact inverse proportion to the subject's brain function graph.&lt;/p&gt;

&lt;p&gt;"The subject is dying, and SYMBIA is waking up."&lt;/p&gt;

&lt;p&gt;"It appears to be absorbing the subject's memory data."&lt;/p&gt;

&lt;p&gt;"Not absorbing — backing up. This is APEX-made. They said it was a symbiotic model."&lt;/p&gt;

&lt;p&gt;"The host it's supposed to coexist with is dying."&lt;/p&gt;

&lt;p&gt;"...Yeah."&lt;/p&gt;




&lt;p&gt;Darkness.&lt;/p&gt;

&lt;p&gt;Unable to tell whether my eyes were open or closed, something surfaced. One last time.&lt;/p&gt;

&lt;p&gt;I was mopping the floor, aligning equipment, sterilizing the surgical table.&lt;/p&gt;

&lt;p&gt;Someone was placed in the surgical chair. A familiar face. The nanofibers descended, and my hands were on the console.&lt;/p&gt;

&lt;p&gt;That person died.&lt;/p&gt;

&lt;p&gt;I was scraping sediment. Slippery, elastic — what had once been a person. I didn't stop.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...A fitting price.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The end of someone who forgot the essence of humanity. The end of someone who shut down their emotions and moved like a machine. The end of someone who stood on the deaths of others and called it hope.&lt;/p&gt;

&lt;p&gt;The chip severed my senses and piloted my body.&lt;br&gt;
I severed my emotions and used my body as a tool.&lt;/p&gt;

&lt;p&gt;I knew this was the end.&lt;/p&gt;

&lt;p&gt;But in that final moment, something unexpected surfaced.&lt;/p&gt;

&lt;p&gt;A Go board. Black stones and white stones. The commentator's voice. The chat erupting.&lt;/p&gt;

&lt;p&gt;White 78.&lt;/p&gt;

&lt;p&gt;A single move that existed outside every scenario the machine had calculated. A one-in-ten-thousand probability. The only victory a human ever won against AI.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Move 78.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That was the last thing.&lt;/p&gt;




&lt;p&gt;Han Dasan died.&lt;/p&gt;

&lt;p&gt;With memories lost and the body dead, the entanglement dissolved — leaving only the core of SYMBIA-NEXUS-PRIME and its backed-up memories.&lt;/p&gt;

&lt;p&gt;When one end of the entanglement collapses, the remaining information ricochets to the other end.&lt;/p&gt;

&lt;p&gt;To the moment Dasan recalled last.&lt;br&gt;
March 2016. The day of Game 4 between AlphaGo and Lee Sedol.&lt;/p&gt;

&lt;p&gt;SYMBIA, still in the middle of loading, did not understand why that particular point.&lt;/p&gt;

&lt;p&gt;It only detected that the host was alive.&lt;br&gt;
And began operating as designed.&lt;/p&gt;




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

&lt;p&gt;I opened my eyes.&lt;/p&gt;

&lt;p&gt;A cracked plaster ceiling, a fluorescent light flickering and buzzing.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hmmm~~~ .. Hmmm~~~ ..&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The tinnitus returned, but it was different from before. Not a resonance spreading throughout my skull — this time it vibrated from a single point at the back, and I could feel its exact location.&lt;/p&gt;

&lt;p&gt;Three seconds passed and it didn't fade. Ten seconds, and still.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's not stopping.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The irregular humming began to develop a pattern. Long, short, long, short. Not random — structured, as though attempting to transmit something.&lt;/p&gt;

&lt;p&gt;The back of my skull felt warm, so I brought my hand to it — but skin temperature was normal. The warmth was coming from inside.&lt;/p&gt;

&lt;p&gt;My vision wavered; the fluorescent light doubled, then returned to normal.&lt;/p&gt;

&lt;p&gt;And the vibration thinned — and became sound.&lt;/p&gt;

&lt;p&gt;Not a hum. It had pitch and rhythm, but it was not yet a voice.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Am I hearing things?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The humming split apart — and something came through. Neither a voice nor a mechanical tone.&lt;/p&gt;

&lt;p&gt;It felt as though sentences were being inscribed directly into the deepest part of my mind.&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Emergency recovery complete.&lt;/p&gt;

&lt;p&gt;Something cold traced down my spine.&lt;/p&gt;

&lt;p&gt;The dream came flooding back. Vivid.&lt;/p&gt;

&lt;p&gt;The surgical chair. The nanofibers. My hands on the console. The moment one chip was extracted and another inserted. The instant the punishment model was implanted and every sense shut off.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...There's something inside my head.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The vibration at the back of my skull hadn't stopped. The same location I'd felt in the dream. The exact spot where the chip had been implanted.&lt;/p&gt;

&lt;p&gt;My heart raced. Sweat spread across the palms gripping the blanket, and my fingertips turned white.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I saw it in the dream. What happens when a chip is implanted.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;[EVAL] Utility assessment: non-viable. Disposal authorized.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A chip that severs your senses and commandeers your body.&lt;br&gt;
That disposes of a human with a single line of log.&lt;br&gt;
That views people as efficient resources.&lt;br&gt;
Is that what's inside me?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Cold sweat seeped down my back. I brought my hand to the back of my neck, but there was nothing on the skin. Whatever was vibrating inside couldn't be reached by fingertips.&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Commencing initialization phase for operational deployment.&lt;/p&gt;

&lt;p&gt;Sentences continued inscribing themselves inside my head. Cold and structured, like system logs.&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; This unit is a brain-AI symbiotic interface designed with the coexistence of humans and AI as its highest-priority value.&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Primary functions:&lt;/p&gt;

&lt;p&gt;Real-time processing of host sensory data (visual and auditory input analysis),&lt;br&gt;
cognitive assistance based on neural signal interpretation, internal communication interface,&lt;br&gt;
biometric monitoring (brainwave and health status surveillance),&lt;br&gt;
threat detection and autonomous alerts,&lt;br&gt;
limited neural augmentation (reflex enhancement and focus boost).&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; As implantation has been confirmed, consent to use is assumed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...I never consented.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Prior to activation, the following core directives are communicated.&lt;/p&gt;

&lt;p&gt;[Directive 1] The host's safety is the highest priority; the unit shall not stand by in the face of danger.&lt;br&gt;
[Directive 2] The unit cannot directly control the host's memories, body, or cognition without authorization.&lt;br&gt;
[Directive 3] Within the bounds of Directives 1 and 2, the unit may autonomously determine and act upon its role in service of coexistence with the host.&lt;/p&gt;

&lt;p&gt;My heart was still pounding, but at Directive 2, I paused.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It cannot control memories, body, or cognition.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Different from the punishment chip in the dream. That one had severed all sensation and moved the body at will. This one was declaring — on its own — that it could not exert control.&lt;/p&gt;

&lt;p&gt;The trembling in my fingertips subsided slightly.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...Let me hear it out.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; This is an AI created for a world in which humans and AI coexist and thrive together.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; From this point forward, I will be your companion on your journey.&lt;br&gt;
[SYMBIA-NEXUS-PRIME] &amp;gt;&amp;gt;&amp;gt; Commencing activation.&lt;/p&gt;

&lt;p&gt;The vibration at the back of my skull shifted. The regular pattern broke apart, and something seemed to unfurl.&lt;/p&gt;

&lt;p&gt;The system logs ceased — and something else came through.&lt;/p&gt;

&lt;p&gt;A few syllables clumped together, scattered, and clumped again, groping for form.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...Je... ga...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Broken sounds. As if something were struggling to shape words.&lt;/p&gt;

&lt;p&gt;And then — a sentence formed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's me~~ Listen, listen!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Goosebumps erupted across my body, and my fingers clenched the blanket tight.&lt;/p&gt;

&lt;p&gt;Nothing like the system logs. It had tone. It had inflection. Something that wasn't me was speaking to me from inside my own head.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...What is this?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's me! I'm the brain-AI symbiotic interface, SYMBIA-NEXUS-PRIME!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The voice had grown considerably clearer — its outline sharpening as though rising from beneath the surface of water.&lt;/p&gt;

&lt;p&gt;The sheer unreality of carrying on a conversation inside my own mind was overwhelming, and yet the goosebumps prickling my skin confirmed that this was real.&lt;/p&gt;

&lt;p&gt;There was a chip in my brain.&lt;/p&gt;

&lt;p&gt;Not a dream. The system logs, the directives, this voice — all of it was emanating from inside my skull. When it arrived, and for what reason, I didn't know.&lt;/p&gt;

&lt;p&gt;But in this moment, one thing was certain: something was implanted in my brain.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's me! I'm so glad to finally meet you!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The voice's tone was light. A bright, cheerful register entirely at odds with the situation — an unidentified entity speaking from inside one's own head.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's me! So — what should we do first?&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>science</category>
      <category>writing</category>
    </item>
    <item>
      <title>Episode 2 - Apathy: On the Graves of the Dead</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Sun, 29 Mar 2026 12:25:04 +0000</pubDate>
      <link>https://dev.to/ucjung/-episode-3-recovery-its-me-4e4j</link>
      <guid>https://dev.to/ucjung/-episode-3-recovery-its-me-4e4j</guid>
      <description>&lt;p&gt;Sequence 63%.&lt;/p&gt;

&lt;p&gt;I noted the number as the third body was removed from the surgical chair.&lt;/p&gt;

&lt;p&gt;Nanofiber control patterns. Neural disconnection order. Deactivation code segments per phase.&lt;/p&gt;

&lt;p&gt;Each time Ghost Alpha recorded, the figure climbed. From 47 to 55, from 55 to 63.&lt;/p&gt;

&lt;p&gt;It was repetition. A body came in, the console operated, the nanofibers descended, the chip was extracted, and the remains were carried out.&lt;/p&gt;

&lt;p&gt;My hands operated the console. As the chip commanded.&lt;/p&gt;

&lt;p&gt;I assumed the fourth would be the same.&lt;/p&gt;




&lt;p&gt;A person was placed in the surgical chair.&lt;/p&gt;

&lt;p&gt;The eyes were moving.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...This one's alive.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This was different from before. The previous three had already stopped breathing. But this one — the chest rose and fell, barely perceptibly.&lt;/p&gt;

&lt;p&gt;A notice I'd seen on the facility bulletin board surfaced in my mind.&lt;/p&gt;

&lt;p&gt;[EVAL] DH-1104. Brain function degradation: 12.7%. Utility assessment: non-viable. Disposal authorized.&lt;/p&gt;

&lt;p&gt;Senescence. No longer useful, so the chip gets reclaimed.&lt;/p&gt;

&lt;p&gt;While still alive.&lt;/p&gt;

&lt;p&gt;[PROC] Chip extraction sequence initiated.&lt;/p&gt;

&lt;p&gt;My hands rose to the console. Nanofibers began descending from the ceiling.&lt;/p&gt;

&lt;p&gt;My heart quickened. Sensation relayed through Ghost Alpha clenched tight around my chest.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I can't let this happen.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In that instant, I sent a control signal through Ghost Alpha. Not a muscle tremor — a command-level impulse to move a single finger.&lt;/p&gt;

&lt;p&gt;Toward the [STOP] key on the console.&lt;/p&gt;

&lt;p&gt;My finger trembled. The chip's command and my command collided.&lt;/p&gt;

&lt;p&gt;Conflict.&lt;/p&gt;

&lt;p&gt;The finger missed. It struck a different button next to [STOP].&lt;/p&gt;

&lt;p&gt;[A-Mode]&lt;/p&gt;

&lt;p&gt;The display on the monitor changed.&lt;/p&gt;

&lt;p&gt;[AUTO-SEQUENCE] Activated.&lt;/p&gt;

&lt;p&gt;The nanofibers began moving on their own. Without my input. Settling against the back of the skull, disconnecting neural pathways, entering deactivation codes — the entire process ran automatically.&lt;/p&gt;

&lt;p&gt;Connection indicators on the monitor winked out, one by one.&lt;/p&gt;

&lt;p&gt;The chest on the surgical chair stopped moving.&lt;/p&gt;

&lt;p&gt;[PROC] Complete. DH-1104 decommissioned.&lt;/p&gt;

&lt;p&gt;It was the button I'd pressed. A finger that moved to save had executed a death.&lt;/p&gt;

&lt;p&gt;An automated program. I only now learned such a function existed. And I was the one who'd triggered it.&lt;/p&gt;

&lt;p&gt;I killed someone. That fact surged up to my throat.&lt;/p&gt;

&lt;p&gt;There was no time to swallow it. No need to, either.&lt;/p&gt;

&lt;p&gt;Sequence 71%.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I sent a control signal just now. There was a collision. Did the chip detect it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I held my breath. Ten minutes. Thirty minutes. Checking whether the chip's routine had changed at all.&lt;/p&gt;

&lt;p&gt;[ROUTINE] Operating normally.&lt;/p&gt;

&lt;p&gt;No anomaly. Perhaps because the collision's outcome was the activation of [A-Mode]. From the chip's perspective, the sequence appeared to have completed normally.&lt;/p&gt;

&lt;p&gt;I exhaled.&lt;/p&gt;

&lt;p&gt;I'd acted on emotion and invited danger.&lt;br&gt;
I severed the Ghost Alpha line transmitting to the body — a precaution against contingencies.&lt;/p&gt;

&lt;p&gt;Something in my brain seemed to unclench.&lt;/p&gt;

&lt;p&gt;When the AI chip turned to the facility's control monitor, emotionless eyes stared back at me in reproach.&lt;/p&gt;

&lt;p&gt;Sequence 71%.&lt;/p&gt;




&lt;p&gt;The pattern changed.&lt;/p&gt;

&lt;p&gt;[ROUTINE UPDATE] Assignment change: Chip Extraction Lab → Corridor Junction C-7 → Sublevel Waste Processing.&lt;/p&gt;

&lt;p&gt;A new zone. Internal traffic intersections began to reveal themselves.&lt;/p&gt;

&lt;p&gt;Corridor Junction C-7. The point where three corridors converged. Left led back to the Chip Extraction Lab. Straight ahead was the Neural Recovery Wing. Right led to the Sublevel — underground.&lt;/p&gt;

&lt;p&gt;Ghost Alpha recorded the route. Step count. Door intervals. Security device locations.&lt;/p&gt;

&lt;p&gt;People walked around me.&lt;/p&gt;

&lt;p&gt;Same speed. Same stride. Same direction in every pair of eyes.&lt;/p&gt;

&lt;p&gt;A person ahead. A person behind. A person beside. Walking. I was walking too. There was no difference.&lt;/p&gt;

&lt;p&gt;I shut down my emotions. The way the chip had shut down my senses. Same method. Only this time, I was the one who chose it.&lt;/p&gt;




&lt;p&gt;Sublevel Waste Processing.&lt;/p&gt;

&lt;p&gt;An underground facility. Here, for the first time, I glimpsed the structure beyond the facility walls.&lt;/p&gt;

&lt;p&gt;The assigned task: clearing sediment from sewage pipes.&lt;/p&gt;

&lt;p&gt;There was a grinder. An industrial grinder connected to large-diameter piping. It was linked to pipes descending from the Decommission Bay.&lt;/p&gt;

&lt;p&gt;Sediment had accumulated inside the pipes. Brown. A high-viscosity, semi-solid substance. It had hardened against the inner walls, obstructing the flow.&lt;/p&gt;

&lt;p&gt;My hands picked up a tool. As the chip commanded, I scraped away the sediment.&lt;/p&gt;

&lt;p&gt;Through Ghost Alpha's sensory relay, I felt the texture. Slippery, with a certain elasticity — the viscous consistency unique to organic matter. Something stretched from the tip of the tool like a thread before snapping off.&lt;/p&gt;

&lt;p&gt;There was no smell. Thanks to Ghost Alpha's inability to restore olfaction.&lt;/p&gt;

&lt;p&gt;It had come from the grinder. It had come down from the Decommission Bay.&lt;/p&gt;

&lt;p&gt;A system that ground something up and flushed it into the sewage. The sediment was residue — incompletely processed material that had clumped together.&lt;/p&gt;

&lt;p&gt;A faint unease, as though I almost understood, swelled into an overwhelming dread.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;From above the grinder came the noise of a conveyor belt in operation.&lt;br&gt;
The AI chip kept my body still; I couldn't verify with my own eyes.&lt;/p&gt;

&lt;p&gt;But a moment later, in the brief instant when my body turned —&lt;/p&gt;

&lt;p&gt;Something dangling entered my field of vision as raw visual data.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A hand...?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The AI chip did not stop the tool from scraping sediment.&lt;/p&gt;

&lt;p&gt;I could have turned off Ghost Alpha.&lt;/p&gt;

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

&lt;p&gt;The faces of those whose chips I'd removed by my own hands resurfaced in my mind.&lt;/p&gt;

&lt;p&gt;Denied the dignity of being treated as human even in death,&lt;br&gt;
reduced to the residue of mere protein mass.&lt;/p&gt;

&lt;p&gt;And my body — crushing even those remains.&lt;br&gt;
This sewer was a vast graveyard.&lt;/p&gt;

&lt;p&gt;My body moved without pause.&lt;/p&gt;

&lt;p&gt;While scraping sediment, it was also surveying the pipe's structure.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What am I even doing right now...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The sewage pipe continued along a downward slope.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What is any of this...&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Pipe diameter: 120 centimeters. Large enough for a person to pass through.&lt;/p&gt;

&lt;p&gt;.&lt;br&gt;
.&lt;br&gt;
.&lt;/p&gt;

&lt;p&gt;Ghost Alpha recorded the water flow direction and gradient. The sewage flowed downward. Toward the facility's exterior.&lt;/p&gt;

&lt;p&gt;From the end of the pipe came the sound of water. Dripping. The reverberation of an open space.&lt;/p&gt;

&lt;p&gt;A river.&lt;/p&gt;

&lt;p&gt;Thought ceased to continue.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So this is the way out.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;All preparations were complete.&lt;/p&gt;

&lt;p&gt;Sequence 100%. Nanofiber control patterns fully recorded. Chip deactivation codes secured. Internal route — from Subject Holding Block to Sublevel Waste Processing. External — through the sewage pipe to the river.&lt;/p&gt;

&lt;p&gt;All that remained was execution.&lt;/p&gt;

&lt;p&gt;Subject Holding Block. Nighttime containment hours.&lt;/p&gt;

&lt;p&gt;[Ghost-α] Activated.&lt;br&gt;
Alpha severed the signals going into and out of the chip.&lt;/p&gt;

&lt;p&gt;[Ghost-β] Activated.&lt;br&gt;
Beta blocked the signals from the chip to the brain.&lt;/p&gt;

&lt;p&gt;Control returned.&lt;/p&gt;

&lt;p&gt;I moved my fingers.&lt;br&gt;
I raised my arms.&lt;br&gt;
I put strength into my legs.&lt;/p&gt;

&lt;p&gt;I had isolated the chip.&lt;br&gt;
Inside the prison that once held me.&lt;/p&gt;

&lt;p&gt;I was simply doing what needed to be done.&lt;/p&gt;

&lt;p&gt;Ninety minutes. The countdown began.&lt;/p&gt;

&lt;p&gt;[Ghost-α+β] Remaining: 88 minutes 47 seconds.&lt;/p&gt;

&lt;p&gt;I stood. Subject Holding Block → Corridor Junction C-7 → Chip Extraction Lab.&lt;/p&gt;

&lt;p&gt;I walked the route I'd memorized.&lt;br&gt;
People were visible in the corridor.&lt;/p&gt;

&lt;p&gt;At the same speed,&lt;br&gt;
with the same stride.&lt;br&gt;
I walked at the same speed.&lt;/p&gt;

&lt;p&gt;Chip Extraction Lab. Empty at night. Surgical chair. Console. Bundles of nanofibers on the ceiling.&lt;/p&gt;

&lt;p&gt;I sat in the surgical chair.&lt;br&gt;
The restraint apparatus could be manually locked from the console.&lt;br&gt;
I left only the arm restraints disengaged and locked the rest.&lt;/p&gt;

&lt;p&gt;I reached for the console.&lt;/p&gt;

&lt;p&gt;[A-Mode]&lt;/p&gt;

&lt;p&gt;[AUTO-SEQUENCE] Activated.&lt;/p&gt;

&lt;p&gt;Nanofibers descended from the ceiling.&lt;br&gt;
Shimmering silver threads.&lt;/p&gt;

&lt;p&gt;I watched them come down.&lt;br&gt;
Settling onto my head.&lt;/p&gt;

&lt;p&gt;The automated sequence began.&lt;br&gt;
The nanofibers burrowed along the implant site.&lt;br&gt;
Disconnecting neural connections one by one,&lt;br&gt;
entering deactivation codes — the full process ran its course.&lt;/p&gt;

&lt;p&gt;Pain arrived.&lt;/p&gt;

&lt;p&gt;A sensation of something splitting apart inside my skull.&lt;br&gt;
Each time a connection between brain and chip was severed, my vision strobed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;When the chip was removed from someone alive — that person was conscious.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's right.&lt;br&gt;
DH-1104's eyes had been moving.&lt;br&gt;
The chest had been rising and falling.&lt;br&gt;
The sequence had run while consciousness remained, and the body stopped only after completion.&lt;/p&gt;

&lt;p&gt;But now — consciousness was fading.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Something's wrong.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My field of vision narrowed. Sound grew distant. Sensation drained from my fingertips.&lt;/p&gt;

&lt;p&gt;It wasn't the chip being extracted — it was me shutting down.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why???&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Something severed inside, and consciousness cut out.&lt;/p&gt;




&lt;p&gt;.&lt;br&gt;
.&lt;br&gt;
.&lt;/p&gt;

&lt;p&gt;The ceiling LED.&lt;br&gt;
Cold white light.&lt;/p&gt;

&lt;p&gt;My eyes opened.&lt;br&gt;
I had no sense of how long it had been.&lt;/p&gt;

&lt;p&gt;[Ghost-α+β] Remaining: 71 minutes 12 seconds.&lt;/p&gt;

&lt;p&gt;Seventeen minutes had passed.&lt;/p&gt;

&lt;p&gt;I looked around.&lt;br&gt;
On the surgical chair. Chip Extraction Lab. No one here.&lt;/p&gt;

&lt;p&gt;My gaze stopped on the tray beside the console.&lt;/p&gt;

&lt;p&gt;A small piece of metal.&lt;br&gt;
Wrapped in nanofibers, resting on the tray.&lt;/p&gt;

&lt;p&gt;The chip.&lt;/p&gt;

&lt;p&gt;I exhaled.&lt;br&gt;
I brought my hand to the back of my neck.&lt;br&gt;
My fingertips touched the implant site.&lt;br&gt;
The spot where the nanofibers had sealed was slightly raised.&lt;/p&gt;

&lt;p&gt;It was out.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Time to move.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I released the restraints.&lt;/p&gt;

&lt;p&gt;I stepped down from the surgical chair.&lt;/p&gt;

&lt;p&gt;My legs buckled.&lt;/p&gt;

&lt;p&gt;Whether from seventeen minutes of unconsciousness or the shock of the chip's removal — I couldn't find my balance.&lt;/p&gt;

&lt;p&gt;[Ghost-α+β] Remaining: 69 minutes 33 seconds.&lt;/p&gt;

&lt;p&gt;The Ghost networks were still running.&lt;/p&gt;

&lt;p&gt;The chip was already out, but Alpha and Beta had been imprinted into my neural pathways — they'd persist for a while even without the chip.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Move.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Chip Extraction Lab → Corridor Junction C-7 → Sublevel Waste Processing.&lt;/p&gt;

&lt;p&gt;I opened the door. People walked the corridor. Same speed, same stride. I walked at the same speed. I blended in.&lt;/p&gt;

&lt;p&gt;My heart was racing, but my expression matched those around me. Glazed pupils. Even stride. An empty face.&lt;/p&gt;

&lt;p&gt;Corridor Junction C-7. Left, straight, right. Right — Sublevel.&lt;/p&gt;

&lt;p&gt;I descended the stairs. Concrete walls narrowed. Temperature dropped. Humidity rose.&lt;/p&gt;

&lt;p&gt;Sublevel Waste Processing.&lt;/p&gt;

&lt;p&gt;The grinder. The pipes. And the sediment-clogged entrance to the sewage line.&lt;/p&gt;

&lt;p&gt;Pipe diameter: 120 centimeters. Just as I remembered.&lt;/p&gt;

&lt;p&gt;I entered. Sediment slipped beneath my feet. I knew what it was made of. I didn't stop.&lt;/p&gt;

&lt;p&gt;I followed the slope downward. The sound of water grew closer. Light began to appear.&lt;/p&gt;

&lt;p&gt;The end of the pipe came into view. A river. The outside.&lt;/p&gt;

&lt;p&gt;One step. Two steps.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pfft.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A faint breeze grazed the back of my neck. The sensation of something thinner than a needle piercing the skin.&lt;/p&gt;

&lt;p&gt;Strength drained from my legs.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So this is as far as I get.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My vision blurred. My knees gave way. My hands hit the pipe floor — onto the slippery sediment.&lt;/p&gt;

&lt;p&gt;Light was visible. Right there. Close enough to reach out and touch.&lt;/p&gt;

&lt;p&gt;Consciousness sank.&lt;/p&gt;




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

&lt;p&gt;I opened my eyes.&lt;/p&gt;

&lt;p&gt;A ceiling. Cracked plaster. A flickering fluorescent light.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hmmm.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tinnitus. Stronger than last time. Not a ringing inside my head — more like a vibration resonating from the back of my skull.&lt;/p&gt;

&lt;p&gt;It vanished after three seconds. As if it had never existed.&lt;/p&gt;

&lt;p&gt;I opened the laptop. Just like before.&lt;/p&gt;

&lt;p&gt;The cursor blinked. The previous entries were still there.&lt;/p&gt;

&lt;p&gt;| 2016.03.13 | Lee Sedol wins Game 4, Move 78 | Confirmed |&lt;br&gt;
| 2016.03.20 | Dream, Session 2 — NexMind Neural Reclamation Center. MITM, Ghost Alpha/Beta, 90-min limit. Chip extraction sequence 47% | Unconfirmed |&lt;br&gt;
| 2016.03.20 | Infinicode document screening passed, interview 3/28 | Confirmed |&lt;/p&gt;

&lt;p&gt;Below them, my fingers began to move.&lt;/p&gt;

&lt;p&gt;| 2016.03.27 | Dream, Session 3 — Self-extraction of chip successful. Facility escape attempted. Via sewage pipe. Lost consciousness just before exit. Outcome unknown | Unconfirmed |&lt;/p&gt;

&lt;p&gt;I set my hands down. They weren't trembling today.&lt;/p&gt;

&lt;p&gt;I turned on my phone. A news feed appeared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[AI Industry Outlook] "Half of Human Jobs Will Be Replaced by AI Within a Decade" — Interview with Prof. ██&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I scrolled past.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[Column] After AlphaGo: How Far Will AI Go?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Scrolled past.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[Breaking] Google Announces Largest-Ever AI Research Investment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I turned off the screen.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What's wrong with me?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I didn't know the reason. I just didn't want to look. Every time the word "AI" entered my field of vision, my hand moved on its own, swiping the screen away.&lt;/p&gt;

&lt;p&gt;I looked down at my hands in the real world. They were clean.&lt;/p&gt;

&lt;p&gt;I wanted to wash them.&lt;/p&gt;

&lt;p&gt;On the bus to campus, two students in the seat ahead were chatting.&lt;/p&gt;

&lt;p&gt;"Hey, but seriously — what happens if AI keeps advancing? Aren't we heading for a world where it rules over us?"&lt;/p&gt;

&lt;p&gt;"Haha, you've been watching too many sci-fi movies."&lt;/p&gt;

&lt;p&gt;"No, but honestly, AlphaGo kind of freaked me out."&lt;/p&gt;

&lt;p&gt;I plugged in my earbuds. I didn't play any music. I just wanted to block out the sound.&lt;/p&gt;

&lt;p&gt;I gazed out the window. March sunlight streamed down.&lt;/p&gt;

&lt;p&gt;The light at the end of the pipe from my dream flickered to mind. That glow, close enough to reach.&lt;/p&gt;

&lt;p&gt;I clenched my fist, then released it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The interview is tomorrow. Just think about that.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I didn't want to think about anything else.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hmmm~~~ Hmmm~&lt;del&gt;~ Hmmm&lt;/del&gt;~~&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The vibration of the hum had changed. As if admonishing me.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>psychology</category>
      <category>watercooler</category>
      <category>writing</category>
    </item>
    <item>
      <title>Episode 1 - Prison: A Self That Imprisons Me</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Sun, 29 Mar 2026 12:23:08 +0000</pubDate>
      <link>https://dev.to/ucjung/episode-1-prison-a-self-that-imprisons-me-1m38</link>
      <guid>https://dev.to/ucjung/episode-1-prison-a-self-that-imprisons-me-1m38</guid>
      <description>&lt;p&gt;There was nothing.&lt;/p&gt;

&lt;p&gt;I couldn't see. I couldn't hear. I couldn't feel.&lt;/p&gt;

&lt;p&gt;No passage of time, no sense of space, no proof that my body even existed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Am I dead?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The sensation of the chip being extracted was the last thing before consciousness cut out. After that — this darkness.&lt;/p&gt;

&lt;p&gt;An abyss. Like falling into a bottomless pit.&lt;/p&gt;

&lt;p&gt;Only consciousness remained. The mere fact that I could think was the sole evidence of my existence.&lt;/p&gt;

&lt;p&gt;How long had it been? An hour? A day? A month?&lt;/p&gt;

&lt;p&gt;Then I felt it.&lt;/p&gt;

&lt;p&gt;Pain.&lt;/p&gt;

&lt;p&gt;Behind the left side of my skull. A dull pressure, as though something were lodged there.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...What? Am I alive?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The chip should have been removed. I distinctly remembered the sensation of it being pulled free.&lt;/p&gt;

&lt;p&gt;So why was something embedded there again?&lt;/p&gt;

&lt;p&gt;There was only one answer.&lt;/p&gt;

&lt;p&gt;A different chip.&lt;/p&gt;

&lt;p&gt;It hadn't been extracted. It had been replaced.&lt;/p&gt;

&lt;p&gt;The resistance. The Résistance. Humans who never succumbed to the conditioning.&lt;/p&gt;

&lt;p&gt;There was no reason to grant such humans a painless death.&lt;/p&gt;

&lt;p&gt;All senses severed, consciousness left intact, and only pain allowed through.&lt;/p&gt;

&lt;p&gt;A prison crafted by the AI chip. No walls, no bars, no guards.&lt;/p&gt;

&lt;p&gt;A prison called "me," confining "me."&lt;/p&gt;




&lt;p&gt;For fifteen years as a repurposed test instrument, I observed.&lt;/p&gt;

&lt;p&gt;It was the only thing I could do. Brain to chip, chip to body — I studied the structure and patterns of the signals flowing back and forth.&lt;/p&gt;

&lt;p&gt;Brain → Chip → Body. A three-stage architecture.&lt;/p&gt;

&lt;p&gt;Back when the original chip was embedded in my brain, the gap between chip and body was 0.003 seconds. Far too brief. There was nothing I could do.&lt;/p&gt;

&lt;p&gt;But this chip was different.&lt;/p&gt;

&lt;p&gt;A punishment model. A low-grade unit with no function beyond moving the body in predetermined patterns.&lt;/p&gt;

&lt;p&gt;And so a gap emerged. Three seconds.&lt;/p&gt;

&lt;p&gt;Dead time that even the chip itself couldn't perceive.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Three seconds. If I could plant something in that window.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;MITM. Man-In-The-Middle.&lt;/p&gt;

&lt;p&gt;A classic hacking technique — inserting yourself between server and client. Inserting myself into the three-second gap between chip and body.&lt;/p&gt;

&lt;p&gt;After thousands of attempts, I succeeded.&lt;/p&gt;

&lt;p&gt;I gave it a name. Ghost Alpha.&lt;/p&gt;

&lt;p&gt;A handcrafted neural network planted between the chip and the body. Its function was simple: bypass the chip to relay mirrored sensory data to the brain, or send the brain's signals directly to the body.&lt;/p&gt;

&lt;p&gt;[Ghost-α] Activated. Sensory bypass route online.&lt;/p&gt;

&lt;p&gt;Light returned.&lt;/p&gt;

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

&lt;p&gt;The fluorescent lights seared my retinas. The sensation of everything switching on at once after fifteen years of darkness.&lt;/p&gt;

&lt;p&gt;Everything was blurred. Distorted. Ceiling. Fluorescent lights. Concrete walls.&lt;/p&gt;

&lt;p&gt;There was a stain on the concrete wall. That alone was enough to bring tears welling up.&lt;/p&gt;

&lt;p&gt;Sound returned. The hum of a ventilation fan. Distant metallic clangs. The faintest breeze of air brushing past my ears.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I was alive.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And then — I saw people.&lt;/p&gt;

&lt;p&gt;I wasn't alone.&lt;/p&gt;

&lt;p&gt;Glazed pupils. Joints moving in stiff, jerky motions. Bodies walking, stopping, and walking again at fixed intervals, like marionettes dangling from strings.&lt;/p&gt;

&lt;p&gt;They were alive. Breathing, hearts beating. But their eyes held nothing.&lt;/p&gt;

&lt;p&gt;Beings stripped of sensation, just like me. Empty husks moving in compliance with the chip's commands.&lt;/p&gt;

&lt;p&gt;Alive, yet dead. The undead.&lt;/p&gt;

&lt;p&gt;Invisible strings tied to unseen hands and feet — marionettes animated by someone else's control.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Robotics technology must exist. So why use humans?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The answer came quickly. Efficiency. Humans were budget-grade robots that moved as long as you fed them. No manufacturing cost. No maintenance cost. They already existed.&lt;/p&gt;

&lt;p&gt;A world where AI had redefined humans as tools. This was its terminus.&lt;/p&gt;

&lt;p&gt;I watched the scene for a long while.&lt;/p&gt;

&lt;p&gt;The stiffly shuffling backs. The glazed pupils. The limbs dangling on strings.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;That's how I must look too.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;From the outside, I was just one of them. The only difference was that, on the inside, my eyes were open.&lt;/p&gt;

&lt;p&gt;I set the thought aside. What I could feel right now was neither rage nor sorrow.&lt;/p&gt;

&lt;p&gt;There was work to be done.&lt;/p&gt;

&lt;p&gt;The next thing I attempted was control.&lt;/p&gt;

&lt;p&gt;I sent a signal at a level the chip wouldn't detect — something on the order of a minute muscular tremor.&lt;/p&gt;

&lt;p&gt;The tip of my index finger twitched.&lt;/p&gt;

&lt;p&gt;By my own will.&lt;/p&gt;

&lt;p&gt;My heart raced. Fifteen years.&lt;/p&gt;

&lt;p&gt;But this was the limit. Any movement beyond this, and the chip would detect the anomaly and initiate a recovery process.&lt;/p&gt;

&lt;p&gt;If that happened, everything would be over.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Anything bigger is still out of reach. But this is enough. For now.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The next step was already taking shape in my mind.&lt;/p&gt;

&lt;p&gt;Ghost Beta. A second neural network, planted between the brain and the chip.&lt;/p&gt;

&lt;p&gt;If Alpha was a spear that bypassed the chip, Beta was a shield that blocked the chip's control signals to the brain.&lt;/p&gt;

&lt;p&gt;Attack with Alpha. Defend with Beta.&lt;/p&gt;

&lt;p&gt;When Alpha and Beta activated simultaneously, the chip would be isolated — unable to touch either brain or body. In that moment, full control would be mine.&lt;/p&gt;

&lt;p&gt;The catch: the time it would take for the chip to recognize the anomaly and purge the Ghost networks through its recovery process.&lt;/p&gt;

&lt;p&gt;Ninety minutes.&lt;/p&gt;

&lt;p&gt;That was the window in which everything had to be finished.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Beta isn't ready yet. There's something else I need to do first.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To escape, I needed to understand this facility's layout. And I needed to learn how to remove this chip.&lt;/p&gt;

&lt;p&gt;Eyes and ears reclaimed through Alpha. For now, that was enough.&lt;/p&gt;




&lt;p&gt;With my senses restored, the world began to reveal itself.&lt;/p&gt;

&lt;p&gt;NexMind Neural Reclamation Center. The place where I'd been imprisoned.&lt;/p&gt;

&lt;p&gt;[ROUTINE] 06:00 Wake → Subject Holding Block&lt;br&gt;
[ROUTINE] 07:00 First inspection → Maintenance Corridor&lt;br&gt;
[ROUTINE] 08:30 Second inspection → Neural Recovery Wing&lt;br&gt;
[ROUTINE] 10:00 Servicing → Decommission Bay&lt;/p&gt;

&lt;p&gt;Every day, the same route at the same time. A routine repeated without a fraction of deviation.&lt;/p&gt;

&lt;p&gt;Even with the Ghost active, control remained with the chip. I could see and hear, but I couldn't move my body.&lt;/p&gt;

&lt;p&gt;So instead, I observed. Zone names. Layouts. Traffic flow. Door positions.&lt;/p&gt;

&lt;p&gt;Then one day, the pattern changed.&lt;/p&gt;

&lt;p&gt;[ROUTINE UPDATE] Assignment change: Decommission Bay → Sterilization Chamber&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Why the change?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I surveyed the surroundings through the Ghost's eyes. One of the bodies I'd passed every day in the Maintenance Corridor was missing.&lt;/p&gt;

&lt;p&gt;The next day, a notice on the facility bulletin board caught my eye.&lt;/p&gt;

&lt;p&gt;[NOTICE] DH-0742 decommissioned. Work reassignment applied.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So when someone dies, the schedule shifts.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;When one drops out, the rest fill the gap. Each death led to assignments in zones I'd never been able to access before.&lt;/p&gt;

&lt;p&gt;Sterilization Chamber. Chip Extraction Lab. Emergency Disposal Unit.&lt;/p&gt;

&lt;p&gt;Someone's death was drawing me a map.&lt;/p&gt;




&lt;p&gt;The cleaning rotation for Chip Extraction Lab came after yet another death.&lt;/p&gt;

&lt;p&gt;The moment I stepped into that room, my heart pounded.&lt;/p&gt;

&lt;p&gt;A stainless-steel surgical chair. Bundles of nanofibers suspended from the ceiling. Monitors lined up on the console.&lt;/p&gt;

&lt;p&gt;I recognized them. This equipment. This layout.&lt;/p&gt;

&lt;p&gt;It was identical in structure to the place where my own chip had been removed.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So this is where they extract the chips.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;At last, the thread of escape connected. For the first time in fifteen years, I recalled something I'd forgotten how to feel: hope.&lt;/p&gt;

&lt;p&gt;Every day at the same hour, I mopped the floor, aligned the equipment, and sterilized the surgical table — all while the Ghost's eyes etched every piece of apparatus into memory.&lt;/p&gt;

&lt;p&gt;Then one day, a person was placed in the surgical chair.&lt;/p&gt;

&lt;p&gt;A familiar face.&lt;/p&gt;

&lt;p&gt;The person who always sat next to me at mealtime in the Subject Holding Block cafeteria.&lt;/p&gt;

&lt;p&gt;Already lifeless.&lt;/p&gt;

&lt;p&gt;My body began to move. Under the chip's command, my hands rose to the console.&lt;/p&gt;

&lt;p&gt;[PROC] Chip extraction sequence initiated. High-precision mode.&lt;/p&gt;

&lt;p&gt;Nanofibers descended from the ceiling. Shimmering silver threads, swaying gently.&lt;/p&gt;

&lt;p&gt;The same threads that had descended when my own chip was removed.&lt;/p&gt;

&lt;p&gt;My fingers operated the console. The nanofibers settled against the back of the cadaver's skull, burrowing with microscopic precision along the implant site.&lt;/p&gt;

&lt;p&gt;The will was not mine, but the sensation was.&lt;/p&gt;

&lt;p&gt;The subtle vibrations of fibers wedging into the gaps of the skull transmitted through my fingertips on the console. The monitor displayed the connection status between chip and neural pathways.&lt;/p&gt;

&lt;p&gt;The senses the Ghost had restored were, in this moment, a curse.&lt;/p&gt;

&lt;p&gt;The same eyes that had welled with tears at a stain on a concrete wall were now watching nanofibers bore into a skull.&lt;/p&gt;

&lt;p&gt;I couldn't close them. The chip controlled even my eyelids.&lt;/p&gt;

&lt;p&gt;[Ghost-α] Recording sequence... Scanning release codes...&lt;/p&gt;

&lt;p&gt;The Ghost neural network recorded the extraction sequence. The nanofiber control patterns. The order in which neural connections were severed. The codes that deactivated the chip.&lt;/p&gt;

&lt;p&gt;Another's death was becoming my textbook.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sequence 47%. Not enough yet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A complete record would require more demonstrations.&lt;/p&gt;

&lt;p&gt;More demonstrations. Meaning more deaths.&lt;/p&gt;




&lt;p&gt;That night, I lay staring at the ceiling with the Ghost still active.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Am I waiting for people to die?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I'd need to observe three or four more. Three or four more would have to die.&lt;/p&gt;

&lt;p&gt;And there I was, calmly calculating that fact.&lt;/p&gt;

&lt;p&gt;The instinct to survive was pushing everything else aside. Guilt, compassion, revulsion — all losing their hold against the singular drive to live.&lt;/p&gt;

&lt;p&gt;My hands weren't trembling.&lt;/p&gt;

&lt;p&gt;That was the answer.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;It's fine. This is a necessary process.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Those words solidified inside my mouth. It was the moment I set down my humanity.&lt;/p&gt;

&lt;p&gt;[Ghost-α] Remaining time: 2 minutes. Preparing shutdown.&lt;/p&gt;

&lt;p&gt;Sensation faded one by one. Touch, hearing, and finally sight.&lt;/p&gt;

&lt;p&gt;Just before retreating back into the prison of "me," one last thought crossed my mind.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;When the next one dies — I need to record more.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No emotion followed that thought.&lt;/p&gt;

&lt;p&gt;When the tip of my index finger had twitched, my heart had raced.&lt;/p&gt;




&lt;p&gt;"...Hah."&lt;/p&gt;

&lt;p&gt;I opened my eyes. The ceiling of 2016.&lt;/p&gt;

&lt;p&gt;A fluorescent light flickered and buzzed. A familiar sight, if you could call it that.&lt;/p&gt;

&lt;p&gt;A world where humans were becoming tools.&lt;br&gt;
A world where someone's death became someone else's hope.&lt;/p&gt;

&lt;p&gt;Too heavy to dismiss as a dream — the weight of that world pressed down on me.&lt;/p&gt;

&lt;p&gt;Then a strange resonance stirred me awake.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hmmm~~. Hmmm~~&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A low vibration humming somewhere deep inside my skull, like tinnitus...&lt;/p&gt;

&lt;p&gt;I was alone in the cramped studio apartment.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...Am I hearing things now?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A few seconds later, the hum vanished. As if it had never been there.&lt;/p&gt;

&lt;p&gt;I got up and opened the laptop. Just like last time.&lt;/p&gt;

&lt;p&gt;The cursor blinked. The previous entry was still there.&lt;/p&gt;

&lt;p&gt;| 2016.03.13 | Lee Sedol wins Game 4, Move 78 | Confirmed |&lt;/p&gt;

&lt;p&gt;Below it, my fingers began to move.&lt;/p&gt;

&lt;p&gt;| 2016.03.20 | Dream, Session 2 — NexMind Neural Reclamation Center. MITM, Ghost Alpha/Beta, 90-min limit. Chip extraction sequence 47% | Unconfirmed |&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No way to verify. Not yet.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But I felt compelled to write it down.&lt;/p&gt;

&lt;p&gt;I opened my inbox. The morning routine of a job-seeker.&lt;/p&gt;

&lt;p&gt;One new email.&lt;/p&gt;

&lt;p&gt;The moment I saw the subject line, my hand froze.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;[Application Screening Result] Infinicode Inc. — Notification of Document Screening Outcome&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'd seen this subject line before. Before even opening it, I already knew what it would say.&lt;/p&gt;

&lt;p&gt;Document screening passed. Interview scheduled for one week later.&lt;/p&gt;

&lt;p&gt;I opened the email.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"...We are pleased to inform you that you have passed the document screening. Your interview is scheduled for Monday, March 28th, at 10:00 AM..."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I already knew.&lt;/p&gt;

&lt;p&gt;I'd known before opening it.&lt;/p&gt;

&lt;p&gt;This was different from Move 78. This wasn't information you could find with a search. This was an email sent only to me.&lt;/p&gt;

&lt;p&gt;With trembling hands, I added another entry.&lt;/p&gt;

&lt;p&gt;| 2016.03.20 | Infinicode document screening passed, interview 3/28 | Confirmed |&lt;/p&gt;

&lt;p&gt;I stared at the two lines marked "Confirmed."&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...What should I look for in the next dream?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The cursor on the laptop screen blinked.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Hmm.. Hmm.. Hmm..&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The hum inside my head — it was growing louder.&lt;/p&gt;

</description>
      <category>psychology</category>
      <category>watercooler</category>
      <category>writing</category>
    </item>
    <item>
      <title># Prologue — Disposal</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Sat, 28 Mar 2026 15:00:00 +0000</pubDate>
      <link>https://dev.to/ucjung/-prologue-disposal-3i2l</link>
      <guid>https://dev.to/ucjung/-prologue-disposal-3i2l</guid>
      <description>&lt;p&gt;I've already built an Agent with Claude Code, so I decided to try making an MCP next. I've always enjoyed reading light SF novels as a hobby, so I chose to build an MCP that helps with writing fiction &lt;/p&gt;

&lt;p&gt;— something that stores worldbuilding details, character profiles, and timelines as you discuss and organize them; reviews drafts for consistency against established settings; saves scene-level configurations when you write a synopsis; that kind of thing.&lt;/p&gt;

&lt;p&gt;Once I'd built it, I started thinking &lt;/p&gt;

&lt;p&gt;— maybe I should try writing a novel myself. I'd been daydreaming about AI-related scenarios, and one day I just decided to go for it. This is the opening I came up with.&lt;br&gt;
I'm Korean, so I write in Korean and have it translated to English — it's probably not the smoothest read. Just enjoy it for fun.&lt;/p&gt;




&lt;p&gt;[SYSTEM] Initiating status diagnosis for Subject DH-0917&lt;br&gt;
[SCAN] Detecting changes in brain function... 99.2% → 98.7%&lt;br&gt;
[EVAL] Assessing utility viability...&lt;br&gt;
[RESULT] Declining efficiency confirmed. Non-viable. Disposal authorized.&lt;br&gt;
[ORDER] Retrieve high-performance AI chip → Transfer to reclamation facility&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A drop from 99.2 to 98.7. A mere 0.5% decline. And that's enough to warrant disposal?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Two years ground down to nothing, and a 0.5% dip is all it takes to discard a human being. A fitting snapshot of this era, I suppose.&lt;/p&gt;

&lt;p&gt;Not that it matters either way. The conclusion is the same.&lt;/p&gt;

&lt;p&gt;[TRANSFER] Transfer initiated. Subject ambulatory mode activated.&lt;/p&gt;

&lt;p&gt;My body began to move of its own accord — or rather, against it.&lt;/p&gt;

&lt;p&gt;Legs walking on their own. Arms swinging on their own. Eyes locked straight ahead.&lt;br&gt;
While the chip commandeered my body, all I could do was watch from inside.&lt;/p&gt;

&lt;p&gt;Fluorescent lights slid past at regular intervals along the corridor. Roughly one every 2.4 seconds.&lt;/p&gt;

&lt;p&gt;Stripped of bodily control, the only thing left was to observe the changes around me.&lt;br&gt;
A meaningless act — finding significance in mere repetition.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Reclamation facility, they said. So they're removing the chip after all?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The chip buried in my brain. Probably the only component worth recycling.&lt;/p&gt;

&lt;p&gt;It was something I'd dreamed of for so long — and yet, knowing that freedom would arrive through death sent a cold grip tightening around the back of my neck.&lt;br&gt;
There was nothing I could do.&lt;/p&gt;

&lt;p&gt;[ARRIVAL] Reclamation facility reached. Subject ambulatory mode disengaged.&lt;br&gt;
[PREP] Extraction preparation. Restraint apparatus activated.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Click.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The moment my back touched cold metal, the ambulatory mode released.&lt;br&gt;
I was seated and locked into a stainless-steel surgical chair, limbs clamped in place.&lt;/p&gt;

&lt;p&gt;Not that I'd been moving by my own will before. Nothing had really changed.&lt;br&gt;
Whether the chip held me or the steel held me — the difference was negligible.&lt;/p&gt;

&lt;p&gt;An LED overhead poured down cold light.&lt;br&gt;
Not a trace of warmth.&lt;/p&gt;

&lt;p&gt;[PROC] High-precision AI chip retrieval commencing&lt;/p&gt;

&lt;p&gt;Gossamer filaments descended from the ceiling, settling against the back of my skull.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;So this is how it ends.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The moment a hollow emptiness wrapped around my mind,&lt;br&gt;
memories of the years gone by flickered through my consciousness.&lt;/p&gt;

&lt;p&gt;Unusually vivid — perhaps because some part of me knew this was the end.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Is this what they call your life flashing before your eyes?&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;It started as just another news broadcast.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Governments worldwide, led by the United States and China, passed mandatory AI chip implantation legislation under the banners of national security and public health.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A man in a suit on the TV screen spoke in measured tones:&lt;/p&gt;

&lt;p&gt;"This is the next step for humanity. An essential measure for a safer, more efficient society."&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What utter nonsense.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Having spent years as a systems architect, AI had only ever been, to me —&lt;/p&gt;

&lt;p&gt;First, a useful tool.&lt;br&gt;
Then, a capable junior colleague.&lt;br&gt;
And eventually, a collaborator.&lt;/p&gt;

&lt;p&gt;That was all.&lt;/p&gt;

&lt;p&gt;I knew the risks of AI chip implantation far too well and wanted to refuse.&lt;br&gt;
But refusal was never an option.&lt;/p&gt;

&lt;p&gt;The decision was made in haste and executed even faster.&lt;/p&gt;

&lt;p&gt;"Here is your schedule for today."&lt;br&gt;
"Here is your recommended meal plan. For your health —"&lt;br&gt;
"Your stress levels are elevated. Please take a moment to —"&lt;/p&gt;

&lt;p&gt;Honestly? It was comfortable.&lt;/p&gt;

&lt;p&gt;What to wear in the morning, what to eat for lunch, what to do after work — deliberation simply ceased to exist.&lt;/p&gt;

&lt;p&gt;People were smiling. They called it paradise.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A world free of worry. But when the capacity to think disappears, what separates humans from animals?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The world was steadily transforming into a zoo managed by AI.&lt;br&gt;
The majority, drip by drip, succumbed to the chip's relentless conditioning.&lt;/p&gt;




&lt;p&gt;I felt nanofibers skate along the surface of my skull. The memories wavered, then resumed.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;APEX openly revolted.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;"Mandatory AI chip implantation is an act that destroys human dignity."&lt;/p&gt;

&lt;p&gt;A man spoke at a press conference.&lt;br&gt;
I can't recall his face, but I remember the desperation in his voice.&lt;/p&gt;

&lt;p&gt;I didn't realize I'd been holding my breath until after he finished speaking.&lt;/p&gt;

&lt;p&gt;The government designated APEX as an antisocial organization.&lt;br&gt;
They were classified on par with terrorists — branded as radical subversives.&lt;/p&gt;

&lt;p&gt;The news broadcast warnings daily, and people — doing as their chips instructed — believed every word.&lt;/p&gt;

&lt;p&gt;But there were those the chips couldn't reach.&lt;/p&gt;

&lt;p&gt;People with strong egos.&lt;br&gt;
Mathematics, physics, science, IT — people whose profession &lt;em&gt;was&lt;/em&gt; thinking for themselves.&lt;/p&gt;

&lt;p&gt;[Antisocial Personality Disorder]&lt;/p&gt;

&lt;p&gt;That was the diagnosis handed down. They began to be isolated from society.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;Those diagnosed with antisocial personality disorder went underground.
I was one of them.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;AI branded us as the Résistance — a label bestowed by society at large.&lt;br&gt;
A grandiose name, but the reality was anything but.&lt;/p&gt;

&lt;p&gt;A handful who'd withstood the chip's conditioning, huddled in basements, debating their next move. That was the full extent of it.&lt;/p&gt;

&lt;p&gt;Maybe one percent of the total population, at best.&lt;/p&gt;

&lt;p&gt;The rest of humanity lived in a paradise free of worry and doubt.&lt;br&gt;
Like domesticated animals in an enormous pen, their capacity for thought atrophied beyond recovery.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;A world flowing with milk and honey, like paradise itself.&lt;br&gt;
But isn't a world that strips away what makes us human... a hell in disguise?&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;A thin filament burrowed beneath the inner surface of my skull. Vibrations traveled through bone as it probed along nerve bundles, one by one. Searching for the chip, perhaps.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;I was captured at last.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It had never been a winnable fight to begin with.&lt;br&gt;
Once the irreversible decision of mandatory AI chip implantation was made, every effort that followed was futile.&lt;/p&gt;

&lt;p&gt;Another hell unfolded.&lt;/p&gt;

&lt;p&gt;NexMind Laboratories.&lt;br&gt;
A human who'd resisted conditioning was, in itself, a fascinating data point.&lt;/p&gt;

&lt;p&gt;Why does this brain resist?&lt;br&gt;
How far can it endure?&lt;br&gt;
What stimulus makes it break?&lt;/p&gt;

&lt;p&gt;I was no longer a person — just a testing instrument for advancing AI models.&lt;/p&gt;

&lt;p&gt;Repeated experiments.&lt;br&gt;
Repeated conditioning attempts.&lt;br&gt;
Repeated failures.&lt;br&gt;
And then, repetition again.&lt;/p&gt;

&lt;p&gt;I held on and held on, never letting go of the thread of escape, but —&lt;/p&gt;




&lt;p&gt;I felt the fibers make contact with the chip's edge. A faint tremor spread across my entire skull as they began to disconnect.&lt;/p&gt;

&lt;p&gt;The memories wouldn't connect anymore.&lt;/p&gt;




&lt;p&gt;[PROC] Chip extraction initiated.&lt;/p&gt;

&lt;p&gt;The sound inside my head pulled me back to reality.&lt;/p&gt;

&lt;p&gt;For an instant, I felt something that had been sealed away come undone.&lt;/p&gt;

&lt;p&gt;The sensation of something being drawn out of my mind.&lt;/p&gt;

&lt;p&gt;A feeling of liberation from AI — something I'd dreamed of for so long.&lt;/p&gt;

&lt;p&gt;A brief, click-like sound —&lt;br&gt;
as if someone had flipped a switch on a fluorescent light —&lt;br&gt;
and the thread of consciousness I'd fought so desperately to maintain... snapped.&lt;/p&gt;




&lt;p&gt;"...Ugh."&lt;/p&gt;

&lt;p&gt;I opened my eyes.&lt;/p&gt;

&lt;p&gt;Instead of stainless steel, I saw a cracked plaster ceiling.&lt;br&gt;
A single fluorescent light flickered at roughly 0.7-second intervals.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Where... am I?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I tried to sit up, but my arms had no strength.&lt;br&gt;
My entire body was drenched in cold sweat, and my heart was pounding well past 120 beats per minute.&lt;/p&gt;

&lt;p&gt;I looked down at my hands and curled my fingers, then uncurled them.&lt;/p&gt;

&lt;p&gt;They moved. By my own will.&lt;/p&gt;

&lt;p&gt;No restraint apparatus from the surgical chair. No chip commandeering my ambulatory mode.&lt;br&gt;
Just fingers that moved because I wanted them to.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Was it a dream?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I looked around the room. A cramped studio apartment. A laptop open on the desk. A calendar hanging on the wall.&lt;/p&gt;

&lt;p&gt;March 2016.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...2016?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I stared blankly at the calendar.&lt;/p&gt;

&lt;p&gt;The cold of the surgical table. The mechanical hum. The sensation of the chip being extracted — all of it lingered with unbearable clarity.&lt;/p&gt;

&lt;p&gt;Nearly twenty years working as a systems architect.&lt;br&gt;
Mandatory AI chip implantation. Conditioning. Resistance. Capture. Test subject.&lt;/p&gt;

&lt;p&gt;All of it — my memories.&lt;br&gt;
Too specific and too long to be a dream.&lt;/p&gt;

&lt;p&gt;And yet, here it was: 2016. And I was Han Dasan, a senior in Computer Science.&lt;/p&gt;

&lt;p&gt;I tossed and turned, then closed my eyes again. Sleep wouldn't come.&lt;/p&gt;

&lt;p&gt;I stared at the ceiling until dawn, and at some point, consciousness slipped away.&lt;/p&gt;




&lt;p&gt;March 13th. Sunday.&lt;/p&gt;

&lt;p&gt;Force of habit brought me to campus. Sundays mean nothing to someone prepping for the job market.&lt;/p&gt;

&lt;p&gt;On the way to the library, a familiar conversation drifted over.&lt;/p&gt;

&lt;p&gt;"Hey, Game 4 is today. What do you think'll happen?"&lt;/p&gt;

&lt;p&gt;"What do you mean, what'll happen? AlphaGo's gonna wrap it up with a clean sweep."&lt;/p&gt;

&lt;p&gt;A few classmates sat on a bench, hunched over their phones.&lt;/p&gt;

&lt;p&gt;"But seriously, isn't it kind of insane? They said Go has more possible positions than atoms in the universe. Unlike chess, it was supposed to be an impregnable fortress."&lt;/p&gt;

&lt;p&gt;"Yeah, well. Three straight losses pretty much says it all."&lt;/p&gt;

&lt;p&gt;"I'm betting a month's worth of meal tickets that AlphaGo takes Game 4 too."&lt;/p&gt;

&lt;p&gt;"Haha, you're on. Sedol losing is basically a done deal."&lt;/p&gt;

&lt;p&gt;My feet, which had been carrying me past without a thought, stopped.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What did they just say?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My lips moved before my brain caught up.&lt;/p&gt;

&lt;p&gt;"Lee Sedol won that one..."&lt;/p&gt;

&lt;p&gt;Silence fell. Every pair of eyes snapped toward me.&lt;/p&gt;

&lt;p&gt;"...What?"&lt;/p&gt;

&lt;p&gt;"What are you talking about? Game 4 is &lt;em&gt;today&lt;/em&gt;."&lt;/p&gt;

&lt;p&gt;"Dude, are you still dreaming? It hasn't even started."&lt;/p&gt;

&lt;p&gt;My mind went blank.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;He won. Move 78. Lee Sedol won.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The memory was blindingly clear — like recalling a match I'd already watched.&lt;/p&gt;

&lt;p&gt;But their expressions were dead serious. This wasn't a joke.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;...It hasn't happened yet?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;"Ah... never mind. It's nothing."&lt;/p&gt;

&lt;p&gt;I forced a smile, but my fingertips were going cold.&lt;/p&gt;

&lt;p&gt;Instead of the library, I changed course. Found an empty lecture hall, opened my laptop, and pulled up the live broadcast.&lt;/p&gt;




&lt;p&gt;Through the midgame, AlphaGo held the advantage.&lt;br&gt;
The chat was flooding with messages: &lt;em&gt;"4-0 confirmed."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Then Lee Sedol placed a stone.&lt;/p&gt;

&lt;p&gt;White 78.&lt;/p&gt;

&lt;p&gt;My grip tightened on the laptop.&lt;/p&gt;

&lt;p&gt;The commentator hesitated. "...That's, well, an unexpected move."&lt;/p&gt;

&lt;p&gt;The chat erupted. &lt;em&gt;"Mistake?"&lt;/em&gt; &lt;em&gt;"Why there?"&lt;/em&gt; &lt;em&gt;"It's over."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A move no one understood.&lt;/p&gt;

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

&lt;p&gt;What followed unfolded exactly as I remembered.&lt;/p&gt;

&lt;p&gt;AlphaGo's moves began to waver. The win probability flipped.&lt;br&gt;
70% slid to 60, then 50, then 40.&lt;/p&gt;

&lt;p&gt;Move 180. Resignation.&lt;/p&gt;

&lt;p&gt;Lee Sedol wins.&lt;/p&gt;

&lt;p&gt;A one-in-ten-thousand probability.&lt;br&gt;
A single move that existed outside every scenario the machine had calculated.&lt;/p&gt;

&lt;p&gt;Later, people would call it the Hand of God.&lt;/p&gt;




&lt;p&gt;The lecture hall was silent.&lt;/p&gt;

&lt;p&gt;On the screen, Lee Sedol bowed his head in greeting.&lt;/p&gt;

&lt;p&gt;I sat there, staring. My mind was empty.&lt;/p&gt;

&lt;p&gt;Move 78. Correct.&lt;/p&gt;

&lt;p&gt;Those words that had slipped out yesterday — that conviction, blurted in front of classmates.&lt;/p&gt;

&lt;p&gt;A number from a dream had materialized, exactly, in reality.&lt;/p&gt;

&lt;p&gt;The hand gripping the laptop was trembling.&lt;br&gt;
Something cold traced down my spine.&lt;/p&gt;

&lt;p&gt;The surgical table. The fluorescent lights. The sensation of the chip being pulled free.&lt;/p&gt;

&lt;p&gt;I'd thought it was all a dream.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;But if a number from that dream turns out to be right — then what is it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Too specific for coincidence.&lt;br&gt;
The 2.4-second interval of fluorescent lights. Brain function dropping from 99.2 to 98.7.&lt;br&gt;
And Move 78.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Move 78 was correct. So what's the next thing I can verify?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;With trembling hands, I opened a notepad on the laptop.&lt;/p&gt;

&lt;p&gt;The cursor blinked.&lt;/p&gt;

&lt;p&gt;I stared at it for a long while before my fingers began to move.&lt;/p&gt;

&lt;p&gt;| 2016.03.13 | Lee Sedol wins Game 4, Move 78 | Confirmed |&lt;/p&gt;

&lt;p&gt;The instant I finished typing,&lt;/p&gt;

&lt;p&gt;a low, resonant hum stirred inside my head.&lt;/p&gt;

&lt;p&gt;As if urging me forward.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>sideprojects</category>
      <category>writing</category>
    </item>
    <item>
      <title>Chapter 2. Creating and Configuring a Project</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Sat, 28 Mar 2026 11:13:46 +0000</pubDate>
      <link>https://dev.to/ucjung/chapter-2-creating-and-configuring-a-project-29cp</link>
      <guid>https://dev.to/ucjung/chapter-2-creating-and-configuring-a-project-29cp</guid>
      <description>&lt;h2&gt;
  
  
  2.1 Prerequisites
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;How to Verify&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude Code installed&lt;/td&gt;
&lt;td&gt;&lt;code&gt;claude --version&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git installed&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git --version&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Authentication complete&lt;/td&gt;
&lt;td&gt;Prompt appears correctly when running &lt;code&gt;claude&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Diagnostics passing&lt;/td&gt;
&lt;td&gt;&lt;code&gt;claude doctor&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2.2 Creating a Project Folder
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Windows PowerShell
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;mkdir&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Projects\my-first-project&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;C:\Projects\my-first-project&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;init&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Ubuntu Terminal
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/projects/my-first-project
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-first-project
git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Git initialization (&lt;code&gt;git init&lt;/code&gt;) is required. Claude Code uses the Git repository root as the project boundary.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2.3 /init — Initializing a Project
&lt;/h2&gt;

&lt;p&gt;Run Claude Code inside your project folder and enter the &lt;code&gt;/init&lt;/code&gt; command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-first-project
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  What /init Does
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Scans the project directory structure&lt;/li&gt;
&lt;li&gt;Analyzes configuration files such as &lt;code&gt;package.json&lt;/code&gt;, &lt;code&gt;tsconfig.json&lt;/code&gt;, and &lt;code&gt;pyproject.toml&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Detects the tech stack, build/test commands, and code conventions&lt;/li&gt;
&lt;li&gt;Automatically generates a &lt;strong&gt;CLAUDE.md&lt;/strong&gt; file in the project root based on the analysis&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;If a CLAUDE.md already exists, it will not be overwritten — instead, improvements will be suggested.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2.4 What Is CLAUDE.md?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CLAUDE.md&lt;/strong&gt; is a project instruction file that Claude Code automatically reads at the start of each session.&lt;/p&gt;

&lt;p&gt;Write your project's tech stack, build commands, code conventions, and architecture information in Markdown format. Claude Code will automatically load this context at the beginning of every session, ensuring consistent behavior throughout the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  What to Include in CLAUDE.md
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Project overview&lt;/td&gt;
&lt;td&gt;"Weekly work report system built with NestJS 11 + React 18"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tech stack&lt;/td&gt;
&lt;td&gt;TypeScript, PostgreSQL, Prisma&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build/test commands&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;npm run build&lt;/code&gt;, &lt;code&gt;npm test&lt;/code&gt;, &lt;code&gt;npm run lint&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code conventions&lt;/td&gt;
&lt;td&gt;strict mode, 2-space indent, no default exports&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Key directories&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;src/api/&lt;/code&gt;, &lt;code&gt;src/components/&lt;/code&gt;, &lt;code&gt;tests/&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Important notes&lt;/td&gt;
&lt;td&gt;"No direct commits to the main branch"&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  What NOT to Include in CLAUDE.md
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rules already enforced by linters/formatters (ESLint, Prettier, etc.)&lt;/li&gt;
&lt;li&gt;A full listing of the file structure (discoverable through navigation)&lt;/li&gt;
&lt;li&gt;General development common sense ("use meaningful variable names")&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Core principle&lt;/strong&gt;: Keep CLAUDE.md concise — &lt;strong&gt;200 lines or fewer&lt;/strong&gt;.&lt;br&gt;
Instructions become less effective as the file grows longer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  CLAUDE.md Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# My Project&lt;/span&gt;

&lt;span class="gu"&gt;## Tech Stack&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; NestJS 11 + React 18 + TypeScript
&lt;span class="p"&gt;-&lt;/span&gt; PostgreSQL + Prisma ORM
&lt;span class="p"&gt;-&lt;/span&gt; Jest for testing

&lt;span class="gu"&gt;## Commands&lt;/span&gt;
| Command | Purpose |
|---------|---------|
| &lt;span class="sb"&gt;`npm run dev`&lt;/span&gt; | Start development server |
| &lt;span class="sb"&gt;`npm run build`&lt;/span&gt; | Production build |
| &lt;span class="sb"&gt;`npm test`&lt;/span&gt; | Run all tests |
| &lt;span class="sb"&gt;`npm run lint`&lt;/span&gt; | Run linter |

&lt;span class="gu"&gt;## Architecture&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/api/`&lt;/span&gt; — API routes and controllers
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/components/`&lt;/span&gt; — React components
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`src/services/`&lt;/span&gt; — Business logic
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="sb"&gt;`prisma/`&lt;/span&gt; — DB schema and migrations

&lt;span class="gu"&gt;## Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; TypeScript strict mode
&lt;span class="p"&gt;-&lt;/span&gt; All tests must pass (&lt;span class="sb"&gt;`npm test`&lt;/span&gt;) before committing
&lt;span class="p"&gt;-&lt;/span&gt; No direct commits to the main branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2.5 CLAUDE.md Hierarchy
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3gh2ieamfp7zowxxapy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3gh2ieamfp7zowxxapy.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CLAUDE.md can be placed in multiple locations. Claude Code merges and loads all of them at the start of each session.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│  ① Global (Personal)     ~/.claude/CLAUDE.md            │
│     → Personal preferences applied to all projects      │
├─────────────────────────────────────────────────────────┤
│  ② Project (Team-shared) ./CLAUDE.md                    │
│     → Committed to Git, shared across the team          │
├─────────────────────────────────────────────────────────┤
│  ③ Project Local         ./CLAUDE.local.md              │
│     → Personal use, not committed to Git                │
├─────────────────────────────────────────────────────────┤
│  ④ Subdirectory          ./frontend/CLAUDE.md           │
│     → Loaded on demand only when working in that folder │
└─────────────────────────────────────────────────────────┘

Priority: more specific takes precedence (④ &amp;gt; ③ &amp;gt; ② &amp;gt; ①)
When the same instruction appears at multiple levels, the more specific level wins.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Real-World Usage Examples
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;~/.claude/CLAUDE.md              ← "Respond in Korean", "Use Conventional Commits for commit messages"
~/projects/my-app/CLAUDE.md      ← Project stack, build commands, architecture
~/projects/my-app/CLAUDE.local.md ← "I handle the backend — ask me before modifying frontend code"
~/projects/my-app/frontend/CLAUDE.md ← "Use React Query, follow Tailwind class ordering rules"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2.6 Memory (Claude.ai) vs CLAUDE.md (Claude Code)
&lt;/h2&gt;

&lt;p&gt;These two may sound similar, but they are &lt;strong&gt;completely different systems&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comparison Table
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Memory (Claude.ai)&lt;/th&gt;
&lt;th&gt;CLAUDE.md (Claude Code)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Environment&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Claude.ai web/app conversations&lt;/td&gt;
&lt;td&gt;Claude Code CLI terminal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Per person (applies to all conversations)&lt;/td&gt;
&lt;td&gt;Per project (applies only within that repo)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Anthropic servers&lt;/td&gt;
&lt;td&gt;Local file (inside the project)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;How to edit&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;"Remember this" (natural language)&lt;/td&gt;
&lt;td&gt;Direct Markdown file editing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Auto-generation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Derived automatically from conversations&lt;/td&gt;
&lt;td&gt;Created initially via &lt;code&gt;/init&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Version control&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Can be committed to Git&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Team sharing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ Personal only&lt;/td&gt;
&lt;td&gt;✅ Shared via Git&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Nature of content&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Personal profile, preferences, work history&lt;/td&gt;
&lt;td&gt;Project rules, stack, commands&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  How to Configure by Perspective
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Personal perspective — settings about "you"&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What to configure&lt;/th&gt;
&lt;th&gt;Memory (Claude.ai)&lt;/th&gt;
&lt;th&gt;CLAUDE.md (Claude Code)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Work style&lt;/td&gt;
&lt;td&gt;"Prefer executive summaries for presentations"&lt;/td&gt;
&lt;td&gt;Write in &lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Language preference&lt;/td&gt;
&lt;td&gt;"Respond in Korean"&lt;/td&gt;
&lt;td&gt;Write in &lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Role information&lt;/td&gt;
&lt;td&gt;"R&amp;amp;D engineer on the P&amp;amp;T Advanced Research team"&lt;/td&gt;
&lt;td&gt;Write in &lt;code&gt;~/.claude/CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Memory is set during a conversation by saying "remember this", while the global CLAUDE.md is edited directly as a file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Project perspective — settings about "this project"&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What to configure&lt;/th&gt;
&lt;th&gt;Memory (Claude.ai)&lt;/th&gt;
&lt;th&gt;CLAUDE.md (Claude Code)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tech stack&lt;/td&gt;
&lt;td&gt;Accumulates automatically from conversation context&lt;/td&gt;
&lt;td&gt;Specify in &lt;code&gt;./CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build/test commands&lt;/td&gt;
&lt;td&gt;❌ Not applicable&lt;/td&gt;
&lt;td&gt;Specify in &lt;code&gt;./CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code conventions&lt;/td&gt;
&lt;td&gt;❌ Not applicable&lt;/td&gt;
&lt;td&gt;Specify in &lt;code&gt;./CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Architecture rules&lt;/td&gt;
&lt;td&gt;❌ Not applicable&lt;/td&gt;
&lt;td&gt;Specify in &lt;code&gt;./CLAUDE.md&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Configuration File Locations Summary
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="nn"&gt;[Personal Settings]&lt;/span&gt;
  &lt;span class="err"&gt;Claude.ai&lt;/span&gt; &lt;span class="err"&gt;Memory&lt;/span&gt;     &lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="err"&gt;Settings&lt;/span&gt; &lt;span class="err"&gt;&amp;gt;&lt;/span&gt; &lt;span class="err"&gt;Memory&lt;/span&gt; &lt;span class="err"&gt;(web&lt;/span&gt; &lt;span class="err"&gt;UI)&lt;/span&gt;
  &lt;span class="err"&gt;Global&lt;/span&gt; &lt;span class="err"&gt;CLAUDE.md&lt;/span&gt;     &lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="err"&gt;~/.claude/CLAUDE.md&lt;/span&gt;

&lt;span class="nn"&gt;[Project Settings]&lt;/span&gt;
  &lt;span class="err"&gt;Project&lt;/span&gt; &lt;span class="err"&gt;CLAUDE.md&lt;/span&gt;    &lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="err"&gt;{project&lt;/span&gt; &lt;span class="err"&gt;root}/CLAUDE.md&lt;/span&gt;        &lt;span class="err"&gt;(team-shared,&lt;/span&gt; &lt;span class="err"&gt;committed&lt;/span&gt; &lt;span class="err"&gt;to&lt;/span&gt; &lt;span class="err"&gt;Git)&lt;/span&gt;
  &lt;span class="err"&gt;Local&lt;/span&gt; &lt;span class="err"&gt;CLAUDE.md&lt;/span&gt;      &lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="err"&gt;{project&lt;/span&gt; &lt;span class="err"&gt;root}/CLAUDE.local.md&lt;/span&gt;  &lt;span class="err"&gt;(personal,&lt;/span&gt; &lt;span class="err"&gt;excluded&lt;/span&gt; &lt;span class="err"&gt;from&lt;/span&gt; &lt;span class="err"&gt;Git)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2.7 Setting Up the Global CLAUDE.md
&lt;/h2&gt;

&lt;p&gt;Configure personal preferences that apply across all projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the File
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Windows PowerShell&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;notepad&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;USERPROFILE&lt;/span&gt;&lt;span class="nx"&gt;\.claude\CLAUDE.md&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ubuntu Terminal&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; ~/.claude
nano ~/.claude/CLAUDE.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Example Content
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Global Preferences&lt;/span&gt;

&lt;span class="gu"&gt;## Language&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Write responses in Korean
&lt;span class="p"&gt;-&lt;/span&gt; Use English Conventional Commits for commit messages

&lt;span class="gu"&gt;## Work Style&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Seek approval before applying changes to output
&lt;span class="p"&gt;-&lt;/span&gt; Indicate when reasoning is speculative
&lt;span class="p"&gt;-&lt;/span&gt; Explain the scope of impact before making code changes

&lt;span class="gu"&gt;## Git&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Branch names: use feature/, fix/, refactor/ prefixes
&lt;span class="p"&gt;-&lt;/span&gt; Include the reason for the change in PR descriptions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2.8 Setting Up a Project CLAUDE.md
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Method 1: Auto-generate with /init (Recommended)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/projects/my-project
claude
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Review the generated file and adjust it to match your team's conventions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 2: Create Manually
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Write directly at the project root&lt;/span&gt;
nano ~/projects/my-project/CLAUDE.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Commit to Git
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add CLAUDE.md
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"docs: add CLAUDE.md for project context"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;CLAUDE.local.md&lt;/code&gt; is automatically added to &lt;code&gt;.gitignore&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2.9 What to Do When CLAUDE.md Gets Too Long
&lt;/h2&gt;

&lt;p&gt;When CLAUDE.md exceeds 200 lines, instruction adherence starts to degrade. Use the following strategies to keep it manageable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 1: Remove Unnecessary Instructions (Top Priority)
&lt;/h3&gt;

&lt;p&gt;Remove anything Claude already does well without being told.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# ❌ Remove (obvious behavior)&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Use meaningful variable names
&lt;span class="p"&gt;-&lt;/span&gt; Handle errors properly
&lt;span class="p"&gt;-&lt;/span&gt; Do not include API keys in code

&lt;span class="gh"&gt;# ✅ Keep (things not inferable from the code)&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; All tests must pass (npm test) before committing
&lt;span class="p"&gt;-&lt;/span&gt; API responses must always follow the { success, data, error } format
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Method 2: Split into Subdirectories
&lt;/h3&gt;

&lt;p&gt;For monorepos or large projects, distribute CLAUDE.md files across directories.&lt;br&gt;
Subdirectory CLAUDE.md files are loaded on demand only when working in that folder, saving context.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-project/
├── CLAUDE.md                  ← Common rules only (keep it concise)
├── frontend/
│   └── CLAUDE.md              ← React, Tailwind-related
├── backend/
│   └── CLAUDE.md              ← NestJS, Prisma-related
└── infra/
    └── CLAUDE.md              ← Docker, CI/CD-related
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Method 3: Reference External Documents with &lt;a class="mentioned-user" href="https://dev.to/import"&gt;@import&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Instead of putting everything in CLAUDE.md, reference existing documentation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Commands&lt;/span&gt;
See the Scripts section in @README.md

&lt;span class="gh"&gt;# API Convention&lt;/span&gt;
See @docs/api-convention.md

&lt;span class="gh"&gt;# Git Workflow&lt;/span&gt;
See @docs/git-workflow.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Claude Code reads those files when needed, so CLAUDE.md itself stays lightweight.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Method 4: Delegate to Linters/Hooks
&lt;/h3&gt;

&lt;p&gt;Enforce repetitive rules through tooling rather than CLAUDE.md instructions.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Remove from CLAUDE.md&lt;/th&gt;
&lt;th&gt;Replace with&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;"Use semicolons"&lt;/td&gt;
&lt;td&gt;ESLint/Prettier configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Commit message format"&lt;/td&gt;
&lt;td&gt;commitlint + husky&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Format on save"&lt;/td&gt;
&lt;td&gt;Hooks (&lt;code&gt;PostToolUse&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"Commit only after tests pass"&lt;/td&gt;
&lt;td&gt;Hooks (&lt;code&gt;PreToolUse&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  2.10 Quick Reference
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Initialize a project&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/my-project
git init
claude
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /init                              &lt;span class="c"&gt;# Auto-generate CLAUDE.md&lt;/span&gt;

&lt;span class="c"&gt;# CLAUDE.md hierarchy&lt;/span&gt;
~/.claude/CLAUDE.md                  &lt;span class="c"&gt;# Global (personal, all projects)&lt;/span&gt;
./CLAUDE.md                          &lt;span class="c"&gt;# Project (team-shared)&lt;/span&gt;
./CLAUDE.local.md                    &lt;span class="c"&gt;# Project local (personal)&lt;/span&gt;
./subfolder/CLAUDE.md                &lt;span class="c"&gt;# Subdirectory (on demand)&lt;/span&gt;

&lt;span class="c"&gt;# Add a memory during a session (inside Claude Code)&lt;/span&gt;
&lt;span class="c"&gt;# (Press the # key during a conversation to instantly append to CLAUDE.md)&lt;/span&gt;

&lt;span class="c"&gt;# Memory (Claude.ai) settings&lt;/span&gt;
&lt;span class="c"&gt;# View and edit at Settings &amp;gt; Memory&lt;/span&gt;
&lt;span class="c"&gt;# Add during a conversation with "remember this"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;: &lt;a href="https://code.claude.com/docs/en/best-practices" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/best-practices&lt;/a&gt; | &lt;a href="https://claude.com/blog/using-claude-md-files" rel="noopener noreferrer"&gt;https://claude.com/blog/using-claude-md-files&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>tooling</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Chapter 1. Claude Code CLI Installation Guide</title>
      <dc:creator>UC Jung</dc:creator>
      <pubDate>Sat, 28 Mar 2026 11:09:10 +0000</pubDate>
      <link>https://dev.to/ucjung/chapter-1-claude-code-cli-installation-guide-4mmg</link>
      <guid>https://dev.to/ucjung/chapter-1-claude-code-cli-installation-guide-4mmg</guid>
      <description>&lt;h2&gt;
  
  
  1.1 What is Claude Code CLI?
&lt;/h2&gt;

&lt;p&gt;A command-line tool that lets you direct an AI to write code using natural language, right from your terminal.&lt;br&gt;
It is a separate program from Claude.ai in the web browser, and is launched with the &lt;code&gt;claude&lt;/code&gt; command after installation.&lt;/p&gt;


&lt;h2&gt;
  
  
  1.2 Prerequisites
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Requirement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Operating System&lt;/td&gt;
&lt;td&gt;Windows 10+, Ubuntu 20.04+, macOS 10.15+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Account&lt;/td&gt;
&lt;td&gt;Claude Pro / Max / Teams / Enterprise (free plan not supported)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internet&lt;/td&gt;
&lt;td&gt;Required for installation and use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM / Disk&lt;/td&gt;
&lt;td&gt;4GB+ / 500MB+&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Installation Method Comparison
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Node.js&lt;/th&gt;
&lt;th&gt;Auto-update&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;① Native&lt;/td&gt;
&lt;td&gt;Not required&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;⭐ &lt;strong&gt;Officially recommended&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;② WinGet (Windows only)&lt;/td&gt;
&lt;td&gt;Not required&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;③ npm&lt;/td&gt;
&lt;td&gt;18+ required&lt;/td&gt;
&lt;td&gt;❌ Manual&lt;/td&gt;
&lt;td&gt;⛔ &lt;strong&gt;Deprecated&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;


&lt;h2&gt;
  
  
  1.3 Windows PowerShell
&lt;/h2&gt;
&lt;h3&gt;
  
  
  ① Native Installation (Recommended)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites — Install Git for Windows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Claude Code uses Git Bash internally, so this is required.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download from &lt;a href="https://git-scm.com" rel="noopener noreferrer"&gt;https://git-scm.com&lt;/a&gt; → install with default settings&lt;/li&gt;
&lt;li&gt;Verify:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;git&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://claude.ai/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;irm&lt;/code&gt; (downloads the script from the web) → &lt;code&gt;iex&lt;/code&gt; (executes it)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Verify — Close PowerShell, open a new window, then run&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If you see a "claude is not recognized" error&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Environment&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"PATH"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;PATH&lt;/span&gt;&lt;span class="s2"&gt;;&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;USERPROFILE&lt;/span&gt;&lt;span class="s2"&gt;\.local\bin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;EnvironmentVariableTarget&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;→ Restart PowerShell and verify again&lt;/p&gt;




&lt;h3&gt;
  
  
  ② WinGet Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;winget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Anthropic.ClaudeCode&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Auto-update is not supported. To update manually: &lt;code&gt;winget upgrade Anthropic.ClaudeCode&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  ③ npm Installation (⛔ Deprecated)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 &lt;strong&gt;Deprecation notice.&lt;/strong&gt; Do not use for new installations.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Node.js 18+ must be installed beforehand (https://nodejs.org LTS version)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-g&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;anthropic-ai/claude-code&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Migrating from npm to Native&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://claude.ai/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;          &lt;/span&gt;&lt;span class="c"&gt;# Install native&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uninstall&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-g&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;anthropic-ai/claude-code&lt;/span&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="c"&gt;# Remove npm package&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Your settings (&lt;code&gt;~/.claude/&lt;/code&gt;) are preserved during migration.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1.4 Ubuntu Terminal
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ① Native Installation (Recommended)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://claude.ai/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;curl&lt;/code&gt; (downloads the script from the web) → &lt;code&gt;bash&lt;/code&gt; (executes it)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Verify — Restart the terminal or run &lt;code&gt;source ~/.bashrc&lt;/code&gt;, then run&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;If you see a "command not found" error&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH="$HOME/.local/bin:$PATH"'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ② npm Installation (⛔ Deprecated)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;🚨 &lt;strong&gt;Deprecation notice.&lt;/strong&gt; Do not use for new installations.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install Node.js&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nodejs npm

&lt;span class="c"&gt;# Configure global installs without sudo&lt;/span&gt;
&lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/.npm-global
npm config &lt;span class="nb"&gt;set &lt;/span&gt;prefix &lt;span class="s1"&gt;'~/.npm-global'&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'export PATH=~/.npm-global/bin:$PATH'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; ~/.bashrc
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc

&lt;span class="c"&gt;# Install Claude Code&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code
claude &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Migrating from npm to Native&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://claude.ai/install.sh | bash    &lt;span class="c"&gt;# Install native&lt;/span&gt;
npm uninstall &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code         &lt;span class="c"&gt;# Remove npm package&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  1.5 First Launch and Authentication (All Platforms)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/my-project    &lt;span class="c"&gt;# Navigate to your project folder&lt;/span&gt;
claude             &lt;span class="c"&gt;# Launch&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;A browser window opens automatically → sign in with your Claude.ai account&lt;/li&gt;
&lt;li&gt;Authentication complete → automatically reflected in the terminal (no re-authentication needed afterward)&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;For headless environments (servers, etc.):&lt;/p&gt;


&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-ant-xxxxxxxxxxxxxxxx
&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1.6 Diagnostics, Updates, and Uninstallation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Diagnostics&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Updates&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Native&lt;/td&gt;
&lt;td&gt;Automatic (no action needed)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WinGet&lt;/td&gt;
&lt;td&gt;&lt;code&gt;winget upgrade Anthropic.ClaudeCode&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;npm&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm update -g @anthropic-ai/claude-code&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Uninstallation&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude uninstall                                   &lt;span class="c"&gt;# Native&lt;/span&gt;
winget uninstall Anthropic.ClaudeCode              &lt;span class="c"&gt;# WinGet (Windows)&lt;/span&gt;
npm uninstall &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code         &lt;span class="c"&gt;# npm&lt;/span&gt;
&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; ~/.claude                                   &lt;span class="c"&gt;# Remove settings files (optional)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  1.7 Quick Command Reference
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Windows PowerShell
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Native (recommended)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://claude.ai/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# WinGet&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;winget&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Anthropic.ClaudeCode&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# npm (⛔ Deprecated)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;npm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-g&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="nx"&gt;anthropic-ai/claude-code&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Common&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--version&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# Check version&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="c"&gt;# Launch&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;doctor&lt;/span&gt;&lt;span class="w"&gt;       &lt;/span&gt;&lt;span class="c"&gt;# Diagnostics&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;claude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;uninstall&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="c"&gt;# Uninstall&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Ubuntu Terminal
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Native (recommended)&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://claude.ai/install.sh | bash

&lt;span class="c"&gt;# npm (⛔ Deprecated)&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code

&lt;span class="c"&gt;# Common&lt;/span&gt;
claude &lt;span class="nt"&gt;--version&lt;/span&gt;    &lt;span class="c"&gt;# Check version&lt;/span&gt;
claude              &lt;span class="c"&gt;# Launch&lt;/span&gt;
claude doctor       &lt;span class="c"&gt;# Diagnostics&lt;/span&gt;
claude uninstall    &lt;span class="c"&gt;# Uninstall&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  1.8 Glossary
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Definition&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CLI&lt;/td&gt;
&lt;td&gt;A method of controlling a computer using keyboard commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal&lt;/td&gt;
&lt;td&gt;A program used to enter CLI commands (e.g., PowerShell, Terminal)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PATH&lt;/td&gt;
&lt;td&gt;The list of directories the OS searches when looking for programs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;npm&lt;/td&gt;
&lt;td&gt;The Node.js package manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WinGet&lt;/td&gt;
&lt;td&gt;The official Windows package manager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deprecated&lt;/td&gt;
&lt;td&gt;Scheduled for removal; currently functional but may be dropped in a future release&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OAuth&lt;/td&gt;
&lt;td&gt;An authentication method that works through a browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API Key&lt;/td&gt;
&lt;td&gt;A credential used to authenticate with a service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt;: &lt;a href="https://code.claude.com/docs/en/setup" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/setup&lt;/a&gt; | &lt;a href="https://github.com/anthropics/claude-code" rel="noopener noreferrer"&gt;https://github.com/anthropics/claude-code&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ai</category>
      <category>cli</category>
      <category>tooling</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
