CML — واجهة الأوامر التي نبنيها

· أدوات نبنيها · في العلن · ما قبل الإصدار

cml status

cml أداة سطر أوامر صغيرة نصمّمها — لقراءة الأنظمة من الأعلى إلى الأسفل، وتوقيع كل نشر، وإعادة تشغيل التراجعات في أقل من ثانية. لا شيء هنا قابل للتثبيت بعد. ننشر التصميم في العلن كي يُناقَش قبل أن يُبنى.

  • read
  • deploy
  • sign
  • rollback
  • field
  • mist
الخطة

مبنية على ثلاث مراتب.

  1. المرتبة 01 · قراءة فقط

    read · mist

    تُبنى أولاً. للقراءة فقط بحكم التصميم — لا تعدّل مستودعاً ولا نشراً أبداً. آمنة لعرضها على العملاء مبكراً.

  2. المرتبة 02 · إضافي

    sign · field

    تُبنى تالياً. تضيف التوقيع وناشر الملاحظات الميدانية. تكتب مخرجات جديدة؛ ولا تغيّر القائمة.

  3. المرتبة 03 · مدمّر

    deploy · rollback

    تُبنى أخيراً، وببطء. هذه تمسّ الإنتاج. لا نشحنها حتى تصمد المرتبتان 01 و02 في تكليف كامل.

لا مُثبّت بعد. لا مستودع علني بعد. حين تُشحن المرتبة 01، يصبح هذا القسم لوحة تثبيت. حتى ذلك الحين، تحدّث إلينا عبر hello@cloudmistlabs.com.

$ cml status
· cml is in design — nothing implemented yet
· planned commands: read · mist · sign · field · deploy · rollback
· follow at /cml
$ cml read --strata ./src   # preview
· (would walk src/, group files by stratum,
·  write a map to .cml/map.md, exit)
$ cml deploy --strata edge,services   # preview
· (would refuse without a signature)
· (would refuse without 99.95% shadow-read for 9 days)
$ 
الأوامر · 6 مُخطّطة

ستة أفعال. لا أكثر.

معظم الأدوات تنهار تحت ثقل سطحها. cml ستة أوامر، عن قصد. إن وُجد خيار، فهو يفعل شيئاً واحداً ويرفض فعل غيره.

