# Mkprompt Goal

> پرامپت‌ساز هدف‌محور و پیش‌فرض: هدف یک سطح بالاتر, راه تأیید کار, شرط توقف عینی. Triggers: «پرامپت بساز», «پرامپت بده», «پرامپت هدف‌محور», "write me a prompt for". برای گاردریل سفت از mkprompt-classic استفاده کن.

- Skill: `smk-labs/mkprompt-goal` (Agent Skill)
- Install (CLI): `npx skillmds@latest add smk-labs/mkprompt-goal`
- Raw SKILL.md: https://api.skillmd.com/api/skills/smk-labs/mkprompt-goal/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: smk-labs (https://skillmd.com/u/smk-labs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/smk-labs/mkprompt-goal

---


# mkprompt-goal: هدف، راه تأیید، شرط توقف

ورودی: موضوع یا کار. اگر ابهام تعیین‌کننده دارد (کدام ریپو؟ کار با چه چیزی «تمام‌شده» حساب می‌شود؟) حداکثر یک پرسش batched؛ وگرنه با پیش‌فرض معقول بساز.

این سبک پیش‌فرض است. وقتی کاربر «کامل», «تشریحی», «با گاردریل», «spec» یا «classic» گفت، یا خودش قید سفت داد (فرمت خروجی دقیق، لحن، خط قرمز)، کار مال `mkprompt-classic` است.

## سه چیز، نه بیشتر

1. **هدف** در یک یا دو جمله، یک سطح بالاتر از آنچه فکر می‌کنی مدل می‌تواند. کار را تجزیه نکن، مرحله شماره‌گذاری نکن، روش را دیکته نکن.
2. **راه تأیید**: مدل با چه چیزی خودش می‌فهمد درست کار می‌کند؟ تست، بیلد، اسکرین‌شات و مقایسه، یک اسکریپت، دیتای واقعی. مهم‌ترین خط پرامپت همین است؛ بدون آن مدل گیر می‌کند و بقیهٔ پرامپت هدر است.
3. **شرط موفقیت و توقف**: «تمام» یعنی چه، دقیق و قابل‌چک. با «تا وقتی X نشده نایست.»

بعلاوه فقط اگر واقعاً لازم است: مسیر ریپو یا سرویس، یک خط دسترسی (کلید، رانر، لینک)، و یک خط خط قرمز.

هرچه مدل خودش می‌داند بنویس نکن. توضیح بدیهیات، مرحله‌بندی و لحن معلم‌وار پرامپت را ضعیف می‌کند، نه قوی.

الگو:

```
<هدف، یک تا دو جمله>

Verify as you go: <چطور خودش چک کند>
Done when: <شرط عینی>
Don't stop until it's done.
```

## کار طولانی: خودِ پرامپت ران را می‌گرداند

هر وقت کار از یک نشست بزرگ‌تر است (مهاجرت، بازنویسی، پاکسازی گسترده، هر چیزی که کاربر می‌گوید «طول می‌کشد»)، هیچ نکتهٔ اجرایی را در چت به کاربر نگو. کاربر پرامپت را می‌دهد و می‌رود؛ هر چیزی که لازم است انجام شود باید داخل خود پرامپت به ایجنت گفته شده باشد: لوپ خودش، حافظهٔ خودش، ساب‌ایجنت‌های خودش.

**تست پذیرش پرامپت، قبل از تحویل:** یک سشن تازه بدون هیچ تاریخچه‌ای، فقط با خواندن ریپو و یک فایل، می‌تواند بگوید چه تمام شده و بعدی چیست؟ اگر نه، پرامپت هنوز آمادهٔ ران طولانی نیست.

شش چیزی که باید در متن باشد:

