# Combot Automation Compact v3: LLM निर्देश और प्रारूप संदर्भ

यह पूरी फ़ाइल अपने नियम के अनुरोध के साथ मॉडल को दें। इसमें ऑटोमेशन एडिटर द्वारा आयात किए जाने वाला प्रारूप बताया गया है। नियम की भाषा Compact v3 JSON है, Python, YAML, JavaScript, पुराना Triggers v2 या मनमाना “अगर → तब” छद्म-कोड नहीं।
इंटरफ़ेस के नाम अनुवादित होते हैं, लेकिन JSON के मान नहीं। उदाहरण के लिए, एडिटर में `Known Combot links` का नाम “Combot इनवाइट लिंक” और `Combot custom admins` का नाम “Combot एडमिन” है। JSON के मानों को इंटरफ़ेस के नामों से न बदलें।

दस्तावेज़ संशोधन: 9 सितंबर 2026। संदर्भ को ऑटोमेशन एडिटर और हैंडलर से मिलाकर जाँचा गया। पूरी की गई आयात और Telegram जाँचें अंत में अलग दी गई हैं: स्रोत कोड देखने से चलती सेवा का संस्करण सिद्ध नहीं होता।

## 1. मॉडल के लिए निर्देश

व्यक्ति के अनुरोध का अर्थ बदले बिना उसे ऑटोमेशन नियम में बदलें।

1. घटना, शर्तें, बहिष्करण, कार्रवाई, उसका प्राप्तकर्ता और जवाब का गंतव्य तय करें। समय-सारिणी के लिए समय क्षेत्र और कमांड के लिए उसका अकेले या जवाब में भेजा जाना तय करें। माँगे बिना मॉडरेशन, पुरस्कार, यादृच्छिकता या हटाना न जोड़ें।
2. उपयोगकर्ता ID, विषय, चैट पते, आमंत्रण, रैंक या चालू सुविधाओं का अनुमान न लगाएँ। विषय का नाम उसका ID नहीं है। ज़रूरी जानकारी गायब हो तो सवाल पूछें। जवाब की भाषा के बारे में धारणाएँ अलग सुझा सकते हैं, लेकिन अधूरे नियम को सटीक समाधान न बताएँ।
3. नए नियम हमेशा `en: false` के साथ बनाएँ। यह सुरक्षित तैयारी का तरीका है, ऑटोमेशन की सीमा नहीं। `en` छोड़ने का मतलब चालू है।
4. केवल दस्तावेज़ में बताए फ़ील्ड इस्तेमाल करें। “निर्यात इस्तेमाल करें” कहे गए नेस्टेड फ़िल्टर के लिए मिलती-जुलती सेटिंग का असली निर्यात माँगें; संरचना न गढ़ें। परिदृश्य असमर्थित हो तो शर्तें हटाकर छिपाने के बजाय सीमा समझाएँ।
5. जवाब का क्रम रखें: छोटा विवरण → एक आयात योग्य JSON ब्लॉक → हाथ से की जाने वाली सेटिंग और जाँच। JSON में टिप्पणियाँ, अधूरापन दर्शाने वाले बिंदु, प्लेसहोल्डर ID, फ़ील्ड के बाहर समझाने वाली पंक्तियाँ, आख़िरी अतिरिक्त कॉमा या `when`, `if`, `then`, `conditions`, `actions`, `event` जैसी गढ़ी कुंजियाँ न हों।
6. परिणाम देने से पहले मेल खाने वाले और न खाने वाले एक-एक मामले पर विचार करें। जवाबी कमांड में कमांड भेजने वाले को मूल संदेश के लेखक से अलग जाँचें। जब तक सचमुच न हुआ हो, Combot में नियम जाँचने का दावा न करें।

साथ दिया JSON Schema नए बंद नियम बनाने में सहायक है। इसके आवश्यक फ़ील्ड जानबूझकर आयात से सख़्त हैं, और यह हर पुराना निर्यात स्वीकार नहीं करता। जटिल नेस्टेड फ़िल्टर केवल ऑब्जेक्ट होने के रूप में जाँचे जाते हैं। स्कीमा पास होने से शर्तों की संगतता, संसाधनों की उपलब्धता, प्लान का पालन या Telegram कार्रवाई की सफलता सिद्ध नहीं होती।

## 2. आयात में क्या पेस्ट करें

मूल संरचना एक ऑब्जेक्ट है जिसमें संख्यात्मक `v: 3` और नियमों का ऐरे `t` है। आम तौर पर एक नियम दें। अकेला ऐरे या `{"triggers": [...]}` न दें: ये आयात संवाद का प्रारूप नहीं हैं।

एक पूरा न्यूनतम उदाहरण:

```json
{
  "v": 3,
  "t": [
    {
      "n": "कोर्स की जानकारी वाली कमांड",
      "en": false,
      "k": "c",
      "ctm": "p",
      "cm": ["/course_info"],
      "a": {
        "m": "a",
        "r": [
          {
            "i": "course_reply",
            "t": "s",
            "v": {
              "tx": "कक्षा की रिकॉर्डिंग चैट के पिन किए गए संदेश में हैं।",
              "rp": "r"
            }
          }
        ]
      }
    }
  ]
}
```

`dv: "t3.compact.3"` वैकल्पिक स्कीमा चिह्न है। नए परिणाम में केवल `v` और `t` चाहिए। मौजूदा आयात `bundle` रैपर पहचानता है, लेकिन नया बनाते समय उसकी ज़रूरत नहीं।

आयात बंडल में सर्वर का `id`, `revision`, `chat_id`, गणना किया `ck` या `$schema` न जोड़ें। सर्वर नया नियम ID देता है। कार्रवाई का `i` अलग है: यह `course_reply` जैसा स्थानीय पंक्ति पहचानकर्ता है। यह उस नियम की कार्रवाइयों में अनूठा हो और इसमें 1–80 लैटिन अक्षर, अंक, `_` या `-` हों।

एक ही छोटी कुंजी का अलग स्तर पर अलग अर्थ है: मूल `t` नियम सूची है, `a.r[].t` कार्रवाई प्रकार है और `a.r[].v` कार्रवाई के पैरामीटर रखता है। स्तरों को न मिलाएँ।

## 3. नियम के मुख्य फ़ील्ड

