Handbooks
संदर्भ

Configuration संदर्भ

Handbooks की हर setting, उसके flag, environment variable, config-फ़ाइल key, प्रकार और डिफ़ॉल्ट के साथ — registry से जनरेट की गई।

यह पृष्ठ एक जनरेटेड पेज का अनुवाद है। अंग्रेज़ी मूल pnpm run config:docs द्वारा settings registry से जनरेट होता है और drift test से सुरक्षित है; यह अनुवाद हाथ से बनाए रखा जाता है — अंग्रेज़ी मूल बदलने पर इसे भी अपडेट करें।

प्राथमिकता

हर setting उन्हीं परतों से होकर हल होती है, सबसे ऊँची प्राथमिकता पहले: flag > shell env > .env > handbook.config.yaml > डिफ़ॉल्ट। जो पहली परत मान देती है वही जीतती है और उस setting के लिए उसके नीचे की हर परत अनदेखी कर दी जाती है। यह देखने के लिए कि असल में क्या हल हुआ और वह किस परत से आया, handbook config चलाएँ — या केवल एक subcommand देखने के लिए handbook config --command <name>

नामकरण

registry में एक camelCase key एक साथ तीनों सतहों को चलाती है: एक flag, एक environment variable, और एक config-फ़ाइल key। इनमें से किसी के आगे कमांड का नाम लगाने से वह सतह एक subcommand तक सीमित हो जाती है, और तीनों पर यह वही रूपांतरण है — HANDBOOK_<KEY> बनता है HANDBOOK_<COMMAND>_<KEY>, और key बनता है <command>Key, चाहे वह सपाट लिखा हो या <command>: के नीचे एक स्तर nested। नीचे (scoped) चिह्नित setting केवल उपसर्ग वाला env नाम स्वीकार करती है, क्योंकि उसका अर्थ हर कमांड पर बदलता है (--out, skill पैकेज में --lang)।

Bootstrap

तीन शीर्ष-स्तरीय settings ऊपर की परतों की ओर इशारा करती हैं, और खुद registry के बाहर हैं, बाकी हर setting से पहले एक बार हल होती हैं — यही वजह भी है कि इनमें से कोई उसी चीज़ से सेट नहीं की जा सकती जिसे वह लोड करती है: handbook.config.yaml के भीतर एक --env key, .env के भीतर एक --env-file पंक्ति, या उसी फ़ाइल के भीतर एक --config key — इन्हें पढ़ने वाला कोई बचता ही नहीं।

  • --env <name> (या HANDBOOK_ENV) प्रति-environment cascade चुनती है — तीनों में अकेली जिसके पास flag और environment-variable दोनों रूप हैं, क्योंकि यह किसी एक ठीक फ़ाइल की ओर इशारा करने के बजाय एक environment का नाम लेती है।
  • --env-file <path> ठीक वही एक फ़ाइल लोड करती है, नीचे की cascade को छोड़कर।
  • --config <path> ठीक एक config फ़ाइल का नाम लेती है, नीचे बताई environment-सजग खोज को छोड़कर (डिफ़ॉल्ट: working directory से ऊपर चलकर मिली निकटतम handbook.config.yaml-परिवार की फ़ाइल, repo सीमा पर रुकते हुए)।

.env cascade

--env-file न हो तो CLI एक तय फ़ाइल के बजाय .env* फ़ाइलों की cascade लोड करती है, सबसे ऊँची प्राथमिकता पहले। मौजूदा applyEnvFile नियम — पहले से सेट key को कभी override न करना — ही वह चीज़ है जो cascade को इससे ज़्यादा कुछ नहीं बनाती कि "इन्हें इसी क्रम में बुलाओ, key सेट करने वाली पहली फ़ाइल जीतती है":

#फ़ाइलकौनदायराcommitted?
1shell environmentहमेशा जीतता है
2.env.<name>.localनिजीकेवल यह environmentनहीं (gitignored)
3.env.<name>टीमकेवल यह environmentहाँ
4.env.localनिजीहर environmentनहीं (gitignored)
5.envटीमआधार रेखाहाँ

