---
title: "معمارية المنصة: ما قررناه وما تستند عليه."
seo_title: "معمارية المنصة: القرارات والمراجع | SazAI"
description: "كيف بُنيت SazAI: محركات غير تابعة للتنسيق والنسب والقرارات المُصدّرة والتحقق بطريقة منهجية."
tags: [marketing]
icon: book
---

> **الخلاصة: المسّرع هو سيطرة الفريق على الركيزة؛ ولا قرار هنا هو مسألة ذوق: الاختيار مكتوب، مع ما تم رفضه ولماذا.** الهرم أدناه هو الخريطة؛ الفجوة تبقى خارجه، معلنة.

<div class="chap">

<div class="ico-col"><span class="ico"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:36px;height:36px"><path d="M24 8l16 8-16 8-16-8z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M8 24l16 8 16-8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M8 32l16 8 16-8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></span></div>

## ما SazAI

<h3 class="sub">محركات وعناصر وتوثيق، يتقنها من بناها</h3>

SazAI هي المنصة: الركيزة الذكية والتوثيقية التي بنيت عليها المنتجات. تعدد الاستئجار والمصادقة والنسب والأوركسترا والطبقة الوكيل والقياس الدقيق والقرارات المُصدّرة، بنُيت مرة واحدة. SazAI Corpus والخزنة ونظام التصميم هي المنتجات التي ظهرت منها بالفعل، وكل واحد منها يستخدم نفس المحرك بدلاً من إعادة بنائه.

الألواح تنخفض حسب قوة الرابط، وكل واحد ينتهي بمراجعه في كتلة قابلة للتوسع لمن يريد التحقق. الاستشهادات تتبع معيار ABNT NBR 6023، 2018.

<figure class="viz" role="group" aria-label="الهرم في هذه الصفحة: أربع قوات رابطة، من تبعية التنفيذ إلى الموضع، والفجوة خارجها">
<div class="duo" style="grid-template-columns:auto 1fr">
<div class="mid"><svg viewBox="0 0 220 170" aria-hidden="true" style="width:200px">
<polygon points="110,10 150,50 70,50" fill="var(--hue-analysis)" opacity=".85"/>
<polygon points="64,58 156,58 176,92 44,92" fill="var(--hue-output)" opacity=".65"/>
<polygon points="38,100 182,100 198,130 22,130" fill="var(--hue-upload)" opacity=".5"/>
<polygon points="16,138 204,138 214,160 6,160" fill="var(--hue-reprocess)" opacity=".35"/>
<rect x="180" y="8" width="34" height="34" rx="4" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-dasharray="4 3" style="color:var(--gray)"/>
</svg></div>
<div class="side" style="text-align:left">
<b style="color:var(--hue-analysis)">تبعية التنفيذ</b><span>المحرك لا يعمل بدون المعيار - الخطوة 1</span>
<b style="color:var(--hue-output);margin-top:.5rem">المعيار المطبق والمقاس</b><span>القانون في المخطط والمعيار في العنصر والتباين حسب الرمز - الخطوات 2 إلى 4</span>
<b style="color:var(--hue-upload);margin-top:.5rem">القرار المسجل</b><span>الاختيار مكتوب مع ما تم رفضه ولماذا - الخطوات 5 و 6</span>
<b style="color:var(--hue-reprocess);margin-top:.5rem">الموضع</b><span>الدراسات مع التحفظ المرفق - الخطوة 7</span>
<b style="color:var(--gray);margin-top:.5rem">الفجوة</b><span>خارج الهرم ومعلنة - اللوح الأخير</span>
</div>
</div>
<figcaption>قوة الرابط تقرر الارتفاع. ما لا يحمل أي شيء يبقى خارج الرسم، مقطع، مع لوحه الخاص.</figcaption>
</figure>

إنها ليست سهلة للاستخدام لمن يأتي من الخارج. **المسّرع ليس الركيزة؛ إنه سيطرة الفريق عليها.** من يعرف المحركات والعناصر والتوثيق يبني منتج SaaS جديد مما هو موجود بالفعل، وبقية هذه الصفحة هي قياس كم يختصر هذا المسار.

<figure class="viz duo" role="group" aria-label="المحركات والعناصر والتوثيق؛ سيطرة الفريق في الوسط؛ المنتجات التي تخرج">
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><rect x="10" y="10" width="28" height="28" rx="4" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="24" cy="24" r="6" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="24" y1="4" x2="24" y2="10" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="24" y1="38" x2="24" y2="44" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="4" y1="24" x2="10" y2="24" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="38" y1="24" x2="44" y2="24" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>الركيزة</b>محركات وعناصر وتوثيق</div>
<div class="mid" style="color:var(--hue-upload)"><svg viewBox="0 0 120 72" aria-hidden="true"><line x1="6" y1="36" x2="40" y2="36" stroke="currentColor" stroke-width="1.5"/><path d="M34 31l6 5-6 5" fill="none" stroke="currentColor" stroke-width="1.5"/><circle cx="60" cy="36" r="14" fill="currentColor" opacity=".12" stroke="currentColor" stroke-width="1.5"/><path d="M54 36l4 4 8-8" fill="none" stroke="currentColor" stroke-width="1.5"/><line x1="80" y1="36" x2="114" y2="36" stroke="var(--hue-output)" stroke-width="1.5"/><path d="M108 31l6 5-6 5" fill="none" stroke="var(--hue-output)" stroke-width="1.5"/></svg><b>سيطرة الفريق</b>هي ما يسّرع</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><rect x="8" y="12" width="32" height="24" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="8" y1="20" x2="40" y2="20" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="13" cy="16" r="1.4" fill="currentColor"/><circle cx="18" cy="16" r="1.4" fill="currentColor"/></svg><b>المنتجات</b>Corpus والخزنة ونظام التصميم</div>
</figure>

الإطار لهذه الفكرة ليس جديداً وليس من هذه الصفحة: إنه الثامن من أصل تسعة أعمدة تصف SazAI نفسها بها، *المنصة قبل المنتج*. ما يلي هو دليله.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--hue-analysis)" name="file" size="36"></sz-icon></div>

## المحرك يعتمد على معايير التنسيق ليوجد

<h3 class="sub">الخطوة 1 - تبعية التنفيذ، أقوى رابط هناك</h3>

إذا كان المعيار خاطئاً في الكود، لن يعمل المحرك. المرجع لا يُذكر؛ يُعتمد عليه، والحتمية تنبع من ذلك.

**البيانات والحقائق:**

- فضاء الأسماء OOXML في المحرك: 237 حدوث عبر 37 شكل مختلف (2026-09-01).
- Dublin Core كتبعية: 22 فضاء اسم. ISO 8601: المعيار الأكثر استشهاداً في قاعدة البيانات، 60 حدوث.
- السلسلة القابلة للتحقق: البند المنشور، تعليق DDL، خريطة البيانات، العمود. إعادة الصياغة محظورة بموجب القاعدة المكتوبة؛ DDL والخريطة تحمل نفس البند، حرفياً.

<figure class="viz duo four" role="group" aria-label="سلسلة الحتمية: البند المنشور وتعليق DDL وطبقة الخريطة والعمود العلائقي">
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:40px;height:40px"><path d="M12 6h18l8 8v28H12z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M30 6v8h8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="24" x2="32" y2="24" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>البند المنشور</b>المعيار حسب الرقم</div>
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:40px;height:40px"><rect x="8" y="10" width="32" height="28" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="14" y1="18" x2="34" y2="18" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-dasharray="3 2"/><line x1="14" y1="25" x2="30" y2="25" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="14" y1="31" x2="30" y2="31" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>تعليق DDL</b>نفس البند حرفياً</div>
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:40px;height:40px"><circle cx="14" cy="14" r="5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="34" cy="18" r="5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="22" cy="34" r="5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="17" y1="17" x2="31" y2="16" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="16" y1="18" x2="20" y2="30" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>طبقة الخريطة</b>بدون إعادة صياغة حسب القاعدة</div>
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:40px;height:40px"><rect x="8" y="8" width="32" height="32" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="20" y1="8" x2="20" y2="40" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="8" y1="20" x2="40" y2="20" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>العمود العلائقي</b>يوجد لأن البند يوجد</div>
</figure>

### والتنسيق التالي يكلف أقل

التنسيق الأول كان PowerPoint، وكلّف المحرك كله: القراءة والقياس والترجمة والكتابة مجدداً والمقارنة، كل شيء للمرة الأولى. الثاني، وثيقة Word، كلّف رتبة واحدة أقل. الثالث، جدول البيانات، رتبة واحدة إضافية. والرابع، PDF، كلّف نفس تكلفة الثالث: استقرت المنحنى. إنها ليست قائمة بالإنجازات؛ إنها منحنى، والمنحنى هو الحجة.

<figure class="viz curve" role="group" aria-label="تكلفة كل تنسيق عبر الدورة الكاملة على مقياس لوغاريتمي: الأول كلّف المحرك الكامل وكل واحد لاحق رتبة واحدة أقل والرابع يستقر بنفس تكلفة الثالث">
<div class="row ooxml"><b>PPTX</b><span class="track"><span class="bar" style="width:100%"></span></span><em>المحرك الكامل</em></div>
<div class="row ooxml"><b>DOCX</b><span class="track"><span class="bar" style="width:46%"></span></span><em>رتبة واحدة أقل</em></div>
<div class="row ooxml"><b>XLSX</b><span class="track"><span class="bar" style="width:16%"></span></span><em>واحدة إضافية</em></div>
<div class="row other"><b>PDF</b><span class="track"><span class="bar" style="width:15%"></span></span><em>يستقر</em></div>
<figcaption>مقياس لوغاريتمي: كل خطوة هي رتبة واحدة. النقطة الرابعة ليست فقط الأصغر: إنها من طبيعة مختلفة وكلّفت نفس تكلفة الثالثة.</figcaption>
</figure>

