Claude Architect · Pelajaran

Pengasingan Sesi untuk Semakan

Semak dalam tika baharu yang bebas daripada konteks penjanaan

Pelajaran 3 daripada 413 langkah

Pengasingan Sesi untuk Semakan ialah pelajaran Claude Architect percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Claude Architect, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.

Masalah Bias Pengarang

Apabila Claude menjana kod kemudian menyemaknya dalam sesi yang sama, semakan itu terjejas. Model masih menyimpan penaakulannya sendiri dalam konteks, jadi model cenderung mempertahankan pilihannya dan bukannya mencabarnya.

Ini ialah anti-corak semakan kendiri dalam sesi yang sama. Pengarang mengekalkan rasional bagi setiap keputusan dan jarang menandakan andaian sendiri sebagai meragukan.

Prinsip peperiksaan ini jelas: semakan oleh contoh bebas dan baharu mengatasi semakan kendiri dalam sesi yang sama. Dalam CI/CD, ini bermakna penyemak tidak boleh berkongsi konteks dengan penjana.

Mengapa Contoh Baharu Lebih Baik

Penyemak yang bermula dengan tetingkap konteks kosong mendekati perbezaan kod seperti orang luar. Penyemak itu tidak mempunyai kepentingan terhadap sebab sesuatu fungsi ditulis dengan cara tertentu, jadi ia menilai kod berdasarkan kualitinya semata-mata.

  • Konteks penjanaan = gesaan, penerokaan dan penaakulan yang menghasilkan kod.
  • Konteks semakan = hanya kod, piawaian dan kriteria semakan.

Mengekalkan kedua-duanya berasingan menghapuskan bias pengesahan yang menyebabkan semakan kendiri meluluskan hasilnya sendiri. Pengasingan sesi ialah mekanisme yang menguatkuasakan pemisahan ini dalam saluran paip.

Mod Tanpa Interaksi dalam CI

Saluran paip tidak mempunyai terminal untuk ditaip, jadi Claude Code mesti berjalan dalam mod tanpa interaksi (cetak). Gunakan -p (atau --print) untuk menghantar satu gesaan dan mendapatkan satu hasil, kemudian keluar.

Ini ialah asas untuk langkah semakan berasingan: setiap panggilan ialah proses baharu dengan konteks bersihnya sendiri, sepenuhnya berasingan daripada langkah penjanaan yang berjalan lebih awal.

# Non-interactive review invocation in a CI job
claude -p "Review the staged diff for correctness and security issues." \
  --output-format json

Output Boleh Dihuraikan untuk Pintu Gerbang

Langkah CI memerlukan hasil yang boleh dibaca mesin, bukan prosa. Tambahkan --output-format json supaya saluran paip boleh menghuraikan penemuan dan menentukan sama ada binaan perlu lulus atau gagal.

Menggabungkan output JSON dengan skema menjadikan hasil itu deterministik untuk digunakan: skrip pintu gerbang anda membaca medan berstruktur dan bukannya mencari perkataan seperti "LGTM" atau "done" dalam teks bebas — yang merupakan anti-corak.

claude -p "$(cat .ci/review-prompt.md)" \
  --output-format json \
  > review-result.json

# Gate script parses structured fields, never scans text
jq '.findings[] | select(.severity == "blocker")' review-result.json

Dua Proses, Dua Konteks

Corak pengasingan paling bersih dalam CI/CD adalah memisahkan penjanaan dan semakan kepada dua panggilan Claude Code yang berasingan. Tugas penjanaan menulis kod; tugas -p yang bebas dan berjalan kemudian menyemaknya.

Oleh sebab setiap panggilan ialah prosesnya sendiri, penyemak tidak pernah mewarisi sejarah perbualan penjana. Ini mencerminkan peraturan berbilang ejen daripada peperiksaan: subejen tidak mewarisi sejarah penyelaras — konteks mesti dihantar secara eksplisit, bukan diandaikan.

# Stage 1 — generation (its own session/context)
claude -p "Implement the feature described in TICKET-412."

