Skip to content
Apothem
रनबुक

क्रॉस-मशीन सिंक सत्यापन चेकलिस्ट

पूर्ण पोर्टेबिलिटी जाँचों के साथ एक नए होस्ट पर Claude Code अडैप्टर के सही ढंग से इंस्टॉल, सत्यापित और अनइंस्टॉल होने की पुष्टि करने की सत्यापन प्रक्रिया।

दायरा। यह चेकलिस्ट एक नए दूसरे होस्ट पर Claude Code अडैप्टर की इंस्टॉल / अनइंस्टॉल पोर्टेबिलिटी परत को सत्यापित करती है। अन्य हार्नेस के अपने प्रति-होस्ट सत्यापन नुस्खे site/content/docs/harnesses/<harness>.mdx के अंतर्गत प्रलेखित हैं।

दो पथ, दो भूमिकाएँ। इस चेकलिस्ट को पढ़ते समय इन्हें अलग रखें। $HOME/.apothem इंजन होम है — जहाँ स्रोत ट्री क्लोन होता है और जहाँ से इंस्टॉलर पढ़ते हैं, जिसे APOTHEM_HOME से बदला जा सकता है। ~/.claude/ Claude Code कॉन्फ़िगरेशन रूट है — अडैप्टर की आउटपुट सतह, जहाँ मूर्त रूप दी गई settings.json और समर्थन उप-वृक्ष पहुँचते हैं। इंजन कभी ~/.claude/ में इंस्टॉल नहीं होता; किसी भिन्न हार्नेस को सत्यापित करते समय अडैप्टर-नेटिव आउटपुट पथ प्रतिस्थापित करें।

एक नए दूसरे होस्ट पर इंस्टॉल / अनइंस्टॉल पोर्टेबिलिटी परत का ऑपरेटर-संचालित सत्यापन। प्रकाशन स्तर (vX.Y.Z) एक ही Windows होस्ट पर लिखा गया था; पोर्टेबिलिटी दावे (CLAUDE.md portability: universal) को मल्टी-होस्ट अपरिवर्तनीय वज़न रखने से पहले एक दूसरे होस्ट पर सिरे से अंत तक अभ्यास की आवश्यकता है। यह चेकलिस्ट कैनोनिकल दूसरे-होस्ट सत्यापन नुस्खा है (Claude Code अडैप्टर)।


1. दूसरे होस्ट पर पूर्व-शर्तें

सत्यापन शुरू करने से पहले दूसरे होस्ट पर चलाएँ:

आइटमकमांडअपेक्षित
Git इंस्टॉल हैgit --versionGit 2.40+
Python 3.10+ उपलब्धpython3 --version (POSIX) या py -3 --version (Windows)3.10 / 3.11 / 3.12 / 3.13
GitHub प्रमाणीकरण (वैकल्पिक, प्रमाणित क्लोन / API जाँचों के लिए)gh auth statusप्रमाणित वर्कफ़्लो का उपयोग करते समय रिपॉज़िटरी के अधिकृत खाते से लॉग इन
Shell उपलब्धbash --version (POSIX) या pwsh --version (Windows)Bash 4+ या PowerShell 7+
कोई पूर्व-मौजूद इंजन होम नहींls "$HOME/.apothem" 2>&1"No such file or directory" — यदि मौजूद हो, तो आगे बढ़ने से पहले बैकअप लें

2. क्लोन-और-इंस्टॉल सत्यापन

दूसरे होस्ट पर निष्पादित करें:

# Clone the published repo to the engine home. This is NOT ~/.claude — that
# is the Claude Code configuration root the adapter writes into, and cloning
# a source tree on top of it would bury the harness's own config.
git clone https://github.com/ahmed-g-gad/apothem.git "$HOME/.apothem"
cd "$HOME/.apothem"

# (POSIX path) Run scripts/installer/install.sh dry-run first
bash scripts/installer/install.sh --dry-run                                    # exit 0; prints Dry-run complete — no changes were made.

# (POSIX path) Run scripts/installer/install.sh for real
bash scripts/installer/install.sh                                               # exit 0; idempotent

# (Windows path) PowerShell parallel
pwsh -File scripts/installer/install.ps1 -DryRun                                # exit 0; prints Dry-run complete - no changes were made.
pwsh -File scripts/installer/install.ps1                                        # exit 0

