Skip to content
Apothem
Runbook

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.md portability: 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:

ItemPerintahDiharapkan
Git terinstalgit --versionGit 2.40+
Python 3.10+ tersediapython3 --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 statusMasuk dengan akun yang diotorisasi repo saat menggunakan alur kerja terautentikasi
Shell tersediabash --version (POSIX) atau pwsh --version (Windows)Bash 4+ atau PowerShell 7+
Tidak ada direktori ~/.claude/ yang sudah adals ~/.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 0

Tangkap 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                                        # Windows

Diharapkan: 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 }              # Windows

Diharapkan: 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   # Windows

Diharapkan: 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/265

Diharapkan: 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 --yes

Diharapkan: 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 -3

Diharapkan: 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: universal dari publikasi terverifikasi menyeluruh
  • ❌ kegagalan apa pun → ajukan isu di https://github.com/ahmed-g-gad/apothem/issues/new dengan 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; --yes berhasil 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.

On this page