<p class="claim">ال<b>PDF هو أول ركيزة ليست Office</b>: رسم بياني ثنائي من الكائنات بدلاً من zip زائد XML. لو كان المحرك قد أصبح جيداً فقط في PowerPoint، كان التنسيق الرابع سيكلّف مثل الأول. كلّف مثل الثالث. <b>المحرك لم يصبح أسرع في PowerPoint؛ أصبح غير تابع للتنسيق</b> و<a href="documents">التنسيقات الأربع</a> تعمل اليوم على نفس المعمارية وكل واحد برضاء معلن خاص به. لهذا السبب الخامس سيكلّف ما كلّفه الرابع، وهذا ما تسميه هذه الصفحة تسريعاً.</p>

<div class="bound">
<p><b>حيث هذا مسجل معلن قبل أن تسأل.</b> في git وليس في اليوميات المؤسسية: المنحنى يستند على قرارات مؤرخة والتزامات، وهي المصدر الصحيح للفترة وهذا ما يُتحقق منه في التقييم. الأوقات المطلقة لكل تنسيق تعيش في الوثيقة التقنية مع الأمر الذي يشتقها بجانبها.</p>
</div>
<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div>
<p><b>ما هو مكتوب وما تم رفضه</b></p><ul><li>اقرأ كل تنسيق حسب المعيار بند تلو الآخر؛ تم رفض الاستكشاف لأنه لا يصمد في التدقيق.</li><li>التواريخ بصيغة ISO 8601 عبر النظام الكامل؛ البيانات الوصفية بموجب Dublin Core.</li><li>PDF مقبول كأول ركيزة ليست Office مستشهد بمعياره الخاص.</li></ul><p><b>المراجع (ABNT NBR 6023:2018)</b></p><ul><li>ECMA INTERNATIONAL. <b>ECMA-376</b>: صيغ ملفات Office Open XML. متاح على: https://ecma-international.org/publications-and-standards/standards/ecma-376/.</li><li>ISO/IEC. <b>ISO/IEC 29500</b>: صيغ ملفات Office Open XML.</li><li>ISO. <b>ISO 32000-1</b>: صيغة المستند المحمول. - ISO. <b>ISO 19005</b>: PDF/A.</li><li>ISO. <b>ISO 15836-1</b>: Dublin Core. - ISO. <b>ISO 8601</b>: التاريخ والوقت.</li><li>IETF. <b>RFC 5646</b>: علامات تحديد اللغات.</li><li>MICROSOFT. <b>MS-PPTX - MS-DOCX - MS-OE376 - MS-ODRAWXML - MS-OFFCRYPTO</b>: ملاحظات التنفيذ.</li><li>UNICODE CONSORTIUM. <b>مواصفات Unicode CMap</b>.</li></ul>
</div>
</details>

</div>

<div class="chap">

<div class="ico-col"><span class="ico"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:36px;height:36px"><circle cx="24" cy="24" r="5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="10" cy="12" r="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="38" cy="10" r="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="12" cy="38" r="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="38" cy="36" r="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="13" y1="14" x2="20" y2="21" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="35" y1="12" x2="28" y2="21" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="14" y1="36" x2="20" y2="27" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="35" y1="34" x2="28" y2="27" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></span></div>

## جسم المعرفة

<h3 class="sub">كل ما قررناه وقسناه وكتبناه، مرتبط وقابل للملاحة من قبل الفريق والوكلاء</h3>

لسيطرة الفريق على الركيزة مكان تعيش فيه: خزنة Obsidian تعكس المستودع. القرارات وخريطة البيانات وعقود الوكلاء والشخصيات والاستراتيجية وجلسات العمل: كل ملاحظة مرتبطة بالآخرين والمحاور هي الأبواب التي يدخل منها الشخص أو الوكيل. إنه نفس الرسم البياني الذي يسلمه المنتج للعميل في خزنته الخاصة، يُستخدم أولاً على أنفسنا. أدناه الخاص بنا قيد الحركة؛ مرر فوق مركز لترى ما يربطه وانقر لفتحه بالكامل.

<figure class="viz graph" id="vault-graph" role="group" tabindex="0" aria-label="رسم خزنة SazAI البياني: مراكز القرارات والوكلاء وخريطة البيانات والمنتج والاستراتيجية والعمليات والأشخاص والتوضيح والشخصيات مرتبطة ببعضها البعض وملاحظاتها">
<div class="stage"><svg viewBox="0 0 800 520" aria-hidden="true"><g class="edges"></g><g class="nodes"></g></svg><div class="labels" aria-hidden="true"></div></div>
<figcaption>خزنة SazAI كما يراها الفريق كل يوم. كل نقطة ملاحظة؛ كل سطر ارتباط كتبه شخص ما. للمحاور أسماء؛ الباقي هو ما يربطونه. مجموعة العقد مصورة يدوياً في 2026-08-28؛ عندما يصل الاشتقاق التلقائي للخزنة ستزول هذه الجملة.</figcaption>
</figure>

<div class="bound">
<p><b>إلى أي مدى تصل الخريطة المقيسة وهي الجزء الأكثر قيمة.</b> رسم خزنة البياني يصل إلى 55 من 158 جدول خريطة البيانات وواحد من خرائط التنسيق الخمس؛ المستودع يصل إلى 158 من 158. رسم يُظهر كل شيء مرتبط سيكون الادعاء الوحيد في هذه الصفحة بدون إيصال خلفه على صفحة موضوعها أن ادعاءاتنا لها إيصالات. ما يُتحقق منه ليس أن كل شيء يتصل: إنه أننا نعرف بالضبط ما يتصل وما لا يتصل. حيث تصمت الخريطة يجيب المستودع.</p>
</div>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--hue-reprocess)" name="info" size="36"></sz-icon></div>

## حماية البيانات هي تصميم والتصميم يُدقق

<h3 class="sub">الخطوة 2 - القانون أصبح مخطط والمخطط قابل للفحص</h3>

ما يطلبه القانون كتابة تفي به قاعدة البيانات عبر البنية. التحقق ليس قراءة سياستنا؛ إنه تدقيق المخطط.

**البيانات والحقائق:**

- التخزين الدائم لا يحمل محتوى مستند؛ المحتوى يعيش في قاعدة بيانات منفصلة حساسة وقابلة للمسح.
- العزلة حسب المستأجر كعمود وليس كوعد: الشرائح لا تعبر الحدود.
- الشهادة اليوم: لا شيء. عناصر تحكم مصممة لتكون دليل عند السؤال عنها.

<figure class="viz duo" role="group" aria-label="قاعدتا بيانات: الدائمة بدون محتوى والحساسة المنفصلة والقابلة للمسح">
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><ellipse cx="24" cy="12" rx="14" ry="5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M10 12v24c0 3 6 5 14 5s14-2 14-5V12" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="16" y1="22" x2="32" y2="22" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="16" y1="29" x2="28" y2="29" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>دائمة</b>البنية والقياس والنسب؛ المحتوى أبداً</div>
<div class="mid" style="color:var(--gray)"><svg viewBox="0 0 120 72" aria-hidden="true"><line x1="60" y1="10" x2="60" y2="62" stroke="currentColor" stroke-width="1.5" stroke-dasharray="4 3"/></svg><b>منفصلة حسب التصميم</b>دقق المخطط</div>
<div class="side" style="color:var(--hue-reprocess)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><ellipse cx="24" cy="12" rx="14" ry="5" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M10 12v24c0 3 6 5 14 5s14-2 14-5V12" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-dasharray="4 3"/><line x1="18" y1="26" x2="30" y2="34" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="30" y1="26" x2="18" y2="34" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>حساسة</b>المحتوى قابل للمسح فعلاً</div>
</figure>

<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div>
<p><b>ما هو مكتوب وما تم رفضه</b></p><ul><li>الخصوصية حسب التصميم والافتراضي كمعمارية؛ تم رفض طبقة امتثال على قاعدة بيانات مشتركة.</li><li>الإزالة تُسمى <b>السحب</b> وليس الحذف: تم رفض الكلمة الأقوى لأنها وعدت بنطاق لا تدعمه النسخ الاحتياطية.</li></ul><p><b>المراجع (ABNT NBR 6023:2018)</b></p><ul><li>EUROPEAN UNION. <b>Regulation (EU) 2016/679</b> (GDPR)، مادة 25.</li><li>BRAZIL. <b>Law No. 13,709, of August 14, 2018</b> (LGPD).</li><li>CAVOUKIAN, Ann. <b>Privacy by Design</b>: المبادئ الأساسية السبع. تورونتو: IPC، 2009.</li><li>ISO/IEC. <b>ISO/IEC 27001</b>. - OWASP FOUNDATION. متاح على: https://owasp.org/.</li></ul>
</div>
</details>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--hue-output)" name="eye" size="36"></sz-icon></div>

## إمكانية الوصول تُقاس وليست معلنة

<h3 class="sub">الخطوة 3 - معيار مستشهد به هو امتثال؛ رقم مقاس هو تصميم</h3>

المعيار يعيش في العنصر مع الرقم بجانب الكود والتباين يُقاس قبل أن يدخل أي لون النظام.

**البيانات والحقائق:**

- WCAG 2.2 AA عبر 51 ملف نظام تصميم بمعايير مستشهد بها حسب الرقم (1.4.1 3.1) (2026-09-01).
- التباين مقاس لكل رمز: `--hue-lineage` بـ 4.00:1 مع الملاحظة *دليل وليس نص* مكتوبة داخل الرمز نفسه؛ `--text-faint` **فشل** بقياس 2.56:1 على الأبيض والفشل مسجل.
- عمى الألوان مقاس: البنفسجي تُقيم تحت deuteranopia مسافة اللون ΔE 29.1.
- لا قرارات معمارية تسجل WCAG؛ أقوى رابط إمكانية وصول للمنزل غير مرئي في سجل القرار وتسجيله لا يزال عمل يجب القيام به.

