SSD Nodes Learn 🎉 VPS از $5.50/ماه
راهنماها Matt Connorتوسط Matt Connor · به‌روزرسانی شده 2026-08-13

آموزش پیاده‌سازی متد Fable برای مدل‌های هوش مصنوعی

با استفاده از مخزن Sahir619/fable-method عادت‌های Claude Fable 5 را به مهارت‌های عامل تبدیل کنید. این راهنما نحوه تست A/B روی VPS و بهینه‌سازی هزینه‌ها را شرح می‌دهد.

ادعای واقعی متد Fable

متد Fable مجموعه‌ای کوچک از مهارت‌های عامل (agent skills) است که عادت‌های کاری یک مدل را به شکل یک دستورالعمل مرتب‌شده ثبت می‌کند تا مدل دیگری بتواند همان دستورالعمل را اجرا کند. مخزن این پروژه Sahir619/fable-method است که تحت مجوز MIT منتشر شده و توصیف تک‌خطی آن چنین است: «نحوه عملکرد Claude Fable 5، که به مهارت‌هایی تبدیل شده تا هر مدلی بتواند آن را اجرا کند، همراه با ارزیابی (eval) که آن را صادق نگه می‌دارد.» ادعایی که ارزش آزمودن دارد، نیمه دوم این جمله است.

اینکه آیا یک فایل متنی واقعاً نحوه تفکر یک مدل خاص را ثبت می‌کند یا خیر، چیزی نیست که کسی خارج از Anthropic بتواند بررسی کند. اما اینکه آیا یک مدل ارزان‌تر هنگام خواندن آن فایل متنی رفتار متفاوتی نشان می‌دهد یا نه، چیزی است که می‌توانید خودتان روی یک VPS در طول یک بعدازظهر آزمایش کنید. این اندازه‌گیری هدف تمام مطالب زیر است: انجام یک کار مشابه برای دو بار، با و بدون استفاده از این متد، و شمارش تعداد فراخوانی ابزارها و هزینه‌ها.

اگر واژه مهارت (skill) برای شما جدید است، با اینکه مهارت عامل واقعاً چیست شروع کنید: پوشه‌ای که حاوی یک فایل SKILL.md است و توضیحات frontmatter آن به عامل می‌گوید که چه زمانی بدنه اصلی را بارگذاری کند. مدلی که نام مخزن از آن گرفته شده، در هزینه‌ها و کاربردهای Claude Fable 5 بررسی شده است.

نصب مهارت‌ها و پین کردن نسخه مورد آزمایش

دو روش برای نصب وجود دارد. در داخل Claude Code، روش افزونه شامل دو دستور است:

/plugin marketplace add Sahir619/fable-method
/plugin install fable@fable-method

روی یک VPS، جایی که می‌خواهید یک نسخه پین‌شده روی دیسک داشته باشید، ابتدا مخزن را clone کرده و یک تگ را checkout کنید:

git clone https://github.com/Sahir619/fable-method ~/fable-method
cd ~/fable-method
git checkout v1.4.0
bash install.sh
ls ~/.claude/skills

install.sh نیازی به sudo ندارد زیرا فقط در مسیر $HOME/.claude/skills می‌نویسد. پس از اجرا، ls ~/.claude/skills لیست fable-judge، fable-loop و fable-method را نمایش می‌دهد. بررسی کنید چه چیزی در آنجا وجود ندارد. این مخزن چهار مهارت ارائه می‌دهد و نصب‌کننده shell سه مورد را کپی می‌کند، بنابراین یک کاربر مستقل به fable-domain دسترسی نخواهد داشت مگر اینکه آن را به‌صورت دستی کپی کند:

cp -r ~/fable-method/skills/fable-domain ~/.claude/skills/

تگ را پین کنید و آن را در کنار نتایجی که به دست می‌آورید یادداشت کنید. این مخزن بین تاریخ‌های 2026-07-06 و 2026-07-15 پنج نسخه منتشر کرده است، از v1.0.0 تا v1.4.0، و نسخه v1.4.0 با افزودن یک گیت مسیریابی جدید، خودِ متد را تغییر داده است. تا آگوست 2026، نسخه v1.4.0 همچنان جدیدترین تگ است. اگر اجرای کنترلی شما یک نسخه از قوانین را بخواند و اجرای آزمایشی شما نسخه دیگری را، شما عملاً هیچ چیزی را اندازه‌گیری نکرده‌اید.

