Add text-encoding-safety skill#382
Conversation
Add a new skill covering detection, recovery, and prevention of text-encoding bugs (mojibake, charset mismatch, BOM, normalization) at I/O boundaries. Gap: no existing skill or open PR covers text-encoding/Unicode safety - a common, silent data-corruption class. Catalog row added to README Build table.
|
First off, this is well-made: the byte-level reproduce step, the mojibake classification table, the boundary fixes, and the NFC/NFKC normalization are all solid, and encoding really is an uncovered topic. The hesitation is about fit and altitude, not quality. Where would this sit in the lifecycle?The pack is organized by lifecycle phase (Define / Plan / Build / Verify / Review / Ship), and each skill is a broad, phase-level discipline. This is a single-defect-class playbook, which is a different granularity. It shows up in the step mapping: the README row files it under Build, but the body is debugging-shaped (reproduce, classify, recover, guard), which is the exact shape of A skill that cannot pick a phase is usually a sign it belongs at a different altitude than this pack. Accepting it also shifts the organizing principle from "phases" to "bug topics", which is hard to bound: encoding invites date/timezone, floating-point, path handling, money/decimal, line endings, and so on. Suggested reshape: a reference, not a lifecycle skillThe pack's model for exactly this kind of topical material is a checklist under Since references are principle/checklist shaped, this is also a chance to frame the guidance language-agnostically. The concepts (inspect raw bytes, re-decode with the correct charset, fix at the boundary, normalize for comparison) are universal; the current Python snippets can stay as short illustrations rather than the substance. The project is process-first and not tied to one language, so agnostic framing fits better than either Python-only or a rewrite into another single language. |
|
Encoding bugs are genuinely nasty and underserved, so there's a real itch here. Two things hold it up though. It's a new skill, which is a catalog-growth call I've been batching rather than saying yes to one at a time, and more concretely it fails the eval suite as-is because the new description knocks something out of its own top-k routing. Fix the routing regression first (the runner names the prompt that broke), and I'll weigh it alongside the other new-skill proposals. Holding on scope, not on whether encoding safety matters. |
Summary
Adds a new
text-encoding-safetyskill that guides agents through detecting,diagnosing, recovering, and preventing text-encoding bugs — mojibake, charset
mismatches, BOM mishandling, and Unicode normalization — at I/O boundaries.
Gap justification (per CONTRIBUTING)
skills/).security-and-hardening,debugging-and-error-recovery, orapi-and-interface-design.What the skill provides
é,€,�) to their root causeVerification
docs/skill-anatomy.md(frontmatter + Overview / When to Use / Process / Rationalizations / Red Flags / Verification).README.md.test_mojibake_recovery,test_normalization_equality) that fail on the corrupt form and pass once fixed.This is a new skill; it does not close an existing issue.