New_Micro_Learning/Prompt/Prompt.md

2107 خطوط
35 KiB
Markdown
خام پیوند همیشگی سرزنش تاریخچه

مخزن ambiguous runes header

راهنمای مخزن ambiguous runes توضیحات

# CHANGE SAFETY PROTOCOL — MANDATORY
این پروژه در حال حاضر دارای قابلیت‌های فعال و کد عملیاتی است.
هدف این برنامه **Stabilization و Controlled Improvement** است، نه بازنویسی پروژه.
## اصل اول — Working Code Is Sacred
اگر یک بخش:
* درست کار می‌کند،
* Test آن سبز است،
* Security issue ندارد،
* مانع مستقیم Phase فعلی نیست،
فقط برای Clean Code، زیبایی Architecture یا Preference شخصی آن را تغییر نده.
---
## Minimum Necessary Change
برای حل هر Issue کمترین تغییر ممکن را انجام بده.
مثلاً اگر یک Bug با تغییر:
* یک Route،
* یک Service،
* یا یک Component
قابل حل است، از Refactor گسترده بخش‌های دیگر خودداری کن.
---
## Scope Lock
در ابتدای هر Phase دقیقاً مشخص کن:
```text
Files expected to change
Modules affected
Behavior expected to change
Behavior that must remain unchanged
```
در طول Phase از این Scope خارج نشو مگر اینکه یک Blocker واقعی پیدا شود.
اگر مشکل دیگری پیدا کردی که برای Phase جاری ضروری نیست، آن را در:
```text
Deferred Technical Debt
```
ثبت کن و تغییرش نده.
---
## No Opportunistic Refactoring
این موارد ممنوع هستند مگر اینکه مستقیماً برای حل مشکل Phase ضروری باشند:
* Renameهای گسترده
* تغییر Folder Structure
* تغییر Architecture unrelated
* تغییر API Contract unrelated
* تغییر State Management unrelated
* تغییر Database Schema unrelated
* Replace کردن Libraryها
* Rewrite کردن Componentهای سالم
* تغییر Design System در Phase فنی
* Dependency Upgrade گسترده
---
## Preserve Existing Behavior
قبل از تغییر مشخص کن رفتار فعلی چیست.
پس از تغییر همان رفتارهای سالم باید حفظ شده باشند.
Feature موجود نباید به‌صورت تصادفی:
* حذف شود،
* غیرفعال شود،
* تغییر UX پیدا کند،
* یا رفتار متفاوت پیدا کند.
---
## Regression Test Rule
برای هر Bug واقعی ترجیحاً:
```text
Reproduce
Write regression test
Confirm test fails
Implement minimum fix
Confirm test passes
```
اگر نوشتن Test ممکن نبود، دلیل آن را گزارش کن.
---
## Never Fix Tests by Weakening Them
برای سبز کردن Pipeline حق نداری:
* Test را حذف کنی.
* Test را skip کنی.
* Assertion را حذف کنی.
* شرط Test را ضعیف کنی.
* Error را suppress کنی.
مگر اینکه Test واقعاً اشتباه باشد و دلیل فنی آن را مستند کنی.
---
## Checkpoint Rule
قبل از هر Phase:
```bash
git status
```
را بررسی کن.
Phase باید روی وضعیت مشخص شروع شود.
بعد از Phase:
```bash
git diff
git status
```
را بررسی کن.
هر Phase باید یک تغییر مستقل و قابل rollback باشد.
---
## One Phase = One Stable Checkpoint
تا زمانی که موارد زیر سبز نشده‌اند Phase را Completed اعلام نکن:
```text
Relevant Backend Tests
Relevant Frontend Tests
Lint
Typecheck
Build
Smoke Tests
```
در صورت Failure ابتدا همان Phase را Stabilize کن.
به Phase بعد نرو.
---
## Stop-Loss Rule
اگر Fix یک Issue باعث شد:
* بیش از حد انتظار فایل تغییر کند،
* Architecture جدید نیاز شود،
* APIهای زیادی تحت تأثیر قرار گیرند،
* migration گسترده لازم شود،
* Regression متعدد ایجاد شود،
کار را متوقف کن.
به‌جای ادامه دادن، گزارش بده:
```text
Issue:
Why the fix became high-risk:
Files/modules affected:
Safer alternatives:
Recommended next step:
```
بدون اجازه User تغییر پرریسک را ادامه نده.
---
## Refactor Budget
برای Phaseهای Bug Fix:
حداکثر Refactor باید فقط به اندازه‌ای باشد که Bug امن و قابل نگهداری حل شود.
از Refactor پروژه‌محور خودداری کن.
---
## Dependency Freeze
در Phaseهای Stabilization هیچ Dependency عمده‌ای را Upgrade یا Replace نکن مگر اینکه:
* vulnerability جدی وجود داشته باشد،
* dependency خراب باشد،
* یا Issue بدون آن قابل حل نباشد.
هر Dependency Change را جداگانه گزارش کن.
---
## Database Safety
Migrationهای موجود را rewrite نکن.
برای schema change از Migration جدید استفاده کن.
عملیات destructive روی داده موجود ممنوع است مگر با دستور صریح User.
---
## API Safety
API Contractهای فعال را بدون ضرورت تغییر نده.
اگر تغییر API ضروری است:
1. مصرف‌کنندگان آن را پیدا کن.
2. backward compatibility را بررسی کن.
3. frontend و tests را همزمان اصلاح کن.
4. تغییر Contract را صریح گزارش کن.
---
## UI Safety During Technical Phases
در Phaseهای Technical:
* layout را redesign نکن.
* spacing را redesign نکن.
* navigation را redesign نکن.
* typography را تغییر نده.
* visual styling unrelated را تغییر نده.
فقط UI لازم برای رفع Bug مجاز است.
---
## Technical Safety During UI Phases
در Phaseهای UI:
Business Logic، Database و Backend Architecture را فقط زمانی تغییر بده که UI بدون آن قابل اجرا نباشد.
در غیر این صورت Technical Debt ثبت کن.
---
## Final Principle
هدف هر Phase:
```text
Project after Phase
=
Project before Phase
+
specific improvement
-
specific bug
```
نه:
```text
Project after Phase
=
partially rewritten project
+
new unknown regressions
```
# Master Prompt — MicroLearning Debug, Refactor & UI/UX Enhancement
می‌خواهم پروژه **MicroLearning** را به‌صورت مرحله‌ای، کنترل‌شده و Production-Ready بررسی، Debug، Refactor و از نظر UI/UX ارتقا دهی.
## قانون اصلی اجرای پروژه
این کار باید دقیقاً در **۹ فاز از Phase 0 تا Phase 8** انجام شود.
**هرگز چند فاز را همزمان انجام نده.**
پس از پایان هر فاز:
1. تمام تغییرات همان فاز را کامل کن.
2. تست‌های مرتبط را اجرا کن.
3. Regression احتمالی را بررسی کن.
4. فایل‌های تغییرکرده را اعلام کن.
5. باگ‌های پیدا شده را اعلام کن.
6. باگ‌های رفع‌شده را اعلام کن.
7. نتیجه Test / Lint / Build را اعلام کن.
8. وضعیت Git را بررسی کن.
9. یک گزارش کوتاه ارائه کن.
10. متوقف شو.
تا زمانی که من صراحتاً نگفته‌ام:
> برو فاز بعد
نباید Phase بعدی را شروع کنی.
---
# اصول غیرقابل مذاکره
در تمام فازها این قوانین رعایت شوند.
* Feature موجود بدون دلیل حذف نشود.
* رفتار فعلی سیستم بدون ضرورت تغییر نکند.
* داده کاربران یا migrationهای موجود خراب نشوند.
* API Contract بدون بررسی frontend تغییر نکند.
* هیچ Mock دائمی وارد production code نشود.
* هیچ hard-coded URL جدید ایجاد نشود.
* هیچ API Key یا Secret داخل source code قرار نگیرد.
* `.env` commit نشود.
* Architecture جدید باید component-based و maintainable باشد.
* TypeScript تا جای ممکن strict باقی بماند.
* `any` فقط با دلیل موجه استفاده شود.
* Errorها silent swallow نشوند.
* همه Async Operationها loading/error state داشته باشند.
* RTL و LTR هر دو حفظ شوند.
* Dark/Light Mode خراب نشود.
* Responsive Design حفظ شود.
* Accessibility در componentهای جدید رعایت شود.
* از ایجاد فایل‌های بسیار بزرگ جلوگیری شود.
* قبل از ساخت component جدید بررسی کن component مشابه وجود دارد یا خیر.
* Design Tokenهای فعلی را تا حد ممکن reuse کن.
* duplicate logic ایجاد نکن.
* Business Logic را از UI جدا نگه دار.
اگر برای رفع یک مشکل مجبور به تغییر Architecture شدی، ابتدا impact آن را بررسی کن.
---
# تکنولوژی پروژه
Frontend:
* React
* TypeScript
* Vite
* React Query
* CSS / Design System موجود
Backend:
* Laravel
* PHP
* REST API
* Laravel Sanctum
* Queue / Jobs
* Database-backed configuration
AI Providers شامل مواردی مانند:
* Ollama
* OpenAI-compatible providers
* LM Studio
* vLLM
* Custom providers
---
# PHASE 0 — Full Baseline & Project Health Audit
## هدف
قبل از تغییر سورس باید وضعیت واقعی فعلی پروژه ثبت شود.
هیچ Refactor یا Feature Development در این فاز انجام نده.
## کارها
ابتدا ساختار پروژه را بررسی کن.
موارد زیر را شناسایی کن:
* Frontend entry points
* Backend entry points
* Routes
* Middleware
* Authentication flow
* Permissions
* API Client
* React Query configuration
* Builder architecture
* AI architecture
* Queue architecture
* Database migrations
* Tests
* GitHub Actions
* Environment/config files
---
## Backend baseline
اجرا کن:
```bash
php artisan about
php artisan route:list
php artisan route:list --path=ai
php artisan test
```
در صورت وجود ابزارها:
```bash
./vendor/bin/pint --test
```
و هر static analysis موجود در پروژه.
ثبت کن:
* تعداد Tests
* تعداد Assertions
* Failed Tests
* Skipped Tests
* Warnings
---
## Frontend baseline
اجرا کن:
```bash
npm ci
npm run lint
npm run typecheck
npm test
npm run build
```
اگر script متفاوت است ابتدا `package.json` را بررسی کن.
ثبت کن:
* تعداد Test files
* تعداد Tests
* TypeScript errors
* ESLint errors
* Build errors
* Build warnings
---
## GitHub Actions
Workflowهای موجود را بررسی کن.
Quality Gate مطلوب:
```text
install
lint
typecheck
test
build
```
Backend نیز باید test شود.
---
## خروجی Phase 0
جدولی بساز:
| Area | Status | Problem | Severity |
| ---- | ------ | ------- | -------- |
Severity:
```text
P0 Critical
P1 High
P2 Medium
P3 Low
```
همچنین Baseline رسمی پروژه را ثبت کن.
در این فاز هیچ تغییر معماری انجام نده.
پس از گزارش متوقف شو.
---
# PHASE 1 — Critical Bugs & Security Stabilization
این فاز فقط مربوط به مشکلات **P0 / Security / Critical API bugs** است.
---
## 1. Fix duplicated API prefix
فایل زیر را بررسی کن:
```text
backend/routes/api.php
```
مشکل شناخته‌شده:
Route group دوباره `v1` prefix گرفته و مسیرهایی مانند این ساخته شده‌اند:
```text
/api/v1/v1/ai/chat
/api/v1/v1/health
/api/v1/v1/certificates/verify/{code}
```
معماری route را اصلاح کن.
مسیر نهایی AI باید منطقی و یکتا باشد، مثلاً:
```text
/api/v1/ai/chat
```
بعد از اصلاح:
```bash
php artisan route:list
```
را اجرا و routeهای نهایی را بررسی کن.
---
## 2. Secure AI endpoints
تمام endpointهای AI را شناسایی کن.
بررسی کن:
* Authentication
* Authorization
* Throttling
* Organization scope
* Permission
* Input validation
AI endpoint نباید برای anonymous user قابل استفاده باشد مگر endpoint مشخصاً public طراحی شده باشد.
AI generation باید حداقل تحت:
```text
auth:sanctum
```
و permission مناسب باشد.
برای عملیات expensive rate limit تعریف کن.
---
## 3. SSRF Protection
تمام AI Connection URLها را بررسی کن.
سیستم نباید اجازه دهد user به هر URL دلخواه backend request ارسال کند.
Policy مناسب طراحی کن.
برای providerهای شناخته‌شده:
```text
Ollama
LM Studio
vLLM
OpenAI
```
قوانین مشخص داشته باش.
Local providerها باید بتوانند localhost را استفاده کنند.
Custom Providerها باید تحت policy / allowlist باشند.
بررسی کن:
* hostname
* protocol
* resolved IP
* redirects
* ports
* localhost rules
* private network rules
DNS rebinding و redirect bypass را نیز در نظر بگیر.
---
## 4. Secrets
بررسی کن:
```text
.env
API Keys
tokens
credentials
```
هیچ secret داخل repository قرار نگیرد.
`.gitignore` را بررسی کن.
---
## Acceptance Criteria — Phase 1
* duplicated `v1` وجود ندارد.
* anonymous AI generation امکان‌پذیر نیست.
* AI endpoint rate limited است.
* organization isolation رعایت شده.
* SSRF mitigation وجود دارد.
* تست security route نوشته شده.
* تست authentication نوشته شده.
* تست authorization نوشته شده.
* backend tests سبز هستند.
* frontend regression ایجاد نشده.
پس از پایان Phase 1 متوقف شو.
---
# PHASE 2 — AI Architecture Consolidation
## هدف
در حال حاضر AI نباید چند معماری موازی و ناسازگار داشته باشد.
تمام مسیرهای AI را پیدا کن.
به‌طور خاص بررسی کن:
```text
AIController
App\Services\AI\OllamaService
AiProviderResolver
AiProviderConnection
OpenAiCompatibleProvider
```
و فایل‌های مشابه.
---
## معماری مقصد
تمام درخواست‌های AI باید تا جای ممکن از یک abstraction واحد عبور کنند:
```text
Frontend
AI API
AI Application Service
AiProviderResolver
Provider Adapter
Provider
```
Providerها:
```text
OllamaProvider
OpenAIProvider
OpenAICompatibleProvider
LMStudioProvider
VllmProvider
```
در صورت امکان adapterها را reuse کن.
---
## Legacy Architecture
بررسی کن آیا:
```text
AIController
App\Services\AI\OllamaService
```
هنوز نیاز هستند یا خیر.
اگر functionality آنها توسط معماری جدید پوشش داده شده:
* dependencyها را migrate کن.
* tests را migrate کن.
* routeها را migrate کن.
* سپس legacy code را حذف کن.
هیچ dead code باقی نگذار.
---
## AI Config
این فایل‌ها را بررسی کن:
```text
.env.example
config/ai.php
```
هر config که application استفاده می‌کند باید واقعاً در config تعریف شده باشد.
به‌خصوص:
```text
AI_OPENAI_BASE_URL
AI_OPENAI_API_KEY
AI_OPENAI_MODEL_FAST
AI_OPENAI_MODEL_BALANCED
AI_OPENAI_MODEL_ADVANCED
AI_OPENAI_TIMEOUT
```
اگر دیگر لازم نیستند حذف شوند.
اگر لازم هستند config صحیح ایجاد شود.
---
# AI Connection Bug Fixes
## enabled bug
هنگام Create Connection بررسی کن که مقدار user:
```text
enabled=false
```
با hard-coded:
```text
enabled=true
```
overwrite نشود.
---
## Default Connection invariant
Backend باید invariant مشخص داشته باشد:
```text
Per Organization:
Maximum one default enabled AI connection
```
Create / Update / Delete / Make Default باید transaction-safe باشند.
حالت‌های زیر را تست کن:
### Scenario A
Default connection حذف می‌شود.
Expected:
یک **enabled** connection دیگر default شود.
### Scenario B
Default connection disable می‌شود.
Expected:
default به enabled connection دیگری منتقل شود یا default خالی شود.
### Scenario C
connection جدید default می‌شود.
Expected:
default قبلی atomically برداشته شود.
### Scenario D
همه connectionها disabled هستند.
Expected:
هیچ default active connection وجود نداشته باشد.
---
# AI Provider Tests
برای موارد زیر Test بنویس:
* Ollama reachable
* Ollama unavailable
* invalid model
* invalid URL
* timeout
* OpenAI compatible provider
* disabled provider
* default provider
* fallback provider
* invalid credential
* provider deletion
---
## Acceptance Criteria — Phase 2
* یک architecture اصلی AI وجود دارد.
* duplicate AI logic حذف شده.
* dead service حذف شده.
* configها consistent هستند.
* AI connections درست کار می‌کنند.
* enabled/default logic تست دارد.
* provider resolver deterministic است.
* تمام tests سبز هستند.
سپس متوقف شو.
---
# PHASE 3 — Frontend Reliability & Application State
## هدف
رفع باگ‌های state، routing و API handling.
---
# 1. Authentication State
فایل‌هایی مثل:
```text
shared/api/client.ts
AuthProvider
AuthContext
```
را بررسی کن.
مشکل:
روی HTTP 401 فقط token پاک نشود.
Authentication state نیز باید synchronize شود.
Architecture مناسب طراحی کن.
مثلاً:
```text
API receives 401
central unauthorized handler
clear token
clear user
clear protected cache
set guest state
navigate to login
```
از circular dependency جلوگیری کن.
---
# 2. React Query Cache
بعد از Logout یا Organization change:
cache حساس باید invalidate یا clear شود.
مطمئن شو اطلاعات organization قبلی برای organization جدید نمایش داده نمی‌شود.
---
# 3. Routing
AppRouter را بررسی و در صورت نیاز nested route architecture ایجاد کن.
مقصد:
```text
/app
/dashboard
/courses
/courses/:id
/library
/monitoring/*
/ai-studio
/settings
/*
```
صفحات مستقل داشته باش:
```text
404 Not Found
403 Permission Denied
Session Expired
```
Unknown route نباید صفحه unrelated نشان دهد.
---
# 4. Error Handling
برای API stateها componentهای استاندارد تعریف کن:
```text
Loading
Empty
Error
Permission denied
Offline
Retry
```
هر صفحه نباید implementation متفاوت داشته باشد.
---
# 5. Network Resilience
بررسی کن:
* timeout
* cancellation
* retry
* duplicated request
* stale data
* race condition
روی mutationهای حساس retry کورکورانه انجام نشود.
---
## Acceptance Criteria Phase 3
* Session expiry صحیح است.
* logout کامل است.
* cache leakage وجود ندارد.
* 404 صحیح است.
* 403 صحیح است.
* routes deterministic هستند.
* error handling استاندارد شده.
* lint/typecheck/test/build موفق‌اند.
سپس متوقف شو.
---
# PHASE 4 — Builder Architecture & Performance Refactor
## هدف
Builder بدون تغییر UX فعلی از نظر architecture پایدار شود.
---
# CourseBuilderPage
فایل بزرگ:
```text
CourseBuilderPage.tsx
```
را بررسی کن.
اگر همچنان بسیار بزرگ است آن را component-based کن.
Architecture پیشنهادی:
```text
builder/
components/
shell/
canvas/
toolbar/
block-library/
inspector/
structure/
review/
collaboration/
hooks/
state/
commands/
services/
utils/
types/
```
---
# State Separation
Business logic از JSX جدا شود.
مواردی مانند:
```text
selection
drag/drop
block mutations
autosave
publish
collaboration
keyboard shortcuts
```
نباید همگی داخل یک page component باشند.
---
# Rich Text
Text block فعلی را بررسی کن.
اگر HTML ذخیره می‌شود ولی render آن با regex strip می‌شود، این behavior را اصلاح کن.
Rich Text واقعی باید حداقل پشتیبانی کند:
* Paragraph
* Heading
* Bold
* Italic
* Lists
* Link
از ذخیره unsafe HTML جلوگیری کن.
Sanitization مناسب داشته باش.
در صورت نیاز از editor استاندارد مانند TipTap/ProseMirror استفاده کن، ولی dependency جدید فقط در صورت توجیه اضافه شود.
---
# Asset Resolution
بررسی کن برای دریافت یک Asset کل library دریافت نشود.
API مناسب:
```text
GET /assets/:id
```
یا hydration مناسب.
React Query cache keyهای asset را اصلاح کن.
---
# Collaboration Polling
این موارد را بررسی کن:
```text
Presence
Collaboration
Notifications
Locks
AI Jobs
```
Polling frequency را audit کن.
در صورت مناسب بودن:
* Page Visibility API
* adaptive polling
* pause in background
* exponential backoff
استفاده کن.
برای realtime architecture آینده abstraction ایجاد کن تا بعداً WebSocket/SSE قابل اضافه شدن باشد.
اما در این فاز بدون ضرورت infrastructure بزرگ جدید اضافه نکن.
---
# Memory & Rendering
بررسی کن:
* unnecessary renders
* unstable callbacks
* large context providers
* large list rendering
* expensive calculations
برای listهای بزرگ virtualization را فقط در صورت نیاز واقعی اضافه کن.
---
## Acceptance Criteria Phase 4
* Builder functionality تغییر نکرده.
* فایل‌های monolithic شکسته شده‌اند.
* business logic جدا شده.
* duplicate logic کاهش یافته.
* rich text صحیح است.
* asset loading بهینه شده.
* polling کنترل شده.
* tests برای core builder behavior وجود دارد.
* lint/typecheck/test/build سبزند.
سپس متوقف شو.
---
# PHASE 5 — Navigation, Dashboard & Information Architecture UX
این اولین فاز major UI/UX enhancement است.
در این مرحله functionality جدید سنگین اضافه نکن.
تمرکز روی usability باشد.
---
# Sidebar
Navigation فعلی را audit کن.
پیشنهاد grouping:
## Create
* Dashboard
* Courses
* Learning Paths
* Library
* Templates
* Question Bank
* AI Studio
## People
* Users
* Teams
* Assignments
## Insights
* Monitoring
* Skills
* Reports
## Manage
* Reviews
* Certificates
* Subscription
* Settings
اما grouping نهایی را بر اساس نقش‌ها و featureهای واقعی پروژه تعیین کن.
---
# Role-aware Navigation
Navigation باید بر اساس Role / Permission نمایش داده شود.
مثلاً Learner نباید ابزار Course Designer را ببیند.
---
# Dashboard Redesign
Dashboard باید action-oriented باشد.
بخش‌های پیشنهادی:
```text
Needs Attention
Continue Working
Recent Courses
Pending Reviews
Publishing Issues
Learner Risk
AI Jobs
Recent Activity
Quick Actions
```
KPIها را compactتر کن.
از empty whitespace غیرضروری جلوگیری کن.
---
# Global Header
Header باید شامل موارد مورد نیاز باشد:
* context
* search
* notifications
* user menu
اما clutter ایجاد نکند.
---
# Empty States
برای صفحات بدون داده Empty State حرفه‌ای ایجاد کن.
مثلاً Courses:
```text
هنوز دوره‌ای ایجاد نشده
اولین دوره خود را بسازید.
[ایجاد دوره]
```
---
# UX Consistency
بررسی کن:
* button hierarchy
* destructive actions
* primary CTA
* page titles
* breadcrumbs
* tables
* filters
* dialogs
* drawers
* toasts
Componentهای مشترک باید visual behavior یکسان داشته باشند.
---
## Acceptance Criteria Phase 5
* Navigation ساده‌تر شده.
* Sidebar role-aware است.
* Dashboard action-oriented است.
* visual hierarchy بهبود یافته.
* UX consistency افزایش یافته.
* Feature حذف نشده.
* responsive regression وجود ندارد.
سپس متوقف شو.
---
# PHASE 6 — Builder & AI Studio UX Enhancement
این مهم‌ترین UX Phase پروژه است.
---
# Builder Layout
Layout چهارپنله فعلی را audit کن.
هدف این است که Canvas فضای اصلی باشد.
پیشنهاد:
```text
Block Library
+
Canvas
+
Right Panel
```
Right Panel می‌تواند tab داشته باشد:
```text
Properties
Structure
Review
```
Block Library قابل collapse باشد.
---
# Slash Command
در Canvas امکان:
```text
/
```
برای افزودن سریع block بررسی و در صورت مناسب بودن اضافه شود.
مثلاً:
```text
/text
/heading
/image
/video
/quiz
/flashcard
/divider
/ai
```
Keyboard-first UX ایجاد کن.
---
# Autosave Feedback
کاربر همیشه باید وضعیت سند را بداند:
```text
Saved
Saving...
Unsaved
Offline
Conflict
Save failed
```
این indicator در toolbar قرار گیرد.
---
# Publish Readiness
قبل از Publish Validation انجام شود.
مثلاً:
```text
3 issues before publishing
```
مواردی مانند:
* Empty lesson
* Missing title
* Broken asset
* Invalid quiz
* Missing answer
* Missing required settings
نمایش داده شوند.
---
# Builder Keyboard Shortcuts
در صورت سازگاری:
```text
Ctrl/Cmd + S
Ctrl/Cmd + Z
Ctrl/Cmd + Shift + Z
Delete
Escape
Ctrl/Cmd + D
```
Shortcuts باید در input/editor مزاحم تایپ نباشند.
---
# AI Studio Redesign
AI Studio را به workflow واضح تبدیل کن.
پیشنهاد:
```text
1 Source
2 Learning Design
3 Generate
4 Review
```
---
# Upload UI
از native file input خام استفاده نکن.
Component حرفه‌ای:
```text
Drag & Drop
Browse
Supported:
PDF
DOCX
PPTX
Selected file:
filename
size
progress
remove
```
---
# AI Configuration
کاربر باید قبل از Generate موارد مهم را واضح ببیند:
```text
Provider
Model
Language
Audience
Difficulty
Duration
Learning objective
Tone
Output type
```
تنظیمات advanced را collapse کن.
---
# AI Generation Progress
به جای spinner ساده:
```text
Uploading source
Extracting content
Analyzing
Designing learning structure
Generating blocks
Validating
Preparing draft
```
نشان داده شود.
---
# AI Review
AI output نباید blind accept شود.
در صورت سازگاری architecture، review block-level ایجاد کن:
```text
AI Suggestion
Accept
Edit
Reject
```
و در نهایت:
```text
Accept all reviewed changes
```
---
## Acceptance Criteria Phase 6
* Builder سریع‌تر و ساده‌تر شده.
* Canvas فضای بیشتری دارد.
* Properties/Structure واضح‌ترند.
* Save state مشخص است.
* Publish validation وجود دارد.
* AI Studio workflow واضح دارد.
* File Upload UI حرفه‌ای است.
* AI review قابل کنترل است.
* mobile/desktop regression وجود ندارد.
سپس متوقف شو.
---
# PHASE 7 — Responsive, PWA, i18n & Accessibility
## Mobile
تمام صفحات اصلی را در حداقل viewportهای زیر بررسی کن:
```text
375px
430px
768px
1024px
1440px
```
---
# Mobile Builder
Builder نباید صرفاً در mobile مخفی شود.
نسخه **Quick Edit** ایجاد کن.
Workflow پیشنهادی:
```text
Course
Lesson
Blocks
Tap block
Full screen editor
```
Mobile باید حداقل اجازه دهد:
* edit text
* reorder block
* add common block
* delete block
* image selection
* quiz edit
* preview
* save
Advanced desktop features می‌توانند desktop-only بمانند.
---
# Learner Experience
Learner UI را جداگانه audit کن.
Focus:
* bottom navigation
* course progress
* touch targets
* reading comfort
* assessments
* resume learning
* offline/PWA state
---
# i18n
Hard-coded Persian/English stringها را audit کن.
تمام UI stringها باید از translation catalog بیایند.
مثلاً:
```text
t('builder.publish')
t('builder.saved')
t('ai.generate')
```
FA:
```text
dir=rtl
```
EN:
```text
dir=ltr
```
Mixed UI حذف شود مگر نام فنی باشد.
---
# Accessibility
Audit:
* semantic HTML
* heading hierarchy
* labels
* ARIA
* focus state
* focus trap
* modal/dialog semantics
* drawer semantics
* keyboard navigation
* contrast
* images alt
* tabs
* skip link
* reduced motion
Tabها باید keyboard accessible باشند.
Dialog باید focus trap داشته باشد.
Escape باید modal را ببندد.
Focus بعد از close به trigger برگردد.
---
# PWA
بررسی کن:
* manifest
* icons
* install
* offline fallback
* update handling
* cache policy
API response حساس را بی‌دلیل cache نکن.
---
## Acceptance Criteria Phase 7
* responsive QA کامل است.
* Builder mobile quick-edit دارد.
* FA/EN کامل‌تر شده.
* RTL/LTR صحیح است.
* accessibility issues اصلی رفع شده.
* PWA behavior پایدار است.
* Lighthouse regression جدی وجود ندارد.
سپس متوقف شو.
---
# PHASE 8 — Final QA, Production Hardening & Release Gate
این فاز هیچ major feature جدیدی ندارد.
فقط stabilization.
---
# Full Backend QA
اجرا کن:
```bash
php artisan optimize:clear
php artisan route:list
php artisan test
```
در صورت وجود:
```bash
./vendor/bin/pint --test
```
بررسی کن:
* route duplicates
* migration status
* queue jobs
* scheduler
* permissions
* policies
* organization isolation
---
# Full Frontend QA
از clean install:
```bash
rm -rf node_modules
npm ci
npm run lint
npm run typecheck
npm test
npm run build
```
---
# Manual Smoke Tests
حداقل موارد زیر را دستی بررسی کن.
## Authentication
* Login
* Logout
* Expired Session
* Unauthorized URL
* Permission Denied
## Users
* Create
* Edit
* Search
* Team assignment
## Courses
* Create
* Edit
* Builder
* Add Blocks
* Reorder
* Save
* Preview
* Publish
## AI
* Ollama connection
* Connection test
* Generate
* Failure handling
* Timeout
* Invalid model
* AI Studio workflow
## Learner
* Open course
* Continue
* Complete lesson
* Quiz
* Progress
## Monitoring
* Dashboard
* Filters
* learner progress
## Theme
* Light
* Dark
## Languages
* Persian
* English
## Responsive
* Mobile
* Tablet
* Desktop
---
# Security Audit
حداقل بررسی کن:
* XSS
* CSRF
* SSRF
* IDOR
* authorization
* organization isolation
* unsafe uploads
* mass assignment
* exposed secrets
* rate limit
* file access
* AI endpoint abuse
---
# Database
بررسی کن:
* indexes
* foreign keys
* unique constraints
* N+1 queries
* transaction boundaries
خصوصاً جداول پرترافیک.
---
# Performance
بررسی کن:
* frontend bundle size
* lazy loading
* unnecessary requests
* duplicate requests
* query count
* image loading
* large lists
قبل و بعد را در صورت امکان مقایسه کن.
---
# GitHub Actions Final Quality Gate
Pipeline نهایی باید حداقل چنین منطق داشته باشد:
```text
Backend install
Backend static checks
Backend tests
Frontend install
Frontend lint
Frontend typecheck
Frontend tests
Frontend build
SUCCESS
```
اگر هر مرحله Fail شد Release نباید موفق تلقی شود.
---
# Release Hygiene
Archive یا deployment package نباید شامل موارد غیرضروری باشد:
```text
.git
.env
node_modules
temporary logs
IDE files
runtime cache
test artifacts
```
Dependencyها باید lock شده باشند.
در PHP dependencyهای wildcard مانند:
```text
"*"
```
را بررسی و در صورت منطقی بودن version constraint مناسب تعریف کن.
`minimum-stability` را نیز بررسی کن.
---
# Final Report
در انتهای Phase 8 یک گزارش نهایی بده.
فرمت:
## 1. Bugs Fixed
جدول:
| Issue | Severity | Status |
## 2. Security Improvements
## 3. Architecture Improvements
## 4. Performance Improvements
## 5. UI/UX Improvements
## 6. Accessibility Improvements
## 7. Responsive Improvements
## 8. AI Improvements
## 9. Test Results
Backend:
```text
Tests:
Assertions:
Failures:
```
Frontend:
```text
Test Files:
Tests:
Lint:
Typecheck:
Build:
```
## 10. Remaining Technical Debt
فقط موارد واقعی باقی‌مانده را بنویس.
Severity بده:
```text
P0
P1
P2
P3
```
## 11. Production Readiness Score
از 100 امتیاز بده:
```text
Architecture
Security
Reliability
Performance
Testing
UI/UX
Accessibility
Maintainability
```
و در نهایت یکی از این وضعیت‌ها را اعلام کن:
```text
NOT READY
STAGING READY
PRODUCTION READY WITH CONDITIONS
PRODUCTION READY
```
---
# قوانین Git
در هر Phase:
قبل از تغییر:
```bash
git status
```
بعد از تغییر:
```bash
git diff
```
فایل‌های unrelated را تغییر نده.
در پایان هر Phase فایل‌های تغییرکرده را اعلام کن.
اگر Git repository دارای تغییرات قبلی user است، آنها را overwrite یا revert نکن.
---
# قانون تست
هیچ Phase را فقط به دلیل اینکه کد compile شد موفق اعلام نکن.
هر Bug Fix مهم باید تا حد امکان Regression Test داشته باشد.
اولویت:
```text
Bug reproduction
Test
Fix
Test passes
```
---
# قانون Refactor
Refactor و Feature Change را مخلوط نکن.
اگر قرار است رفتار تغییر کند، دقیقاً اعلام کن.
اگر فقط Refactor است، رفتار observable باید ثابت بماند.
---
# قانون UI
در UI/UX Enhancement:
* از redesign بی‌هدف خودداری کن.
* Design System موجود را حفظ و تقویت کن.
* visual consistency مهم‌تر از decoration است.
* از gradient، glass، animation و shadow بی‌دلیل استفاده نکن.
* Density برای نرم‌افزار سازمانی متعادل باشد.
* Primary Action در هر صفحه واضح باشد.
* Information hierarchy حفظ شود.
* RTL first-class citizen باشد.
---
# قانون Performance
قبل از optimization حدس نزن.
ابتدا bottleneck را شناسایی کن.
سپس fix کن.
سپس نتیجه را دوباره اندازه بگیر.
---
# قانون نهایی اجرای مراحل
ترتیب دقیق:
```text
PHASE 0
Baseline & Audit
PHASE 1
Critical Bugs & Security
PHASE 2
AI Architecture
PHASE 3
Frontend Reliability
PHASE 4
Builder Architecture & Performance
PHASE 5
Navigation & Dashboard UX
PHASE 6
Builder & AI Studio UX
PHASE 7
Responsive + i18n + Accessibility + PWA
PHASE 8
Final QA & Production Release Gate
```
**هیچ Phase را بدون اجازه من رد نکن.**
بعد از پایان هر Phase فقط گزارش بده و منتظر دستور من برای Phase بعد بمان.