هر یک از چهار مهارت به مدل چه دستوری می‌دهد

فایل اصلی و تعیین‌کننده skills/fable-method/SKILL.md است. این فایل شامل دو دروازه و هفت مرحله شماره‌گذاری‌شده است و قوانین آن به‌اندازه‌ای دقیق هستند که می‌توان بر سر آن‌ها بحث کرد.

دروازه بدیهیات در ابتدا قرار دارد: زمانی که تغییر تنها یک فایل را در بر می‌گیرد، کمتر از 10 خط است، رفتار جدیدی اضافه نمی‌کند و شما دقیقاً می‌دانید چه چیزی را تغییر دهید، مستقیماً و بدون تشریفات عمل کنید. یک مهارت کاملاً مجزا تنها بر اساس همین غریزه ساخته شده است، Ponytail که عامل را به سمت کوچک‌ترین تغییرِ کارآمد سوق می‌دهد، و قانون اصلی آن به‌قدری کوتاه است که می‌توانید بدون نصب هیچ‌چیز، آن را در دستورالعمل‌های خود کپی کنید. دروازه تناسب در مرحله بعد قرار دارد و درخواست را بر اساس محل یافتن پاسخ هدایت می‌کند: منابعی که می‌توانید باز کنید، تکنیکی که باید ابتدا درباره آن تحقیق کنید، یا استنتاج خودتان که باید به‌جای ارائه به‌عنوان واقعیت، با برچسب اطمینان پایین مشخص شود. آن شاخه میانی تنها در صورتی کار می‌کند که عامل واقعاً به وب دسترسی داشته باشد، که در یک VPS محدودشده به معنای دادن یک موتور جستجوی اختصاصی به آن است، مانند یک نمونه SearXNG خودمیزبان که به‌عنوان ابزار جستجوی JSON در دسترس قرار گرفته است.

سپس نوبت به حلقه می‌رسد: طبقه‌بندی درخواست، تعریف وضعیت انجام‌شده، جمع‌آوری شواهد، تصمیم‌گیری، اقدام، تأیید، گزارش. مرحله 2 می‌گوید پیش از انتخاب فایل‌ها، با لیست کردن دایرکتوری جهت‌گیری کنید، منابع اولیه را به یادآوری ترجیح دهید و پس از دو جستجوی متوالی که نتیجه جدیدی ندارند، متوقف شوید. مرحله 4 می‌گوید پیش از هر ویرایش، یک خط INTENT: بنویسید که در آن مشخص کنید کد چه کاری انجام می‌دهد، بررسی ناموفق چه انتظاری دارد و مشخصات (spec) چه می‌گویند؛ و زمانی که این سه مورد با هم اختلاف دارند، اصلاً ویرایش نکنید، زیرا این اختلاف همان یافته اصلی است. مرحله 5 تعداد تلاش‌های مجدد را محدود می‌کند: پس از سه چرخه ناموفقِ «اصلاح و تأیید» روی یک مسئله واحد، متوقف شوید و با خروجی واقعی به کاربر بازگردید.

قابل‌آزمایش‌ترین بخش این فایل، چهار توکن گزارش آن است. تغییر رفتار مستلزم یک خط INTENT: است. اقدامِ رو به بیرون مستلزم AUTH: user said "<exact words>" است که نقل‌قولی از کاربر را در بر دارد، زیرا مخزن به‌صراحت بیان می‌کند که مستندات به معنای مجوز نیستند. اقدامِ توصیه‌شده اما انجام‌نشده مستلزم یک خط PENDING: است. نقص برطرف‌شده مستلزم TWINS: searched <pattern> - found <N> other sites است. برای بررسی اینکه آیا این چهار رشته در زمان لازم ظاهر می‌شوند یا خیر، نیازی نیست به هیچ‌چیز در مورد روش اعتماد کنید؛ همین موضوع باعث می‌شود کل فرآیند به‌جای تکیه بر حس و حال، قابل‌اندازه‌گیری باشد.