# Stage 2 — review (a brand-new process, zero shared context)
claude -p "Review the resulting diff against our coding standards." \
  --output-format json

Sambung Semula Bukan Pengasingan

Memang menggoda untuk menyambung semula sesi penjanaan dengan --resume dan memintanya menyemak hasil kerjanya sendiri. Jangan berbuat demikian. Sesi yang disambung semula membawa semula penaakulan asal ke dalam konteks — itulah kecenderungan semakan kendiri yang mahu dielakkan.

Terdapat satu lagi bahaya: hasil alat yang disambung semula mungkin sudah lapuk jika pangkalan kod berubah sejak hasil tersebut direkodkan. Kadangkala sesi baharu yang diisi dengan ringkasan berstruktur lebih baik daripada menyambung semula sesi bernama secara terus.

Untuk semakan yang tidak berat sebelah, gunakan sesi baharu sebagai pilihan lalai setiap kali.

# --resume continues a NAMED session (keeps prior context — biased for review)
claude --resume feature-412 -p "Now review what you wrote."   # avoid for review

# fork_session branches from a shared point — still inherits context
# For review, prefer a clean -p invocation instead.

Berikan Hanya Perbezaan dan Peraturan

Penyemak terpencil hendaklah menerima muatan yang padat dan berkaitan: perbezaan untuk diperiksa serta piawaian yang perlu digunakan. Ringkaskan output alat yang panjang kepada medan yang penting — konteks yang terlalu besar mencetuskan kesan hilang di tengah-tengah, apabila model memberikan perhatian yang jauh lebih besar kepada bahagian awal dan akhir berbanding bahagian tengah.

Letakkan kriteria semakan berhampiran awal atau akhir gesaan supaya kriteria tersebut tidak tertimbus di tengah-tengah konteks.

git diff --staged > /tmp/diff.patch

claude -p "You are an independent reviewer with no prior context.

Review ONLY this diff against the rules below.

<rules>$(cat .ci/review-rules.md)</rules>

<diff>$(cat /tmp/diff.patch)</diff>" \
  --output-format json

Kriteria Jelas Mengatasi Permintaan Kabur

Sesi terpencil tidak mempunyai andaian bersama untuk dijadikan sandaran, jadi kriteria mestilah jelas. Peraturan yang tepat mengurangkan positif palsu dengan ketara.

  • Kabur: "be more precise" — menghasilkan penandaan yang bising dan tidak konsisten.
  • Jelas: "flag a comment only when it contradicts the code it describes" — menghasilkan penemuan yang boleh diambil tindakan.

Khusus untuk semakan CI, matlamatnya adalah untuk meminimumkan positif palsu — penyemak yang kerap memberi amaran palsu akan diabaikan dan menghakis kepercayaan terhadap pintu kawalan.

Contoh Few-Shot untuk Konsistensi

Untuk memastikan penyemak terpencil berkelakuan konsisten antara larian, tambahkan 2-4 contoh few-shot yang disasarkan dan merangkumi kes yang kabur. Model membuat generalisasi daripadanya — model bukan sekadar mengulangnya semula.

Few-shot ialah alat yang sesuai untuk konsistensi, kes pinggiran, format output dan mengurangkan penemuan yang direka-reka. Beberapa contoh flag / do-not-flag yang dipilih dengan baik menyelaraskan pertimbangan penyemak dengan tahap yang ditetapkan oleh pasukan anda.

<examples>
  <example verdict="flag">
    Code swallows the exception silently — masks failures. Report it.
  </example>
  <example verdict="do-not-flag">
    A TODO comment about future work is not a defect. Ignore it.
  </example>
</examples>

Output Berstruktur Mengunci Keputusan

Paksa penyemak mengeluarkan keputusan berstruktur melalui alat dan Skema JSON. Tetapkan tool_choice kepada "any" supaya model mesti memanggil alat — ini menjamin output berstruktur dan bukannya prosa bebas.

