Claude Code First, specification version 0.1.0. The plain-language guide

Version 0.1.0. Level 2. Best evidence grade R4/S3.

EP-3 A named encoding at a process boundary

A program in the project that reads text from another process MUST decode it with a named encoding rather than the locale's default.

FieldValue
KeywordMUST
Level2
Checkedby judgement
FindingsF404, F405
Harness factsnone
Threatexternal: one platform, Windows
Statusactive

Rationale: on the corpus's machines the locale code page was cp1252. In Shio the agent's own patching called subprocess.run(text=True), which decoded with it and corrupted posted content; in polyweave a correct cp1252 byte was read by a pipe that decoded UTF-8; in freewilly two streams sharing one buffer were decoded as one (F404, R4/S3; F405). In each the writing process saw nothing wrong, and the fix was an explicit encoding, set once where the stream is opened. The rule depends on a platform fact, that a default decode follows the locale, which the findings record for Windows only.