From f2b615aa6c20a77733b4ad580603e6a9b6971285 Mon Sep 17 00:00:00 2001 From: Bram Date: Thu, 9 Jul 2026 10:51:24 +0200 Subject: [PATCH 1/2] fix: read skill files as UTF-8 in validator The Ruby validator used File.read's locale-default encoding, so under a non-UTF-8 locale (LANG=C) the frontmatter regex threw 'invalid byte sequence in US-ASCII' and blocked commits via the pre-commit hook. Read SKILL.md files as UTF-8 explicitly so validation is locale-independent. --- scripts/validate-skills | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/validate-skills b/scripts/validate-skills index 4d8e1fc..6e4904c 100755 --- a/scripts/validate-skills +++ b/scripts/validate-skills @@ -37,7 +37,7 @@ errors = [] names = {} skill_files.each do |path| - text = File.read(path) + text = File.read(path, encoding: "UTF-8") data, error = load_front_matter(path, text) if error From a4ea67ff2c33f3f94b43d317e2aea5e8a5113139 Mon Sep 17 00:00:00 2001 From: Bram Date: Wed, 22 Jul 2026 15:09:53 +0200 Subject: [PATCH 2/2] docs: changelog for validator UTF-8 fix --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 328018e..7bdc988 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ summary: Timeline of guardrail helper changes mirrored from Sweetistics and rela # Changelog +## 2026-07-22 — Validator UTF-8 Fix +- `scripts/validate-skills` reads `SKILL.md` as UTF-8 instead of inheriting the process locale, so validation and the pre-commit hook stop failing with `invalid byte sequence in US-ASCII` in shells without `LANG` set. + ## 2026-07-22 — Remove Legacy Maintainer Loop - Removed the legacy current-repository `bram-maintainer-loop` skill and project-loop prompt; maintainer orchestration now routes only through `bram-maintainer-loop-v2`.