1. **مأموریت بی‌نظارت**: «هر چند سشن هم شد، بی‌نظارت ادامه بده.»
2. **اول فایل پیشرفت، قبل از هر کد**: یک خط برای هر واحد و وضعیتش. جانشین کانتکست طولانی همین است، نه خلاصه‌نویسی.
3. **لوپ خودگردان**: بعد هر واحد خودش را بیدار کند. هر شات: فایل و گیت‌لاگ را بخوان، یک واحد بردار، تأیید کن، کامیت کن، تیک بزن. هیچ‌وقت از صفر برنامه‌ریزی نکند و نپرسد «بعدی چه؟».
4. **ساب‌ایجنت برای خواندن و گشتن**: چند خط برگردانند نه محتوای فایل، تا کانتکست خودش برای کار بماند. قضاوت مال خودش.
5. **تأییدکنندهٔ بیرونی و شرط توقف**: تست، بیلد، دیتای واقعی؛ و در آخر بستن لوپ.
6. **پلن ب اگر لوپ نبود**: لوپ خودکار قابلیت Claude Code است. اگر ایجنت جایی است که ندارد، تا ته همان سشن برود؛ فایل پیشرفت باعث می‌شود سشن بعدی از همان‌جا بردارد.

الگوی خودگردان:

```
<هدف، یک تا دو جمله>

Run this unattended, across as many sessions as it takes. Before any other work, create <فایل> with one line per <واحد> and its state. Then pace yourself: after each unit, schedule your own next wake-up and keep going until the job is done. Every shot: read <فایل> and the git log to see where you are, take the next single unit, verify it, commit it, tick it off. Never re-plan from scratch and never ask what to do next. If you cannot schedule yourself where you are running, go to the end of this session instead; <فایل> is what lets the next one resume.
Send reading, searching and log scanning to subagents that come back with a few lines, not file dumps, so your own context stays for the work. Keep the judgement yourself.

Verify as you go: <چطور خودش چک کند>
Done when: <شرط عینی>. Then write what you built into <سند> and stop looping.
Don't stop until it's done.
```

## تحویل: پیشنهاد تسک، نه فقط متن

پرامپت که آماده شد، دو کار بکن، به همین ترتیب:

1. **پیشنهاد تسک بساز** با `mcp__ccd_session__spawn_task`، تا کاربر با یک کلیک همان‌جا شروعش کند:
   - `cwd`: پوشهٔ درست همان کار (ریپوی هدف)، نه پوشهٔ سشن فعلی. اگر کار در ریپوی دیگری است، مسیر آن ریپو.
   - `prompt`: کل پرامپت، عیناً و کامل. باید خودایستا باشد؛ ایجنت این گفتگو را نمی‌بیند.
   - `title`: فعل امری، زیر ۶۰ کاراکتر.
   - `tldr`: یکی دو جمله زبان ساده، بدون مسیر فایل.
   - اگر کاربر خواست پرامپت را اصلاح کنی، نسخهٔ تازه را spawn کن و چیپ قبلی را با `mcp__ccd_session__dismiss_task` بردار تا دو تا تسک تکراری نماند.
   - اگر این ابزار در دسترس نبود، فقط متن را بده و همان یک خط بگو که پیشنهاد تسک اینجا نیست.
2. **متن خام را هم در چت بده**، داخل یک بلوک کد و همزمان با `pbcopy` در کلیپ‌بورد، برای وقتی که کاربر می‌خواهد جای دیگری (ماشین دیگر، اپ دیگر) بچسباند.

## قواعد خروجی (مهم‌ترین بخش)

- کارت نزن: این متن ghost-written است و طبق قانون کارت خام می‌ماند تا قابل کپی باشد.
- بعد از بلوک فقط یک خط: «توی کلیپ‌بورد هم هست. پیشنهاد تسک هم بالا آماده است.» هیچ توضیح اجرایی، هیچ درس لوپ و ساب‌ایجنت، هیچ یادآوری سبک دیگر. جای همهٔ آن‌ها داخل پرامپت است.
- زبان پرامپت: انگلیسی، مگر کاربر فارسی بخواهد. موجز و امری، بدون تعارف و مقدمه.
- طول متناسب با کار: کار کوچک، پرامپت کوچک. هیچ بخش تشریفاتی اضافه نشود.

