{"record":{"id":"072bb1d2fd6ade61","repo":"github/spec-kit","slug":"context-capitalize-path-is-not-a-directory-l","errorCode":null,"errorMessage":"{context.capitalize()} path is not a directory: {label}","messagePattern":"(.+?) path is not a directory: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/shared_infra.py","lineNumber":198,"sourceCode":"    project_path: Path,\n    directory: Path,\n    *,\n    create: bool = True,\n    context: str = \"shared infrastructure directory\",\n) -> None:\n    \"\"\"Create a shared infra directory without following symlinked parents.\"\"\"\n    root = project_path.resolve()\n    rel = _shared_relative_path(project_path, directory)\n    current = project_path\n\n    for part in rel.parts:\n        current = current / part\n        label = _shared_destination_label(project_path, current)\n        if current.is_symlink():\n            raise SymlinkedSharedPathError(f\"Refusing to use symlinked {context}: {label}\")\n        if current.exists():\n            if not current.is_dir():\n                raise ValueError(f\"{context.capitalize()} path is not a directory: {label}\")\n            try:\n                current.resolve().relative_to(root)\n            except (OSError, ValueError):\n                raise ValueError(f\"{context.capitalize()} escapes project root: {label}\") from None\n            continue\n        if not create:\n            raise ValueError(f\"{context.capitalize()} does not exist: {label}\")\n        current.mkdir()\n        if current.is_symlink():\n            raise SymlinkedSharedPathError(f\"Refusing to use symlinked {context}: {label}\")\n        try:\n            current.resolve().relative_to(root)\n        except (OSError, ValueError):\n            raise ValueError(f\"{context.capitalize()} escapes project root: {label}\") from None\n\n\ndef _validate_safe_shared_directory(project_path: Path, directory: Path) -> None:\n    \"\"\"Validate existing directory parents while allowing missing directories.\"\"\"","sourceCodeStart":180,"sourceCodeEnd":216,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/shared_infra.py#L180-L216","documentation":"Error \"{context.capitalize()} path is not a directory: {label}\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/shared_infra.py:198 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove the non-directory at the path so a directory can be created, or point to a real directory."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c","analyzedAt":"2026-08-14T19:43:37.150Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}