{"record":{"id":"4e72bf594d2d8308","repo":"coleam00/Archon","slug":"unknown-run-config-key-docs-unknowndocskey","errorCode":null,"errorMessage":"Unknown run config key 'docs.${unknownDocsKey}'.","messagePattern":"Unknown run config key 'docs\\.(.+?)'\\.","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/core/src/config/run-config.ts","lineNumber":201,"sourceCode":"    if (classification.kind === 'unavailable') {\n      throw new Error(`Run config key '${key}' cannot apply: ${classification.reason}.`);\n    }\n  }\n\n  if (value.assistant !== undefined && value.defaultAssistant !== undefined) {\n    throw new Error(\n      \"Run config cannot set both 'assistant' and 'defaultAssistant'; use one spelling.\"\n    );\n  }\n\n  const docs = value.docs;\n  if (docs !== undefined) {\n    if (!isRecord(docs)) {\n      throw new Error(\"Invalid run config at 'docs': expected an object\");\n    }\n    const unknownDocsKey = Object.keys(docs).find(key => key !== 'path');\n    if (unknownDocsKey) {\n      throw new Error(`Unknown run config key 'docs.${unknownDocsKey}'.`);\n    }\n  }\n\n  const candidate = {\n    ...(value.assistant !== undefined || value.defaultAssistant !== undefined\n      ? { assistant: value.assistant ?? value.defaultAssistant }\n      : {}),\n    ...(value.assistants !== undefined ? { assistants: value.assistants } : {}),\n    ...(value.aliases !== undefined ? { aliases: value.aliases } : {}),\n    ...(value.tiers !== undefined ? { tiers: value.tiers } : {}),\n    ...(value.workflows !== undefined ? { workflows: value.workflows } : {}),\n    ...(isRecord(docs) && docs.path !== undefined ? { docsPath: docs.path } : {}),\n    ...(value.env !== undefined ? { envVars: value.env } : {}),\n  };\n  const parsed = workflowRunConfigLayerSchema.safeParse(candidate);\n  if (!parsed.success) throw validationError(parsed.error);\n  return { layer: normalizeRunConfigSemantics(parsed.data), source };\n}","sourceCodeStart":183,"sourceCodeEnd":219,"githubUrl":"https://github.com/coleam00/Archon/blob/0773b9745896ef0612e709c80845a0f7db315b19/packages/core/src/config/run-config.ts#L183-L219","documentation":"The 'docs' object currently accepts only the 'path' key; any other key inside docs is rejected so stale or misspelled options fail loudly.","triggerScenarios":"Passing docs: { url: ..., root: ... } or any key other than 'path' to parseWorkflowRunConfig().","commonSituations":"Guessing at docs option names; copying options from another tool's docs config; older examples using keys that no longer exist.","solutions":["Keep only 'path' inside docs and remove other keys","Move any extra settings to a supported location in the config","Check current docs for the accepted docs schema"],"exampleFix":"// before\ndocs:\n  root: ./docs\n// after\ndocs:\n  path: ./docs","handlingStrategy":"validation","validationCode":"function assertDocsKeys(doc) { const extra = Object.keys(doc.docs ?? {}).filter(k => k !== 'path'); if (extra.length) throw new Error(`Unknown docs keys: ${extra.join(', ')}`); }","typeGuard":"function isDocsConfig(v) { return typeof v === 'object' && v !== null && Object.keys(v).every(k => k === 'path'); }","tryCatchPattern":"try { cfg = parseWorkflowRunConfig(doc, source); } catch (e) { const m = String(e.message).match(/Unknown run config key 'docs\\.(\\S+)'/); if (m) console.error(`Remove docs.${m[1]}; only docs.path is supported`); throw e; }","preventionTips":["Only use 'path' inside docs; look up current docs for accepted keys","Do not copy docs options from other tools","Schema-validate the docs object before loading"],"tags":["config","validation","typo"],"backgroundTag":"unknown-config-key","analyzedSha":"0773b9745896ef0612e709c80845a0f7db315b19","analyzedAt":"2026-09-01T02:28:07.064Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T05:18:18.240Z"}