---
read_when:
    - आप ऑनबोर्डिंग के पुनःडिज़ाइन के किसी चरण को लागू कर रहे हैं या उसकी समीक्षा कर रहे हैं
summary: संरक्षक ऑनबोर्डिंग के पुनःडिज़ाइन की कार्यान्वयन योजना (निरंतर अद्यतन दस्तावेज़)
title: ऑनबोर्डिंग का पुनः डिज़ाइन
x-i18n:
    generated_at: "2026-07-27T20:40:02Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: f892991583d0b77a670e9bf7aa5a0c74af3b3eac9e7b0448706486254eb7e2a0
    source_path: start/onboarding-redesign.md
    workflow: 16
---

# ऑनबोर्डिंग पुनःडिज़ाइन कार्यान्वयन योजना

> **जीवंत दस्तावेज़।** यह पृष्ठ कस्टोडियन ऑनबोर्डिंग पुनःडिज़ाइन को
> कार्यान्वयन स्तर पर ट्रैक करता है और प्रत्येक चरण के लागू होने पर अपडेट किया जाता है। अंतिम चरण
> मर्ज होने पर, इस पृष्ठ को उपयोगकर्ता-केंद्रित ऑनबोर्डिंग गाइड के रूप में फिर से लिखा जाता है और यह
> दस्तावेज़ नेविगेशन में शामिल हो जाता है। तब तक इसे जानबूझकर `docs.json` में शामिल नहीं किया गया है।

## मुख्य लक्ष्य

एक गैर-तकनीकी उपयोगकर्ता `openclaw onboard` टाइप करता है (या ऐप खोलता है) और उसका स्वागत
एक संवादात्मक उपस्थिति — OpenClaw, सिस्टम कस्टोडियन ("कस्टोडियन" केवल
आंतरिक नाम है; उपयोगकर्ता को हमेशा "OpenClaw" दिखाई देता है) — करती है, जो उसका AI खोजती है,
प्रश्न पूछने के बजाय घोषित डिफ़ॉल्ट के साथ सब कुछ सेट अप करती है, उसके
एजेंट को एक प्रत्यक्ष पहचान क्षण के रूप में जन्म देती है, और उसके बाद हमेशा
सिस्टम के देखभालकर्ता के रूप में उपलब्ध रहती है। डिफ़ॉल्ट रूप से जादुई अनुभव, एक सहमति सीमा, कोई बंद रास्ता नहीं।

डिज़ाइन सिद्धांत (निर्धारित, बिना ठोस कारण के इन पर फिर से बहस न करें):

- **आसान वापसी वाले घोषित डिफ़ॉल्ट** अवरोधक प्रश्नों की जगह लेते हैं। एकमात्र
  अनिवार्य आवश्यकता कार्यशील इन्फ़रेंस है; बाकी सब कुछ एक प्रस्ताव है।
- **प्रश्न शून्य सहमति सीमा है**: "पूर्ण पहुँच" (अनुशंसित) का अर्थ है कि
  खोज शांत और स्वचालित होती है; "पहले पूछें" प्रत्येक खोज — AI
  स्कैनिंग, ऐप स्कैनिंग और मेमोरी-स्रोत स्कैनिंग समान रूप से — को एक
  स्पष्ट हाँ के पीछे नियंत्रित करता है, साथ ही एक पूर्णतः मैन्युअल मार्ग उपलब्ध है जो कभी स्कैन नहीं करता।
- **क्रमिक बुद्धिमत्ता के साथ UI के रूप में संवाद**: कस्टोडियन सतह
  किसी भी AI के काम करने से पहले मौजूद होती है (स्क्रिप्टेड संवाद), किसी रूट के सत्यापित होते ही
  मॉडल-समर्थित बन जाती है और स्पष्ट रूप से ऐसा बताती है। यह कभी बुद्धिमत्ता का दिखावा नहीं करती:
  रूट सत्यापित होने से पहले मुक्त-पाठ इनपुट को सहज संदेश मिलता है, "पहले मुझे अपना दिमाग
  चालू करने दें"।
- **जन्म एक अनुष्ठान है**: वही थ्रेड, अवतार की अदला-बदली, एजेंट स्वयं अपना नाम रखता है
  और अपना चेहरा चुनता है। कस्टोडियन पदानुक्रम एक बार समझाता है: "सिस्टम के बारे में
  मुझसे पूछें, या बस अपने एजेंट से पूछें — वह संदेश आगे पहुँचा देगा।"
- **विश्वास स्रोत के अनुसार स्तरीकृत है**: आधिकारिक कैटलॉग प्रविष्टियाँ पहले से चुनी जा सकती हैं;
  तृतीय-पक्ष ClawHub स्किल्स मॉडल
  रैंकिंग की परवाह किए बिना कभी पहले से नहीं चुनी जातीं, और उनके लेबल बताते हैं कि वे प्रकाशक का कोड इंस्टॉल करती हैं।
- **कॉन्फ़िगर किए गए इंस्टॉलेशन पवित्र हैं**: ऑनबोर्डिंग को दोबारा चलाना एक सत्यापन
  प्रक्रिया है। यह कभी सेटअप दोबारा लागू नहीं करता और Gateway सेवा को कभी पुनः आरंभ नहीं करता।
