Claude Code

ความลับที่ทำให้ Claude Code ได้ผลจริง

เลิกปล่อยให้ Claude เขียนโค้ดไปเรื่อย ๆ แบบไม่มีโครงสร้างได้แล้ว แชร์สิ่งที่ทำมาแล้วจริง 9 ข้อ ที่ถ้าไม่รู้ไว้ก่อนคือเสียเวลาไปอีกนาน

วางแผนก่อนให้ลงมือเขียนโค้ด

ปัญหาที่เจอบ่อยที่สุดคือปล่อยให้ Claude เริ่มแก้ไฟล์ทันทีตั้งแต่ข้อความแรก โดยยังไม่ทันเข้าใจโครงสร้างเดิมของโค้ดดีพอ พองานซับซ้อนขึ้นมาหน่อยก็มักจะเดินผิดทางแล้วต้องมานั่ง refactor ทีหลัง ทางแก้คือเข้า Plan Mode ก่อนทุกครั้งที่งานไม่เล็กมาก

  • เข้ายังไง: กด Shift+Tab วนสลับโหมดจาก "ถามก่อนทำทุกครั้ง" (default) ไป "แก้ไฟล์อัตโนมัติ" (accept edits) ไป "วางแผนอย่างเดียว" (plan) หรือพิมพ์ /plan นำหน้าข้อความก็เข้าโหมดนี้ได้ทันทีโดยไม่ต้องกด
  • ระหว่างอยู่ในโหมดนี้: Claude อ่านไฟล์ ค้นโค้ด รันคำสั่งอ่านอย่างเดียวได้ตามปกติ แต่ แก้ไฟล์ไม่ได้เด็ดขาด จนกว่าจะออกจากโหมด ถ้ามีจุดไหนไม่ชัดก็จะถามกลับก่อนแทนที่จะเดาเอง

พอ Claude คิดว่าเข้าใจงานพอแล้ว จะร่างแผนออกมาเป็นขั้นตอนคร่าว ๆ ให้ดูก่อน เช่น

  • เพิ่มฟิลด์ email ใน model User พร้อม migration
  • แก้ endpoint POST /users ให้รับและ validate ฟิลด์ใหม่
  • เพิ่ม test ครอบกรณี email ซ้ำในระบบ

จากนั้น Claude จะถามว่าจะเอายังไงต่อ ซึ่งมีให้เลือกมากกว่าแค่ "ใช่" กับ "ไม่ใช่"

  • อนุมัติ แล้วให้ลงมือทำแบบอัตโนมัติเต็มที่: เหมาะกับแผนที่มั่นใจแล้วว่าถูกทาง ไม่อยากมาคอยกดอนุมัติทีละไฟล์
  • อนุมัติ แล้วให้แก้ไฟล์อัตโนมัติแต่ยังตรวจ diff เองทีหลัง: กลาง ๆ ระหว่างปล่อยมือกับคุมเข้ม
  • อนุมัติ แต่ขอตรวจทีละจุดตามปกติ: เหมาะกับงานที่ยังอยากดูใกล้ ๆ
  • ยังไม่อนุมัติ ขอแก้แผนก่อน: พิมพ์บอกจุดที่อยากปรับ แล้ว Claude จะวางแผนใหม่ให้ ยังไม่แตะโค้ดจนกว่าจะอนุมัติจริง

เคล็ดลับ

กด Ctrl+G ตอนแผนโผล่ขึ้นมา เพื่อเปิดแผนนั้นในโปรแกรมแก้ข้อความเริ่มต้นของเครื่อง แล้วแก้ถ้อยคำในแผนตรง ๆ ก่อนอนุมัติ ได้ละเอียดกว่าการพิมพ์บอกทีละจุด

เคล็ดลับ

ข้ามขั้นตอนนี้ได้เฉพาะงานเล็กมาก ๆ ที่อธิบายจบในประโยคเดียว เช่น แก้ typo ในไฟล์ หรือเพิ่ม log บรรทัดเดียว ที่เหลือใช้ Plan Mode ทุกครั้ง

รู้จักและเขียน CLAUDE.md ให้ตรงจุด