| फ़ील्ड | अर्थ |
| --- | --- |
| `n` | गैर-खाली नाम, एडिटर में अधिकतम 80 अक्षर |
| `d` | वैकल्पिक विवरण, एडिटर में अधिकतम 280 अक्षर |
| `en` | नए बंद नियम के लिए `false` |
| `e` | घटना कोड का ऐरे, कमांड होने पर नहीं |
| `k`, `cm`, `ctm` | कमांड मोड; नीचे देखें |
| `a` | कार्रवाई योजना: `{"m":"a","r":[...]}` या `{"m":"r","r":[...]}` |
| `s`, `ti` | घटना कहाँ जाँचें: स्रोत चैट, सामान्य विषय या चुने विषय |
| `at` | मेल कब अनुमत है; समय फ़िल्टर, टाइमर नहीं |
| `wh`, `wx`, `wm` | घटना शुरू करने वाला: शामिल समूह, बहिष्करण और समूह जोड़ने का तरीका |
| `cgr` | संख्यात्मक शर्तें: चैट में समय, संदेश, चेतावनियाँ, XP, प्रतिष्ठा |
| `ua`, `ux`, `uar`, `ul`, `ulx` | सदस्य के गुण, फ़ील्ड मान और भाषा |
| `twh`, `twx`, `tcg`, `tua`, `tux`, `tur`, `tlg`, `tlx` | घटना के दूसरे उपयोगकर्ता की जाँच, जैसे जवाब दिए संदेश का लेखक या शामिल होने वाला सदस्य |
| `tv`, `tr`, `ty`, `cs`, `lmin`, `lmax` | पाठ की शर्तें |
| `mti`, `mtx`, `me`, `mex` | संदेश प्रकार और पाठ के तत्व |
| `il`, `ilc`, `ilx` | शामिल होने के अनुरोधों के आमंत्रण लिंक |
| `rct`, `rnt`, `rnx`, `rcy`, `rcx`, `rcn`, `rcm` | प्रतिक्रिया की शर्तें |
| `chl` | खास कार्य-सूची का सीधा लिंक, उसके काम बदलने की घटनाओं के लिए |
| `cl` | पिछले जवाब की डिफ़ॉल्ट सफ़ाई: `n` या `ps` |
| `ov` | OR विकल्प के शर्त-सेट; जटिल मामलों में निर्यात इस्तेमाल करें |

हर फ़ील्ड न भरें। केवल माँगी गई और चुनी घटना से संबंधित शर्तें जोड़ें। उदाहरण के लिए, शामिल होने में संदेश के कीवर्ड नहीं चाहिए, और कुल प्रतिक्रिया काउंटर में अपने-आप पुरस्कार देने के लिए कोई खास उपयोगकर्ता नहीं होता।

## 4. घटनाएँ

| `e` | कब चलता है |
| --- | --- |
| `["m"]` | नया चैट संदेश |
| `["em"]` | संदेश का संपादन |
| `["m","em"]` | नया संदेश या संपादन |
| `["lc"]`, `["el"]`, `["lc","el"]` | जुड़े चैनल की टिप्पणी, संपादन या दोनों |
| `["cp"]`, `["ec"]`, `["cp","ec"]` | जुड़े चैनल के संदर्भ की पोस्ट, संपादन या दोनों |
| `["jr"]` | शामिल होने का अनुरोध |
| `["nm"]` | सदस्य शामिल हुआ |
| `["ml"]` | सदस्य चला गया या हटाया गया |
| `["cb"]`, `["rb"]` | बूस्ट जोड़ा या हटाया गया |
| `["mr"]` | खास उपयोगकर्ता की प्रतिक्रियाएँ बदलीं |
| `["rc"]` | जुड़े चैनल के संदर्भ में कुल अनाम प्रतिक्रिया काउंटर अपडेट हुए |
| `["ck"]` | नई कार्य-सूची |
| `["cd"]` | कार्य-सूची के काम पूरे चिह्नित हुए |
| `["ca"]` | कार्य-सूची में काम जोड़े गए |

`["m","nm"]` जैसी असंबंधित घटनाएँ न जोड़ें; अलग नियम इस्तेमाल करें। ऊपर दिए नया-प्लस-संपादन जोड़े अनुमत हैं। छिपा अतिथि-बॉट मोड `gm` न बनाएँ।

संपादन अलग ट्रिगर है। इसे XP, प्रतिष्ठा, चेतावनी या किसी ऐसी कार्रवाई में अपने-आप न जोड़ें जिसे व्यक्ति केवल एक बार चाहता है।

## 5. साधारण कमांड और जवाबी कमांड

साधारण कमांड, जैसे जानकारी का जवाब:

```json
{"k":"c","ctm":"p","cm":["/course_info"]}
```

मॉडरेटर द्वारा सदस्य के संदेश के जवाब में भेजी जाने वाली कमांड:

```json
{"k":"c","cm":["/team_pause"]}
```

ये नियम फ़ील्ड के अंश हैं, अपने-आप आयात किए जा सकने वाले बंडल नहीं।

कमांड में `e` न जोड़ें। `cm` में छोटे लैटिन अक्षरों, अंकों और `_` वाली कस्टम स्लैश कमांड की गैर-खाली सूची दें। खुद बनाई कमांड को Combot में अंतर्निहित न बताएँ। जवाबी कमांड में `ctm` छोड़ें; वहाँ `reply_target`, `r` या किसी व्यक्ति का नाम न लिखें।

साधारण कमांड में उपयोगकर्ता कार्रवाइयों का प्राप्तकर्ता नहीं होता। संदेश भेजना इस्तेमाल करें और स्पष्ट रूप से माँगे जाने पर ही कमांड संदेश हटाएँ। म्यूट, चेतावनी, XP और व्यक्ति पर असर डालने वाली दूसरी कार्रवाइयों के लिए जवाबी कमांड चाहिए।

जवाबी कमांड में `wh` कमांड भेजने वाले को जाँचता है, जबकि `twh` और अन्य `t...` फ़ील्ड जवाब दिए गए संदेश के लेखक को जाँचते हैं। दूसरे पर कार्रवाई के लिए `v.tg: "t"` इस्तेमाल करें। अन्ना इल्या को जवाब में `/team_pause` भेजें तो इल्या पर पाबंदी लगाएँ, अन्ना पर नहीं।

केवल `twh` जाँचने से कमांड कौन चला सकता है, यह सीमित नहीं होता। मॉडरेटर कमांड में अनुरोध के अनुसार `wh` होना चाहिए। कार्रवाई `d` कमांड खुद हटाती है, इल्या का संदेश नहीं।

कमांड मोड को `tv` में `/team_pause` की पाठ खोज से न बदलें। सत्यापित निर्यात के बिना एडिटर में छिपी कमांड शर्तें, जैसे समय-सारिणी, न जोड़ें।

## 6. सदस्य और बहिष्करण

`wh` और `wx` में ये सटीक स्ट्रिंग इस्तेमाल होती हैं, अनूदित लेबल नहीं:

