publish · git:20260910.35de111 · 2026-09-10 · sha256 af3ebd1d7b0a35c6
publish git:20260910.35de111F
Immutable. This exact content never changes and is served at /api/v1/blob/af3ebd1d7b0a35c6.
--- name: publish description: >- گزارش را با readable بساز, بعد از تأیید روی پورتال منتشر کن, و ایمیل کوتاه با لینک بده. Triggers: «منتشر کن», «بذار روی پورتال», «صفحهاش کن», "publish this". --- # publish: گزارش، صفحه، ایمیل سه تحویل پشت سر هم. هیچکدام بدون تأیید کاربر به بعدی نمیرود. 1. **گزارش.** با `/readable:report` یک فایل HTML مستقل بساز. اگر کارتی در چت هست، محتوای همان را عیناً بردار. چون خروجی روی وب میزبانی میشود، `--inline-figures` بده. 2. **تأیید.** مسیر فایل را بهصورت لینک بده و بپرس منتشر شود یا نه. تا «بله» نگرفتهای هیچ چیزی آپلود نکن. 3. **صفحه.** یک دستور، از فایل تا لینک: ```bash node "<this skill dir>/publish.js" <path-to-report.html> [--slug my-report] [--viewer a@b.com] ``` خودش زیپ میکند، `name` را از `<title>` سند برمیدارد، و `access_mode` پیشفرض `allowlist` است. JSON برمیگرداند؛ `url` را به کاربر بده. برای جایگزینی یک صفحهٔ موجود با همان لینک: `--page-id <id>`. 4. **ایمیل.** یک کارت readable کوتاه بساز، به لحن `/me:write-as-me`: دو سه جمله که بگوید این چیست و چرا مهم است، بهعلاوهٔ لینک صفحه. محتوای گزارش را تکرار نکن. آخرش به کاربر بگو از منوی همان کارت گزینهٔ Email را بزند تا آمادهٔ کپی شود. ## چرا اسکریپت، نه ابزار MCP ابزار `pages_create_from_zip` آرشیو را base64 میگیرد. یک گزارش ۷۵۰ کیلوبایتی با فونت جاسازیشده حدود ۶۳۰ کیلوبایت base64 میشود، یعنی صدهزار توکن که باید از کانتکست رد شود و بایتهایش هم سالم درنمیآید. اسکریپت فایل را از دیسک میخواند و خودش POST میکند، پس هیچوقت `pages_create_from_zip` یا `pages_create_from_text` را مستقیم صدا نزن و محتوای فایل را هم نخوان. - ورودی میتواند یک فایل، یک پوشه (که باید `index.html` در ریشه داشته باشد)، یا یک زیپ آماده باشد. - لاگین از همان توکنی میآید که `mcp-remote` نگه داشته. اگر گفت لاگین نیست، پیام خودش دستور را میدهد. - `--out file.zip` فقط زیپ را میسازد و آپلود نمیکند، برای وقتی کاربر خودش میخواهد آپلود کند. - زبان هر سه خروجی همان زبان مکالمه است. - اگر انتشار شکست خورد، همانجا بگو، فایل گزارش را تحویل بده و جلوتر نرو.