Quran Reels MCP について
Quran Reelsは、クルアーンの縦型動画をブラウザーで作成するツールです。短い節動画を作る人向けに、ライブプレビュー、朗誦音声と翻訳、ローカルでの動画書き出しを備えています。
主な機能
- 01114章から節を選択
- 0247人の朗誦者と8言語の翻訳
- 03デザイン中のライブプレビュー
- 04背景、カード、字幕のカスタマイズ
- 05MP4またはWebMで書き出し
活用シーン
- 01朗誦音声付きの短いクルアーン動画を作成
- 02節に翻訳や独自のビジュアルを追加
- 03縦型の節動画をプレビューして書き出し
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://quran-reels-tau.vercel.app/api/mcpclaude mcp add --transport http app-vercel-quran-reels-tau-quran-reels https://quran-reels-tau.vercel.app/api/mcp{"mcpServers":{"app-vercel-quran-reels-tau-quran-reels":{"type":"http","url":"https://quran-reels-tau.vercel.app/api/mcp"}}}Cursor で開く{"servers":{"app-vercel-quran-reels-tau-quran-reels":{"type":"http","url":"https://quran-reels-tau.vercel.app/api/mcp"}}}VS Code で開く{"mcpServers":{"app-vercel-quran-reels-tau-quran-reels":{"type":"http","url":"https://quran-reels-tau.vercel.app/api/mcp"}}}{"mcpServers":{"app-vercel-quran-reels-tau-quran-reels":{"serverUrl":"https://quran-reels-tau.vercel.app/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
قرآن ريلز — Quran Reels ⭐