`New members`, `Regular members`, `Ex-members`, `Whitelisted users`, `Admins`, `Telegram admins`, `Combot custom admins`, `Owner`.

खाली शामिल सूची समूह की कोई पाबंदी नहीं लगाती। आम तौर पर `Anyone` छोड़ सकते हैं। `wm: "o"` में एक समूह का मेल चाहिए; `wm: "a"` में सभी चुने समूह चाहिए। `wx` के बहिष्करण सकारात्मक समूहों के मेल के बावजूद मेल रोकते हैं।

उदाहरण: एडमिन को छोड़कर कोई भी मेल खाता संदेश भेज सकता है:

```json
{"wx":["Telegram admins","Combot custom admins","Owner"]}
```

उदाहरण: केवल Telegram एडमिन या मालिक कमांड चला सकता है:

```json
{"wh":["Telegram admins","Owner"],"wm":"o"}
```

भूमिकाएँ न मिलाएँ। `Combot custom admins` Combot की अनुमतियाँ बताता है, Telegram एडमिन नहीं। हैंडलर में `Admins`, `Telegram admins` की तरह, मालिक समेत Telegram एडमिन जाँचता है; वह Combot एडमिन नहीं जोड़ता। दोनों समूहों को अनुमति देने के लिए `Telegram admins` और `Combot custom admins` को `wm: "o"` के साथ लिखें। `Regular members` का मतलब ज्ञात मौजूदा सदस्य हैं, लंबे समय या बहुत संदेश वाले लोग नहीं। `New members` चैट की मौजूदा नए सदस्य सेटिंग और छूट इस्तेमाल करता है; यह निश्चित “पहले सात दिन” नहीं। सटीक अवधि के लिए `cgr` इस्तेमाल करें।

`Core members` या `Non-members` न बनाएँ: नए नियमों के लिए उनकी विश्वसनीय परिभाषाएँ नहीं दी गई हैं। सदस्य की जानकारी न होने से यह साबित नहीं होता कि वह कभी चैट में नहीं रहा।

लक्ष्य के लिए `twh`, `twx` और `twm` इस्तेमाल करें। `Target self`, `Target bots`, `Target Combot` और `Target linked channel post` जैसे अतिरिक्त संदर्भ मान उपयुक्त निर्यात से लें; भेजने वाले के फ़िल्टर में उनका अनुमान न लगाएँ।

`nm` और `ml` में `wh`/`wx` शामिल करने या हटाने वाले को बताते हैं; `twh`/`twx` उस सदस्य को जिसकी स्थिति बदली। अन्ना इल्या को जोड़ें तो नए सदस्य की शर्तें `t...` से इल्या पर लगती हैं, अन्ना पर नहीं। कार्रवाई में `v.tg` चुनने से ये शर्तें अदलती-बदलती नहीं।

`am: "o"` Telegram एडमिन जाँचता है; `am: "n"` उसे बाहर रखता है। यह `wh`/`wx` में भूमिकाएँ जोड़ने का विकल्प नहीं। नए नियमों में स्पष्ट समूहों को प्राथमिकता दें।

## 7. चैट में समय, गतिविधि, XP और प्रतिष्ठा

संख्यात्मक शर्तें `cgr` में और लक्ष्य के लिए `tcg` में जाती हैं। इस अंश का मतलब है कि सदस्य चैट में अधिकतम एक घंटे से है और उसके अधिकतम पाँच संदेश दर्ज हैं:

```json
{
  "cgr": {
    "logic": "All",
    "statistics": {
      "rules": [
        {"metric":"joinedDays","unit":"h","op":"lte","value":"1"},
        {"metric":"messageCount","unit":"c","join":"and","op":"lte","value":"5"}
      ]
    }
  }
}
```

ऑपरेटर: `eq` का मतलब बराबर, `gte` कम-से-कम और `lte` अधिकतम है। ऑपरेटर हमेशा स्पष्ट बताएँ। “पाँच से कम” को `lte: 5` न बनाएँ: पूर्णांक काउंटर में यह `lte: 4` है। व्यक्ति का मतलब “कम-से-कम” हो तो सटीक अवधि की `eq` जाँच न लगाएँ: समय बीतता रहता है।

आँकड़ों के माप:

- `joinedDays`: इस चैट में शामिल होने के बाद का समय, खाते या व्यक्ति की उम्र नहीं। इकाइयाँ: `s`, `m`, `h`, `d`, `w`, `mo`। दिन 24 घंटे, सप्ताह 7 दिन और यहाँ महीना 30 दिन है। नए नियमों में इकाई हमेशा होनी चाहिए।
- `messageCount`: इस चैट में दर्ज संदेश; इकाई `c`।
- `warns`: सक्रिय चेतावनियाँ; इकाई `c`।

“एक दर्ज संदेश” है `{"metric":"messageCount","unit":"c","op":"eq","value":"1"}`। यह ठीक एक बार चलने की गारंटी नहीं देता: काउंटर अपडेट और घटना संसाधन अलग हो सकते हैं।

दूसरे अनुभाग:

```json
{
  "cgr": {
    "logic": "All",
    "xp": {
      "xp": {"rules":[{"op":"gte","value":"100"}]}
    },
    "reputation": {
      "reputation": {"rules":[{"op":"gte","value":"5"}]}
    }
  }
}
```

रैंक की सीमाएँ `cgr.xp.rank.rules` इस्तेमाल करती हैं, लेकिन मान चैट की असली रैंक से आने चाहिए, गढ़े नामों से नहीं। पंक्तियाँ `join: "and" | "or"` और `mode: "include" | "exclude"` समर्थित करती हैं। सरल शर्तों में स्पष्ट AND और जटिल AND/OR शृंखला में असली निर्यात इस्तेमाल करें। `cgr.logic: "All" | "Any"` अनुभाग जोड़ता है। बाहर रखने वाली संख्यात्मक पंक्ति निषेध है: उसी शर्त-विकल्प के दूसरे अनुभाग का सकारात्मक मेल उसे पार नहीं कर सकता।

पहले संदेश या पहली दूसरी गतिविधि के बाद के समय की जाँच न बनाएँ: `firstMessageAge` और `firstOtherActivityAge` उपलब्ध नहीं हैं। कुल `messageCount` से “पिछले सप्ताह की गतिविधि” का वादा न करें। अनुपलब्ध डेटा अपने-आप शून्य नहीं बनना चाहिए।

## 8. उपयोगकर्ता के गुण और फ़ील्ड

`ua` गुण माँगता है; `ux` उन्हें बाहर रखता है। सटीक मान: `Any username`, `Telegram Premium`, `Bot account`, `Any last name`। उदाहरण के लिए, `{"ux":["Bot account"]}` बॉट बाहर रखता है।