في الأسفل واجهة البرمجة المُخطّطة. شارات الحالة تُظهر ما هو مُنفَّذ اليوم.

  • cml read مُخطّط
    01 — قراءة فقط
    cml read [--strata] [--order top-down|bottom-up] <path>

    يمشي عبر المستودع من الأعلى إلى الأسفل ويُنتج خريطة لكل طبقة يحتويها. يقرأ الـ commits رجوعاً من HEAD. يُخرِج Markdown.

    الخيارات
    --strata
    اجمع المخرجات حسب الطبقة (الحافة / الخدمات / البيانات).
    --order
    اتجاه القراءة. الافتراضي من الأعلى إلى الأسفل.
    --since <commit>
    اقرأ فقط التغييرات منذ الـ commit المُعطى.
    -o, --out <file>
    اكتب إلى ملف بدلاً من stdout.
    $ cml read --strata --order top-down ./src

    *واجهة مُخطّطة. عُرضة للتغيير قبل أي إصدار.*

  • cml sign مُخطّط
    02 — إضافي
    cml sign [--key <email>] [--checkpoint <n>]

    وقّع نشراً أو نقطة تفتيش. التوقيع هو البرهان. يستخدم مفتاحك المحلي أو واحداً تحدّده.

    الخيارات
    --key <email>
    هوية التوقيع. الافتراضي git user.email.
    --checkpoint <n/N>
    علّم هذه كنقطة التفتيش N من أصل N في ترحيل.
    --witness <email>
    أضف توقيع شاهد. يمكن تكراره.
    $ cml sign --key ghaith@cloudmistlabs.com --checkpoint 04/08

    *واجهة مُخطّطة. عُرضة للتغيير قبل أي إصدار.*

  • cml deploy مُخطّط
    03 — مدمّر
    cml deploy --strata <list> [--signed] [--shadow <pct>]

    انشر طبقة أو أكثر. يرفض النشر دون توقيع افتراضياً. يرفض تحويل مسار قراءة حتى تتحقّق أهداف القراءة الظلّية.

    الخيارات
    --strata <list>
    طبقات للنشر مفصولة بفواصل. الترتيب مهمّ.
    --signed
    اشترط توقيعاً صالحاً قبل النشر.
    --shadow <pct>
    نسبة القراءة الظلّية المطلوبة. الافتراضي 99.95.
    --days <n>
    نافذة القراءة الظلّية المطلوبة بالأيام. الافتراضي 9.
    $ cml deploy --strata edge,services --signed

    *واجهة مُخطّطة. عُرضة للتغيير قبل أي إصدار.*

  • cml rollback مُخطّط
    03 — مدمّر
    cml rollback [--rehearse] [--to <checkpoint>]

    أعد تشغيل التراجع لآخر نشر. استخدم --rehearse لفعله في بيئة تجهيز دون مسّ الإنتاج.

    الخيارات
    --rehearse
    تمرين فقط. لا تؤثّر على الإنتاج.
    --to <checkpoint>
    تراجَع إلى رقم نقطة تفتيش محدّد.
    --explain
    اطبع ما سيحدث، ثم اخرج.
    $ cml rollback --rehearse --to 04/08

    *واجهة مُخطّطة. عُرضة للتغيير قبل أي إصدار.*

  • cml field مُخطّط
    02 — إضافي
    cml field [new|sign|publish] <slug>

    ملاحظات ميدانية — مقالات قصيرة. كل ملاحظة موقّعة ومؤرّخة وتمرّ بنفس تمرين التراجع الذي تمرّ به الشيفرة.

    الخيارات
    new <slug>
    ابدأ ملاحظة جديدة. يفتح $EDITOR.
    sign <slug>
    وقّع الملاحظة وجمّدها.
    publish <slug>
    ادفع إلى موجز الملاحظات الميدانية العلني.
    $ cml field new on-reading-systems

    *واجهة مُخطّطة. عُرضة للتغيير قبل أي إصدار.*

  • cml mist مُخطّط
    01 — قراءة فقط
    cml mist [--report] [--quiet]

    اطبع تقريراً من صفحة واحدة عن الحالة الراهنة لكل الطبقات. الأمر الهادئ. شغّله كل صباح.

    الخيارات
    --report
    اكتب تقرير Markdown إلى .cml/mist.md.
    --quiet
    اكتم كل شيء عدا رمز الخروج.
    $ cml mist --report

    *واجهة مُخطّطة. عُرضة للتغيير قبل أي إصدار.*

المفاهيم

ثلاث أفكار تقوم عليها الأداة.

  • · 01 ·

    طبقات

    لكل قاعدة شيفرة ثلاث طبقات — الحافة، الخدمات، البيانات. سيرسمها cml، ويرفض النشر خارج الترتيب، ويوقّع كل حدّ.

  • · 02 ·

    التواقيع

    كل نشر يحمل توقيعاً. كل نقطة تفتيش تحمل تواقيع شهود. إعادة التشغيل تحقّق، لا استعراض.

  • · 03 ·

    هادئ افتراضياً

    لا قياس عن بُعد، لا رسوم تحميل متحرّكة، لا «✨ awesome!». يطبع cml ما تغيّر ثم يخرج. الأمر الهادئ هو الصحيح.

خارطة الطريق

إلى أين يمضي هذا تالياً.

  1. إصدار المرتبة 01 حين تستقرّ أوامر القراءة فقط وتُستخدم داخلياً read + mist. قابلة للتثبيت لكن ما قبل 1.0. تقرأ فقط — لا تعدّل أبداً.
  2. النسخة التجريبية للمرتبة 02 بعد استخدام المرتبة 01 في تكليف حقيقي sign + field. نسخة تجريبية مغلقة لأوائل عملاء التكليف.
  3. v1.0 حين تصمد المرتبة 02 في تكليف كامل دون أن تنكسر deploy + rollback. إصدار مفتوح المصدر علني بواجهة مستقرّة وسجلّ تغييرات حقيقي.

لا تواريخ. سننشر الأهداف حين يكون هناك ما نشير إليه. يبدأ سجلّ تغييرات حقيقي يوم تُشحن المرتبة 01.