ทุก session ของ Claude Code เริ่มต้นจาก context ที่ว่างเปล่าเสมอ ไม่มีความจำอัตโนมัติข้ามจากการคุยครั้งก่อน ไฟล์ CLAUDE.md คือทางแก้: เป็นไฟล์ markdown ธรรมดาที่ Claude อ่านอัตโนมัติทุกครั้งที่เริ่ม session ใหม่ ไม่ต้องพิมพ์อธิบายโปรเจกต์ซ้ำทุกรอบ

  • ./CLAUDE.md (รากโปรเจกต์): คำแนะนำที่แชร์กับทั้งทีมผ่าน git ใครมาทำโปรเจกต์นี้ก็เห็นเหมือนกัน
  • ~/.claude/CLAUDE.md: ความชอบส่วนตัวที่อยากให้มีผลกับทุกโปรเจกต์ในเครื่องตัวเอง ไม่เกี่ยวกับทีม
  • ./CLAUDE.local.md: ของส่วนตัวเฉพาะโปรเจกต์นี้ ไม่ commit เข้า git (เช่น URL sandbox ของตัวเอง)

ไม่ควรยัดกฎยาวเป็นร้อยบรรทัด เพราะไฟล์นี้ถูกอ่านเข้า context ทุก session ยิ่งยาวยิ่งกินพื้นที่และยิ่งมีโอกาสที่ Claude อ่านไม่ครบทุกบรรทัด ควรเน้นข้อมูลที่จำเป็นจริง ๆ และที่สำคัญคือบันทึก "บทเรียน" ทุกครั้งที่ Claude ทำพลาดอะไรบางอย่าง แล้วเพิ่มเป็นบรรทัดกันพลาดซ้ำ ไฟล์นี้จะค่อย ๆ โตขึ้นตามความเข้าใจโปรเจกต์ ไม่ใช่เขียนครั้งเดียวจบ

markdown
# My Project

## Commands
- npm test: run tests
- npm run build: build for production

## Conventions
- Use camelCase for variables
- Never commit directly to main

## Lessons
- Auth tokens go in the "Authorization" header, not a custom header

ระวัง

อย่าใส่ API key, password หรือ secret ใด ๆ ลงใน CLAUDE.md เด็ดขาด เพราะไฟล์นี้มักถูก commit เข้า git และถูกส่งให้ Claude อ่านทุก session

ใช้ Hooks กับสิ่งที่ห้ามพลาดเด็ดขาด

CLAUDE.md เป็นแค่คำแนะนำที่ Claude ทำตามเป็นส่วนใหญ่ แต่ไม่ใช่ 100% เสมอไป เพราะสุดท้ายมันคือ context ที่ Claude "ตีความ" เอา ถ้ามีอะไรที่ต้องเกิดขึ้นทุกครั้งแบบไม่มีข้อยกเว้น ควรตั้งเป็น hook แทน คือสคริปต์ที่ระบบรันให้อัตโนมัติตาม "เหตุการณ์" ที่กำหนดไว้ ไม่ผ่านการตัดสินใจของโมเดลเลย จึงพลาดไม่ได้

  • PreToolUse: ก่อนเครื่องมือถูกเรียกใช้ ใช้บล็อกการทำงานอันตรายได้ เช่นห้ามรันคำสั่งลบไฟล์แบบ force
  • PostToolUse: หลังเครื่องมือทำงานเสร็จ ใช้ทำ side effect เช่นรัน formatter ทันทีหลัง Claude แก้ไฟล์
  • UserPromptSubmit: ทุกครั้งที่ส่งข้อความใหม่ ใช้แทรกข้อมูลเสริมเข้า context อัตโนมัติได้
  • Stop: เมื่อ Claude ตอบจบรอบหนึ่ง ๆ

ตั้งค่าไว้ในไฟล์ .claude/settings.json ที่รากโปรเจกต์ ไฟล์เดียวกับที่คำสั่ง /permissions ในบทความก่อนหน้าใช้เก็บกฎอนุญาต/ปฏิเสธที่ตั้งไว้

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [{ "type": "command", "command": "npx prettier --write $CLAUDE_FILE_PATHS" }]
      }
    ]
  }
}

