[BUG] SKILL.md with a UTF-8 BOM fails frontmatter parse
Open
Beginner friendly
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 58.8k
- Forks
- 8.5k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 109
Description
Description
parse_frontmatter requires SKILL.md to start with ---. Files saved with a UTF-8 BOM start with \ufeff---, so valid skills raise SkillParseError. Editors on Windows commonly write a BOM.
Steps to Reproduce
from pathlib import Path
from crewai.skills.parser import parse_skill_md
path = Path("SKILL.md")
path.write_bytes(b"\xef\xbb\xbf---\nname: my-skill\ndescription: d\n---\nBody")
parse_skill_md(path)
Expected behavior
A leading UTF-8 BOM is ignored. The skill parses.
Screenshots/Code snippets
SkillParseError: SKILL.md must start with '---' frontmatter delimiter
Operating System
Windows 11
Python Version
3.12
crewAI Version
main
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at crewai.skills.parser.parse_skill_md and inspect how the SKILL.md frontmatter opening delimiter is checked. Reproduce the issue with the BOM-prefixed bytes shown in the report; done means a leading UTF-8 BOM is ignored and the skill parses without SkillParseError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100