पंक्ति 2 और 3 तभी लागू होती हैं जब --env/HANDBOOK_ENV किसी environment का नाम ले। दोनों में से कोई सेट न हो तो केवल पंक्ति 4 और 5 लोड होती हैं — ठीक वही जो इस cascade के आने से पहले लोड होता था, इसलिए बिना .env.local वाले किसी मौजूदा सेटअप में कोई बदलाव दिखता ही नहीं।

environment के साथ config-फ़ाइल खोज

--config को छोड़ दें तो खोज अब भी working directory से ऊपर चलती है और repo सीमा पर रुकती है, पर हर विज़िट की गई directory में वह अब पहले handbook.config.<name>.{yaml,yml,json} देखती है (केवल तब जब कोई environment नामित हो), उसके बाद सादी handbook.config.yaml वगैरह — इसलिए नामित फ़ाइल उसी directory में पड़ी सादी फ़ाइल को हमेशा हरा देती है, भले ही सादी फ़ाइल working directory के ज़्यादा पास वाले स्तर पर मौजूद हो। कोई environment नामित न हो तो खोज अपरिवर्तित रहती है।

यह देखने के लिए कि कौन-सा environment सक्रिय है और उसने ठीक कौन-सी फ़ाइलें लोड कीं, प्राथमिकता क्रम में, handbook config चलाएँ — चार मान-परतों के ऊपर एक cascade इतने संभावित स्रोत बना देती है कि उन्हें याद से ट्रैक नहीं किया जा सकता, और जिस परत को यह कमांड दिखा न सके वह उस परत से अलग नहीं जो काम ही न करे।

readWorkers के लिए हल किया उदाहरण (flag --read-workers <n>, डिफ़ॉल्ट 12):

सतहसपाटgenerate तक scoped
envHANDBOOK_READ_WORKERSHANDBOOK_GENERATE_READ_WORKERS
handbook.config.yaml keyreadWorkersgenerateReadWorkers

config-फ़ाइल के रूप आपस में बदले जा सकते हैं: सपाट readWorkers: ... और nested generate: { readWorkers: ... } का मतलब एक ही है, क्योंकि पढ़े जाने से पहले फ़ाइल उसी camelCase जोड़ से सपाट कर दी जाती है।

analyze

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
source--source <dir>HANDBOOK_SOURCEpathआवश्यकस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
work--work <dir>HANDBOOK_WORKpathआवश्यकpipeline artifacts रखने वाली work directory; skill के लिए वैकल्पिक, जहाँ यह coverage.json जोड़ती है
lang--lang <lang>HANDBOOK_LANGenum (auto, और कोई भी पंजीकृत भाषा)autoस्रोत भाषा; auto हर पंजीकृत भाषा पहचानकर मिला देता है