- **टर्मिनल फ़ॉलबैक है, प्रश्न नहीं**: Gateway उपलब्ध होने पर ब्राउज़र
  डैशबोर्ड को प्राथमिकता दें; कभी "टर्मिनल या ब्राउज़र?" न पूछें।
- **कमज़ोर मॉडलों को सीमित सतह मिलती है** (स्वतः `localModelLean`), जिसे
  सरल शब्दों में समझाया जाता है — टूल, कोड मोड या कॉन्टेक्स्ट विंडो के संदर्भ में कभी नहीं।

## वर्तमान जारी प्रवाह (चरण 1-3 के बाद)

नए macOS इंस्टॉलेशन पर `openclaw onboard`, सफल मार्ग — कुल चार बार Enter:

1. सुरक्षा नोट → स्वीकार करने के लिए एक बार Enter (सहेजा जाता है; दोबारा कभी नहीं पूछा जाता)।
2. **प्रश्न शून्य**: "मुझे चीज़ों को कैसे सेट अप करना चाहिए?" — पूर्ण पहुँच (अनुशंसित)
   या पहले पूछें। इसे `wizard.accessMode` के रूप में सहेजा जाता है; दोबारा चलाने पर सहेजा गया
   विकल्प डिफ़ॉल्ट होता है। नियंत्रित + "मैन्युअल रूप से कॉन्फ़िगर करें" बिना
   किसी स्कैनिंग के प्रदाता चयनकर्ता तक पहुँचता है और मेमोरी-स्रोत स्कैनिंग भी छोड़ देता है।