อ่านจากในออกนอก: PostToolUse คือชื่อ event, matcher คือ pattern ของชื่อเครื่องมือที่จะให้ hook นี้ทำงานด้วย (ในตัวอย่างคือ Edit หรือ Write เท่านั้น ไม่รวมเครื่องมืออื่น) ส่วน command คือคำสั่งจริงที่จะรัน โดย $CLAUDE_FILE_PATHS เป็นตัวแปรที่ Claude Code ใส่พาธไฟล์ที่เพิ่งถูกแก้ให้อัตโนมัติ ไม่ต้องเขียนเอง


เชื่อมต่อระบบภายนอกด้วย MCP

ตามที่พูดถึงคร่าว ๆ ไว้ในบทความก่อนหน้า MCP (Model Context Protocol) คือมาตรฐานเปิดที่ Anthropic สร้างขึ้น ให้ Claude เชื่อมต่อกับเครื่องมือและข้อมูลภายนอกได้เป็นระบบ ผ่านตัวกลางที่เรียกว่า MCP server แทนที่จะต้อง copy ข้อมูลจากเครื่องมืออื่นมาแปะในแชทเองทุกครั้ง

  • ให้ Claude อ่าน issue จาก GitHub แล้วสร้าง PR แก้ให้เลย
  • query ฐานข้อมูลจริงด้วยประโยคภาษาคน แทนการเขียน SQL เอง
  • ดึงข้อมูล error ล่าสุดจากระบบ monitoring อย่าง Sentry มาช่วยวิเคราะห์บั๊ก

เพิ่ม MCP server ด้วยคำสั่ง claude mcp add ตัวอย่างเช่นต่อกับ GitHub ผ่าน token ส่วนตัว

bash
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

วิธียืนยันตัวตนไม่ได้มีแบบเดียว บาง MCP server เป็นโปรแกรมที่รันอยู่ในเครื่องเราเอง (เรียกว่า stdio server) แทนที่จะเป็น endpoint จากภายนอก แบบนี้ส่ง credential เข้าไปผ่านแฟล็ก --env ได้เลย เช่นต่อกับเครื่องมือจัดการ test case อย่าง TestRail

bash
claude mcp add testrail \
  --env TESTRAIL_URL=https://yourcompany.testrail.io \
  --env TESTRAIL_USERNAME=you@company.com \
  --env TESTRAIL_API_KEY=your-api-key \
  -- npx -y @bun913/mcp-testrail

ส่วนบาง server ก็ไม่ต้องไปสร้าง token เองด้วยซ้ำ อย่าง Atlassian (Jira/Confluence) พอ Claude เรียกใช้เครื่องมือครั้งแรก จะเด้งเบราว์เซอร์ให้ล็อกอินผ่าน OAuth ให้เองอัตโนมัติ

bash
claude mcp add --transport http atlassian https://mcp.atlassian.com/v1/mcp

ไม่ว่าจะต่อด้วยวิธีไหนใน 3 แบบข้างบน ตอนรัน claude mcp add ทุกครั้งยังเลือกได้ด้วยว่าจะเก็บการตั้งค่านี้ไว้ "ระดับไหน" ใครมองเห็นเซิร์ฟเวอร์ที่เพิ่งต่อบ้าง ผ่านแฟล็ก --scope

  • local (ค่าเริ่มต้น): ใช้ได้แค่ในโปรเจกต์นี้ เฉพาะตัวเอง ไม่แชร์กับใคร
  • project: เก็บไว้ในไฟล์ .mcp.json ที่ commit เข้า git ได้ ทั้งทีมใช้ตัวเดียวกัน
  • user: ใช้ได้ทุกโปรเจกต์ในเครื่องของตัวเอง

ใส่แฟล็ก --scope ต่อจากชื่อ server ในคำสั่งเดิมได้เลย เช่นถ้าอยากให้ตัวอย่าง GitHub ด้านบนแชร์กับทั้งทีมผ่าน git แทนที่จะเก็บไว้คนเดียว

bash
claude mcp add --transport http github --scope project https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer YOUR_GITHUB_PAT"

ไม่ใส่ --scope เลยก็ยังใช้งานได้ตามปกติ แค่จะตกไปเป็น local (ค่าเริ่มต้น) โดยอัตโนมัติ