generate

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (खाली)LLM endpoint के लिए API key; बिना key वाले स्थानीय endpoints के लिए EMPTY इस्तेमाल करें। कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM का wire प्रारूप; 'openai' हर OpenAI-संगत endpoint को कवर करता है (यानी अधिकांश को)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-minimodel पहचानकर्ता
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1कोई भी OpenAI-संगत endpoint (होस्टेड, vLLM, LiteLLM, कोई proxy); जिस URL में credentials बैठे हों वह config फ़ाइल में अस्वीकार कर दिया जाता है, क्योंकि वह commit होती है
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000प्रति request अधिकतम आउटपुट tokens
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300प्रति request समय-सीमा सेकंड में; अटके कॉल को दोबारा आज़माया जाता है, उसे किसी phase को बंधक बनाने नहीं दिया जाता
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6प्रति request पुनः प्रयास; 0 का मतलब एक ही प्रयास
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3पुनः प्रयासों के बीच आधार प्रतीक्षा, सेकंड में
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16एक client से होकर समवर्ती requests की वैश्विक सीमा
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonहर request body में मिलाए जाने वाले vendor फ़ील्ड; model/messages/token फ़ील्ड override नहीं किए जा सकते। free-form होने के कारण इसे secret माना जाता है: कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
source--source <dir>HANDBOOK_SOURCEpathआवश्यकस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
work--work <dir>HANDBOOK_WORKpathआवश्यकpipeline artifacts रखने वाली work directory; skill के लिए वैकल्पिक, जहाँ यह coverage.json जोड़ती है
lang--lang <lang>HANDBOOK_LANGenum (auto, और कोई भी पंजीकृत भाषा)autoस्रोत भाषा; auto हर पंजीकृत भाषा पहचानकर मिला देता है
phase--phase <spec>HANDBOOK_PHASEstringallall | 1 | 2 | 2a | 2b | 2c | 3, या अल्पविराम सूची
strategy--strategy <s>HANDBOOK_STRATEGYenum (file|member)file (डिफ़ॉल्ट) या member; अनसेट रहने पर work directory में दर्ज strategy बनी रहती है
skeleton--skeleton <path>HANDBOOK_SKELETONpathउपयोगकर्ता की लिखी skeleton.yaml, member strategy के लिए आवश्यक
narrateLang--narrate-lang <l>HANDBOOK_NARRATE_LANGenum (en|zh)enगद्य की भाषा
detail--detail <d>HANDBOOK_DETAILenum (brief|deep)briefcard की गहराई
synthMode--synth-mode <m>HANDBOOK_SYNTH_MODEenum (oneshot|doctor)oneshotskeleton संश्लेषण मोड
maxDoctorRounds--max-doctor-rounds <n>HANDBOOK_MAX_DOCTOR_ROUNDSint6doctor अभिसरण राउंड
readWorkers--read-workers <n>HANDBOOK_READ_WORKERSint12समवर्ती card बैच
readBatchSize--read-batch-size <n>HANDBOOK_READ_BATCH_SIZEintप्रति card बैच फ़ाइलें; अनसेट का मतलब --detail deep के लिए 1 और brief के लिए 8
maxCharsPerFile--max-chars-per-file <n>HANDBOOK_MAX_CHARS_PER_FILEint0हर फ़ाइल को n अक्षरों पर काटें; 0 का मतलब कोई सीमा नहीं
assignBatchSize--assign-batch-size <n>HANDBOOK_ASSIGN_BATCH_SIZEint25प्रति assignment बैच cards
assignWorkers--assign-workers <n>HANDBOOK_ASSIGN_WORKERSint12समवर्ती assignment बैच
organizeWorkers--organize-workers <n>HANDBOOK_ORGANIZE_WORKERSint8समवर्ती stage-organize कॉल
narrateWorkers--narrate-workers <n>HANDBOOK_NARRATE_WORKERSint8समवर्ती narration कॉल
resume--resumeHANDBOOK_RESUMEboolfalseजिन फ़ाइलों का card पहले से पूरा है उन्हें छोड़ दें
refresh--refreshHANDBOOK_REFRESHboolfalsephase 3 के caches अनदेखा करें
llmCache--llm-cacheHANDBOOK_LLM_CACHEboolfalseकच्चे LLM उत्तर /phase3/cache के नीचे cache करें; --refresh से निष्क्रिय

render

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
work--work <dir>HANDBOOK_WORKpathआवश्यकpipeline artifacts रखने वाली work directory; skill के लिए वैकल्पिक, जहाँ यह coverage.json जोड़ती है
title--title <title>HANDBOOK_TITLEstringSystem Handbookरेंडर किए आउटपुट के लिए handbook शीर्षक
out--out <dir>HANDBOOK_RENDER_OUT (scoped)pathआउटपुट स्थान; render डिफ़ॉल्ट रूप से /handbook, plan एक फ़ाइल लिखता है, skill एक directory लिखता है
html--htmlHANDBOOK_HTMLboolfalseसाथ में बहु-पृष्ठ HTML साइट /html के नीचे रेंडर करें
htmlSingle--html-singleHANDBOOK_HTML_SINGLEboolfalseसाथ में एक स्वयं-निहित HTML पृष्ठ रेंडर करें
agentSite--agent-siteHANDBOOK_AGENT_SITEboolfalseसाथ में agent locator index /agent के नीचे रेंडर करें
llmsTxt--llms-txtHANDBOOK_LLMS_TXTboolfalseसाथ में markdown के बगल में llms.txt और llms-full.txt लिखें
sourceBaseUrl--source-base-url <url>HANDBOOK_SOURCE_BASE_URLstringfile cards को / पर स्रोत से जोड़ें