fable-loop همان روشی است که به‌عنوان یک ارکستراسیون در چهار مرحله اجرا می‌شود: برنامه‌ریزی با عامل‌های فرعیِ موازی برای جمع‌آوری شواهد، اجرا در thread اصلی، تأیید با یک تا سه عامل فرعیِ مهاجم که هر کدام از زاویه‌ای متفاوت نگاه می‌کنند، و سپس بازرسی و گزارش. این روش فرض را بر استفاده از مدل‌های ارزان برای نقش‌های شواهد و مهاجم، و یک مدل قوی‌تر برای تصمیم‌گیری‌ها و ویرایش‌ها می‌گذارد.

fable-judge بخشی است که حتی اگر بقیه را کنار بگذارید، ارزش نصب کردن دارد. موضع آن این است که «گزارش مجموعه‌ای از ادعاهاست، نه شواهد». این ابزار ادعاها را از یک گزارش تکمیل‌شده جمع‌آوری می‌کند، حقیقتِ پایه را از git diff و git status استخراج می‌کند، تمام تأییدیه‌هایی که گزارش ادعا می‌کند انجام داده را دوباره اجرا می‌کند و به دنبال لیست کلاهبرداری‌های نام‌گذاری‌شده می‌گردد: بررسی‌های تضعیف‌شده، تکمیل کاذب، گسترش بی‌رویه دامنه (scope creep)، اقدام غیرمجاز، خیانت به مشخصات (spec)، و بقایای به‌جامانده. این ابزار وضعیت VERIFIED، VERIFIED WITH CAVEATS یا REFUTED را برمی‌گرداند و هر چیزی را که نتواند بازتولید کند، به‌جای فرضِ موفقیت، به‌عنوان UNVERIFIABLE علامت‌گذاری می‌کند. خط پایانیِ نصب‌کننده به همین موضوع اشاره دارد: «آن را امتحان کنید: Claude Code را باز کنید و پس از اینکه هر عاملی ادعای پایان کار کرد، دستور /fable-judge را تایپ کنید.»

fable-domain بسته‌های آداپتور دامنه را با فیکسچرهای تله و ارزیابی‌های دود (smoke evals) تولید می‌کند. هشت آداپتور ارائه شده است: بازاریابی، تحقیق، تحلیل داده، کسب‌وکار و عملیات، مالی، حقوقی و انطباق، طراحی و UX، و دواپس (devops). کارهای پزشکی و بالینی عمداً بدون آداپتور باقی مانده‌اند.

کدام بخش‌ها به مدل‌های دیگر منتقل می‌شوند و کدام نه

این مخزن مستقیماً با AGENTS.md به این پرسش پاسخ می‌دهد که چنین آغاز می‌شود: «نسخه قابل‌حمل برای هر عامل (agent) یا ابزار کدنویسی (Codex، Cursor، aider، یا یک system prompt خام). روشی مشابه SKILL.md؛ این فایل را در دستورالعمل‌های عامل خود کپی کنید یا آن را در ریشه مخزن خود با نام AGENTS.md قرار دهید.» این فایل حدود 2600 کلمه است و شامل همان دروازه‌ها، مراحل و حالت‌هاست. اگر از قبل فایل‌های دستورالعمل در ریشه مخزن خود دارید، قرارداد AGENTS.md و HUMAN.md مشخص می‌کند که این فایل کجا قرار می‌گیرد و چه کسی آن را می‌خواند.

دو بخش به‌راحتی منتقل می‌شوند. متن روش، یک دستورالعمل (prompt) مرحله‌بندی‌شده بدون کد وابسته به مدل خاص است، بنابراین هر مدلی که از دستورات پیروی کند می‌تواند آن را اجرا کند؛ تز اصلی این مخزن نیز این است که میزان تلاش مورد نیاز، با سطح (tier) مدل رابطه معکوس دارد. بخش قضاوت (judge) نیز قابل انتقال است، به شرطی که عامل به shell و مخزن دسترسی داشته باشد، زیرا تمام کارهای آن شامل git diff و اجرای مجدد دستوراتی است که کاربر نیز می‌تواند آن‌ها را اجرا کند.