เชื่อมต่อสำเร็จแล้ว นอกจากปล่อยให้ Claude เรียกใช้เองตอนที่เกี่ยวข้อง ยังอ้างอิงข้อมูลตรง ๆ ในข้อความได้ด้วยรูปแบบ @server:resource ตามที่พูดถึงไว้ก่อนหน้า เช่น @github:repos/owner/repo/issues

ระวัง

ต่อเฉพาะ MCP server ที่เชื่อถือได้เท่านั้น เพราะมันมีสิทธิ์เข้าถึงเหมือนปลั๊กอินที่รันคำสั่งแทนเราได้จริง server ที่ไปดึงเนื้อหาจากภายนอกมาก็มีความเสี่ยงเรื่อง prompt injection ด้วย

เคล็ดลับ

เช็คว่ามี MCP server อะไรต่ออยู่บ้างและสถานะเป็นยังไง พิมพ์ /mcp ในเซสชัน หรือรัน claude mcp list จาก terminal

รันหลาย session พร้อมกันด้วย git worktree

ปกติโฟลเดอร์ repo หนึ่งใบเช็คเอาต์ได้ทีละ 1 branch เท่านั้น สลับ branch คือไฟล์ในโฟลเดอร์เดิมเปลี่ยนหน้าตาไปมา ถ้าอยากทำงานสอง branch พร้อมกันแบบเดิมต้อง clone repo ซ้ำทั้งก้อน เปลืองพื้นที่และต้อง fetch ใหม่ทุกครั้ง git worktree แก้ปัญหานี้โดยสร้างโฟลเดอร์ใหม่บนดิสก์ที่ผูกกับ repo เดิม (ใช้ประวัติ git ก้อนเดียวกัน) แต่เช็คเอาต์คนละ branch ได้พร้อมกันจริง ๆ

text
myapp/              ← โฟลเดอร์เดิม เช็คเอาต์ branch main
myapp-auth/         ← โฟลเดอร์ใหม่จาก worktree เช็คเอาต์ branch feat/oauth
                       (ใช้ .git ก้อนเดียวกับ myapp/ ไม่ใช่ repo แยก)

สร้าง worktree แล้วเปิด Claude Code ในโฟลเดอร์ใหม่นั้นได้เลย ทำงานคนละ feature พร้อมกันในคนละ terminal

bash
git worktree add ../myapp-auth feat/oauth
cd ../myapp-auth && claude

Claude Code เองก็มีทางลัดให้สร้าง worktree แล้วเปิด session ใหม่ในนั้นให้เสร็จในคำสั่งเดียว โดยไม่ต้องตั้งชื่อโฟลเดอร์กับชื่อ branch แยกกันเองแบบตัวอย่างข้างบน ชื่อที่ใส่ต่อท้าย --worktree จะกลายเป็นทั้งชื่อโฟลเดอร์ (สร้างไว้ที่ .claude/worktrees/ชื่อนั้น/ ในโปรเจกต์เอง) และชื่อ branch ใหม่ (ได้ branch ชื่อ worktree-ชื่อนั้น) ให้อัตโนมัติ

bash
claude --worktree feature-auth

เสร็จงานแล้วเช็คว่ามี worktree อะไรค้างอยู่บ้าง และลบทิ้งได้เมื่อไม่ใช้แล้วโดยไม่กระทบ branch หลัก

bash
git worktree list
git worktree remove ../myapp-auth

เคล็ดลับ

เริ่มจาก 2 session ก่อน อันนึงเขียนโค้ด อีกอันคอยตรวจ พอคุ้นมือแล้วค่อยเพิ่มจำนวน


ให้ tests เป็นเกณฑ์ตัดสิน ไม่ใช่การเดา

งานที่ใช้เวลานาน context ของ Claude จะเริ่มเต็มและความแม่นยำค่อย ๆ ลด การให้มันตรวจงานตัวเองด้วยการอ่านซ้ำอย่างเดียวจึงไม่นิ่งพอ วิธีที่ได้ผลกว่าคือให้ test เป็นตัวชี้ขาดแทนสายตา วนตามวงจร red-green-refactor

  • Red: เขียน test ที่ยัง fail ไว้ก่อน อธิบายพฤติกรรมที่ต้องการให้ชัดผ่าน assertion ไม่ใช่คำพูด
  • Green: ให้ Claude implement โค้ดจริงจนกว่า test จะผ่าน วนแก้เองได้เรื่อย ๆ จนกว่าจะเขียวหมด
  • Refactor: ทำโค้ดให้สะอาดขึ้นได้ ตราบใดที่ test ชุดเดิมยังผ่านอยู่เหมือนเดิม
