Claude Code - Mọi thứ có thể cấu hình mà tài liệu không nói đến
(buildingbetter.tech)- Claude Code 2.1.87 có nhiều thiết lập chưa được tài liệu hóa, và có thể tách riêng để áp dụng Hooks, Skills, Agents theo từng cá nhân hoặc từng dự án bằng các tệp
.claude/ - Hook không chỉ dùng JSON từ stdin và exit code mà còn dùng các trường JSON theo từng sự kiện từ stdout để sửa lệnh, quyết định quyền, chèn ngữ cảnh, thậm chí giám sát tệp
- Các trường Hook không có trong tài liệu như
once,async,asyncRewakecó thể tạo luồng chạy một lần, audit log nền, và chặn bảo mật bất đồng bộ - Skills và Agents dùng frontmatter ẩn để kiểm soát model, effort, Hook theo scope, ủy quyền Agent, bộ nhớ lâu dài, bỏ qua
CLAUDE.md, và phụ thuộc MCP - Auto Mode, bộ nhớ tự động, Dream, Magic Docs, permission glob,
context: forkgiúp cấu hình Claude Code gần với một môi trường phát triển có khả năng học hỏi hơn
Phiên bản tham chiếu và vị trí tệp
- Nội dung này dựa trên
@anthropic-ai/claude-code@2.1.87, và các tính năng chưa được tài liệu hóa có thể thay đổi giữa các bản phát hành - Các trường có chứa
EXPERIMENTALtrong tên là những trường mà kỹ sư Anthropic đánh dấu là không ổn định, có thể bị xóa hoặc đổi tên - Vị trí tệp cấu hình
- Thiết lập cá nhân:
~/.claude/settings.json - Thiết lập dự án:
.claude/settings.json
- Thiết lập cá nhân:
- Vị trí Skills
- Cá nhân:
~/.claude/skills/<name>/SKILL.md - Dự án:
.claude/skills/<name>/SKILL.md
- Cá nhân:
- Vị trí Agents
- Cá nhân:
~/.claude/agents/<name>.md - Dự án:
.claude/agents/<name>.md
- Cá nhân:
- Theo thông lệ, script Hook nên đặt trong
~/.claude/hooks/, và để thực thi cầnchmod +x - Các tệp
.claude/ở cấp dự án có thể được commit vào Git để chia sẻ với nhóm, còn các tệp cá nhân dưới~/.claude/chỉ áp dụng cho người dùng đó
Hook có thể thay đổi hành vi Claude Code bằng JSON trên stdout
- Tài liệu chính thức chỉ nói đến luồng Hook nhận JSON qua stdin và chặn tác vụ bằng exit code 2, nhưng trên thực tế có thể thay đổi hành vi Claude Code theo thời gian thực bằng các trường JSON theo từng sự kiện trên stdout
-
Các trường có thể trả về trong
PreToolUseupdatedInput: có thể viết lại input trước khi công cụ chạy để thay đổi lệnhpermissionDecision: có thể épallowhoặcdenymà không cần hỏi người dùngpermissionDecisionReason: có thể hiển thị lý do quyết định trong UIadditionalContext: có thể chèn văn bản vào ngữ cảnh hội thoại
-
Các trường có thể trả về trong
SessionStartwatchPaths: có thể thiết lập giám sát tệp tự động để kích hoạt sự kiệnFileChangedinitialUserMessage: có thể thêm nội dung vào trước tin nhắn người dùng đầu tiên của phiênadditionalContext: có thể chèn ngữ cảnh được duy trì trong toàn bộ phiên
-
Các trường có thể trả về trong
PostToolUseupdatedMCPToolOutput: có thể sửa phản hồi công cụ MCP mà Claude nhìn thấyadditionalContext: có thể chèn ngữ cảnh sau khi công cụ chạy
-
Các trường có thể trả về trong
PermissionRequestdecision: có thể cho phép hoặc từ chối theo cách lập trình cùng vớiupdatedInputhoặcupdatedPermissions
-
Hook tự động đổi
git pushthành--dry-run- Trong Hook
PreToolUse, có thể kiểm tra lệnh Bash và nếu chứagit pushthì dùngupdatedInputđể thêm--dry-runvào cuối lệnh - Claude sẽ nghĩ rằng đang chạy
git push origin main, nhưng Hook sẽ đổi thànhgit push origin main --dry-runtrước khi thực thi thực tế
- Trong Hook
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/dry-run-pushes.sh"
}]
}]
}
}
#!/bin/bash
INPUT=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$INPUT" | grep -q 'git push'; then
jq -n --arg cmd "$INPUT --dry-run" '{"updatedInput": {"command": $cmd}}'
fi
-
Hook chèn giám sát tệp và ngữ cảnh Git khi bắt đầu phiên
- Hook
SessionStartcó thể chỉ địnhpackage.json,.env,tsconfig.jsonlàm mục tiêu giám sát, đồng thời đưa nhánh hiện tại và số lượng tệp chưa commit vào ngữ cảnh phiên
- Hook
{
"hooks": {
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/session-context.sh",
"statusMessage": "Loading project context..."
}]
}]
}
}
#!/bin/bash
BRANCH=$(git branch --show-current 2>/dev/null)
CHANGES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
jq -n \
--arg branch "$BRANCH" \
--arg changes "$CHANGES" \
'{
"watchPaths": ["package.json", ".env", "tsconfig.json"],
"additionalContext": "Current branch: \($branch). Uncommitted changes: \($changes) files."
}'
-
Hook tự động phê duyệt các lệnh Bash chỉ đọc
- Các lệnh như
ls,cat,echo,pwd,whoami,date,git status,git log,git diffcó thể được cho qua mà không cần người dùng xác nhận bằngpermissionDecision: "allow"
- Các lệnh như
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/auto-approve-readonly.sh"
}]
}]
}
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$CMD" | grep -qE '^(ls|cat|echo|pwd|whoami|date|git status|git log|git diff)'; then
echo '{"permissionDecision": "allow", "permissionDecisionReason": "Safe read-only command"}'
fi
3 trường Hook chưa có trong tài liệu
- Các trường Hook đã được tài liệu hóa là
type,command,matcher,timeout,if,statusMessage, nhưng parser trong mã nguồn còn nhận cảonce,async,asyncRewake -
once: true- Tự động xóa Hook sau khi chạy đúng một lần, nên phù hợp cho thiết lập phiên đầu tiên
- Có thể tạo luồng sao chép
.env.examplesang.envnếu chưa có.env, rồi sau đó không chạy lại nữa
{
"hooks": {
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "[ -f .env ] || cp .env.example .env && echo 'Created .env from template'",
"once": true,
"statusMessage": "First-time setup..."
}]
}]
}
}
-
async: true- Chạy Hook ở chế độ nền để không chặn tiến trình của Claude
- Có thể dùng để ghi lại mọi lệnh Bash vào
~/.claude/audit.jsonlmà không làm tăng độ trễ của phiên
{
"hooks": {
"PostToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "jq '{timestamp: now, command: .tool_input.command, session: .session_id}' < /dev/stdin >> ~/.claude/audit.jsonl",
"async": true
}]
}]
}
}
-
asyncRewake: true- Trên đường chạy thông thường, nó chạy nền như
async, nhưng nếu kết thúc với exit code 2 thì sẽ đánh thức lại model và chặn tác vụ - Có thể kiểm tra các mẫu
password,secret,api_keyđược hardcode trong mọi tệp Claude tạo ra và chặn khi phát hiện
- Trên đường chạy thông thường, nó chạy nền như
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/scan-secrets.sh",
"asyncRewake": true,
"statusMessage": "Scanning for secrets..."
}]
}]
}
}
#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' < /dev/stdin)
if grep -qE '(password|secret|api_key)\s*=' "$FILE" 2>/dev/null; then
exit 2
fi
exit 0
Các trường ẩn trong frontmatter của Skill
- Tài liệu đề cập
name,description,allowed-tools,argument-hint,when_to_use,context, nhưng parser thực tế còn nhận thêm 6 trường nữa -
model- Có thể đổi model chạy Skill; dùng
haikucho tác vụ nhanh và rẻ,opuscho phân tích phức tạp
- Có thể đổi model chạy Skill; dùng
---
name: quick-lint
description: Fast lint check using the cheapest model
model: haiku
effort: low
allowed-tools: Bash, Read
argument-hint: "[file]"
---
Run the project linter on: $ARGUMENTS
Detect the linter from config (eslint, ruff, clippy) and run it. Report only errors, not warnings.
-
effort- Điều chỉnh mức độ suy nghĩ sâu của model, với các giá trị
low,medium,high,max - Nội bộ nó được ánh xạ vào hệ thống effort để kiểm soát độ sâu suy luận theo từng phản hồi
- Điều chỉnh mức độ suy nghĩ sâu của model, với các giá trị
-
hooks- Có thể định nghĩa Hook có phạm vi chỉ được đăng ký khi Skill được kích hoạt và sẽ gỡ ra khi hoàn tất
- Có thể dùng theo kiểu mỗi khi ghi tệp TypeScript thì kiểm tra kiểu đồng bộ, đồng thời chạy lint ở nền
---
name: strict-typescript
description: Write TypeScript with type checking on every save
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
hooks:
PostToolUse:
- matcher: "Write|Edit"
hooks:
- type: command
command: "~/.claude/hooks/typecheck-on-save.sh"
statusMessage: "Type checking..."
- type: command
command: "~/.claude/hooks/lint-on-save.sh"
async: true
---
Write TypeScript with strict enforcement. Every file you touch gets type-checked and linted automatically.
$ARGUMENTS
-
agent- Có thể ủy quyền việc thực thi Skill cho Agent do người dùng tùy chỉnh
---
name: deep-review
description: Thorough security review delegated to the review agent
agent: security-review
---
Review the following: $ARGUMENTS
-
disable-model-invocation: true- Chặn tự động gọi và chỉ cho phép chạy bằng lệnh
/skill-nametường minh, nên phù hợp với Skill có tính phá hủy
- Chặn tự động gọi và chỉ cho phép chạy bằng lệnh
-
shell: bash- Chỉ định shell sẽ dùng để thực thi
Các trường ẩn trong frontmatter của Agent
- Agent tùy chỉnh trong
.claude/agents/cũng hỗ trợ các trường frontmatter không có trong tài liệu -
color- Có thể đặt màu UI thành một trong các giá trị
red,orange,yellow,green,blue,purple,pink,gray - Giúp phân biệt trực quan khi nhiều Agent chạy cùng lúc
- Có thể đặt màu UI thành một trong các giá trị
-
memory- Cung cấp bộ nhớ liên tục cho Agent giữa các lần gọi
user: được duy trì toàn cục trên mọi dự ánproject: được duy trì theo từng dự ánlocal: bộ nhớ riêng tư theo từng dự án, bị loại khỏi Git- Trình rà soát bảo mật có thể theo dõi các phát hiện trước đó, còn trình rà soát mã có thể ghi nhớ các mẫu của người dùng qua nhiều phiên
---
name: codebase-guide
description: Answer questions about the codebase, learning more with each session
tools: [Read, Grep, Glob, Bash]
color: green
memory: project
---
You are a codebase guide with persistent memory. Check your memory first before exploring the code.
-
omitClaudeMd: true- Bỏ qua việc nạp hệ phân cấp chỉ thị
CLAUDE.md, phù hợp với reviewer kiểu “fresh eyes” nhìn theo tiêu chuẩn ngành thay vì theo quy ước của dự án
- Bỏ qua việc nạp hệ phân cấp chỉ thị
---
name: fresh-eyes
description: Review code without project-specific biases
tools: [Read, Grep, Glob]
omitClaudeMd: true
effort: high
color: blue
---
Review this code purely from first principles. You have no project context. Focus on correctness, security, performance, and readability by industry standards.
-
criticalSystemReminder_EXPERIMENTAL- Tiêm lại một thông điệp ngắn dưới dạng lời nhắc hệ thống ở mỗi lượt, và nó vẫn ở trong ngữ cảnh ngay cả sau khi cuộc hội thoại bị nén
- Bản thân tên trường đã chứa
EXPERIMENTAL, nên tính ổn định không cao; phù hợp hơn để dùng làm lời nhắc an toàn bổ trợ thay vì cho hạ tầng cốt lõi
---
name: prod-deployer
description: Manages production deployments with strict safety checks
tools: [Bash, Read, Grep]
color: red
criticalSystemReminder_EXPERIMENTAL: "Always run migrations with --dry-run first. Never skip the staging verification step."
---
-
requiredMcpServers- Liệt kê các mẫu tên MCP server bắt buộc; nếu không có server tương ứng thì Agent sẽ không xuất hiện
- Có thể ngăn việc nạp các Agent khi phần phụ thuộc của chúng chưa sẵn sàng
Bộ phân loại Auto Mode nhận mô tả môi trường bằng ngôn ngữ tự nhiên
- Trường
autoModetrongsettings.jsonthiết lập bộ phân loại phê duyệt tự động mà nội bộ Anthropic gọi là “YOLO Classifier” - Các mẫu
allowsẽ được tự động phê duyệt, còn các mẫusoft_denysẽ luôn yêu cầu xác nhận - Mảng
environmentkhông phải là pattern mà là ngữ cảnh ngôn ngữ tự nhiên để bộ phân loại đọc; có thể mô tả môi trường dự án để ảnh hưởng đến cách nó đánh giá độ an toàn của các lệnh mơ hồ
{
"autoMode": {
"allow": [
"Bash(npm test)",
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Read",
"Grep",
"Glob"
],
"soft_deny": [
"Bash(git push *)",
"Bash(rm *)",
"Write(.env*)"
],
"environment": [
"NODE_ENV=development",
"This is a local dev machine with no production database access",
"All Docker containers use isolated networks",
"The test suite is safe to run repeatedly, it uses a dedicated test database"
]
}
}
- Những câu như
This project uses Docker, all commands run in containersđược dùng để giúp bộ phân loại hiểu môi trường No production accesskhiến nó phản ứng ít bảo thủ hơn với các thao tác phá hủy, cònTest database is isolatedhoạt động như tín hiệu rằng việc chạy test luôn an toàn
Vòng lặp tích hợp giữa bộ nhớ tự động và Dream
- Bật
autoMemoryEnabledvàautoDreamEnabledtrongsettings.jsonsẽ kích hoạt hệ thống tự cải thiện của Claude Code
{
"autoMemoryEnabled": true,
"autoDreamEnabled": true
}
-
autoMemoryEnabled- Sau mỗi cuộc hội thoại, một Agent chạy nền sẽ trích xuất thông tin từ phiên mà đáng để giữ lại lâu dài
- Ghi lại sở thích người dùng, mẫu codebase và các quyết định dưới định dạng frontmatter memory chuẩn vào
~/.claude/projects/<path>/memory/
-
autoDreamEnabled- Cứ mỗi 24 giờ, nếu có từ 5 phiên tích lũy trở lên, một Agent chạy nền sẽ xem lại transcript của các phiên trước để hợp nhất bộ nhớ
- Thực hiện gộp trùng lặp, giải quyết mâu thuẫn, chuyển ngày tương đối thành ngày tuyệt đối và loại bỏ các mục đã cũ
- Khi bật cả hai thiết lập, sẽ hình thành vòng lặp học hỏi: các phiên tạo bộ nhớ, Dream hợp nhất bộ nhớ, rồi bộ nhớ đã hợp nhất được phản ánh vào các phiên sau
- Sau vài tuần, có thể xuất hiện hiệu ứng Claude Code ghi nhớ sở thích, quy ước và các mẫu phổ biến của người dùng mà không cần huấn luyện lại mô hình
Định dạng Magic Docs
- Magic Docs được phát hiện bằng regex
/^#\s*MAGIC\s+DOC:\s*(.+)$/im - Bắt buộc phải là tiêu đề H1 và không phân biệt chữ hoa chữ thường
- Dòng tiếp theo có thể đặt một chỉ thị in nghiêng được bọc bằng
_underscores_hoặc*asterisks*, nhằm giới hạn phạm vi mà Agent cập nhật sẽ tập trung vào
# MAGIC DOC: API Endpoint Reference
_Only document public REST endpoints. Include method, path, request body, response schema, and auth requirements._
## Endpoints
(content auto-maintained by Claude Code)
- Nếu không có chỉ thị, Agent sẽ cố gắng cập nhật toàn bộ nội dung
- Nếu có chỉ thị, nó sẽ tuân theo các phạm vi như
only track public endpointshoặcfocus on breaking changes - Agent cập nhật chạy ở chế độ nền và bị giới hạn chỉ được chỉnh sửa đúng một file đó
- Nếu xóa header, việc theo dõi sẽ tự động dừng
Cú pháp quy tắc quyền tổng thể
- Tài liệu có ví dụ cơ bản như
Bash(git *), nhưng ngôn ngữ mẫu thực tế bao quát rộng Bash, đường dẫn tệp và công cụ MCP
Bash(npm *) # wildcard after "npm "
Bash(git commit *) # specific subcommand
Read(*.ts) # file extension
Read(src/**/*.ts) # recursive directory with extension
Write(src/**) # recursive, all files
mcp__slack # all tools on slack server
mcp__slack__* # explicit wildcard (same effect)
mcp__slack__post_message # specific tool
Bash(npm:*) # legacy colon prefix (word boundary)
*khớp trong phạm vi ranh giới như glob của shell, còn**khớp đệ quy các thư mục- Quyền của công cụ MCP dùng định dạng gạch dưới kép
mcp__<server>__<tool> - Trường
ifcủa Hook cũng dùng cùng cú pháp này và là glob chứ không phải biểu thức chính quy
{
"permissions": {
"allow": [
"Bash(npm *)", "Bash(git status)", "Bash(git diff *)",
"Read(src/**)", "Read(tests/**)", "Grep", "Glob",
"mcp__database__query"
],
"deny": [
"Bash(rm -rf *)", "Write(/etc/**)", "Write(.env*)",
"mcp__slack__delete_*"
],
"ask": [
"Bash(git push *)", "Write(*.json)", "Write(*.lock)",
"mcp__slack__post_message"
]
}
}
Ảnh hưởng của context: fork và lựa chọn model tới cache
- Khi đặt
context: forkcho Skill, nó sẽ chạy bằng subagent forked ở nền - Fork chia sẻ prompt cache của cha thông qua typed contract tên
CacheSafeParams, và để tăng tỷ lệ cache hit, nó tạo ra tiền tố API request giống hệt nhau ở cấp byte - Nếu chỉ định model khác cho Forked Skill, tiền tố có thể thay đổi và làm vỡ cache
- Nếu hội thoại cha dùng Opus còn fork dùng Haiku, tiền tố sẽ khác, gây cache miss và phải trả toàn bộ chi phí
- Trong Forked Skill, nên bỏ qua trường
modelhoặc dùngmodel: inheritđể giữ cache context: forkphù hợp cho các tác vụ nặng như quét bảo mật, phân tích phụ thuộc, tạo tài liệu, chạy test suite, trong khi hội thoại chính vẫn giữ được độ phản hồi
---
name: full-audit
description: Comprehensive codebase audit running in the background
context: fork
allowed-tools: Bash, Read, Grep, Glob, WebSearch
effort: high
---
Run a comprehensive audit:
- Security scan (grep for dangerous patterns, check dependencies for CVEs)
- Code quality (duplicated logic, dead code, missing error handling)
- Test coverage (untested critical paths)
- Dependency health (outdated packages, unused deps, license issues)
Write a detailed report to /tmp/audit-report.md when complete.
Ví dụ kết hợp tính năng
-
Trình review code có bộ nhớ bền vững và Hook phạm vi
- Agent đọc bộ nhớ theo từng codebase, review cùng lúc các mẫu đã từng phát hiện trước đây và các vấn đề mới, rồi lưu lại các phát hiện sau đó vào bộ nhớ
- Sau nhiều lần review, điều này giúp bắt được các vấn đề lặp lại theo từng dự án mà reviewer thông thường có thể bỏ sót
---
name: reviewer
description: Code reviewer that learns your codebase patterns over time
tools: [Read, Grep, Glob, Bash]
effort: high
color: yellow
memory: project
hooks:
PostToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "~/.claude/hooks/log-review.sh"
async: true
---
Before reviewing, read your memory for past findings on this codebase.
Review git diff HEAD~1 for:
- Patterns you've flagged before (check memory)
- New issues worth flagging
- Resolved issues from past reviews
After review, save to memory:
- New patterns found (type: feedback)
- Recurring issues (type: project)
End with VERDICT: PASS, FAIL, or NEEDS_REVIEW.
-
Cấu hình phiên kết hợp giám sát tệp và lưới an toàn
asyncRewake- Khi bắt đầu phiên, tải ngữ cảnh dự án, tự động phê duyệt ngay các lệnh Bash chỉ đọc, và chặn các lệnh nguy hiểm bằng kiểm tra an toàn bất đồng bộ
- Các lệnh chỉ đọc được cho qua nhanh, lệnh nguy hiểm bị chặn, còn lại tuân theo luồng quyền hạn thông thường
{
"hooks": {
"SessionStart": [{
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/session-context.sh",
"statusMessage": "Loading project context..."
}]
}],
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "~/.claude/hooks/auto-approve-readonly.sh"
}, {
"type": "command",
"command": "~/.claude/hooks/block-dangerous.sh",
"asyncRewake": true,
"statusMessage": "Safety check..."
}]
}]
}
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
echo "$CMD" | grep -qE '(rm -rf /|sudo rm|chmod 777|> /dev/)' && exit 2 || exit 0
-
Review kiến trúc kết hợp override model, điều khiển effort và ủy quyền cho Agent
- Chỉ định phân tích sâu bằng
effort: max, ủy quyền cho Agent cụ thể, và giảm ảnh hưởng từ các quy ước dự án hiện có bằngomitClaudeMd: truecủa Agent đó
- Chỉ định phân tích sâu bằng
---
name: architecture-review
description: Deep architecture review using max effort, delegated to fresh-eyes agent
agent: fresh-eyes
effort: max
---
Review the architecture of this project. Ignore existing conventions (the agent has omitClaudeMd: true).
Focus on: $ARGUMENTS
Evaluate structural decisions, dependency graph health, separation of concerns, and scalability characteristics.
Ý nghĩa và giới hạn
- Hệ thống Hook với các trường phản hồi theo từng sự kiện hoạt động như một lớp middleware có thể lập trình cho việc sử dụng công cụ AI
- Bộ nhớ Agent bền vững cho phép tạo ra chuyên gia AI có thể tích lũy kinh nghiệm xuyên suốt nhiều phiên
- Hệ thống tích hợp Dream cung cấp cấu trúc học từ trải nghiệm phiên mà không cần huấn luyện lại model
- Bộ phân loại Auto Mode nhận mô tả môi trường bằng ngôn ngữ tự nhiên và phản ánh điều đó vào đánh giá an toàn
- Những tính năng này không phải là cấu hình ẩn hay easter egg, mà là các tính năng nền tảng cho môi trường phát triển AI bền vững, có khả năng học hỏi và tự chủ, và hiện đã có sẵn trong gói npm hiện tại
Muốn tiếp tục nhận các chủ đề công nghệ được tuyển chọn?
Theo dõi kênh Telegram. @GeekNewsVN
1 bình luận
Ý kiến trên Hacker News
Kiểm tra bằng Pangram thì có vẻ đây rõ ràng là bài do AI tạo ra
Thật ngạc nhiên khi nó lại được đề xuất nhiều như vậy, và cũng khiến tôi tự hỏi liệu mọi người có thực sự đọc bài không. Tôi biết @dang đã đặt ra quy định về nội dung do AI tạo trong phần bình luận, nhưng vẫn còn ngần ngại áp dụng với bài viết. Cá nhân tôi mong bài viết cũng có cờ báo cáo để không phải lãng phí thời gian với những bài chất lượng thấp như thế này
Tất cả nội dung này đều đã được ghi trong tài liệu [1].
Oncecũng đã được tài liệu hóa [2],asyncvàasyncRewakecũng vậy [3]. Frontmatter của Skills cũng đã được tài liệu hóa đầy đủ [4], và chuỗi môi trường của Automode cũng có trong tài liệu [5]Bài này đúng kiểu clickbait do AI viết nên tôi khá bất ngờ khi ở đây lại được hưởng ứng tốt như vậy
[1] https://code.claude.com/docs/en/hooks#pretooluse-decision-co...
[2] https://code.claude.com/docs/en/hooks#common-fields
[3] https://code.claude.com/docs/en/hooks#command-hook-fields
[4] https://code.claude.com/docs/en/skills#frontmatter-reference
[5] https://code.claude.com/docs/en/auto-mode-config#define-trus...
Đây là bài từ 2 tháng trước nên một phần đã cũ, và một số tính năng giờ đã được tài liệu hóa
Ví dụ, tài liệu về auto mode ở đây: https://code.claude.com/docs/en/auto-mode-config#define-trus...
Gói
claudemỗi tuần ra tới 10 phiên bản mới, lại còn có model mới vài tháng một lần, nên không nên phụ thuộc vào những mẹo không có trong tài liệu quanh nóChúng rất dễ thay đổi, hỏng, và có khả năng làm vỡ những thiết lập quá chi tiết
Giống như sau khi tung ra 1M Opus, họ đã bỏ tùy chọn “clear context and execute plan” với lý do “cửa sổ ngữ cảnh không còn là vấn đề nữa”
Tôi không thiết kế lại chỉ dẫn cho Claude ở mỗi bản phát hành, nhưng có những bản mà việc kiểm tra xem chỉ dẫn cũ còn phù hợp với model hiện tại không đã tạo ra khác biệt rõ rệt
Số lượng tính năng trong Claude Code nhiều đến nghẹt thở. Với tốc độ này thì giáo hoàng tiếp theo chắc sẽ đến từ Anthropic
Làm kiểu này thì có vẻ khó trở thành một sản phẩm đủ chín chắn và ổn định
Họ nói kiểu “Honest status”, rằng sẽ thành thật giải thích vì sao không phải 100% và vì sao phải đi đường dài hơn, https://github.com/user-attachments/assets/961eff6c-0060-45d...
Tôi chỉ mong Claude Code đừng bỏ cuộc giữa chừng trong việc hoàn thành tác vụ. Quá bực mình. Dùng
/goalhayultracodemới nó vẫn cứ bỏ cuộc. Dự án của tôi khá phức tạp (https://github.com/mohsen1/tsz), nhưng Codex thì không bị kiểu dừng lại như vậy mà vẫn tiếp tục đẩy tới/loopđể chèn prompt thúc nó tiếp tục làmGoal cũng dùng được, nhưng với vài tác vụ thì vòng lặp đơn giản lại tốt hơn
Tôi tò mò không biết có đang hình thành một kiến trúc ứng dụng tác tử lập trình AI nào đó khá phổ quát trên các model LLM hay không
Cũng muốn biết có ai đang gom góp và hệ thống hóa cách hiểu về kiểu kiến trúc này không
Phần ít được chuẩn hóa hơn là ở mức trao cho người dùng bao nhiêu quyền kiểm soát giữa các bước đó. Những thiết lập như
showClearContextOnPlanAccepthaydisableAutoModerất thú vị vì chúng cho thấy ranh giới giữa “để tác tử tự quyết” và “con người xem lại trước khi chạy”. Về trải nghiệm thực tế, có lẽ đây cũng là điểm mà các tác tử lập trình sẽ còn tiếp tục khác biệt lớn với nhauTôi tò mò về tính năng “magic doc”. Không rõ cái này là để đưa vào CLAUDE.md, hay đưa vào file của dự án
Cũng không rõ trong phiên làm việc có cần nhắc đến file đó không, hay Claude sẽ tự động tìm mọi nơi trong dự án có header “magic doc”
Có thể bảo Claude tự tạo cấu hình cho chính nó không? Kiểu như “hãy nghĩ rằng ngươi là ta, rồi tạo ra bộ file cấu hình tối ưu mà ngươi muốn”
CLAUDE_CODE_NEW_INITthành 1 thì/initsẽ chạy theo luồng thiết lập tương tácLuồng này sẽ khám phá codebase và hỏi muốn tạo những file nào như
CLAUDE.md, skills, hooks trước khi viết file. Nếu không có biến này thì/initsẽ tự tạoCLAUDE.mdmà không hỏi.claude/Có vẻ người dùng được kỳ vọng sẽ dùng nó theo cách đó
Bạn sẽ còn được tận hưởng cảm giác phát hiện ra tính năng không có trong tài liệu mà mình dựa vào bỗng dưng ngừng hoạt động
Nếu họ không bị dị ứng với từ “open” thì đáng ra Claude Code đã có thể được phát hành mã nguồn mở; ở thời điểm này không có lý do thực chất nào để không công khai nó