رفتن به محتوا

دستورات اسلش

دستوراتی که در ویرایشگر پیام یک فضا تایپ می‌شوند. بر پایهٔ جایی که اثر می‌گذارند به سه گروه تقسیم می‌شوند و این تفاوت مهم است: یک دستور محلی هرگز به‌عنوان پیام سفر نمی‌کند، پس نه در رونوشت ظاهر می‌شود و نه به عاملی می‌رسد.

محل اجرا معنایش
محلی در کارخواه (یا یک عملیات سمت سرور که کارخواه آغازش می‌کند) رسیدگی می‌شود. دستور هرگز به‌عنوان پیام سفر نمی‌کند، پس هیچ عاملی آن را نمی‌بیند.
کناری یک فراخوانی مدل سمت سرور دربارهٔ گفتگو. گفتگو تغییر نمی‌کند.
اعزام برای اجرایی که این پیام آغاز می‌کند، حالتی یا دستورالعملی تعیین می‌کند.

محلی → اعزام. حالت برنامه را روی گفتگو مسلح می‌کند: یک worktree کاملاً فقط‌خواندنی و سطح ابزاری که حداکثر تا read محدود شده است. خروجیِ عامل یک برنامه است، نه یک ویرایش. /plan خالی فقط حالت را برمی‌گرداند و هرگز به‌عنوان پیام سفر نمی‌کند؛ با یک پرامپت، باقی خط همان چیزی است که اجرا را آغاز می‌کند.

اعزام. هدفی خودمختار را آغاز می‌کند که سرپرست هدف آن را در میان بخش‌ها دوباره اعزام و از نو راه‌اندازی می‌کند.

تایپ /goal همراه با متن، ابتدا مصاحبهٔ هدف را باز می‌کند — گذر کوتاهی که از پذیرفتن یک پیش‌نویس سر باز می‌زند تا وقتی هر پنج مورد زیر را داشته باشد: معیارهای موفقیتی که یک ارزیاب بتواند بی‌قضاوت شخصی درباره‌شان تصمیم بگیرد، یک فرمان راستی‌آزمایی دقیق، سقفی برای تعداد تلاش، مرزهای دامنه، و شرایط توقف. هر گام گزینهٔ رد کردن و اجرا به‌همان صورت را پیشنهاد می‌دهد: این مصاحبه یک پیش‌فرض است، نه یک دروازه.

/goal pause، /goal resume و /goal drop دستور اسلش نیستند. مکث، ادامه و توقف روی فهرست اهداف گفتگو در نوار کناری قرار دارند. فلگ‌های آغاز روی خود هدف عبارت‌اند از --budget <dollars>، --max <N> (بودجهٔ اجرا) و --days <N> (مهلت). هدفی که به سقف هزینه‌اش رسیده باشد، تنها با بالا بردن همان سقف و از همان کنترل نوار کناری از سر گرفته می‌شود.

اعزام. تا کامل شدن، به‌صورت تکراری کار می‌کند. یک حد می‌پذیرد: /loop 10، /loop 30m، /loop 1h30m، /loop 10 minutes fix the tests.

توکنی که به نظر یک حد می‌رسد (با یک رقم یا یک علامت آغاز می‌شود) و تجزیه نمی‌شود، یک خطای سخت است. نثر خودش نثر است، پس /loop keep going until the tests pass یک حلقهٔ بی‌کران با یک پرامپت درون‌خطی است، نه یک تجزیهٔ نادرست.

اعزام. نشست را به یک هدایتگر تبدیل می‌کند: ابزارهای خودش به read به‌علاوهٔ پنج فعل کارگر فرو می‌افتد و کارگران پس‌زمینه ویرایش را انجام می‌دهند. به هدایت کارگران پس‌زمینه نگاه کنید.

کارگرها هرگز از این حالت بیشتر عمر نمی‌کنند — خروج از آن همه‌شان را می‌کشد.


محلی → سرور. تاریخچهٔ قدیمی‌تر را در یک خلاصهٔ لنگرشده می‌گنجاند و روی بافت فشرده‌شده ادامه می‌دهد. هیچ آرگومانی رو به مدل ندارد: دستور هرگز به‌عنوان پیام سفر نمی‌کند و گذر فشرده‌سازی هیچ اشارهٔ تمرکزی نمی‌گیرد.

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

هدف چه چیزی را دور می‌ریزد
tool_output نتایج ابزار قدیمی و بی‌حادثه (پیش‌فرض)
images تصاویر صفحه‌نمایش قدیمی، با نگه‌داشتن متنشان
all هر دو

این همان راه فرار برای «بافتم چاق است اما خلاصه نمی‌خواهم» است.

محلی. کاوشگر بافت را برای عامل این گفتگو در زبانهٔ جداگانهٔ خودش باز می‌کند: هر بخش و جزئی از پنجرهٔ بافت آن — پرامپت سیستمی، مهارت‌ها، فایل‌های بافت، شِمای ابزارها، تاریخچه و تصاویر — همراه با هزینهٔ هرکدام و محتوای عین‌به‌عین پشت آن.