<figure class="viz" role="group" aria-label="ثلاث قياسات ألوان: رمز موافق عليه كدليل وآخر فشل والبنفسجي مقاس تحت deuteranopia">
<div class="duo" style="grid-template-columns:1fr 1fr 1fr">
<div class="side"><div class="ev proof" style="margin:0"><span class="n">4.00:1</span><span class="t"><b>موافق عليه كدليل</b>مع الملاحظة <i>دليل وليس نص</i> مكتوبة داخل الرمز نفسه</span></div></div>
<div class="side"><div class="ev open" style="margin:0"><span class="n">2.56:1</span><span class="t"><b>فشل</b>مقاس على الأبيض والفشل مسجل</span></div></div>
<div class="side"><div class="ev proof" style="margin:0"><span class="n">ΔE 29.1</span><span class="t"><b>deuteranopia</b>البنفسجي مقاس تحت أكثر نقص اللون شيوعاً</span></div></div>
</div>
<figcaption>معيار مستشهد به هو امتثال؛ رقم مقاس هو تصميم. الأرقام الثلاثة تعيش في الرموز وليس في سياسة.</figcaption>
</figure>

### نظام التصميم منتج مبني على معيار مفتوح

<h3 class="sub">الخطوة 4 - المسّرع للأسطح الأخرى بمعيار W3C</h3>

نظام التصميم هو منتج SazAI برتيفيكيشن (2026-08-26) بوظيفة تسريع الآخرين: العناصر التي تخدم التسويق والخزنة والعرض هي نفسها وهي معيار مفتوح وليست إطار عمل خاص.

**البيانات والحقائق:**

- عناصر مبنية على عناصر مخصصة W3C وخصائص CSS مخصصة؛ بدون تبعية إطار عمل.
- مكتبة واحدة وثلاثة أسطح تُخدم؛ المواضيع الفاتحة والداكنة والجلود البيضاء من خلال نفس آلية الرمز.
- الرموز تحمل قياساتها وملاحظات الاستخدام الخاصة بها (الخطوة 3) لذا تسافر القاعدة مع اللون.

<figure class="viz duo" role="group" aria-label="مكتبة عناصر واحدة تخدم ثلاثة أسطح">
<div class="side" style="color:var(--verb-see)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><rect x="8" y="8" width="14" height="14" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="26" y="8" width="14" height="14" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="8" y="26" width="14" height="14" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="26" y="26" width="14" height="14" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>مكتبة واحدة</b>عناصر ورموز وجلود</div>
<div class="mid" style="color:var(--gray)"><svg viewBox="0 0 120 72" aria-hidden="true"><line x1="10" y1="36" x2="55" y2="36" stroke="currentColor" stroke-width="1.5"/><line x1="55" y1="36" x2="105" y2="14" stroke="currentColor" stroke-width="1.5"/><line x1="55" y1="36" x2="105" y2="36" stroke="currentColor" stroke-width="1.5"/><line x1="55" y1="36" x2="105" y2="58" stroke="currentColor" stroke-width="1.5"/></svg><b>نفس الآلية</b>المواضيع والجلود البيضاء حسب الرمز</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><rect x="6" y="8" width="36" height="10" rx="2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="6" y="22" width="36" height="10" rx="2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><rect x="6" y="36" width="36" height="6" rx="2" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>ثلاثة أسطح</b>التسويق والخزنة والعرض</div>
</figure>

<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div><p><b>ما هو مكتوب وما تم رفضه</b></p><ul><li>المعيار حسب الرقم في العنصر الذي يفيه؛ تم رفض صفحة السياسة المركزية.</li><li>كلمة خارج التصميم: النص في HTML والهندسة في SVG.</li></ul><p><b>المراجع (ABNT NBR 6023:2018)</b></p><ul><li>W3C. <b>WCAG 2.2</b>: إرشادات إمكانية الوصول على الويب المستوى AA. التوصية 2023. متاح على: https://www.w3.org/TR/WCAG22/.</li></ul><p><b>ما هو مكتوب وما تم رفضه</b></p><ul><li>عناصر ويب قياسية؛ تم رفض إطار العمل الخاص حتى لا تعتمد الجلود البيضاء على رخصة خاصة بنا.</li><li>محفوظة بنفس المعيار الذي ينطبق على أي سطح: جناح يعمل وحراس يرفضون بناء.</li></ul><p><b>المراجع (ABNT NBR 6023:2018)</b></p><ul><li>W3C. <b>Custom Elements</b> (HTML Living Standard). - W3C. <b>CSS Custom Properties for Cascading Variables</b>.</li></ul></div>
</details>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--hue-analysis)" name="globe" size="36"></sz-icon></div>

## القنوات هي القدرة: API و MCP يغيران ما يمكن أن يكون المنتج

<h3 class="sub">الخطوة 5 - المعايير المفتوحة على الباب وما تمكنه</h3>

API المفتوح و MCP ليسا سباكة: إنهما ما يسمح ببناء واجهات وتوصيلات أخرى على نفس الركيزة دون أن نكون هناك. وكيل جهة خارجية لوحة تحكم من عندك تكامل سير العمل: المنتج يصبح قادراً على أن يكون هذه الأشياء لأن القنوات موجودة.

**البيانات والحقائق:**

- قناة الوكيل هي خادم موارد OAuth قياسي: 401 بدون بيانات اعتماد واكتشاف منشور.
- الرجاء كعقد: **MCP ⊆ OpenAPI** كل ما يعرضه MCP موجود في API المفتوح. ركيزة واحدة عدة قراء.
- الأوركسترا بأداة تنفيذ سير عمل دائمة بُنيت على ما تضمنه والضمان يُقاس: العمل الميت لا يترك حالة جزئية؛ الحمل الزائد ينحدر إلى قائمة انتظار وليس يكسر؛ لا شيء يفشل بصمت.

<figure class="viz duo" role="group" aria-label="ركيزة واحدة وقناتان والواجهات التي تمكنانها">
<div class="side" style="color:var(--hue-analysis)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><rect x="10" y="10" width="28" height="28" rx="4" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="24" cy="24" r="6" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>ركيزة واحدة</b>المحرك والخزنة</div>
<div class="mid" style="color:var(--hue-upload)"><svg viewBox="0 0 120 72" aria-hidden="true"><rect x="38" y="14" width="44" height="18" rx="9" stroke="currentColor" stroke-width="1.5" fill="currentColor" opacity=".12"/><rect x="38" y="40" width="44" height="18" rx="9" stroke="currentColor" stroke-width="1.5" fill="none"/><line x1="10" y1="36" x2="38" y2="24" stroke="currentColor" stroke-width="1.5"/><line x1="10" y1="36" x2="38" y2="48" stroke="currentColor" stroke-width="1.5"/><line x1="82" y1="24" x2="110" y2="16" stroke="var(--hue-output)" stroke-width="1.5"/><line x1="82" y1="48" x2="110" y2="40" stroke="var(--hue-output)" stroke-width="1.5"/><line x1="82" y1="36" x2="110" y2="60" stroke="var(--hue-output)" stroke-width="1.5"/></svg><b>API و MCP</b>MCP ⊆ OpenAPI حسب العقد</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:48px;height:48px"><path d="M24 6l4 12 12 4-12 4-4 12-4-12-12-4 12-4z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>ما يمكن أن يكون</b>وكلاء من عندك لوحات تحكم من عندك سير عمل من عندك</div>
</figure>

<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div>
<p><b>ما هو مكتوب وما تم رفضه</b></p><ul><li>المصادقة والاكتشاف حسب RFCs؛ تم رفض الاتفاقية المخصصة.</li><li>قناة جديدة لا تخترع سطح جديد: قاعدة الرجاء تمنع MCP من أن يصبح API ثانية.</li></ul><p><b>المراجع (ABNT NBR 6023:2018)</b></p><ul><li>IETF. <b>RFC 8414</b>: بيانات وصف خادم التفويض OAuth 2.0. 2018.</li><li>IETF. <b>RFC 9728</b>: بيانات وصف الموارد المحمية في OAuth 2.0. 2025.</li><li>IETF. <b>RFC 8707</b>: مؤشرات الموارد لـ OAuth 2.0. 2020.</li><li>OPENAPI INITIATIVE. <b>OpenAPI Specification</b>. متاح على: https://spec.openapis.org/.</li><li>ANTHROPIC. <b>Model Context Protocol</b> (MCP). متاح على: https://modelcontextprotocol.io/.</li></ul>
</div>
</details>

</div>

<div class="chap">

<div class="ico-col"><span class="ico"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:36px;height:36px"><path d="M24 6l14 5v12c0 9-6 15-14 19-8-4-14-10-14-19V11z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M17 24l5 5 9-10" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></span></div>

## كيف نتحقق

<h3 class="sub">الاختبارات التي ترفض التدقيق بطريقة والعيوب المنشورة بجانب ما نجح</h3>

للتحقق أربع طبقات والترتيب أهم. **الاختبارات:** 505 ملفات اختبار في المستودع مع جناح نظام التصميم يعمل على كل بناء. **الحراس:** الفحوصات التي ترفض وقت البناء بدلاً من فقط التقرير؛ البناء الذي ينتهك قاعدة لا يشحن. **الحمل:** اختبار 2026-07-20 على نسخة طبق الأصل للإنتاج مع 50 قراءة متزامنة تُجاب في 0.77 ثانية وعملية ثقيلة تبلغ ذروتها عند 4.71 GiB مقابل سقف 5 وموجات من خمس وعشر وظائف بدون فشل بدون حمل الذاكرة الزائد بدون فساد. تحت الحمل الزائد يدخل النظام قائمة انتظار؛ لا ينكسر. **التدقيق الداخلي:** تقارير الإجهاد والتدمير والأمان المؤرخة مع حكم لكل بند.