`ul` और `ulx` Telegram से मिले उपयोगकर्ता भाषा कोड शामिल और बाहर करते हैं। यह संदेश की भाषा या राष्ट्रीयता नहीं है। सदस्य के नाम से भाषा न निकालें।

खास मानों की शर्तें `uar` में और लक्ष्य के लिए `tur` में जाती हैं। समर्थित फ़ील्ड: `user_id`, `name`, `username`, `last_name`, `bio`। परिचय शामिल होने के अनुरोध के संदर्भ में मिलता है; यह हर सदस्य का लगातार उपलब्ध प्रोफ़ाइल फ़ील्ड नहीं।

उपयोगकर्ता नाम की शर्त की संरचना ऐसी है:

```json
{
  "uar": {
    "username": {
      "rules": [
        {"mode":"include","matchType":"Exact match","values":["example_member"]}
      ]
    }
  }
}
```

यह संरचना का उदाहरण है, वास्तविक सदस्य नहीं। असली अनुरोध में व्यक्ति का दिया उपयोगकर्ता नाम ही बिना `@` के लें; न मिले तो पूछें। `values` में ID स्ट्रिंग के रूप में दें। पहुँच नियंत्रण में स्पष्ट दिया ID प्राथमिक रखें: नाम और उपयोगकर्ता नाम बदल सकते हैं।

यहाँ `matchType` में पूरी स्ट्रिंग `Exact match`, `Partial match` और `Regular expression` लगती हैं, संदेश-पाठ के कोड `f`, `p` और `r` नहीं। एक पंक्ति के मान विकल्प हैं; पंक्तियों में `join` होता है। इन फ़ील्ड के लिए `Starts with` या `Ends with` न गढ़ें।

`ual` और `tul`: `a` का मतलब सभी नियम; `o` का मतलब कोई भी समूह। इस निर्माण प्रोफ़ाइल में `uag` और `tug` समूह संरचनाओं के लिए निर्यात इस्तेमाल करें।

## 9. पाठ और संदेश का प्रकार

वाक्यांश खोजने के लिए स्ट्रिंग का ऐरे `tv` इस्तेमाल करें। एक स्ट्रिंग का मेल काफ़ी है। उदाहरण:

```json
{"tv":["रिकॉर्डिंग कहाँ है","कक्षा की रिकॉर्डिंग"],"tr":"p","ty":"p","cs":false}
```

`tr`: `p` का मतलब वाक्यांश, `w` शब्द और `r` रेगुलर एक्सप्रेशन है। शब्द मोड में सूची के हर शब्द का होना ज़रूरी नहीं। सामान्य आंशिक मेल भी शब्द की सीमा सुनिश्चित नहीं करता: अंग्रेज़ी “cat” का मेल “catalog” के भीतर हो सकता है।

`ty`: `f` पूरे पाठ, `p` पाठ के हिस्से, `s` शुरुआत, `e` अंत और `r` रेगुलर एक्सप्रेशन के लिए है। `cs: true` बड़े-छोटे अक्षरों में अंतर करता है; `false` या इसे छोड़ना अंतर बंद करता है। सरल सामान्य-सवाल नियम में केवल `tv` चाहिए: डिफ़ॉल्ट खोज में वाक्यांश मिलता है और बड़े-छोटे अक्षरों में अंतर नहीं होता।

`lmin` और `lmax` पाठ की लंबाई सीमित करते हैं। खाली या शून्य सीमा उस तरफ़ कोई रोक नहीं लगाती। पाठ की लंबाई और शब्दों की संख्या को न मिलाएँ।

सरल मेल काफ़ी न हो तभी रेगुलर एक्सप्रेशन इस्तेमाल करें। बैकस्लैश एस्केप करके पैटर्न JSON स्ट्रिंग के रूप में दें; JavaScript के `/.../i` सीमांकक अपने-आप न जोड़ें। पूरे शब्द की ज़रूरत या जटिल निषेध में मेल खाने और न खाने के उदाहरण समझाएँ।

`mti` संदेश प्रकार शामिल करता है; `mtx` बाहर रखता है। मुख्य मान: `photo`, `video`, `animation`, `audio`, `document`, `sticker`, `voice`, `video_note`, `contact`, `location`, `poll`, `dice`, `game`, `paid_media`। उदाहरण के लिए, `{"mti":["voice"]}` का मतलब वॉइस संदेश; `{"mti":["photo","video"]}` का मतलब फ़ोटो या वीडियो है, दोनों अटैचमेंट एक साथ नहीं।

एडिटर में `text` और `caption` भी हैं। ये पाठ-सामग्री की सेटिंग में भाग लेते हैं; `caption` को स्वतंत्र Telegram अटैचमेंट प्रकार न मानें। “केवल फ़ोटो कैप्शन” या पाठ और कैप्शन में सख़्त अंतर के लिए उस सेटिंग का निर्यात लें। कोडेक अकेले `text` समेत डिफ़ॉल्ट मान छोड़ सकता है; केवल इनपुट JSON में वह मान होने से आयात के बाद पाबंदी बचने का प्रमाण नहीं मिलता।

`me` और `mex` पाठ के तत्व माँगते या बाहर रखते हैं। मान: `bot_command`, `url`, `text_link`, `mention`, `hashtag`, `cashtag`, `email`, `phone_number`, `emoji`, `custom_emoji`, `bold`, `italic`, `underline`, `strikethrough`, `code`, `pre`, `spoiler`, `blockquote`, `expandable_blockquote`। `mel: "a"` में सभी शामिल तत्व चाहिए; `"o"` में कम-से-कम एक। किसी भी दिखाई देने या छिपे लिंक के लिए: `{"me":["url","text_link"],"mel":"o"}`।

`mef` खास लिंक, कमांड और दूसरे तत्व सीमित करता है; `mmo` मीडिया गुण बताता है; `mtg` और `mog` शर्त समूह हैं; `csx`/`cse` अक्षर समूह हैं। ये जटिल फ़ील्ड असली निर्यात से बनाएँ। `max_file_size`, `allowed_domains`, `mime`, `language` या `contains_all` जैसे विकल्प न गढ़ें।

## 10. समय और चैट विषय

`s`: `sc` का मतलब स्रोत चैट, `gn` सामान्य विषय और `st` चुने विषय हैं। आख़िरी विकल्प में `ti` में धनात्मक विषय ID होते हैं।

आयात चुने स्रोत विषयों को पूरी स्रोत चैट पर और चुने भेजने वाले विषयों को मौजूदा विषय पर रीसेट करता है। सही ID होने पर भी ऐसा होता है और OR विकल्पों पर भी लागू है। परिदृश्य किसी विषय पर निर्भर हो तो विवरण और अनिवार्य हाथ से की जाने वाली सेटिंग में उसका नाम दें। विषय फिर चुने जाने तक परिणाम को चालू करने के लिए तैयार न कहें।