skill

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
source--source <dir>HANDBOOK_SOURCEpathस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
work--work <dir>HANDBOOK_WORKpathpipeline artifacts रखने वाली work directory; skill के लिए वैकल्पिक, जहाँ यह coverage.json जोड़ती है
out--out <dir>HANDBOOK_SKILL_OUT (scoped)pathआवश्यकआउटपुट स्थान; render डिफ़ॉल्ट रूप से /handbook, plan एक फ़ाइल लिखता है, skill एक directory लिखता है
handbook--handbook <dir>HANDBOOK_SKILL_HANDBOOK (scoped)pathआवश्यकरेंडर किए handbook की directory; skill के लिए आवश्यक, plan के लिए वैकल्पिक संदर्भ
name--name <slug>HANDBOOK_NAMEstringआवश्यकskill slug (छोटे अक्षर-हाइफ़न)
project--project <name>HANDBOOK_PROJECTstringगद्य के लिए मानवीय प्रोजेक्ट नाम
agentDir--agent-dir <dir>HANDBOOK_AGENT_DIRpathरेंडर की गई agent locator साइट; references/agent/ के नीचे भेजी जाती है
bodyLang--lang <l>HANDBOOK_SKILL_BODY_LANG (scoped)enum (en|zh)enSKILL.md मुख्य भाग की भाषा; रूटिंग के लिए frontmatter अंग्रेज़ी ही रहता है

validate

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
source--source <dir>HANDBOOK_SOURCEpathस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
skill--skill <dir>HANDBOOK_SKILLpathआवश्यकजाँचने के लिए skill directory

plan

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (खाली)LLM endpoint के लिए API key; बिना key वाले स्थानीय endpoints के लिए EMPTY इस्तेमाल करें। कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM का wire प्रारूप; 'openai' हर OpenAI-संगत endpoint को कवर करता है (यानी अधिकांश को)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-minimodel पहचानकर्ता
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1कोई भी OpenAI-संगत endpoint (होस्टेड, vLLM, LiteLLM, कोई proxy); जिस URL में credentials बैठे हों वह config फ़ाइल में अस्वीकार कर दिया जाता है, क्योंकि वह commit होती है
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000प्रति request अधिकतम आउटपुट tokens
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300प्रति request समय-सीमा सेकंड में; अटके कॉल को दोबारा आज़माया जाता है, उसे किसी phase को बंधक बनाने नहीं दिया जाता
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6प्रति request पुनः प्रयास; 0 का मतलब एक ही प्रयास
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3पुनः प्रयासों के बीच आधार प्रतीक्षा, सेकंड में
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16एक client से होकर समवर्ती requests की वैश्विक सीमा
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonहर request body में मिलाए जाने वाले vendor फ़ील्ड; model/messages/token फ़ील्ड override नहीं किए जा सकते। free-form होने के कारण इसे secret माना जाता है: कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
source--source <dir>HANDBOOK_SOURCEpathआवश्यकस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
out--out <dir>HANDBOOK_PLAN_OUT (scoped)pathआउटपुट स्थान; render डिफ़ॉल्ट रूप से /handbook, plan एक फ़ाइल लिखता है, skill एक directory लिखता है
handbook--handbook <dir>HANDBOOK_PLAN_HANDBOOK (scoped)pathरेंडर किए handbook की directory; skill के लिए आवश्यक, plan के लिए वैकल्पिक संदर्भ
request--request <text>HANDBOOK_REQUESTstringआवश्यकप्राकृतिक भाषा में परिवर्तन का अनुरोध
maxTurns--max-turns <n>HANDBOOK_MAX_TURNSint30agent का turn बजट