<figure class="viz duo four" role="group" aria-label="أربع طبقات تحقق: اختبارات وحراس يرفضون التدقيق بطريقة العيوب المنشورة">
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:44px;height:44px"><rect x="8" y="8" width="32" height="32" rx="3" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M15 24l6 6 12-12" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>505 اختبار</b>يعمل الجناح على كل بناء</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:44px;height:44px"><path d="M8 12h32v10H8z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M8 26h32v10H8z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="30" y1="14" x2="36" y2="20" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="36" y1="14" x2="30" y2="20" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M28 31l3 3 5-6" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>حراس يرفضون</b>البناء الذي ينتهك لا يشحن</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:44px;height:44px"><circle cx="21" cy="21" r="11" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="29" y1="29" x2="40" y2="40" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="16" y1="19" x2="26" y2="19" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="16" y1="24" x2="23" y2="24" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>التدقيق بطريقة</b>الإجهاد والتدمير والأمان</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:44px;height:44px"><path d="M12 6h18l8 8v28H12z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M30 6v8h8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="24" cy="28" r="6" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="24" y1="25" x2="24" y2="29" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><circle cx="24" cy="31.5" r=".9" fill="currentColor"/></svg><b>العيوب المنشورة</b>بجانب ما نجح</div>
</figure>

<p class="claim">لا نحمل شهادة SOC2 أو ISO. ما لدينا هو <b>تدقيق داخلي موثق بطريقة معلنة والعيوب التي وجدتها منشورة بجانب ما نجح</b>. أحد تقاريرنا يحمل كأقسام خاصة به <i>العيوب المكتشفة</i> <i>إيجابي خاطئ كدت أن أنشره</i> و<i>ما لم أستطع إثباته</i>. الختم كلمة من طرف ثالث؛ الطريقة المعلنة القارئ التقني يحكم وحده. والقرارات المكتوبة مصممة لتكون دليل تحكم عند السعي للحصول على شهادة.</p>

<div class="bound">
<p><b>ما تستشهد به هذه الصفحة وما لا تستشهد.</b> وجود التقارير وطريقتها هنا. الحكم على كل بند يعيش في الوثيقة التقنية المرفقة بتقييم لأن نشر قائمة الفحص مع النتائج على الجزء العلوي من القمع يسلم خريطة لمن لا يجب أن يحصل عليها. العبارة التي لا يقرها اختبار الحمل: <i>خمسون متزامن</i>. خمسون مقعد ووظيفة ثقيلة واحدة في المرة؛ الخلط بين الاثنين هو الخطأ التي تنشأ هذه الصفحة لعدم الوقوع فيه.</p>
</div>

<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div><p><b>المنهجية الخارجية معلنة لمحور الاختبار: لا شيء.</b> ممارسة قوية حراس يرفضون عند البناء تقارير مؤرخة؛ مصدر الطريقة داخلي والقول بذلك جزء من الطريقة.</p></div>
</details>

</div>

<div class="chap">

<div class="ico-col"><span class="ico"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:36px;height:36px"><path d="M12 6h18l8 8v28H12z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M30 6v8h8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="22" x2="32" y2="22" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="28" x2="32" y2="28" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="34" x2="26" y2="34" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="15" y1="25" x2="35" y2="25" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-width="2"/></svg></span></div>

## كيف نقرر

<h3 class="sub">القرارات المكتوبة المؤرخة والإبطال الذي يشطب جملتين فقط</h3>

كل قرار معمارية SazAI وثيقة مؤرخة مع السياق والبديل المرفوض والسبب. هناك 61 اعتباراً من تاريخ هذه الصفحة والرقم يدخل مؤرخاً لأنه ينمو؛ الأمر الذي يشتقه موجود في مراجع هذا اللوح. ما يجعل هذا إيصال وليس ملف ميت هو الإبطال: عندما قرار جديد يتناقض مع قرار قديم يقول بالضبط أي جملة من القديم توقف صحتها والقديم يحصل على الرمز في جسده على الجملة وليس على العنوان.

أحدث مثال من أمس. القرار 023 أصلح من بين أشياء أخرى المفردات التي يسمي الآخرون قدرات المنتج بها. القرار 061 أبطل **جملتين** من قديمه كلاهما عن المفردات وترك كل شيء عن المحرك سليم بما في ذلك البند يُعتقد أنه انتهك لم ينتهك. ثلاثة قراء أكفاء قرأوا تلك البند بنفس الطريقة الخاطئة والقرار يسجل كل ثلاثة أسماء لأن قرار يحتفظ فقط بالخلاصة يفقد السبب ثلاثة أشخاص ساروا فيه معاً.

<figure class="viz duo" role="group" aria-label="قرار قديم مع جملتين مشطوبة والباقي سليم مرتبط بالقرار الجديد">
<div class="side" style="color:var(--hue-reprocess)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:52px;height:52px"><path d="M12 6h18l8 8v28H12z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M30 6v8h8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="22" x2="32" y2="22" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="28" x2="32" y2="28" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="18" y1="34" x2="26" y2="34" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><line x1="15" y1="25" x2="35" y2="25" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none" stroke-width="2"/></svg><b>القرار القديم</b>جملتان مشطوبة الباقي سليم</div>
<div class="mid" style="color:var(--hue-reprocess)"><svg viewBox="0 0 120 72" aria-hidden="true"><line x1="10" y1="36" x2="106" y2="36" stroke="currentColor" stroke-width="1.5"/><path d="M100 31l6 5-6 5" fill="none" stroke="currentColor" stroke-width="1.5"/><rect x="42" y="26" width="36" height="20" rx="10" fill="currentColor" opacity=".12" stroke="currentColor" stroke-width="1.5"/></svg><b>يُبطل</b>يسمي الجملة وفقط</div>
<div class="side" style="color:var(--hue-output)"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:52px;height:52px"><path d="M12 6h18l8 8v28H12z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M30 6v8h8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M18 28l4 4 8-8" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg><b>القرار الجديد</b>مع الأسماء الثلاثة التي أخطأت معاً</div>
</figure>

<div class="bound">
<p><b>رقم هذه الصفحة لا تنشره.</b> كم عدد هذه القرارات <i>مقبولة</i> يعتمد على أي كلمات الحساب يسمح بها في حقل الحالة وخمسة عدادين أكفاء وصلوا لخمسة أرقام مختلفة هذا الأسبوع. لا أحد كان خاطئاً: الحقل لم يعلن مفرداته الخاصة. ننشر العد المؤرخ مع الأمر بجانبه؛ العد المقبول يذهب للعام فقط عندما يأتي مع الأمر الذي ينتجه بجانبه الطريقة التي تفعلها الـ 158 جدول بالفعل.</p>
</div>

### وكيف نكتب: عقد داخلي خطوة واحدة أسفل من الصدق

<h3 class="sub">الخطوة 6 - التماسك الداخلي المسجل خطوة واحدة أسفل المعيار الخارجي</h3>

أسلوب الكتابة والتسمية والاتفاقيات المنزلية تعيش في عقد مُصدّر يستشهد به الوكلاء. رابطه هو التماسك الداخلي مع قرار مسجل وليس معيار مرقم خارجي؛ هذه خطوة واحدة أسفل الأسابق وتنحدر يثبت أن تسلسل هذه الصفحة ينطبق حتى عندما يكلف شيئاً.

**البيانات والحقائق:**

- معيار كتابة واحد مُصدّر حسب المراجعة يستشهد به القرارات والوكلاء كعقد.
- التسمية واتفاقيات الأسماء موحدة عبر النظام الكامل؛ المعيار المستشهد به لا يُعاد صياغة أبداً.
- التنسيق والفحص والمسح السري مؤتمت معلن في المعيار مع المصدر بجانبه.

<figure class="viz" role="group" aria-label="التماسك الداخلي المسجل: خطوة واحدة أسفل معيار خارجي مرسوم مقطع بقصد">
<div class="ev open"><span class="n">التماسك الداخلي</span><span class="t"><b>خطوة واحدة أسفل ومرسومة هكذا</b>رابط هذا اللوح هو قرار مسجل وليس معيار مرقم. الإطار المقطع هو نفس الذي تستخدمه الدار لكل شيء ليس إيصال واللوح الذي ينحدر يثبت أن التسلسل ينطبق حتى عندما يكلف شيئاً.</span></div>
</figure>

<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div>
<p><b>ما هو مكتوب وما تم رفضه</b></p><ul>
<li>العد: `ls docs/corpus/pptx/tech_specs/ADR | grep -c '^ADR-'` يعيد 61 على 2026-09-01. الرقم ينمو؛ الأمر لا.</li><li>بدائل التسمية تم رفضها بالتقارب عبر ثلاثة أسطح والرفض مسجل مع السبب.</li></ul><p><b>المراجع</b></p><p>العقد الداخلي (`code_standards` مُصدّر) يسمي مصادره الخاصة؛ هذه الصفحة لا تعيد صياغتها.</p><p>العقد الداخلي (<i>code_standards</i> مُصدّر) يسمي مصادره الخاصة؛ هذه الصفحة لا تعيد صياغتها.</p>
</div>
</details>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--hue-output)" name="check" size="36"></sz-icon></div>

## ما هو الإيصال وما هي لا تزال ممارسة

<h3 class="sub">أربع قدرات لها دليل؛ ثلاث معلنة بدون فعل في الزمن الحاضر</h3>