`at` घटना का अनुमत समय सेट करता है; अलग से भेजने का समय तय नहीं करता। “शाम को सवाल का जवाब दें” संभव है। “बिना आने वाली घटना के रोज़ 19:00 पर पोस्ट करें” के लिए शेड्यूलर चाहिए, यह ट्रिगर नहीं।

बॉट घटना संसाधित करते समय मौजूदा समय जाँचता है, मूल संदेश का टाइमस्टैम्प नहीं। सुबह का संपादन सुबह के घंटे जाँचता है, भले मूल संदेश रात में लिखा गया हो।

साप्ताहिक अवधि, सोमवार–शुक्रवार, 09:00–18:00 UTC:

```json
{"at":{"m":"w","wd":[0,1,2,3,4],"tw":[{"startMinute":540,"endMinute":1080}]}}
```

`wd`: 0 सोमवार और 6 रविवार है। समय UTC आधी रात से बीते पूरे मिनट हैं, 0 से 1439 तक। साप्ताहिक अवधि में आख़िरी मिनट शामिल है। रात पार करने वाली अवधि की शुरुआत अंत से बड़ी हो सकती है; सप्ताह का दिन मौजूदा UTC तारीख से लिया जाता है, “शिफ़्ट” शुरू होने वाले दिन से नहीं। ज़रूरी दिनों का अनुमान लगाने के बजाय आधी रात के दोनों तरफ़ जाँचें।

मॉस्को 09:00 और 18:00, UTC में 06:00 और 15:00 होते हैं: मिनट 360 और 900। ठीक 18:00 पर मेल रोकने के लिए आख़िरी अनुमत मिनट 14:59 UTC, यानी `endMinute: 899` है। दूसरे समय क्षेत्रों में अंतर और संभावित डेलाइट सेविंग बदलाव गिनें। बिना रूपांतरण के स्थानीय समय को UTC न भरें।

तारीखों का अंतराल:

```json
{"at":{"m":"d","s":"2026-10-01T00:00:00Z","e":"2026-10-07T23:59:59Z"}}
```

ये संरचना दिखाते हैं, व्यक्ति के अभियान की तारीखें नहीं। शुरुआत अंत से पहले होनी चाहिए। इस मोड में दोनों सीमाएँ शामिल हैं। `Z` का मतलब UTC है।

बंद रहने का समय (Closing hours) चैट की मौजूदा सेटिंग इस्तेमाल करता है: `{"at":{"m":"c"}}`; उन घंटों के बाहर: `{"at":{"m":"c","i":true}}`। इस मोड में शुरुआत शामिल है और अंत नहीं। ट्रिगर चैट के बंद रहने की समय-सारिणी सेट नहीं करता। वैध समय-सारिणी के बिना सीधी या उलटी शर्त के काम करने का वादा न करें।

## 11. आमंत्रण लिंक, प्रतिक्रियाएँ और कार्य-सूचियाँ

### आमंत्रण

शामिल होने के अनुरोध `["jr"]` के लिए `il` में `Known Combot links`, `External invite link` या `Any source` आता है। पाबंदी नहीं चाहिए तो छोड़ दें।

`Known Combot links` का मतलब इस चैट के Combot कैटलॉग के लिंक हैं। `ilc` और `ilx` उस कैटलॉग में शामिल और बाहर रखे लिंक कोड की सूची हैं; सही कोड निर्यात या दिए डेटा से लें। खाली सूची में भी पूरी श्रेणी की जाँच बनी रहती है।

`External invite link` का मतलब पहचाना गया ऐसा लिंक जो पूरे Combot कैटलॉग के बाहर है, “मेरे चुने दो लिंक छोड़कर सब” नहीं। अज्ञात स्रोत या अनुपलब्ध कैटलॉग को बाहरी लिंक नहीं मान सकते। यह शर्त हर बिना ज्ञात आमंत्रण वाले अनुरोध को पकड़ेगी, ऐसा वादा न करें।

### उपयोगकर्ता की प्रतिक्रियाएँ

घटना `["mr"]`। `rct` में `added` और/या `removed` होता है। `rnt` और `rnx` उपयोगकर्ता की नई स्थिति की प्रतिक्रियाएँ शामिल और बाहर करते हैं। दोनों में से कोई भरा हो तो `rct` में `added` होना चाहिए।

हैंडलर `mr` केवल तब चलाता है जब Telegram `user` देता है। चैनल या अनाम एडमिन के रूप में `actor_chat` के साथ भेजी प्रतिक्रिया यह घटना नहीं चलाती। यह कुल प्रतिक्रिया संख्या `rc` से अलग है।

```json
{"e":["mr"],"rct":["added"],"rnt":["👍"]}
```

प्रतिक्रिया के मान सामान्य इमोजी, कस्टम इमोजी ID की स्ट्रिंग या `paid` हैं। `rnt` पूरी नई स्थिति जाँचता है, केवल अंतर नहीं। 👍 पहले से हो और उपयोगकर्ता दूसरी प्रतिक्रिया जोड़े तो शर्त फिर मेल खा सकती है। यहाँ कार्रवाई प्राप्तकर्ता `u` प्रतिक्रिया बदलने वाला व्यक्ति है; यह अपने-आप संदेश लेखक को पुरस्कार नहीं देता।

### कुल प्रतिक्रिया संख्या

घटना `["rc"]`। `rcy`/`rcx` गिने जाने वाले प्रतिक्रिया प्रकार चुनते हैं। `rcn`/`rcm` गैर-ऋणात्मक पूर्णांकों में निचली और ऊपरी संख्या सीमा सेट करते हैं। शून्य या छोड़ने का मतलब उस तरफ़ सीमा नहीं।

```json
{"e":["rc"],"rcy":["👍"],"rcn":10}
```

यह अपडेट पर मौजूदा मान जाँचता है, “पहली बार दस पहुँचा” नहीं। अगला मेल खाता अपडेट कार्रवाई फिर चला सकता है। कुल अनाम काउंटर में कोई खास प्रतिक्रिया देने वाला उपयोगकर्ता नहीं होता।

### कार्य-सूचियाँ

`["cd"]` और `["ca"]` के लिए `chl` नियम को एक कार्य-सूची तक सीमित करता है। व्यक्ति को खास सूची चाहिए तो उसके संदेश का सीधा लिंक माँगें। चैट या विषय की सभी मेल खाती कार्य-सूचियाँ चाहिए हों तो `chl` न जोड़ें।

