github/spec-kit · error · NotADirectoryError
{skills_dir} is not a directory
Error message
{skills_dir} is not a directory What it means
Error "{skills_dir} is not a directory" thrown in github/spec-kit.
Source
Thrown at src/specify_cli/extensions/__init__.py:1316
``create`` is true. Read-only callers can pass ``create=False`` to
resolve the configured target without changing the filesystem.
Returns ``None`` (instead of raising) when the directory cannot
be created due to symlink, containment, or permission issues so
that callers can fall back gracefully.
"""
from .. import (
_get_skills_dir as resolve_configured_skills_dir,
_print_cli_warning,
load_init_options,
resolve_active_skills_dir,
)
def _ensure_usable(skills_dir: Path) -> Optional[Path]:
try:
skills_dir.mkdir(parents=True, exist_ok=True)
if not skills_dir.is_dir():
raise NotADirectoryError(f"{skills_dir} is not a directory")
except (OSError, ValueError) as exc:
_print_cli_warning(
"resolve",
"skills directory",
str(skills_dir),
exc,
continuing="Continuing without skill registration.",
)
return None
return skills_dir
opts = load_init_options(self.project_root)
if not isinstance(opts, dict):
return None
selected_ai = opts.get("ai")
if not isinstance(selected_ai, str) or not selected_ai:
return None
View on GitHub (pinned to bf88c9f9a8)
Solutions
- Remove or replace the non-directory at the skills path so the skills directory can be used.
When it happens
Trigger: Thrown at src/specify_cli/extensions/__init__.py:1316 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of github/spec-kit@bf88c9f9a8 (2026-08-14).
Data as JSON: /api/errors/25aa40fa140dae5b.
Report an issue: GitHub.