كل قدرة على هذه المنصة وضعت عبر ثلاث أسئلة: هل هناك قرار مكتوب يحكمها؟ هل هناك قياس؟ أو ببساطة تعمل بدون أن يكتب أحد السبب؟ ما يمر الاثنين الأولين نسميه <dfn data-hint="قدرة لها قرار مكتوب وقياس يمكن لأي شخص أن يكرره: ليس وعد بل سجل.">إيصال</dfn>. الباقي ممارسة وتبقى معلنة كاتجاه نفس الطريقة التي يعلن [الطريق](#roadmap) أدناه ما لا يوجد بعد. صفحة تقدم سبع قدرات حيث ثلاثة إيصالات أضعف من واحدة تقدم أربعة.

<figure class="viz ledger" role="group" aria-label="أربعة إيصالات مع دليلها وثلاث ممارسات معلنة كاتجاه">
<div class="col receipts">
<h4>إيصال</h4>
<div class="item"><b>سهل وسريع</b><span>4 قرارات وتصفية؛ منحنى الأربع نقاط؛ قسم جداول الـ 158 قابل للاشتقاق</span></div>
<div class="item"><b>تحكم الطابور</b><span>5 قرارات؛ اختبار حمل بدون فشل بدون OOM بدون فساد</span></div>
<div class="item"><b>المعمارية والنسب والاستئجار</b><span>مع حد الموفر المعلن كثقب مسمى</span></div>
<div class="item"><b>إصدار القرار</b><span>قرارات مؤرخة إبطال جراحي</span></div>
</div>
<div class="col practices">
<h4>ممارسة معلنة</h4>
<div class="item"><b>إصدار المخطط</b><span>اتجاه معلن</span></div>
<div class="item"><b>إصدار القطعة</b><span>اتجاه معلن</span></div>
<div class="item"><b>اتصال الوكيل بالوكيل</b><span>اتجاه معلن مع أنماط الفشل المقاسة</span></div>
</div>
</figure>
<p class="claim">الأربعة على اليسار لها مكان ليُتحقق منها والفصول التالية تقول أين. الثلاثة على اليمين هي حيث تذهب المنصة والفعل لا أحد منهم بالزمن الحاضر.</p>

### والسوق: الدراسات مع التحفظات المرفقة

<h3 class="sub">الخطوة 7 - المراسي حيث نلعب وليس كيف نبني</h3>

هذه الخطوة تدعم الموضع وليس الهندسة لهذا السبب تأتي أخيراً: إنها أضعف رابط على الصفحة وهي معلنة كما هي.

**البيانات والحقائق:**

- سبعة منازل: Gartner BCG McKinsey Deloitte Menlo Ventures MIT NANDA Stanford HAI.
- التحفظات مبنية في الإدراجات نفسها: preliminary تُسمى preliminary (MIT NANDA n=52)؛ republished تُسمى republished (Stanford/McKinsey)؛ شريحة إقليمية تُسمى إقليمية (Deloitte EMEA).
- نسبة 79% من BCG تثبت العقبة البيانات غير منظمة غير محكومة؛ لا تثبت الجسر.
- أبحاث استقصاء المديرين هي تصور وليس بيانات مالية مدققة.

<details class="refs"><summary>المراجع والقرارات المسجلة</summary>
<div>
<p><b>ما هو مكتوب وما تم رفضه</b></p><ul><li>المنصة قبل المنتج؛ اشتري قبل البناء.</li><li>على Shadow AI فقط الشكل المقتبس: الاختزال عبر مسار شركة محكوم. "SazAI تحل Shadow AI" تم رفضه لعدم وجود قياس لدعمه.</li></ul><p><b>المراجع</b></p><p>الإدراجات الكاملة بصيغة ABNT NBR 6023:2018 موجودة في كتل هذه الصفحة؛ من الـ 25 في الجرد الـ<i>Accessed on</i> المستشهد بها أونلاين لأن المعيار يتطلب والباقي لا كما يسمح المعيار.</p>
</div>
</details>

</div>

<div class="chap">

<div class="ico-col"><span class="ico"><svg viewBox="0 0 48 48" aria-hidden="true" style="width:36px;height:36px"><circle cx="24" cy="24" r="16" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/><path d="M31 17l-4 10-10 4 4-10z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></span></div>

<a id="roadmap"></a>

## الطريق: ما نبنيه

يحمل الطريق الاتجاهات الكبرى التي تشير إليها المنصة ولم تبنِها بعد. عندما قطعة تترك هنا تختفي من هذه القائمة وتظهر على الصفحة للقدرة المطابقة مع التاريخ. طريق يتحرك هو الدليل الوحيد على الوتيرة التي لا يمكن كتابتها بصفة. لا شيء أدناه شحن ولا بند هنا يجب أن يزن على قرارك اليوم. لا شيء على هذه الصفحة شُحن. لا بند هنا يجب أن يزن على قرارك وأحد على فريقنا يجب أن يقدمه بالزمن الحاضر. ما شُحن في [المسار العملي للمنتج](/), مع ما يضمنه والحدود من الموجود في [الثقة](trust).

## ذكاء إعادة وتفاوض الخطوط

مقارنة مسودة ضد مراجعات الأطراف تُظهر ما غيرته كل جهة وأين انتقلت المخاطر وما تكشفه النية في النص. محرك المقارنة الذي يكمن تحت هذا موجود ويعمل اليوم على نسخ المستند. ما يفتقد هو الطبقة القانونية: الفهم أن البند المعدل ليس فقط فقرة مختلفة.

**لماذا في الطريق وليس الطريق:** إنه الاتجاه بأعظم الإمكانات لإنشاء فئته الخاصة ولهذا السبب بالضبط الأسهل في البيع مبكراً. لا يوجد.

## وكلاء متخصصون على مستندك

وكلاء بنطاقهم الخاص مبنيون على المعرفة بالفعل في خزنتك: معلم يدرس من المادة الحقيقية لشركتك مرافق اعتماد لعملية جديدة مقيّم يفحص الكفاءة مع استشهاده بالمصدر الذي استخدمه.

**ما يقف بالفعل أسفله:** المجموعة والنسب والوكيل المحادثة والاستشهاد المصدري. **ما يفتقد:** التخصص على مستوى المهمة بحدوده وقواعده الخاصة لكل وكيل.

## ركيزة لأسطول من الوكلاء المحكومين

الخطوة التالية من السابقة والأبعد مدى. كل جزء من الشركة يغذي الخزنة بمستنداته الخاصة والوكلاء التي تستخدمها هذه الجزء تستشير تلك الخزنة في وقت التشغيل بملف أو بروتوكول عن أي سؤال عن الشركة. مصدر محكوم واحد تحت أسطول كامل بدلاً من أدوات ذكاء اصطناعي فضفاضة أحد لا يدقق.

**لماذا هذا طريق وليس وعد غامض:** آلية الاعتماد ملموسة وموجودة بالفعل جزئياً لأن الخزنة محمولة واستهلاكية من خارج. ما يفتقد هو حكومة أسطول وليس مبني.

## أشياء توجد وما نزال لا نستطيع أن نُظهرها لك

هذه فجوات دليل وليست ميزات ناقصة. القدرة موجودة؛ الدليل العام ليس وحتى يكون نفضل قائمة الفجوة بدلاً من الكلام حولها.

- **عرض الخزنة معروض.** الخزنة موجودة وهي نص عادي مع روابط؛ ما يفتقد هو عرض منشور يمكن لأي شخص أن يعيده دون الحديث معنا. حتى ذاك هو محادثة العناية الواجبة وليس بند صفحة.
- **كفاية السجل للتدقيق الرسمي.** السجل موجود ويخدم دليل التحكم. ما إذا أغلق متطلب تدقيق معين في قطاعك سؤال نجيب عليه حالة بحالة وليس مطالبة صفحة.
- **الحجم فوق ما قسناه.** أحجام في مئات الآلاف أو ملايين المستندات لم تُمارس. هذا مشروع تحجيم قبل أن يكون شراء.

## أشياء لا توجد بعد

هذه ميزات ناقصة وتقديمها في أي مكان أضعف سيخبرك أنها موجودة ونحن فقط لا نستطيع أن نُظهرها. هي ليست موجودة.

- **تحقق بصري أمين.** النظام يقيس البنية ويعد العناصر؛ لا ينظر للصفحة الأخيرة. فاحص بصري داخل المنتج لا يوجد.
- **حذف يصل نسخ النسخة الاحتياطية.** اليوم الحذف كامل في الأنظمة المباشرة ولا يصل نسخ احتياطية داخل نافذة الاحتفاظ. المسار التقني معرّف وليس مبني بعد. النطاق الدقيق في [الخصوصية والسيادة](privacy).
- **احذف المحتوى وعطّل الحساب بإجراء واحد عبر الواجهة.** اليوم حذف المستند موجود ويأخذ المشتقات معه؛ فعل هذا كله في وقت واحد لا يوجد بعد والإغلاق يُعالج حسب الطلب. الاسم مقصود: يمسح المحتوى ويعطّل الحساب لأن سجل من وصل النظام يبقى.

## كيف تُحافظ هذه الصفحة

بند يترك هنا عندما يوجد ويُقاس وليس عندما يكون قريب. عندما يترك يدخل صفحة القدرة مع ما يضمنه وأين يتوقف. إذا تابعت SazAI للبعض الوقت هذه الصفحة هي حيث تُظهر الوتيرة.

## حيث يمر الحد

<h3 class="sub">ثلاث حدود قارئ تقني يختبرها أولاً معلنة قبل الاختبار</h3>

**حد الموفر.** النسب يتابع كل قطعة نص حتى تترك لنموذج اللغة وتلتقط مجدداً عندما تعود. أي من جداولنا لا تسجل ما حدث على الجانب الآخر؛ من يسأل *أثبت ما فعلوا بنصي داخل النموذج* يتلقى شروط الاحتفاظ للموفر الذي عاقدوه وفي تثبيت من عندك الموفر اختيارك. الصفحة على [السيادة](privacy) تقول أين يتوقف.

**استبعاد ترخيص Copyleft.** لا مكتبة AGPL تدخل المحرك وهذا مكتوب في ملف التبعية كقرار مشروع موثق. إنها تعليق وليس حارس: لا شيء يكسر البناء إذا تجاهله شخص ما. القول بذلك أقوى من تظاهر أنها حارس لأن من يفتح الملف يراها في عشر ثواني.

**الوكلاء.** هذا النظام مبني من فريق وكلاء بنطاق معلن وسلسلة مراجعة والاتصال بينهم ممارسة وليس إيصال: لا قرار مكتوب يحكم القناة وأنماط فشلها قسناها هذا الأسبوع. جلس على الجانب الأيمن من الدفتر وهكذا حيث يذهب.

كل شيء تعلنه هذه الصفحة لها أمر أو وثيقة خلفها وما لا يملك معلن كاتجاه. إذا شيء هنا لا يمكن إعادته إنتاجه في تقييمك الخاص هذا عيب منا ونريد أن نعرف قبلك. المنتج الذي خرج من هذه المنصة أولاً هو ما [تراه عندما يدخل مستند](see).

### ما هذا الهرم لا يحمل

هرم صادق يقول ما يبقى خارجه.

**البيانات والحقائق:**

- خمسة مراجع عقيدة في صفر قطع هندسية: **PROV** W3C - **نُظم ذكاء مركبة** (BAIR 2024) ZAHARIA et al. - **GraphRAG** (SIGIR 2024) XU et al. - أدب **توجيه النموذج** - **CommonMark/GFM**. شكلوا التفكير؛ لا قرار مسجل خرج منهم.
- الاختبارات: ممارسة قوية حراس يرفضون عند البناء تقارير مؤرخة؛ المنهجية الخارجية معلنة: لا شيء. قيل بهذه الكلمات بدون جار مقنع.
- والاكتشاف الذي يحمل الخلاصة كله مقاس عبر القرارات بديل في الرأس: في احدى عشرة من احدى عشرة ما قرر كان مبدأ هندسة وليس مرجع خارجي. المعيار يدعم؛ الاختيار ملكنا وهو مكتوب.

</div>

*الأرقام المقاسة في 2026-09-01 على مجموعات تنمو: من يكرر القياس غداً يجب أن يتوقع أرقام أكبر وليس نفسها.*

<script type="module">
// IF THE #stars CANVAS EVER MORPHS INTO THIS GRAPH (Dev UX / Dev CO), REMOVE THIS FIGURE: two
// objects doing one job on one page is how a surface rots, quietly, because both look right.
// THE VAULT GRAPH, BORN AS STARS. Geometry in SVG, words in HTML. The layout is seeded, so the
// same picture renders every time; hubs are the real hubs of sazai.vault; satellites are counted
// per section, not drawn one to one. First reveal on intersection: points scatter like the
// starfield, then settle into the graph and the labels fade in. Hover lights a hub's edges;
// click (or Enter) opens the same scene full-screen; Escape closes. Reduced motion: no drift.
const fig=document.getElementById('vault-graph'); if(fig){
const svg=fig.querySelector('svg'),E=fig.querySelector('.edges'),N=fig.querySelector('.nodes'),L=fig.querySelector('.labels');
// no namespace literal: the house serves zero external references, and insertAdjacentHTML inside the <svg> inherits the SVG namespace on its own
const el=(t,a,parent)=>{parent.insertAdjacentHTML('beforeend','<'+t+' '+Object.entries(a).map(([k,v])=>k+'="'+v+'"').join(' ')+'/>');return parent.lastElementChild};
let seed=20260828; const rnd=()=>{seed=(seed*1664525+1013904223)%4294967296;return seed/4294967296};
const H=[ // real hubs of sazai.vault; n = satellites drawn, proportional, not exact
 {id:'index',l:'00-INDEX',x:400,y:250,c:'var(--dark)',r:9,n:6},
 {id:'adrs',l:'ADRs Hub',x:300,y:120,c:'var(--hue-reprocess)',r:8,n:59},
 {id:'agents',l:'Agents Hub',x:250,y:330,c:'var(--hue-analysis)',r:8,n:30},
 {id:'km',l:'Knowledge Map',x:560,y:130,c:'var(--hue-output)',r:7,n:18},
 {id:'product',l:'MOC-Product',x:600,y:300,c:'var(--hue-output)',r:7,n:26},
 {id:'strategy',l:'MOC-Strategy',x:520,y:410,c:'var(--hue-upload)',r:7,n:28},
 {id:'ops',l:'MOC-Operations',x:130,y:200,c:'var(--gray)',r:6,n:14},
 {id:'people',l:'MOC-People',x:150,y:440,c:'var(--hue-analysis)',r:6,n:10},
 {id:'pitch',l:'MOC-Pitch',x:690,y:440,c:'var(--hue-upload)',r:6,n:12},
 {id:'personas',l:'Personas',x:410,y:470,c:'var(--hue-reprocess)',r:6,n:7},
 {id:'sessions',l:'Sessions',x:700,y:200,c:'var(--gray)',r:5,n:9},
];
const X=[['index','adrs'],['index','agents'],['index','km'],['index','product'],['index','strategy'],['index','ops'],['index','people'],['index','pitch'],['index','personas'],['index','sessions'],['adrs','km'],['adrs','agents'],['agents','ops'],['agents','people'],['product','km'],['product','strategy'],['strategy','pitch'],['strategy','personas'],['pitch','personas'],['sessions','agents'],['sessions','adrs']];
const nodes=[],edges=[];
for(const h of H){const hub={...h,hub:true,sx:h.x,sy:h.y,ph:rnd()*6.28};nodes.push(hub);
  for(let i=0;i<h.n;i++){const a=rnd()*6.28,d=34+rnd()*(h.n>20?110:70);const s={id:h.id+i,x:h.x+Math.cos(a)*d,y:h.y+Math.sin(a)*d,c:h.c,r:1.6+rnd()*1.6,hub:false,of:hub,ph:rnd()*6.28};s.sx=s.x;s.sy=s.y;nodes.push(s);edges.push([hub,s]);
    if(rnd()<.12){const o=nodes[Math.floor(rnd()*nodes.length)];if(o&&o!==s)edges.push([s,o]);}}}
const byId=Object.fromEntries(nodes.filter(n=>n.hub).map(n=>[n.id,n]));
for(const [a,b] of X)edges.push([byId[a],byId[b]]);
for(const n of nodes){n.el=el('circle',{r:n.r,fill:n.c,opacity:n.hub?1:.75},N);n.el.style.color=n.c;
  n.rx=rnd()*800;n.ry=rnd()*520;n.t=0; // scatter origin, for the reveal
  if(n.hub){const sp=document.createElement('span');sp.textContent=n.l;sp.dataset.hub=n.id;L.appendChild(sp);n.lab=sp;
    n.el.classList.add('hub');n.el.dataset.hub=n.id;}}
for(const e of edges){e.el=el('line',{stroke:'var(--lightgray)','stroke-width':e[0].hub&&e[1].hub?1:.6,opacity:.55},E);}
const reduce=matchMedia('(prefers-reduced-motion: reduce)').matches;
let t0=null,revealed=false,lit=null;
function place(){const now=performance.now();for(const n of nodes){
  const k=reduce?1:Math.min(1,(now-(t0||now))/1600),ease=1-Math.pow(1-k,3);
  const dx=reduce?0:Math.sin(now/1900+n.ph)*(n.hub?2.2:3.6),dy=reduce?0:Math.cos(now/2300+n.ph)*(n.hub?2.2:3.6);
  n.x=n.rx+(n.sx-n.rx)*ease+dx;n.y=n.ry+(n.sy-n.ry)*ease+dy;
  n.el.setAttribute('cx',n.x);n.el.setAttribute('cy',n.y);
  if(n.hub){const pulse=reduce?1:1+Math.sin(now/1400+n.ph)*.08;n.el.setAttribute('r',n.r*pulse*ease+ .5);
    n.lab.style.left=(n.x/800*100)+'%';n.lab.style.top=(n.y/520*100)+'%';}else n.el.setAttribute('r',n.r*(.4+.6*ease));}
  for(const e of edges){e.el.setAttribute('x1',e[0].x);e.el.setAttribute('y1',e[0].y);e.el.setAttribute('x2',e[1].x);e.el.setAttribute('y2',e[1].y);}
  if(!revealed&&(reduce||now-t0>1500)){revealed=true;fig.classList.add('ready');}
  if(!reduce||!revealed)requestAnimationFrame(place);}
function light(id){lit=id;fig.classList.toggle('lit',!!id);
  for(const e of edges){const on=id&&(e[0].id===id||e[1].id===id||(e[0].of&&e[0].of.id===id&&e[1].hub===false&&e[1].of===e[0].of));
    e.el.setAttribute('opacity',id?(on?1:.12):.55);e.el.setAttribute('stroke',on?byId[id].c:'var(--lightgray)');}
  for(const n of nodes){const on=!id||n.id===id||(n.of&&n.of.id===id);n.el.setAttribute('opacity',on?(n.hub?1:.85):.18);}}
fig.addEventListener('mouseover',e=>{const h=e.target.closest('[data-hub]');if(h)light(h.dataset.hub)});
fig.addEventListener('mouseout',e=>{if(e.target.closest('[data-hub]'))light(null)});
// THE EXPANDED SCENE IS A MODAL (ADR-047 A10.4 #15): the figure moves into an sz-modal beside it, inside the same
// chapter so the .chap .graph.full rules still match, and comes back on close. The dialog brings the top layer, the
// blurred page behind (A10.2) and Esc; moved BEFORE open, the figure is inside the modal, so no hole is cut for it.
const ph=document.createElement('div');let modal=null;
const restore=()=>{if(!fig.classList.contains('full'))return;fig.classList.remove('full');ph.replaceWith(fig);document.body.style.overflow='';fig.focus({preventScroll:true})};
const expand=()=>{if(!modal){modal=document.createElement('sz-modal');modal.setAttribute('size','full');modal.setAttribute('bare','');modal.setAttribute('label',fig.getAttribute('aria-label')||'');modal.addEventListener('sz-close',restore)}
  ph.style.height=fig.offsetHeight+'px';fig.replaceWith(ph);ph.after(modal);modal.appendChild(fig);fig.classList.add('full');document.body.style.overflow='hidden';modal.open();fig.focus({preventScroll:true})};
const toggle=()=>{if(fig.classList.contains('full')){modal.close();return}customElements.whenDefined('sz-modal').then(expand)};
fig.addEventListener('click',e=>{if(!e.target.closest('[data-hub]')||fig.classList.contains('full'))toggle()});
fig.addEventListener('keydown',e=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle()}});
// START ON SIGHT. IntersectionObserver is the primary trigger; a geometry check on load and on the
// first scroll is the fallback, so a viewport that never reports intersection (measured: an
// automated background tab delivers neither IO nor rAF) still gets the reveal on the next paint.
let started=false;const start=()=>{if(started)return;started=true;t0=performance.now();requestAnimationFrame(place)};
const inView=()=>{const r=fig.getBoundingClientRect();return r.top<innerHeight*.8&&r.bottom>innerHeight*.2};
const io=new IntersectionObserver((en)=>{if(en.some(x=>x.isIntersecting)){start();io.disconnect()}},{threshold:.35});io.observe(fig);
if(inView())start();else addEventListener('scroll',()=>{if(inView())start()},{passive:true});
}
</script>

