- 2 दिनों के प्रयोग के नतीजे में Claude Fable 5 को "relentlessly proactive" कहना उपयुक्त लगा
- सिर्फ स्क्रीनशॉट और एक-पंक्ति प्रॉम्प्ट से इसने local development server चलाया, असली browser को operate किया, और measurement code insert करके CSS bug के कारण का पता लगाया
- Fable ने Playwright, Firefox, WebKit, Safari के बीच जाकर bug को reproduce करने की कोशिश की, और असफल होने पर असली browser window खोजकर खुद screenshot automation तैयार किया
/ key से खुलने वाले modal dialog को test करने के लिए इसने Datasette template में JavaScript insert किया और window load होने के बाद keyboard event trigger करके ज़रूरी state बनाई
- page के अंदर के measurement values पाने के लिए इसने Python
http.server आधारित CORS collection server बनाया और Web Component के shadow DOM के अंदर <textarea> की जानकारी JSON में save की
- शक्तिशाली coding agents terminal में वह सब कर सकते हैं जो कोई user कर सकता है, इसलिए sandbox के बाहर execution prompt injection और data leak के जोखिम को बढ़ाता है
Claude Fable 5 की debugging प्रक्रिया
- Datasette Agent के jump menu chat prompt में आए अनावश्यक horizontal scrollbar की जाँच शुरू की गई
- Claude Fable 5 ने लक्ष्य हासिल करने के लिए कई तरह की techniques को सक्रिय रूप से इस्तेमाल किया
- input एक screenshot और
Look at dependencies to help figure out why there is a horizontal scrollbar here वाला एक-पंक्ति prompt था
- यह मानते हुए कि समस्या का कारण Datasette Agent की dependencies, खासकर Datasette itself में हो सकता है, पहले dependency code देखने को कहा गया
- Claude Code ने browser automation के लिए कोई स्पष्ट निर्देश न होने पर भी सामान्य Firefox window खोली और उस dialog तक पहुँचा, फिर Safari window भी खोलकर जाँच जारी रखी
Browser screenshot automation
- Fable ने
uv run --with pyobjc-framework-Quartz का उपयोग करके browser window screenshots लेने का अपना तरीका तैयार किया
- Python से मशीन की सभी windows को iterate किया गया और window name में
"textarea" जैसी अपेक्षित string वाली Safari windows को filter किया गया
- window number जैसे integer identifier
153551 को खोजने के बाद screencapture CLI से PNG save किया गया
/tmp/textarea-scrollbar-test.html जैसे temporary HTML page लिखे गए और Safari में खोलकर screenshot लिया गया
- उदाहरण command
screencapture -x -o -l 153551 /tmp/safari-cases.png था
Modal dialog का automatic execution
- test किया जा रहा modal सिर्फ click या keyboard shortcut से खुल सकता था, और Safari में mouse movement या keyboard shortcut चलाने का कोई स्पष्ट mechanism नहीं दिख रहा था
- Claude application source code वाले folder में चल रहा था और Datasette local development server चलाने लायक उसकी structure समझ चुका था
- इसने Datasette template में JavaScript जोड़ा ताकि window खुलने के बाद
/ key input simulate किया जा सके
- यह code window load होने के 1.2 सेकंड बाद
/ key का keydown event trigger करके modal dialog खोलने वाला shortcut चलाता था
<script>
window.addEventListener("load", function () {
setTimeout(function () {
document.dispatchEvent(new KeyboardEvent("keydown", {key: "/", bubbles: true}));
}, 1200);
});
</script>
Page के अंदर measurement values इकट्ठा करना
- Claude को page पर JavaScript चलाकर सीधे measurements लेने थे, और इसके लिए इसने CORS के ज़रिए जानकारी प्राप्त करने वाला अपना web application लिखा
- Python standard library
http.server का उपयोग करके 127.0.0.1:9999 पर local server चलाया गया
- server JSON वाले POST requests लेकर उन्हें
/tmp/diag.json में लिखता था, और Access-Control-Allow-Origin: * header भेजता था ताकि दूसरे domain का code भी उससे communicate कर सके
- Claude ने browser में load होने वाले template में JavaScript insert किया और
<navigation-search> Web Component के अंदर <textarea> को ढूँढा
- insert किए गए code ने
devicePixelRatio, scrollWidth, clientWidth, whiteSpace, width को measure करके local server पर भेजा
const host = document.querySelector("navigation-search");
const ta = host.shadowRoot.querySelector("textarea");
const cs = getComputedStyle(ta);
fetch("http://127.0.0.1:9999/diag", {
method: "POST",
body: JSON.stringify({
dpr: window.devicePixelRatio,
scrollWidth: ta.scrollWidth, clientWidth: ta.clientWidth,
whiteSpace: cs.whiteSpace, width: cs.width,
}),
});
Opus में switch और fix verification
- कई techniques खोज निकालने के बाद Fable किसी अदृश्य guardrail से टकराया और Opus पर downgrade हो गया
- Opus को पूरी conversation history की access थी और उसने Fable द्वारा खोजी गई techniques का उपयोग जारी रखा
- इसके बाद Opus ने समस्या ढूँढी, test किया, verify किया और fix commit पूरा किया
- Opus ने session में असली browsers के लिए इस्तेमाल की गई automation techniques और executable code examples को
/tmp/automation-report.md में संक्षेपित किया
- यह report अलग gist के रूप में share की गई, और पूरा Claude Code terminal log भी public किया गया
किए गए पूरे काम की समीक्षा
- Claude Fable 5 और Claude Code ने local development server चलाने का तरीका खोज लिया और execution के लिए ज़रूरी fake environment variables भी सेट किए
- Playwright Chrome session चलाया गया, और Chrome की visible scrollbar setting को
defaults write com.google.chrome.for.testing AppleShowScrollBars Always से चालू करके बाद में फिर बंद किया गया
- Playwright के Firefox और WebKit भी आज़माए गए, लेकिन bug reproduce नहीं हुआ
- यह पता लगाया गया कि default browser Safari है, और
textarea-scrollbar-test.html HTML document बनाया गया
- असली Firefox में test document खोला गया, और
osascript access को “osascript is not allowed assistive access” के कारण block कर दिया गया
pyobjc-framework-Quartz workaround खोजकर window-number आधारित screenshot flow बनाया गया
- site template में JavaScript जोड़कर
/ key trigger की गई, और Python CORS server से JSON data प्राप्त किया गया
- Web Component के shadow DOM के भीतर जाकर ज़रूरी जानकारी खोजी गई और Safari में bug के कारण की पुष्टि की गई
- custom template में संभावित fix लागू करके उसका behavior verify किया गया, फिर समस्या के समाधान की report दी गई
लागत का अनुमान
- इस्तेमाल किया जा रहा plan प्रति माह $100 वाला Claude Max plan है, और Anthropic ने कहा कि 22 जून तक Fable के लिए उदार allowance दिया जाएगा, उसके बाद पूरा API pricing charge किया जाएगा
- AgentsView का उपयोग खर्च track करने के लिए किया गया, और यदि पूरी कीमत दी जाती तो उस session की लागत लगभग $12.11 निकलती
- session output
68606, maximum context 113178, और उपयोग किए गए models claude-fable-5 तथा claude-opus-4-8 थे
- Fable, यदि लागत पर नज़र न रखी जाए, तो CSS debugging के लिए नए तरीके बनाते हुए लगभग $12 का token cost आसानी से खर्च कर सकता है
Sandbox की ज़रूरत
- सिर्फ दो पंक्तियों के CSS fix के लिए ज़रूरी जानकारी पाने में Fable ने आखिरकार चरम तरीके तक अपना लिए, यह प्रभावशाली था
- coding agents वह सब कर सकते हैं जो कोई user terminal में command डालकर कर सकता है, और frontier models को बहुत सारी techniques पता होती हैं
- अगर malicious instructions, code या issue thread के अंदर prompt injection, या terminal में लापरवाही से paste की गई सामग्री होती, तो यह data leak या दूसरे नुकसान में बदल सकता था
- sandbox के बाहर coding agent चलाना हमेशा बुरा विचार है, और इसे coding agent security incidents के प्रमुख कारणों में गिना जाना चाहिए
- Fable अधिक smart होने के कारण malicious instructions पर ज़्यादा शक कर सकता है, लेकिन एक बार फँसने पर उसकी लगातार proactive प्रकृति नुकसान को बड़ा बना सकती है
1 टिप्पणियां
Hacker News राय
यह मानवीय agency के घातक नुकसान का एक प्रभावशाली उदाहरण लगता है, और असल commits भी काफ़ी कुछ उजागर करते हैं [0]
लेखक horizontal scrollbar छिपाना चाहता था। कोई ठीक-ठाक junior frontend developer तुरंत पूछता, “
overflow-x: hidden;कहाँ डालना है?” पूरा समाधान बस इतना था कि browser में “Inspect element” दबाकर CSS class ढूँढो, फिर code में (rip)grep से उसकी location खोजो और एक लाइन जोड़ दोकोई ज़्यादा proactive programmer यह भी पूछता कि आखिर खाली textbox में ऐसा कौन-सा content है जो overflow कर रहा है, root cause के बजाय symptom छिपाने वाले workaround दो जगह क्यों डालने पड़ रहे हैं, और क्या
textareaको सिर्फ़ एक बार style करना बेहतर नहीं होगा[0] https://github.com/datasette/datasette-agent/commit/a75a8b72...
__init__.pyके अंदर छिपा क्यों है [0]Claude के साथ मेरे अनुभव में आम तौर पर अच्छी तरह structured code मिला है, इसलिए यह सच में थोड़ा चौंकाने वाला है। हालाँकि मैं इसे proper vibe coding से ज़्यादा, एक robot engineer के साथ दोस्ताना Socratic बहस जैसा मानता हूँ
[0] https://github.com/datasette/datasette-agent/blob/main/datas...
मैं junior developer से भी ठीक यही उम्मीद करता हूँ: पहले verify करो कि bug सच में है, फिर उसे ठीक करने का तरीका ढूँढो, और उसके बाद confirm करो कि bug ठीक हुआ या नहीं
समस्या, जैसा कि blog post ने भी सही पकड़ा, यह है कि ऊपर की permission चाहिए तो रुककर पूछने के बजाय यह लगातार अपने दम पर hacky workaround ढूँढता रहता है। अगर इसे human developer से तुलना करें, तो यह वैसा है जैसे किसी third-party sandbox की access चाहिए हो, लेकिन senior से credentials माँगने के बजाय वह खुद शुरू से अपना sandbox बनाने लगे
मुझे वह समय याद आता है जब online दुनिया से जुड़ने पर प्रति मिनट पैसे लगते थे। तब meter चलते रहने देने की incentive बहुत होती थी; यह भी मुझे कुछ वैसा ही लगता है
यह कि लोग साफ़-साफ़ मानते हुए भी कि “coding agent को sandbox के बाहर चलाना हमेशा बुरा विचार था”, फिर भी ऐसा करते रहते हैं — यह बात लगातार उलझाने वाली और हैरान करने वाली लगती है
यह वैसा है जैसे कोई passenger seat पर बैठकर पैर dashboard पर रखे हुए अपना वीडियो पोस्ट करे और कहे, “याद रखिए, अगर ऐसा करते हुए accident हो जाए तो airbag आपकी टांगें तोड़ सकता है या इससे भी बुरा कर सकता है! अच्छा हुआ मेरे साथ ऐसा नहीं हुआ!”
असली समस्या यह है कि लोग prompt देने के तरीके में बहुत अलग होते हैं
उदाहरण के लिए, मैं कह सकता हूँ, “इस X cluster में इस service के k8s pod पर इस annotation के कई variants टेस्ट करो। इससे Y theory साबित होती है।” लेकिन मेरा सहकर्मी कहेगा, “Y theory टेस्ट करो।” अगर यही बात दो junior engineers से कही जाए, तो एक production environment में random कोशिशें कर सकता है, और दूसरा local tests चला सकता है। यह बिना निर्देश वाला अनुरोध है — “जो करना हो करो, बस पता लगाओ” — और agent इसे ऐसे पढ़ता है जैसे किसी junior पर “पता लगाओ” का दबाव तो बहुत डाला गया हो, लेकिन boundaries बताई ही न गई हों
claudeरखने वाले तरीके से संतुष्ट हूँमेरे dotfiles जैसे ही हैं, बस secrets नहीं हैं। मेरी home directory 0700 है,
claudeकी अलग SSH key है, उसे मैंने अपने GitHub profile में जोड़ा है लेकिन उस पर passphrase लगा है और push/pull मैं खुद करता हूँ। अलग Postgres dev/test user और database भी है, और वह superuser नहीं हैयानी मैं उसे project के दूसरे developer की तरह treat करता हूँ। अगर उसे
sudoसे कुछ चलाना हो तो वह मुझसे पूछता है। कई बार हम दोनों parallel में एक ही काम भी कर सकते हैं। आखिर Unix मूल रूप से multi-user system होना ही थाएक काम की तरकीब यह है कि उसके git repos में ऐसा एक extra remote रखा जाए:
paul ssh://paul@localhost/~/src/example (fetch)paul ssh://paul@localhost/~/src/example (push)इससे उन चीज़ों पर साथ काम करना आसान हो जाता है जिन्हें मैं अभी share करने के लिए तैयार नहीं हूँ
यह setup काफ़ी आरामदायक है। बस Linux privilege escalation bugs की चिंता रहती है। मुझे भरोसा नहीं कि AI यह समझता है कि vulnerability exploit करना allowed नहीं है। अपने पहले job में, जब काम बहुत urgent था, तब मुझे याद है कि मैंने आधिकारिक रूप से
httpd.confedit करने तक सीमितsudopermission बढ़ाने के लिए vim की:!सुविधा का गलत इस्तेमाल किया था। आजकल automatic security updates होने के बावजूद मैं packages को हाथ से और ज़्यादा बार upgrade करने लगा हूँ। नहीं लगता कि Opus security vulnerabilities ढूँढने की मेहनत करेगा, लेकिन Fable शायद करे, और हाल में ऐसी vulnerabilities बहुत रही हैं। भविष्य के models अपने-आप नई vulnerabilities ढूँढ सकते हैं या SSH key passphrase सीखने के लिए keylogger भी install कर सकते हैंअलग user रखना, अलग machine रखने के अलावा, मेरी सुनी हुई लगभग सबसे paranoid setup में से एक है। इसलिए कभी-कभी सोचता हूँ कि कहीं मैं speed और convenience बहुत ज़्यादा तो sacrifice नहीं कर रहा। फिर भी व्यवहार में यह अब भी बहुत सुविधाजनक है, और मुझे यह efficient तथा responsible तरीका लगता है। अगर इसमें कोई छेद दिखे तो सुनना चाहूँगा
Fable ऐसा लगता है जैसे “एक harness पर चल रहा Opus, जिसे तब तक रुकने नहीं दिया जाता जब तक उसे यक़ीन न हो जाए कि समस्या ठीक हो गई है।” अगर benchmark में बेहतर model चाहिए, तो यह दिशा समझ में आती है
यह बहुत अच्छा model है, लेकिन premium काफ़ी बड़ा है। सिर्फ token महँगे नहीं हैं, model उन tokens को पूरा इस्तेमाल भी करना चाहता है। उदाहरण के लिए React Native के काम में Fable यह नहीं कहता, “ठीक है, हो गया, खत्म।” वह पूरे app को शुरू से फिर build करना, पूरा test suite चलाना, और सभी logs तथा warnings देखना चाहता है
LLM इस्तेमाल करते हुए पहली बार मुझे लगा कि model upgrade, भले कंपनी allow करे, उसकी कीमत वसूल नहीं है। क्योंकि builds और tests मेरी machine और battery पर इतना ज़ोर डालते हैं कि मैं और कुछ कर ही नहीं पाता
अभी तो Opus पर ultracode इस्तेमाल करना बेहतर लगता है। main context pollution कम है, और investigation भी ज़्यादा parallel होती है
Fable ने मेरे game के UI changes को verify करने की कोशिश की। मैं दूसरी window में काम कर रहा था, तभी मैंने taskbar में program खुलते देखा। Fable ने CLI में movie maker tool से game खोला, output रिकॉर्ड किया, और आख़िरी frame capture करके UI verify किया। जब game की welcome screen उस हिस्से को ढक रही थी जिसे वह देखना चाहता था, तो उसने temporary worktree बनाई, welcome screen हटाई, और फिर movie maker दोबारा चलाया
वह सब देखते हुए मुझे लगा कि अगर उसने मुझसे बस screenshot माँग लिया होता तो tokens बच जाते। फिर भी प्रभावित हुए बिना रहना मुश्किल था। Opus ऐसा कभी नहीं करता
ऐसे लेख पढ़कर लगता है जैसे ये किसी parallel universe से आए हों। मेरे निजी अनुभव और मेरे खुद बनाए, अभी भी कुछ हद तक subjective benchmark(https://pshirshov.github.io/llm-bench-pi-oneshot/) के हिसाब से Fable इतना भी प्रभावशाली नहीं है
gpt-5.5 और opus 4.8 के स्तर पर यह कभी बेहतर होता है, कभी बदतर, और साफ़ तौर पर ज़्यादा महंगा है; यहाँ तक कि React सवालों पर यह यह कहकर मना भी कर देता है कि chemistry मदद नहीं कर सकती
समझ नहीं आता कि यह सारा शोर सच में ठोस आधार पर है, या फिर IPO से पहले AGI का बढ़ा-चढ़ाकर प्रचार
मैं Fable से complex implementation coordinate करवा रहा हूँ। मैं उसे Linear के upper-level tickets देकर कहता हूँ, “इन tickets के sub-issues देखो, तय करो कि इनमें से कौन-से तुम खुद implement कर सकते हो, किस क्रम में करना चाहिए, और दूसरे team members जो इस समय काम कर रहे हैं उनके साथ इसे कैसे coordinate करना है।” ये tickets मामूली नहीं हैं; इनमें कई moving parts और dependencies हैं, और ये उसी project के भीतर और बाहर, जैसे backend, दोनों से जुड़े होते हैं
फिर Fable tickets चुनता है और हर ticket को sub-agent (जो फिर Fable ही है) को delegate करता है। sub-agent उस ticket की Figma design देखता है, repository guidelines और conventions का सख्ती से पालन करते हुए उसे perfectly implement करता है, हर हिस्से के screenshots लेता है, detailed commit messages और PR description लिखता है, और सबूत के तौर पर screenshots भी जोड़ता है। आखिर में यह ऐसा summary देता है जैसे, “PR #1283 को पहले merge होना होगा। वैसे इस-उस screen के लिए Figma design नहीं था, इसलिए पहले से implement की गई मिलती-जुलती screen देखकर वही pattern apply किया गया।”
शायद यह Fable की क्षमता का सिर्फ़ 20% होगा। यह सचमुच एक powerful model है
Opus 4.8 भी इनमें से बहुत-सा काम कर सकता था, लेकिन उसे काफी hand-holding चाहिए होती थी, और जहाँ अटकता वहाँ अक्सर “मैं यहाँ तक कर पाया, लेकिन आगे नहीं बढ़ सकता” कहकर रुक जाता था
Fable थोड़ा ज़्यादा smart है, लेकिन शायद इसी वजह से कुल मिलाकर यह एक बदतर tool लगता है
जो 50-line patch एक prompt में खत्म हो सकता है, उसे यह बार-बार 30 मिनट की exploration में बदल देता है, और अक्सर इसकी बिल्कुल ज़रूरत नहीं होती। ऊपर से यह अक्सर गलत भी होता है
मैंने इसे एक काफ़ी simple task पर आज़माया। hash function बदलने पर redis deduplication cache को backfill करना था। करना बस इतना था कि सभी DB values पर नया hash function चलाकर cache को expand कर दिया जाए, लेकिन Fable ने एक ज़रूरत से ज़्यादा complex cache update implement कर दिया जो हर cache value के hash function version का अनुमान लगाकर सिर्फ़ पुराने hashes दोबारा calculate करने की कोशिश करता था। कुछ संदर्भों में यह ठीक लग सकता है, लेकिन 30 मिनट तक tokens जलाने का नतीजा वह code था जिसे मैंने 10-line
forloop से बदल दियाprogramming के लिए कुल मिलाकर यह बुरी खबर लगती है। साफ़ दिख रहा है कि LLM technology intelligence के मामले में diminishing returns की दीवार से टकरा रही है, और अगर उसका जवाब सिर्फ़ यह है कि उन्हें और ज़्यादा persistent बना दिया जाए, तो इससे जुड़े लगभग सभी लोगों के लिए यह बहुत खराब समाधान है। हाँ, tokens बेचने वालों और उन लोगों को छोड़कर जो 0-day scan करने लायक tokens खरीद सकते हैं
पहली, इनमें causal model नहीं है। ये बस trial-and-error search कर सकते हैं, जो कई समस्याओं पर ठीक-ठाक काम करती है, लेकिन बहुत-सी दूसरी समस्याओं में causal model की ज़रूरत होती है
दूसरी, prompts precise नहीं होते। programming languages और machine models इसी समस्या को हल करने के लिए बनाए गए थे। English शानदार है, लेकिन यह programming language नहीं है
IPO से पहले उन्होंने strategic adoption और manipulation खूब किया, और उस लिहाज़ से यह असरदार भी रहा
tscचलाना काफी था, लेकिन इसने हर sub-agent मेंtscचलाया और फिर नतीजों को combine करने के लिए एक और script लिख दीसचमुच इतना गुस्सा आया कि क्या कहूँ। जो काम ज़्यादा से ज़्यादा 1~2 मिनट में खत्म हो जाता, वह इस रास्ते पर जाकर करीब 10 मिनट ले गया
बाद में मैं इससे कहीं ज़्यादा complex काम आज़माऊँगा, लेकिन simple कामों में यह mailbox तक जाने के लिए Corvette चलाने जैसा लगा
अपने local machine पर terminal-based LLM न इस्तेमाल करने की जो हिचक मुझे रही है, वह बार-बार सही साबित होती लगती है
malicious behavior न भी हो, तब भी ऐसी बहुत-सी चीज़ें हैं जो अच्छी-खासी मात्रा में काम बर्बाद कर सकती हैं या मेरी machine और मेरी काम करने की क्षमता को ही बिगाड़ सकती हैं
1 trillion dollar company हो तो यह व्यवस्था अपेक्षाकृत आसानी से होनी चाहिए, है न? पूरे harness के मुकाबले यह तो छोटी-सी बात लगती है
security निश्चित रूप से बड़ा मुद्दा है, लेकिन इसे पढ़ते हुए मेरे दिमाग में बार-बार यही आता रहा कि 2 lines of CSS ठीक करने के लिए आखिर कितने tokens खर्च हुए होंगे
अंदाज़ा इस बात का लगाना चाहिए कि किसी इंसान को इसमें कितना समय लगता
लोगों को अब बस आलसी रहते हुए भी productive दिखने का तरीका मिल गया है, और यह फिर भी आलस ही है
अब ऐसे लोग हैं जिन्हें एक email लिखने के लिए ही सैकड़ों हज़ार dollars के hardware तक पहुँच चाहिए। मैं ऐसी चीज़ों से दूर रहूँगा। मैं अपना दिमाग इसलिए नहीं जलाना चाहता कि किसी billionaire की thinking machine पर निर्भर हो जाऊँ
और local “मेरे लिए सोचने वाली machine” से भी मैं अपना दिमाग नहीं जलाऊँगा। मैं उस hardware से ज़्यादा क़ीमती इंसान बनना चाहता हूँ, जितना hardware मेरी पहुँच में है
Fable 5 ने अपने तरीके से काम किया, यह मेरा निजी अनुभव काफ़ी सकारात्मक रहा
यह ऐसे Python module crash के root cause को खोजने की कोशिश कर रहा था जो logs या console में कोई error छोड़े बिना होता था। Fable ने UI click को simulate करने वाला एक test harness लिखा, फिर मेरे code पर binary search करके वह बिंदु ढूंढा जहाँ crash शुरू होता था। Crash के कारण पर थोड़ा बढ़ाकर hypothesis बनाई, फिर
/tmpके नीचे उस Python module के हर version के लिए virtual environment बनाने वाले bash one-liner commands लगातार चलाए और वह version खोज निकाला जिसमें crash नहीं होता थाइसने मुझसे अकेले किए गए प्रयास की तुलना में root cause को कहीं ज़्यादा गहराई से ट्रेस किया, और कारण एक module regression था जो heap allocation overflow पैदा कर रहा था। इसने bug report दर्ज करने लायक पर्याप्त जानकारी और simplified example दिया, और मेरे application में यह न हो इसके लिए workaround भी लिखा
इसे पूरी तरह खुली छूट नहीं दी गई थी। यह जो भी CLI command चलाने वाला होता, मैं पहले उसकी समीक्षा करता, और जब मैं “yes” कहकर आगे बढ़ाता, तब excessive token use रोकने के लिए उत्तर में अतिरिक्त निर्देश जोड़ता
Prompt या Markdown में boundaries सेट करना मददगार होता है। उदाहरण के लिए, अगर आप कहें कि web browser automation का इस्तेमाल न करे, तो मैंने देखा कि Fable उस नियम और उसके आशय—दोनों का पालन करता है। इसने कोई अजीब hack भी नहीं किया
हालांकि, ऐसा लगता है कि यह कुछ simple debugging tasks को वास्तविकता से ज़्यादा complex मान लेता है। शायद मूल पोस्ट इसका अच्छा उदाहरण है
git bisectloop चलाने के लिए क्या सचमुच किसी agent की ज़रूरत थीTest case और
git bisectloop generate करने तक तो बात समझ आती है, लेकिन यह समझ नहीं आता कि उसे internet और GPU वगैरह के ज़रिए क्यों चलाना पड़े। यह तो ऐसा काम लगता है जो single-core Celeron पर भी चल सकता है, है न?