گزارش را با readable بساز, بعد از تأیید روی پورتال منتشر کن, و ایمیل کوتاه با لینک بده. Triggers: «منتشر کن», «بذار روی پورتال», «صفحهاش کن», "publish this".
Installs into .claude/skills of the current project.
Are you the author of Publish?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/smk-labs-publish)
---
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` فقط زیپ را میسازد و آپلود نمیکند، برای وقتی کاربر خودش میخواهد آپلود کند.
- زبان هر سه خروجی همان زبان مکالمه است.
- اگر انتشار شکست خورد، همانجا بگو، فایل گزارش را تحویل بده و جلوتر نرو.