<style>

/* CHAPTER NUMERALS, EDITORIAL. The number is the chapter's mark, not a KPI: it enters large,
   in the domain hue, beside an uppercase kicker that says what it counts. The house h2 follows
   untouched. These rules move to marketing.css (and the connectome port) when the page lands;
   they live in the body for the refine loop. */
/* ICON COLUMN (Ramés, 2026-08-28): the chapter icon sits left of the title AND its subtitle; the
   subtitle takes the old kicker voice: small, uppercase, quiet. */
/* THE ICON IS A SIBLING OF THE H2, NEVER INSIDE IT, AND THAT IS AN ANCHOR DECISION RATHER THAN
   A STYLE ONE. Quartz slugs a heading from its TEXT CONTENT, and any inline element in the
   heading contributes an empty token. Measured on a probe page, all six forms: `<sz-icon>`
   before the words gives `id="-forma-a-inline-antes"`, a `<span>` behaves identically, the icon
   AFTER the words gives a TRAILING hyphen, and the `{#explicit-id}` syntax is NOT supported
   here: it is slugged as literal text. Only a heading with no markup at all comes out clean.
   AN ANCHOR IS A URL AND A WRONG URL IS PERMANENT, so the icon leaves the heading. The visual
   is unchanged: `.ch` is zero-height and the icon is absolutely placed into the padding column
   the h2 already reserves. */
