اگر امروز برای نوشتن کدهای خود به هوش مصنوعی تکیه میکنید، احتمالاً در حال از دست دادن همان لحظات «یافتم!» هستید که تخصص واقعی را میسازند. Lathe، پروژهای که در ۷ ژوئن ۲۰۲۶ توسط توسعهدهندهای به نام Dev Jarvis منتشر شد، قصد دارد این بازی را عوض کند و از مدلهای زبانی برای آموزش ساختن استفاده کند، نه برای فکر کردن بهجای شما.
بیشتر ابزارهای مدرن کدنویسی با هوش مصنوعی بر حداکثر کردن بهرهوری تمرکز دارند؛ یعنی تولید کل یک بلوک کد در چند ثانیه تا یک ویژگی (Feature) سریعاً عرضه شود. اگرچه این روش برای محیط تولید سریع است، اما «کدنویسی حسی» (Vibecoding) باعث حذف آن کلنجار رفتن ذهنی میشود که برای یادگیری یک حوزه جدید ضروری است. Lathe بهعنوان یک جنبش متقابل وارد میدان شده است؛ جایی که مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — نقش یک کاتالیزور آموزشی را دارد که نقشه را میدهد، اما زحمت پیادهسازی بر عهده انسان است.
فلسفه یادگیری عملی
انگیزه Dev Jarvis برای ساخت Lathe ریشه در علاقه مادامالعمر او به یادگیری عملی دارد. او در دهه ۲۰۰۰ میلادی، در دوران نوجوانی، برنامهنویسی را با ساخت بازیهای غیررسمی (Homebrew) برای کنسول پلیاستیشن پرتابل (PSP) و استفاده از زبانهای Lua و C++ آموخت. او در آن زمان بر جامعه توسعهدهندگان PSP و منابع اولیه اینترنتی مانند cplusplus.com (حدود سال ۲۰۰۷) تکیه میکرد.
او در طول یک دهه فعالیت به عنوان مهندس نرمافزار حرفهای، مهارتهای خود را با مطالعه وبلاگهای فنی و مخازن «ساخت-خودت-X» (build-your-own-x) ارتقا داد. این منابع — که از ساخت Raytracerها و پایگاههای داده سری زمانی (Timeseries DB) گرفته تا کتابخانههای ماتریس جبر خطی را شامل میشدند — منحنی «صفر تا یک» لازم برای کسب اعتمادبهنفس در حوزههای جدید را فراهم میکردند.
تا سال ۲۰۲۶، ظهور LLMها این فرآیند را تهدید کرد. اگرچه این مدلها بهرهور هستند، اما اغلب کار را برای کاربر انجام میدهند و آن تقلا و تلاشی را که منجر به «کلیک کردن» یا درک عمیق یک مفهوم میشود، حذف میکنند. Lathe آزمایشی است برای پیوند زدن تخصص گسترده یک LLM با فرآیند یادگیری سنتی و دستی. این ابزار بهویژه برای حوزههایی طراحی شده که بسیار ناشناخته هستند یا آنقدر جدیدند که هنوز منابع انسانی برای آنها نوشته نشده است؛ مانند نرمافزار 3D Slicer (که مستندات G-code آن بسیار پراکنده است و نویسنده در اینجا از reprap یاد میکند) یا توسعه نرمافزارهای جاسازیشده با زبان Zig.
مکانیسم اصلی
این سیستم بهصورت ترکیبی عمل میکند. Lathe مجموعهای از «مهارتهای LLM» (پرامپتها و دستورالعملهای سفارشی) را با یک رابط خط فرمان (CLI) نوشته شده با زبان Golang جفت میکند که یک کتابخانه محلی از آموزشها را مدیریت میکند. بهجای یک محیط چت ساده، این ابزار فایلهای مارکداون ساختاریافتهای تولید میکند که شما باید آنها را در یک رابط کاربری (UI) محلی مخصوص پیش ببرید. این تجربه شبیه به «عصر حجر» یادگیری است: عبور از متون فنی بهصورت کاملاً دستی.