सीधे Telegram लिंक, विषय संख्या वाले लिंक समेत, समर्थित हैं; `?comment=` वाले लिंक नहीं। पता न गढ़ें। सार्वजनिक लिंक के लिए घटना हैंडलर को चैट उपयोगकर्ता नाम पता होना चाहिए; ऊपर से वैध दिखता URL अकेले मेल सिद्ध नहीं करता।

## 12. कार्रवाइयाँ

`a.m: "a"` हर पंक्ति क्रम से चलाता है। `a.m: "r"` सभी `fr: 1` वाली पंक्तियाँ और, अगर बिना चिह्न वाली पंक्तियाँ हों, तो उनमें से ठीक एक यादृच्छिक पंक्ति चलाता है। चुनी पंक्तियों का मूल क्रम रहता है। यादृच्छिकता न माँगी हो तो मोड `a` इस्तेमाल करें; यादृच्छिक मोड के बाहर `fr` न जोड़ें।

| कोड `a.r[].t` | कार्रवाई | पैरामीटर `v` |
| --- | --- | --- |
| `s` | संदेश भेजें | `tx` और स्वरूप; नीचे देखें |
| `d` | नियम चलाने वाला संदेश हटाएँ | कोई पैरामीटर नहीं |
| `w` | चेतावनियाँ जोड़ें | `tg`, धनात्मक `c`, आम तौर पर 1 |
| `rw` | चेतावनियाँ हटाएँ | `tg`, धनात्मक `c`, आम तौर पर 1 |
| `m` | संदेश भेजने पर पाबंदी | `tg`, अवधि `du` सेकंड में |
| `b` | बैन | `tg`, अवधि `du` सेकंड में |
| `k` | दोबारा जुड़ने की अनुमति रखते हुए चैट से हटाएँ | `tg` |
| `um` | संदेश भेजने की पाबंदी हटाएँ | `tg` |
| `ub` | बैन हटाएँ | `tg` |
| `du` | बॉट को उपलब्ध सेव उपयोगकर्ता संदेश हटाएँ | `tg` |
| `x` | XP बदलें | `tg`, −99999 से 99999 तक का शून्येतर पूर्णांक `v` |
| `r` | प्रतिष्ठा बदलें | `tg`, −999 से 999 तक का शून्येतर पूर्णांक `v` |
| `ja` | शामिल होने का अनुरोध मंज़ूर करें | केवल घटना `jr`, कोई पैरामीटर नहीं |
| `jd` | शामिल होने का अनुरोध अस्वीकार करें | केवल घटना `jr`, कोई पैरामीटर नहीं |

कार्रवाई कोड `du` और अवधि फ़ील्ड `v.du` को न मिलाएँ। अवधि सेकंड में है, मिनट में नहीं: एक घंटा 3600 है। म्यूट या बैन में शून्य का मतलब कोई तय अंत नहीं; अज्ञात अवधि की जगह इसे कभी न रखें। माँगे जाने पर कारण अलग संदेश में लिखा जा सकता है; बिना दस्तावेज़ वाले फ़ील्ड से मनचाहा दंड-कारण देने का वादा न करें।

उपयोगकर्ता कार्रवाई का प्राप्तकर्ता `v.tg`:

- `u`: वह प्रतिभागी जिसने घटना पैदा की।
- `t`: संदर्भ से तय लक्ष्य, जैसे जवाब दिए संदेश का लेखक। यह सीधा ID नहीं।
- `l`: शामिल होने के अनुरोध के संदर्भ में Combot कैटलॉग के आमंत्रण लिंक का निर्माता।
- `b`: संबंधित संदर्भ के दोनों उपलब्ध प्रतिभागी। “चैट में सभी” नहीं।

प्राप्तकर्ता हमेशा बताएँ। साधारण कमांड उपयोगकर्ता कार्रवाइयाँ समर्थित नहीं करतीं। जवाबी कमांड में भेजने वाला, लक्ष्य और दोनों समर्थित हैं। शामिल होने के अनुरोध में आवेदक (`u`) और ज्ञात लिंक निर्माता (`l`), दोनों चाहिए तो अलग कार्रवाइयाँ इस्तेमाल करें: `b` का मतलब आवेदक और लिंक निर्माता नहीं। एडिटर लिंक निर्माता का विकल्प शामिल होने के अनुरोध में देता है; सदस्य के जुड़ने की चरणबद्ध प्रक्रिया में वही चुनाव न दें। अन्य घटनाओं में केवल उस घटना के उपलब्ध प्राप्तकर्ता लें।

अज्ञात लक्ष्य से कार्रवाई कमांड भेजने वाले की सज़ा नहीं बननी चाहिए। दूसरे व्यक्ति पर अपने-आप जाने का वादा न करें। कार्रवाई `du` सदस्य का पूरा इतिहास हटाने की गारंटी नहीं देती: बॉट उपलब्ध संदेशों और Telegram की क्षमताओं से सीमित है।

परिदृश्य चेतावनियों, स्तरों या प्रतिष्ठा पर निर्भर हो तो वे चालू होने चाहिए, और मॉडरेशन में बॉट को सही अनुमतियाँ चाहिए। म्यूट हटाना, बैन हटाना और शामिल होने का अनुरोध मंज़ूर करना अलग कार्रवाइयाँ हैं।

शामिल होने के अनुरोध में संदेश भेजना, उपलब्ध उपयोगकर्ताओं पर कार्रवाई और `ja`/`jd` अनुमत हैं; संदेश हटाना `d` उपयुक्त नहीं। बिना संदेश वाली घटना में हटाना या न मौजूद संदेश का जवाब न जोड़ें।

## 13. जवाब का पाठ और गंतव्य

कार्रवाई `s` के पैरामीटर:

| फ़ील्ड | अर्थ |
| --- | --- |
| `tx` | अधिकतम 4096 अक्षरों का गैर-खाली पाठ; समर्थित Telegram HTML अनुमत है |
| `d` | `sc`: स्रोत चैट; `lg`: कॉन्फ़िगर किया लॉग चैनल; डिफ़ॉल्ट `sc` |
| `tp` | `ct`: मौजूदा विषय; `gn`: सामान्य विषय; `st`: चुने विषय; डिफ़ॉल्ट `ct` |
| `to` | चुने विषयों के धनात्मक ID; आयात में रीसेट होते हैं |
| `rp` | `r`: ट्रिगर करने वाले संदेश का जवाब; छोड़ने पर अलग संदेश |
| `cl` | `n`: पिछला जवाब रखें; `ps`: इस पंक्ति का पिछला जवाब हटाएँ |
| `bt` | URL बटन की पंक्तियाँ: `text` और `url` वाले ऑब्जेक्ट के ऐरे का ऐरे |
| `ph` | लिंक पूर्वावलोकन के लिए चित्र URL का ऐरे |
| `pa` | `true`: पूर्वावलोकन पाठ के ऊपर रखें |

