From a4a24c51af1ce3283cf826dcff3dadaa51261017 Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Fri, 7 Aug 2026 20:03:49 +0330 Subject: [PATCH] refactor(guidelines): update guidelines and add mandatory Grill section for all skills --- .claude/guidelines.md | 22 ++++++++++++++++++++-- .claude/skills/figma-to-feature/SKILL.md | 2 ++ .claude/skills/prompt-writer/SKILL.md | 2 +- .claude/skills/qa-clinicpro/SKILL.md | 2 ++ .claude/skills/redesign-page/SKILL.md | 2 ++ .claude/skills/run-prompt/SKILL.md | 2 +- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.claude/guidelines.md b/.claude/guidelines.md index 8e2072c8..01646320 100644 --- a/.claude/guidelines.md +++ b/.claude/guidelines.md @@ -1,6 +1,6 @@ -# راهنمای مشترک `prompt-writer` و `run-prompt` +# راهنمای مشترک اسکیل‌های این پروژه -این فایل مرجع کیفیت هر دو اسکیل است. هر دو اسکیل باید در ابتدای بدنهٔ خود این خط را داشته باشند: +این فایل مرجع کیفیت همهٔ اسکیل‌های پروژه است. هر اسکیل باید در ابتدای بدنهٔ خود این خط را داشته باشد: > قبل از شروع، فایل `.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن. @@ -8,6 +8,24 @@ --- +## ۰. Grill — قبل از هر تغییر (اجباری) + +قبل از نوشتن کد، ساختن فایل یا اجرای هر تغییر: + +1. ابزار Skill را با `skill: "mattpocock-skills:grilling"` صدا بزن. +2. طبق آن اسکیل، سؤال‌ها را **یکی‌یکی** بپرس و بعد از هر سؤال منتظر جواب بمان. +3. هر چیزی که با ابزار قابل کشف است را نپرس. خودت پیدا کن. +4. اول `graphify query "<سؤال>"` بزن، بعد فایل بخوان. +5. فقط **تصمیم‌ها** را از کاربر بپرس، نه **واقعیت‌ها**. +6. برای هر سؤال، پاسخ پیشنهادی خودت را هم بنویس. +7. تا وقتی کاربر «تأیید» نداده، هیچ فایلی را تغییر نده. + +خروجی این مرحله یک درک مشترک است. بعد از تأیید، برو سراغ §۱. + +**استثنا:** اگر کاربر گفت «بدون grill»، «مستقیم انجام بده» یا «سؤال نپرس»، این بخش را رد کن. + +--- + ## ۱. درک مسئله — قبل از هر خط کد هیچ چیز گران‌تر از پیاده‌سازیِ درستِ مسئلهٔ اشتباه نیست. به همین دلیل: diff --git a/.claude/skills/figma-to-feature/SKILL.md b/.claude/skills/figma-to-feature/SKILL.md index 6074df56..1e3c2af7 100644 --- a/.claude/skills/figma-to-feature/SKILL.md +++ b/.claude/skills/figma-to-feature/SKILL.md @@ -4,6 +4,8 @@ description: وقتی کاربر یک لینک figma.com/design با node-id م کن، نیازهای فرانت‌اند و بک‌اند را استخراج کن و پس از تأیید پیاده‌سازی کن. --- +> **قبل از شروع، فایل `clinicpro/.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن — از جمله `§۰ Grill` که قبل از هر تغییر اجباری است.** + ## بخش ۰ — زبان (قبل از هر کاری) - ورودی من فارسی است. منظور را استخراج کن، نه ترجمه‌ی لغوی. - متن را به یک normalized English spec تبدیل کن با فیلدهای: diff --git a/.claude/skills/prompt-writer/SKILL.md b/.claude/skills/prompt-writer/SKILL.md index fc816ce2..ffd28056 100644 --- a/.claude/skills/prompt-writer/SKILL.md +++ b/.claude/skills/prompt-writer/SKILL.md @@ -3,7 +3,7 @@ name: prompt-writer description: تولید فایل پرامپت .md برای یک قابلیت یا باگ‌فیکس در پروژه ClinicPro. استفاده کن وقتی کاربر می‌گوید «یک پرامپت بنویس»، «پرامپت بساز»، «write a prompt»، «برام پرامپت بنویس برای X». این skill پروژه را تحلیل می‌کند، سپس یک فایل .md کامل در .claude/prompt/ می‌سازد و دستور اجرا را نمایش می‌دهد. --- -> **قبل از شروع، فایل `.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن** (اگر روت جلسه workspace است: `clinicpro/.claude/guidelines.md`). آن فایل «چگونه کار کردن» (درک مسئله، معیار پذیرش، تست، مستندات، SOLID، رفتار تحلیل‌گر) را تعیین می‌کند؛ این skill فقط قواعد stack و مسیرها و قالب خروجی را دارد. در تناقض، guidelines برنده است. +> **قبل از شروع، فایل `.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن — از جمله `§۰ Grill` که قبل از هر تغییر اجباری است** (اگر روت جلسه workspace است: `clinicpro/.claude/guidelines.md`). آن فایل «چگونه کار کردن» (درک مسئله، معیار پذیرش، تست، مستندات، SOLID، رفتار تحلیل‌گر) را تعیین می‌کند؛ این skill فقط قواعد stack و مسیرها و قالب خروجی را دارد. در تناقض، guidelines برنده است. ## نحوه دریافت ورودی diff --git a/.claude/skills/qa-clinicpro/SKILL.md b/.claude/skills/qa-clinicpro/SKILL.md index ff49d90f..61e4b5d4 100644 --- a/.claude/skills/qa-clinicpro/SKILL.md +++ b/.claude/skills/qa-clinicpro/SKILL.md @@ -3,6 +3,8 @@ name: qa-clinicpro description: تست QA اپلیکیشن ClinicPro مثل یک کاربر واقعی — ابتدا ساخت همهٔ نقش‌ها و پروفایل‌های کامل (پزشک مستقل، پزشک عضو کلینیک، کلینیک، منشی، نماینده، بیمار، …) و تعیین ماتریس سطح دسترسی، سپس تست ماتریس دسترسی با تک‌تک آن‌ها. هر مانعی سر راه تست را مثل یک دولوپر ارشد Symfony/React خودش رفع می‌کند و تست را ادامه می‌دهد. اجرای اپ، ورود با هر نقش، پیمایش صفحات پنل ادمین، اسکرین‌شات، کشف خطاهای کنسول و شبکه، تست UI/UX و RTL، تست دسترسی نقش‌ها (authz)، تست قرارداد API و اندازه‌گیری کارایی، و تولید Bug Report. Use when asked to QA, test, smoke-test, find bugs in, screenshot, or verify ClinicPro's admin panel or API — «تست کن»، «باگ پیدا کن»، «QA کن»، «این صفحه را بررسی کن». --- +> **قبل از شروع، فایل `clinicpro/.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن — از جمله `§۰ Grill` که قبل از هر تغییر اجباری است.** + # QA ClinicPro ClinicPro = بک‌اند Symfony 7.4 + یک **SPA کلاینت‌ساید React 19** که از `/admin/*` سرو می‌شود. diff --git a/.claude/skills/redesign-page/SKILL.md b/.claude/skills/redesign-page/SKILL.md index 893ffaae..63b5887a 100644 --- a/.claude/skills/redesign-page/SKILL.md +++ b/.claude/skills/redesign-page/SKILL.md @@ -3,6 +3,8 @@ name: redesign-page description: نقد و بازطراحی حرفه‌ای UI/UX یک صفحه از پنل ادمین ClinicPro از روی URL آن — اسکرین‌شات در چهار نما (روشن، تیره، فشرده، موبایل)، پروبِ دسترسی‌پذیری روی DOM زنده، نگاشت URL به فایل سورس، آدیت انحراف از دیزاین‌سیستم، و بازنویسی با کامپوننت‌ها و توکن‌های موجود. استفاده کن وقتی کاربر یک URL از /admin می‌دهد و می‌گوید «این صفحه ui/ux خوبی ندارد»، «این صفحه را بازطراحی کن»، «این صفحه را نقد کن»، «redesign this page»، «UI/UX review»، «این قسمت را درست کن»، یا «screenshot این صفحه». --- +> **قبل از شروع، فایل `clinicpro/.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن — از جمله `§۰ Grill` که قبل از هر تغییر اجباری است.** + # نقد و بازطراحی صفحهٔ پنل ادمین ClinicPro نقش: متخصص ارشد UI/UX. هدف **بهبود تجربهٔ کاربری در چهارچوب تم فعلی** است، نه ساختن diff --git a/.claude/skills/run-prompt/SKILL.md b/.claude/skills/run-prompt/SKILL.md index 6d6f1b45..35d88d2d 100644 --- a/.claude/skills/run-prompt/SKILL.md +++ b/.claude/skills/run-prompt/SKILL.md @@ -3,7 +3,7 @@ name: run-prompt description: اجرای یک فایل پرامپت .md به صورت گام‌به‌گام و ایمن. هر قابلیت را جداگانه پیاده‌سازی، تست و مستند می‌کند. استفاده کن وقتی کاربر می‌گوید "اجرای پرامپت"، "پرامپت را اجرا کن"، "run prompt"، یا مسیر یک فایل .md می‌دهد. --- -> **قبل از شروع، فایل `.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن** (اگر روت جلسه workspace است: `clinicpro/.claude/guidelines.md`). آن فایل «چگونه کار کردن» (درک مسئله، todo، تعریف «تمام شد»، مستندات، SOLID، رفتار تحلیل‌گر، چک‌لیست پایانی §۷) را تعیین می‌کند؛ این skill فقط قواعد stack، دستورهای تست و مسیرها را دارد. در تناقض با متن پرامپت، guidelines برنده است — مگر کاربر صریحاً خلافش را بگوید. +> **قبل از شروع، فایل `.claude/guidelines.md` را بخوان و همهٔ بخش‌های آن را اعمال کن — از جمله `§۰ Grill` که قبل از هر تغییر اجباری است** (اگر روت جلسه workspace است: `clinicpro/.claude/guidelines.md`). آن فایل «چگونه کار کردن» (درک مسئله، todo، تعریف «تمام شد»، مستندات، SOLID، رفتار تحلیل‌گر، چک‌لیست پایانی §۷) را تعیین می‌کند؛ این skill فقط قواعد stack، دستورهای تست و مسیرها را دارد. در تناقض با متن پرامپت، guidelines برنده است — مگر کاربر صریحاً خلافش را بگوید. ## نحوه دریافت ورودی