/* ============================================================================
   THE CHAPTER IS A PANEL, AND THAT ALSO RETIRES THREE MAGIC NUMBERS.

   THE DIAGNOSIS WAS AN INVERTED HIERARCHY, not a missing divider. Rendered, the page read
   heading / floating prose / CONTAINED FIGURE / floating prose: the figure carried a border,
   a fill and a blur while the chapter that owns it carried nothing, so the strongest container
   on the page was a child of the section rather than the section. Prose did not read loose so
   much as OUT-RANKED.

   Now each chapter is a real element, which fixes the ranking AND the alignment at once:

   1. THE CHAPTER IS THE SURFACE. Soft ground, hairline border, radius, generous padding.
   2. THE FIGURE GIVES BACK ITS FILL and keeps only its outline, so it reads as an object
      INSIDE the panel instead of a competing surface. The blur goes with the fill: a backdrop
      filter over a transparent box is cost with no picture.
   3. THE ICON SITS IN ITS OWN GRID COLUMN, vertically centred on the title block by the
      layout rather than by an offset. Everything before this was a magic number chasing a
      MARGIN COLLAPSE: `.ch` was a zero-height div and the h2's top margin collapsed through
      it, so the icon's 18px raise was EMERGENT, and every spacing change moved it. Measured,
      three times: padding opened a 2.4rem gap; a margin dropped it 19px; a margin on the
      previous paragraph did the same. The wrapper removes the collapse from the problem.
   ============================================================================ */
article .chap{position:relative;display:grid;grid-template-columns:3.4rem 1fr;
  gap:0 0;align-items:start;
  border:1px solid color-mix(in srgb,var(--lightgray) 85%,transparent);border-radius:14px;
  background:transparent;
  padding:1.7rem 1.9rem 1.5rem;margin:1.6rem 0}
/* THE GLASS IS A VEIL, NOT A FILTER ON THE PANEL, AND THAT IS A MEASURED CORRECTION.
   `blur(4px)` is the house's own value, read off the served page from `div.search-container`
   and `div.global-graph-outer`, the only two elements that already carry a backdrop filter.
   PUT IT ON `.chap` DIRECTLY AND THE COMPARE MODAL BREAKS: `backdrop-filter` makes the element
   a containing block for `position:fixed` DESCENDANTS, and the modal lives inside this panel.
   Measured before and after: the scrim went from the viewport (1440x757) to the panel's own box
   (788x569). So the veil goes on a pseudo-element at `z-index:-1`, which blurs what is behind
   the panel while leaving `.chap` an ordinary containing block. IT IS THE HOUSE'S OWN ANSWER
   TOO: `sz-search-field` solves the identical problem with a `.veil` behind its pill. */
article .chap::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;
  /* `--surface` AND NOT `--light`, MEASURED RATHER THAN CHOSEN BY NAME. In the dark theme
     `--light` resolves to #09090b, which is EXACTLY the body background: a 40% mix of the
     background over the background is the background, and the panel measured invisible on the
     rendered pixels (inside 9,9,10 against outside 9,9,11: a delta of zero). Blur cannot
     rescue it either, because a backdrop filter over a flat surface has nothing to blur: THE
     FILL IS WHAT MAKES A PANEL EXIST and the blur is only its texture. `--surface` is #18181b,
     the house's own raised colour, the one `sz-search-field` puts behind its pill. */
  background:color-mix(in srgb,var(--surface) 72%,transparent);
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);pointer-events:none}
article .chap .ico-col{grid-column:1;grid-row:1 / span 2;align-self:center;
  display:flex;align-items:center;justify-content:flex-start;padding-top:.15rem}
article .chap .ico-col sz-icon,article .chap .ico-col .ico{display:inline-flex}
article .chap .ico-col .ico svg{width:36px;height:36px}
article .chap > h2{grid-column:2;grid-row:1;padding-left:0;margin:0}
article .chap > h3.sub{grid-column:2;grid-row:2;padding-left:0;margin:2px 0 0;line-height:1.15}
/* THE ANCHOR ICON WAS INFLATING THE LINE BOX, AND MY OWN CHANGE PUT IT THERE. Promoting the
   subtitle from `<p>` to `<h3>` for the SEO reading also gave it the `a[role=anchor]` Quartz
   adds to every heading: 15px tall, inline, on the baseline. Measured, the h3 box went to 26px
   for a 16px line, and that surplus is what read as too much air between title and subtitle.
   Capping the anchor to the text's own em takes the inflation out without removing the anchor,
   so the heading keeps the link it earned by being a heading. */
article .chap h2 a[role=anchor],article .chap h3.sub a[role=anchor]{
  display:inline-flex;align-items:center;height:1em;line-height:1;vertical-align:middle}
article .chap > *:not(.ico-col):not(h2):not(h3.sub){grid-column:1 / -1}
/* THE SPACE BELONGS TO THE FIRST PROSE PARAGRAPH, AND `:first-of-type` GAVE IT TO THE SUBTITLE.
   The first `<p>` inside a panel is `p.sub`, so this rule matched the subtitle instead of the
   prose: same specificity as the `.sub` rule and later in the block, so it won, and the
   subtitle inherited a 16px top margin nobody wrote for it. @rames spotted it on the rendered
   page before any probe did. Targeting the paragraph that FOLLOWS the subtitle says what was
   meant and cannot drift onto a sibling again. */
article .chap > h3.sub + p{margin-top:1rem}
article .chap > *:last-child{margin-bottom:0}
/* the figure is an object inside the panel, never a second surface */
article .chap .viz{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
  border-color:color-mix(in srgb,var(--lightgray) 65%,transparent)}
/* ============================================================================
   HINT TEXT ON A TERM, AND THE RULE IT KEEPS: THE HOVER IS NEVER THE ONLY COPY.

   @copy-chief's rule applied literally: the explanation lives in the SENTENCE, where all three
   readers reach it (the person, the buyer's research agent, our agent reading the .md). The
   attribute is the SHORT FORM of that same sentence, so the hover adds convenience and never
   carries meaning the prose lacks. His measured reason is this page's own defect: the
   aria-label versus <text> divergence came from two copies of the same words in two encodings,
   and only one of them ever got translated.

   NO SCRIPT. Hover, keyboard focus and tap all resolve through :hover and :focus-visible, so
   there is nothing to upgrade, nothing that can trap focus, and it works before any module
   loads. `tabindex=0` makes the term reachable by keyboard and gives a tap somewhere to land.
   The term is marked as a TERM and not as a link: dotted underline, body colour, no pointer,
   because the page carries four real links and a fifth affordance that looked the same
   would lie.
   ============================================================================ */