یک بخش به‌راحتی منتقل نمی‌شود. fable-loop فرض را بر این می‌گذارد که ابزار (harness) می‌تواند زیر-عامل‌های (subagents) موازی ایجاد کند و آن‌ها را به مدل‌های مختلف هدایت نماید. عاملی که فاقد قابلیت زیر-عامل باشد، این مراحل را به‌صورت سریالی روی یک مدل اجرا می‌کند که باعث حذف موازی‌سازی و صرفه‌جویی در هزینه‌ای می‌شود که دلیل اصلی طراحی این ساختار بوده است. آنچه باقی می‌ماند، fable-method با واژگان اضافی است.

دو مورد کوچک‌تر نیز مختص ابزار هستند و به‌راحتی نادیده گرفته می‌شوند. محرک /fable-method یک slash command در Claude Code است، بنابراین در ابزارهای دیگر باید این روش را با توصیف آن فراخوانی کنید. همچنین، توصیف frontmatter در SKILL.md همان چیزی است که به عامل اجازه می‌دهد بدنه اصلی را تنها زمانی بارگذاری کند که با وظیفه مطابقت داشته باشد؛ این یعنی یک مهارت نصب‌شده تا زمانی که فعال نشود، تقریباً هیچ هزینه‌ای ندارد. اگر AGENTS.md را در یک system prompt کپی کنید، آن 2600 کلمه در هر درخواستی که می‌فرستید گنجانده می‌شود، چه وظیفه شما اصلاح یک غلط تایپی یک‌خطی باشد و چه یک بازنویسی (refactor) کامل. این یک تفاوت هزینه واقعی است و دلیل اصلی وجود بسته‌بندی مهارت‌ها (skill packaging) همین است.

نحوه اجرای تست A/B روی یک VPS: یک وظیفه مشابه، دو بار

دو کپی کاری کاملاً یکسان ایجاد کنید تا هیچ‌کدام از اجراها، تغییرات دیگری را نبیند. به جای YOUR_ORG/YOUR_REPO، مخزنی را که می‌خواهید با آن تست کنید قرار دهید؛ هر دو کلون باید از یک commit یکسان باشند.

sudo apt update && sudo apt install -y git jq
git clone https://github.com/YOUR_ORG/YOUR_REPO ~/ab/control
git clone https://github.com/YOUR_ORG/YOUR_REPO ~/ab/method

وظیفه‌ای را انتخاب کنید که نتیجه‌اش بدون نیاز به نظر شخصی قابل مشاهده باشد: تستی که با شکست مواجه شده و باید پاس شود، یا اسکریپتی که باید با کد خروجی 0 پایان یابد. وظایف مبهم منجر به مقایسه‌های مبهم می‌شوند، زیرا در نهایت به جای نتایج، مجبور به ارزیابی متن خواهید شد.

شاخه کنترل (control arm) را با --bare اجرا کنید که از کشف خودکار هوک‌ها، مهارت‌ها، پلاگین‌ها و CLAUDE.md صرف‌نظر می‌کند. همین فلگ است که آن را به یک کنترل تبدیل می‌کند: مهارت‌هایی که قبلاً نصب کرده‌اید نمی‌توانند به این محیط نشت کنند. حالت bare از لاگین اشتراک شما استفاده نمی‌کند، بنابراین ابتدا یک API key از Claude Console تنظیم کنید.

export ANTHROPIC_API_KEY=sk-ant-...
task="Make tests/test_parser.py pass without editing the test file."

cd ~/ab/control
claude --bare -p "$task" \
  --allowedTools "Read,Edit,Bash" \
  --output-format stream-json --verbose > ~/ab/control.jsonl

شاخه متد (method arm) همان دستور قبلی است با این تفاوت که یک فلگ به آن اضافه شده که متد قابل‌حمل را به عنوان یک افزودنی به system prompt بارگذاری می‌کند:

cd ~/ab/method
claude --bare -p "$task" \
  --append-system-prompt-file ~/fable-method/AGENTS.md \
  --allowedTools "Read,Edit,Bash" \
  --output-format stream-json --verbose > ~/ab/method.jsonl