javascript
test("rejects duplicate email on signup", () => {
  createUser("a@x.com");
  expect(() => createUser("a@x.com")).toThrow("email already exists");
});

ส่งข้อความแค่ "implement จนกว่า test นี้จะผ่าน" Claude จะรัน test ซ้ำเองหลังแก้ทุกรอบ แล้วอ่านผล fail ที่ได้เพื่อปรับโค้ดต่อ ได้ feedback ที่ชัดเจนกว่าการอ่านโค้ดด้วยตาเปล่ามาก

แยกงานเฉพาะทางออกเป็น subagent

งานที่ต้องค้นหาไฟล์เยอะ ๆ อ่านเอกสารยาว ๆ หรือ review โค้ดเฉพาะด้าน ถ้าทำในบทสนทนาหลักจะกิน context เร็วมาก subagent คือ AI ผู้ช่วยเฉพาะทางที่รันแยก context window ของตัวเองต่างหาก มี system prompt และสิทธิ์เครื่องมือเป็นของตัวเอง เมื่อ Claude เจองานที่ตรงกับคำอธิบายของ subagent ตัวไหน จะมอบหมายงานให้ subagent นั้นทำเองอัตโนมัติ แล้วส่งกลับมาแค่สรุปผล ไม่เอารายละเอียดที่ค้นเจอระหว่างทางมาทำให้ context หลักรก

สร้างเป็นไฟล์ markdown ไว้ที่ .claude/agents/

code-reviewer.md
---
name: code-reviewer
description: ใช้ตรวจโค้ดหลังแก้เสร็จ ก่อน commit ทุกครั้ง
tools: Read, Grep, Glob
---

คุณคือผู้ช่วยตรวจสอบโค้ด เน้นหา bug และจุดที่ควรปรับปรุง
อ่านโค้ดที่เปลี่ยนแปลงแล้วรายงานปัญหาที่พบเป็นข้อ ๆ ไม่ต้องแก้ไฟล์เอง
  • เรียกใช้เอง: บอกตรง ๆ ว่า "ใช้ subagent ตรวจสอบว่าระบบ auth จัดการ token refresh ยังไง"
  • ให้ Claude เลือกเอง: เขียน description ให้ชัดว่าใช้ตอนไหน Claude จะมอบหมายงานให้อัตโนมัติเมื่อเจองานที่ตรงกัน
  • ควรจำกัดสิทธิ์เครื่องมือของ subagent ให้ตรงกับงานเท่านั้น เช่น agent ที่ทำหน้าที่ review ให้สิทธิ์แค่อ่านไฟล์กับค้นหา ไม่ต้องให้แก้ไฟล์ได้

เขียน Skill ของตัวเองสำหรับสิ่งที่ทำซ้ำบ่อย

ถ้ามีขั้นตอนที่ต้องอธิบายให้ Claude ฟังซ้ำทุก session เช่น ขั้นตอน deploy, convention เฉพาะของทีม, หรือความรู้เฉพาะทางของระบบ ควรเก็บเป็น Skill แทนการพิมพ์อธิบายใหม่ทุกครั้ง เก็บเป็นไฟล์ SKILL.md ไว้ในโฟลเดอร์ .claude/skills/ชื่อ-skill/ ต่างจาก CLAUDE.md ตรงที่เนื้อหาจะโหลดเข้ามาเฉพาะตอนใช้งานจริงเท่านั้น ไม่กิน context ค้างอยู่ตลอดเวลา และยังเรียกตรง ๆ ได้ด้วยพิมพ์ /ชื่อ-skill

SKILL.md
---
name: deploy-checklist
description: ใช้เมื่อ user จะ deploy โปรเจกต์นี้ขึ้น production
---

