نوشتن PRD خوب زمان میبرد — و زیبایی کار اینجاست که خود Claude میتواند در نوشتنش کمک کند. کافی است یک Skill بسازیم که به مدل یاد بدهد ما PRDهایمان را «چطور» دوست داریم. بعد فقط میگوییم «I need a PRD» و مدل با فرمت ما، سؤالهای شفافکننده میپرسد و سند را تحویل میدهد.
آناتومی PRD Skill
فایل Skill در `.claude/skills/prd/SKILL.md` زندگی میکند:
---
name: prd
description: Create a product requirement document for handoff to an AI agent.
---
## Behavior
1. Gather requirements — ask clarifying questions until the scope is clear.
2. Research the codebase — explore the relevant parts first.
3. Create a new folder in prd/to-refine/ and write the PRD there.
## PRD directories
- prd/to-refine/ → model output lands here
- prd/backlog/ → human-approved, ready for Ralph
- prd/completed/ → archive for reference
## Guidelines
- Vague requirements lead to misaligned implementations.
- Include context: explain WHY, not just what.
- Reference existing code. Consider edge cases.
- Define success criteria. Keep the scope bounded.
- Use project conventions.چرخه سهپوشهای
الگوی کلیدی این Skill، چرخه Refine است: مدل خروجیاش را در `prd/to-refine` میگذارد؛ تو بهعنوان انسان بازبینی میکنی و اگر خوب بود به `prd/backlog` میکشی؛ اسکریپت `ralph.js` هم (با یک تغییر کوچک) محتویات Backlog را لیست میکند و میگذارد PRD موردنظر را تعاملی انتخاب کنی — و اگر فقط یکی باشد، مستقیم شروع میکند.
نمونه واقعی: وبشاپ اغذیهفروشی
پرامپت واقعی این بود:
I need a PRD. Clean up the Vue project and create a small web shop
for a snack bar. Let me add items to the cart (burgers, fries, pizza).
No checkout flow — homepage and cart functionality is enough.مدل چند تصمیم برگشت داد که باید تأیید یا رد میکردیم — و اینجا تجربه مهندسی تو وارد بازی میشود:
- State Management: مدل گفت Pinia یا Vuex «برای این Scope زیادی پیچیده است» و یک `useCart` Composable پیشنهاد داد — قابل قبول.
- مدل برای آیتمهای منو فیلد Emoji گذاشت. سوگیری معروف AI به ایموجی! برای تمرین مشکلی نیست، ولی در محصول واقعی بزرگترین امضای «این را AI ساخته» همین است.
- اولویتها را جابهجا کردیم: کنترل تعداد در سبد باید High میبود، افکت Hover و انیمیشنها Low.
اجرای حلقه و یک درس مهم
PRD به Backlog رفت و `node ralph.js` اجرا شد. اولین بار حلقه به سقف پیشفرض ۱۰ Iteration خورد در حالی که وظایف بیشتر از ۱۰ تا بود — پس یا سقف را بالاتر بگیر (`node ralph.js 20`) یا دوباره اجرا کن؛ حلقه از همانجا که مانده ادامه میدهد، چون حافظه در فایلهاست.
نتیجه نهایی: منو، افزودن به سبد، تغییر تعداد، جمع کل و Empty State — همه کار میکرد. در کد هم منطق قشنگی دیده شد: موقع افزودن به سبد، اول دنبال آیتم تکراری میگردد و اگر بود فقط Quantity را زیاد میکند — نه دو ردیف «همبرگر، همبرگر».
function addToCart(item) {
const existing = cart.value.find((i) => i.id === item.id);
if (existing) existing.quantity++;
else cart.value.push({ ...item, quantity: 1 });
}به زبان ساده
یک Skill به مدل یاد میدهد PRD را «به روش تو» بنویسد. خروجی میرود to-refine، تو بازبینی میکنی، به backlog میکشی، حلقه برش میدارد.
مثال واقعی
«یک وبشاپ کوچک برای اسنکبار، بدون Checkout.» مدل Pinia را زیادی دانست و `useCart` ساخت؛ کنترل تعداد را High کردیم و ایموجی را بهعنوان سوگیری AI شناختیم. حلقه اول به سقف ۱۰ خورد — دوباره اجرا شد و از روی فایلها ادامه داد.