प्रत्येक कमांड का एग्ज़िट कोड और stdout बैनर कैप्चर करें। <second-host>/.audit/cross-machine-clone-install.md पर रिकॉर्ड करें।

3. चार-तत्व अनुशासन (src/apothem/rules/production-ready-prs.md के अनुसार)

दूसरे होस्ट पर चारों अपरिवर्तनीयों में से प्रत्येक को सत्यापित करें:

3.1 मौजूदा-गंतव्य सुरक्षा

# Re-run installer at the same destination.
bash scripts/installer/install.sh                                               # POSIX
pwsh -File scripts/installer/install.ps1                                        # Windows

अपेक्षित: इंस्टॉलर मौजूदा इंजन होम का पता लगाता है और पुनः-इंस्टॉल या डुप्लिकेट करने के बजाय उसमें रिलीज़ टैग चेक आउट करता है; एग्ज़िट कोड 0।

3.2 पूर्व-शर्त-जाँचित

# Run from a copy outside any checkout, with git not on PATH.
d="$(mktemp -d)" && cp scripts/installer/install.sh "$d/" && PATH=<directory holding python3, click, rich and coreutils, but no git> /bin/sh "$d/install.sh"                            # POSIX (no git)

अपेक्षित: इंस्टॉलर चलने से मना करता है; स्पष्ट "git not found" डायग्नोस्टिक जारी करता है; एग्ज़िट कोड गैर-शून्य।

3.3 आइडेमपोटेंट पुनः-रन

# 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

अपेक्षित: हर आह्वान एग्ज़िट कोड 0 के साथ समाप्त होता है; पहले आह्वान के बाद कोई दुष्प्रभाव नहीं; कोई डुप्लिकेट फ़ाइलें नहीं; shell-profile RC का कोई दोहराव नहीं।

3.4 पर्यावरण चरों से कॉन्फ़िगर करने योग्य

# Install to a non-default engine home. APOTHEM_HOME is the destination
# override the installers actually read; see the installer-environment-variables
# reference for the full set.
APOTHEM_HOME=/tmp/alt-apothem bash scripts/installer/install.sh                 # POSIX
$env:APOTHEM_HOME='C:\tmp\alt-apothem'; pwsh -File scripts/installer/install.ps1   # Windows

अपेक्षित: इंस्टॉलर पर्यावरण चर का सम्मान करता है; डिफ़ॉल्ट $HOME/.apothem नहीं बनता; वैकल्पिक गंतव्य में अपेक्षित लेआउट होता है।

4. वैलिडेटर-सूट सत्यापन (इंस्टॉल के बाद)

cd "$HOME/.apothem"
make validate                                                 # conformity gate --all --strict; exit 0
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 check + ruff format --check + mypy
make test                                                     # exit 0, no failures

अपेक्षित: हर गेट हरा। एग्ज़िट कोड और सारांश पंक्तियाँ कैप्चर करें।

5. अनइंस्टॉल सत्यापन

# POSIX path — interactive uninstall
bash scripts/installer/uninstall.sh                           # answers: "y" to confirm
PYTHONPATH="$HOME/.apothem/src/apothem/_vendor:$HOME/.apothem/src" python3 -m apothem verify --harness claude-code    # reports the harness as not installed

# Re-install from the kept checkout, then uninstall non-interactively
bash scripts/installer/install.sh
bash scripts/installer/uninstall.sh --yes
PYTHONPATH="$HOME/.apothem/src/apothem/_vendor:$HOME/.apothem/src" python3 -m apothem verify --harness claude-code    # reports the harness as not installed

अपेक्षित: इंटरैक्टिव प्रवाह संकेत देता है; --yes बैच रनों के लिए संकेत छोड़ देता है; दोनों प्रवाह Claude Code कॉन्फ़िगरेशन रूट को Apothem द्वारा मूर्त की गई फ़ाइलों से मुक्त छोड़ते हैं; apothem शिम हटा दिया जाता है (~/.local/bin/apothem; %LOCALAPPDATA%\Microsoft\WindowsApps में apothem.cmd शिम केवल uninstall.ps1 द्वारा हटाया जाता है)।

6. सुरक्षा-गार्ड सत्यापन