این زبانه با جفت (فضا، عامل) کلید می‌خورد، پس اجرای دوبارهٔ آن همان یک زبانه را دوباره فوکوس می‌کند، نه اینکه نسخه‌های تکراری از یک تفکیک را روی هم بچیند.

در فضایی با بیش از یک عامل، /context خالی همان پنجره‌ای را باز می‌کند که نشانگر بافت در سرصفحه می‌خواند — یعنی عاملی که آخرین بار اینجا کار کرده، همان که پیامش پایین رد است — و زبانه با Context · <name> برچسب می‌خورد تا بگوید از کیست. برای جابه‌جایی نام دیگری را بیاورید: /context qa (علامت @ اختیاری است). نام تایپ‌شده دقیق تطبیق داده می‌شود، نه تقریبی: دو عامل دو پنجرهٔ متفاوت دارند، پس یک انطباق نزدیک که پنجرهٔ دیگری را باز کند، پاسخی موجه‌نما به پرسشی است که شما نپرسیده‌اید.

همان کاوشگر پشت تراشهٔ نشانگر بافت در سرصفحهٔ فضا است که همان عامل را دنبال می‌کند — دستور و تراشه هرگز نمی‌توانند بر سر اینکه «بافت» اینجا یعنی چه با هم اختلاف پیدا کنند.


این‌ها یک فراخوانی مدل خرج می‌کنند و هرگز گفتگو را تغییر نمی‌دهند. نوبت واقعی بعدی عامل دقیقاً همان چیزی را می‌بیند که در هر حال می‌دید، و تمام ارزش پرسیدن همین است.

کناری. برای هر کسی که کار را از سرد شروع می‌کند یک سند تحویل می‌نویسد: کار چیست، چه چیزی آموخته شد، چه چیزی باقی مانده است.

کناری. به پرسشی دربارهٔ کار تا اینجای کار پاسخ می‌دهد، بی‌آنکه پرسش یا پاسخ را به رونوشت اضافه کند.


محلی. ناوبر شاخه را باز می‌کند: گفتگو کجا فورک شده، هم‌اکنون روی کدام مسیر است، و چگونه به مسیری که ترک کرده‌اید برگردید. به شاخه‌کردن یک گفتگو نگاه کنید.

محلی. گفتگو را در یک فایل HTML خودبسنده می‌نویسد — کارت‌های ابزار جمع‌شونده، بدون شیوه‌نامه، بدون اسکریپت، بدون میزبان تصویر. در دسکتاپ در Documents/ControlCenter/exports/ می‌افتد و در وب دانلود می‌شود.

محلی. رونوشت را به‌صورت markdown در کلیپ‌بورد کپی می‌کند، با فراخوانی‌های ابزار در بلوک‌های جمع‌شونده. استدلال عمداً کنار گذاشته شده است: رونوشتی که در یک گزارش باگ چسبانده می‌شود را یک انسان می‌خواند.


محلی. فهرست کارهای ماندگار گفتگو را می‌بیند و ویرایش می‌کند. /todo خالی ویرایشگر را باز می‌کند. زیردستورها: append، start، done، drop (نام جایگزین rm)، edit، copy، export، import.

اعزام. یک مهارت نصب‌شده را اعمال می‌کند. مهارت‌ها زیر پیشوند skill: خودشان زندگی می‌کنند تا با دستورهای داخلی هیچ فضای‌نام مشترکی نداشته باشند — بدون آن، مهارتی به نام plan برای همیشه دست‌نیافتنی می‌ماند.

اعزام. هر فایل markdown زیر .agents/commands، .agent/commands، .claude/commands، .codex/commands یا .opencode/commands در مخزن. یک foo/bar.md تودرتو هم با foo:bar قابل فراخوانی است.

قالب‌بندی: $1، $@، $@[start:length] و $ARGUMENTS. Frontmatter فایل می‌تواند description را تعیین کند (تکمیل خودکار ویرایشگر پیام). allowed-tools و model از فایل تجزیه می‌شوند، اما فراخوانی یک دستور کاربر هم‌اکنون فقط آرگومان‌ها را در بدنه جایگزین می‌کند — مدل یا سطح ابزار اجرا را تغییر نمی‌دهند.

یک دستور نوشته‌شده توسط کاربر بر مهارتی هم‌نام پیروز می‌شود — میان‌بری است که یک انسان آگاهانه و همراه با آرگومان فراخوانی کرده است.


دستور نیستند. یک واژهٔ کوچک‌نویس مستقل در هرجای پرامپت، برای همان نوبت یک رهنمود پنهان ضمیمه می‌کند.

واژه اثر
ultrathink بیشترین تلاش استدلال برای نوبت
orchestrate کارهای مستقل را موازی واگذار می‌کند و هر مرحله را راستی‌آزمایی می‌کند

تطبیق‌دهنده عمداً دربارهٔ مرزها سخت‌گیر است. orchestrate, تطبیق می‌خورد؛ orchestrated، orchestrate.ts، foo::orchestrate و orchestrate() نه، و بلوک‌های کد حصارکشیشده، بازه‌های درون‌خطی و بخش‌های XML اول پوشانده می‌شوند. بدون آن، چسباندن یک رد پشته رفتار عامل را عوض می‌کرد.