`rp: "r"` स्रोत चैट और मौजूदा विषय के लिए बना रहता है। लॉग या दूसरे विषय में वही जवाब-संबंध बने रहने का वादा न करें। `d` में मनमानी बाहरी चैट, चैनल या निजी संदेश न रखें।

पंक्ति-स्तर का `cl` न हो तो नियम की सेटिंग ली जाती है। नियम-स्तर का `cl: "ps"` पिछला जवाब हटाना चालू करता है; स्पष्ट पंक्ति-स्तर का `cl: "n"` उसे बदल देता है। सफ़ाई खास नियम, कार्रवाई पंक्ति और गंतव्य की होती है। अलग यादृच्छिक पंक्तियाँ एक साझा “आख़िरी स्वागत” नहीं बनतीं।

सामान्य जवाब के लिए `<b>कोर्स की जानकारी</b>\nरिकॉर्डिंग पिन किए गए संदेश में हैं।` इस्तेमाल कर सकते हैं। Markdown को HTML की तरह न दें। लिंक और पाठ सही एस्केप करें। बटन और चित्र केवल व्यक्ति के दिए वास्तविक URL से जोड़ें; `ph` फ़ोटो एल्बम नहीं भेजता।

पुष्ट संदेश-संदर्भ वेरिएबल: `{name}`, `{uid}`, `{name_link}`, `{from.id}`, `{from.title}`, `{from.username}`, `{chat.id}`, `{chat.title}`, `{chat.username}`, `{message.id}`, `{message.timestamp}`, `{timestamp}`, `{group_name}`, `{reply_to_uid}`, `{reply_to_name}`, `{reply_to_name_link}`। उपलब्धता घटना पर निर्भर है। `{target.name}`, `{user.first_name}`, `{reaction_count}` या ऐसे वेरिएबल न गढ़ें।

जवाबी कमांड में `{from.title}` कमांड भेजने वाले का नाम है, सज़ा या पुरस्कार पाने वाले सदस्य का नहीं। `tg: "t"` चुनने से वेरिएबल का अर्थ नहीं बदलता। घटना से ज़रूरी नाम मिलता है या नहीं, पक्का न हो तो तटस्थ भाषा रखें।

शामिल होने पर भी `{from.title}` नए व्यक्ति का नाम होने की गारंटी नहीं: अन्ना इल्या को जोड़ें तो अन्ना घटना शुरू करने वाली हैं। नाम के बिना “{chat.title} में स्वागत है!” जैसा सामान्य स्वागत रखें।

कार्रवाइयाँ एक लेन-देन नहीं हैं। म्यूट के बाद संदेश आना साबित नहीं करता कि Telegram ने म्यूट लागू किया। बिना शर्त दंड की पुष्टि को सत्यापित परिणाम की तरह न लिखें: यहाँ अलग सफलता-जाँच शर्त दर्ज नहीं है।

## 14. विकल्प, सीमाएँ और असमर्थित वादे

`ov` में उसी नियम की वैकल्पिक शर्तें होती हैं। वे मूल नियम की घटना और कार्रवाइयाँ साझा करती हैं, स्वतंत्र परिदृश्य नहीं बनातीं। एक विकल्प का बहिष्करण वैश्विक नहीं है। निषेध हमेशा लागू होना चाहिए तो हर विकल्प में रखें। `en: false` वाला विकल्प मेल में भाग नहीं लेता।

नए जटिल `ov`, `mtg`, `mog`, `uag`, `tug`, `mef` और `mmo` के लिए वास्तविक एडिटर निर्यात इस्तेमाल करें। पुनरावर्ती OR वृक्ष न बनाएँ और स्वतंत्र निष्पादन की उम्मीद में विकल्पों के भीतर अलग कार्रवाई शृंखलाएँ न रखें।

निर्यात में संगतता फ़ील्ड `mt`, `mtl`, `t`, `rmi` और `rme` आ सकते हैं। बिना कारण उन्हें दर्ज मुख्य सेटिंग की जगह न जोड़ें। सरल जवाब पाबंदियों के लिए `rm` इस्तेमाल करें: `a` कोई भी संदेश, `r` केवल जवाब, `rb` बॉट को जवाब, `rc` Combot को जवाब, `nr` गैर-जवाब। नए कमांड फ़ील्ड के बजाय `rm: "cr"` न इस्तेमाल करें।

पुराने या आंतरिक फ़ील्ड `lf`, `fc`, `lo` या UI फ़ील्ड `actions`, `destination`, `topic`, `applyTarget` और `alwaysRun` न बनाएँ। Compact प्रारूप उन्हें अलग रूप में रखता है और कुछ सेटिंग सक्रिय सुविधाएँ हैं ही नहीं।

योजना की सीमाएँ:

- Free: अधिकतम 2 सेव नियम; Pro: अधिकतम 50; Business: अधिकतम 100। बंद नियम भी गिने जाते हैं। बची जगह देखते समय मौजूदा नियम गिनें।
- हर नियम में अतिरिक्त OR विकल्प: Free 0, Pro 2, Business 5।
- हर नियम में अधिकतम 100 कार्रवाई पंक्तियाँ, और हर कार्रवाई योजना के निष्पादन पर अलग से गिना गया 20 कार्रवाइयों का बजट।
- हर अनूठे गंतव्य में भेजने की लागत 1 है, या पिछला जवाब हटाने पर 2। उपयोगकर्ता पर Telegram कार्रवाइयाँ प्राप्तकर्ता के हिसाब से गिनी जाती हैं, इसलिए `b` दोगुनी जगह रख सकता है। XP और प्रतिष्ठा की इस गणना में लागत 0 है। यादृच्छिक मोड अनिवार्य पंक्तियाँ और सबसे महँगा यादृच्छिक चुनाव गिनता है।
- यह आंतरिक गणना है, सभी सहायक कार्रवाइयों समेत ठीक बीस नेटवर्क अनुरोधों का वादा नहीं। अगली पंक्ति बचे बजट से बड़ी हो तो निष्पादन रुकता है; पूरी कार्रवाइयाँ वापस नहीं होतीं।

बिना घटना केवल टाइमर से चलना, “अधिकतम घंटे में एक बार”, एकबारगी प्रतिक्रिया पुरस्कार, दोहराई घटनाओं से पुरस्कार दुरुपयोग की रोकथाम, केवल पहली बार सीमा पार करना, ठीक एक बार चलना, मनचाही बाहरी चैट सँभालना, खाते की उम्र या मनचाही पिछली अवधि के गतिविधि आँकड़ों का वादा न करें। इनमें से कुछ अनिवार्य हो तो समझाएँ कि बताया नियम अकेले पर्याप्त नहीं है।

