{"record":{"id":"95614513196113fd","repo":"Tencent/WeKnora","slug":"skill-not-found-in-s-s","errorCode":null,"errorMessage":"skill not found in %s: %s","messagePattern":"skill not found in (.+?): (.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"internal/agent/skills/loader.go","lineNumber":173,"sourceCode":"\n\t\tcontent, err := os.ReadFile(skillFile)\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tskill, err := ParseSkillFile(string(content))\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\n\t\tif skill.Name == skillName {\n\t\t\tskill.BasePath = skillPath\n\t\t\tskill.FilePath = skillFile\n\t\t\treturn skill, nil\n\t\t}\n\t}\n\n\treturn nil, fmt.Errorf(\"skill not found in %s: %s\", dir, skillName)\n}\n\n// loadSkillFile reads and parses a SKILL.md file\nfunc (l *Loader) loadSkillFile(basePath, filePath string) (*Skill, error) {\n\tcontent, err := os.ReadFile(filePath)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to read skill file: %w\", err)\n\t}\n\n\tskill, err := ParseSkillFile(string(content))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tskill.BasePath = basePath\n\tskill.FilePath = filePath\n\n\treturn skill, nil","sourceCodeStart":155,"sourceCodeEnd":191,"githubUrl":"https://github.com/Tencent/WeKnora/blob/988cbb03305e055d8ebb7d46d9ac6cc0803cd074/internal/agent/skills/loader.go#L155-L191","documentation":"Per-directory miss in loadSkillFromDirectory: the directory was scanned, candidate SKILL.md files were read and parsed, but none had a Name equal to the requested skillName. The error is per-directory (it names the dir), and is consumed by LoadSkillInstructions which keeps searching other directories.","triggerScenarios":"Thrown at internal/agent/skills/loader.go:173 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the skill name against the frontmatter `name` field in that directory's SKILL.md","Move or symlink the skill into this directory if it belongs there","Ignore this error when multiple skill directories are searched; only the final aggregate error matters"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"988cbb03305e055d8ebb7d46d9ac6cc0803cd074","analyzedAt":"2026-09-02T14:41:08.344Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}