چیتشیت
میزهای کار جریان کاری متنی
Text Workflow Desks
دستهبندی ایمیل، استخراج وظایف، بازنویسی متن، گروهبندی بازخوردها و نوشتن گزارش تغییرات. هر خروجی منتظر بررسی میماند.
فهرست مطالب
آنچه هر میز کار میسازد
مفهومها- میز دستهبندی صندوق دریافت
- ورودی پوشهی .eml. خروجی index.html، triage.json و پیشنویسهای .eml ارسالنشده.
- تبدیل یادداشتهای جلسه به اقدامها
- ورودی notes.txt. خروجی actions.json، actions.html و approved.csv.
- میز بازنویسی به زبان ساده
- ورودی JSON متن. خروجی Markdown پذیرفتهشده و revision-decisions.json.
- برد مضامین بازخورد
- ورودی JSONL بازخورد و مضامین. خروجی برد شواهد و پیشنویس Issueها.
- نویسندهی تغییرات از گیت
- ورودی بازهای از Git. خروجی release.md و رسید release.json.
- محیطهای اجرا
- پایتون 3.10 برای صندوق دریافت و جلسه. نود 22.18 برای بازنویسی. گو 1.22 برای گزارش تغییرات.
اجرای هر میز کار
دستورها| دستور | کاری که انجام میدهد |
|---|---|
python3 scripts/project_test.py <project> --init <workspace> | یک فضای کاری میسازد. مرحلهی اول ناموفق میشود |
python3 scripts/project_test.py <project> --all --solution --strict | بررسی راهحل مرجع |
python3 main.py --input ./fixtures --out ./inbox-output | میز بررسی صندوق دریافت را میسازد |
python3 cli.py samples/notes.txt --today 2026-09-29 --output actions.json --html actions.html --csv approved.csv | اقدامها را پیشنهاد میدهد. فقط ردیفهای تاییدشده را صادر میکند |
node cli.ts sample.json output | بازنویسیها را مقایسه میکند. فایل output/report.html را مینویسد |
node cli.ts sample.jsonl themes.json output | بازخوردها را در مضامین گروهبندی میکند |
go run . | از یک مجموعهدادهی نمونه دو-commit گزارش تغییرات مینویسد |
پایپلاین میز صندوق دریافت
معماریحلقهی بررسی جلسه
گامبهگام- parse_notesخواندن خطوط
ACTION owner | due | taskهمراه با شمارهی خط. - proposalsافزودن خطوط
NAME will TASK by YYYY-MM-DDبهصورت پیشنهاد. - validate_actionمقدار "?" برای مسئول یا موعد،
needs_ownerیاneeds_dateرا اضافه میکند. - deduplicateتبدیل حروف مسئول، موعد و وظیفه به کوچک (casefold). merge خطوط مبدأ آنها.
- inboxاختصاص شناسهی 16 کاراکتری هگز از SHA-256 به هر اقدام.
- Reviewerانتخاب در انتظار، تأییدشده یا ردشده. دانلود decisions.json.
- Rerunپرچم
--decisions decisions.jsonفقط اقدامهای کاملِ تأییدشده را صادر میکند.
گزارش تغییرات از یک بازهی Git
کدbash
cd projects/changelog-writer-from-git/solution
go run . --repo <path> --from <rev> --to HEAD # بازهی تغییرناپذیر
go run . --input <file> # خروجی با جداکنندهی NUL
git log --format=%H%x00%s%x00%b%x00 FROM..TO # فرمت خروجی
go run . --output release.md --receipt release.json # فایلهای با قابلیت استفاده مجدد
توابع پروژه
کار و کد| وظیفه | کد |
|---|---|
| طبقهبندی یک پیام | triage(message, rules) |
| نوشتن پاسخ ارسالنشده | build_draft(message: dict, decision: dict) |
| انتشار چکلیست | publish(actions, today) |
| سنجش یک پاراگراف | measures(text:string) |
| صادر کردن متن پذیرفتهشده | exportRevisions(comparisons,value?) |
| تطبیق یک اسپن عبارتی | findEvidence(row: Feedback, phrase: string) |
| ساخت برد مضامین | buildBoard(rows: Feedback[], themes: Theme[]) |
| رندر یادداشتهای انتشار | Release(label string, commits []Commit, max int) |
خط مبنا و گزینهی مدل
مقایسه| عامل | صندوق دریافت | جلسه | بازنویسی | بازخورد |
|---|---|---|---|---|
| خط مبنا | قواعد عبارتی صریح | خطوط ACTION | جایگزینیهای عبارتی | عبارات کلمهای |
| گزینهی مدل | --provider-url | ندارد | پیشنهادهای ثبتشده | --suggest |
| خروجی مدل | model-proposals.json | ندارد | پیشنهاد نویسنده | themes.proposed.json |
| دروازهی بررسی | هر پیشنویس نیاز به بررسی دارد | تصمیم صریح | نویسنده میپذیرد | بررسی قبل از استفاده |
| هرگز انجام نمیدهد | ارسال پاسخها | ثبت وظایف | اثبات معنا | ارسال به ردیاب |
پیشفرضها و محدودیتها
پیشفرضها| تنظیم | پیشفرض | یادداشت |
|---|---|---|
Label flag | v0.2.0 | عنوان انتشار |
To flag | HEAD | نسخهی پایانی فراگیر |
Commits per release | 1000 | بیشتر منجر به budget exceeded میشود |
Inbox `--model` | local-model | فقط ارائهدهندهی اختیاری |
Message size | 1 MB | به ازای هر فایل .eml |
Feedback input | 2 MB | حداکثر 10000 رکورد |
Model theme input | 50 | رکوردهای بازخورد برای --suggest |
Long word | 8 | حروف بیشتر طولانی شمرده میشوند |
خطاها و راهحلها
عیبیابی"Conflicting duplicate Message-ID"
- علت
- دو فایل شناسهی یکسان دارند
- راهحل
- یک نسخه از پیام را نگه دارید
دستهبندی نامشخص است
- علت
- قواعد تعارض دارند یا هیچکدام مطابقت نمیکنند
- راهحل
- عبارات را در
--rulesویرایش کنید
وضعیت متن
no-plain-body- علت
- پیام فقط-HTML
- راهحل
- بهصورت دستی آن را بررسی کنید
"unknown or stale action ids"
- علت
- خطوط منبع تغییر کردهاند
- راهحل
- صندوق دریافت را مجدداً بسازید. دوباره بررسی کنید
"cannot approve missing owner or due date"
- علت
- مسئول یا تاریخ موعد "?" است
- راهحل
- آن را در یادداشتها پر کنید
"Resolve factual issues before accepting"
- علت
- اعداد یا اصطلاحات محافظتشده تغییر کردهاند
- راهحل
- ابتدا پیشنهاد را اصلاح کنید
"Provide 1 to 30 themes"
- علت
- فهرست مضامین خالی یا طولانی است
- راهحل
- بین 1 تا 30 مضمون نگه دارید
"changelog: budget exceeded"
- علت
- بازه بیش از 1000 commit دارد
- راهحل
- محدودهی
--fromو--toرا کوچکتر کنید
قواعد در کد
مفهومها- اولویت دستهبندی
- اقدام 0، نامشخص 1، اطلاعات 2.
- عبارات اقدام
- please، can you، could you، confirm.
- بازنویسیها
- "in order to" به "to"، "utilize" به "use"، "prior to" به "before".
- تکراریها
- مبدأ و متن حروف کوچک NFKC یکسان، یک بار شمرده میشوند.
- ترتیب مضامین
- ابتدا متمایزترین منابع، سپس شناسه.
- گروهها
- تغییرات ساختارشکن (Breaking changes)، ویژگیها (Features)، رفع نقصها (Fixes)، سایر (Other).
- تغییرات ساختارشکن
- پانویس
BREAKING CHANGE:یا!بعد از نوع. - بازگردانی
- "This reverts commit" با یک شناسهی 40 کاراکتری هگز.
پرسشها
پرسش و پاسخ- آیا میز صندوق دریافت ایمیل ارسال میکند؟
- خیر. هرگز به صندوق پستی متصل نمیشود.
- چه چیزی در یادداشتها بدون انتصاب باقی میماند؟
- پیشنهادهای خارج از آن دو ساختار نحوی.
- آیا بررسیهای بازنویسی صحت حقایق را اثبات میکنند؟
- خیر. آنها حفاظهای لغوی هستند. نویسنده معنا را بررسی میکند.
- آیا تعداد منابع تقاضا را میسنجد؟
- خیر. برچسبها هویت تأییدشدهی افراد یا اندازهی بازار نیستند.
- گزارش تغییرات از کدام هش پشتیبانی میکند؟
- شناسههای commit از نوع SHA-1. برای SHA-256 نیاز به افزونه است.
نکات
نکتهها- پیش از اجرای خروجی گرفتن نهایی، نتیجهی مورد انتظار را یادداشت کنید.
- ورودی را کنار خروجی نگه دارید تا دیگران بتوانند آن را بازتولید کنند.
- رسید JSON را بخوانید و پیش از یکپارچهسازی، یک ورودی جدید را آزمایش کنید.
- ارائهدهندگان راهدور به HTTPS نیاز دارند. پروتکل HTTP فقط برای loopback کار میکند.
- فایل integration.go را بعد از مراحل اصلی بخوانید.