article dfn[data-hint]{font-style:italic;position:relative;border-bottom:1px dotted var(--gray);
  cursor:help;outline:none}
article dfn[data-hint]::after{content:attr(data-hint);position:absolute;left:0;top:calc(100% + .5rem);
  z-index:30;width:min(30rem,72vw);padding:.7rem .85rem;border:1px solid var(--lightgray);
  border-radius:10px;background:var(--light);color:var(--darkgray);
  font-style:normal;font-size:var(--fs-xs,.76rem);line-height:1.45;letter-spacing:0;
  box-shadow:0 8px 24px rgb(0 0 0 / .28);opacity:0;visibility:hidden;transition:opacity .12s ease}
article dfn[data-hint]:hover::after,article dfn[data-hint]:focus-visible::after{opacity:1;visibility:visible}
article dfn[data-hint]:focus-visible{border-bottom-color:var(--secondary)}
/* THE SUBTITLE IS AN h3 AND ITS LOOK IS UNCHANGED. @sophia's SEO reading: the H2s lost their
   keywords when they became short labels, and the sentences that carry them became a styled
   paragraph with no heading weight. Promoting the element gives the weight back without moving
   a pixel: every typographic value below is the one the `<p>` already had. */
article h3.sub{font-size:var(--fs-xs,.74rem);font-weight:var(--fw-normal,400);letter-spacing:.08em;text-transform:uppercase;color:var(--gray);line-height:1.15}
/* COMPARE, in the vault's vocabulary: original, the declared relation, the edition; the button opens the component. */
article .duo .act{grid-column:1/-1;text-align:center;margin-top:.4rem}
article .duo sz-compare{display:block;height:0;overflow:hidden}
/* THE SAME BLUR THE SEARCH OVERLAY USES (Quartz .search-container: backdrop-filter blur(4px)),
   applied to the content boxes over a translucent ground so the starfield lifts them. Moves to
   marketing.css .viz when the page lands. */
article .duo.four{grid-template-columns:repeat(4,1fr)}
article .duo.strip{grid-template-columns:auto auto 1fr}
article .duo .out4{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
article .duo .out4 span{display:block}
article .duo .out4 svg{width:40px;height:40px;margin:0 auto .3rem}
article .duo.four .side svg{width:44px;color:var(--hue-analysis)}
article .duo.xray .side svg{color:var(--hue-upload)}
@media (max-width:640px){article .duo.four{grid-template-columns:1fr 1fr}}
/* THE MODAL MUST BE ABOVE THE PAGE CHROME, AND THE HOUSE HAS NO LAYER SCALE TO SAY SO. Measured
   on the served page: the compare scrim is z-index 50 (sz-compare), the consent notice 60
   (sz-consent), the search field host 10000 (chrome CSS). A dialog the reader opened that
   renders UNDER the search bar is a defect; this lifts it through the part the component
   exposes for exactly that. 10001 is a magic number chasing another one, declared as such:
   the durable fix is NOT a z-scale: sz-modal already solved this in-house by building on the
   native <dialog> and its top layer, which no z-index can sit above. sz-compare following it
   onto <dialog> retires this rule; that is a component change, not a page style. */
article sz-compare::part(modal){z-index:10001}
@media (max-width:640px){article .duo.strip{grid-template-columns:1fr}article .duo .out4{grid-template-columns:1fr 1fr}}
/* THE CLOSE MIRRORS THE OPEN: one vault in the middle, two readers on the sides. Geometry only;
   every word is HTML. */
article .duo{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;text-align:center;font-size:var(--fs-xs,.74rem);color:var(--gray)}
article .duo svg{display:block;height:auto;margin:0 auto .3rem}
article .duo .side svg{width:56px}
article .duo .mid svg{width:96px}
article .duo b{display:block;color:var(--dark);font-size:var(--fs-sm,.86rem)}
@media (max-width:640px){article .duo{grid-template-columns:1fr}}

/* ============================================================================
   TWO OBJECTS THIS PAGE NEEDED AND `see` DID NOT.

   1. THE CURVE, ON A LOG SCALE, BECAUSE A LINEAR ONE HIDES THE ARGUMENT. The claim is one
      order of magnitude per format: 3600h, 48h, 4h, one session. Drawn linearly the last
      three bars are invisible and the fourth point, THE ONE CARRYING THE STRONGEST PROOF,
      reads as merely small. Log widths make the collapse legible, and the caption says the
      scale out loud so nobody reads it as linear.

      AND THE FOURTH ROW BREAKS THE VISUAL FAMILY ON PURPOSE. The three OOXML formats share a
      hue and a solid bar; PDF gets a different hue and an outlined bar. **THE BREAK IS THE
      ARGUMENT**: the engine did not get faster at PowerPoint, it became format-agnostic, and
      a fourth bar in the same family would have said the opposite.

   2. RECEIPT AND PRACTICE MUST NOT LOOK ALIKE, and that is a composition rule rather than a
      label. A receipt is a thing already true and carries its evidence on the same line, so
      it is solid, filled, and reads as closed. A practice is declared direction with no
      present-tense verb, so it is outlined, muted, and reads as open. A reader who never
      gets to the words should still be able to see which column is which.

   3. THE BOUNDS ARE IN THE FLOW, NOT IN SMALL PRINT. `see` had none of these. A bound that
      has to be read as a footnote is a bound that gets skipped, and both of this page's
      bounds are the kind a competent reader tests FIRST. So they sit inside the chapter, at
      the same measure as the prose, in a treatment that is quieter than the claim but not
      smaller than it.
   ============================================================================ */
article .curve{display:flex;flex-direction:column;gap:.55rem}
article .curve .row{display:grid;grid-template-columns:4.2rem 1fr 7.5rem;align-items:center;gap:.8rem}
article .curve .row b{font-size:var(--fs-sm,.86rem);color:var(--text)}
article .curve .track{display:block;height:10px;border-radius:5px;background:color-mix(in srgb,var(--lightgray) 45%,transparent)}
article .curve .bar{display:block;height:100%;border-radius:5px}
article .curve .ooxml .bar{background:var(--hue-analysis)}
article .curve .other .bar{background:transparent;border:1.5px solid var(--hue-output)}
article .curve .other b{color:var(--hue-output)}
article .curve em{font-style:normal;font-size:var(--fs-xs,.76rem);color:var(--gray);text-align:right}
article .curve .other em{color:var(--hue-output)}
article .ledger{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
article .ledger h4{margin:0 0 .6rem;font-size:var(--fs-xs,.74rem);letter-spacing:.08em;text-transform:uppercase;font-weight:var(--fw-normal,400);color:var(--gray)}
article .ledger .item{margin-bottom:.7rem}
article .ledger .item b{display:block;font-size:var(--fs-sm,.88rem)}
article .ledger .item span{display:block;font-size:var(--fs-xs,.76rem);color:var(--gray);line-height:1.4;margin-top:.1rem}
article .ledger .receipts .item{border-left:2px solid var(--hue-output);padding-left:.7rem}
article .ledger .practices .item{border-left:2px dashed color-mix(in srgb,var(--gray) 55%,transparent);padding-left:.7rem}
article .ledger .practices .item b{color:var(--gray);font-weight:var(--fw-normal,400)}
article p.claim{margin:1rem 0 0;color:var(--text);font-size:var(--fs-sm,.95rem);line-height:1.55}
article .bound{margin:1.1rem 0 0;padding:.85rem 1rem;border-left:2px solid color-mix(in srgb,var(--gray) 40%,transparent);
  background:color-mix(in srgb,var(--surface) 45%,transparent);border-radius:0 8px 8px 0}
article .bound p{margin:0 0 .5rem;font-size:var(--fs-xs,.82rem);line-height:1.5;color:var(--gray)}
article .bound p:last-child{margin-bottom:0}
@media (max-width:640px){article .ledger{grid-template-columns:1fr}article .curve .row{grid-template-columns:3.4rem 1fr}article .curve em{grid-column:1/-1;text-align:left}}

/* THE VAULT GRAPH: born as stars, settles into the map. Geometry in SVG, words in HTML spans over
   it; `.stage` binds the two so labels track the drawing in both modes. Placed LAST so it wins
   over the panel's `.chap .viz` reset, and scoped to `.chap` so its specificity matches hers. */
article .chap .graph{position:relative;padding:.6rem;cursor:zoom-in;outline:none}
article .chap .graph .stage{position:relative;width:100%;aspect-ratio:800/520}
article .chap .graph .stage svg{display:block;width:100%;height:100%}
article .chap .graph .labels{position:absolute;inset:0;pointer-events:none}
article .chap .graph .labels span{position:absolute;transform:translate(-50%,10px);font-size:var(--fs-xs,.72rem);color:var(--dark);white-space:nowrap;opacity:0;transition:opacity .7s ease;text-shadow:0 0 6px var(--light),0 0 2px var(--light);pointer-events:auto}
article .chap .graph.ready .labels span{opacity:1}
article .chap .graph .nodes .hub{cursor:pointer;transition:opacity .25s}
article .chap .graph .edges line{transition:opacity .25s,stroke .25s}
article .chap .graph figcaption{margin-top:.4rem}
article .chap .graph:focus-visible{box-shadow:0 0 0 2px var(--secondary)}
article .chap .graph.full{flex:1;min-width:0;margin:0;border:0;border-radius:0;padding:3vh 4vw;background:transparent;cursor:zoom-out;display:flex;flex-direction:column;align-items:center;justify-content:center}
article .chap .graph.full .stage{width:min(92vw,calc(84vh * 800 / 520))}
article .chap .graph.full .labels span{font-size:1rem}
article .chap .graph.full figcaption{text-align:center;margin-top:1rem;max-width:70ch}
</style>