برای شروع یک پروژه، شما از یک دستور اسلش در محیطهای پشتیبانیشده مانند Claude Code، Cursor یا Codex استفاده میکنید. برای مثال، دستور /lathe build a 3D Slicer in Erlang باعث میشود سیستم تحقیق کرده و یک سری آموزشی چندبخشی طراحی کند. سپس CLI این محتوا را در مسیر ~/.lathe/tutorials/ ذخیره کرده و از طریق یک وبسرور در آدرس http://localhost:4242 (که دارای حالت Dark Mode داخلی است) نمایش میدهد.
مهندسی تجربه یادگیری
طبق گزارش منتشر شده در GitHub، Lathe صرفاً متن تولید نمیکند، بلکه فرمت آموزش را برای حداکثر ماندگاری در ذهن مهندسی کرده است و شامل موارد زیر است:
- یادداشتهای کناری (Side-notes): پرامپتهای ادغامشدهای در سراسر محتوا که خواننده را مجبور میکند درباره پیادهسازی عمیقتر فکر کند.
- نقاط بازرسی (Checkpoints): بلوکهای خاص
## Checkpointکه برای تأیید استفاده میشوند تا اطمینان حاصل شود کد واقعاً اجرا میشود. - تمرینها (Exercises): چالشهای «بر عهده خواننده» در پایان هر آموزش برای سنجش درک مطلب.
- ردیابی منبع (Provenance Tracking): هر آموزش، مدل خاص استفاده شده (مثلاً Claude Opus 4.8) و URLهای پژوهشی مورد استفاده را ثبت میکند تا کاربران بتوانند حقایق را تأیید کنند.

جزئیات فنی و پیادهسازی
CLI و ذخیرهسازی:
CLI ابزار Lathe با زبان Go نوشته شده و مالک تمام وضعیتهای پایدار (Durable State) است. این CLI هرگز مستقیماً با LLM تماس نمیگیرد. در عوض، ساختار ذخیرهسازی را در ~/.lathe/tutorials/ مدیریت میکند، جایی که هر آموزش پوشه مخصوص خود را دارد که شامل یک فایل metadata.json و بخشهای مارکداون (مانند part-01.md و part-02.md) است.
ساختار متادیتا:
فایل metadata.json دادههای حیاتی هر پروژه را ردیابی میکند، از جمله:
- فیلدهای اصلی: نامک (Slug)، عنوان، موضوع و تاریخ ایجاد (مثلاً
2026-05-03T19:00:00Z). - وضعیت (Status): ردیابی وضعیت آموزش:
unverified(پیشفرض)،verifying(در حال تأیید)،verified(تأیید شده)،failed(شکست خورده)،skipped(رد شده)، یاextending(زمانی که/lathe-extendدر حال نوشتن بخش جدید است). - ابزارها: لیستی از زبانها و زنجیره ابزارها (مثلاً Zig نسخه 0.13.0) که در UI به صورت تراشههای نسخه (Version Chips) نمایش داده میشوند.
- منابع: سوابق دائمی مسیر پژوهشی استفاده شده توسط مهارت تولید، که از طریق
lathe store --source <url>ثبت میشود. - نویسندگی: مدل و «صدای» خاص مورد استفاده برای متن.
- مخزن: فیلدهای اختیاری
repoوrepo_branchبرای آموزشهایی که بر اساس یک مخزن گیت خاص نوشته شدهاند.
مجموعه مهارتها (Skill Set):
تعاملات از طریق مجموعهای از مهارتهای تعاملی LLM صورت میگیرد. این مهارتها در باینری بستهبندی شدهاند و میتوانند بهصورت سراسری یا برای هر پروژه نصب شوند. مهارتهای اصلی عبارتند از:
/lathe: بخش اول (part-01.md) را مینویسد./lathe-extend: بخش بعدی سری را اضافه میکند و URLهای جدید را از طریقlathe extend-commit --sourceبه مسیر پژوهشی موجود اضافه میکند./lathe-verify: آموزش را اجرا میکند تا تأیید شود کد کامپایل و اجرا میشود./lathe-ask: به سوالات خاص درباره بخشی که در حال حاضر میخوانید پاسخ میدهد./lathe-tag: تگهای جستجو را به آموزشهای موجود برای سازماندهی بهتر اضافه میکند.
حلقه تأیید (Verification Loop):
یکی از بزرگترین موانع در محتوای تولید شده توسط AI، توهم (Hallucination) است. Lathe این مشکل را با تبدیل تأیید به یک فرآیند تعاملی و اختیاری حل میکند. وقتی /lathe-verify اجرا میشود، LLM هر مرحله از آموزش را در یک دایرکتوری موقت (mktemp -d) تست میکند.

