{"record":{"id":"25aa40fa140dae5b","repo":"github/spec-kit","slug":"skills-dir-is-not-a-directory","errorCode":null,"errorMessage":"{skills_dir} is not a directory","messagePattern":"(.+?) is not a directory","errorType":"console","errorClass":"NotADirectoryError","httpStatus":null,"severity":"error","filePath":"src/specify_cli/extensions/__init__.py","lineNumber":1316,"sourceCode":"        ``create`` is true. Read-only callers can pass ``create=False`` to\n        resolve the configured target without changing the filesystem.\n\n        Returns ``None`` (instead of raising) when the directory cannot\n        be created due to symlink, containment, or permission issues so\n        that callers can fall back gracefully.\n        \"\"\"\n        from .. import (\n            _get_skills_dir as resolve_configured_skills_dir,\n            _print_cli_warning,\n            load_init_options,\n            resolve_active_skills_dir,\n        )\n\n        def _ensure_usable(skills_dir: Path) -> Optional[Path]:\n            try:\n                skills_dir.mkdir(parents=True, exist_ok=True)\n                if not skills_dir.is_dir():\n                    raise NotADirectoryError(f\"{skills_dir} is not a directory\")\n            except (OSError, ValueError) as exc:\n                _print_cli_warning(\n                    \"resolve\",\n                    \"skills directory\",\n                    str(skills_dir),\n                    exc,\n                    continuing=\"Continuing without skill registration.\",\n                )\n                return None\n            return skills_dir\n\n        opts = load_init_options(self.project_root)\n        if not isinstance(opts, dict):\n            return None\n        selected_ai = opts.get(\"ai\")\n        if not isinstance(selected_ai, str) or not selected_ai:\n            return None\n","sourceCodeStart":1298,"sourceCodeEnd":1334,"githubUrl":"https://github.com/github/spec-kit/blob/bf88c9f9a82fa370c7a7257aa2b3cf10b457b65c/src/specify_cli/extensions/__init__.py#L1298-L1334","documentation":"Error \"{skills_dir} is not a directory\" thrown in github/spec-kit.","triggerScenarios":"Thrown at src/specify_cli/extensions/__init__.py:1316 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Remove or replace the non-directory at the skills path so the skills directory can be used."],"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"}