3. **खोज प्रस्तुति**: कोडिंग CLI, एन्वायरनमेंट कुंजियाँ और स्थानीय रनटाइम का पता लगाती है;
   कोडिंग एजेंट मिलने पर हल्की टिप्पणी करती है; उम्मीदवारों का क्रम से लाइव-परीक्षण करती है और
   विफलताओं को चुपचाप एक सारांश पंक्ति में एकत्र करती है (विवरण "अन्य
   विकल्प देखें" के पीछे)। पहले कार्यशील रूट को डिफ़ॉल्ट के रूप में घोषित किया जाता है और
   पूर्ण चयनकर्ता तक एक कीस्ट्रोक में पहुँचने का मार्ग दिया जाता है; विकल्प देखना और छोड़ना कार्यशील
   रूट को बनाए रखता है।
4. मेमोरी-आयात प्रस्ताव (Claude Code / Codex / Hermes), खोज
   अस्वीकार किए जाने पर छोड़ दिया जाता है।
5. केवल नए इंस्टॉलेशन: मानक सेटअप योजना स्वचालित रूप से लागू होती है
   (वर्कस्पेस, Gateway सेवा, सत्र — वही योजना जिसे संवादात्मक
   "हाँ" चलाता है)। कॉन्फ़िगर किए गए इंस्टॉलेशन "पहले से सेट अप है" प्रिंट करते हैं और सेवा को कभी नहीं
   छूते।
6. **ऐप अनुशंसाएँ**: सत्यापित मॉडल द्वारा इंस्टॉल किए गए ऐप का
   आधिकारिक कैटलॉग + ClawHub से मिलान किया जाता है; आधिकारिक चैनल Plugin
   पहले से चिह्नित आते हैं, तृतीय-पक्ष स्किल्स चेतावनी लेबल के साथ ऑप्ट-इन होती हैं। छोड़ा जा सकता है;
   किल स्विच `wizard.appRecommendations`।
7. **जन्म**: Gateway उपलब्ध होने पर, ब्राउज़र हैंडऑफ़ खुलता है (GUI) या
   डैशबोर्ड URL प्रिंट करता है (हेडलेस/SSH) और Control UI के
   कनेक्ट होने की प्रतीक्षा करता है — "डैशबोर्ड कनेक्ट हो गया — आपके ब्राउज़र में जारी रखा जा रहा है।" अन्यथा, या
   `--tui` के साथ, टर्मिनल TUI बूटस्ट्रैप जन्म
   संदेश के साथ खुलता है और एजेंट अपना परिचय देता है।

रिमोट-Gateway ऑनबोर्डिंग अपना पुराना संवादात्मक हैंडऑफ़
(`handoffMode: "chat"`) बनाए रखता है; सेटअप रिमोट Gateway पर लागू होना चाहिए।

## चरण

| #   | चरण                                                                                                                                                     | सतह              | स्थिति                                                                                                                            |
| --- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 1   | इंस्टॉल किए गए ऐप के लिए Plugin अनुशंसाएँ (स्कैन, उम्मीदवार, AI मिलानकर्ता, विज़ार्ड चरण, `device.apps` Node कमांड)                                              | क्लासिक + निर्देशित CLI | मर्ज किया गया ([#109668](https://github.com/openclaw/openclaw/pull/109668))                                                              |
| 2   | CLI कस्टोडियन आधार (प्रश्न शून्य, खोज प्रस्तुति, स्वतः लागू करना + जन्म)                                                                                | निर्देशित CLI           | मर्ज किया गया ([`a83ed13204f1`](https://github.com/openclaw/openclaw/commit/a83ed13204f118adf1009e5ac88d5afe1905b86c))                   |
| 3   | ब्राउज़र-प्रथम हैंडऑफ़ (GUI-सत्र पहचान, डैशबोर्ड-कनेक्शन की प्रतीक्षा, फ़ॉलबैक के रूप में TUI)                                                                | CLI → वेब            | मर्ज किया गया ([#110054](https://github.com/openclaw/openclaw/pull/110054))                                                              |
| 4   | वेब कस्टोडियन सतह (विकल्प कार्ड, `openclaw.chat` पर टाइप किया गया `question` फ़ील्ड, विज़ार्ड-चरण प्रतिबिंबन, प्रथम-रन हैंडऑफ़)                                 | Control UI           | मर्ज किया गया ([#110141](https://github.com/openclaw/openclaw/pull/110141), [#110242](https://github.com/openclaw/openclaw/pull/110242)) |
| 5   | जन्म और बूटस्ट्रैप (एक-बार अर्थ वाला अनुशंसा स्टोर, स्वयं-नामकरण जन्म क्रम, नए सेटअप के बाद स्वतः-जन्म हैंडऑफ़; अवतार क्रम स्थगित) | एजेंट बूटस्ट्रैप      | मर्ज किया गया ([#110173](https://github.com/openclaw/openclaw/pull/110173), [#110331](https://github.com/openclaw/openclaw/pull/110331)) |
| 6   | कस्टोडियन उपस्थिति PR1 (पिन की गई साइडबार प्रविष्टि, Settings में OpenClaw से पूछें, सामान्य-क्रोम देखभालकर्ता अभिवादन; इवेंट टिप्पणी और चैनल आह्वान PR2 में हैं)    | वेब + चैनल       | मर्ज किया गया ([#110269](https://github.com/openclaw/openclaw/pull/110269))                                                              |
| 7   | प्रत्यास्थता (टूटी कॉन्फ़िगरेशन पर कस्टोडियन उपलब्ध, आंशिक-सतह पुनर्प्राप्ति, ऑटो-डॉक्टर)                                                                   | Gateway              | अनुवर्ती                                                                                                                         |

## प्रत्येक चरण के कार्यान्वयन नोट्स

### चरण 1 — ऐप अनुशंसाएँ (PR #109668)

- स्कैनर: `src/infra/installed-apps.ts` (TCC-मुक्त macOS गणना; सिमलिंक किए गए
  `.app` बंडल का अनुसरण करती है)।
- उम्मीदवार: आधिकारिक कैटलॉग + ClawHub खोज, कुल 20s बजट, ऑफ़लाइन होने पर
  केवल-कैटलॉग उम्मीदवारों तक सहज अवनति। कैटलॉग प्रविष्टियाँ शीर्ष-स्तरीय
  `id` के बिना पैकेज मैनिफ़ेस्ट होती हैं — उम्मीदवारों की कुंजी हल किए गए
  Plugin id के अनुसार होती है (वास्तविक बंडल कैटलॉग के विरुद्ध रिग्रेशन-परीक्षित; एक बार
  `entry.id` के अनुसार कुंजीकरण ने पूरे कैटलॉग को संकुचित कर दिया और प्रत्येक आधिकारिक
  अनुशंसा को हटा दिया था)।
- AI मिलानकर्ता: सत्यापित रूट पर एक पूर्णता
  (`src/system-agent/setup-app-recommendations.ts`); कोई क्यूरेट किया हुआ बंडल-id मैप नहीं —
  मॉडल संयोगवश नाम समानताओं को अस्वीकार करता है। आउटपुट हल किए गए मॉडल के अपने
  `maxTokens` बजट द्वारा सीमित होता है (कोई स्पष्ट सीमा न दिए जाने पर स्ट्रीम परत इसे लागू करती है)।
- **आपूर्ति-श्रृंखला सुरक्षा**: ClawHub सूचीकरण टेक्स्ट प्रकाशक-नियंत्रित होता है और
  मिलानकर्ता प्रॉम्प्ट तक पहुँचता है, इसलिए कोई सूचीकरण स्वयं को
  "अनुशंसित" के रूप में प्रचारित कर सकता है। केवल आधिकारिक कैटलॉग प्रविष्टियाँ पहले से चुनी जा सकती हैं; ClawHub
  स्किल्स के लिए हमेशा स्पष्ट टिक आवश्यक है और उन पर "तृतीय-पक्ष ClawHub
  स्किल; इसके प्रकाशक का कोड इंस्टॉल करती है" लेबल होता है।
- Node कमांड `device.apps` (TS Node-होस्ट, Android एन्वेलप समानता), साझाकरण
  डिफ़ॉल्ट रूप से बंद; Gateway किल स्विच `wizard.appRecommendations`।
- डिलीवरी क्लासिक विज़ार्ड और निर्देशित कस्टोडियन प्रवाह में रहती है
  (`src/wizard/setup.app-recommendations.ts`); बूटस्ट्रैप
  टेल पर पुनः-लक्षित करना चरण 5 में शेष है (सेवा पहले से इंजेक्ट किए जा सकने वाला इन्वेंटरी
  स्रोत स्वीकार करती है)। एक-बार अर्थ (स्वीकार किए जाने तक ही प्रस्ताव, संग्रहीत स्कैन) भी
  चरण 5 स्टोर के साथ लागू होता है; आज दोबारा चलाने पर फिर प्रस्ताव दिया जाता है।
- यह भी सुधारा गया: कस्टम `completeSetupInference` प्रॉम्प्ट अब
  32-टोकन सत्यापन-जाँच आउटपुट सीमा प्राप्त नहीं करते (`SETUP_INFERENCE_TEST_MAX_TOKENS`
  केवल "OK उत्तर दें" जाँच पर लागू होता है)।

### चरण 2 — CLI कस्टोडियन आधार (PR #109841)

- `src/commands/onboard-guided.ts` में प्रवाह का पुनर्गठन; रिमोट-Gateway ऑनबोर्डिंग
  `handoffMode: "chat"` के माध्यम से अपना पुराना चैट हैंडऑफ़ बनाए रखता है।
- प्रश्न शून्य `wizard.accessMode` ("full" | "guarded") सहेजता है; दोबारा चलाने पर
  सहेजा गया विकल्प डिफ़ॉल्ट होता है (डिफ़ॉल्ट स्वीकार करने से guarded कभी चुपचाप
  full में डाउनग्रेड नहीं हो सकता)। नियंत्रित + मैन्युअल
  `listManualSetupInferenceOptions` (केवल कॉन्फ़िगरेशन/मैनिफ़ेस्ट, कोई जाँच नहीं) का उपयोग करता है और
  मेमोरी-स्रोत स्कैनिंग छोड़ देता है।
- खोज: विफलताओं का शांत संग्रह (एक सारांश पंक्ति; विवरण
  "अन्य विकल्प देखें" के पीछे), कोडिंग-एजेंट टिप्पणी, घोषित रूट डिफ़ॉल्ट। टिप्पणी में सत्र
  गणना तब तक स्थगित है (केवल गुणात्मक), जब तक कोई सस्ता
  सत्र-गणना सीम उपलब्ध न हो।
- नए इंस्टॉलेशन: `applySystemAgentSetup` (निर्धारक संवादात्मक
  "हाँ"), फिर बूटस्ट्रैप संदेश से आरंभ किए गए `launchTuiCli` के माध्यम से जन्म।
  कॉन्फ़िगर किए गए इंस्टॉलेशन (पहले से मौजूद मॉडल या Gateway कॉन्फ़िगरेशन — विज़ार्ड
  टाइमस्टैम्प कुछ सिद्ध नहीं करते, वे configure/doctor के साथ साझा किए जाते हैं):
  केवल सत्यापन — न लागू करना, न Gateway सेवा पुनः आरंभ करना। लागू करने में विफलता
  संवादात्मक चैट पर वापस जाती है।

### चरण 3 — ब्राउज़र-प्रथम हैंडऑफ़ (PR #110054, मर्ज किया गया)

- `src/commands/onboard-browser-handoff.ts` शुद्ध ग्राफ़िकल-सत्र
  पहचान (`SSH_CONNECTION`/`SSH_TTY`; Linux पर `DISPLAY`/`WAYLAND_DISPLAY`)
  और 60-सेकंड GUI / 300-सेकंड SSH प्रतीक्षा का स्वामी है। निर्देशित ऑनबोर्डिंग वर्तमान में
  केवल macOS पर हैंडऑफ़ सक्षम करती है; `--tui` और अन्य प्लेटफ़ॉर्म
  टर्मिनल निकास बनाए रखते हैं। Linux/Windows सक्षमता अनुवर्ती कार्य है।
- डैशबोर्ड लिंक क्लासिक अंतिमकरण वाले ही `resolveAdvertisedControlUiLinks`,
  `resolveLocalControlUiProbeLinks`, और `buildOnboardingControlUiUrl` सहायक
  उपयोग करते हैं। ब्राउज़र लॉन्च साझा `openUrl` सहायक का उपयोग करता है।
- तत्परता मौजूदा `system-presence` RPC को एक **कॉन्फ़िगर किया गया साझा सीक्रेट प्रस्तुत करने वाले CLI-मोड लूपबैक
  क्लाइंट** के रूप में पोल करती है — वही विश्वसनीय पथ जिसका प्रत्येक
  `openclaw` कमांड उपयोग करता है। SecretRef गेटवे पर अपरिष्कृत साझा-प्रमाणीकरण Control UI क्लाइंट
  को "device identity required" के साथ अस्वीकार कर दिया जाता है। पहुँच-क्षमता
  पूर्व-जाँच उसी लक्ष्य (और सीक्रेट) को हल करती है जिसे प्रतीक्षा लूप करता है, इसलिए
  गेट और प्रतीक्षा प्रमाणीकरण पर कभी असहमत नहीं हो सकते। हैंडऑफ़ केवल तभी पूरा होता है
  जब कनेक्ट की गई `openclaw-control-ui`/`webchat` उपस्थिति पंक्ति
  लॉन्च-पूर्व आधाररेखा की तुलना में नई हो (पहले से खुला डैशबोर्ड इसे
  पूरा नहीं कर सकता)।
- `gateway.controlUi.enabled: false` कोई URL दिखाए जाने से पहले ही शॉर्ट-सर्किट करता है।
- एक पृथक समान-कॉन्फ़िगरेशन गेटवे के विरुद्ध शुरू से अंत तक प्रमाणित: URL प्रिंट → वास्तविक
  ब्राउज़र कनेक्ट → "डैशबोर्ड कनेक्ट हुआ — आपके ब्राउज़र में जारी रखा जा रहा है" → कोई
  टर्मिनल निकास नहीं। पहले का "token mismatch" अवरोध परीक्षण-हार्नेस की
  कृत्रिम घटना था — नीचे परीक्षण कार्यपुस्तिका देखें।

### चरण 4 — वेब कस्टोडियन सतह (मर्ज किया गया: #110141, #110242)

- `openclaw.chat` पर विकल्प-कार्ड घटक वाला `/custodian` पृष्ठ
  (2-4 कार्ड, अधिकतम एक अनुशंसित, हमेशा छोड़ा जा सकने वाला); ऑनबोर्डिंग क्रोम
  `?onboarding=1` के माध्यम से; मॉडल-सेटअप का प्रथम-रन पूर्ण होना इसमें हैंडऑफ़ करता है।
- संरचित प्रश्न
  `SystemAgentChatResult` पर एक टाइप किया हुआ योगात्मक `question` फ़ील्ड हैं (प्रति-विकल्प `reply` टेक्स्ट; macOS ऐप/TUI के लिए गद्य हमेशा स्वतंत्र
  रहता है)। उत्पादक: दोनों ऑनबोर्डिंग स्वागत प्रकार और
  2-4 बंद विकल्पों वाले होस्टेड विज़ार्ड चयन/पुष्टि चरण — वास्तविक चैनल
  विज़ार्ड कार्ड के रूप में रेंडर होते हैं। PR1 स्ट्रिंग-मार्कर अस्थायी उपाय हटा दिया गया।
- सत्र स्वामित्व गेटवे URL + प्रस्तुत किए गए प्रत्येक क्रेडेंशियल
  (टोकन, पासवर्ड, बूटस्ट्रैप टोकन, संग्रहीत डिवाइस टोकन — क्षणिक hello ड्रॉप के दौरान
  स्थिर) तक सीमित है; विफल उपयोगकर्ता टर्न कभी दोबारा चलाने योग्य नहीं होते; संवेदनशील
  इनपुट ज्यों का त्यों भेजा जाता है और ट्रांसक्रिप्ट में छिपाया जाता है।

### चरण 5 — निकास और बूटस्ट्रैप (मर्ज किया गया: #110173, #110331)

- कस्टोडियन एक अनाम एजेंट बनाता है (टूल कॉल); एजेंट का बूटस्ट्रैप
  स्वयं को नाम देने से खुलता है। PR1 समारोह को अधिकतम तीन चरणों (नाम → आत्मा
  पंक्ति → कौशल प्रश्न) तक सीमित करके भेजता है और स्वयं-निर्मित अवतार/इमेज-जेन सीढ़ी
  (मॉडल-जनित उम्मीदवार → पूर्वनिर्धारित चिह्न → लोगो बनाए रखें) को अनुवर्ती कार्य के लिए
  टालता है। वही थ्रेड, अवतार अदला-बदली; पंजे का चिह्न कस्टोडियन के लिए आरक्षित रहता है। सहमत
  पहचान दो बार बनी रहती है: `IDENTITY.md`/`SOUL.md` में (एजेंट क्या
  पढ़ता है) और `openclaw agents set-identity` के माध्यम से (चैनल और UI क्या
  प्रदर्शित करते हैं)।
- अनुशंसाएँ (चरण 1 सेवा, एक-बार शब्दार्थ वाला संग्रहीत स्कैन)
  बूटस्ट्रैप फ़ाइल हटाए जाने से पहले अंतिम बूटस्ट्रैप चरण के रूप में आती हैं: "न्यूनतम सेट
  या अधिकतम सुविधा?" बूटस्ट्रैप संग्रहीत प्रस्ताव को
  `openclaw onboard recommendations --json` के माध्यम से पढ़ता है (केवल अपारदर्शी इंस्टॉल ID) और
  विकल्प संभाले जाने के बाद उसकी अभिस्वीकृति करता है ताकि वह फिर कभी न पूछे। चैनल
  कनेक्ट बटन प्रति-चैनल सेटअप कार्यपुस्तिकाएँ रखते हैं; एजेंट संवादात्मक रूप से
  क्रेडेंशियल एकत्र करता है और कॉन्फ़िगरेशन लेखन कस्टोडियन तक पहुँचाता है
  ("OpenClaw से पूछा जा रहा है…" प्रामाणिक अभिव्यक्ति है)।
- स्व-अधिगम की घोषणा नहीं, बल्कि उसके बारे में पूछा जाता है, और यह कौशल-कार्यशाला
  सहमति के रूप में भी काम करता है; ClawHub की रिलीज़-विश्वास, स्कैन, सत्यापन और अखंडता
  जाँचों के साथ प्रकाशक-कोड चेतावनी का वर्णन करें — कभी यह संकेत न दें कि हर रिलीज़ हस्ताक्षरित है।
- स्वचालित निकास भेज दिया गया: नया-इंस्टॉल सेटअप लागू करना निकास की घोषणा करता है और
  हैंडऑफ़ करता है (टर्मिनल TUI / गेटवे क्लाइंट के लिए `open-agent`); वेब पृष्ठ
  एजेंट चैट पर पहुँचता है, जिसमें "जागो, मेरे मित्र!" मसौदा पहले से भरा होता है। हैंडऑफ़
  केवल साफ़ लेखन-पश्चात सत्यापन पर सक्रिय होता है। हटाने के बाद शून्य एजेंट होने पर
  स्वचालित करने के बजाय प्रस्ताव देना अनुवर्ती परिष्करण बना हुआ है।

### चरण 6 — कस्टोडियन उपस्थिति (PR1 मर्ज किया गया: #110269; टिप्पणी/आह्वान PR2 हैं)

- PR1 में भेजा गया: डिफ़ॉल्ट-पिन की गई "OpenClaw" साइडबार प्रविष्टि (नए प्रोफ़ाइल;
  मौजूदा उपयोगकर्ता सहेजे गए पिन रखते हैं और customize/More के माध्यम से वहाँ पहुँचते हैं), पहली Settings प्रविष्टि के रूप में "OpenClaw से
  पूछें", और सामान्य-क्रोम `/custodian` विज़िट
  जो देखभालकर्ता के अभिवादन का अनुरोध करती हैं (कोई ऑनबोर्डिंग स्वागत प्रकार नहीं), जहाँ
  Exit setup केवल ऑनबोर्डिंग मोड में रेंडर होता है। डॉक किया हुआ इनलाइन Settings फलक
  साझा वार्तालाप-दृश्य निष्कर्षण चाहता है (अनुवर्ती कार्य)।
- Clippy-विरोधी सुरक्षा-सीमाओं के साथ घटना-प्रतिक्रियाशील टिप्पणी: केवल परिणामकारी या
  विफल बदलाव, पूछे जाने के अलावा प्रति सेटिंग्स विज़िट अधिकतम एक बार। वही
  घटना सीम बाद में कस्टोडियन को क्षीण प्रमाणीकरण या टूटे चैनलों की आवाज़ बनाती है।
- चैनल: दैनिक उपयोग में अदृश्य (एजेंट पहुँचाता है); स्पष्ट
  आह्वान और उसी थ्रेड में एजेंट-बंद घटनाओं पर उपलब्ध, जहाँ प्लेटफ़ॉर्म अनुमति दे वहाँ अपने नाम और
  पंजा अवतार के साथ।
- सेटअप में कमज़ोर मॉडल का पता चला: `localModelLean` को स्वतः सेट करें, और कस्टोडियन
  इसे स्पष्ट शब्दों में अपग्रेड प्रस्ताव के साथ बताता है।
- कस्टोडियन अपना आंतरिक उपनाम जानता है ("कुछ लोग मुझे
  कस्टोडियन कहते हैं — OpenClaw भी ठीक है") और एजेंट को हमेशा नाम से संदर्भित करता है।

### चरण 7 — दृढ़ता (निर्माण से पहले स्वामी के निर्णय की आवश्यकता है)

मूल रूपरेखा — "कॉन्फ़िगरेशन चाहे जितना टूटा हो, कस्टोडियन तक पहुँचना आवश्यक है"
— रेपो की सुरक्षा नीति से टकराती है: मूल गाइड कहती है कि कॉन्फ़िगरेशन संरचनात्मक रूप से अमान्य होने पर
Gateway **स्टार्टअप से इनकार करता है**,
और केवल SecretRef-स्वामी विफलताएँ कॉन्फ़िगर-अनुपलब्ध
क्षमताओं में क्षीण होती हैं। अमान्य कॉन्फ़िगरेशन से कोई भी सतह प्रस्तुत करना नीति परिवर्तन है,
कार्यान्वयन विवरण नहीं। दो दायरे हैं, एक चुनें:

- **विकल्प A (अनुशंसित, नीति-अनुपालक): CLI-पक्षीय स्वचालित-डॉक्टर।** जब कोई
  गेटवे या CLI प्रारंभ ज्ञात-आकार के अमान्य कॉन्फ़िगरेशन के साथ विफल होता है, CLI
  `openclaw doctor --fix` की पेशकश करता है (या सहमति से चलाता है), फिर एक बार पुनः प्रयास करता है और
  स्पष्ट रूप से रिपोर्ट करता है। गेटवे व्यवहार नहीं बदलता; कस्टोडियन मौजूदा
  क्षीण-SecretRef पथ और टर्मिनल के माध्यम से उपलब्ध रहता है।
- **विकल्प B (स्पष्ट स्वामी स्वीकृति + सुरक्षा समीक्षा आवश्यक): गेटवे
  न्यूनतम-सतह मोड।** संरचनात्मक रूप से अमान्य कॉन्फ़िगरेशन पर, केवल कस्टोडियन
  वार्तालाप और डॉक्टर कार्रवाइयाँ प्रस्तुत करने वाली लॉक-डाउन सतह प्रारंभ करें। यह
  विफल-बंद स्टार्टअप अनुबंध को पुनर्लिखता है और किसी भी कोड से पहले अपनी प्रवेश
  सुरक्षा योजना परिभाषित करना आवश्यक है।

चरण 4-6 के शेष अनुवर्ती कार्य (ट्रैक किए गए, अनिर्धारित): निकास के लिए अवतार/इमेज-जेन
सीढ़ी; टाइप किए हुए `question` फ़ील्ड का macOS ऐप रेंडरिंग;
कस्टोडियन के लिए डॉक किया हुआ इनलाइन Settings फलक (साझा वार्तालाप-दृश्य
निष्कर्षण आवश्यक); घटना-प्रतिक्रियाशील टिप्पणी और चैनल आह्वान/एजेंट-बंद पुनर्प्राप्ति
(चरण 6 PR2); कमज़ोर मॉडलों के लिए स्वचालित `localModelLean`; क्या मौजूदा
उपयोगकर्ताओं के सहेजे गए साइडबार पिन को OpenClaw प्रविष्टि अपनानी चाहिए।

## परीक्षण और लैंडिंग कार्यपुस्तिका (कठिन अनुभव से अर्जित; चरण 4-6 से पहले पढ़ें)

- **`OPENCLAW_STATE_DIR` Gateway सेवा को पृथक नहीं करता।**
  LaunchAgent लेबल (`ai.openclaw.gateway`) मशीन-व्यापी है: पृथक स्टेट डायरेक्टरी वाला नया-इंस्टॉल
  ऑनबोर्डिंग परीक्षण वास्तविक मशीन की सेवा को फिर से लिखेगा और पुनः प्रारंभ करेगा
  (रैपर स्क्रिप्ट पृथक डायरेक्टरी के अंदर आती हैं; उस डायरेक्टरी को साफ़ करने पर अगली
  सेवा शुरुआत टूटती है)। किसी भी नए-इंस्टॉल परीक्षण के बाद, वास्तविक वातावरण से
  `openclaw gateway install --force && openclaw gateway
restart` के साथ पुनर्स्थापित करें और plist सत्यापित करें। उत्पाद अनुवर्ती:
  स्टेट-डायरेक्टरी-सीमित सेवा लेबल, या किसी बाहरी सेवा का पता लगाने वाली ऑनबोर्डिंग।
- **सुरक्षित शुरू-से-अंत हार्नेस**: पृथक कॉन्फ़िगरेशन को `gateway`
  अनुभाग के साथ पहले से भरें (ताकि ऑनबोर्डिंग कॉन्फ़िगर-इंस्टॉल पथ ले और सेवा को कभी न छुए)
  और `openclaw gateway run` को अतिरिक्त पोर्ट पर सादे टोकन के साथ सामान्य अग्रभूमि प्रक्रिया के रूप में
  चलाएँ। उस हार्नेस ने वास्तविक ब्राउज़र कनेक्ट सहित चरण-3 लूप को प्रमाणित किया।
- **प्रमाणीकरण पथ केवल क्रेडेंशियल के आधार पर नहीं, बल्कि क्लाइंट पहचान के आधार पर भिन्न होते हैं।** उपस्थिति और
  अन्य ऑपरेटर पठन उसी कॉन्फ़िगरेशन के क्रेडेंशियल वाले CLI-मोड लूपबैक क्लाइंट का उपयोग करते हैं।
  टोकन-प्रमाणीकरण गेटवे को साझा सीक्रेट चाहिए; SecretRef/none
  गेटवे टोकन के बिना विश्वसनीय-लूपबैक प्रमाणीकरण पर वापस जा सकते हैं। Control
  UI-पहचान वाले ब्राउज़र क्लाइंट को डिवाइस पहचान या सुरक्षित-संदर्भ
  लूपबैक अनुदान चाहिए। किसी ऐसे गेटवे के विरुद्ध प्रमाणीकरण करने वाली जाँच जो
  अलग कॉन्फ़िगरेशन प्रस्तुत करता है (LaunchAgent समस्या देखें), "token mismatch" के साथ विफल होती है — उस
  कृत्रिम घटना ने कुछ समय के लिए चरण 3 को रोक दिया था।
- **पूर्णता जाँचें**: `runSetupInferenceTest` सत्यापन जाँच को
  32 आउटपुट टोकन तक सीमित करता है; कस्टम प्रॉम्प्ट इस सीमा को दरकिनार करते हैं और
  मॉडल के अपने `maxTokens` से सीमित होते हैं। रीजनिंग मॉडल पहले छिपे हुए
  रीजनिंग में उस बजट का उपयोग करते हैं — खाली-टेक्स्ट टर्न का अर्थ सामान्यतः है कि बजट वहीं समाप्त हो गया।
- **एजेंट लैंडिंग को सटीक-हेड होस्टेड CI चाहिए।** भारी `CI` वर्कफ़्लो
  संगठन भार के अंतर्गत पुश पर कतारबद्ध नहीं हो सकता; मेंटेनर फ़ॉलबैक PR शाखा पर
  रिलीज़-गेट डिस्पैच है:

  ```bash
  gh workflow run ci.yml --ref <branch> -f target_ref=<head-sha> -f release_gate=true -f pull_request_number=<pr>
  ```

  रन शाखा रेफ़ पर होना आवश्यक है ताकि
  `head_sha` मेल खाए, और शीर्षक
  `CI release gate <sha>` बन जाए, जिसे `scripts/verify-pr-hosted-gates.mjs`
  स्वीकार करता है। फिर सामान्य रूप से `scripts/pr` तैयार/मर्ज करें।

- **केंद्रित परीक्षणों से परे CI द्वारा लागू गेट**: दस्तावेज़ मानचित्र
  (कोई भी दस्तावेज़ पृष्ठ जोड़ने के बाद `pnpm docs:map:gen`), oxlint (`no-map-spread`,
  `max-lines` — फ़ाइलें विभाजित करें, कभी दबाएँ नहीं), `check:test-types`, knip
  डेडकोड (केवल वही निर्यात करें जिसका उत्पादन उपयोग करता है; परीक्षणों को सार्वजनिक API के माध्यम से रूट करें),
  और लाइव-परीक्षण शार्ड वर्गीकारक
  (`test/scripts/test-live-shard.test.ts` में प्रत्येक नया `*.live.test.ts` सूचीबद्ध होना आवश्यक है)।

## निर्णय लॉग

- किल स्विच वाला जादुई स्कैन, सहमति-प्रथम नहीं (चरण 1; स्थायी आउटपुट
  स्कैन करने से पहले मॉडल और ClawHub के उपयोग का खुलासा करता है, और परिणामों का नोट इसे दोहराता है)।
- Node `device.apps` कमांड सहित पूर्ण वर्टिकल (चरण 1)।
- तृतीय-पक्ष ClawHub Skills कभी पहले से चयनित नहीं होतीं और उन पर
  प्रकाशक का कोड इंस्टॉल करने का लेबल होता है; आधिकारिक प्रविष्टियाँ पहले से चेक की जा सकती हैं
  (चरण 1, जारी की गई सुरक्षा व्यवस्था)।
- तीन नहीं, दो एक्सेस कार्ड; सहमति को विकल्प में पहले ही शामिल किया गया है (चरण 2)।
- घोषणा के साथ स्वतः हैचिंग, अवरोधक बटन नहीं (चरण 2/5)।
- ब्राउज़र-प्रथम: टर्मिनल हैच फ़ॉलबैक है, कभी भी "टर्मिनल या
  ब्राउज़र?" प्रश्न नहीं (चरण 3)।
- कस्टोडियन को चैनल उपस्थिति मिलती है (आह्वान + पुनर्प्राप्ति), केवल वेब/CLI नहीं
  (चरण 6)।
- हैचिंग उसी थ्रेड में अवतार बदलने के साथ होती है; पूरा होने के बाद
  ऐप नियमित UI पर चला जाता है (चरण 5)।
- सेटिंग्स सतह का नाम "सेटिंग्स" ही रहता है; कस्टोडियन उसे प्रतिस्थापित करने के बजाय
  वहीं (और साइडबार में) रहता है (चरण 6)।
- विकल्प कार्ड सीमित हैं: 2-4 विकल्प, ठीक एक अनुशंसित, हमेशा
  छोड़े जा सकने योग्य; वही घटक ऑनबोर्डिंग और एजेंट प्रश्न टूल के लिए उपयोग होता है
  (चरण 4)।
- "OpenClaw से पूछा जा रहा है…" प्रत्यायोजन की मानक अभिव्यक्ति है; सोल्स कुछ विशिष्टता जोड़ सकती हैं,
  टूल का वर्णन सादा रहता है (चरण 5)।
- कमज़ोर-मॉडल ट्रिमिंग समझाते समय उपयोगकर्ता-दृश्य सामग्री कभी भी "कोड मोड", "टूल्स" या "कॉन्टेक्स्ट विंडो"
  नहीं कहती (चरण 6)।

## ज्ञात कमियाँ और अनुवर्ती कार्य

- LaunchAgent लेबल स्टेट-डायरेक्टरी के दायरे में नहीं है (ऊपर दी गई परीक्षण संबंधी समस्या; साथ ही
  यह एक वास्तविक बहु-इंस्टेंस उत्पाद कमी भी है)।
- अनुशंसाओं की एक-बार अर्थवत्ता और संग्रहीत स्कैन (चरण 5); दोबारा चलाने पर
  अभी फिर से प्रस्ताव दिए जाते हैं।
- ब्राउज़र हैंडऑफ़ केवल macOS के लिए है; Linux/Windows सक्षमता लंबित है।
- सत्र-संख्या पर टिप्पणी गुणात्मक है; संख्याओं के लिए कम लागत वाला सत्र-संख्या सीम आवश्यक है।
- ब्राउज़र हैंडऑफ़ सामान्य डैशबोर्ड पर पहुँचता है; ऑनबोर्डिंग-मोड कस्टोडियन
  डीप-लिंक चरण 4 के साथ आएगा।
