چیت‌شیت

ایجنت‌های سازمان‌دهنده‌ی شخصی

Personal Organizer Agents

پنج پروژه‌ی سازمان‌دهنده‌ی محلی. خروجی هر کدام، نحوه‌ی اجرا، ورودی‌ها، خروجی‌ها، فایل‌های بازبینی و اعتبارسنجی‌ها.

  • ۱۱ بخش
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. مقایسه‌ی پروژه‌های Node کنار هم
  2. مقایسه‌ی پروژه‌های Python کنار هم
  3. اجرای پیاده‌سازی مرجع
  4. مراحل برنامه‌ریز تقویم
  5. Download sort desk
  6. قوانین امتیازدهی
  7. پیش‌فرض‌ها و محدودیت‌ها
  8. پیام‌های خطا و رفع آن‌ها
  9. نوشتن فایل بازبینی
  10. نمونه‌های حل‌شده
  11. نکات کاربردی

مقایسه‌ی پروژه‌های Node کنار هم

مقایسه
عاملBookmark Path OrganizerCalendar Focus PlannerField Notes Map Builder
خروجی ساختصفحه‌ی مسیر مطالعهبرنامه‌ی تمرکز و پیشنهادهای ICSGeoJSON و نقشه‌ی شماتیک
ورودیدرخت bookmarks، topicssample.ics، tasks.json، یک روزobservations، radiusMeters
خروجی‌هاbookmarks.json، progress.json، report.htmlfocus.ics، plan.json، plan.htmlobservations.geojson، groups.json، report.html
فایل بازبینیآرگومان سوم progress.jsonنداردآرگومان سوم group-review.json
خط قرمزها (هرگز انجام نمی‌دهد)واکشی لینک‌هاتغییر تقویم حساب کاربریدانلود عکس‌ها یا تایل‌ها

مقایسه‌ی پروژه‌های Python کنار هم

مقایسه
عاملDownload Folder Sort DeskCatalog Record Linker
خروجی ساختطرح بایگانی و گروه‌های تکراریتطبیق متقاطع (crosswalk) و کاتالوگ merge‌شده
ورودیfolder، occupiedleft_csv، right_csv، threshold
خروجی‌هاmoves.json، duplicates.json، review.htmlcrosswalk.csv، merged-catalog.json، review.html
فایل بازبینی--decisions decisions.json--decisions decisions.json
خط قرمزها (هرگز انجام نمی‌دهد)انتقال فایلانجام merge صرفاً بر اساس شباهت

اجرای پیاده‌سازی مرجع

دستورها
دستورکارکرد
node cli.ts sample.json outputسازمان‌دهنده‌ی بوک‌مارک یا نقشه‌ی یادداشت‌های میدانی
node cli.ts <input.json> <dir> <review.json>اجرای مجدد با بازبینی دانلودشده‌ی شما
node cli.ts sample.ics tasks.json 2026-10-14 output 10برنامه‌ریزی تقویم با بافر 10 دقیقه‌ای
python3 cli.py samples/input.json --output demo-outputمیز مرتب‌سازی دانلودها یا لینک‌دهنده‌ی کاتالوگ
python3 cli.py <input.json> --output <dir> --decisions decisions.jsonاعمال تأییدیه‌های شما
python3 scripts/project_test.py <project> --all --solution --strictنمره‌دهی به پیاده‌سازی مرجع

مراحل برنامه‌ریز تقویم

گام‌به‌گام
  1. CLIبازه را از 09:00 تا 17:00 UTC در روز مشخص‌شده تنظیم می‌کند.
  2. parseCalendarبه UID، DTSTART و DTEND نیاز دارد. رویدادهای لغوشده و شفاف (transparent) را نادیده می‌گیرد.
  3. availableSlotsبافر را دور رویدادها اضافه می‌کند، همپوشانی‌ها را merge می‌کند، سپس فاصله‌های خالی را فهرست می‌کند.
  4. scheduleوظایف را بر اساس اولویت و سپس شناسه مرتب می‌کند.
  5. scheduleهر وظیفه را در اولین فاصله‌ی خالی با طول کافی قرار می‌دهد.
  6. scheduleوظیفه‌ای را که در هیچ فاصله‌ای جا نمی‌شود با ذکر دلیل به‌عنوان زمان‌بندی‌نشده ثبت می‌کند.
  7. exportCalendarپیشنهادها را برای ایمپورت دستی در focus.ics می‌نویسد.

Download sort desk

معماری
folderrecordscategoryplanانتقال‌های تأییدشدهinput.jsonfolder, occupiedinventory()path, size, sha256categorize()scores, evidenceplan_moves()destination, duplicate_groupsreview_plan()fingerprint, approvedmoves.jsonبرای مدیر فایل (file manager)

قوانین امتیازدهی