आयात नए नियमों की प्रतियाँ जोड़ता है; पुराने Triggers v2 को माइग्रेट नहीं करता। पुराने नियम का अर्थ Compact v3 में दोबारा लिख सकते हैं, लेकिन उसके पुराने JSON को तैयार आयात नहीं बता सकते।

## 15. उदाहरणों के स्वीकृति परिदृश्य

साथ की `examples` डायरेक्टरी में छह स्वतंत्र बंडल हैं, हर एक में एक बंद नियम:

| फ़ाइल | मेल खाने वाला मामला | अतिरिक्त जाँच |
| --- | --- | --- |
| `01-course-command.json` | सदस्य `/course_info` लिखता है | कमांड के बिना सादे पाठ से जवाब नहीं आना चाहिए |
| `02-recording-faq.json` | पाठ में “रिकॉर्डिंग कहाँ है” है | असंबंधित सवाल का जवाब न आए; आंशिक खोज लंबे वाक्यांश में मेल खा सकती है |
| `03-random-welcome.json` | नया सदस्य शामिल होता है | एक स्वागत चुना जाए, तीनों नहीं |
| `04-moderator-reply-mute.json` | Telegram एडमिन या मालिक सदस्य को जवाब में `/team_pause` भेजता है | सामान्य सदस्य न चला सकें; एडमिन लक्ष्य बाहर हों; बिना जवाब वाली कमांड भेजने वाले पर पाबंदी न लगाए |
| `05-known-link-join-request.json` | अनुरोध Combot कैटलॉग का लिंक इस्तेमाल करता है | बाहरी या अज्ञात स्रोत मेल न खाएँ; खास लिंक न चुनने पर सभी ज्ञात लिंक मेल खाते हैं |
| `06-thumbs-up-reaction.json` | उपयोगकर्ता प्रतिक्रिया जोड़ता है और नई स्थिति में 👍 है | 👍 हटाना मेल नहीं खाता; दोहराए मेल खाते बदलाव फिर संदेश भेज सकते हैं |

ये आपकी चैट के स्वीकृति परिदृश्य हैं, सभी के चलाए जा चुके होने का दावा नहीं। पूरी जाँचें नीचे हैं। हर उदाहरण को चालू करने से पहले अपनी चैट में सेटिंग और क्षमता जाँचनी होगी।

## 16. प्रारूप के स्रोत और पूरी की गई जाँच

प्रारूप को Rails `0d80ce4788ef5adc5c7c1b79e85c6b8be27cc00e` और बॉट `ddc1a8a6b6ab99bd2517d783870495990c7058e5` से मिलाकर जाँचा गया। इन मुख्य शाखा संशोधनों में समन्वित एडिटर और ऑटोमेशन सुधार हैं। Codeberg पर Rails PR #78 और बॉट PR #56 के मर्ज की पुष्टि हुई; तैनात प्रक्रियाओं के सटीक संशोधन स्वतंत्र रूप से स्थापित नहीं किए गए।

मुख्य स्रोत: `trigger_compact_codec_helpers.js`, `trigger_import_export_helpers.js`, `trigger_validation_helpers.js`, घटना और कार्रवाई रजिस्ट्रियाँ, `user_attribute_model_helpers.js`, `AutomationController`, `docs/MONGODB.md` का विस्तृत ऑटोमेशन अनुबंध और `automation.py` में शर्त/कार्रवाई हैंडलिंग।

छह मूल उदाहरण एडिटर के स्रोत कोडेक से मेमोरी में जाँचे गए: डिकोड, दोबारा बनाना, फिर डिकोड और सामान्यीकृत परिणाम की स्थिरता। कार्रवाइयाँ और बंद स्थिति बनी रहीं। कोडेक कुछ डिफ़ॉल्ट छोड़ता है, इसलिए तुलना सामान्यीकृत परिणामों से हुई, इनपुट JSON से बाइट-दर-बाइट समानता से नहीं।

8 सितंबर को सभी छह मूल उदाहरणों की बंद स्थिति combot.org के प्रोडक्शन एडिटर से आयात, सर्वर पर सेव और पेज रीलोड के बाद जाँची गई। यह Telegram में हर शर्त और कार्रवाई की जाँच का विकल्प नहीं है।

कमांड और सामान्य-सवाल के मामले Telegram में जाँचे गए: मेल खाते अनुरोधों को इच्छित जवाब मिले और नियंत्रण मामलों को नहीं। केवल `/course_info` को परीक्षण उपकरण के सुरक्षा नियमों में अनुमत अनूठे परीक्षण नाम से बदला गया; बाकी उदाहरण सेटिंग बनी रहीं। ये परिणाम दूसरी घटनाओं और कार्रवाइयों को अपने-आप सत्यापित नहीं करते।

`06-thumbs-up-reaction.json` में निजी प्रोफ़ाइल से 👍 जोड़ने पर एक अपेक्षित जवाब आया; हटाने पर नहीं। अलग Bot API पर्यवेक्षक से पहचान और पुराने/नए प्रतिक्रिया सेट की पुष्टि हुई। उस रन में शामिल होने का यादृच्छिक स्वागत, म्यूट लागू होना और असली शामिल होने के अनुरोध की मंज़ूरी नहीं जाँची गई; आयात कार्रवाई चलने का प्रमाण नहीं है।

बनाए परीक्षण नियम हटाए गए और मूल सूची वापस आने की जाँच हुई; परिणाम संदेश परीक्षण समूह में बने हैं। JSON Schema साथ का दस्तावेज़ है, उत्पाद से जुड़ा नहीं और मौजूदा अंतर्निहित वैलिडेटर के रूप में प्रस्तुत नहीं है।

9 सितंबर को संपादकीय संदर्भ Rails `0d80ce4788ef5adc5c7c1b79e85c6b8be27cc00e` और बॉट `0a491a6ee50c57e98c1d9de04819253d15214506` से मिलाकर जाँचा गया। स्पष्टीकरणों में एडिटर की नाम सीमा, एडमिन समूह, घटना के प्रतिभागी, कार्रवाई प्राप्तकर्ता और वैकल्पिक कार्य-सूची लिंक शामिल हैं। यह स्रोत-आधारित दस्तावेज़ समीक्षा है, नया Telegram रन नहीं। अनूदित उदाहरणों के पाठ का स्वतंत्र लाइव परीक्षण नहीं हुआ है।
