Halaman ini diterjemahkan dari dokumentasi bahasa Inggris. Perintah, pengenal, dan contoh tidak diubah. Runtime 7.24.4 · SDK 2.6.7. Sumber bahasa Inggris
Jaminan tujuan
Status: Saat ini Cakupan: Pemeriksaan penerimaan tujuan dan kesegaran sumber Terakhir ditinjau: 2026-09-14 Pemilik: pengelola runtime AX Code
Rencana perubahan kode yang dihasilkan perencana tujuan menyatakan pemeriksaan penerimaan
yang dapat dieksekusi. Setiap pemeriksaan menamai hasil yang dicakup, perintah persisnya, tujuannya,
dan lingkungan yang dimaksud. AX Code mencatat bukti eksekusi ketika agen
menjalankan verify_project dengan id goalCheck pemeriksaan itu.
{ "goalCheck": "invoice-parity" }
Perintah berasal dari rencana tujuan yang dibekukan. Agen tidak dapat menggantinya dengan perintah lain melalui panggilan ini. Izin bash yang ada tetap berlaku. Menyelesaikan tujuan mengharuskan percobaan terbaru setiap pemeriksaan yang dinyatakan lulus dengan tujuan, sesi, workspace, kontrak, dan isi sumber yang cocok. Prosa penerimaan menjelaskan hasil; ia tidak menggantikan pemeriksaan yang dieksekusi. Eksekusi shell biasa dan pemeriksaan yang sepenuhnya dilewati tidak dapat menyediakan bukti ini.
Rencana tujuan lama tanpa jaminan mempertahankan aturan penyelesaian sebelumnya. Bersihkan dan buat ulang tujuan lama ketika Anda memerlukan kontrak baru; menyunting persyaratan bekunya di tempat menyebabkan ketidakcocokan kontrak. Fork mempertahankan kontrak tetapi memerlukan eksekusi pemeriksaan yang baru di sesi baru.
Menyiapkan proyek migrasi
Sediakan sumber atau ekspor warisan yang otoritatif dengan pengenal revisi, inventaris cakupan yang dibatasi, dan skrip pemeriksaan yang gagal ketika asersi tidak dapat diverifikasi. Perlakukan komentar dan implementasi migrasi sebelumnya sebagai petunjuk untuk diselidiki. Catat perubahan perilaku yang disetujui secara terpisah dari persyaratan paritas warisan.
Pilih pemeriksaan untuk lapisan yang benar-benar terpengaruh perubahan yang diminta:
| Lapisan | Apa yang harus diasersi pemeriksaan proyek |
|---|---|
| Alur bisnis | Masukan, peran, dan data awal yang sama menghasilkan keluaran dan efek samping yang diharuskan. |
| Logika basis data | Objek, pemicu, prosedur, dan pekerjaan yang diharuskan ada dan menunjukkan perilaku yang diharapkan. |
| Skema dan data | Pemetaan, batasan, bawaan, dan aturan rekonsiliasi berlaku; jumlah baris saja tidak cukup. |
| Konfigurasi | Cabang konfigurasi yang relevan menjalankan perilaku yang dimaksud. |
| Penerapan | Instans, skema, revisi artefak, dan konfigurasi efektif yang dimaksud benar-benar aktif. |
Skrip harus mengasersi identitas target sebelum melakukan pemeriksaannya. Simpan kredensial di mekanisme kredensial proyek yang sudah ada, jangan pernah di teks rencana, perintah, atau deskripsi target. Pemeriksaan harus mengembalikan kode keluar bukan nol untuk asersi yang gagal, lingkungan yang hilang, atau asersi wajib yang dilewati. Hindari pembungkus yang menyembunyikan kegagalan. AX Code tidak dapat menyimpulkan asersi dari keluarnya proses yang berhasil.
Untuk migrasi besar, atur kerja menjadi kelompok alur bisnis yang dibatasi dan pelihara inventaris yang menautkan formulir, dependensi, rujukan warisan, dan pemeriksaan penerimaan. Laporkan baik kelompok yang diterima maupun cakupan yang tersisa. Lulusnya satu kelompok tidak menyelesaikan seluruh migrasi.
Apa yang dicatat rencana
Perencana menyediakan objek assurance. Fragmen ilustratif ini mengasumsikan
proyek memiliki ekspor sumber dan skrip pemeriksaan yang dirujuk:
{
"version": 1,
"sourcePaths": ["src", "checks", "package.json"],
"sources": [
{ "role": "legacy", "reference": "legacy/invoice-schema.sql at export-v1" },
{ "role": "requirement", "reference": "Invoice acceptance criteria supplied by the user" }
],
"checks": [
{
"id": "invoice-parity",
"acceptanceIds": ["AC1"],
"command": "node checks/invoice-parity.cjs",
"purpose": "Assert invoice behavior, database mappings and target identity",
"environment": "Staging migration target, schema ERP"
}
]
}
Semua id penerimaan harus tercakup. Perintah dieksekusi dari akar workspace. Objek jaminan dibekukan bersama kontrak penerimaan. Agen menerima cakupan yang divalidasi, rujukan sumber, id pemeriksaan, dan target yang dinyatakan dalam konteks tujuan yang berlanjut. Kontrak yang hilang atau berubah menghasilkan pemberitahuan pemulihan. Ringkasan percakapan yang dihasilkan tetap dapat keliru; rujukan yang dinyatakan dan label target adalah persyaratan, bukan fakta yang diamati secara independen.
Rentang Git yang mengukur apa yang diubah tujuan ini harus memakai {BASELINE} sebagai
keadaan sebelumnya. Perencana menulis ulang penampung itu ke SHA HEAD yang ditangkap
saat rencana dikirim, jadi komit yang sudah ada di depan origin/main atau
pohon kerja yang kotor tidak dapat membuat tujuan tidak dapat diselesaikan. Ref pelacak remote
(origin/main, @{u}, refs/remotes/…) ditolak sebagai keadaan sebelumnya itu
kecuali tujuan menyebut remote tersebut. Catat jalur yang sudah menyimpang atau kotor
di bawah Risiko; jangan bekukan pemeriksaan gerbang yang sudah gagal kecuali
tujuannya adalah memperbaiki kegagalan itu.
Kesegaran dan batas
Sidik jari sumber Git mencakup byte aktual berkas terlacak dan berkas tidak terlacak yang tidak diabaikan
di dalam sourcePaths yang dinyatakan. Jalur berkas eksplisit juga mencakup berkas
konfigurasi yang diabaikan; jalur direktori mempertahankan aturan abaikan Git. Daftar periksa rencana tujuan yang dapat berubah dikecualikan; persyaratan bekunya
diperiksa melalui digest kontrak. Proyek non-Git menyidik secara rekursif
sourcePaths yang dinyatakan, termasuk jalur yang hilang. Sertakan setiap sumber, berkas konfigurasi,
dan skrip pemeriksaan yang relevan dalam cakupan itu.
Penyidikan dibatasi 20,000 entri dan 128 MiB isi berkas. Sumber bertaut, repositori Git bersarang, berkas khusus, jalur yang lolos, berkas yang berubah, dan pembacaan yang tidak tersedia tidak dapat menghasilkan bukti segar. Kegagalan seperti itu memblokir penyelesaian yang dijamin. Artefak keluaran pemeriksaan sebaiknya menuju lokasi yang diabaikan agar menghasilkan laporan tidak mengubah sumber yang diverifikasi.
Berkas yang diabaikan dan tidak disebut secara eksplisit, dependensi di luar cakupan sumber, basis data, dan penerapan memerlukan asersi di perintah proyek. Tanda terima mencatat pengamatan pada waktu eksekusinya; ia tidak membuktikan keadaan eksternal tetap tidak berubah. Jalankan ulang pemeriksaan yang terpengaruh setelah mengubah konfigurasi, basis data, atau penerapan. AX Code tidak otomatis menemukan semua perilaku warisan atau mensertifikasi paritas migrasi.
Kapan perencanaan berjalan
Perencanaan bersifat ikut serta pada kedua permukaan. /goal <objective> dan create_goal
tanpa assure memulai tujuan segera: ia tidak membawa kriteria penerimaan
yang dibekukan, dan penyelesaian dinilai dari rencana kerja (todo yang tertunda) plus
verifikasi yang lulus setelah perubahan terakhir. /goal --assure <objective> dan
create_goal dengan assure: true menjalankan penulis rencana terlebih dahulu, dan itulah yang membuat
tanda terima pemeriksaan yang dieksekusi di bawah menjadi syarat penyelesaian.
Tujuan tanpa kontrak menyatakannya di mana pun ia ditampilkan (/goal view, dialog
tujuan, pesan kendali), jadi gerbang penyelesaiannya tidak pernah harus Anda
simpulkan. /goal replace mempertahankan jaminan ketika tujuan yang diganti memiliki
kontrak yang valid.
Konteks perencanaan dan pemilihan model
Perencanaan tujuan mewarisi model sesi yang dipilih melalui /goal dan alat
create_goal. Varian pemanggil yang kompatibel dipertahankan. Penulis hanya-baca
menerima persyaratan pengguna asli yang baru serta rujukan lampiran, dengan
anggaran catatan 16 KiB. Catatan yang terlalu besar menghentikan penyertaan catatan yang lebih lama, dengan pemberitahuan, agar persyaratan yang lebih lama
tidak diam-diam menggantikan koreksi yang dihilangkan; isi
media sebaris tidak diperlakukan sebagai bukti yang sudah diperiksa. Sediakan berkas sumber yang dapat diperiksa
untuk persyaratan yang hanya ada di media.
Kemajuan dan penghalang
get_goal mencakup status pemeriksaan saat ini (lulus, gagal, basi, berjalan, atau hilang)
dan ID bukti alat terbaru. Gerbang penyelesaian tetap memerlukan tanda terima
berhasil yang mutakhir. Pembaruan terblokir memerlukan jenis penghalang, alasan, perubahan eksternal yang diperlukan,
ID bukti asli, dan konfirmasi bahwa tidak ada kerja independen yang tersisa. Alasan
penghalang adalah deklarasi model yang didukung catatan yang dapat diperiksa, bukan sertifikasi
bahwa layanan eksternal tetap tidak tersedia.
Giliran yang selesai dan berulang kali tidak menghasilkan bukti alat berhasil yang baru menerima
panduan pemulihan, lalu menjeda tujuan dengan kerja yang belum selesai diungkapkan. Hasil riset
baru dapat dihitung tanpa suntingan sumber; penulisan ulang todo dan hasil identik yang berulang
tidak. Ini heuristik yang dibatasi, bukan bukti kemajuan semantik. /goal resume
memulai percobaan lain. Panggilan alat yang dibuat untuk tujuan sebelumnya tidak dapat mengakhiri
penggantinya. Tujuan yang dibuat alat tersedia untuk pembaruan status setelah model
menerima hasil pembuatan pada langkah berikutnya.
Merevisi rencana yang ada
Gunakan /goal revise <correction> untuk merevisi secara eksplisit tujuan beku yang aktif, dijeda, atau
terblokir. Kerja yang selesai dan anggaran yang habis memerlukan tujuan baru. Rencana
dan digest sebelumnya tetap utuh. Rencana yang direvisi mendapat identitas baru dan catatan
revisi tersiapkan lokal yang menautkan kedua digest serta koreksi. Identitas
tujuan saat ini menentukan kandidat mana yang benar-benar dipasang; kandidat bersamaan yang gagal
dapat tetap di disk untuk diperiksa. Tanda terima lama tetap di
riwayat dan tidak dapat memenuhi revisi baru. Anggaran token dan pemakaian yang sudah terakumulasi terbawa;
revisi tidak memberi anggaran belanja yang baru.
Revisi membatalkan eksekusi saat ini dan menjeda tujuan saat menyiapkan rencana baru. Jika perencanaan gagal, kontrak sebelumnya tetap dapat dilanjutkan; tujuan yang sebelumnya terblokir mempertahankan status itu. Jeda atau pembatalan pengguna selama perencanaan mencegah aktivasi. Penggantian bersamaan mencegah kandidat mengambil alih. Alat model tidak dapat diam-diam merevisi persyaratan yang dibekukan. Tinjau rencana yang dihasilkan dan kriteria penerimaannya; perintah yang dapat dieksekusi saja tidak menetapkan bahwa asersinya mencakup permintaan yang dikoreksi.
Hasil tinjauan dan perubahan sumber kemudian
Log tinjauan yang tidak kosong tidak menetapkan tinjauan yang berhasil. Untuk peninjau eksternal yang diharuskan, gunakan pemeriksaan milik proyek yang memvalidasi kode keluar yang sebenarnya, penyelesaian terminal, identitas sumber atau diff, serta temuan akhir atau putusan tanpa temuan yang eksplisit. Log yang hanya peringatan, penalaran sebagian, dan batas waktu harus gagal. Simpan percobaan yang gagal secara terpisah untuk diagnosis.
Pengiriman perubahan kode yang baru menolak pemeriksaan keberadaan berkas dan inspeksi sederhana yang dikenali. Ini penjaga penerimaan yang sempit, bukan bukti semantik untuk perintah shell sembarang. Kontrak beku yang ada mempertahankan skema dan digestnya; titik pemeriksaan memperingatkan ketika pemeriksaan yang lebih lama memiliki kelemahan ini.
Kesegaran pemeriksaan tujuan juga menyidik jalur berkas yang terselesaikan yang dilaporkan alat penyunting
berkas yang berhasil selama tujuan saat ini, termasuk setiap hasil multiedit
dan jalur yang dihilangkan dari
daftar sumber asli. Suntingan kemudian pada berkas itu membatalkan tanda terima sebelumnya.
Kontrak beku dan digest tidak berubah. Pelacakan ini memakai metadata hasil alat berkas;
ia tidak menyimpulkan efek samping shell sembarang atau cakupan tes.
Batas penahanan sistem berkas, tautan, ukuran, dan jumlah berkas yang ada tetap berlaku.
Keluaran pemeriksaan dan titik pemeriksaan tujuan mengungkapkan jalur tambahan. Jika perintah tes
beku menghilangkan regresi yang diperlukan, minta /goal revise <correction> dan jalankan
pemeriksaan yang direvisi. Menyertakan berkas dalam sidik jari membuktikan kesegaran, bukan bahwa
tes menjalankan berkas itu. Utamakan direktori sumber yang dibatasi dan perintah tes
yang mencakup regresi baru ketika merencanakan sapuan bug yang ujungnya terbuka.
Alias workspace dinormalisasi untuk jalur berkas yang diamati. Berkas coretan eksternal tidak menjadi masukan sumber workspace; titik pemeriksaan mengungkapkan bahwa konten eksternal tidak disidik. Keadaan eksternal yang diharuskan tetap memerlukan verifikasi milik proyek.
Bukti cakupan komit
git log <baseline>..HEAD -- <paths> yang tidak kosong hanya membuktikan bahwa sebuah komit
cocok dengan filter. Ia tidak mengecualikan berkas yang tidak terkait dalam komit itu atau
komit lain. Rencana perubahan kode yang baru menolak asersi log Git mandiri yang dikenali dengan filter jalur yang tidak kosong; pemeriksaan beku yang lebih lama menerima panduan revisi tanpa
mengubah digest atau validasi waktu baca.
Gunakan pemverifikasi milik proyek yang memeriksa leluhur garis dasar, mengharuskan rentang
yang tidak kosong, dan memeriksa setiap jalur yang berubah di setiap komit tanpa filter jalur.
Sertakan berkas yang dihapus dan kedua sisi penggantian nama, tangani komit merge secara eksplisit,
dan validasi properti cabang atau pesan yang diharuskan secara terpisah. Gunakan
/goal revise untuk memperkuat kontrak yang ada; jangan sunting persyaratan yang dibekukan.
Ukuran rencana dan pengiriman ulang yang lengkap
Rencana yang dirender, termasuk Markdown dan JSON jaminan, harus muat dalam 8,192
byte UTF-8. Targetkan di bawah 7,168 byte. Jika pengiriman melebihi batas, persingkat
prosa yang berulang dan kirim ulang objek lengkap, termasuk kind dan semua
bidang yang diharuskan. Pertahankan id dan pemeriksaan penerimaan; runtime tidak
memotong persyaratan atau menaikkan batas pembaca untuk menerima rencana yang terlalu besar.
Tanda terima tinjauan animasi CLI lokal
packages/ax-code/script/verify-cli-review-receipts.ts milik repositori
memeriksa artefak round-* di bawah akar tanda terima yang dipilih dengan --root. Setiap putaran
memerlukan revision.txt, dan masing-masing grok, claude, serta codex memerlukan exit.txt
dengan 0 dan satu putusan akhir di stdout.jsonl (peristiwa teks Grok) atau
stdout.txt (Claude/Codex). Simpan percobaan yang gagal di luar direktori putaran
yang selesai; jangan mengubah kegagalan menjadi tanda terima dengan keluar nol.
dispositions.json berisi larik findings. Setiap entri menamai round,
cli, id, status (fixed atau rejected), dan evidence yang tidak kosong. Entri tetap
tambahan memerlukan objek regression dengan jalur repositori harfiah
file di bawah packages/ax-code/test/cli/tui/ dan fullName Vitest
yang persis. Disposisi duplikat atau beberapa putusan yang ambigu gagal.
Pemverifikasi menjalankan berkas itu memakai Vitest yang terpasang dengan bawaan percobaan ulang global
diatur ke nol (opsi tes individual dapat menimpa bawaan itu),
lalu memeriksa bahwa setiap asersi yang dirujuk lulus tepat sekali. Asersi yang hilang, dilewati,
gagal, atau ambigu menggagalkan verifikasi. Ini membuktikan tes yang dirujuk
lulus, bukan bahwa asersinya secara semantik mencakup temuan. Disposisi yang ditolak
tetap tercatat sebagai penilaian. Putaran akhir harus cocok dengan HEAD saat ini;
temuan yang ditandai diperbaiki memerlukan revisi dan putaran tinjauan yang lebih baru. Perubahan sumber,
tes, atau konfigurasi paket inti yang belum dikomit mencegah verifikasi. Jaga konfigurasi
ax-code.json lokal yang tidak terkait agar tidak masuk komit.
Untuk repositori ini, vitest run --dir test/cli/tui mempertahankan pengecualian jalur normal
sambil memindai direktori TUI. Pelari kelompok masih dapat memilih berkas persis
dengan AX_TEST_FILES; pemilihan direktori tidak menonaktifkan pengecualian.