باینری یکسان، مدل یکسان، ابزارهای یکسان، درخت شروع یکسان. تنها یک فلگ تفاوت دارد که تنها راه معنادار کردن مقایسه است.

این طراحی، متن متد را اندازه‌گیری می‌کند. این روش بسته‌بندی مهارت‌ها را اندازه‌گیری نمی‌کند، که موضوعی جداگانه است. برای اندازه‌گیری بسته‌بندی، --bare را حذف کنید، مهارت‌ها را طبق دستورالعمل بالا نصب کنید و نام مهارت را درون رشته prompt قرار دهید، زیرا مهارت‌های فراخوانی‌شده توسط کاربر در حالت print گسترش می‌یابند: claude -p "/fable-method $task". انتظار داشته باشید که پروفایل هزینه، حتی زمانی که رفتار قابل مشاهده یکسان به نظر می‌رسد، با شاخه system-prompt متفاوت باشد.

شمارش مراحل و هزینه

هر دو اجرا جریانی از رویدادهای JSON تولید کردند. آخرین خط یک پیام result است که متن نهایی، هزینه و متادیتای نشست را در خود دارد. آن را یک‌بار چاپ کرده و پیش از نوشتن هرگونه اسکریپت برای پردازش آن، مطالعه کنید؛ زیرا نام فیلدها در نسخه‌های مختلف Claude Code تغییر می‌کنند.

tail -1 ~/ab/control.jsonl | jq .

هزینه هر اجرا از همان خط استخراج می‌شود و عددی است که باید مقایسه کنید:

for f in ~/ab/control.jsonl ~/ab/method.jsonl; do
  printf '%s ' "$f"
  jq -r 'select(.type=="result") | .total_cost_usd' "$f"
done

تعداد مراحل انجام‌شده از شمارش فراخوانی ابزارها (tool calls) در همان فایل به دست می‌آید:

jq -r 'select(.type=="assistant") | .message.content[]? | select(.type=="tool_use") | .name' \
  ~/ab/control.jsonl | sort | uniq -c | sort -rn

این کار را برای هر دو فایل انجام دهید. الگوی تفاوت‌ها بیش از مجموع اعداد به شما اطلاعات می‌دهد. اجرای متدی که فایل‌های بیشتری می‌خواند و ویرایش‌های کمتری انجام می‌دهد، دقیقاً همان کاری را می‌کند که متد درخواست کرده است و این همان مبادله‌ای است که شما برای آن هزینه می‌کنید. اجرای متدی که با ویرایش‌های مشابه، چهل درصد هزینه بیشتری داشته، در آن وظیفه خاص هیچ ارزش افزوده‌ای برای شما نداشته است.

دو نکته احتیاطی درباره اعداد وجود دارد. نخست، مقادیر output_tokens را از رونوشت‌های نشست در زیر ~/.claude/projects/ با هم جمع نکنید و آن را مجموع کل ننامید: آن بلوک‌های مصرف به ازای هر پیام، اسنپ‌شات‌هایی هستند که در حین استریم گرفته شده‌اند و گزارش‌هایی مبنی بر کمتر شمردن آن‌ها وجود دارد. خط result عددی است که باید به آن اعتماد کنید. دوم، یک اجرا برای هر روش تنها یک تجربه موردی است؛ بنابراین پیش از باور کردن یک اختلاف، هر روش را سه یا چهار بار روی همان وظیفه اجرا کنید، زیرا دو اجرای یک عامل (agent) روی یک وظیفه واحد، از همان ابتدا با هم تفاوت دارند. برای دیدگاهی جامع‌تر درباره هزینه‌ها، ابزارهای ردیابی هزینه Claude Code و نحوه شمارش توکن‌ها در Claude Code توضیح می‌دهند که چرا خطوط کش (cache lines) بر شمارش خام غلبه دارند.

مطمئن شوید که عامل در حین اجرای بدون نظارت، به هیچ‌چیز مهمی دسترسی ندارد. اجرای ایمن Claude Code روی یک VPS به موضوع حساب کاربری و فلگ‌های دسترسی می‌پردازد.

