What You Need to Know
Những điều bạn cần biết
Claude Code is normally an interactive developer tool. In interactive mode it expects
keyboard input and shows a conversational interface. A CI/CD pipeline is an automated job that runs when
triggered, for example by a code change. A run with no person present is called headless. In a pipeline,
Claude Code becomes an automated review and generation engine.
Claude Code thường là một công cụ dành cho nhà phát triển có tính tương tác. Trong
chế độ tương tác, nó yêu cầu đầu vào bằng bàn phím và hiển thị giao diện đàm thoại. Quy trình CI/CD là
một công việc tự động chạy khi được kích hoạt, chẳng hạn như khi thay đổi mã. Cuộc chạy không có người
hiện diện được gọi là cuộc chạy không đầu. Trong một quy trình, Claude Code trở thành một công cụ tạo và
đánh giá tự động.
Take an off-licence chain with an online shop. Each pull request (PR) on the shop's
code starts a pipeline, and the team wants Claude Code to review it there.
Tham gia một chuỗi cửa hàng không có giấy phép với một cửa hàng trực tuyến. Mỗi yêu
cầu kéo (PR) trên mã của cửa hàng sẽ bắt đầu một hệ thống và nhóm muốn Claude Code xem xét nó ở đó.
The -p Flag: Non-Interactive Mode
Cờ -p: Chế độ không tương tác
A CI pipeline has no keyboard. Without the -p flag, the job hangs forever, waiting for
input that never comes. The off-licence's first review job hung this way.
Đường dẫn CI không có bàn phím. Nếu không có cờ -p, công việc sẽ bị treo vĩnh viễn,
chờ đợi dữ liệu đầu vào không bao giờ đến. Công việc đánh giá đầu tiên của người không có giấy phép đã
treo theo cách này.
# WRONG — hangs in CI claude "Analyse this pull request for security issues" # CORRECT
— runs non-interactively claude -p "Analyse this pull request for security issues" The -p flag (also
--print ) switches Claude Code to print mode. Claude Code processes the prompt, writes the result to
stdout and exits, without waiting for user input. Running Claude Code in CI with -p prevents interactive
input hangs. The off-licence adds -p , and its job finishes.
# SAU — bị treo trong CI claude "Phân tích yêu cầu kéo này để tìm các vấn đề bảo
mật" # ĐÚNG — chạy không tương tác claude -p "Phân tích yêu cầu kéo này để tìm các vấn đề bảo mật" Cờ -p
(cũng --print ) chuyển Mã Claude sang chế độ in. Claude Code xử lý prompt, ghi kết quả vào thiết bị xuất
chuẩn và thoát mà không cần đợi người dùng nhập. Chạy Mã Claude trong CI với -p sẽ ngăn đầu vào tương
tác bị treo. Giấy phép ngoài thêm -p và công việc của nó kết thúc.
Key Concept
Khái niệm chính
For CLI calls in CI, use claude -p . Logs showing Claude waiting for input mean the
flag is missing.
Đối với các lệnh gọi CLI trong CI, hãy sử dụng claude -p . Nhật ký hiển thị Claude
đang chờ đầu vào có nghĩa là cờ bị thiếu.
Structured Output for CI
Đầu ra có cấu trúc cho CI
In CI, no human reads the output. Automated systems process it to post inline PR
comments, update dashboards or trigger downstream workflows, so it has to be machine-parseable. The
off-licence wants each finding posted on the exact line it refers to. Two flags work together.
Trong CI, không có con người nào đọc kết quả đầu ra. Các hệ thống tự động xử lý nó
để đăng các bình luận PR nội tuyến, cập nhật trang tổng quan hoặc kích hoạt các luồng công việc xuôi
dòng, do đó, nó phải có khả năng phân tích cú pháp bằng máy. Giấy phép không hợp lệ muốn mỗi phát hiện
được đăng trên dòng chính xác mà nó đề cập đến. Hai lá cờ làm việc cùng nhau.
-
--output-format json : wraps the run in a JSON envelope (result text, session ID,
cost and usage metadata) instead of human-readable text
--output-format json : gói quá trình chạy trong một phong bì JSON (văn bản kết
quả, ID phiên, siêu dữ liệu chi phí và cách sử dụng) thay vì văn bản mà con người có thể đọc được
-
--json-schema : validates the agent's final output against a JSON Schema (print
mode only)
--json-schema : xác thực đầu ra cuối cùng của tác tử dựa trên Lược đồ JSON (chỉ ở
chế độ in)
claude -p \ --output-format json \ --json-schema
'{"type":"object","properties":{"findings":{"type":"array","items":{"type":"object","properties":{"file":{"type":"string"},"line":{"type":"integer"},"severity":{"type":"string"},"message":{"type":"string"}}}}}}'
\ "Review this PR for security issues" The data that matches the schema lands in the envelope's
structured_output field. Extract it with jq '.structured_output' , not from the top level. The validated
findings can be used four ways.
claude -p \ --output-format json \ --json-schema
'{"type:"object","properties":{"findings":{"type":"items":{"type":object","properties":{"file":{"type:"string"},"line":{"type""integer"},"severity":{"type""items","message":{"type":"}}}}}}'
\ "Xem lại PR này để biết các vấn đề bảo mật" Dữ liệu khớp với lược đồ sẽ xuất hiện trong trường có cấu
trúc_output của phong bì. Giải nén nó bằng jq '.structured_output' , không phải từ cấp cao nhất. Những
phát hiện đã được xác nhận có thể được sử dụng theo bốn cách.
-
Parse programmatically
Phân tích cú pháp theo chương trình
-
Post as inline PR comments at the exact file and line
Đăng dưới dạng bình luận PR nội tuyến ở tệp và dòng chính xác
-
Filter by severity for different notification channels
Lọc theo mức độ nghiêm trọng cho các kênh thông báo khác nhau
-
Track across review runs
Theo dõi các lần đánh giá
Session Context Isolation
Cách ly bối cảnh phiên
When Claude writes code in a session, it builds up reasoning context: why it chose
this approach, which trade-offs it considered, which alternatives it rejected. A review in the same
session keeps all of that, so it is less likely to question decisions it already justified to itself.
That makes the generating session less effective at reviewing its own changes, and the effect is
measurable.
Khi Claude viết mã trong một phiên, nó sẽ xây dựng bối cảnh lý luận: tại sao nó lại
chọn cách tiếp cận này, nó đã cân nhắc những đánh đổi nào, những lựa chọn thay thế nào nó từ chối. Một
cuộc đánh giá trong cùng một phiên họp sẽ lưu giữ tất cả những điều đó, do đó, sẽ ít có khả năng đặt câu
hỏi về những quyết định mà chính nó đã biện minh cho chính mình. Điều đó làm cho phiên tạo kém hiệu quả
hơn trong việc xem xét các thay đổi của chính nó và hiệu quả có thể đo lường được.
The fix is a separate Claude Code invocation for review, with no access to the
generation session's reasoning context. It judges the code on its own merits, without the bias of prior
justification. At the off-licence, one claude -p call writes a new age check for checkout and a second,
independent call reviews it.
Bản sửa lỗi là một lệnh gọi Mã Claude riêng biệt để xem xét, không có quyền truy cập
vào bối cảnh lập luận của phiên tạo. Nó đánh giá mã dựa trên giá trị riêng của nó, không có sự thiên vị
của sự biện minh trước đó. Khi không có giấy phép, một cuộc gọi claude -p viết kiểm tra độ tuổi mới để
thanh toán và cuộc gọi độc lập thứ hai sẽ đánh giá nó.
# Step 1: Generate code (session A) claude -p "Implement the authentication
middleware" # Step 2: Review code (session B — independent, no shared context) claude -p "Review the
authentication middleware for security issues, error handling gaps, and edge cases" This connects to
Domain 4 (multi-instance review architectures) and Domain 5 (context management).
# Bước 1: Tạo mã (phiên A) claude -p "Triển khai phần mềm trung gian xác thực" #
Bước 2: Xem lại mã (phiên B — độc lập, không có ngữ cảnh dùng chung) claude -p "Xem lại phần mềm trung
gian xác thực để tìm các vấn đề bảo mật, lỗ hổng xử lý lỗi và các trường hợp biên" Điều này kết nối với
Miền 4 (kiến trúc đánh giá đa phiên bản) và Miền 5 (quản lý ngữ cảnh).
Incremental Review Context
Bối cảnh đánh giá tăng dần
Automated reviews run on every push. Without context about earlier reviews, each run
analyses the whole PR from scratch and re-derives the same findings. A fixed issue drops out on its own,
because the changed code no longer triggers it. What keeps coming back are the issues the developer saw
and chose not to change. A re-scan with no context cannot tell those apart from new problems, so it
flags them on every push.
Đánh giá tự động chạy mỗi lần đẩy. Không có bối cảnh về các đánh giá trước đó, mỗi
lần chạy sẽ phân tích toàn bộ PR từ đầu và rút ra những phát hiện tương tự. Sự cố đã khắc phục sẽ tự
biến mất vì mã đã thay đổi không còn kích hoạt sự cố đó nữa. Điều tiếp tục quay trở lại là những vấn đề
mà nhà phát triển đã nhìn thấy và quyết định không thay đổi. Việc quét lại không có ngữ cảnh không thể
phân biệt những vấn đề đó với các vấn đề mới, vì vậy nó sẽ gắn cờ chúng mỗi lần nhấn.
Say an off-licence developer keeps a hard-coded postcode list on purpose. Every review
flags it again. The fix is to include prior findings in context and tell Claude to report only new or
still-unaddressed issues.
Giả sử một nhà phát triển không có giấy phép cố ý giữ một danh sách mã bưu điện được
mã hóa cứng. Mọi đánh giá đều gắn cờ nó một lần nữa. Cách khắc phục là đưa những phát hiện trước đó vào
ngữ cảnh và yêu cầu Claude chỉ báo cáo các vấn đề mới hoặc vẫn chưa được giải quyết.
claude -p \ --output-format json \ "Review this PR. Here are the findings from the
previous review: ${ PREVIOUS_FINDINGS } Report ONLY: 1. New issues not in the previous findings 2.
Issues from the previous findings that are still present Do NOT re-report previous findings the
developer has already reviewed and chosen not to act on." Duplicate comments erode developer trust. If
every push brings the same five comments whether or not the issues were fixed, developers stop reading
them. Incremental review context preserves the signal-to-noise ratio.
claude -p \ --output-format json \ "Xem lại PR này. Dưới đây là những phát hiện từ
đánh giá trước: ${ PREVIOUS_FINDINGS } CHỈ báo cáo: 1. Các vấn đề mới không có trong những phát hiện
trước đó 2. Các vấn đề từ những phát hiện trước vẫn còn tồn tại. KHÔNG báo cáo lại những phát hiện trước
đó mà nhà phát triển đã xem xét và chọn không hành động." Nhận xét trùng lặp làm xói mòn lòng tin của
nhà phát triển. Nếu mỗi lần đẩy đều đưa ra năm nhận xét giống nhau cho dù vấn đề đã được khắc phục hay
chưa thì nhà phát triển sẽ ngừng đọc chúng. Bối cảnh đánh giá gia tăng duy trì tỷ lệ tín hiệu trên
nhiễu.
CLAUDE.md for CI Context
CLAUDE.md cho bối cảnh CI
In CI, Claude Code reads the project's CLAUDE.md files exactly as it does
interactively. So CLAUDE.md is how you give a CI run project-specific context.
Trong CI, Claude Code đọc các tệp CLAUDE.md của dự án một cách chính xác như cách nó
thực hiện một cách tương tác. Vì vậy, CLAUDE.md là cách bạn cung cấp bối cảnh cụ thể cho dự án chạy CI.
-
Testing standards: what makes a good test, what patterns to follow, what to avoid
Tiêu chuẩn kiểm tra: điều gì tạo nên một bài kiểm tra tốt, những mô hình nào cần
tuân theo, những điều cần tránh
-
Available fixtures: which test fixtures exist, how to use them, what data they
contain
Đồ đạc có sẵn: đồ đạc thử nghiệm nào tồn tại, cách sử dụng chúng, chúng chứa dữ
liệu gì
-
Review criteria: what constitutes a critical finding vs a minor style issue
Tiêu chí đánh giá: điều gì tạo nên một phát hiện quan trọng và một vấn đề nhỏ về
phong cách
-
Existing test coverage: what is already covered, to avoid suggesting duplicate
tests
Phạm vi kiểm tra hiện tại: những gì đã được đề cập, để tránh đề xuất các thử
nghiệm trùng lặp
Without this context, CI test generation produces low-value boilerplate. With it,
generated tests follow the team's patterns and add genuine coverage. If the off-licence's CLAUDE.md
names its test factories, CI runs use them.
Nếu không có bối cảnh này, việc tạo thử nghiệm CI sẽ tạo ra bản tóm tắt có giá trị
thấp. Với nó, các bài kiểm tra được tạo ra sẽ tuân theo khuôn mẫu của nhóm và bổ sung mức độ bao phủ
chính xác. Nếu CLAUDE.md của giấy phép không có giấy phép đặt tên cho các nhà máy thử nghiệm của nó, thì
CI sẽ sử dụng chúng.
# .claude/CLAUDE.md — CI-relevant section ## Testing Standards - Tests must use the
factory pattern from test/factories/ for data creation - Integration tests connect to the test database
via test/setup/db.ts - Do not test private implementation details — test public API contracts - Coverage
target: 80% branch coverage for new code - Available fixtures: test/fixtures/users.json,
test/fixtures/orders.json CLI Flags Reference Beyond -p , other flags shape a headless run: how output
is formatted, which system prompt is used, and how permissions and tools are scoped. They work with
claude -p in CI and with the interactive claude command.
# .claude/CLAUDE.md — Phần liên quan đến CI ## Tiêu chuẩn kiểm tra - Kiểm tra phải
sử dụng mẫu xuất xưởng từ test/factories/ để tạo dữ liệu - Kiểm tra tích hợp kết nối với cơ sở dữ liệu
kiểm tra thông qua test/setup/db.ts - Không kiểm tra chi tiết triển khai riêng tư - kiểm tra hợp đồng
API công khai - Mục tiêu bao phủ: phạm vi chi nhánh 80% cho mã mới - Lịch thi đấu có sẵn:
test/fixtures/users.json, test/fixtures/orders.json CLI Flags Reference Beyond -p , các cờ khác định
hình hoạt động không đầu: cách định dạng đầu ra, prompt hệ thống nào được sử dụng cũng như phạm vi các
quyền và công cụ. Chúng hoạt động với claude -p trong CI và với lệnh claude tương tác.
System prompt flags. Claude Code has four.
Cờ nhắc hệ thống. Mã Claude có bốn.
The default system prompt holds Claude Code's tool guidance, safety instructions and
coding conventions. Appending keeps all of that, so you only supply what differs. Use it when Claude
should stay a coding assistant that also follows your extra rules. Replacing drops the entire default
prompt, so you own everything the task still needs. Use it when the identity or permission model differs
from Claude Code's, such as a non-coding agent in a pipeline no human watches. The off-licence's
reviewer stays a coding assistant, so it appends.
Prompt hệ thống mặc định chứa hướng dẫn về công cụ, hướng dẫn an toàn và quy ước mã
hóa của Claude Code. Việc bổ sung sẽ giữ lại tất cả những điều đó, vì vậy bạn chỉ cung cấp những gì khác
biệt. Hãy sử dụng nó khi Claude phải làm trợ lý viết mã và tuân theo các quy tắc bổ sung của bạn. Việc
thay thế sẽ loại bỏ toàn bộ prompt mặc định, do đó bạn sở hữu mọi thứ mà tác vụ vẫn cần. Sử dụng nó khi
mô hình nhận dạng hoặc quyền khác với mô hình của Claude Code, chẳng hạn như tác tử không mã hóa trong
quy trình không có con người theo dõi. Người đánh giá giấy phép không có giấy phép vẫn là trợ lý mã hóa,
vì vậy nó sẽ được bổ sung.
Headless output and limits (print mode).
Đầu ra và giới hạn không đầu (chế độ in).
Permissions, tools, and context.
Quyền, công cụ và bối cảnh.
Session and start-up. -c / --continue resumes the most recent conversation in the
current directory, and -r / --resume resumes a specific session. --bare is minimal mode. It
skips auto-discovery of hooks, skills, plugins, MCP servers, auto memory and CLAUDE.md, so scripted
calls start faster. Claude keeps only the Bash and file read/edit tools. Use it for a fast,
predictable scripted run that needs no project configuration. The off-licence's review needs its
CLAUDE.md, so it skips --bare .
Phiên và khởi động. -c / --continue tiếp tục cuộc trò chuyện gần đây nhất trong thư
mục hiện tại và -r / --resume tiếp tục một phiên cụ thể. --bare là chế độ tối thiểu. Nó bỏ qua
việc tự động phát hiện các hook, kỹ năng, plugin, máy chủ MCP, bộ nhớ tự động và CLAUDE.md, vì vậy các
cuộc gọi theo kịch bản sẽ bắt đầu nhanh hơn. Claude chỉ giữ lại Bash và các công cụ đọc/chỉnh sửa tệp.
Sử dụng nó để chạy theo tập lệnh nhanh, có thể dự đoán được mà không cần cấu hình dự án. Đánh giá của
giấy phép không cần có CLAUDE.md, vì vậy nó bỏ qua --bare .
GitHub Actions: Claude Code as a Workflow Step
Hành động GitHub: Mã Claude như một bước trong quy trình làm việc
Beyond the guide
Ngoài hướng dẫn
Task Statement 3.6 describes CI/CD integration through the -p flag, output formats and
session isolation. It never names GitHub Actions. Verified against the GitHub Actions page of the Claude
Code docs on 16 September 2026.
Tuyên bố nhiệm vụ 3.6 mô tả sự tích hợp CI/CD thông qua cờ -p, định dạng đầu ra và
cách ly phiên. Nó không bao giờ đặt tên cho Hành động GitHub. Đã được xác minh dựa trên trang Hành động
GitHub của tài liệu Mã Claude vào ngày 16 tháng 9 năm 2026.
Anthropic's pipeline integration is a GitHub Action, anthropics/claude-code-action@v1
, that runs Claude Code non-interactively inside a workflow job. It is built on the Agent SDK and
accepts the same CLI flags as a headless claude -p run. Two settings decide how a workflow behaves.
Tích hợp quy trình của Anthropic là một Hành động GitHub,
anthropics/claude-code-action@v1, chạy Mã Claude không tương tác bên trong công việc của quy trình công
việc. Nó được xây dựng trên SDK tác tử và chấp nhận các cờ CLI giống như một lần chạy claude -p không
đầu. Hai cài đặt quyết định cách hoạt động của quy trình làm việc.
Mode follows the prompt input. With no prompt , the action runs in interactive mode.
It waits for the trigger phrase ( @claude by default) in an issue or PR comment and answers there. With
a prompt , it runs in automation mode on whatever event fired the workflow, such as a PR opening or a
cron schedule, without waiting for a mention. It writes its result to the workflow run log, unless the
prompt tells it to post somewhere and it has a tool that can. With a plain-text prompt, Claude has no
shell or GitHub API access until the workflow grants the tools it needs. It grants them with
--allowedTools in claude_args or a permissions.allow rule in the settings input. The off-licence wants a
review on every new PR, so it sets a prompt that asks for comments and grants a tool that can post them.
Chế độ tuân theo prompt đầu vào. Không có prompt, hành động sẽ chạy ở chế độ tương
tác. Nó chờ cụm từ kích hoạt ( @claude theo mặc định) trong một vấn đề hoặc nhận xét PR và câu trả lời ở
đó. Với prompt, nó chạy ở chế độ tự động hóa đối với bất kỳ sự kiện nào kích hoạt quy trình làm việc,
chẳng hạn như mở PR hoặc lịch trình định kỳ mà không cần chờ đề cập. Nó ghi kết quả vào nhật ký chạy quy
trình làm việc, trừ khi prompt yêu cầu nó đăng ở đâu đó và nó có một công cụ có thể làm được việc đó.
Với prompt bằng văn bản thuần túy, Claude không có quyền truy cập API shell hoặc GitHub cho đến khi quy
trình làm việc cấp các công cụ cần thiết. Nó cấp cho họ --allowedTools trong claude_args hoặc quy tắc
Rights.allow trong đầu vào cài đặt. Giấy phép không hợp lệ muốn được đánh giá về mọi hoạt động PR mới,
do đó, nó đặt ra prompt yêu cầu nhận xét và cấp cho một công cụ có thể đăng chúng.
CLI flags go through claude_args . There is no separate action input for the system
prompt, the tool allowlist or the turn cap. You pass the flags from the reference tables as one string:
--append-system-prompt , --allowedTools , --max-turns , --model , --mcp-config . So adding review
criteria without replacing the default behaviour is --append-system-prompt inside claude_args , as on
the command line. Of the pre-v1 inputs, custom_instructions became --append-system-prompt and
direct_prompt became prompt . mode went away because the action now infers it.
Cờ CLI đi qua claude_args . Không có đầu vào hành động riêng biệt cho prompt hệ
thống, danh sách công cụ được phép hoặc giới hạn lượt. Bạn chuyển các cờ từ các bảng tham chiếu dưới
dạng một chuỗi: --append-system-prompt , --allowedTools , --max-turns , --model , --mcp-config . Vì vậy,
việc thêm tiêu chí đánh giá mà không thay thế hành vi mặc định là --append-system-prompt bên trong
claude_args , như trên dòng lệnh. Trong số các đầu vào trước v1, custom_instructions đã trở thành
--append-system-prompt và direct_prompt trở thành nhắc nhở. chế độ đã biến mất vì hành động hiện đã suy
ra chế độ đó.
name : Claude Code on : issue_comment : types : [ created ]
pull_request_review_comment : types : [ created ] jobs : claude : if :
contains(github.event.comment.body, '@claude') runs-on : ubuntu-latest permissions : contents : write
pull-requests : write issues : write id-token : write actions : read steps : - uses :
actions/checkout@v6 with : fetch-depth : 1 - uses : anthropics/claude-code-action@v1 with :
anthropic_api_key : ${{ secrets.ANTHROPIC_API_KEY }} claude_args : | --append-system-prompt "Review
against the checklist in CLAUDE.md. Report only critical findings." --allowedTools
"Read,Grep,Glob,Bash(git diff *)" --max-turns 10 How files reach Claude: actions/checkout puts the
repository on the runner, so without that step there is nothing on disk to read. Claude reads the PR
itself through the GitHub tools the action provides. The permissions block bounds what it can write
back. id-token: write is required for the action's default GitHub App authentication. actions: read lets
it see CI results on the PR. The credential is a repository secret, never a literal in the file:
anthropic_api_key for an API key or claude_code_oauth_token for a subscription token.
tên : Claude Mã trên : issue_comment : các loại : [ đã tạo ]
pull_request_review_comment : các loại : [ đã tạo ] công việc : claude : if :
contains(github.event.comment.body, '@claude') chạy tiếp : quyền ubuntu-mới nhất : nội dung : viết
pull-requests : ghi vấn đề : viết id-token : viết hành động : đọc các bước : - sử dụng :
actions/checkout@v6 với : get-de sâu : 1 - sử dụng : anthropics/claude-code-action@v1 với :
anthropic_api_key : ${{ secret.ANTHROPIC_API_KEY }} claude_args : | --append-system-prompt "Xem lại danh
sách kiểm tra trong CLAUDE.md. Chỉ báo cáo những phát hiện quan trọng." --allowedTools
"Read,Grep,Glob,Bash(git diff *)" --max-turns 10 Cách các tập tin tiếp cận Claude: actions/checkout đặt
kho lưu trữ vào trình chạy, do đó nếu không có bước đó thì sẽ không có gì trên đĩa để đọc. Claude tự đọc
PR thông qua các công cụ GitHub mà hành động này cung cấp. Khối quyền giới hạn những gì nó có thể viết
lại. id-token: ghi là bắt buộc để xác thực Ứng dụng GitHub mặc định của hành động. hành động: đọc cho
phép nó xem kết quả CI trên PR. Thông tin xác thực là bí mật của kho lưu trữ, không bao giờ ở dạng chữ
trong tệp: anthropic_api_key cho khóa API hoặc claude_code_oauth_token cho mã thông báo đăng ký.
Parallel Sessions with Git Worktrees
Phiên song song với Git Worktrees
Beyond the guide
Ngoài hướng dẫn
Verified against the worktrees page of the Claude Code docs on 16 September 2026.
Đã được xác minh dựa trên trang sơ đồ công việc của tài liệu Mã Claude vào ngày 16
tháng 9 năm 2026.
A git worktree is a second working directory for the same repository, on its own
branch, sharing the same history. Run each Claude Code session in its own worktree and edits in one
session never touch files in another. So three instances can extract three services from one monolith at
the same time and commit to the same repository without colliding. Each session also gets its own full
context budget. The off-licence could split its shop this way into stock, orders and payments, one
session each.
Cây công việc git là thư mục làm việc thứ hai cho cùng một kho lưu trữ, trên nhánh
riêng của nó, chia sẻ cùng một lịch sử. Chạy mỗi phiên Mã Claude trong cây làm việc riêng của nó và
chỉnh sửa trong một phiên không bao giờ chạm vào các tệp trong phiên khác. Vì vậy, ba phiên bản có thể
trích xuất ba dịch vụ từ một khối cùng lúc và chuyển sang cùng một kho lưu trữ mà không bị xung đột. Mỗi
phiên cũng có ngân sách ngữ cảnh đầy đủ của riêng mình. Người không có giấy phép có thể chia cửa hàng
của mình theo cách này thành hàng tồn kho, đơn đặt hàng và thanh toán, mỗi phiên một phiên.
claude --worktree creates one under .claude/worktrees// on a branch
called worktree- and starts the session inside it. git worktree add ../project-feature -b
feature does the same by hand, with a path and branch of your choosing.
claude --worktree tạo một cái dưới .claude/worktrees// trên một nhánh
có tên là worktree- và bắt đầu phiên bên trong nó. git Worktree add ../project-feature -b
feature thực hiện tương tự bằng tay, với đường dẫn và nhánh bạn chọn.
Nothing locks a shared file. Sessions coordinate by sequence: the first session
merges, and the second rebases onto the result before touching it. A custom subagent can run in its own
worktree with isolation: worktree in its frontmatter, so parallel subagent edits do not collide either.
Không có gì khóa một tập tin được chia sẻ. Các phiên phối hợp theo trình tự: phiên
đầu tiên hợp nhất và phiên thứ hai dựa vào kết quả trước khi chạm vào nó. Một tác tử phụ tùy chỉnh có
thể chạy trong cây làm việc riêng của nó với sự cô lập: cây công việc trong phần đầu của nó, do đó các
chỉnh sửa tác tử phụ song song cũng không xung đột.
Providing Existing Tests to Avoid Duplication
Cung cấp các bài kiểm tra hiện có để tránh trùng lặp
When test generation runs in CI, include the existing test files in context. Without
them, Claude Code may suggest tests that already exist, wasting developer review time. With them, Claude
can find coverage gaps instead of duplicating existing scenarios. If the off-licence already tests its
basket totals, the run looks for gaps elsewhere.
Khi quá trình tạo thử nghiệm chạy trong CI, hãy đưa các tệp thử nghiệm hiện có vào
ngữ cảnh. Nếu không có chúng, Claude Code có thể đề xuất các thử nghiệm đã tồn tại, gây lãng phí thời
gian đánh giá của nhà phát triển. Với chúng, Claude có thể tìm ra những khoảng trống trong phạm vi phủ
sóng thay vì lặp lại các tình huống hiện có. Nếu giấy phép không có giấy phép đã kiểm tra tổng số giỏ
của nó, quá trình chạy sẽ tìm kiếm những khoảng trống ở nơi khác.
Batch API vs Real-Time for CI Workflows
API hàng loạt so với thời gian thực cho quy trình công việc CI
The Message Batches API offers 50% cost savings, but processing takes up to 24 hours
with no guaranteed latency SLA. That creates a clear decision boundary.
API Lô tin nhắn giúp tiết kiệm 50% chi phí nhưng quá trình xử lý mất tới 24 giờ mà
không có SLA độ trễ được đảm bảo. Điều đó tạo ra một ranh giới quyết định rõ ràng.
Pre-merge checks are blocking workflows: developers cannot merge until the check
completes. The Batch API gives no latency guarantee, so it is unsuitable for them. The off-licence's PR
review runs in real time, while its weekly code audit can use the Batch API.
Kiểm tra trước khi hợp nhất đang chặn luồng công việc: nhà phát triển không thể hợp
nhất cho đến khi quá trình kiểm tra hoàn tất. API hàng loạt không đảm bảo độ trễ nên không phù hợp với
họ. Quá trình đánh giá PR của giấy phép ngoại lệ diễn ra trong thời gian thực, trong khi việc kiểm tra
mã hàng tuần có thể sử dụng API hàng loạt.
The exam tests five concepts under Task Statement 3.6. The -p flag is the single most
directly tested fact in Domain 3. It is Question 10 in the official sample questions. The stem shows a
CI job hanging with Claude waiting for input and asks for the fix. The answer is always -p : pure
memorisation. CLAUDE_HEADLESS=true and --batch do not exist. Stdin redirection from /dev/null does not
properly address Claude Code's interactive mode.
Bài thi kiểm tra năm khái niệm trong phần Tuyên bố nhiệm vụ 3.6. Cờ -p là dữ kiện
được kiểm tra trực tiếp nhất trong Miền 3. Đây là Câu hỏi 10 trong các câu hỏi mẫu chính thức. Phần thân
hiển thị một công việc CI đang treo trong đó Claude đang chờ đầu vào và yêu cầu sửa lỗi. Câu trả lời
luôn là -p : ghi nhớ thuần túy. CLAUDE_HEADLESS=true và --batch không tồn tại. Chuyển hướng Stdin từ
/dev/null không xử lý chính xác chế độ tương tác của Mã Claude.
Session isolation is tested in CI/CD scenarios specifically. The exam also expects
familiarity with the headless flags, and it tests append versus replace. Sample Question 11 tests the
batch boundary directly.
Việc cách ly phiên được kiểm tra cụ thể trong các tình huống CI/CD. Kỳ thi cũng yêu
cầu bạn phải làm quen với các cờ không đầu và kiểm tra việc bổ sung hay thay thế. Câu hỏi mẫu 11 kiểm
tra ranh giới lô một cách trực tiếp.
GitHub Actions and worktrees go beyond the guide but are worth knowing. Three readers
who sat the exam report four or five questions on GitHub Actions. The guide does not mention worktrees,
but large refactors run on parallel Claude Code instances, so the practice questions include them.
Các hành động và sơ đồ công việc của GitHub vượt xa hướng dẫn nhưng rất đáng để
biết. Ba độc giả tham gia kỳ thi báo cáo bốn hoặc năm câu hỏi về GitHub Actions. Hướng dẫn không đề cập
đến cây công việc, nhưng các trình tái cấu trúc lớn chạy trên các phiên bản Mã Claude song song, vì vậy
các câu hỏi thực hành sẽ bao gồm chúng.