# TOL002-LAB1

1. `python setup_fixture.py` و سپس `python inspect_closure.py` را اجرا کن. snapshot محدود execution context را ثبت کن: identity و resolved executable مربوط به Python/Node/pnpm در صورت وجود، platform، cwd، hashهای manifest/lock و مرز نام‌گذاری‌شدهٔ artifact/store.
2. در محیطی که pnpm موجود است baseline را reset کن و `python run_pnpm_probe.py` را اجرا کن. probe فقط store ایزوله و محلی fixture را از tarball محلی بسته‌شده آماده می‌کند و سپس `pnpm install --frozen-lockfile --offline --ignore-scripts --store-dir <fixture-local-store>` را اجرا می‌کند. `PNPM_UNAVAILABLE` success نیست.
3. قبل از هر mutation reset کن: `manifest-drift`، `delete-store-artifact` و `remove-workspace-member`. mutation مربوط به artifact همان tarball واقعی مورد استفاده برای آماده‌سازی store ایزوله را حذف می‌کند.
4. فقط کوچک‌ترین failure layer پشتیبانی‌شده را classify کن و `dependency_closure_record.csv` را کامل کن؛ output دقیق command را به evidence وصل کن.
5. برای AS4 از `python setup_fixture.py --transfer` استفاده کن. transfer fixture عمداً بیش از یک boundary تغییرکرده دارد و sequence پاسخ آماده ندارد.

مرز ایمنی: reset/probe فقط `TOL002-LAB1/learner/work` و `prepared_store/pnpm-store` محلی همان fixture را تغییر می‌دهند. host/global pnpm store، credential یا تنظیمات privileged تغییر نمی‌کند.

tarball بسته‌شده و integrity ثبت‌شده causal boundary مربوط به artifact sufficiency را قابل review می‌کنند. رفتار واقعی pnpm فقط با execution واقعی learner evidence است؛ نبود pnpm یعنی evidence ناقص، نه success شبیه‌سازی‌شده.