مفهوم‌ها
امتیاز موضوع بوک‌مارک
کلیدواژه در عنوان 3 امتیاز می‌افزاید. کلیدواژه در یادداشت‌ها 1 امتیاز می‌افزاید.
بوک‌مارک‌های تکراری
URL یکسان پس از حذف fragment. رشته‌های query مهم باقی می‌مانند.
دسته‌بندی فایل
پسوند شناخته‌شده 3 امتیاز می‌افزاید. کلمات workshop و handout به documents مقدار 1 امتیاز می‌افزایند.
تداخل نام فایل
مقصدِ اشغال‌شده قبل از پسوند -2 یا -3 می‌گیرد، بدون حساسیت به حروف بزرگ و کوچک.
امتیاز جفت کاتالوگ
شباهت ژاکارد عنوان ضربدر 0.8 به اضافه‌ی شباهت ژاکارد پدیدآورنده ضربدر 0.2.
مشاهدات مجاور
تابع distanceMeters() از کره‌ی زمین با شعاع 6371008.8 متر استفاده می‌کند.
گروه‌های نقشه
جفت‌های درون شعاع مجاز به یک مؤلفه‌ی همبند می‌پیوندند.

پیش‌فرض‌ها و محدودیت‌ها

پیش‌فرض‌ها
تنظیمپیش‌فرضیادداشت
Calendar buffer minutes10محدوده‌ی مجاز 0 تا 120
Calendar output folderfocus-outputآرگومان چهارم CLI
Max tasks100دقایق 5 تا 480، اولویت 1 تا 5
threshold0.25محدود، از 0 تا 1
Folder nesting32درخت‌های بوک‌مارک با عمق بیشتر با خطا مواجه می‌شوند
Radius0..1000000متر
approvedFalseهر انتقال برنامه‌ریزی‌شده ابتدا تأییدنشده است
schema_version1در moves.json و merged-catalog.json

پیام‌های خطا و رفع آن‌ها

عیب‌یابی
  • Expand recurrence and timezone values to UTC before importing

    علت
    وجود RRULE یا TZID در ICS
    راه‌حل
    ابتدا رویدادها را در خروجی‌گیر بسط دهید
  • Event needs UID, DTSTART and DTEND

    علت
    پایان ضمنی یا وجود DURATION
    راه‌حل
    یک DTEND صریح بنویسید
  • stale approval: source content or destination plan changed

    علت
    تغییر فایل‌ها یا طرح پس از بازبینی
    راه‌حل
    از decisions.json جدید استفاده کنید
  • output must be outside the input folder

    علت
    خروجی داخل پوشه‌ی اسکن‌شده قرار دارد
    راه‌حل
    مسیر خروجی دیگری انتخاب کنید
  • Progress order must contain every current id exactly once

    علت
    تغییر بوک‌مارک‌ها پس از دانلود
    راه‌حل
    بدون آرگومان سوم اجرا کنید
  • one-to-one match violated

    علت
    یک رکورد دو بار پذیرفته شده است
    راه‌حل
    هر رکورد را فقط در یک جفت بپذیرید

نوشتن فایل بازبینی

کار و کد
وظیفهکد
تفکیک یک گروه نقشه"decisions": {"<id>": "keep-separate"}
نگه‌داشتن یک گروه نقشه"decisions": {"<id>": "keep-group"}
ذخیره‌ی ترتیب خوانش"order": [...], "completed": [...]
تأیید انتقال فایل‌ها"approved": ["<path>"]
پذیرش یک جفت کاتالوگ"match": true, "values": {}
نسخه‌بندی یک بازبینی در Node"schemaVersion": 1

نمونه‌های حل‌شده

پرسش و پاسخ
چرا نمونه از 09:20 تا 11:10 مشغول است؟
دو رویداد همپوشانی دارند و بافر 10 دقیقه‌ای بازه‌ی آن‌ها را گسترده‌تر می‌کند.
کدام وظیفه جا نمی‌شود؟
وظیفه‌ی deep به 120 دقیقه نیاز دارد. هیچ جای خالی این‌قدر طولانی نیست.
چرا map-1 و map-2 هم‌گروه می‌شوند؟
هر دو URL پس از نرمال‌سازی به سند یکسانی اشاره دارند.
فایل handout.txt به کجا می‌رود؟
مسیر documents/handout.txt اشغال است، پس -2 می‌گیرد.
آیا left:map-1 و right:r-7 merge شده‌اند؟
فقط پس از تأیید جفت توسط شما. هیچ رکوردی حذف نمی‌شود.

نکات کاربردی

نکته‌ها
  • مقدار تمام‌روز DTEND;VALUE=DATE بازه‌ی باز است (شامل خود روز نمی‌شود). 14 اکتبر در 20261015 پایان می‌یابد.
  • مدیر فایل باید درست قبل از انتقال، هویت فایل را دوباره بررسی کند. طرح، تراکنش نیست.
  • وضعیت ready به این معناست که mergeهای پذیرفته‌شده هیچ تداخل بازی ندارند؛ به این معنا نیست که همه‌ی جفت‌ها خوانده شده‌اند.
  • فرمت GeoJSON ابتدا از طول جغرافیایی و سپس عرض جغرافیایی استفاده می‌کند.
  • ایمپورت‌کننده‌ی بوک‌مارک درخت پوشه‌های JSON را می‌خواند، نه HTML مرورگر را.
  • قبل از یکپارچه‌سازی یک ابزار، حداقل یک ورودی جدید از خودتان را آزمایش کنید.