این قراردادِ دایرکتوری موقت تضمین میکند که آثار ساخت (Build Artifacts) وارد مخزن واقعی کاربر نشوند، هرچند نویسنده اشاره میکند که این یک «ایزولاسیون نرم» است و نه یک مرز امنیتی سختگیرانه. اگر مرحلهای شکست بخورد، سیستم lathe verify-result را فرا میخواند تا بخش شکستخورده، شماره مرحله و خروجی خطا را در فایل verify-result.json ثبت کند که سپس در UI به عنوان یک پنل خطا نمایش داده میشود.
اگر ابزاری مورد نیاز (مثلاً باینری Zig) نصب نباشد، اجرا به جای «شکست»، به عنوان «رد شده» (⚠️ Skipped) گزارش میشود تا تفاوت بین یک آموزش خراب و یک محیط ناقص مشخص شود. این یک حلقه بازخورد ایجاد میکند که در آن کاربر میتواند با /lathe-ask درباره یک پیادهسازی عجیب سوال کند یا به LLM بگوید آموزش را بر اساس خطا بهروزرسانی کند. نویسنده پیشنهاد میکند برای این وظایف از بزرگترین مدلهای «متفکر» (Thinking Models) موجود (مانند Opus یا GPT-5 Codex) استفاده شود، زیرا در پژوهش و طراحی مفاهیم ملموس از ابتدا تا انتها موفقترند.
سفارشیسازی «صدا» (Voice):
برای فرار از لحن خشک یا بیش از حد چاپلوسانهی معمول هوش مصنوعی، Lathe مفهوم «صداها» را معرفی کرده است. یک «صدا» لحن متن را کنترل میکند بدون اینکه پژوهش، دقت یا ساختار را تغییر دهد. دو صدای پیشفرض عرضه میشوند:
- plainspoken: پیشفرض؛ صادق و دقیق، و اجتناب از انسانانگاری یا ساختن داستانهای اولشخص جعلی.
- companion: یک «دوست صمیمی کنار کیبورد» با لحنی گرم و کمی طناز.