apply

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
source--source <dir>HANDBOOK_SOURCEpathआवश्यकस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
plan--plan <file>HANDBOOK_PLANpathआवश्यकhandbook plan से बनी plan फ़ाइल
dryRun--dry-runHANDBOOK_DRY_RUNboolfalseकेवल सत्यापन, कभी न लिखें
backupRoot--backup-root <dir>HANDBOOK_BACKUP_ROOTpathबैकअप कहाँ जाते हैं; डिफ़ॉल्ट /.handbook-patches

rollback

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
source--source <dir>HANDBOOK_SOURCEpathस्रोत मूल; analyze/generate/plan/apply के लिए आवश्यक, बाकी जगह वैकल्पिक (validate/skill के लिए hash ताज़गी, और rollback के लिए वह वृक्ष जिसका बैकअप है)
backup--backup <dir>HANDBOOK_BACKUPpathआवश्यकmanifest.json वाली बैकअप directory
force--forceHANDBOOK_FORCEboolfalsepatch के बाद बदली फ़ाइलें भी बहाल करें

resync

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (खाली)LLM endpoint के लिए API key; बिना key वाले स्थानीय endpoints के लिए EMPTY इस्तेमाल करें। कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM का wire प्रारूप; 'openai' हर OpenAI-संगत endpoint को कवर करता है (यानी अधिकांश को)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-minimodel पहचानकर्ता
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1कोई भी OpenAI-संगत endpoint (होस्टेड, vLLM, LiteLLM, कोई proxy); जिस URL में credentials बैठे हों वह config फ़ाइल में अस्वीकार कर दिया जाता है, क्योंकि वह commit होती है
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000प्रति request अधिकतम आउटपुट tokens
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300प्रति request समय-सीमा सेकंड में; अटके कॉल को दोबारा आज़माया जाता है, उसे किसी phase को बंधक बनाने नहीं दिया जाता
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6प्रति request पुनः प्रयास; 0 का मतलब एक ही प्रयास
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3पुनः प्रयासों के बीच आधार प्रतीक्षा, सेकंड में
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16एक client से होकर समवर्ती requests की वैश्विक सीमा
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonहर request body में मिलाए जाने वाले vendor फ़ील्ड; model/messages/token फ़ील्ड override नहीं किए जा सकते। free-form होने के कारण इसे secret माना जाता है: कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
work--work <dir>HANDBOOK_WORKpathआवश्यकpipeline artifacts रखने वाली work directory; skill के लिए वैकल्पिक, जहाँ यह coverage.json जोड़ती है
title--title <title>HANDBOOK_TITLEstringSystem Handbookरेंडर किए आउटपुट के लिए handbook शीर्षक
case--case <dir>HANDBOOK_CASEpathआवश्यकcase directory: edited/ + plan.md + change.diff
useLlm--no-llmHANDBOOK_USE_LLMbooltrueकेवल संरचनात्मक ताज़गी के लिए false करें, गद्य बासी चिह्नित होगा
refreshRendered--no-renderHANDBOOK_REFRESH_RENDEREDbooltrue/handbook के नीचे पहले से रेंडर किए आउटपुट ताज़ा करना छोड़ने के लिए false करें
corrections--corrections <file>HANDBOOK_CORRECTIONSpathagent द्वारा बताई corrections.jsonl; उसकी फ़ाइलें refresh सेट को चौड़ा करती हैं
cardDetail--detail <d>HANDBOOK_RESYNC_CARD_DETAIL (scoped)enum (brief|deep)दोबारा बने cards की गहराई; अनसेट मौजूदा handbook से मेल खाता है
proseLang--narrate-lang <l>HANDBOOK_RESYNC_PROSE_LANG (scoped)enum (en|zh)दोबारा बने cards के गद्य की भाषा; अनसेट मौजूदा handbook से मेल खाता है

