Daftar Periksa Verifikasi Sinkronisasi Antar-Mesin
Prosedur verifikasi untuk memastikan adaptor Claude Code terinstal, tervalidasi, dan terhapus dengan benar pada host baru, dengan pemeriksaan portabilitas yang lengkap.
Cakupan. Daftar periksa ini memverifikasi lapisan portabilitas instalasi / penghapusan adaptor Claude Code pada host kedua yang baru. Alat-alat lain memiliki resep verifikasi per-host tersendiri yang didokumentasikan di
site/content/docs/harnesses/<harness>.mdx. Path~/.claude/adalah tujuan instalasi kanonis untuk adaptor Claude Code; ganti dengan path nativ adaptor saat memvalidasi alat yang berbeda.
Verifikasi yang dijalankan operator atas lapisan portabilitas instalasi / penghapusan pada host kedua yang baru. Tingkat publikasi (
vX.Y.Z) ditulis pada satu host Windows; klaim portabilitas~/.claude/(CLAUDE.mdportability: universal) memerlukan latihan menyeluruh pada host kedua sebelum invarian multi-host memiliki bobot. Daftar periksa ini adalah resep verifikasi host kedua yang kanonis (adaptor Claude Code).
1. Prasyarat pada Host Kedua
Jalankan pada host kedua sebelum memulai verifikasi:
| Item | Perintah | Diharapkan |
|---|---|---|
| Git terinstal | git --version | Git 2.40+ |
| Python 3.10+ tersedia | python3 --version (POSIX) atau py -3 --version (Windows) | 3.10 / 3.11 / 3.12 / 3.13 |
| Autentikasi GitHub (opsional, untuk klona terautentikasi / pemeriksaan API) | gh auth status | Masuk dengan akun yang diotorisasi repo saat menggunakan alur kerja terautentikasi |
| Shell tersedia | bash --version (POSIX) atau pwsh --version (Windows) | Bash 4+ atau PowerShell 7+ |
Tidak ada direktori ~/.claude/ yang sudah ada | ls ~/.claude 2>&1 | "No such file or directory" — jika ada, cadangkan sebelum melanjutkan |
2. Verifikasi Klona-dan-Instal
Jalankan pada host kedua:
# Clone the published repo to ~/.claude (the install destination)
git clone https://github.com/ahmed-g-gad/apothem.git ~/.claude
cd ~/.claude
# (POSIX path) Run scripts/installer/install.sh dry-run first
bash scripts/installer/install.sh --dry-run # exit 0; Quick Start banner
# (POSIX path) Run scripts/installer/install.sh for real
bash scripts/installer/install.sh # exit 0; sentinel-file check; idempotent
# (Windows path) PowerShell parallel
pwsh -File scripts/installer/install.ps1 -DryRun # exit 0; Quick Start banner
pwsh -File scripts/installer/install.ps1 # exit 0Tangkap kode keluar dan banner stdout setiap perintah. Catat di <second-host>/.audit/cross-machine-clone-install.md.
3. Disiplin Empat Elemen (sesuai src/apothem/rules/production-ready-prs.md §8.3)
Verifikasi masing-masing dari empat invarian pada host kedua:
3.1 Keamanan Berkas Sentinel
# Re-run installer at the same destination.
bash scripts/installer/install.sh # POSIX
pwsh -File scripts/installer/install.ps1 # WindowsDiharapkan: Pemasang mendeteksi ~/.claude/ valid yang sudah ada (berkas sentinel ada), melakukan fast-forward alih-alih menginstal ulang atau menduplikasi; kode keluar 0.
3.2 Diperiksa Prasyaratnya
# Temporarily move git out of PATH.
PATH=/usr/bin:/bin bash scripts/installer/install.sh # POSIX (no git)Diharapkan: Pemasang menolak berjalan; mengeluarkan diagnostik eksplisit "git not found"; kode keluar bukan nol.
3.3 Jalan Ulang Idempoten
# Run installer N times back-to-back.
for i in 1 2 3 4 5; do bash scripts/installer/install.sh; done # POSIX
1..5 | ForEach-Object { pwsh -File scripts/installer/install.ps1 } # WindowsDiharapkan: Setiap pemanggilan keluar dengan 0; tidak ada efek samping setelah pemanggilan pertama; tidak ada berkas duplikat; tidak ada duplikasi RC shell-profile.
3.4 Dapat Dikonfigurasi via Variabel Lingkungan
# Install to a non-default location.
CLAUDE_PROJECT_DIR=/tmp/alt-claude bash scripts/installer/install.sh # POSIX
$env:CLAUDE_PROJECT_DIR='C:\tmp\alt-claude'; pwsh -File scripts/installer/install.ps1 # WindowsDiharapkan: Pemasang menghormati variabel lingkungan; ~/.claude/ TIDAK dimodifikasi; tujuan alternatif berisi tata letak yang diharapkan.
4. Verifikasi Suite Validator (Pasca-Instal)
cd ~/.claude
make validate # 50 conformity validators
make headers-doctor # file-header-grep → passed:true
make ai-surfaces-doctor # multi-surface-coherence → passed:true
make plans-doctor # no-global-plans + plans-discipline-language
make lint # ruff + mypy
make test # pytest 265/265Diharapkan: Setiap gerbang hijau. Tangkap kode keluar + baris ringkasan.
5. Verifikasi Penghapusan
# POSIX path — interactive uninstall
bash scripts/installer/uninstall.sh # answers: "y" to confirm
ls ~/.claude 2>&1 # "No such file or directory"
# Re-install from clone, then uninstall non-interactively
git clone https://github.com/ahmed-g-gad/apothem.git ~/.claude
bash scripts/installer/uninstall.sh --yes
ls ~/.claude 2>&1 # "No such file or directory"Diharapkan: Alur interaktif menampilkan prompt; --yes melewati prompt untuk jalan batch; kedua alur meninggalkan ~/.claude/ terhapus bersih; referensi variabel lingkungan shell-profile pendamping dibersihkan.
6. Verifikasi Pengaman Keselamatan
# Run uninstall against a path that fails the sentinel-file check.
mkdir -p /tmp/not-a-claude-install
CLAUDE_PROJECT_DIR=/tmp/not-a-claude-install bash scripts/installer/uninstall.sh --yesDiharapkan: Penghapus menolak; mengeluarkan diagnostik "sentinel-file missing; refusing to remove unsafe target"; kode keluar bukan nol. Path TIDAK disentuh.
# Run uninstall against $HOME, /, or empty path.
CLAUDE_PROJECT_DIR=$HOME bash scripts/installer/uninstall.sh --yes 2>&1 | tail -3
CLAUDE_PROJECT_DIR=/ bash scripts/installer/uninstall.sh --yes 2>&1 | tail -3
CLAUDE_PROJECT_DIR='' bash scripts/installer/uninstall.sh --yes 2>&1 | tail -3Diharapkan: Masing-masing menolak dengan diagnostik "unsafe target" eksplisit; tidak ada yang menyentuh sistem berkas.
7. Pelaporan
Setelah jalan pada host kedua, tangkap hasil di:
<second-host>/.audit/cross-machine-clone-install.md(hasil perintah klona + instal)<second-host>/.audit/cross-machine-validators.md(hasil validator Bagian 4)<second-host>/.audit/cross-machine-uninstall.md(hasil penghapusan + keselamatan Bagian 5–6)
Sampaikan temuan kepada pemelihara:
- ✅ semua invarian disiplin empat elemen berlaku + semua gerbang validator hijau + semua pengaman keselamatan penghapusan menolak target tidak aman → klaim
portability: universaldari publikasi terverifikasi menyeluruh - ❌ kegagalan apa pun → ajukan isu di
https://github.com/ahmed-g-gad/apothem/issues/newdengan bagian yang gagal + output yang ditangkap; pemelihara melakukan triase
8. Kriteria Penerimaan
- §1 prasyarat terpenuhi
- §2 klona-dan-instal berhasil baik pada shell POSIX maupun Windows
- §3 disiplin empat elemen berlaku (keamanan berkas sentinel; diperiksa prasyaratnya; idempoten; dapat dikonfigurasi via variabel lingkungan)
- §4 setiap gerbang validator hijau
- §5 penghapusan interaktif berhasil;
--yesberhasil tanpa prompt - §6 setiap penolakan pengaman keselamatan terpicu
- §7 hasil ditangkap pada path audit yang didokumentasikan
Ketika setiap kotak centang di atas dicentang pada host kedua yang baru, tindak lanjut sinkronisasi antar-mesin (COMPLETION.md §7 batasan pengikat) ditutup.