Adopt a repo कोडबेस को 1DesignTool में लाता है: ऐप प्रोजेक्ट को ऐप-स्वामी
worktree पर रजिस्टर करता है — आपकी app-data डायरेक्टरी के नीचे एक
1design/<slug> ब्रांच — तो एजेंट आपके असली UI के अंदर डिज़ाइन करता है बिना
कभी आपके checkout में लिखे. यह "एक चीज़ डिज़ाइन करो" से "मेरी चीज़ में डिज़ाइन
करो" का पुल है.
एक अडॉप्ट करना
होम स्क्रीन से Open folder… रेपो चुनता है और adopt शीट खोलता है: वह फ़ोल्डर
पढ़ता है, पूछता है कि अंदर डिज़ाइन करना है या नहीं, और Design inside this
codebase पर प्रोजेक्ट को codebase प्रोजेक्ट के तौर पर रजिस्टर करता है. ऐप
worktree बनाता है — app-data के नीचे checked out एक 1design/<slug> ब्रांच —
और प्रोजेक्ट उस पर खुलता है, आपके checkout पर नहीं.
आपका रेपो अछूता रहता है: लेखन ऐप के worktree में उतरता है, रीड उसके ज़रिए आपकी असली फ़ाइलों से आते हैं. adopt शीट isolation नोट भी दिखाती है — worktree क्या है और आपका checkout working copy क्यों नहीं है.
worktree मॉडल
codebase प्रोजेक्ट 1design/<slug> पर रहता है — वह ब्रांच जिसे ऐप स्वामी
करता है, app-data के नीचे worktree के तौर पर checked out:
- रीड — एजेंट worktree के ज़रिए आपका असली UI देखता है
- राइट — टर्न के diff ब्रांच पर उतरते हैं, आपके checkout पर कभी नहीं
- प्रीव्यू — worktree का ऐप प्रीव्यू, या आपका खुद का dev server
- आपका checkout — कभी लिखा नहीं जाता; host-managed पाथ (
.1design/, skill dirs) आपकी.gitignoreनहीं बल्कि.git/info/excludeसे छिपते हैं
प्रोजेक्ट का ब्रांच बार लेन दिखाता है — main से 1design/<slug>, आगे की
कमिट गिनती, और टर्न जिन फ़ाइलों को बदला.
कोडबेस के अंदर डिज़ाइन करना
अडॉप्ट होने के बाद यह किसी भी प्रोजेक्ट जैसा स्टीयर होता है — बस ब्रीफ़ आपके UI के बारे में है: "header को sticky बनाओ", "profile के बगल में settings स्क्रीन जोड़ो". एजेंट worktree के ज़रिए असली फ़ाइलें एडिट करता है; प्रीव्यू आपके खुद के dev server या ऐप के प्रीव्यू पर चलता ऐप दिखाता है.
diff-scoped gate
codebase प्रोजेक्ट पूरा design-kit gate नहीं चलाते — आपका रेपो जेनरेट किया
आर्टिफ़ैक्ट नहीं है, तो उसे एक जैसा जाँचना उस कोड को भी फ़्लैग करता जिसे टर्न
ने कभी छुआ नहीं. इसके बजाय जाँचें diff-scoped हैं: टर्न की बदली फ़ाइलें
वेरीफ़ाई होती हैं (diff पर tells.mjs), और ब्रांच बार का रिव्यू एक्शन दिखाता
है कि टर्न ने ठीक क्या किया.
रिव्यू और मर्ज
जब टर्न का काम ठीक दिखे, ब्रांच बार का Review changes टर्न का बनाया diff
दिखाता है; Copy merge command या Merge into main ब्रांच का काम आपके
रेपो में वापस लाता है. Discard worktree state फेंक देता है. आपके checkout
का main ही मर्ज होता है — worktree सैंडबॉक्स है.
Build और Sketch modes
codebase प्रोजेक्ट लाइव प्रीव्यू के ऊपर दो अतिरिक्त मोड रखता है:
- Build mode — चलते ऐप का UI विज़ुअली एडिट करें, और बदलाव कोड में वापस लिखते हैं (देखें Build mode)
- Sketch mode —
.1dस्केच जो कंपोनेंट में मैप होते हैं (देखें Sketch mode)
Direct mode
worktree मॉडल डिफ़ॉल्ट है क्योंकि वही सुरक्षित है — ऐप app-data के नीचे अपनी ब्रांच पर लिखता है, आपके checkout पर कभी नहीं. Direct mode — adopt शीट का विकल्प — प्रोजेक्ट को सीधे आपके checkout पर पॉइंट करता है; एजेंट असली फ़ाइलों को जगह पर एडिट करता है. यह तेज़ है लेकिन काम आपकी working copy पर उतरता है, इसीलिए worktree डिफ़ॉल्ट की वजह है.
यह किसमें अच्छा है
- अपने असली ऐप के अंदर डिज़ाइन — वह स्क्रीन जो पहले से है, फिर से स्टाइल की हुई
- फ़ीचर काम — नई स्क्रीन या फ़्लो, जगह पर
- UI पास — पूरे-ऐप का विज़ुअल पास, diff किया हुआ
- कोडबेस में ऑनबोर्डिंग — एजेंट उस रेपो को पढ़ता है जिसमें उसे रहना है
isolation नोट
worktree इसलिए है कि एजेंट का काम मर्ज तक आपके checkout को छू न सके —
रजिस्टर किया प्रोजेक्ट रूट ऐप की ब्रांच है, रीड और राइट उसके ज़रिए जाते हैं,
और प्रोजेक्ट को जिन host-managed फ़ाइलों की ज़रूरत है वे .git/info/exclude
से छिपती हैं ताकि आपका git status साफ़ रहे. क़ीमत एक स्टेप है: काम ठीक होने
पर आप ब्रांच मर्ज करते हैं.
टिप: मर्ज साफ़ होने तक worktree रखें — काम कन्फ़र्म होने से पहले ब्रांच डिलीट करना diff की क़ीमत है. मर्ज बटन इसे एक एक्शन बनाता है; क्लिक करने से पहले रिव्यू करें.