دليل: الحارسُ يقيسُ الاتّجاهين، والعدمُ ليس قياسًا - #10
Merged
Conversation
الموجةُ الثالثة سدّت ثقبًا بنيويًّا: أحدَ عشرَ فصلًا كانت خارجَ مظلّة الحارس
لا إهمالًا، بل لأنّ الأداةَ لم يكن فيها نمطُ بصمٍ يطابق دعواها. ثمّ كشفت
ثلاثُ مراجعاتٍ مستقلّةٍ أنّ الحارسَ نفسَه كان يقيس اتّجاهًا واحدًا.
نمطا بصمٍ جديدان
- {path, names: true} — يبصم أسماءَ وأنواعَ مدخلات المجلّد مرتَّبةً، لا محتواها.
وهو الوحيدُ الذي يطابق دعوى «هذا المجلّد يحوي كذا». قِيس على ٢٥٠ إيداعًا:
بصمةُ شجرةِ tools/ انقلبت (d3fffd2e ⇐ d0f55ac4) والأسماءُ ثابتة — أي إنذارٌ
أسبوعيٌّ دائمٌ بلا واقعة، وهو الضجيجُ الذي يُسكِت الكاشفَ كلَّه. وفي المدّة
نفسِها التقط النمطُ في stdlib/ ما يجب: اختفاءَ async·audio3d·crypto·embedded
وظهورَ جيسون.ص.
- self:<path> — يبصم من هذا المستودع بلا شبكة، فيصير بوّابةَ PR لا كاشفًا
أسبوعيًّا. وسببُه واقعة: أُصلح افتراضُ المرجع في الأداة وبقي الفصلُ يصف
المنقوضَ في اليوم نفسِه، بلا كاشف.
المظلّة: من أربعة أقسامٍ إلى سبعة (GUARDED_SECTIONS)، فدخلت architecture/
وgetting-started/ وcontributing/ — وهي حاملةُ دعاوى الأوامرِ التي يُشغّلها
القارئ. التغطية الآن ٢٩ فصلًا محروسًا، صفرُ فصلٍ يفلت.
الحارسُ يقيس الاتّجاهين
- الإسقاطُ كتمٌ صامتٌ أيضًا: إزالةُ مصدرٍ من البيان ثمّ --update كانت تقتل
الكاشفَ لفصولٍ كاملةٍ والبوّابتان خضراوان. تُقرأ فصولُ المفتاح المُسقَط من
بيان الأساس عبر --base-manifest؛ وإن لم يُمرَّر، احمرّ ولم يمرّ.
- العدمُ ليس قياسًا: مجلّدٌ فارغ · نطاقٌ خارجَ الملفّ · ردٌّ فارغٌ من gh ·
تجاوزُ سقفِ ١٠٠٠ مدخلٍ في contents API — كلُّها كانت تُنتج بصمةً واحدةً
مشتركة (e3b0c442…) تُثبَّت فتخضرّ إلى الأبد. صارت None يحمرّ.
- غيابُ القفل كان يُطفئ البوّابةَ صامتةً — صار خطأً صريحًا في --validate
و--guard-lock.
- رمزُ الخروج ٢ في sync-check.yml كان يجعل شرطَي drift=='1' و=='0' كاذبَين
معًا: لا قضيّة، ولا خطوةَ «لا انجراف»، والوظيفةُ خضراء وهي لم تقس شيئًا.
- git show || : كان يبتلع «تعذّر بلوغُ الأساس» مع «لا قفلَ في الأساس» — فُصلا.
- «✅ سليم … ١ تحذيرًا» مع RC=1 صار «❌ البيانُ ناقص»: مَن يمسح سجلَّ CI بعينه
يقرأ آخرَ سطرٍ حكمًا.
- self:+names كان يمسح القرص (٧٠ مدخلًا) والوعدُ «ما يخزّنه git» (٤٣) —
صار يُشتقُّ من git ls-tree.
- covers_version كان يُنسخ بيدٍ فيصدُق بالمصادفة — صار يُشتقُّ من git ls-remote.
الفصول، مقيسةً على origin/dev@1138f5e1
- setup: CMake ٣٫١٥ لا ٣٫٢٠ · x.py بوّابةً · sadc اسمٌ متقاعد · sad.exe موزِّعٌ
لا مفسّر · python tests/runner.py (لا runner.py في الجذر). و«LLVM اختياريّ»
كانت تَعِدُ بطريقٍ لا يُكمله أيُّ أمرٍ في الصفحة: هدفُ sad-build يُعرَّف داخل
if(ENABLE_LLVM_BACKEND AND LLVM_FOUND)، والبديلُ الحقيقيّ sad-build-native.
- repo-map: القوائمُ العربيّةُ أُخرجت من كتلة الكود إلى جدول — theme/rtl.css
يفرض direction: ltr على كلّ pre، فكانت تُعرَض معكوسةَ الترتيب وبنجومها.
وأوامرُ x.py سبعةٌ لا خمسة.
- first-contribution: الاختبارُ تحت tests/behavior/ لا tests/ — وكان القارئ
يمرّ بالدعوى المنقوضة قبل الفصل الذي يصحّحها؛ فأُعيد ترتيبُ المسار:
إعداد ⇐ خريطة ⇐ أوّل مساهمة.
- overview · interconnected · glossary · dod: التكرارُ الحرفيُّ أُزيل (التعدادُ
في الخريطة، والدورُ ورابطٌ في النظرة العامّة)، والأعدادُ صارت تقول إنّها
حجمُ مجلّدٍ لا حجمُ أثر.
ثلاثُ دعاوى كانت مقيسةً بلا حارس صارت مبصومة:
apps/CMakeLists.txt#L292-310 · tests/config.yaml#L15-23 · #L27 في فصلين.
البراهين (كسرٌ متعمّدٌ ثمّ استعادة، لا قراءةُ كود)
- إسقاطُ .#names ⇒ ❌ يسمّي overview·repo-map·setup — RC=1
- _chunk_digest للحالات الأربع ⇒ None
- غيابُ القفل ⇒ RC=1 في --validate و--guard-lock
- حذفُ تسجيلِ فصلٍ ⇒ ❌ البيانُ ناقص
- تعديلُ check_sync.py بلا تثبيت ⇒ ❌ يسمّي freshness.md
الحالة: ٩٢ بصمة · ٣٠ فصلًا مسجَّلًا · drift: false · mdbook نظيف.
راجعه ثلاثةُ وكلاء: تجربةُ القارئ · محاكمةُ كلِّ دعوًى على origin/dev ·
جولةٌ ثالثةٌ على الأداة.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
الموجةُ الثالثة سدّت ثقبًا بنيويًّا: أحدَ عشرَ فصلًا كانت خارجَ مظلّة الحارس
لا إهمالًا، بل لأنّ الأداةَ لم يكن فيها نمطُ بصمٍ يطابق دعواها. ثمّ كشفت
ثلاثُ مراجعاتٍ مستقلّةٍ أنّ الحارسَ نفسَه كان يقيس اتّجاهًا واحدًا.
نمطا بصمٍ جديدان
وهو الوحيدُ الذي يطابق دعوى «هذا المجلّد يحوي كذا». قِيس على ٢٥٠ إيداعًا:
بصمةُ شجرةِ tools/ انقلبت (d3fffd2e ⇐ d0f55ac4) والأسماءُ ثابتة — أي إنذارٌ
أسبوعيٌّ دائمٌ بلا واقعة، وهو الضجيجُ الذي يُسكِت الكاشفَ كلَّه. وفي المدّة
نفسِها التقط النمطُ في stdlib/ ما يجب: اختفاءَ async·audio3d·crypto·embedded
وظهورَ جيسون.ص.
أسبوعيًّا. وسببُه واقعة: أُصلح افتراضُ المرجع في الأداة وبقي الفصلُ يصف
المنقوضَ في اليوم نفسِه، بلا كاشف.
المظلّة: من أربعة أقسامٍ إلى سبعة (GUARDED_SECTIONS)، فدخلت architecture/
وgetting-started/ وcontributing/ — وهي حاملةُ دعاوى الأوامرِ التي يُشغّلها
القارئ. التغطية الآن ٢٩ فصلًا محروسًا، صفرُ فصلٍ يفلت.
الحارسُ يقيس الاتّجاهين
الكاشفَ لفصولٍ كاملةٍ والبوّابتان خضراوان. تُقرأ فصولُ المفتاح المُسقَط من
بيان الأساس عبر --base-manifest؛ وإن لم يُمرَّر، احمرّ ولم يمرّ.
تجاوزُ سقفِ ١٠٠٠ مدخلٍ في contents API — كلُّها كانت تُنتج بصمةً واحدةً
مشتركة (e3b0c442…) تُثبَّت فتخضرّ إلى الأبد. صارت None يحمرّ.
و--guard-lock.
معًا: لا قضيّة، ولا خطوةَ «لا انجراف»، والوظيفةُ خضراء وهي لم تقس شيئًا.
يقرأ آخرَ سطرٍ حكمًا.
صار يُشتقُّ من git ls-tree.
الفصول، مقيسةً على origin/dev@1138f5e1
لا مفسّر · python tests/runner.py (لا runner.py في الجذر). و«LLVM اختياريّ»
كانت تَعِدُ بطريقٍ لا يُكمله أيُّ أمرٍ في الصفحة: هدفُ sad-build يُعرَّف داخل
if(ENABLE_LLVM_BACKEND AND LLVM_FOUND)، والبديلُ الحقيقيّ sad-build-native.
يفرض direction: ltr على كلّ pre، فكانت تُعرَض معكوسةَ الترتيب وبنجومها.
وأوامرُ x.py سبعةٌ لا خمسة.
يمرّ بالدعوى المنقوضة قبل الفصل الذي يصحّحها؛ فأُعيد ترتيبُ المسار:
إعداد ⇐ خريطة ⇐ أوّل مساهمة.
في الخريطة، والدورُ ورابطٌ في النظرة العامّة)، والأعدادُ صارت تقول إنّها
حجمُ مجلّدٍ لا حجمُ أثر.
ثلاثُ دعاوى كانت مقيسةً بلا حارس صارت مبصومة:
apps/CMakeLists.txt#L292-310 · tests/config.yaml#L15-23 · #L27 في فصلين.
البراهين (كسرٌ متعمّدٌ ثمّ استعادة، لا قراءةُ كود)
الحالة: ٩٢ بصمة · ٣٠ فصلًا مسجَّلًا · drift: false · mdbook نظيف.
راجعه ثلاثةُ وكلاء: تجربةُ القارئ · محاكمةُ كلِّ دعوًى على origin/dev ·
جولةٌ ثالثةٌ على الأداة.
🤖 Generated with Claude Code