studio

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
llmApiKeyHANDBOOK_LLM_API_KEY, OPENAI_API_KEYstring"" (खाली)LLM endpoint के लिए API key; बिना key वाले स्थानीय endpoints के लिए EMPTY इस्तेमाल करें। कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
llmProvider--provider <name>HANDBOOK_LLM_PROVIDER, OPENAI_PROVIDERenum (openai|anthropic|gemini)openaiLLM का wire प्रारूप; 'openai' हर OpenAI-संगत endpoint को कवर करता है (यानी अधिकांश को)
llmModel--model <id>HANDBOOK_LLM_MODEL, OPENAI_MODELstringgpt-4o-minimodel पहचानकर्ता
llmBaseUrl--base-url <url>HANDBOOK_LLM_BASE_URL, OPENAI_BASE_URLstringhttps://api.openai.com/v1कोई भी OpenAI-संगत endpoint (होस्टेड, vLLM, LiteLLM, कोई proxy); जिस URL में credentials बैठे हों वह config फ़ाइल में अस्वीकार कर दिया जाता है, क्योंकि वह commit होती है
llmMaxTokens--max-tokens <n>HANDBOOK_LLM_MAX_TOKENS, OPENAI_MAX_TOKENSint16000प्रति request अधिकतम आउटपुट tokens
llmTimeout--timeout <sec>HANDBOOK_LLM_TIMEOUT, OPENAI_TIMEOUTint300प्रति request समय-सीमा सेकंड में; अटके कॉल को दोबारा आज़माया जाता है, उसे किसी phase को बंधक बनाने नहीं दिया जाता
llmMaxRetries--llm-retries <n>HANDBOOK_LLM_MAX_RETRIESint6प्रति request पुनः प्रयास; 0 का मतलब एक ही प्रयास
llmRetryBackoff--llm-retry-backoff <sec>HANDBOOK_LLM_RETRY_BACKOFFint3पुनः प्रयासों के बीच आधार प्रतीक्षा, सेकंड में
llmConcurrency--llm-concurrency <n>HANDBOOK_LLM_CONCURRENCYint16एक client से होकर समवर्ती requests की वैश्विक सीमा
llmExtraBodyHANDBOOK_LLM_EXTRA_BODY, OPENAI_EXTRA_BODYjsonहर request body में मिलाए जाने वाले vendor फ़ील्ड; model/messages/token फ़ील्ड override नहीं किए जा सकते। free-form होने के कारण इसे secret माना जाता है: कभी flag नहीं और config फ़ाइल में कभी अनुमत नहीं
port--port <n>HANDBOOK_PORTint4860जिस पोर्ट पर सुनना है
host--host <addr>HANDBOOK_HOSTstring127.0.0.1bind पता; जब तक आप इसे सेट न करें यह loopback पर ही रहता है (containers को 0.0.0.0 चाहिए)। CSRF guard फिर भी loopback Host हेडर माँगता है
stateDir--state-dir <dir>HANDBOOK_STATE_DIRpathstudio.json और प्रबंधित work directories कहाँ रहती हैं; डिफ़ॉल्ट $HOME/.handbook-studio

config

keyflagenvप्रकारडिफ़ॉल्टविवरण
logLevelHANDBOOK_LOG_LEVELenum (debug|info|warn|error|silent)infolog की विस्तार-मात्रा; -v/--verbose और -q/--quiet debug/error के संक्षिप्त रूप हैं
forCommand--command <name>HANDBOOK_FOR_COMMANDstringकेवल वे settings दिखाएँ जो इस subcommand पर लागू होती हैं; उसकी env/फ़ाइल/डिफ़ॉल्ट परतें यहाँ देखी जा सकती हैं, पर उस कमांड के अपने flags नहीं (वे कमांड को ही दें)
json--jsonHANDBOOK_JSONboolfalseमशीन-पठनीय आउटपुट
check--checkHANDBOOK_CHECKboolfalseकेवल सत्यापन; कुछ भी अमान्य या गायब हो तो गैर-शून्य exit

इस पृष्ठ पर