المستودع: https://github.com/Ansygroup/quran-reels (عام · main) · النشر: Vercel · الدفع المستقبلي: scripts/gh_push.sh
صانع فيديو قرآن مجاني وفوري — نسخة مطوّرة بالكامل من quranreels.tech تعمل داخل المتصفح بدون خوادم معالجة وبدون قوائم انتظار وبدون حدود يومية.
🔗 الفكرة في سطر واحد: اختر الآيات ← شاهد المعاينة الحية ← اضغط «إنشاء» ← حمّل ملف MP4 عمودي 1080×1920 خلال ثوانٍ.
🌐 منشور الآن: https://quran-reels-tau.vercel.app
✨ المزايا (مقارنة بالأصل)
| الأصل | هذه النسخة | |
|---|---|---|
| الإنشاء | طابور خادم 1–3 دقائق + 10 فيديوهات/يوم + 30 ثانية تبريد | فوري داخل المتصفح بلا حدود وبدون تسجيل |
| المعاينة | غير متوفرة | معاينة حية أثناء التصميم (تشغيل/تقديم/تنقل بين الآيات) |
| الخصوصية | رفع للخادم | الصوت والصور لا تغادر جهازك (رفع خلفية محلي) |
| الأدوات | 24 أداة | 32 أداة تعمل دون إنترنت حيث أمكن |
| التصدير | MP4 من الخادم | MediaRecorder داخل المتصفح: MP4/WebM حسب دعم المتصفح، مع تقدير الأبعاد 9:16 / 1:1 / 16:9 |
🎬 الصانع
- 47 قارئًا (كل ayah mp3 من everyayah عبر
/proxyموحّد المصدر — مطلوب لالتقاط الصوت في التصدير) - 114 سورة + نطاق آيات يدوي أو «رسائل سريعة» (الصبر، السكينة، الرزق، التوبة… 324 مرجعًا متحققًا)
- ترجمة داخل الفيديو بـ8 لغات (إنجليزية، فرنسية، تركية، إندونيسية، أردية، إسبانية، إيطالية) + عربي مبسّط
- 14 خلفية (10 صور مولّدة + 4 تدرّجات) + رفع صورة من جهازك (محلي فقط)
- أنماط بطاقة (card/glow/banner) × 4 ألوان ذهبي/زمردي/فضي/وردي، عدّ حجم الخط، علامة مائية، إهداء «صدقة جارية» بثلاثة أنماط، إيقاف الحركة، شارة عنوان السورة، شريط تقدّم، ترجمة قابلة للإخفاء
- معاينة حقيقية: صوت كل آية + رسم Canvas بنفس كود التصدير (لا مفاجآت)
- تصدير لحظي:
canvas.captureStream+MediaRecorderمع شريط تقدّم وإمكانية الإلغاء، ثم تحميل/مشاركة/فيديو فوري
🧰 الأدوات الـ32
مواقيت الصلاة (12 طريقة + تحديد موقع دقيق بتوقيت المنطقة) · القبلة (بوصلة + SVG + خريطة) · التاريخ الهجري/الميلادي · أذكار الصباح والمساء (حصن المسلم كامل — 132 فئة) · المسبحة · أسماء الله الحسنى · آية اليوم · آيات بالموضوع · حلقة التلاوة · خطة الختمة · الختمة الجماعية برابط قابل للمشاركة · مخارج الحروف · إذاعة القرآن (بث مباشر) · الأحاديث (النووية/القدسية مضمّنة + البخاري ومسلم وأبو داود والترمذي والنسائي وابن ماجه والموطأ بتحميل كسول) · تخريج الحديث · مصمّم البطاقات PNG · حاسبة الزكاة · المواريث (شاملة فرع واردث ووصية ووصية مطلقة) · أسماء المولودين (1017 اسمًا) · ألوان E · التقويم الإسلامي · عدّاد المناسبات · عدّاد الإفطار · تنبيهات الأذان (إشعارات + جرس) · أعمال اليوم · متتبع الصيام · قضاء الصلاة · حاسبة الكفارة · تعلم الصلاة · المساجد القريبة (OpenStreetMap) · الدعاء المختار
🏗️ البنية
quran-reels/
├── server.py # خادم محلي: ثابت + /proxy (قائمة بيضاء) + /api/ip + /api/app-config
├── vercel.json # إعدادات Vercel: outputDirectory=public + إعادة توجيه /proxy → /api/proxy + كاش
├── .vercelignore # ما لا يُرفع عند النشر
├── api/ # دوال Serverless (Node) — مرآة كاملة لـ server.py
│ ├── proxy.js # نفس عقد /proxy: 400/403/502 + كاش 6 ساعات + ACAO *
│ ├── ip.js # نفس عقد /api/ip مع نفس البديل الافتراضي (القاهرة)
│ └── app-config.js # إعدادات عامة (Supabase URL + المفتاح العام) من متغيرات البيئة
└── public/
├── index.html # الصفحة الكاملة (SEO + JSON-LD + FAQ)
├── css/style.css # نظام تصميم RTL (تاجوال/أميري/أميري قرآن)
├── js/
│ ├── data.js # القراء، الترجمات، الخلفيات، FAMOUS، الأدوات…
│ ├── core.js # أدوات + حساب المواقيت (PrayTimes) + القبلة + الهجري + الراوتر
│ ├── quran.js # تحميل المصحف + الاختيارات + فهرس البحث
│ ├── reel.js # رسم الفيديو (Canvas) + AyahPlayer + ReelRecorder
│ ├── creator.js # واجهة الصانع وتدفق التصدير
│ ├── tools.js # إطار الأدوات المساعدة
│ ├── tools-a/b/c.js # الأدوات الـ32
│ └── app.js # الإقلاع والصفحة الرئيسية
├── data/ # المصحف (2.1MB) + 7 ترجمات + أذكار + أسماء + أحاديث
├── fonts/ # Amiri / AmiriQuran / Scheherazade / Tajawal
└── img/backgrounds/ # 10 خلفيات مولّدة (بلا نصوص)
🚀 التشغيل
cd quran-reels
PORT=8787 python3 server.py
# ثم افتح http://localhost:8787
- لا توجد تبعيات (Python 3 مكتبة فقط + Node للفحص الاختياري).
/proxy?u=يقبل فقط: everyayah.com, api.alquran.cloud, cdn.jsdelivr.net, raw.githubusercontent.com, qurango.net, overpass-api.de, overpass.osm.ch, api.aladhan.com, nominatim.openstreetmap.org.PORTاختياري (افتراضي 8787) ويجب أن يُشغَّل على0.0.0.0ليعمل خلف وكيل المعاينة.
🌐 النشر على Vercel + Supabase
Vercel (الحساب متصل — المصادقة محفوظة داخل المشروع في .vcfg ولا تحتاج موافقة جديدة):
# مرة واحدة لكل بيئة عمل جديدة (إن لزم): npm i -g vercel أو استخدم npx
npx vercel -Q "$PWD/.vcfg" deploy --prod --yes --scope ansygroups-projects
- الإعدادات في
vercel.json: مجلد الخرج =public، و/proxyيُعاد توجيهه إلىapi/proxy، وصفحات بدون امتداد تفتح التطبيق، وكاش CDN يوم للملفات الثابتة و6 ساعات للـproxy، ورؤوسnosniff/Referrer-Policy. - متغيرات البيئة في المشروع (production + preview):
SUPABASE_URL·SUPABASE_ANON_KEY— تقرأهاapi/app-config.jsويستهلكها المتصفح.
- نطاق مخصص لاحقًا: أضِفه من لوحة Vercel ثم حدّث وسوم SEO إليه.
تحصينات مطبَّقة (2026-10-27):
api/proxy.js+ مرآتهserver.py: سقف حجم25MB · حدّ120 طلب/دقيقة/IP · دعمRange(تنقّل الصوت بـ206) · إعادة فحص مضيفي كل تحويل (حتى3) · كاش6س + كاش دافئ من الذاكرة./api/ip: يقرأ رؤوسx-vercel-ip-*من حافة Vercel أولًا (بلا اعتماد خارجي وبلا rate-limit) ثم ipapi.co ثم بديل القاهرة.- Supabase: صلاحيات أعمدة محدودة (
UPDATEعلىdone/planفقط) + قيود (طول الاسم≤24،done≤365، تنسيق معرّف) + العميل يكتب عبر PATCH ثم INSERT (لا upsert). البقيّة المقصودة: المفتاح العام يسمح بقراءة لوحة الختمة كاملة (بيانات تقدّم منخفضة الحساسية) — الحل الجذري عند الحاجة: Supabase Auth. - معرّفات خطط أقوى (16 محرفًا عشوائيًا عبر
crypto).
PWA / وضع دون إنترنت:
public/sw.js+manifest.json+img/icon.svg: يُخزّن الهيكل والبيانات الأساسية عند أول زيارة؛ التنقّل والأدوات تعمل دون إنترنت، و/proxy+/apiشبكة دائمًا (لا يُخزَّن صوت). الإصدار الحاليqr-v1— عند تغيير ملفات الهيكل ارفع الرقم فيsw.jsلتجديد الكاش.
Supabase — الختمة الجماعية المشتركة (متزامنة بين الأجهزة):
- مشروع
quran-reelsبجدولتيkhatma_plansوkhatma_progressمع RLS (تقدّم كل فرد في صف مستقل). - أداة «ختمة جماعية» تقرأ
/api/app-config؛ عند غيابها تعمل بدون سحابة بهدوء (تراجع صامت). - رابط المشاركة يحمل الخطة؛ التقدّم يُدفع عند «أنهيت اليوم» ويُسحب عند فتح الرابط على أي جهاز.
👤 アカウント+自動公開(自動化)— 新機能
ユーザー体験(すぐに利用できます): 「🔑 ログイン」ボタン → メールのマジックリンクまたは「Google で続行」 → プラットフォーム連携をワンクリックの OAuth で行える #/account ページ、公開スケジュール、投稿ジェネレーター、毎日の「自動化」。エクスポート結果の「🤖 公開をスケジュール」ボタンを押すと、動画がアカウントにアップロードされ、スケジュール画面が開きます。訪問者は自由に利用できます — 作成機能もツールも、登録なしですべて利用できます。
実際に公開できるようにする方法(開発者向け設定 — プラットフォームごとに一度だけ):
| プラットフォーム | Vercel の変数(Secrets) | アプリを作成する場所 | 登録済みリダイレクト URL |
|---|---|---|---|
| YouTube(後で Google ログインも有効化) | GOOGLE_CLIENT_ID · GOOGLE_CLIENT_SECRET | Google Cloud Console → OAuth consent → Credentials | https://quran-reels-tau.vercel.app/api/oauth/callback |
| Facebook + Instagram | META_APP_ID · META_APP_SECRET | developers.facebook.com → My Apps | 上記と同じ URL |
| TikTok | TIKTOK_CLIENT_KEY · TIKTOK_CLIENT_SECRET | developers.tiktok.com | 同じ URL |
| X | X_CLIENT_ID · X_CLIENT_SECRET | developer.x.com | 同じ URL |
- すべてのプラットフォームでリダイレクト URL は共通です:
/api/oauth/callback(プラットフォームはstateにエンコードされます)。 - Google ログイン:Supabase Dashboard → Authentication → Providers → Google を設定します(ほぼ同じ Google クライアントを使用します。リダイレクト先に
https://<ref>.supabase.co/auth/v1/callbackを登録してください) — マジックリンクは設定不要で動作します(組み込み SMTP。デフォルトの上限は 時間枠ごとに2通 です — 必要に応じてダッシュボードで引き上げるか、独自の SMTP を使用してください)。 - 自動化:Vercel Cron が毎日
15 4 * * *UTC(≈カイロ時間06:15)に、CRON_SECRETを使って期限到来済みのタスクを公開します — Vercel の無料プランで十分です(動画を1日1本自動公開)。「今すぐ公開」ボタンからの即時公開はいつでも利用できます。 - ストレージ:スケジュール済みの動画は Supabase Storage bucket
reels(公開 — プラットフォームがリンクを取得できるようにするため)にアップロードされます。1ファイルあたりの上限は50MBです。無料の1GBで数百本のリールを保存できます。 - セキュリティ:トークンは
TOKEN_ENC_KEY(サーバーのみ)を使って AES-256-GCM で暗号化されます。JWT は JWKS を通じて ES256 で検証されます。テーブルはユーザー所有権に基づく RLS で保護され、レスポンスにトークンが表示されることはありません。 - プロジェクトのルートにある
.env.secrets(アップロード対象外)は、TOKEN_ENC_KEYとCRON_SECRETのローカルコピーです — これらを紛失した場合はプラットフォームを再連携する必要があります(問題はありません)。 - Vercel の上限:Hobby プランではデプロイごとに12個の関数が許可されています — 現在の合計は 11 です。追加する場合は、ここで採用しているようにパスを統合してください(
api/x.js+?op=クエリのパターン)。 - プラットフォームの実情(正直に説明):YouTube への直接アップロード(デフォルトのクォータは約1日6本。申請で引き上げ可能) · Instagram には Business アカウントと Meta アプリの審査が必要 · TikTok にはアプリの審査が必要(テストモードではクリエイターにのみ公開) · X では動画アップロードに有料 API プランが必要な場合があります。これらはすべて外部の要件です — 承認され次第、コードはそのまま動作します。
- プラン(無料/Pro/買い切り)は画面上に表示されます — オンライン決済は、ご要望に応じて次の段階で対応します。
✅ テスト
- プロジェクトに含まれる継続的なテストスイート:
tests/run.js(Playwright) — 本番環境またはローカルサーバーに対して実行します:
cd tests
npm i playwright && npx playwright install chromium-headless-shell
npx playwright install-deps chromium-headless-shell # مكتبات النظام (مرة واحدة)
node run.js # محلي: 127.0.0.1:8787
BASE=https://quran-reels-tau.vercel.app node run.js # الإنتاج
SKIP_EXPORT=1 node run.js # بلا قسم التصدير (~أسرع)
node tools_smoke.js # دخان فتح الـ32 أداة (~5 ث)
node tools_interact.js # تفاعل فعلي لكل أداة (نقر·select·input·checkbox)
node correctness_test.js # صحة الحسابات مقابل Aladhan (30 فحصًا)
# الثلاثة الأخيرة تقبل BASE=… للإنتاج أيضًا
-
対象範囲:起動+SEOタグとJSON-LD、robots/sitemap+プレビューと実際のMP4エクスポート+32ツールすべてがエラーなく開くこと+高度なインタラクション(数珠/ザカート/個人ハトマ/クラウド状態付きのグループハトマ/礼拝時刻/キブラ/ズィクル/ハディース/ラジオ/発音点テスト)+モバイルメニュー。
-
Lighthouse(モバイル・シミュレーション):パフォーマンス 91 · アクセシビリティ 100 · ベストプラクティス 100 · SEO 100(FCP 1.0s · LCP 1.5s · CLS 0.07 · 失敗 0件)
-
W3C バリデーター(validator.nu):エラー 0件 · 警告 0件 — 見出しのセマンティックな順序を完全に整備(ツールセクションの
sr-only見出し2つと、今日のアーヤのv-tagを含む)— 新しい4つの/ar/*ページもそれぞれ0/0。 -
インデックス登録レイヤー(Kمل#8):アプリ内のすべての
#/…リンクはインデックス登録できず、sitemapもリンク1件のみだったため、内容が充実し、JSON-LDと相互に関連付けられたFAQを備えるスクリプトなしの静的ランディングページを構築:/ar/quran-video-maker/·/ar/islamic-tools/(32ツールの一覧) ·/ar/prayer-times/·/ar/qibla-direction/— sitemapは現在11パス。メインページのフッターから内部リンクを追加し、/ar/(.*)にセキュリティヘッダー/長期キャッシュを設定。最初のページのLHは98/100/100/100。 -
コンテンツ拡充とGEO(Kمل#10 — 「ナンバーワン」):実際の競合キーワードに基づくページを6つ追加(
quran-video-tiktok·quran-video-with-translation·short-quran-verses-video·adhkar·tasbeeh·zakat-calculator)— すべてW3C 0/0。再利用可能な/scripts/build_lp.jsで生成 · AI検索エンジンが引用できる情報を掲載した**/llms.txt** · robots.txtで12以上のAIクローラーを明示的に許可(GPTBot·PerplexityBot·ClaudeBot·Google-Extended…)· IndexNowにHTTP 200のリンク11件を再送信 · 競合レポート全体をdocs/competitors.mdに収録(事業者20社+明示的な比較+測定可能な目標)。 -
Googleの検証タグ
google-site-verificationをメインページに公開(GSCの手順:検証 ← sitemap送信 ← 12パスのインデックス登録をリクエスト)。 -
MCP サーバー(Kمل#11 — 「AIに推薦してもらう」):
POST /api/mcp— キーもセッションも不要な、プロトコル2025-06-18/2025-03-26対応のStreamable HTTPサーバー(JSON-RPC · バッチ · CORS)。AI検索エンジンからサイトを呼び出せる6つのツール:quran_reel_maker_info·get_prayer_times(9方式+DSTに安全なIANAタイムゾーン)·get_qibla·get_hijri_date(ウンム・アルクラー)·get_verse(ウスマーン体、最大10件)·create_reel(/?s=…&from=…&to=…リンクで、入力済みの作成画面を開く)·/.well-known/mcp.jsonでの検出 · ドキュメント/developers/mcp/(W3C 0/0)· テストtests/mcp_test.js28/28。 -
MCP公式レジストリ(Kمل#24d — 公開済み✓):registry.modelcontextprotocol.ioに
app.vercel.quran-reels-tau/[email protected]として登録(status=active)。/.well-known/mcp-registry-authを使ったHTTP認証(Ed25519 — アカウントもブラウザーも不要)。remotesはhttps://quran-reels-tau.vercel.app/api/mcpを参照 — GitHub MCP Registryと公式レジストリを利用するすべてのクライアントが利用できます · 再公開:mcp-publisher publish。 -
大規模追加(Kمل#12 — 「全部」):
scripts/build_k12.jsで新しいページを58件追加=英語セクション/en/(6つの二言語ページ、アラビア語↔英語の6組にhreflangを設定)+朗誦者一覧と朗誦者ページ47件(/ar/reciters/+/ar/reciter/<slug>/)。/?r=<folder>ボタンで朗誦者の声を設定した生成画面を開く(applyDeepLink/handlePendingで詳細なアラビア語対応+MCPツールcreate_reelにオプション引数を追加)+信頼性ページ(/about·/terms·/privacy·/contact。読み取り機能を持たないRLSテーブルを使う防御的RPCsubmit_contactで動作するフォーム)· すべてのページのフッターを統一し、信頼性ページへのリンクを追加 · Sitemap 12→70 · llms.txtを更新 · W3C 70ページすべて0/0 · テストtests/pages12_test.js21/21 · IndexNow 70@200。 -
ブログと季節コンテンツ(Kمل#13):
scripts/build_blog.js→/blog/一覧+実際の検索キーワードに基づく記事8件(30のアイデア · 無料ツールはある? · quranreels.tech/tashghil/quranvideomakerとの比較表 · 7つのミス · スケジュール設定と自動化 · ラマダン1448年の計画。ウンム・アルクラー暦:ラマダン1日目はおよそ2027年2月8日 · 金曜日のコンテンツ · 5分で初めての動画を作る)— 各記事にArticle+BreadcrumbList+FAQPageJSON-LD、<time>、明記した読了時間を設定 · サイト全体のフッター(テンプレート×3+ルート+静的ページ)に「記事」リンクを追加 · Sitemap 70→79 · llms.txtにブログセクションを追加 · W3C 79ページすべて0/0 · テストtests/blog_test.js12/12(CJKチェック、実際に有効な内部リンク、sitemapパスの厳密な検証を含む)· IndexNow 79@200。 -
監視+単語ごとの表示+パッケージ+後回しにした項目(Kمل#14 — 「全部」):リール作成ツールに4つ目の**「単語ごと」表示方式を追加(
reel.js _drawWords:実際の朗誦時間に合わせ、文字数に応じた金色の円で現在の単語をハイライト。音声を解析するか推定し、_fitAyahの行と文字単位で一致。S3テストはrun.jsに追加)· 週次監視:npm run monitor(scripts/monitor_site.js+lib/monitor.js— sitemap内の全エントリーが200であること、robots/llms/GSCタグ/ブログフッターを確認+新規/削除項目を含む競合差分**+インデックス登録状況を確認するBing RSSクエリと、docs/monitor/への日次Markdownレポート)+Vercel Cron:毎週月曜06:30UTC(/api/cron/monitor)· 問い合わせ確認メール:api/contact.jsはRPCを経由してから、lib/mailer.jsで問い合わせ者に確認メール、管理者にコピーを送信(Resend。キーがなければno-op)。フォームには直接送信のフォールバック経路も用意 · OAuthの不具合を修正:4つのプラットフォームのredirect_uriが存在しないパスを指していたため、/api/oauth/callbackに統一 · 外部引用用パッケージdocs/backlinks.md(ファクトシート+リンク付きの対象8件+メールテンプレート3つ+週間計画)· セットアップ記録:docs/{github,domain,oauth,payments,smtp}-setup.md+下書きsql/credits-draft.sql(未適用)+DNS設定後に1コマンドでドメインを切り替える**scripts/rebase_url.js** · pages12テスト 21→24。 -
GSC検証タグ(Kمل#15):トークン
IHmoe5QFrC77PbZdh2O0MeZFLIKwg-saA50td32AcQoを79/79ページに設置済み — 不足していた4ページ(ar/quran-video-maker·ar/islamic-tools·ar/prayer-times·ar/qibla-direction)に、同じテンプレート位置で追加 · 監視で単なる存在確認ではなく値の完全一致も確認(lib/monitor EXPECTED_VERIF)· pages12に恒久テストを追加(GSC token exact on home)· 次の手順:GSC → Verify → Sitemap(79)を登録 → インデックス登録をリクエスト · 検証ファイルgoogleb789508316de731f.html(ファイルアップロード方式 — ルートに文字どおり53バイト)とpages12のチェックを追加(24→25)。 -
プラットフォーム別ページ(Kمل#17):
quran-video-instagram·quran-video-whatsapp— 元サイトの文言をそのまま使用(タイトルと説明はquranreels.techの公開ページから取得)+quran-video-facebook独自の文言で作成(元サイトにはFacebookページがないため、90件のサイトマップを確認)— 各ページにWebPage+FAQPageJSON-LDと相互リンク(TikTok ↔ プラットフォーム)· リンク切れを修正:翻訳ページに存在しない/ar/quran-reels-for-dawah/があったため、WhatsAppのステータスページに置換 · Sitemap 79→82 · llms.txtに3ページ追加 · W3C 変更した5ページすべて0/0 · pages12 25→27(82リンクのself-canonicalチェックを含む)· IndexNow 200×3 · monitor 82/82。 -
季節・カテゴリページ(Kمل#18):新しいページを21件追加 — 「あと何日」シリーズ(ハブ+ラマダン2027年/イード・アル=フィトル/イード・アル=アドハー/アラファの日/ラジャブ/シャアバーン/金曜日:ウンム・アルクラー暦の日付を元サイトの文言そのままで掲載。「目視によって1日ずれることがあります」と注記+各ページにライブカウンター
id="kbc"を設置。金曜日のカウンターはブラウザー上で毎週更新)+名前入りの祝賀ページ(ハブ+2つのイード+金曜日+ラマダン。タイトルは元サイトのものを使い、動画の下に贈るメッセージ用に説明を調整。元サイトの「オープニングカード」は当サイトにないため)+ツールカテゴリ7件(islamic-tools/{prayer-and-place,quran-discovery,quran-learning,dhikr,hadith-and-learning,calculators-and-tracking,family-and-life}。元サイトのタイトルと説明を使用し、当サイトのツールを分類)+独自の文言による**/ar/quran-word-highlight/**(元サイトのslugは404のため、当サイトで対応)· 機能紹介:data.jsにルートFAQを16件追加(run.jsを再ビルド)+ブログの比較表に行を追加(競合にも「単語ごと」機能があると明記)+llms · build_lp 9→30 · Sitemap 82→103 · pages12 27→29(キーワードチェック+カウンターチェック)· run.js 87/0 · blog 12/12 · correctness30 · smoke32 · mcp28 · interact32 · W3C 23件すべて0/0(validator.nu)· Lighthouse 91/98(メインページ/デザイナー。ベースラインから低下なし。通常の変動幅は79–95。レンダリングブロックを減らすためstyle.cssにpreloadを追加)· IndexNow 21@200/202 · monitor 103/103。 -
元サイトのサイトマップを網羅+デザイン刷新(Kمل#19「全部」):元サイトのサイトマップ(90リンク)に残っていたすべての差分を埋める新規ページ51件(別のパスで対応済みのものを除く):元サイトの文言を使った個別ツールページ24件(
qibla·hijri-date·islamic-calendar·ayat-bil-mawdoo·daily-ayah·quran-radio·quran-looper·quran-khatma·group-khatma(Kمل#18で追加したリンク切れを修正)·hisn-almuslim·asma-allah-husna·hadith·hadith-checker·how-to-pray·mawarith·kaffara·qada·sawm·baby-names·nearby-mosques·minshawi-rare·makharij·tahfeez·quran-quizにはページ内で実際に解答できる8問のテスト ·crypto-zakatには手動計算機と学術的な注意書き ·halal-product-checker— 「バーコードと画像」機能は当サイトにないため独自の文言)+専門の動画作成ページ13件(no-watermark·no-music·free-maker·quran-video-ramadan·quran-reels-ai·quran-translation-video·quran-tafsir-video(明確な制限を記載)·khushoo·sadaqa-jariya·quran-word-highlight-video+yasser-dossary/mishary-rashid(=alafasy)/best-quran-recitersは実際の朗誦者ページ47件を使用)+adhkar/{sabah,masaa,nawm}+guides/quran-reels-guide-2026+compare/quran-video-makers(「7社」とは主張せず、検証済みの比較表のみ)+ur/とid/の2つの言語版(正しいlang/dir)+ルートページ:/faq/と/content-sources/(情報源の透明性)、/developers/+docs/en+integrations/n8n(キー不要で実際に動作するMCP/JSON-RPC)、さらにリダイレクト/privacy-policy→/privacy(308) · 存在しない機能の説明を正確に修正(緑に光るコンパスなし · 「歩行」機能なし · ヒジュラ暦の年齢なし · ハディース画像なし · 3Dモデルなし…)· テンプレートビルド:base/lang/dirを任意指定に(生成ページ30→81)· Sitemap 103→154 · pages12 29→30(ur/idのlang+GSCを確認)·style.css+lp/blogテンプレート2種を横断してデザインを刷新(ゴールドのグラデーションを使ったヒーロー · hover/borders · focus-visible · selection · reduced-motion)。text-wrap:balanceが原因のCLSも修正(LH:デザイナーページは削除後89→97)· W3C 90件すべて0/0 · run 87/0 · blog12 · correctness30 · smoke32 · mcp28 · interact32 · LH メインページ88–91(ベースライン91) · IndexNow 51@200×3 · monitor 154/154。 -
記事生成エンジン+記事100件+AI画像+バックエンド強化(Kمل#20「engine100 · ai · deepen」):
posts/library{,_b}.jsを読み込むエンジンscripts/build_posts.js(8つのクラスターで構成するコンテンツバンク:video13 · reciters12 · prayer13 · hifz13 · azkar13 · seasons12 · family12 · publishing12)+posts/index{,_b}.js(独自記事100件の仕様:slug/タイトル末尾の接尾辞「| قرآن ريلز」/説明/キーワード/導入/3つのポイント/実践方法/FAQ×2-3/内部リンク2件以上)→/articles/<slug>/に記事100件+ハブ/articles/:Article+BreadcrumbList+FAQPage JSON-LD · パンくずリスト「ホーム ← ライブラリ」· アラビア語の<time>· 読了時間(単語数/180)· 関連リンクを複数設置(クラスター内の記事2件+「関連記事」+関連カード3件+クラスターのツール+クラスターリンク)·public/img/articles/<slug>.jpgにクラスターごとの代表的なAI画像8枚(heroとogに自動使用し、残りはog-coverに使用)· すべてのフッターに「ライブラリ」を追加(lpテンプレート+blogテンプレート+静的ページ64件+記事エンジン自身)· Sitemap 154→255 · llms.txtに「記事ライブラリ」セクションを追加 · pages12テスト 154→255 · ローカルテストはすべて成功:run 87/0 · blog 12/12 · correctness 30 · smoke 32 · interact 32 · api 0 · mcp 28 · 規模は意図的に適正化:「記事100万件」は物理的に不可能で、scaled-content-abuseのリスクがある(ask_user: engine100)— エンジンは、同じクラスター用コンテンツバンクを使って今後数百件の記事を追加できる状態です。 -
GitHub(Kمل#16):公開リポジトリ**https://github.com/Ansygroup/quran-reels**を**18コミット**で公開し、同期を確認(ローカルとリモートのshaが一致)· ブランチ
masterをmainに変更 · トークンは.vcfg/gh_token(権限600、gitで無視され、出力されることはありません)+.vcfg/gh_repoに保存 · **scripts/gh_push.sh**で、.git/configが消去されてもoriginを再追加して1コマンドでpush可能 · 状況をdocs/github-setup.mdに記録。 -
ツールページでのLighthouse:
#/tools= 95/100/100/100 ·#/tool/prayer= 94/100/100/100 — すべてのパスで失敗なし。 -
恒久的なE2E RESTテスト一式
tests/e2e_rest.py:最終ビルドで13/13(権限付与·JWKS·OAuth 401/302·アップロード保存+公開·ハトマのRLS·スケジュール設定·連携なしの場合の公開502·自動化·連携一覧)。 -
32ツールのスモークテスト
tests/tools_smoke.js:すべてのツールを開き、レンダリング、ページエラーがないこと、横スクロールが発生しないことを検証 — ローカルと本番で約5秒で32/32。 -
フリーズの不具合を修正(スモークテストで検出):
hijriPartsが呼び出しごとにIntl.DateTimeFormatを生成していたため、hijriToGregのループ(暦ツール内で×900)によってメインスレッドが数十秒フリーズし、calendarツールが停止していました —core.jsにフォーマッターを1つだけ保存するよう修正。 -
健全性テスト
tests/correctness_test.js— ローカル/本番とも30/30:日付計算をAladhanと直接照合:ヒジュラ暦↔gToH+往復変換 · カイロ/ロンドン/ジャカルタ/ニューヨークのキブラ方位±1° · ウンム・アルクラー方式(カイロ)の礼拝時刻をmethod=4と比較し、差は0~2分 · DOMを使ったザカート計算(2.5%+85gのニサーブ+2つの法的見解)· テキストツール(toAr·fmtTime·normAr)。 -
ヒジュラ暦の静かな不具合を修正(健全性テストで検出):Kمل#6で名前を変更した際に
raw: fmt.format(date)が残り、ReferenceErrorがcatchに無視されていました。そのため、ヒジュラ暦の日付はすべて「1448 AH ムハッラム1日」と表示され、テストもレンダリングしか確認していなかったため成功していました — 正しい経路で_HIJRI_FMTを使うよう修正。 -
DSTの不具合を修正:都市テーブルの固定
tz値が、夏時間中に1時間ずれていました(カイロはtz:2に対し、Africa/Cairoは現在+3)— 現在は各都市のIANAタイムゾーン(z)を設定し、読み込みのたびにtzFromNameでその日のオフセットを算出します(保存済み/端末/IP/都市選択の各経路)。 -
ツールのインタラクションテスト
tests/tools_interact.js— ローカル/本番とも32/32:各ツールで最大4つの実操作(ボタン/リンクをクリック · selectを変更 · 安全な値を入力 · checkboxを切り替え)を実行。フリーズ防止と状態の後片付け(Escape/hash/音声)も確認 — 表示のみのツール(iftar/calendar/countdown)は、コード内で表示専用と明記しています。 -
ドメインに関する注記:プロジェクト設定にはaliasとして
quran-reels.ansygroup.comが含まれ(デプロイコマンドに表示されます)が、DNSではまだ解決できません — 基準となるドメインquran-reels-tau.vercel.appは正常です。 -
起動パフォーマンス:12個のスクリプトを
deferで読み込み、3つのツール実装はツールを最初に開いたときに取得(オフライン用にSHELLにキャッシュ)。メインページの背景はwebp。フォント/背景/JS/CSSを?v=3で1年間キャッシュ。 -
直近の結果(Kمل#7のビルド):chromium PROD 86/0 · LOCAL 81/0 · api 15/15 · 健全性 30/30 · インタラクション 32/32 · スモーク 32/32 · LH 91/100/100/100(
0d21c5cビルドでSKIP_EXPORT=1の場合、firefox/webkitは85/80と85/80。headless環境ではMediaRecorderがないか無効なため — 環境上の制約として記録済み)· api_testにはService Worker経由のオフライン動作、本番のクラウド行、計算/自動化/API契約のセクションS9を含む — ゲストの拒否401、Googleボタンのガード:有効化されていないプロバイダーはエラーページではなく通知を表示、メニューに「自動公開」リンクを追加、FAQはJSON-LDと15項目が一致。 -
インストール可能な完全なPWA:
icon-192.png/icon-512.png(+maskable)を用意し、CDNキャッシュを無効にするため?v=2を付与。SWのバージョンはqr-v3。 -
すべての
/api/*にセキュリティヘッダー:nosniff+Referrer-Policy+Permissions-Policy(geo/self — カメラ/マイクは禁止)。 -
セッショントークンパーサー
QRAuth.parseAuthHash:#access_token=、#/…#access_token=の二重形式、?access_token=に対応(3つの形式をテスト済み)。 -
マジックリンク経路:実際のドメインへの送信が受け付けられることを確認(受け付け後、429を返すよう調整済み)。
token_hash検証ページでは実際にメールから送信されたトークンが必要(データベース権限で試験し、想定どおりotp_expiredで拒否)—site_urlは本番に設定済み。 -
ローカルgitリポジトリ(ファイル80件。
.gitignoreで.env*/.vcfg/.vercelを保護)— すべてを含む最初のcommit。 -
ソーシャルメディアプレビューのパフォーマンス:
og-cover画像を2167KBから95KBに再圧縮(1200×630 JPEG)。og/twitter+JSON-LDを?v=2付きで更新 — 21のSWパスすべてが200を返し、本番ログにエラーがないことを確認。 -
PWAアプリのインストールボタン:
beforeinstallpromptの発生時に表示され、appinstalledで非表示(S9に新しいチェックを2件追加)。 -
HTMLに厳格なCSPを設定:
script-src 'self'(インラインスクリプト/onclickハンドラーなし — 作成ボタンをJSに移行)、実際のソースへのconnect/media pin(Supabase/everyayah/overpass/jsdelivr/qurango)、frame-ancestors 'none'+X-Frame-Options: DENY+Referrer-Policy — 82件すべてのチェックで違反なし。 -
iOS連携:
apple-touch-iconはPNG-192を使用し、theme-colorも設定済み。 -
sql/schema.sql:完全なスキーマのコピー(5テーブル+RLS+14ポリシー+6インデックス。稼働中のカタログから取得)を復元用に用意 — 秘密情報は含みません。 -
互換性ガード:MediaRecorderが使えない場合、技術的なエラーではなく明確なアラビア語メッセージを表示。
-
パフォーマンス監査:SHELLはわずか2.8MB(翻訳データ12MBは必要時に読み込み)、brotliを有効化、21のSWパスはすべて200。
-
複数ブラウザーでのテスト:
PW_BROWSER=firefox node run.js(デフォルトはchromium)— FirefoxはSKIP_EXPORT=1で85/80。headless FirefoxではMediaRecorderがハングするため(run.jsに環境上の制約として詳細を記録。MP4エクスポートはchromiumでテスト済み)。 لربطه بـGitHub لاحقًا (بمُشتركك أنت — لا تُلصق التوكن هنا أبدًا):gh auth login # أو استخدم PAT عبر GH_TOKEN gh repo create quran-reels --private --source=. --push # أو يدويًا: # git remote add origin https://github.com/<user>/quran-reels.git # git push -u origin main -
فحص عقود الوحدات
api_test.js: 15/15 (ACAO · كاش · Range206 · 405 · rate-limit429 · X-Cache HIT · ip · app-config). -
جدولة Vercel مؤكَّدة:
vercel crons ls→/api/cron/publish·15 4 * * *(يوميًا). -
E2E كامل بحساب حقيقي (يدوي، خارج المجموعة): منح جلسة → رفع فيزيو للتخزين (200 + رابط عام) → إدراج مهمة بـRLS → جدولة عبر API → نشر بلا ربط ⇒
failedبرسالة عربية مُدارة → أتمتة upsert → واجهة بحساب مسجّل 8/8 (بطاقة المستخدم، قوائم، نافذة الجدولة، توليد البوست، خروج ينظّف الجلسة) — وكل البيانات نُظّفت بعدها (0 صف). -
ملاحظة بيئة العمل: كل رد من المستخدم ينظّف
node_modulesوذاكرة المتصفح — أعدnpm i playwright && npx playwright install chromium-headless-shell(+install-depsإن لزم) قبل أي تشغيل جديد. -
التحقق من بيانات الملفات: فحص مطابقة الـ44 ملفًا بين النشرة المحلية والإنتاج (HEAD 200 للكل)، وعقد دوال Vercel بـ13 فحص (
api_test.jsسابقًا)، وإثبات مزامنة السحابة بجهازين على الإنتاج.
📝 ملاحظات
-
التصدير يلتقط الصوت الحي من مشغّل WebAudio (
MediaStreamDestination) — يجب مرور الصوت عبر نفس الأصل (/proxy) لتجاوز قيود CORS. -
الموقع منشور على
quran-reels-tau.vercel.app(كل وسوم SEO وrobots/sitemap عليه). عند ربط نطاق مخصّص لاحقًا: بدّل النطاق فيindex.html(canonical/og/JSON-LD) وrobots.txt/sitemap.xmlثم أعد النشر. -
الاختبارات:
tests/run.js(التشغيلان أعلاه خضراء: PROD 65/0 · LOCAL 64/0) — حزمة دائمة داخل المشروع بدل الملفات المؤقتة السابقة. -
ملاحظات بيئة العمل: مجلدات التبعيات (
node_modules، ذاكرة المتصفح، CLI) تُنظَّف مع كل رسالة — أعد تثبيتها بالأوامر أعلاه عند الحاجة؛ ملفات المشروع والبيانات تبقى كما هي. -
200 مقالًا + مكتبة إنجليزية + GEO + فيديوهات حقيقية (كمل#21 «كلهم»): (أ) التوسعة 100→200:
posts/library_c.jsأضاف 24 قسمًا (بنوك المحتوى6→9 لكل العناقيد الثمانية) ·posts/index_c.js+posts/index_d.js= 100 مواصفة جديدة (video · reciters · prayer · hifz · azkar · seasons · family · publishing = 25 لكل عننقود) مع فحص CJK وروابط ميتة أغلق9 عيوب كتابة · (ب) المكتبة الإنجليزية:posts/en.js15 مقالًا إنجليزيًا أصليًا (مواضيع متصلة بأقراها العربية) +scripts/build_posts_en.js→/en/articles/<slug>/+ hub/en/articles/(Article+Breadcrumb+FAQ LD · hreflang متقابل ar↔en + x-default · صور hero مشتركة عند توفّرها) · فوترات الصفحاتlang=enأُعيدت إلى/en/articles/· (ج) GEO: Article LD حصل على timeRequired + keywords + isPartOf · الرئيسية +WebSite + Organization LD (4 كتل JSON-LD صالحة) · llms.txt: 200 دليلًا (25×8) + قسم المكتبة الإنجليزية + بند حقائق جديد (خريطة 371) · (د) فيديوهات MP4 حقيقية:scripts/export_videos.jsيقود الموقع نفسه عبر Playwright (/?s=&from=&to=&r=→#btnCreate→ انتظار#btnDownload→ تنزيل) → 8 مقاطع عمودية 1080×1920 بلا علامة مائية (3.6–16.7MB) فيdeliverables/videos/+ README ببيانات يوتيوب جاهزة (عنوان ووصف ووسوم لكل مقطع · روابط لمقالاته · قواعد الرفع Shorts) · Sitemap 255→371 (+116 بلا تكرار) · pages12 ينتظر 371 · محلي: 371/371 كلها 200 + canonical متطابق · correctness 30 · blog 12 · smoke 32 · interact 32 · api 0 · W3C 372 ملفًا → أخطاء0 (إصلاح تدرّج عناوين/faq/) · خادم8787 أُعيد تشغيله من جذر المستودع (كان يعمل دون مسارات API محليًا). -
400 مقالًا + 40 إنجليزيًا + فيديوهات40 + APK (كمل#22 «كلهم» + «APK للجوال»): (أ) المكتبة200→400:
posts/library_d.js(+24 بنك محتوى) +posts/index_e/f/g/h.js(52+52+52+44 = 200 مواصفة جديدة) → 8 عناقيد × 50 =400 فريدة، إغلاق29 رابطًا ميتًا عبر خرائط href عالمية (DEAD=0)،build_posts.js→ 400 مقالًا + hub، خريطة الموقع 371→571 · (ب) فيديوهات40/40: مكتبةvideo_recipes_c.js(32 وصفة) + إصلاحات انتظار Playwright (60–150s، صيغة3 معاملات لـ waitForFunction) → 40 ملف MP4 عمودية1080×1920 =494MB + README 40 صفًا ببيانات يوتيوب · (ج) الإنجليزية15→40:posts/en_b.js(+25 دليلًا كاملًا) + معالجة 22 وقوع{t}حرفية فيbuild_posts_en.js(تطبيع قبل العرض HTML+JSON-LD) + hub يعرض400 · 40 زوجًا ar↔en hreflang متبادلًا · صفحة/en/tools/الجديدة زوجًا لـ/ar/islamic-tools/(x-default→/) · تذييل k12 EN يوصّل الأدوات · خريطة الموقع 571→597 (+26) · pages12 ينتظر 597 · llms: 400 عربي +40 EN +597 رابطًا · W3C محليًا0 أخطاء على42 ملف EN · (د) backlinksdocs/backlinks.md: أقسام §12–15 (حزمة روابط400 · أصول النشر والفيديو · خريطة مجتمعات8 عناقيد · قياس اقتباس GEO وتتبّع) + ورقة الحقائق §0 محدّثة للأرقام الحقيقية · (هـ) APK للجوال: Bubblewrap TWA →deliverables/app/quran-reels.apk(1.07MB) +quran-reels.aab— حزمةapp.quranreels.twa· minSdk24 · التسمية «قرآن ريلز — صانع ريلز قرآني» · يفتح الموقع الحيّ · شهادة التوقيع مطابقة للـkeystore المحفوظ فيdeliverables/app/build/android.keystore(كلمة السر داخل.vcfg/apk_keystore_pw— لا تُشارك) · إعادة البناء:scripts/make_apk.py. -
500 مقالًا + 100 إنجليزي + فيديوهات80 + ختمة جماعية مُتحقَّق منها (كمل#23 «كلهم»): (أ) المكتبة400→500:
posts/index_i.js(+58) +posts/index_j.js(+42) = 100 مواصفة جديدة (video15 · reciters16 · prayer14 · azkar13 · hifz11 · seasons10 · family10 · publishing11) → 500 فريدة، روابط ميتة0، contract0 ·build_posts.js→ 500 مقالًا + hub · (ب) الإنجليزية40→100:posts/en_c.js+en_d.js= 60 دليلًا جديدًا (slug==arTwin) → بناء 100 مقال EN + 100 زوج ar↔en hreflang ·{t}صفر · (ج) فيديوهات40→80:scripts/video_recipes_d.js(+40 وصفة) + ربطBATCH=d→ 80 MP4 (785MB) + README 80 صفًا (تشخيص مسار65:1 الممتد160ث استُبدل بمطلع التغابن47ث) · (د) المزايا (تحقّق لا بناء): auth Google+magic link موجودان ومربوطان (QRAuth+#/account+ login overlay)، الروابط السحرية حيّة إنتاجيًا، ختمة جماعية Supabase تعمل ببيانات حقيقية (khatma_plans/progress + RLS مُختبَرة200)، وGoogle provider بانتظار تفعيلهم في لوحة Supabase (الواجهة تُظهر تنبيهًا صريحًا عند التعطّل) · (هـ) تجهيز النشر:deliverables/youtube/(upload-pack CSV+JSON لـ80 + CHECKLIST) +deliverables/app/store/(PLAY-LISTING + 6 لقطات1080×1920) · أرقام: sitemap 597→757 · pages12 757 · llms 500/100/757 · backlinks §0 محدّث · W3C محليًا 0 أخطاء/160 · monitor 757/757 بحالة200 · IndexNow160@200 · محلي: run0/0 · correctness30 · blog12 · smoke32 · interact32 · api0 · إنتاج: run0/0 · pages12 30/30@757 · mcp28 · correctness30 · blog12 · smoke32 · interact32 · api0 · LH 89/98 (a11y94/100 · bp100 · seo100). -
10,000 مقال + 136 بوابة + IndexNow9,636 (كمل#24 «التسع آلاف»): (أ) التوليد: 8 ملفات
posts/gen_data_*.js(video185 · reciters178 · prayer154 · hifz162 · azkar170 · seasons132 · family170 · publishing221 = 1,362 موضوعًا في136 مجموعة) بفحصscripts/scan_content.jsv3 (CJK/سيليري/يوناني/لاتيني موسّع + نطاق مكمّل + فحص بعد كل كتابة أغلق عيوب «ƪ/ Frauen/过去» وملتصقات الأرقام20) +scripts/gen_engine.jsالمحرك المتدرّج: صيغ × مواضيع × صفات مؤهّلة (سياق12×جمهور5 · قائمة سماح خاصة بالنشر) مع بوابات تشابه: تفرّد slugs وعناوين وأوصاف عالميًّا · تنقية فتحات العميقة بتطابق الكلمات · منع صفات غير منطقية → 9,500 مقالة بالضبط (1,000 عميق + 8,500 منهجية) +500 قديمة = 10,000 · (ب) البناء:build_posts.jsمُرقّى (تحميل القديم+الجديد · قسم ثالث للعميق · بطاقة SVG مضمّنة بديل الهيرو بلا ملفات إضافية · CSS خارجي خفّض279→200MB · ح1 بلا لاحقة · فترينة المجموعة في breadcrumb+LD+روابط) → 10,000 صفحة + hub رئيسي (8×17 شرائح) +136 بوابة محور · vnu 0 أخطاء على عيّنات الأنواع الستة · (ج) الفهرسة:build_sitemap.js→ sitemap 757→10,393 بالضبط (kept257+articles10,000+hubs136 · EN101 محفوظة) · pages12 → سحب10,393 بحوض16 عيّنة + عدّاد10393 · llms.txt محدّث + llms-full.txt جديد (2.39MB · 10,136 بندًا وصفيًّا) · (د) النشر: حدّ CLI (100MB/15k ملف) يمنع الرفع المباشر → استُخدم ربط Git موجود (push → نشر تلقائي) → deploy quran-reels-npyd2cnjk جاهز · IndexNow 9,636 (9,500+136) @200 · (هـ) الصور هجين: SVG مضمّن للجميع + عاملgen_ai_images.js(pollinations · حدّ مجاني صورة/45ث → بوابة47ث · عميق أولًا · 500 مخطط) يعمل في الخلفية ويُعاد البناء بعد اكتماله · (و) روابط:docs/backlinks.md§16–18 (حزمة10k · حملة1,000 عميق بمصفوفة8 عناقيد · قياس وصيانة) + §0 محدّثة (10,000/10,393/136) · (ز) الأرقام: محلي run0/0 · correctness30 · blog12 · smoke32 · interact32 · api0 · إنتاج: run0/0 · pages12 30/30@10,393 · mcp28 · correctness30 · blog12 · smoke32 · interact32 · api0 · sitemap10,393 · pool16 كلها200+canonical. -
تتمة كمل#24 (2026-10-29 «الحاوية الجديدة + كاشف البطاقات»): (أ) الاستعادة: الحاوية أُعيد تجهيزها (.git → a54a4b9 · ~2,969 مجلد مقالة و-out/*.json ضاعت بحدّ لقطة10,000 ملف) → جلب من GitHub و«reset --hard fc69b086» أعاد 10,137 مجلد + 9 ملفات خرج + 13 صورة سليمة · سجلّ العامل صار في
~/ai_images.log(يدوم عبر الرسائل) · JRE21+vnu.jar نُقلا إلى/home/user/tools/· chromium deps ثُبّتت (sudo apt) · هوية git أُعيد ضبطها · (ب) كاشف بطاقات pollinations: حدّ «صورة/45ث» يُعيد بطاقة JPEG صفراء («Free limit reached») بحالة 400/402 — رُفضت 13 بطاقة تسلّلت كنجاح (فحص md5 مزدوج + حظر التكرارات + تصاعد نوم46→300ث + قراءة retry-after) · الصور الحقيقية14 (8 قديمة +5 أمس +1 بعدها) والباقي يُستكمل دفعةً عبر الرسائل · (ج) a11y: من90-93 إلى100: تسطير روابط.crumbو.foot-bottom(فحص link-in-text-block) → LH إنتاج: articles100/100/100/100 · عميق100/100/100/100 · بوابة97/100/100/100 · الرئيسية a11y100 (perf72-95 تذبذب قياس — المولّر98 كما كان) · (د) فحوص إضافية: vnu23 عيّنة=0 أخطاء (JRE21 دائم) · pages12 بعد الاستعادة30/30 · مراقبة10,393/10,393 سابقًا · IndexNow9,636@200.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。