کاربران میتوانند پیشفرض را از طریق lathe voice set-default companion تغییر دهند یا با lathe voice list لیست صداها را ببینند. همچنین میتوان مشخصات کامل یک صدا را با lathe voice show companion بررسی کرد.
کاربران میتوانند با دستور /lathe-voice صداهای سفارشی بسازند. این فرآیند تعاملی، از کاربر درباره سطح زبان (Register)، شخص و شوخطبعی سوال میکند تا یک مشخصات (Spec) تهیه کند که سپس از طریق lathe voice add <name> --file در مسیر ~/.lathe/voices/ ذخیره میشود. برای جلوگیری از تولید محتوای بیکیفیت (AI Slop)، صداهای سفارشی بهشدت از جعل هویت افراد واقعی، ادعای مدارک جعلی یا انکار نویسندگی LLM منع شدهاند. هر صدا با یک پیشطرح (Preamble) ثابت پوشانده شده که این قوانین را در زمان تولید اجرا میکند.
نصب و سازگاری
Lathe بهصورت یک باینری مستقل توزیع میشود. روشهای نصب عبارتند از:
- Homebrew (macOS): دستور
brew install devenjarvis/tap/lathe(به صورت cask). - اسکریپت نصب:
curl -sSf https://raw.githubusercontent.com/devenjarvis/lathe/main/install.sh | sh. - Go (نسخه ۱.۲۵ به بالا): دستور
go install github.com/devenjarvis/lathe@latest. - از سورس: کلون کردن مخزن گیتهاب، رفتن به دایرکتوری و اجرای
go build -o lathe.
پس از نصب، کاربران باید مهارتهای bundled را نصب کنند تا Claude Code، Cursor یا Codex بتوانند آنها را شناسایی کنند. گزینههای نصب عبارتند از:
lathe skills install: نصب در./.claude/skills/<name>/SKILL.md(مخصوص پروژه).lathe skills install --user: نصب در~/.claude/skills/<name>/SKILL.md(برای همه پروژهها).lathe skills install --agent cursor: نصب به عنوان دستورات اسلش در./.cursor/commands/<slug>.md.lathe skills install --agent codex: نصب در./.agents/skills/<name>/SKILL.md.lathe skills install --agent all: نصب برای هر سه محیط Claude Code، Cursor و Codex.
در حالی که نویسنده عمدتاً روی Claude Code در مک تست کرده است، ابزار برای اجرا در محیطهای مختلف طراحی شده است. نویسنده اشاره میکند که دسترسی بدون سر (headless) به claude -p قرار است از ۱۵ ژوئن ۲۰۲۶ دارای محدودیت هزینه (Metered) شود، به همین دلیل مهارتها اکنون بهصورت تعاملی اجرا میشوند.

مدیریت کتابخانه
با رشد کتابخانه شما، UI محلی جستجو و فیلترینگ سمت کلاینت را فراهم میکند تا تجربه سریع و آفلاین باقی بماند. شما میتوانید بر اساس عنوان، موضوع، تگها، مخزن یا نسخههای ابزار جستجو کنید. گزینههای مرتبسازی شامل جدیدترین، قدیمیترین یا حروف الفبا است. فیلترینگ بر اساس وضعیت (تأیید نشده، تأیید شده، شکست خورده)، نوع (تکقسمتی در مقابل سری)، تگ و نسخه در دسترس است. پورت پیشفرض ۴۲۴۲ است اما با فلگ --port قابل تغییر است.



این انتخاب معماری تضمین میکند که LLM هرگز دسترسی مستقیم به وضعیت پایدار شما ندارد؛ CLI مالک ذخیرهسازی است و LLM صرفاً از طریق مهارتهای ارائه شده با آن وضعیت تعامل میکند. برای مثال، دکمههای وب برای تأیید، صرفاً دستور دقیق مهارت را به کاربر میدهند تا آن را در جلسه LLM خود پیست کند.
از دیدگاه تحریریه، Lathe نشاندهنده تغییری در نگاه ما به عاملهای هوش مصنوعی است: حرکت از «عامل بهعنوان جایگزین» به «عامل بهعنوان مدرس». با کند کردن عمدی فرآیند و الزام به تایپ دستی، Lathe از «اثر تولید» (Generation Effect) استفاده میکند؛ پدیدهای روانشناختی که میگوید اطلاعات اگر توسط ذهن تولید شوند، بهتر از زمانی که صرفاً خوانده شوند، به خاطر میمانند.
برای توسعهدهنده، این بدان معناست که ارزش دیگر در خروجی (کد) نیست، بلکه در فرآیند (یادگیری) است. در عصری که AI میتواند یک نرمافزار پیچیده 3D Slicer را در ثانیهها بنویسد، تنها مزیت رقابتی باقیمانده برای انسان، توانایی درک «چرایی» عملکرد آن و نحوه عیبیابی در زمان شکست AI است.
اگر احساس میکنید مهارتهای کدنویسی شما بهدلیل اتکای زیاد به Copilot در حال تحلیل رفتن است، Lathe را برای غوطهور شدن در یک زبان ناشناخته مثل Zig یا یک حوزه پیچیده مثل DSP امتحان کنید. هدف این نیست که سریعتر محصول تحویل دهید، بلکه این است که باهوشتر شوید.




گفتگو