Tandakan medan sebagai required hanya apabila medan tersebut sentiasa wujud. Jangan sesekali mewajibkan medan yang mungkin tiada, kerana model akan mereka-reka nilainya. Gunakan enum dengan pilihan "other" bersama medan butiran teks bebas supaya jenis penemuan baharu masih dapat diwakili.

review_tool = {
    "name": "submit_review",
    "description": "Return the review verdict and findings.",
    "input_schema": {
        "type": "object",
        "properties": {
            "verdict": {"enum": ["pass", "fail"]},
            "findings": {
                "type": "array",
                "items": {
                    "type": "object",
                    "properties": {
                        "category": {"enum": ["bug", "security", "style", "other"]},
                        "detail": {"type": "string"}
                    },
                    "required": ["category", "detail"]
                }
            }
        },
        "required": ["verdict"]
    }
}

# tool_choice="any" guarantees a tool call (structured output)
message = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=2048,
    tools=[review_tool],
    tool_choice={"type": "any"},
    messages=[{"role": "user", "content": review_prompt}],
)

Jalankan Semula: Laporkan Hanya Isu Baharu

Apabila permintaan tarik dikemas kini dan semakan dijalankan semula, sesi baharu akan menandakan semula segala-galanya dari awal — termasuk item yang telah diakui. Hal ini menghasilkan gangguan.

Pola peperiksaan: apabila menjalankan semula, sertakan hasil terdahulu dan laporkan hanya isu baharu atau yang masih belum dibaiki. Pengasingan sesi dikekalkan (penyemak masih bersih), sambil penemuan terdahulu dihantar secara jelas sebagai input — konteks diserahkan dengan sengaja, bukannya diwarisi daripada sesi penjanaan yang disambung semula.

claude -p "Independent re-review. Below are the diff and the findings
from the previous run. Report ONLY new issues or prior issues that
are still unfixed. Do not repeat resolved items.

<previous_findings>$(cat last-review.json)</previous_findings>
<diff>$(git diff --staged)</diff>" \
  --output-format json

Semakan Pantas

Uji pemahaman anda tentang keputusan teras di sebalik semakan terpencil.

Imbas Kembali: Pengasingan melalui Reka Bentuk

Perkara utama untuk semakan yang mengasingkan sesi dalam CI/CD:

  • Contoh baharu mengatasi semakan kendiri — pengarang mempertahankan hasil kerjanya sendiri; orang luar tidak berbuat demikian.
  • Proses berasingan — lakukan semakan dengan seruan claude -p yang berbeza; jangan sesekali gunakan --resume pada sesi penjanaan untuk semakan.
  • Tidak interaktif + JSON — -p dengan --output-format json memberikan konteks yang bersih dan hasil yang boleh dihuraikan; jangan sesekali mencari isyarat selesai dalam teks menggunakan grep.
  • Kriteria jelas + 2-4 contoh few-shot meminimumkan positif palsu dan memastikan keputusan konsisten.
  • tool_choice "any" memaksa output berstruktur; wajibkan hanya medan yang sentiasa wujud.
  • Semasa larian semula, hantar penemuan terdahulu secara jelas dan laporkan hanya isu baharu atau yang belum dibaiki.
  • Jangan sesekali salurkan semakan pra-gabung yang menyekat melalui Batch API.
Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
26
Pelajaran
104

Soalan Lazim

Adakah pelajaran “Pengasingan Sesi untuk Semakan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Claude Architect, termasuk “Pengasingan Sesi untuk Semakan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Claude Architect merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengasingan Sesi untuk Semakan”?

Semak dalam tika baharu yang bebas daripada konteks penjanaan Anda berlatih Claude Architect menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Claude Architect?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Claude Architect di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “Pengasingan Sesi untuk Semakan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Claude Architect ini?

Ya. Setiap pelajaran Claude Architect menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mod Tanpa Interaksi
  2. Output Berstruktur
  3. Pengasingan Sesi untuk Semakan
  4. Penjanaan Test dan Piawaian
← Kembali ke Claude Architect