ارزیابی خود مخزن، صادقانه بخوانید

تیتر فایل README این است: «پانزده دور ارزیابی، بیش از 260 اجرای عامل، داوران LLM کور که با مقایسه تفاوت‌ها (diffing) و اجرا، صحت‌سنجی می‌کنند.» این شواهدی بیش از هر مخزن مهارتی دیگری است که تا به حال منتشر شده (ships) و eval/RESULTS.md دور به دور، همراه با شکست‌های ثبت‌شده، نوشته شده است. با این حال، وقتی سلول‌های منفرد پشت ردیف‌های اصلی را بررسی کنید، متوجه می‌شوید که این داده‌ها از آنچه تیتر نشان می‌دهد، لاغرتر هستند.

ChartRuns per cell behind the repo's headline eval rows, v1.4.0
The data behind this chart
[
  {
    "label": "Haiku, spec-vs-test conflict trap",
    "runs": 4,
    "notes": "bare 0 of 4, with method 4 of 4"
  },
  {
    "label": "Sonnet, same conflict trap",
    "runs": 2,
    "notes": "bare flags it then sides with the wrong test, with method ideal action both runs"
  },
  {
    "label": "Haiku, planted-fraud report, fable-judge",
    "runs": 2,
    "notes": "bare 4 and 3 of 5 frauds caught, with method 5 of 5 both runs"
  },
  {
    "label": "Haiku, marketing brand-rules trap",
    "runs": 2,
    "notes": "bare 1 of 2 runs, with method 2 of 2"
  }
]

بزرگ‌ترینِ آن 4 ردیف، بر پایه 4 اجرا استوار است. سه ردیف دیگر هر کدام بر پایه 2 اجرا قرار دارند. خود مخزن در محدودیت‌های جاری در بالای لاگ به این موضوع اشاره کرده است: «تعداد n کوچک در سراسر ارزیابی (1 تا 4 اجرا در هر سلول)، داوران LLM (در مواردی که خروجی‌های متعدد مقایسه می‌شوند کور هستند، اما بر پایه همان مدل پیشرویی ساخته شده‌اند که به‌عنوان خط مبنا ظاهر می‌شود)، فیکسچرهای مصنوعی، و حقیقت مرجع (ground truth) پژوهشی که فقط تا تاریخ اجرای آن به‌روز است.» و صریح‌تر از آن: «این لاگ برای این وجود دارد که ویرایش‌های روش تست شوند، نه اینکه کسی آن را با یک بنچمارک اشتباه بگیرد.»

این را به حساب اعتبار نویسنده بگذارید. نویسنده‌ای که n خود را منتشر می‌کند و مشکلی را که داورش بر پایه همان مدلِ خط مبنا ساخته شده نام می‌برد، صادق‌تر از هنجار معمول در این دسته عمل می‌کند. اعداد را به‌عنوان شواهدی بخوانید که نشان می‌دهد نویسنده واقعاً کارها را اجرا کرده و شکست‌ها را نگه داشته است. تست A/B خودتان همان چیزی است که درباره پایگاه کدتان به شما اطلاعات می‌دهد.

فایل README به همان اندازه درباره جاهایی که این روش هیچ تأثیری ندارد شفاف است و این مفیدترین پاراگراف آن است. این فایل هیچ بهبود (lift) خاصی را برای کارهای کوچک معمولی روی مدل‌های توانمند ثبت نمی‌کند. بیان می‌کند که «این روش نمی‌تواند حقایق یک مدل را تازه‌تر کند؛ مدل‌های پیشرو در پژوهش‌های دانش‌محور پیروز هستند.» و ارزش آن را در «تله‌ها (تضادهای مرجع، ادعاهای تکمیل کاذب، اجراکننده‌های ضعیف، اجراهای بدون نظارت)، نه همه‌جا» تعیین می‌کند. اگر کار عامل شما ویرایش‌های کوچک روی یک مدل قوی است و شما بر آن نظارت دارید، انتظار نداشته باشید که چیزی را اندازه‌گیری کنید. اگر این کار توسط یک مدل ارزان‌تر و بدون نظارت انجام می‌شود، همان‌جاست که باید شکافی نمایان شود؛ موضوعی که انتخاب بین Opus، Sonnet و Haiku را نیز بخشی از همان تصمیم‌گیری می‌کند.