अनइंस्टॉलर का गार्ड एक स्रोत-ट्री आकार की जाँच है, सेंटिनल फ़ाइल नहीं: वह तभी आगे बढ़ता है जब लक्ष्य में src/apothem/ के साथ pyproject.toml या .claude-plugin/ में से कोई एक हो। इन प्रोब्स को APOTHEM_HOME के साथ चलाएँ, वह चर जिसे स्क्रिप्ट पढ़ती है — जो प्रोब उस चर पर आधारित हो जिसे स्क्रिप्ट अनदेखा करती है, वह गार्ड की जाँच नहीं करता, बल्कि अनइंस्टॉलर को आपके वास्तविक इंस्टॉल पर चला देता है।

# Run uninstall against a directory that is not an apothem source tree.
mkdir -p /tmp/not-an-apothem-install
APOTHEM_HOME=/tmp/not-an-apothem-install bash scripts/installer/uninstall.sh --yes

अपेक्षित: अनइंस्टॉलर मना करता है; No apothem source found at /tmp/not-an-apothem-install — nothing to uninstall उत्सर्जित करता है; एग्ज़िट कोड गैर-शून्य। पथ को छुआ नहीं गया।

# Run uninstall against $HOME and /.
APOTHEM_HOME=$HOME bash scripts/installer/uninstall.sh --yes 2>&1 | tail -3
APOTHEM_HOME=/ bash scripts/installer/uninstall.sh --yes 2>&1 | tail -3

अपेक्षित: APOTHEM_HOME=$HOME और APOTHEM_HOME=/ में से प्रत्येक No apothem source found at … डायग्नोस्टिक के साथ मना करता है, और दोनों में से कोई भी फ़ाइलसिस्टम को नहीं छूता। खाली APOTHEM_HOME जानबूझकर छोड़ा गया है: वह ~/.apothem पर वापस लौटता है, जहाँ कोई वास्तविक इंस्टॉल हो सकता है।

# An explicit APOTHEM_SOURCE that is not a source tree is rejected separately.
APOTHEM_SOURCE=/tmp/not-an-apothem-install bash scripts/installer/uninstall.sh --yes

अपेक्षित: APOTHEM_SOURCE is not an apothem source tree: /tmp/not-an-apothem-install के साथ मना करता है; एग्ज़िट कोड गैर-शून्य।

7. रिपोर्टिंग

दूसरे-होस्ट रन के बाद, परिणाम यहाँ कैप्चर करें:

  • <second-host>/.audit/cross-machine-clone-install.md (क्लोन + इंस्टॉल कमांड परिणाम)
  • <second-host>/.audit/cross-machine-validators.md (खंड 4 के वैलिडेटर परिणाम)
  • <second-host>/.audit/cross-machine-uninstall.md (खंड 5–6 के अनइंस्टॉल + सुरक्षा परिणाम)

निष्कर्ष मेंटेनर के सामने रखें:

  • ✅ चारों-तत्व अनुशासन की सभी अपरिवर्तनीयाँ कायम हैं + सभी वैलिडेटर गेट हरे हैं + सभी अनइंस्टॉल सुरक्षा-गार्ड ने असुरक्षित लक्ष्यों को अस्वीकार किया → प्रकाशन का portability: universal दावा सिरे से अंत तक सत्यापित है
  • ❌ कोई भी विफलता → विफल खंड और कैप्चर किए गए आउटपुट के साथ https://github.com/ahmed-g-gad/apothem/issues/new पर एक इश्यू दर्ज करें; मेंटेनर ट्राइएज करता है

8. स्वीकृति मानदंड

  • §1 पूर्व-शर्तें पूरी हों
  • §2 क्लोन-और-इंस्टॉल POSIX और Windows, दोनों शेलों पर सफल हो
  • §3 चार-तत्व अनुशासन कायम रहे (मौजूदा-गंतव्य सुरक्षा; पूर्व-शर्त-जाँचित; आइडेमपोटेंट; पर्यावरण चरों से कॉन्फ़िगर करने योग्य)
  • §4 हर वैलिडेटर गेट हरा हो
  • §5 इंटरैक्टिव अनइंस्टॉल सफल हो; --yes बिना संकेत के सफल हो
  • §6 हर सुरक्षा-गार्ड अस्वीकृति सक्रिय हो
  • §7 परिणाम प्रलेखित ऑडिट पथों पर कैप्चर हों

जब एक नए दूसरे होस्ट पर ऊपर का हर चेकबॉक्स टिक हो जाए, तो क्रॉस-मशीन सिंक सत्यापन पूर्ण है और portability: universal दावा सिरे से अंत तक सत्यापित है।

On this page