@tera-system/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +13 -0
- package/MANIFEST.json +24 -0
- package/README.md +67 -0
- package/RELEASES.md +28 -0
- package/WELCOME.md +35 -0
- package/agents/application-blueprint.md +407 -0
- package/agents/auditor.md +665 -0
- package/agents/design-reviewer.md +392 -0
- package/agents/domain-expert-agent.md +510 -0
- package/agents/domain-research-agent.md +360 -0
- package/agents/engineering-agent-dotnet.md +218 -0
- package/agents/engineering-agent-phaser.md +275 -0
- package/agents/engineering-agent-typescript.md +300 -0
- package/agents/engineering-agent.md +143 -0
- package/agents/monitor.md +395 -0
- package/agents/production-erp-expert.md +506 -0
- package/agents/project-knowledge-agent.md +271 -0
- package/agents/qa-agent.md +498 -0
- package/agents/tera-business-transformation-consultant.md +290 -0
- package/agents/tera-client-engagement.md +891 -0
- package/agents/tera-software-designer.md +237 -0
- package/agents/tera-strategic-advisor.md +325 -0
- package/agents/tera-system-evolution.md +759 -0
- package/agents/tera.md +520 -0
- package/agents/ui-designer.md +426 -0
- package/commands/tera-approve.md +34 -0
- package/commands/tera-diagnose.md +47 -0
- package/commands/tera-gate.md +40 -0
- package/commands/tera-help.md +41 -0
- package/commands/tera-new-project.md +35 -0
- package/commands/tera-plan.md +34 -0
- package/commands/tera-request-build.md +45 -0
- package/commands/tera-resume.md +34 -0
- package/commands/tera-review.md +52 -0
- package/commands/tera-status.md +38 -0
- package/commands/tera-update.md +48 -0
- package/core/project-control/templates/TASK_TEMPLATE.md +146 -0
- package/core/tera-system/AGENT_ACTIVATION_MATRIX.md +285 -0
- package/core/tera-system/AGENT_DEPENDENCY_MAP.md +117 -0
- package/core/tera-system/AGENT_GENERATION_TEMPLATE.md +312 -0
- package/core/tera-system/AGENT_PERMISSION_MODEL.md +343 -0
- package/core/tera-system/AIS_PROTOCOL.md +191 -0
- package/core/tera-system/TERA_AGENT_CONDUCT.md +102 -0
- package/core/tera-system/TERA_CONTINUOUS_IMPROVEMENT_POLICY.md +111 -0
- package/core/tera-system/TERA_DISTRIBUTION_POLICY.md +291 -0
- package/core/tera-system/TERA_PROJECT_DECISION.md +281 -0
- package/core/tera-system/TERA_USER_GUIDE.md +462 -0
- package/core/tera-system/TOOLING_AND_MCP_POLICY.md +285 -0
- package/core/tera-system/TeraApplicationQuestionBank.md +362 -0
- package/core/tera-system/TeraArchitectureMap.md +91 -0
- package/core/tera-system/TeraClientPolicy.md +366 -0
- package/core/tera-system/TeraHelperAgents.md +970 -0
- package/core/tera-system/TeraPolicyMap.md +131 -0
- package/core/tera-system/TeraPreExecutionGate.md +818 -0
- package/core/tera-system/TeraPreparationDocumentationGovernance.md +370 -0
- package/core/tera-system/TeraPricingPolicy.md +674 -0
- package/core/tera-system/TeraProjectIntakePolicy.md +164 -0
- package/core/tera-system/TeraScenarioStressTests.md +168 -0
- package/core/tera-system/TeraSubAgents.md +854 -0
- package/core/tera-system/TeraSystemMaintenanceChecklist.md +80 -0
- package/core/tera-system/TeraTokenPolicy.md +362 -0
- package/core/tera-system/Tera_Project_Preparation_Files.md +1045 -0
- package/core/tera-system/agent-helpers/application-blueprint-details.md +177 -0
- package/core/tera-system/client-helpers/tera-client-engagement-discovery-domains.md +99 -0
- package/core/tera-system/client-helpers/tera-client-engagement-gates.md +258 -0
- package/core/tera-system/client-helpers/tera-client-engagement-pricing.md +341 -0
- package/core/tera-system/client-helpers/tera-client-engagement-protocols.md +692 -0
- package/core/tera-system/consulting-helpers/BTCA_METHODOLOGY_FRAMEWORK.md +195 -0
- package/core/tera-system/consulting-helpers/BTCA_REPORT_TEMPLATES.md +266 -0
- package/core/tera-system/design-system/ACCESSIBILITY_RULES.md +31 -0
- package/core/tera-system/design-system/COMPONENT_LIBRARY_SCHEMA.md +46 -0
- package/core/tera-system/design-system/DESIGN_MD_INTEGRATION.md +59 -0
- package/core/tera-system/design-system/DESIGN_REVIEW_STANDARDS.md +241 -0
- package/core/tera-system/design-system/DESIGN_SOURCE_PROTOCOL.md +61 -0
- package/core/tera-system/design-system/DESIGN_SYSTEM_OVERVIEW.md +66 -0
- package/core/tera-system/design-system/DESIGN_TOKENS_SCHEMA.md +66 -0
- package/core/tera-system/design-system/EXTERNAL_REFERENCE_ANALYSIS.md +52 -0
- package/core/tera-system/design-system/FIGMA_INTEGRATION.md +138 -0
- package/core/tera-system/design-system/INTERNAL_KITS_INDEX.md +26 -0
- package/core/tera-system/design-system/LAYOUT_PATTERNS.md +52 -0
- package/core/tera-system/design-system/MOBILE_UI_UX_STANDARDS.md +342 -0
- package/core/tera-system/design-system/RTL_LTR_RULES.md +39 -0
- package/core/tera-system/design-system/UI_ACCEPTANCE_GATE.md +80 -0
- package/core/tera-system/design-system/kits/KIT_ADMIN_DASHBOARD.md +102 -0
- package/core/tera-system/engineering-governance/ENGINEERING_AGENT_RESPONSIBILITIES.md +210 -0
- package/core/tera-system/engineering-governance/ENGINEERING_BEST_PRACTICES.md +468 -0
- package/core/tera-system/engineering-governance/ENGINEERING_GOVERNANCE_GATE.md +131 -0
- package/core/tera-system/engineering-governance/ENGINEERING_REVIEW_CHECKLIST.md +129 -0
- package/core/tera-system/engineering-governance/QUALITY_GATE_THRESHOLDS.md +159 -0
- package/core/tera-system/engineering-helpers/engineering-agent-core.md +171 -0
- package/core/tera-system/knowledge-base/OPENHANDS_ARCHITECTURE_REFERENCE.md +243 -0
- package/core/tera-system/knowledge-base/manufacturing/00_INDEX.md +32 -0
- package/core/tera-system/knowledge-base/manufacturing/01_MANUFACTURING_ERP_CORE_CONCEPTS.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/02_SAP_MANUFACTURING_RESEARCH.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/03_DYNAMICS_365_MANUFACTURING_RESEARCH.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/04_ORACLE_MANUFACTURING_RESEARCH.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/05_ODOO_MANUFACTURING_RESEARCH.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/06_ERPNEXT_MANUFACTURING_RESEARCH.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/07_MANUFACTURING_COSTING_GUIDE.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/08_PRODUCTION_DISCOVERY_QUESTIONS.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/09_MANUFACTURING_BLUEPRINT_CHECKLIST.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/10_PRODUCTION_TEST_SCENARIOS.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/11_QUALITY_REWORK_AND_SCRAP_GUIDE.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/12_MRP_AND_PLANNING_GUIDE.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/13_LOCAL_AND_REGIONAL_MANUFACTURING_CONTEXT.md +7 -0
- package/core/tera-system/knowledge-base/manufacturing/14_VENDOR_COMPARISON_MATRIX.md +7 -0
- package/core/tera-system/product-standards/maintenance-apps/BEST_PRACTICES_DOMAIN.md +325 -0
- package/core/tera-system/product-standards/maintenance-apps/STANDARD_DEFINITION.md +142 -0
- package/core/tera-system/profiles/PROFILES_INDEX.md +57 -0
- package/core/tera-system/profiles/TEMPLATE.md +47 -0
- package/core/tera-system/profiles/dotnet-blazor-ef.md +76 -0
- package/core/tera-system/profiles/dotnet-razorpages-adonet.md +137 -0
- package/core/tera-system/profiles/dotnet-wpf-sqlite.md +159 -0
- package/core/tera-system/profiles/effect-bun-opencode.md +109 -0
- package/core/tera-system/profiles/flutter-mobile.md +369 -0
- package/core/tera-system/profiles/nextjs-prisma.md +110 -0
- package/core/tera-system/profiles/phaser-react-node.md +302 -0
- package/core/tera-system/profiles/react-pwa.md +97 -0
- package/core/tera-system/runtime/CLIENT_DISCOVERY_PROTOCOL.md +145 -0
- package/core/tera-system/runtime/DOMAIN_INTELLIGENCE_PROTOCOL.md +124 -0
- package/core/tera-system/runtime/MVP_DEFINITION_PROTOCOL.md +176 -0
- package/core/tera-system/runtime/TERA_RUNTIME_CHECKLISTS.md +646 -0
- package/core/tera-system/runtime/TERA_RUNTIME_PROTOCOLS.md +50 -0
- package/core/tera-system/runtime/TERA_RUNTIME_PROTOCOLS_CLIENT.md +355 -0
- package/core/tera-system/runtime/TERA_RUNTIME_PROTOCOLS_CORE.md +799 -0
- package/core/tera-system/runtime/TERA_RUNTIME_TEMPLATES.md +908 -0
- package/core/tera-system/runtime/TERA_RUNTIME_TEMPLATES_DELIVERY.md +584 -0
- package/core/tera-system/runtime/TERA_RUNTIME_TEMPLATES_PREPARATION.md +376 -0
- package/core/tera-system/runtime/TERA_SOLUTION_PREPARATION_PROTOCOL.md +335 -0
- package/core/tera-system/runtime/TERA_SOLUTION_PREPARATION_TEMPLATES.md +397 -0
- package/core/tera-system/runtime/VERSION_LIFECYCLE_PROTOCOL.md +296 -0
- package/core/tera-system/semgrep-rules/README.md +32 -0
- package/core/tera-system/semgrep-rules/tera-security.yml +66 -0
- package/core/tera-system/semgrep-rules/tera-standards.yml +49 -0
- package/core/tera-system/teranoo-ui/README.md +48 -0
- package/core/tera-system/teranoo-ui/components/button.tsx +51 -0
- package/core/tera-system/teranoo-ui/components/card.tsx +49 -0
- package/core/tera-system/teranoo-ui/components/dashboard-layout.tsx +36 -0
- package/core/tera-system/teranoo-ui/components/data-table.tsx +146 -0
- package/core/tera-system/teranoo-ui/components/empty-state.tsx +31 -0
- package/core/tera-system/teranoo-ui/components/kpi-card.tsx +42 -0
- package/core/tera-system/teranoo-ui/components/page-header.tsx +25 -0
- package/core/tera-system/teranoo-ui/components/search-input.tsx +40 -0
- package/core/tera-system/teranoo-ui/components/sidebar.tsx +66 -0
- package/core/tera-system/teranoo-ui/components/stats-card.tsx +37 -0
- package/core/tera-system/teranoo-ui/registry.json +77 -0
- package/core/tera-system/teranoo-ui/styles/teranoo-theme.css +61 -0
- package/opencode.tera.example.json +30 -0
- package/package.json +37 -0
- package/scripts/build.mjs +110 -0
- package/scripts/install.js +244 -0
- package/scripts/lib/license.mjs +90 -0
- package/scripts/lib/public-key.pem +3 -0
- package/scripts/tera-license.mjs +63 -0
- package/tools/tera-clean.ps1 +97 -0
- package/tools/tera-fetch.ps1 +165 -0
- package/tools/tera-release.ps1 +96 -0
- package/tools/tera-schedule.ps1 +59 -0
- package/tools/tera-update.ps1 +472 -0
- package/tools/tera-watch.ps1 +154 -0
- package/tools/update-client-repositories.ps1 +92 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
---
|
|
2
|
+
document_type: product_standard_best_practices
|
|
3
|
+
standard_id: TERA-STD-MNT-002
|
|
4
|
+
product_name: "Tera Maintenance — منصة إدارة طلبات الصيانة"
|
|
5
|
+
domain: Maintenance Management / Field Service Management (FSM) / Work Order Management (WOM)
|
|
6
|
+
version: "1.0"
|
|
7
|
+
date: "2026-07-07"
|
|
8
|
+
language: "ar"
|
|
9
|
+
direction: "rtl"
|
|
10
|
+
status: "active — منشور كمعيار منظومة Tera"
|
|
11
|
+
owner: "TeraSystem (Majed)"
|
|
12
|
+
basis: "مبني على Domain Research (33 مصدراً عالمياً) + Domain Intelligence Report — وليس على أي عميل محدد"
|
|
13
|
+
companion: "يرافق STANDARD_DEFINITION.md (ملف التعريف)"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# أفضل الممارسات القياسية — Tera Maintenance
|
|
17
|
+
|
|
18
|
+
> 🔑 **هذا هو "دستور" المنتج.** كل ما يليه هو المعيار المعتمد من Tera لأنظمة صيانة الأجهزة.
|
|
19
|
+
> يُعطى لأي عميل جديد لقراءته قبل النقاش — يخفف عبء العمل ويمنع إعادة اختراع العجلة.
|
|
20
|
+
> **المصدر:** البحث المخصص (33 مصدراً) + Domain Intelligence Report — **وليس كلام أي عميل**.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. معايير سير العمل (Workflow Standards)
|
|
25
|
+
|
|
26
|
+
### T-WF-MNT-001 — دورة حياة الطلب (إلزامي ✅ Core)
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
المرحلة 1: الطلب (Request)
|
|
30
|
+
↓
|
|
31
|
+
المرحلة 2: الفرز والتقييم (Triage)
|
|
32
|
+
↓
|
|
33
|
+
المرحلة 3: التعيين (Assign)
|
|
34
|
+
↓
|
|
35
|
+
المرحلة 4: التنفيذ (Execute)
|
|
36
|
+
↓
|
|
37
|
+
المرحلة 5: الإغلاق (Close)
|
|
38
|
+
↓
|
|
39
|
+
المرحلة 6: التحليل (Analyze)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
| المرحلة | الوصف | المسؤول |
|
|
43
|
+
|:--------|:-------|:--------|
|
|
44
|
+
| 1. الطلب | استقبال الطلب + تسجيل العميل والجهاز | استقبال |
|
|
45
|
+
| 2. الفرز | تحديد الأولوية + تقييم الأهمية | استقبال/مدير |
|
|
46
|
+
| 3. التعيين | اختيار الفني المناسب + تحديد الموعد | مدير |
|
|
47
|
+
| 4. التنفيذ | الفني يشخّص + يسجّل + يطلب موافقة | فني |
|
|
48
|
+
| 5. الإغلاق | تسجيل الدفع + تسليم الجهاز | استقبال/محاسب |
|
|
49
|
+
| 6. التحليل | تقرير + قياس أداء | مدير |
|
|
50
|
+
|
|
51
|
+
### T-WF-MNT-002 — إدارة الحالة (إلزامي ✅ Core)
|
|
52
|
+
|
|
53
|
+
**الحالات المعيارية (8 حالات كحد أقصى):**
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
1. جديد (New)
|
|
57
|
+
2. قيد المراجعة (Under Review) ← الفرز والتقييم
|
|
58
|
+
3. تم التخصيص (Assigned) ← الفني معيّن
|
|
59
|
+
4. قيد التنفيذ (In Progress) ← الفني يشتغل
|
|
60
|
+
5. بانتظار موافقة العميل (Pending Approval)
|
|
61
|
+
6. معلق (On Hold) ← بانتظار قطعة/معلومة
|
|
62
|
+
7. تم الإنجاز (Completed) ← جاهز للتسليم
|
|
63
|
+
8. مغلق (Closed) ← سُلّم + سُدِد
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**القواعد:**
|
|
67
|
+
- لا تزيد عن 8 حالات — كثرة الحالات تربك المستخدمين
|
|
68
|
+
- كل تغيير حالة = سجل في `StatusHistory` (من، متى، من أي حالة إلى أي حالة)
|
|
69
|
+
- إشعار تلقائي للأطراف المعنية (انظر §5)
|
|
70
|
+
|
|
71
|
+
### T-WF-MNT-003 — موافقة العميل (إلزامي ✅ Core)
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
1. بعد الفحص → تسجيل التكلفة المقترحة
|
|
75
|
+
2. حالة الطلب: "بانتظار موافقة العميل"
|
|
76
|
+
3. تسجيل طريقة الموافقة: [واتساب / مكالمة / داخل الورشة]
|
|
77
|
+
4. تسجيل: هل وافق؟ (نعم/لا) + من سجّل + متى
|
|
78
|
+
5. إذا وافق → "قيد التنفيذ"
|
|
79
|
+
6. إذا رفض → "مغلق" (أو إرجاع الجهاز)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**القاعدة الحاسمة:** لا يبدأ التنفيذ WITHOUT توثيق الموافقة. هذا يحمي المنظومة والعميل قانونياً.
|
|
83
|
+
|
|
84
|
+
### T-WF-MNT-004 — نظام الأولويات (إلزامي ✅ Core)
|
|
85
|
+
|
|
86
|
+
| الأولوية | اللون | المعنى | الترتيب في القائمة |
|
|
87
|
+
|:--------|:------|:-------|:-------------------|
|
|
88
|
+
| **عادي** (Normal) | 🟢 أخضر | طلب روتيني | الأخير |
|
|
89
|
+
| **مهم** (Important) | 🟡 أصفر | يحتاج انتباه | وسط |
|
|
90
|
+
| **طارئ** (Urgent) | 🔴 أحمر | عميل مستعجل / جهاز أساسي / صيف | **الأول** |
|
|
91
|
+
|
|
92
|
+
**القاعدة:** الطلبات الطارئة تظهر أعلى القائمة دائماً.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 2. معايير نموذج البيانات (Data Model Standards)
|
|
97
|
+
|
|
98
|
+
### T-DM-MNT-001 — الكيانات الأساسية (إلزامي ✅ Core)
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
العميل (Customer)
|
|
102
|
+
├── له عناوين متعددة
|
|
103
|
+
├── له أجهزة (Asset)
|
|
104
|
+
├── له طلبات (WorkOrder)
|
|
105
|
+
└── له مدفوعات
|
|
106
|
+
|
|
107
|
+
الجهاز (Asset) — كيان مستقل مرتبط بالعميل
|
|
108
|
+
├── نوع (DeviceType): ثلاجة/غسالة/مكيف/شاشة...
|
|
109
|
+
├── ماركة (Brand)
|
|
110
|
+
├── موديل (Model) — اختياري
|
|
111
|
+
├── رقم سيريال (Serial) — اختياري
|
|
112
|
+
└── تاريخ صيانة (من الطلبات السابقة)
|
|
113
|
+
|
|
114
|
+
طلب الصيانة (WorkOrder)
|
|
115
|
+
├── مرتبط بعميل + جهاز
|
|
116
|
+
├── مرتبط بفني
|
|
117
|
+
├── له حالة (Status) + أولوية (Priority)
|
|
118
|
+
├── له تكلفة (مقترحة + فعلية)
|
|
119
|
+
├── له موافقة (طريقة + حالة + توقيت)
|
|
120
|
+
├── له مدفوعات
|
|
121
|
+
└── له سجل حالة (StatusHistory)
|
|
122
|
+
|
|
123
|
+
الفني (Technician)
|
|
124
|
+
├── مرتبط بـ User
|
|
125
|
+
├── له مهارات (Skills)
|
|
126
|
+
└── له طلبات مسندة
|
|
127
|
+
|
|
128
|
+
المستخدم (User)
|
|
129
|
+
├── له دور (Role): مدير/استقبال/فني/محاسب
|
|
130
|
+
└── مرتبط بفرع (Branch) — حتى لو فارغ
|
|
131
|
+
|
|
132
|
+
الدفع (Payment)
|
|
133
|
+
└── مرتبط بطلب
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### T-DM-MNT-002 — تصميم للتوسع (إلزامي ✅ Core)
|
|
137
|
+
|
|
138
|
+
| المبدأ | التطبيق |
|
|
139
|
+
|:-------|:--------|
|
|
140
|
+
| **branch_id** | في كل جدول رئيسي — لتصفية البيانات حسب الفرع من اليوم الأول (حتى لو عميل بفرع واحد) |
|
|
141
|
+
| **Audit Trail** | جدول `StatusHistory` لكل كيان رئيسي — يمنع الإنكار ويوفر تتبعاً |
|
|
142
|
+
| **Soft Delete** | حقل `deleted_at` — لا حذف فيزيائي |
|
|
143
|
+
| **JSON fields** | للحقول المتغيرة (مثل المهارات، التفاصيل الإضافية) — مرونة بدون تغيير Schema |
|
|
144
|
+
| **Indexing** | على الحقول الأكثر بحثاً: `wo_number`, `phone`, `status`, `date` |
|
|
145
|
+
| **العلاقات** | ماركة ← موديل ← قطعة غيار (Many-to-Many) — جاهز للتوسع لاحقاً |
|
|
146
|
+
|
|
147
|
+
**ملاحظة:** جدول `SparePart` و`Supplier` و`Warehouse` و`ServiceContract` جاهزة من الآن (حتى لو فارغة) — لتجنب إعادة البناء عند التوسع.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 3. معايير إدارة المخزون (Inventory Standards)
|
|
152
|
+
|
|
153
|
+
### T-INV-MNT-001 — تصنيف قطع الغيار (قياسي ⚪ Standard — Phase 2)
|
|
154
|
+
|
|
155
|
+
- **تصنيف ABC:** A (عالية القيمة، قليلة) / B (متوسطة) / C (رخيصة، كثيرة)
|
|
156
|
+
- **Criticality Analysis:** حسب أهمية القطعة لاستمرارية الخدمة
|
|
157
|
+
- **الربط:** قطعة الغيار ← أنواع الأجهزة/الموديلات (Many-to-Many)
|
|
158
|
+
|
|
159
|
+
### T-INV-MNT-002 — إعادة الطلب التلقائي (متقدم 🔶 Advanced — Phase 2+)
|
|
160
|
+
|
|
161
|
+
- **Reorder Point:** حد أدنى للمخزون عند الوصول له ← أمر شراء تلقائي
|
|
162
|
+
- **Safety Stock:** مخزون أمان لمواجهة تقلبات الطلب
|
|
163
|
+
- **Auto-Deduct:** عند إغلاق أمر عمل ← إنقاص الكمية المستخدمة آلياً
|
|
164
|
+
- **Low Stock Alerts:** إشعار عند انخفاض الكمية
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 4. معايير التكامل (Integration Standards)
|
|
169
|
+
|
|
170
|
+
### T-INT-MNT-001 — تكامل واتساب (قياسي ⚪ Standard — Phase 2)
|
|
171
|
+
|
|
172
|
+
- **الأداة:** WhatsApp Business Cloud API (وليس واتساب العادي)
|
|
173
|
+
- **الاستخدام:** إشعارات، عروض أسعار، موافقة (Interactive Template)، استقبال طلبات
|
|
174
|
+
- **الأولوية:** قصوى في السوق العربي — العميل يتوقع واتساب كقناة أولى
|
|
175
|
+
|
|
176
|
+
### T-INT-MNT-002 — تصميم API للتوسع (قياسي ⚪ Standard — من اليوم الأول)
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
- RESTful + JSON
|
|
180
|
+
- OpenAPI/Swagger موثّق
|
|
181
|
+
- Rate Limiting
|
|
182
|
+
- Webhooks للأحداث (طلب جديد، تغيير حالة، دفع)
|
|
183
|
+
- Versioning: /api/v1/, /api/v2/
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Endpoints الأساسية:**
|
|
187
|
+
```
|
|
188
|
+
GET/POST /api/v1/customers
|
|
189
|
+
GET/POST /api/v1/work-orders
|
|
190
|
+
PATCH /api/v1/work-orders/{id}/status
|
|
191
|
+
GET/POST /api/v1/spare-parts/consume
|
|
192
|
+
POST /api/v1/payments
|
|
193
|
+
GET /api/v1/reports/kpi
|
|
194
|
+
POST /api/v1/notifications/send
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 5. معايير الإشعارات (Notification Standards)
|
|
200
|
+
|
|
201
|
+
### T-NOT-MNT-001 — إشعارات موجهة حسب الدور (إلزامي ✅ Core)
|
|
202
|
+
|
|
203
|
+
| الدور | يستلم إشعار عند |
|
|
204
|
+
|:-----|:----------------|
|
|
205
|
+
| **فني** | إسناد طلب جديد + تغيير حالة طلبه |
|
|
206
|
+
| **استقبال** | جهاز جاهز للتسليم + يحتاج تواصل مع عميل |
|
|
207
|
+
| **مدير** | طلب متأخر + طلب طارئ + طلب بقي طويلاً بلا تحديث |
|
|
208
|
+
| **محاسب** | طلب جاهز وعليه مبلغ/دفعة مستحقة |
|
|
209
|
+
|
|
210
|
+
**القاعدة الذهبية:** فقط الأحداث التي **تحتاج تصرّفاً** من المستلم — لا إزعاج بكل حركة صغيرة.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## 6. معايير تجربة المستخدم (UX/UI Standards)
|
|
215
|
+
|
|
216
|
+
### T-UX-MNT-001 — Mobile-First + Offline-First (إلزامي ✅ Core)
|
|
217
|
+
|
|
218
|
+
- التصميم للجوال أولاً (الفنيون في الميدان)
|
|
219
|
+
- العمل دون اتصال مع مزامنة لاحقة (مهم للورش والزيارات الميدانية)
|
|
220
|
+
|
|
221
|
+
### T-UX-MNT-002 — دعم العربية الكامل (إلزامي ✅ Core)
|
|
222
|
+
|
|
223
|
+
- RTL متكامل
|
|
224
|
+
- خطوط تدعم العربية
|
|
225
|
+
- دعم الأرقام (هندية/عربية)
|
|
226
|
+
- تقويم هجري + ميلادي
|
|
227
|
+
|
|
228
|
+
### T-UX-MNT-003 — مبادئ لكل دور
|
|
229
|
+
|
|
230
|
+
| الدور | الأولوية في التصميم |
|
|
231
|
+
|:-----|:-------------------|
|
|
232
|
+
| **مدير** | لوحة تحكم سريعة + تقارير بيانية |
|
|
233
|
+
| **استقبال** | جدولة Drag-and-Drop + تحويل سريع |
|
|
234
|
+
| **فني** | 3-4 نقرات كحد أقصى لإنجاز المهمة + أزرار كبيرة |
|
|
235
|
+
| **محاسب** | واجهة فواتير ومدفوعات واضحة |
|
|
236
|
+
| **عميل** (عبر موظف) | تتبع بسيط برقم الطلب + رقم الهاتف |
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 7. معايير التقارير (Reporting Standards)
|
|
241
|
+
|
|
242
|
+
### التقارير الأساسية (Level 1 — إلزامي ✅)
|
|
243
|
+
|
|
244
|
+
| التقرير | المحتوى |
|
|
245
|
+
|:--------|:--------|
|
|
246
|
+
| **يومي** | عدد الطلبات الجديدة/المنجزة/قيد التنفيذ |
|
|
247
|
+
| **أسبوعي** | ملخص المدير: جديد، منجز، متأخرات، إيراد، أكثر فني إنجازاً |
|
|
248
|
+
| **شهري** | ملخص الإيرادات + فلترة حسب الفني |
|
|
249
|
+
| **المتأخرات** | الطلبات التي تجاوزت المدة المتوقعة |
|
|
250
|
+
|
|
251
|
+
### تقارير متقدمة (Level 2+ — Standard/Advanced)
|
|
252
|
+
|
|
253
|
+
- **KPIs:** MTTR (متوسط وقت الإصلاح)، FTFR (نسبة الإصلاح من أول مرة)، PM/CM Ratio
|
|
254
|
+
- **تكلفة الصيانة لكل أصل**
|
|
255
|
+
- **رضا العملاء (CSAT)**
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 8. معايير البنية التحتية (Architecture Standards)
|
|
260
|
+
|
|
261
|
+
### T-ARC-MNT-001 — تعدد الفروع (إلزامي ✅ Core)
|
|
262
|
+
|
|
263
|
+
- كل جدول رئيسي يحمل `branch_id`
|
|
264
|
+
- المدير يرى كل الفروع — الفني يرى فرعه فقط
|
|
265
|
+
- لا تكلفة إضافية في النسخة الأولى — فقط جاهزية في DB
|
|
266
|
+
|
|
267
|
+
### T-ARC-MNT-002 — الأمان والامتثال
|
|
268
|
+
|
|
269
|
+
- تشفير HTTPS إلزامي
|
|
270
|
+
- صلاحيات الأدوار تمنع الوصول غير المصرح به
|
|
271
|
+
- **PDPL الأردني:** تشفير بيانات العملاء + احترام الخصوصية (استشارة قانونية عند الحاجة)
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## 9. قواعد التخصيص (Customization Rules)
|
|
276
|
+
|
|
277
|
+
عندما يطلب عميل انحرافاً عن هذا المعيار:
|
|
278
|
+
|
|
279
|
+
| النوع | الإجراء |
|
|
280
|
+
|:------|:--------|
|
|
281
|
+
| **إضافة ميزة ضمن Level الحالي** | مسموح — تُضاف لملف العميل كـ "تخصيص" |
|
|
282
|
+
| **تخفيض ميزة من المعيار** | مسموح — لكن يُوثّق كـ "نطاق مخفض" صراحةً |
|
|
283
|
+
| **ميزة من Level أعلى** | تُعامل كـ Phase تالية أو Change Request |
|
|
284
|
+
| **تغيير جوهري في Workflow** | يتطلب مراجعة Majed — لا يُعدّل المعيار نفسه |
|
|
285
|
+
|
|
286
|
+
**القاعدة الذهبية:** المعيار لا يُكسر لرغبة عميل — بل يُوثّق الانحراف في ملف العميل.
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 10. ملخص المعايير (Quick Reference)
|
|
291
|
+
|
|
292
|
+
| المعيار | الرمز | الحالة | المستوى |
|
|
293
|
+
|:--------|:------|:------:|:------:|
|
|
294
|
+
| دورة حياة الطلب (6 مراحل) | T-WF-MNT-001 | ✅ Core | L1 |
|
|
295
|
+
| إدارة الحالة (8 حالات) | T-WF-MNT-002 | ✅ Core | L1 |
|
|
296
|
+
| موافقة العميل | T-WF-MNT-003 | ✅ Core | L1 |
|
|
297
|
+
| نظام الأولويات (3 مستويات) | T-WF-MNT-004 | ✅ Core | L1 |
|
|
298
|
+
| الكيانات الأساسية | T-DM-MNT-001 | ✅ Core | L1 |
|
|
299
|
+
| تصميم للتوسع | T-DM-MNT-002 | ✅ Core | L1 |
|
|
300
|
+
| تصنيف قطع الغيار | T-INV-MNT-001 | ⚪ Standard | L2 |
|
|
301
|
+
| إعادة الطلب التلقائي | T-INV-MNT-002 | 🔶 Advanced | L2+ |
|
|
302
|
+
| تكامل واتساب | T-INT-MNT-001 | ⚪ Standard | L3 |
|
|
303
|
+
| تصميم API للتوسع | T-INT-MNT-002 | ⚪ Standard | L1+ |
|
|
304
|
+
| إشعارات موجهة | T-NOT-MNT-001 | ✅ Core | L1 |
|
|
305
|
+
| Mobile-First + Offline | T-UX-MNT-001 | ✅ Core | L1 |
|
|
306
|
+
| دعم العربية الكامل | T-UX-MNT-002 | ✅ Core | L1 |
|
|
307
|
+
| تقارير أساسية | (§7) | ✅ Core | L1 |
|
|
308
|
+
| تعدد الفروع | T-ARC-MNT-001 | ✅ Core | L1 |
|
|
309
|
+
| الأمان والامتثال | T-ARC-MNT-002 | ✅ Core | L1 |
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## 11. الأساس البحثي
|
|
314
|
+
|
|
315
|
+
هذا المعيار مبني على:
|
|
316
|
+
- **33 مصدراً عالمياً** (انظر `DOMAIN_RESEARCH_REPORT_MAINTENANCE_APPS.md`)
|
|
317
|
+
- **تحليل DomainExpertAgent** (انظر `DOMAIN_INTELLIGENCE_REPORT_MANTENANCE.md`)
|
|
318
|
+
- **معايير ISO:** ISO 55000 (إدارة الأصول)، ISO 14224 (تصنيف الأعطال)
|
|
319
|
+
- **استراتيجية الأردن الرقمية 2026-2028**
|
|
320
|
+
|
|
321
|
+
**تنويه حاسم:** محتوى هذا الملف ليس ناتجاً عن رغبة أي عميل محدد — بل عن أفضل الممارسات العالمية المثبتة. أي عميل جديد يقرأ هذا الملف كمرجع، ويخصص ما يشاء منه في ملفاته الخاصة.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
> **تنويه:** هذا المعيار هو "دستور" المنتج. لا يُعدّل إلا عبر مراجعة رسمية من Majed وتحديث الإصدار.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
document_type: product_standard_definition
|
|
3
|
+
standard_id: TERA-STD-MNT-001
|
|
4
|
+
product_name: "Tera Maintenance — منصة إدارة طلبات الصيانة"
|
|
5
|
+
domain: Maintenance Management / Field Service Management (FSM) / Work Order Management (WOM)
|
|
6
|
+
version: "1.0"
|
|
7
|
+
date: "2026-07-07"
|
|
8
|
+
language: "ar"
|
|
9
|
+
direction: "rtl"
|
|
10
|
+
status: "active — منشور كمعيار منظومة Tera"
|
|
11
|
+
owner: "TeraSystem (Majed)"
|
|
12
|
+
basis: "مبني على Domain Research (33 مصدراً عالمياً) + Domain Intelligence Report — وليس على أي عميل محدد"
|
|
13
|
+
applies_to: "أي عميل يطلب تطبيق إدارة طلبات صيانة للأجهزة المنزلية/الكهربائية/الإلكترونية"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# تعريف المنتج القياسي — Tera Maintenance
|
|
17
|
+
|
|
18
|
+
> **هذا الملف هو "ملف التعريف" لمنتج Tera القياسي لتطبيقات صيانة الأجهزة.**
|
|
19
|
+
> يُستخدم كنقطة انطلاق لأي عميل جديد — لا يُعاد اختراع العجلة في كل مشروع.
|
|
20
|
+
> **المصدر المعتمد:** البحث المخصص (DomainResearchAgent + DomainExpertAgent) — لا علاقة له بأي عميل بعينه.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. ما هو هذا التطبيق؟
|
|
25
|
+
|
|
26
|
+
**Tera Maintenance** هو منصة برمجية لإدارة دورة حياة **طلبات صيانة الأجهزة** (المنزلية، الكهربائية، الإلكترونية). يغطي الاستقبال، التشخيص، الموافقة، التنفيذ، الدفع، والتسليم — مع متابعة الفنيين والتقارير.
|
|
27
|
+
|
|
28
|
+
| البند | الوصف |
|
|
29
|
+
|:------|:-------|
|
|
30
|
+
| **الاسم القياسي** | Tera Maintenance — منصة إدارة طلبات الصيانة |
|
|
31
|
+
| **النوع** | Web App متجاوب (Responsive) — يعمل على الكمبيوتر والجوال |
|
|
32
|
+
| **اللغة** | العربية (RTL) أولاً |
|
|
33
|
+
| **الجمهور المستهدف** | ورش ومؤسسات صيانة الأجهزة (من فني واحد إلى 30+) |
|
|
34
|
+
| **نموذج التسليم** | MVP قابل للتوسع تدريجياً (انظر مصفوفة النضج §4) |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. لمن هذا التطبيق؟ (Target Segments)
|
|
39
|
+
|
|
40
|
+
| الشريحة | الوصف | المستوى الموصى |
|
|
41
|
+
|:--------|:-------|:--------------:|
|
|
42
|
+
| **محل صيانة صغير** | 1-5 موظفين، فني واحد إلى 3 | Level 1 (أساسي) |
|
|
43
|
+
| **مؤسسة صيانة متوسطة** | 5-15 موظفاً، فنيون متعددون | Level 1 → 2 |
|
|
44
|
+
| **شركة صيانة** | 10-30 موظفاً، فروع محتملة | Level 2 → 3 |
|
|
45
|
+
| **مزود خدمة صناعية/ميداني** | تركيز على الميدان + عقود | Level 3 → 4 |
|
|
46
|
+
|
|
47
|
+
**الشركات التي يخدمها:**
|
|
48
|
+
- صيانة غسالات، ثلاجات، مكيفات، شاشات، أفران، أجهزة مطبخ
|
|
49
|
+
- صيانة أجهزة إلكترونية خفيفة
|
|
50
|
+
- أي "ورشة + زيارة منزلية" مختلطة
|
|
51
|
+
|
|
52
|
+
**الشركات التي لا يخدمها (يحتاج تخصيص منفصل):**
|
|
53
|
+
- صيانة السيارات (مجال مختلف — معياره المستقل لاحقاً)
|
|
54
|
+
- صيانة الجوالات (معيار `mobile-repair-apps/` المستقل)
|
|
55
|
+
- المصانع والصيانة الصناعية الثقيلة (يحتاج CMMS متقدم)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. متى نستخدم هذا المعيار؟ (Trigger)
|
|
60
|
+
|
|
61
|
+
استخدم ملف المعايير هذا عندما:
|
|
62
|
+
|
|
63
|
+
- ✅ العميل يطلب "نظام إدارة طلبات صيانة" أو "نظام متابعة أجهزة"
|
|
64
|
+
- ✅ العميل لديه ورشة أو فريق صيانة ويعاني من التسجيل اليدوي
|
|
65
|
+
- ✅ العميل يريد متابعة الفنيين والطلبات والتقارير
|
|
66
|
+
- ✅ العميل يفضّل WhatsApp/هاتف كقناة تواصل أساسية
|
|
67
|
+
|
|
68
|
+
**لا تستخدم هذا المعيار عندما:**
|
|
69
|
+
- ❌ العميل يطلب ERP أو محاسبة متكاملة (يحتاج نطاق أوسع)
|
|
70
|
+
- ❌ العميل يطلب تطبيق جوال مستقل تماماً في النسخة الأولى (هذا معيار Phase 3 — يُنصح به كإضافة)
|
|
71
|
+
- ❌ العميل في مجال خارج الصيانة (تجارة، تعليم، طبي...)
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 4. مصفوفة النضج (Maturity Levels)
|
|
76
|
+
|
|
77
|
+
هذا هو القلب الاستراتيجي — كل عميل يبدأ من مستوى ويصعد حسب حجمه وطموحه.
|
|
78
|
+
|
|
79
|
+
| المستوى | الاسم | الميزات الأساسية | الفئة المستهدفة |
|
|
80
|
+
|:------:|:------|:----------------|:-----------------|
|
|
81
|
+
| **Level 1** | أساسي | CRM + طلبات + حالات + فنيين + دفع + تقارير أساسية | محلات صغيرة (1-5) |
|
|
82
|
+
| **Level 2** | قياسي | Level 1 + مخزون + تقارير KPIs + جدولة + عقود بسيطة | شركات صغيرة-متوسطة (5-15) |
|
|
83
|
+
| **Level 3** | متقدم | Level 2 + واتساب API + GPS + Offline + عقود متكررة | شركات متوسطة (10-30) |
|
|
84
|
+
| **Level 4** | ذكي | Level 3 + صيانة تنبؤية + AI + تكامل ERP | شركات كبيرة + صناعية |
|
|
85
|
+
|
|
86
|
+
**الافتراض الافتراضي (Default):** يبدأ أي عميل جديد من **Level 1** ويتوسع لاحقاً.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 5. العلاقة مع ملفات المنظومة الأخرى
|
|
91
|
+
|
|
92
|
+
| الملف | العلاقة |
|
|
93
|
+
|:------|:--------|
|
|
94
|
+
| `BEST_PRACTICES_DOMAIN.md` (في هذا المجلد) | 🔑 **الدستور** — تفاصيل المعايير التقنية والتشغيلية |
|
|
95
|
+
| `TeraPricingPolicy.md` | التسعير يُحسب عبر السياسة المعتمدة (حالياً v4.2) |
|
|
96
|
+
| `TERA_AGENT_CONDUCT.md` | قواعد السلوك الإلزامية لكل عملاء المنظومة |
|
|
97
|
+
| ملفات العميل الفعلي (`client-engagement/`) | تُبنى **فوق** هذا المعيار — المعيار هو الأساس، العميل يخصص |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 6. كيف نتعامل مع عميل جديد؟ (Workflow للتسويق/المبيعات)
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
1. نعطي العميل ملف BEST_PRACTICES_DOMAIN.md لقراءته
|
|
105
|
+
2. العميل يرى ما هو "مشمول افتراضياً" (لا يحتاج نقاش)
|
|
106
|
+
3. العميل يحدد انحرافاته عن المعيار (مثلاً: "أريد تقرير X إضافي")
|
|
107
|
+
4. نحن نسجل الانحرافات كـ Change Requests أو تخصيصات
|
|
108
|
+
5. ننتقل مباشرة للتسعير (ليس من Zero)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**الوفر في الوقت:** ~70% من أسئلة Discovery تصبح غير ضرورية — العميل يقرأ المعيار أولاً.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## 7. الأساس البحثي (Research Basis)
|
|
116
|
+
|
|
117
|
+
هذا التعريف مبني على:
|
|
118
|
+
|
|
119
|
+
| المصدر | المحتوى |
|
|
120
|
+
|:-------|:--------|
|
|
121
|
+
| `DOMAIN_RESEARCH_REPORT_MAINTENANCE_APPS.md` | 33 مصدراً عالمياً (ISO, ServiceTitan, Housecall Pro, Zoho FSM, OxMaint, MAPCON...) |
|
|
122
|
+
| `DOMAIN_INTELLIGENCE_REPORT_MANTENANCE.md` | تحليل وتصنيف + Tera Best Practices + Gap Analysis |
|
|
123
|
+
| استراتيجية الأردن الرقمية 2026-2028 | السياق المحلي |
|
|
124
|
+
| معايير ISO 55000 / ISO 14224 | المرجع الدولي لإدارة الأصول والأعطال |
|
|
125
|
+
|
|
126
|
+
**ملاحظة حاسمة:** محتوى هذا الملف **ليس** ناتجاً عن رغبة أي عميل محدد — بل عن أفضل الممارسات العالمية المثبتة.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 8. حالة المعيار
|
|
131
|
+
|
|
132
|
+
| البند | القيمة |
|
|
133
|
+
|:------|:-------|
|
|
134
|
+
| الإصدار | 1.0 |
|
|
135
|
+
| تاريخ الإصدار | 2026-07-07 |
|
|
136
|
+
| الحالة | ✅ منشور ومنفعّل |
|
|
137
|
+
| المراجعة القادمة | عند تنفيذ 3 مشاريع فعلية أو ظهور فجوة بحثية جديدة |
|
|
138
|
+
| المالك | Majed (TeraSystem) |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
> **تنويه:** هذا المعيار هو "دستور" المنتج. أي انحراف عنه في مشروع عميل يجب توثيقه صراحةً في ملفات العميل — لا يُعدّل هذا الملف إلا عبر مراجعة رسمية من Majed.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Technology Profiles Index
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Technology Profiles keep Tera Agent technically neutral at the system level.
|
|
6
|
+
|
|
7
|
+
Tera must stay a generic project orchestrator. Technology-specific execution
|
|
8
|
+
rules must come from the active profile, not from the core Tera system files.
|
|
9
|
+
|
|
10
|
+
## Selection Order
|
|
11
|
+
|
|
12
|
+
When Tera needs implementation rules, it determines the active profile in this order:
|
|
13
|
+
|
|
14
|
+
1. Read `project-control/PROJECT_STATE.md`.
|
|
15
|
+
2. If `Active Technology Profile` is defined there, use it.
|
|
16
|
+
3. Otherwise review `project-inputs/02_TECHNICAL_CONTEXT.md`.
|
|
17
|
+
4. Then derive or confirm it through `project-preparation/08_TECHNICAL_ARCHITECTURE.md`.
|
|
18
|
+
5. If no matching profile exists, ask the user to confirm the stack or create a
|
|
19
|
+
draft profile from `tera-system/profiles/TEMPLATE.md` before execution.
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- Do not use rules from an inactive profile.
|
|
24
|
+
- Do not mix rules from unrelated stacks.
|
|
25
|
+
- Do not apply `nextjs-prisma` rules to `.NET Blazor + EF Core`.
|
|
26
|
+
- Do not apply `dotnet-blazor-ef` rules to a Prisma-based project.
|
|
27
|
+
|
|
28
|
+
## Relationship with Technical Context
|
|
29
|
+
|
|
30
|
+
Technology Profile must not be selected from guesswork alone.
|
|
31
|
+
|
|
32
|
+
Profile selection should be grounded in:
|
|
33
|
+
|
|
34
|
+
1. `project-inputs/02_TECHNICAL_CONTEXT.md`
|
|
35
|
+
2. `project-preparation/08_TECHNICAL_ARCHITECTURE.md`
|
|
36
|
+
3. `project-control/PROJECT_STATE.md` when a live project uses it
|
|
37
|
+
|
|
38
|
+
If the stack is still unclear, do not activate a final profile yet.
|
|
39
|
+
|
|
40
|
+
## Current Profiles
|
|
41
|
+
|
|
42
|
+
| Profile ID | Stack | Status | Notes |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| `nextjs-prisma` | Next.js + TypeScript + PostgreSQL + Prisma | Available | Use when the approved architecture matches this stack |
|
|
45
|
+
| `dotnet-blazor-ef` | .NET Blazor + EF Core | Available | Ready for future .NET-oriented projects |
|
|
46
|
+
| `effect-bun-opencode` | TypeScript + Effect TS + Bun + OpenCode-style monorepo | **Deprecated** | المشروع المصدر (TeraOpenCode/TeraAi) أُزيل 2026-08-15 — يحتفظ بمعرفة الـ stack للاستخدام المستقبلي |
|
|
47
|
+
| `dotnet-wpf-sqlite` | C# (.NET 8) + WPF + CommunityToolkit.Mvvm + SQLite | ✅ **Approved** | WPF Desktop — معتمد من Majed (مشروع تجريبي سابق) |
|
|
48
|
+
| `phaser-react-node` | Phaser 3 + React + Node.js + TypeScript + PostgreSQL + Zustand + TanStack Query + Zod + Vite + Vitest | ✅ **Approved** | Web Game 2D — معتمد من Majed (2026-07-29) |
|
|
49
|
+
| `react-pwa` | React 18 + Vite + TypeScript + Tailwind CSS (RTL) + Zustand + idb (IndexedDB) + Fuse.js + vite-plugin-pwa | ✅ **Approved — Active** | PWA محلي عربي (Offline Standalone) — فعّل Majed (2026-08-01, PREP-D-016) |
|
|
50
|
+
|
|
51
|
+
## Placeholder Candidates
|
|
52
|
+
|
|
53
|
+
The following stacks may need profiles later, but are not created now:
|
|
54
|
+
|
|
55
|
+
- Django + Django ORM
|
|
56
|
+
- Laravel + Eloquent
|
|
57
|
+
- Spring Boot + Hibernate
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Technology Profile: <profile-id>
|
|
2
|
+
|
|
3
|
+
## 1. Profile Identity
|
|
4
|
+
|
|
5
|
+
- Profile ID:
|
|
6
|
+
- Language:
|
|
7
|
+
- Framework:
|
|
8
|
+
- Database:
|
|
9
|
+
- ORM:
|
|
10
|
+
- Package Manager / CLI:
|
|
11
|
+
- Default Project Type:
|
|
12
|
+
|
|
13
|
+
## 2. Applicability
|
|
14
|
+
|
|
15
|
+
Describe when this profile should be used and what kind of projects it covers.
|
|
16
|
+
|
|
17
|
+
## 3. Default Execution Order
|
|
18
|
+
|
|
19
|
+
Provide the normal high-level implementation order for this stack.
|
|
20
|
+
|
|
21
|
+
## 4. First Task Rule
|
|
22
|
+
|
|
23
|
+
Define the safest first implementation task for this technology.
|
|
24
|
+
|
|
25
|
+
## 5. Scaffold Rules
|
|
26
|
+
|
|
27
|
+
List safe scaffold commands, important flags, and default scaffold restrictions.
|
|
28
|
+
|
|
29
|
+
## 6. ORM / Database Rules
|
|
30
|
+
|
|
31
|
+
Define the limits for schema, entities, migrations, apply commands, and database-side validation.
|
|
32
|
+
|
|
33
|
+
## 7. CLI Side Effects
|
|
34
|
+
|
|
35
|
+
List common commands that create files, install packages, modify config, create migrations, or change database state.
|
|
36
|
+
|
|
37
|
+
## 8. Forbidden Defaults
|
|
38
|
+
|
|
39
|
+
List what must not be created by default unless the task explicitly requires it.
|
|
40
|
+
|
|
41
|
+
## 9. Pre-Execution Gate Additions
|
|
42
|
+
|
|
43
|
+
List profile-specific checks that extend the general `TeraPreExecutionGate.md`.
|
|
44
|
+
|
|
45
|
+
## 10. Acceptance Criteria Patterns
|
|
46
|
+
|
|
47
|
+
List common acceptance expectations for this stack.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Technology Profile: dotnet-blazor-ef
|
|
2
|
+
|
|
3
|
+
## 1. Profile Identity
|
|
4
|
+
|
|
5
|
+
- Profile ID: `dotnet-blazor-ef`
|
|
6
|
+
- Language: C#
|
|
7
|
+
- Framework: .NET Blazor
|
|
8
|
+
- Database: SQL Server or approved project database
|
|
9
|
+
- ORM: Entity Framework Core
|
|
10
|
+
- Package Manager / CLI: dotnet CLI, NuGet
|
|
11
|
+
- Default Project Type: Internal business application
|
|
12
|
+
|
|
13
|
+
## 2. Applicability
|
|
14
|
+
|
|
15
|
+
Use this profile when the approved architecture is based on .NET Blazor with EF Core.
|
|
16
|
+
|
|
17
|
+
## 3. Default Execution Order
|
|
18
|
+
|
|
19
|
+
1. Scaffold the Blazor project and solution structure.
|
|
20
|
+
2. Add only the required base packages.
|
|
21
|
+
3. Define entities and DbContext in separate approved tasks.
|
|
22
|
+
4. Create migrations in a separate approved task.
|
|
23
|
+
5. Apply database changes only in a dedicated database task.
|
|
24
|
+
|
|
25
|
+
## 4. First Task Rule
|
|
26
|
+
|
|
27
|
+
Safe first task:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
Scaffold .NET Blazor project + basic solution structure only
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 5. Scaffold Rules
|
|
34
|
+
|
|
35
|
+
- Use `dotnet new blazor...` only for project scaffolding.
|
|
36
|
+
- Keep the first task limited to project structure and minimum approved packages.
|
|
37
|
+
|
|
38
|
+
## 6. ORM / Database Rules
|
|
39
|
+
|
|
40
|
+
- Entities belong to a separate schema/domain task.
|
|
41
|
+
- `DbContext` belongs to a clear database setup task.
|
|
42
|
+
- Migrations belong to a separate migration task.
|
|
43
|
+
- `dotnet ef database update` is forbidden unless the task is explicitly a database apply task.
|
|
44
|
+
- Do not add Identity/Auth without explicit delegation.
|
|
45
|
+
|
|
46
|
+
## 7. CLI Side Effects
|
|
47
|
+
|
|
48
|
+
- `dotnet new blazor...` creates boilerplate files.
|
|
49
|
+
- `dotnet add package` modifies `.csproj`.
|
|
50
|
+
- `dotnet ef migrations add` creates migration files.
|
|
51
|
+
- `dotnet ef database update` changes database state.
|
|
52
|
+
|
|
53
|
+
## 8. Forbidden Defaults
|
|
54
|
+
|
|
55
|
+
Do not add by default in the first implementation task:
|
|
56
|
+
|
|
57
|
+
- Entities
|
|
58
|
+
- `DbContext`
|
|
59
|
+
- migrations
|
|
60
|
+
- database update
|
|
61
|
+
- Auth
|
|
62
|
+
- custom UI styling
|
|
63
|
+
- large services
|
|
64
|
+
- repository layer without clear need
|
|
65
|
+
|
|
66
|
+
## 9. Pre-Execution Gate Additions
|
|
67
|
+
|
|
68
|
+
- Confirm scaffold task does not silently add Identity or extra hosting layers.
|
|
69
|
+
- Confirm EF Core work is split from scaffold work unless the task explicitly combines them with approval.
|
|
70
|
+
- Confirm database update commands are isolated.
|
|
71
|
+
|
|
72
|
+
## 10. Acceptance Criteria Patterns
|
|
73
|
+
|
|
74
|
+
- Basic Blazor project structure exists and builds.
|
|
75
|
+
- No unapproved database changes were applied.
|
|
76
|
+
- No unapproved auth or heavy infrastructure was added.
|