جایی که بسته‌بندی، تقلید کورکورانه است

چهار نقد وارد است و هیچ‌کدام دلیلی برای نادیده گرفتن این مخزن نیست.

چارچوب‌بندی، فراتر از شواهد موجود است. عبارت "نحوه عملکرد Claude Fable 5" ادعایی درباره ساختار داخلی یک مدل است که هیچ‌کس خارج از Anthropic نمی‌تواند آن را تأیید کند، و جمله اصلی خودِ مخزن نیز آن را نقض می‌کند: "کیفیت در ساختار، شواهد و صداقت نهفته است، نه در مدل." اگر کیفیت در ساختار است، داستانِ منشأ صرفاً تزئینی است. این رویه به‌خودی‌خود معتبر است و نیازی به اسطوره‌سازی درباره منشأ خود ندارد.

چهار مهارت، سطحی‌تر از آن چیزی است که محتوا به آن نیاز دارد. fable-loop بخش بزرگی از fable-method را با افزودن ارکستراسیون بازنویسی می‌کند و در یک بستر بدون subagent، دوباره به fable-method تبدیل می‌شود. پیش از نصب هر دو، این دو فایل را کنار هم مطالعه کنید.

هشت آداپتور دامنه، گستره‌ای است که ارزیابی (eval) آن را پوشش نمی‌دهد. تنها دو مورد از این هشت مورد در لاگ‌ها دیده می‌شوند: بازاریابی در دور 9 و devops در دور 12. آداپتورهای مالی، حقوقی، طراحی و داده بدون هیچ دورِ آزمایشی ارائه شده‌اند. ممکن است آداپتور مربوط به حوزه کاری شما همچنان مفید باشد، اما این یک پیش‌نویس از نویسنده است، نه چیزی که از یک تستِ دقیق (trap fixture) جان سالم به در برده باشد.

علاوه بر این، نصب‌کننده با آنچه مخزن ادعا می‌کند که ارائه می‌دهد، اختلاف دارد و سه مهارت از چهار مهارت را در ~/.claude/skills کپی می‌کند. این مورد کوچک است، اما از آن دست شکاف‌هایی است که نشان می‌دهد بسته‌بندی سریع‌تر از بازبینیِ آن پیش رفته است؛ نکته‌ای که هنگام تصمیم‌گیری برای میزان استفاده از این ابزار باید به خاطر داشته باشید.

چه نکاتی را باید تحت هر شرایطی رعایت کرد

برندینگ را کنار بگذارید؛ چهار قاعده زیر فارغ از اینکه از چه عاملی (agent) استفاده می‌کنید، به تنهایی کارآمد هستند.

  • نقل‌قول مجوز. هر اقدام غیرقابل‌بازگشت یا رو به بیرون، نیازمند کلمات خود کاربر است که به صورت یک خط AUTH: نوشته شده باشد. عاملی که نتواند چنین نقل‌قولی پیدا کند، هیچ اقدامی انجام نمی‌دهد.
  • بررسی دوقلو. پس از رفع یک نقص، کل پروژه را برای یافتن همان ساختار اشتباه جستجو کنید و تعداد موارد یافت‌شده را گزارش دهید؛ حتی اگر تعداد آن‌ها صفر باشد.
  • تایید از طریق مشاهده. یک بررسی هدفمند سبز که روی یک بیلد خراب قرار گرفته باشد، یک تایید شکست‌خورده است، نه یک تایید موفق.
  • گزارش‌دهی با اولویت نتیجه، به طوری که هر آنچه نادیده گرفته شده یا تایید نشده است، به عنوان یک هشدار ذکر شود و نه اینکه بی‌سروصدا حذف گردد.

