Skip to content

دليل: حارسٌ يقيسُ كلَّ فصلٍ، وفحصٌ يقيسُ مرجعَ القفلِ لا وسمًا سواه - #8

Merged
SalehKadah merged 1 commit into
mainfrom
fix/sync-guard-and-ref
Sep 1, 2026
Merged

دليل: حارسٌ يقيسُ كلَّ فصلٍ، وفحصٌ يقيسُ مرجعَ القفلِ لا وسمًا سواه#8
SalehKadah merged 1 commit into
mainfrom
fix/sync-guard-and-ref

Conversation

@SalehKadah

Copy link
Copy Markdown
Contributor

لماذا

الموجةُ الأولى (#7) أصلحت أحدَ عشرَ فصلًا متعفّنًا. هذا الطلبُ يسأل السؤالَ التالي:
لماذا لم يكشفها الكاشف؟ الجوابُ عطبان في الأداة نفسِها.

١ · الحارسُ كان يُبرّئُ فصلًا لم يقرأه أحد

cmd_guard_lock يمنع «الكتمَ الصامت»: لا تتقدّمُ بصمةٌ في القفل دون تعديلِ فصلها.
لكنّه كان يقبلُ تعديلَ أيِّ فصلٍ يستشهدُ بالمصدر. والمفاتيحُ المشتركةُ اليومَ أربعة:

المفتاح الفصلان
scripts/codegen sot/codegen.md · sot/philosophy.md
language-truth/_schemas sot/language-truth.md · sot/philosophy.md
language-truth/grammar frontend/comprehensions.md · sot/grammar-sot.md
shared/ast/include/ast_visitor.h backend/interpreter.md · frontend/ast.md

فتعديلُ codegen.md وحدَه كان يَسِمُ philosophy.md طازجًا. صار الحارسُ يشترطُ كلَّ
الفصول، ويسمّي في رسالتِه المتروكَ والمشتركَ معه.

٢ · الفحصُ الأسبوعيُّ كان يقارنُ شيئًا بغيره

القفلُ مبصومٌ عند dev، والفحصُ كان يقيسُ عند آخرِ وسمِ إصدار. وv1.0.0 وسمُ
٢٠٢٦-٠٣-٠٩، سابقٌ لوجودِ language-truth/ وscripts/codegen أصلًا.

النتيجةُ المقيسة في القضيّة #1: ➖ حُذفت/نُقلت: 30 · ❓ متعذّر الوصول: 47
وكلُّها قائمةٌ سليمةٌ على dev. إنذارٌ صارخٌ دائمٌ لا يُقرأ، وتحتَه تعفّنَت أحدَ
عشرَ فصلًا بلا كاشف.

الآن: الافتراضيُّ مرجعُ القفلِ نفسُه؛ وحين يُطلَبُ مرجعٌ سواه (وسمُ إصدار، مُدخَلٌ
يدويّ) يُرفَعُ تحفّظٌ صريحٌ على المعيار وفي جسمِ القضيّة، فلا تُقرأُ «حُذف» حذفًا.
ولربطِ الدليل بإصدارٍ منشور: --ref vX --update --set-version X — فيصيرُ الوسمُ
مرجعَ القفلِ تلقائيًّا، ويعودُ الطرفان إلى أصلٍ واحد.

البراهين

البرهان النتيجة
مفتاحٌ مشتركٌ + فصلٌ واحدٌ من فصلَيه rc=1 (كان rc=0)
المفتاحُ نفسُه + كلا فصلَيه rc=0
مفتاحٌ يتيمٌ لا فصلَ له rc=1 — بلا انحدارٍ عن السلوك القديم
مفتاحٌ مُضافٌ مع فصلِه الجديد rc=0 — المسارُ الطبيعيُّ سالك
لافتةُ المرجع: مطابقٌ / مخالف تغيبُ / تظهر
--validate rc=0 — ٢١ فصلًا مسجَّلًا

ما يبقى مكشوفًا عمدًا

  • dev مرجعٌ متقلّب: «تغيّر» ما زال يعني «تحرّك dev» لا «تعفّن الدليل». هذا الطلبُ
    كتمَ الكذبَ الصارخ (حُذف/تعذّر) ولم يُنهِ الأصل؛ إنهاؤه إعادةُ بصمٍ عند وسمٍ ثابت.
  • القضيّة 🔄 انجراف الدليل عن كود اللغة #1 تحملُ جسمَها الكاذبَ حتّى أوّلِ تشغيلٍ جديدٍ للـworkflow.
  • الحارسُ الأصرمُ يُلزِمُ مراجعةَ فصلين لكلّ مفتاحٍ من الأربعة — مقصود، وكلفةٌ متكرّرة.

عطبان في أداةِ المزامنةِ نفسِها — لا في الفصول:

١) `cmd_guard_lock` كان يمرّرُ بصمةً تقدّمت إن عُدِّل **أيُّ** فصلٍ يستشهدُ
   بمصدرها. فمفتاحٌ مشتركٌ (أربعةٌ اليوم: `scripts/codegen` · `_schemas` ·
   `language-truth/grammar` · `ast_visitor.h`) كان يَسِمُ الفصلَ الثانيَ
   طازجًا وما قرأه أحد — أي أنّ الحارسَ يكتمُ ما بُنيَ لِيَكشِفَه.
   صار يشترطُ **كلَّ** الفصول، ويسمّي المتروكَ منها والمشتركَ معه.

٢) `sync-check` الأسبوعيُّ كان يقيسُ الانجرافَ عند «آخرِ وسمِ إصدار»
   بينما القفلُ مبصومٌ عند `dev`. وv1.0.0 وسمُ ٢٠٢٦-٠٣-٠٩، سابقٌ
   لـ`language-truth/` و`scripts/codegen`، فأعلنَ التقريرُ حذفَ ٣٠ مسارًا
   وتعذُّرَ ٤٧ (القضيّة #1) وكلُّها قائمةٌ سليمةٌ على dev — إنذارٌ دائمٌ
   لا يُقرأ، وتحته تعفّنَت أحدَ عشرَ فصلًا بلا كاشف.
   صار الافتراضيُّ مرجعَ القفلِ نفسَه، ويُرفَعُ تحفّظٌ صريحٌ — على المعيار
   وفي جسمِ القضيّة — كلّما اختلفَ المرجعان.

برهانان (خارج المستودع): مفتاحٌ مشتركٌ بفصلٍ واحدٍ يُرَدُّ وبفصلَيه يمرّ ·
لافتةُ المرجعِ تظهرُ عند الاختلافِ وتغيبُ عند التطابق. `--validate` سليم.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@SalehKadah
SalehKadah merged commit 691d103 into main Sep 1, 2026
2 checks passed
@SalehKadah
SalehKadah deleted the fix/sync-guard-and-ref branch September 1, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant