lane؛ ورکتری گیت که کشهای بیلد رو با خودش میبره
خلاصهٔ کاملتر
مشکلی که lane سراغش رفته آشناست: git worktree add یه چکاوت تمیز میسازه، ولی هرچی گیت ignore کرده جا میمونه؛ یعنی target/، node_modules، محیطهای مجازی، فایلهای تولیدشده و .env محلی. نتیجهش اینه که باید از صفر نصب و بیلد کنی، درحالیکه همهٔ کشها همین الان روی دیسک گرمان.
راهحل lane کپیآنرایت فایلسیستمه: روی APFS از clonefile(2) و روی لینوکس از FICLONE استفاده میکنه، یعنی btrfs و XFS با reflink فعال. فایلهای ignoreشده بهجای کپی بایتبهبایت ارجاعی کلون میشن و فقط برای بلاکهایی که عوض میشن فضای تازه گرفته میشه. اگه فایلسیستم reflink نداشته باشه، lane یه ورکتری معمولی میسازه و کشها رو اصلاً کپی نمیکنه. ورکتریها هم زیر .lane/trees/ میشینن و با .git/info/exclude کنار گذاشته میشن، پس هیچوقت کامیت نمیشن.
بخش دوم ابزار «حافظه»ست: میتونی به یه فایل یا یه نماد یادداشت ماندگار بچسبونی. یادداشتها فایل Markdown سادهان زیر .lane/memory/ و با ریپو کامیت میشن، و به یه دکلریشن مثل fn verify، یه سرتیتر Markdown، یه بلاک کامپوننت یا کل فایل لنگر میخورن. قرار نیست بگن یه کامیت چی رو عوض کرده، قراره بگن چی باید درست بمونه. هر یادداشت هم فایل خودشه، پس دو تا شاخهٔ موازی سر یه فایل به هم نمیخورن.
با lane check وضعیت یادداشتها رو میگیری و تازگی فقط برای همون محدودهٔ لنگرخورده حساب میشه، نه کل فایل: fresh یعنی دستنخورده، content-changed یعنی پیادهسازی عوض شده، contract-changed یعنی خود دکلریشن، anchor-missing یعنی اون نماد دیگه پیدا نمیشه و unverifiable یعنی lane گرامری برای اون لنگر نداره. برای هر دریفت هم دقیقاً یکی از سه کار رو انجام میدی: confirm، replace یا retire. یادداشتهای بازنشسته پاک نمیشن و میرن تو .lane/attic/.
جریان کار روزمرهش کوتاهه:
lane new fix-login
lane why src/auth.rs
lane check
lane mergelane new شاخه و ورکتری رو با هم میسازه. برای ریپوهایی که شاخهٔ محافظتشده دارن به جای merge از lane push استفاده میکنی و بعد از لند شدن PR هم lane prune میزنی. lane با Rust نوشته شده، باینری آمادهٔ macOS و Linux روی arm64 و x86_64 داره و برای بیلد از سورس Rust نسخهٔ ۱.۸۵ یا بالاتر میخواد. نکتهٔ قابل توجهش هم اینه که خود ابزار هیچوقت مدل زبانی صدا نمیزنه، هرچند lane init یه پروتکل کوتاه برای ایجنتها به AGENTS.md اضافه میکنه.
نکات کلیدی:
- روی APFS از clonefile(2) و روی btrfs و XFS با reflink از FICLONE برای کلون ارجاعی فایلهای ignoreشده استفاده میکنه.
- بدون reflink فقط یه ورکتری معمولی ساخته میشه و کشها اصلاً کپی نمیشن.
- ورکتریها زیر .lane/trees/ و بیرون از کامیتان، یادداشتها زیر .lane/memory/ و داخل کامیت.
- lane check تازگی رو برای محدودهٔ لنگر حساب میکنه: fresh، content-changed، contract-changed، anchor-missing و unverifiable.
- با Rust نوشته شده؛ باینری آماده برای macOS و Linux، و Rust 1.85+ برای بیلد از سورس.
- ابزار هیچ مدل هوش مصنوعیای صدا نمیزنه؛ فقط lane install skill یه ورکفلو برای ایجنتهای کدنویس نصب میکنه.