ก่อน deploy ให้ทำตามลำดับนี้เสมอ:
1. รัน npm test ให้ผ่านทั้งหมด
2. รัน npm run build เช็คว่า build ผ่าน
3. อัปเดต CHANGELOG.md
4. Tag เวอร์ชันด้วย git tag

โน้ต

เขียน description ให้ชัดว่า "ใช้เมื่อ..." เช่น "ใช้เมื่อ user รัน test แล้ว fail" แล้ว Claude จะตัดสินใจโหลด skill ได้ถูกจังหวะกว่าคำอธิบายกว้าง ๆ


ปุ่มลัดที่ควรรู้เพิ่ม: ค้นบทสนทนาเก่า โหมด vim และพิมพ์หลายบรรทัด

นอกจากเรื่องใหญ่ ๆ ด้านบน ยังมีปุ่มลัดเล็ก ๆ น้อย ๆ ที่ช่วยพิมพ์คุยกับ Claude Code ได้เร็วขึ้นในชีวิตประจำวัน

  • ค้นบทสนทนาเก่าด้วย Ctrl+R: กด Ctrl+R แล้วพิมพ์คำที่จำได้จากข้อความที่เคยพิมพ์ไปก่อนหน้า ระบบจะค้นและไฮไลต์คำที่ตรงกันให้ กด Ctrl+R ซ้ำเพื่อไล่ดูผลลัพธ์เก่ากว่านั้นไปเรื่อย ๆ พอเจอที่ต้องการกด Tab หรือ Esc เพื่อนำมาแก้ต่อ หรือกด Enter เพื่อส่งข้อความนั้นทันทีเลย
  • โหมด vim: เปิดผ่าน /config แล้วเลือก Editor mode เปลี่ยนช่องพิมพ์ให้ทำงานแบบ vim คือมีโหมด NORMAL (กด Esc เข้า ใช้ h j k l เลื่อนเคอร์เซอร์ ไม่ได้พิมพ์ตัวอักษรตรง ๆ) กับโหมด INSERT (กด i จาก NORMAL เพื่อเข้าไปพิมพ์ตามปกติ) เหมาะกับคนที่คุ้นคีย์ลัดของ vim อยู่แล้ว
  • พิมพ์ข้อความหลายบรรทัดโดยไม่ส่งข้อความก่อน: กด Enter เฉย ๆ จะส่งข้อความทันที ถ้าอยากขึ้นบรรทัดใหม่ในข้อความเดียวกัน ใช้ \ ตามด้วย Enter ได้เสมอทุก terminal หรือกด Ctrl+J ก็ได้เหมือนกันโดยไม่ต้องตั้งค่าอะไรเพิ่ม (บาง terminal เช่น iTerm2, Windows Terminal รองรับ Shift+Enter ตรง ๆ ได้เลยด้วย)

ทั้ง 9 ข้อนี้คือ workflow ระดับวันต่อวัน แต่ยังไม่ได้พูดถึงการ "เตรียมของ" ก่อนเริ่มงาน ว่าจะเลือกโมเดลไหนให้เหมาะกับงาน แล้ว AI จะจำสิ่งที่สอนไปได้ยังไงในระยะยาว ต่อด้วยซีรีส์ "ติดอาวุธ" ได้ที่บทความ เลือกโมเดล + วางระบบความจำ และ ของเสริมนอกกล่องที่ควรมี เลยครับ


แหล่งอ้างอิง

เรียบเรียงขึ้นใหม่ด้วยคำตัวเอง โดยได้แรงบันดาลใจส่วนหนึ่งจากแหล่งด้านล่าง

  1. "ใช้ Claude Code ให้คุ้มจริง ๆ" (2026) โดยคุณ Pannatorn Bongkptamphon (BOROT) · สืบค้นเมื่อ 1 กรกฎาคม 2026
  2. "Choose a permission mode" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  3. "How Claude remembers your project" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  4. "Hooks reference" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  5. "Connect Claude Code to tools via MCP" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  6. "Common workflows" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  7. "Create custom subagents" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  8. "Extend Claude with skills" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  9. "Interactive mode" · Claude Code Docs, Anthropic, สืบค้นเมื่อ 2 กรกฎาคม 2026
  10. "git-worktree" · Git Documentation, สืบค้นเมื่อ 2 กรกฎาคม 2026