چگونه کار میکند
RADAR چگونه کار میکند.
مروری فنی برای توسعهدهندگان. RADAR عاملهای برنامهنویسی را اجرا میکند و هر وظیفه را تنها پس از آن میبندد که آزمون پذیرش آن را خودش دوباره اجرا کرده باشد. «تمام شد» گفتنِ یک عامل ادعاست؛ اجرای دوباره گواه است.
01 حلقه
یک حلقه برای همه وظیفهها.
هر وظیفه از همان حلقه میگذرد، و هر گام تنها زمانی اجرا میشود که گام پیش از آن موفق شده باشد.
- 01 · باز کردن وظیفه و آزمون پذیرش پیش از شروع کار نوشته میشود
- 02 · اجاره یک مالک، worktree خودش lease و fence token
- 03 · کار عامل کار میکند در نسخه خودش از پروژه
- 04 · ادعا عامل میگوید تمام شد بهعنوان ادعا ثبت میشود، نه نتیجه
- 05 · بررسی RADAR آزمون را دوباره اجرا میکند روی revision فعلی
- اگر موفق شود بسته شد گواه در دفتر ثبت نگه داشته میشود
- اگر ناموفق شود · تلاش n از 3 دوباره باز شد، با شکست پیوستشده همان عامل از گام 03 دوباره تلاش میکند
- پس از 3 تلاش عامل دیگری کار را به دست میگیرد تا 3 تلاش دیگر، از گام 03
- پس از 3 تلاش دیگر وظیفه منتظر شماست دفتر ثبت تلاشهای بیشتر را نمیپذیرد
- باز کردن
- وظیفه با هدفش و یک فرمان پذیرش که بتوان دوباره اجرایش کرد باز میشود. فرمان هنگام باز شدن وظیفه بررسی میشود، بیآنکه اجرا شود: معیاری که نتواند همانطور که نوشته شده اجرا شود همان موقع رد میشود، نه اینکه در پایان کشف شود.
- اجاره
- در هر زمان تنها یک مالک وظیفه را در اختیار دارد، از طریق یک lease و یک fence token. نوشتنی که از یک مالک منقضیشده بیاید رد میشود.
- کار
- عامل در git worktree خودش و روی شاخه خودش کار میکند.
- ادعا
- گزارش عامل مبنی بر اتمام کار بهعنوان ادعا ثبت میشود. ادعا وظیفه را نمیبندد.
- بررسی
- RADAR فرمان پذیرش را خودش روی revision فعلی کار اجرا میکند. گزارش خود عامل خوانده میشود، اما گواه نیست.
- بستن یا بازگشایی
- موفقیت اجازه میدهد وظیفه بسته شود و سابقه بررسی بهعنوان گواه آن نگه داشته میشود. شکست وظیفه را دوباره باز میکند و شکست را به آن پیوست میکند.
- محدودیتها
- سه تلاش کارگر، سپس سه بار واگذاری به عاملی دیگر. پس از آن دفتر ثبت تلاشهای بیشتر را رد میکند و وظیفه منتظر شما میماند. عوض کردن مدل، نشست یا دستگاه شمارش را صفر نمیکند، و هر تلاش دوباره باید بگوید چه چیزی تغییر کرده است.
02 دفتر ثبت
یک دفتر که همه عاملها در آن مینویسند.
همه عاملها از یک دفتر ثبت وظیفه میخوانند و در آن مینویسند: یک فایل SQLite محلی. این تنها سابقهای است که نشان میدهد هر وظیفه در دست کیست، چه ادعایی شده و آزمون چه نشان داده است.
- وظیفهها
- هدف و فرمان پذیرش، که پیش از شروع کار نوشته شدهاند.
- مالکیت
- مالک فعلی هر وظیفه، همراه با lease و fence token آن.
- تلاشها
- برای هر وظیفه شمرده میشوند، در میان عاملها، مدلها و دستگاهها.
- ادعاها
- گزارش عامل مبنی بر اتمام کار، که جدا از نتایج نگه داشته میشود.
- سوابق بررسی
- هر اجرای پذیرش، پیوندخورده به commit و working tree که روی آن اجرا شده است.
- تغییرات
- هر تغییر در فرمان پذیرش با نسخه قدیم و جدید ثبت میشود؛ هر override نیز ثبت میشود.
حافظه
تصمیمها و درسها یادداشتهای Markdown با منبع و دامنهاند. یک نمایه محلی آنها را بهصورت آفلاین جستوجو میکند، و یک hook یادداشتهای مرتبط را پیش از اقدام عامل جلوی آن میگذارد. چون یادداشتها Markdown سادهاند، میتوانید آنها را در Obsidian باز کنید.
03 جداسازی
هر تلاش در نسخه خودش.
- هر تلاش در git worktree خودش و روی شاخه خودش کار میکند. دو کارگر هرگز یک tree مشترک ندارند.
- کارگر نمیتواند فرمان پذیرش خودش را بازنویسی کند. فقط مدیر میتواند آن را تغییر دهد، آن هم تنها پیش از بسته شدن وظیفه؛ و هر تغییر نسخه قدیم و جدید را نگه میدارد.
- کار تنها پس از موفقیت بررسی به شاخه اصلی شما میرسد، و فرمان پذیرش پس از ادغام یک بار دیگر اجرا میشود.
- force-push برای همه نقشها رد میشود.
- این قواعد بهصورت کد اجرا میشوند، پیش و پس از فراخوانی مدل. آنها prompt نیستند، پس عامل نمیتواند با حرف زدن از آنها بگذرد.
04 عاملها
عاملهایی که همین حالا استفاده میکنید.
RADAR، Claude Code، Codex CLI، OMP و Hermes Agent را روی رایانه شما یا روی سرورهای Linux خودتان اجرا میکند. جای آنها را نمیگیرد: کار را هنوز خودشان انجام میدهند.
- Claude Code
- Codex CLI
- OMP
- Hermes Agent
- یک قرارداد
- همان قواعد، همان دفتر ثبت، همان دروازه بررسی و همان محدودیتهای تلاش برای هر چهار عامل اعمال میشود.
- مدیر
- عاملی که با آن گفتوگو میکنید مدیریت میکند: وظیفهها را باز میکند، به کارگرها میسپارد و وظیفه را تنها با یک سابقه بررسی موفق میبندد.
- کارگرها
- کارگرها کار را در worktreeهای خودشان انجام میدهند. نمیتوانند وظیفهها را ببندند و نمیتوانند فرمان پذیرش خود را تغییر دهند.
05 اول محلی
اول محلی.
RADAR به حساب کاربری و فضای ابری نیاز ندارد.
- روی دستگاه شما
- دفتر ثبت، یادداشتهای حافظه، worktreeها و همه اجراهای بررسی، روی رایانه شما یا روی سرورهای Linux خودتان.
- نیازمند شبکه
- عاملهای شما، که مانند امروز با ارائهدهندگان خودشان ارتباط دارند. هر سرویس بیرونی دیگر اختیاری است و تا وقتی روشنش نکنید خاموش میماند.
- پیشنیازها
- Windows یا Linux (macOS هنوز پشتیبانی نمیشود)، Python 3.12 یا جدیدتر، و Git. RADAR فقط از کتابخانه استاندارد Python استفاده میکند.
- هزینه
- صورتحساب جداگانهای ندارد. عاملها همچنان از حسابهایی استفاده میکنند که با آنها واردشان کردهاید. API پولی تنها زمانی استفاده میشود که ارائهدهنده و بودجه را مشخص کنید.
- نصب
- پیوند مخزن را به عامل برنامهنویسی خود بدهید و بگویید «این را نصب کن». عامل رایانه شما را بررسی میکند، پیش از نصب هر چیزِ ناموجود از شما میپرسد، RADAR را در یک محیط مجازی نصب میکند و گزارش میدهد radar init و radar doctor چه میگویند.
06 فرمانها
فهرستی کوتاه از فرمانها.
فرمانهایی که ابتدا از آنها استفاده خواهید کرد. جاینگهدارها درون براکتهای زاویهای آمدهاند.
| فرمان | کاری که انجام میدهد |
|---|---|
radar init | خانه RADAR و دفتر ثبت را راهاندازی میکند. |
radar doctor | نصب را بررسی میکند و هر سرویس اختیاری پیکربندینشده را فهرست میکند. |
radar task new --project P --goal "…" --accept "<command>" | وظیفهای را با فرمان پذیرش آن باز میکند. |
radar dispatch <task> | وظیفه را به عاملی میسپارد که در worktree خودش کار میکند. |
radar status | کل سامانه را نشان میدهد. |
radar verify <task> | فرمان پذیرش را روی revision فعلی دوباره اجرا میکند. |
radar task done <task> --evidence "<verification report>" | وظیفه را میبندد. تا موفقیت بررسی رد میشود. |
radar collect | کار تمامشده را جمعآوری میکند. |
radar integrate | کار بررسیشده را در main ادغام میکند. |
radar stop | کار را کنار میگذارد و STOP را تنظیم میکند. |
radar go | STOP را برمیدارد و آنچه را میتواند ادامه یابد فهرست میکند. |
radar memory search --local "<words>" | یادداشتهای حافظه را بهصورت آفلاین جستوجو میکند. |
radar uiradar web | کاکپیت را در ترمینال یا در مرورگر باز میکند. |
radar help --all | همه فرمانها را فهرست میکند. radar <command> -h جزئیات را نشان میدهد. |
07 آنچه انجام نمیدهد
آنچه RADAR انجام نمیدهد.
- جای عاملهای شما را نمیگیرد. کد را هنوز آنها مینویسند؛ RADAR به آنها یک سابقه، یک بررسی که نمیتوانند از آن بگذرند و یک حافظه میدهد.
- آزمونهای شما را نمینویسد. هر بررسی فقط به اندازه آزمونش خوب است؛ RADAR آزمون را پیش از شروع کار صریح میکند تا یک شخص بتواند آن را بخواند.
- کاری را که آزمون ندارد نمیبندد. وظیفهای که فرمان پذیرش قابلاجرا نداشته باشد هنگام باز شدن رد میشود.
- عاملهای شما را آفلاین نگه نمیدارد. آنها همچنان مانند امروز با ارائهدهندگان خودشان ارتباط دارند.
- نسخه باز برای توسعهدهندگان فردی است، نه تیمها؛ نسخه شرکتی در دست توسعه است.
08 وضعیت
در مرحله دسترسی زودهنگام
اکنون دسترسی زودهنگام. متنباز هنگام انتشار عمومی.
RADAR در مرحله دسترسی زودهنگام است. هنگام انتشار عمومی بهصورت متنباز و با مجوز Apache-2.0 منتشر خواهد شد. برای پیوستن، به ما بنویسید.