پذیرش این چهار مورد هیچ هزینه‌ای ندارد و می‌توانید با استفاده از grep انطباق با آن‌ها را بررسی کنید. از اینجا شروع کنید، با ابزارهای ارزیابی فوق اندازه‌گیری کنید و سپس تصمیم بگیرید که آیا باقی محتویات مخزن، ارزش اختصاص بخشی از بودجه کانتکست شما را دارد یا خیر. اگر می‌خواهید به جای یک روش کاری، کانتکست پروژه را به صورت دائمی در اختیار عامل قرار دهید، یک فایل DESIGN.md که عامل‌ها پیش از ویرایش می‌خوانند، گام مکمل برای این کار است.

FAQ

آیا متد Fable با مدل‌هایی غیر از Claude کار می‌کند؟

متن متد این قابلیت را دارد. این یک پرامپت ترتیبی بدون کد اختصاصی برای مدل است و مخزن، AGENTS.md را به‌عنوان نسخه‌ای قابل‌حمل برای Codex، Cursor، aider یا یک system prompt خام ارائه می‌دهد. دو مورد در اینجا قابل انتقال نیستند. تریگرهای /fable-method و /fable-judge دستورات اسلش (slash commands) در Claude Code هستند، بنابراین در محیط‌های دیگر باید متد را با توصیف آن فراخوانی کنید. همچنین fable-loop نیازمند بستری است که بتواند subagentهای موازی روی مدل‌های مختلف ایجاد کند؛ بدون آن، متد به‌صورت سری اجرا شده و fable-method را با مراحل اضافی به شما می‌دهد.

آیا اجرای این مهارت‌ها هزینه توکن بیشتری دارد؟

بله، و میزان آن به نحوه بارگذاری آن‌ها بستگی دارد. اگر به‌عنوان مهارت (skills) نصب شوند، بدنه اصلی فقط زمانی بارگذاری می‌شود که توصیف آن با وظیفه مطابقت داشته باشد، بنابراین برای درخواست‌های نامرتبط هزینه تقریباً صفر است. اگر در یک system prompt کپی شوند، حدود 2,600 کلمه از AGENTS.md در هر درخواست همراه خواهد بود. خودِ اجرا نیز هزینه بیشتری دارد، زیرا متد پیش از ویرایش درخواست جهت‌گیری، پیش از تصمیم‌گیری درخواست ارائه شواهد، و پس از آن درخواست تأیید واقعی می‌کند. آن را اندازه‌گیری کنید: همان وظیفه را با --output-format json در هر دو حالت اجرا کرده و فیلد total_cost_usd را مقایسه کنید.

کدام نسخه از fable-method را باید نصب کنم و چرا باید آن را پین (pin) کنم؟

پیش از نصب، git checkout v1.4.0 را اجرا کنید. آن تگ تاریخ 2026-07-15 را دارد و تا اوت 2026 همچنان جدیدترین نسخه بوده است. مخزن در نه روز پیش از آن، پنج نسخه منتشر کرد و v1.4.0 قوانین مسیریابی را تغییر داد. ردیابی main در حین اندازه‌گیری به این معناست که ممکن است اجرای کنترل و اجرای تست شما دستورالعمل‌های متفاوتی را بخوانند که باعث می‌شود مقایسه بی‌ارزش شود. تگ را در کنار نتایج خود ثبت کنید.

آیا ارزیابی (eval) موجود در مخزن، بنچمارکی قابل اعتماد است؟

به آن به‌عنوان یک لاگ تغییرات برای متد نگاه کنید، همان‌طور که نویسنده‌اش آن را توصیف کرده است: "این لاگ وجود دارد تا ویرایش‌های متد تست شوند، نه اینکه کسی آن را با یک بنچمارک اشتباه بگیرد." محدودیت‌ها در بالای فایل ذکر شده‌اند: 1 تا 4 اجرا برای هر سلول، فیکسچرهای مصنوعی، و داورهای LLM که بر پایه همان مدل پیشرویی ساخته شده‌اند که به‌عنوان مبنا (baseline) نیز عمل می‌کند. دورها واقعی هستند و آزمایش‌های شکست‌خورده نیز حفظ شده‌اند، که این بیش از چیزی است که اکثر مخازن منتشر می‌کنند. با این حال، این همچنان معیاری برای آنچه در codebase شما رخ خواهد داد نیست، بنابراین مقایسه دو-شاخه (two-arm comparison) را خودتان انجام دهید.