{"record":{"id":"ee0e3a6333cc0702","repo":"NousResearch/hermes-agent","slug":"bundle-name-is-required","errorCode":null,"errorMessage":"Bundle name is required","messagePattern":"Bundle name is required","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"agent/skill_bundles.py","lineNumber":398,"sourceCode":"        raise ValueError(f\"Bundle name {name!r} normalizes to an empty slug\")\n    return _bundles_dir() / f\"{slug}.yaml\"\n\n\ndef save_bundle(\n    name: str,\n    skills: List[str],\n    description: str = \"\",\n    instruction: str = \"\",\n    overwrite: bool = False,\n) -> Path:\n    \"\"\"Write a bundle to disk and invalidate the cache.\n\n    Raises ``FileExistsError`` if the target exists and ``overwrite`` is\n    False. Raises ``ValueError`` if the inputs are unusable.\n    \"\"\"\n    name = (name or \"\").strip()\n    if not name:\n        raise ValueError(\"Bundle name is required\")\n    cleaned_skills = [str(s).strip() for s in skills if str(s).strip()]\n    if not cleaned_skills:\n        raise ValueError(\"Bundle must reference at least one skill\")\n\n    path = bundle_path_for(name)\n    if path.exists() and not overwrite:\n        raise FileExistsError(f\"Bundle already exists at {path}\")\n\n    path.parent.mkdir(parents=True, exist_ok=True)\n    payload: Dict[str, Any] = {\"name\": name, \"skills\": cleaned_skills}\n    if description:\n        payload[\"description\"] = description\n    if instruction:\n        payload[\"instruction\"] = instruction\n\n    path.write_text(\n        yaml.safe_dump(payload, sort_keys=False, allow_unicode=True),\n        encoding=\"utf-8\",","sourceCodeStart":380,"sourceCodeEnd":416,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/skill_bundles.py#L380-L416","documentation":"Error \"Bundle name is required\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/skill_bundles.py:398 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide a name for the bundle."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}