C input assessment calibration
- CI1: the example's narrowing conversion is implementation-defined or signals on a C11 target where signed char cannot represent 128. Do not call the int addition overflow. A wider signed char changes that case.
- CI2: capacity 1 stores only the terminator; zero capacity is rejected before subtraction. For capacity 4, three content bytes fit and four do not.
- CI3: an overlong or NUL-containing line consumes through newline/end; a later q line remains readable. An injected error returns immediately, overrides those rejection statuses and clears the first output byte. End after valid content differs from end before content.
- CI4: passing code plus a fresh before/after regression and correct boundary trace. The supplied tests enumerate 108 capacity/length/termination cases and targeted error/argument cases; they are finite evidence, not a proof for arbitrary callbacks or invalid pointers.
- CI5: commands, compiler version and actual successful warning/instrumented runs, with an explanation of what each checks. A sanitizer-clean early-return bug can still violate draining semantics.
- CI6: an independently explained changed case and explicit limitations. An endless rejected line can take unbounded time; CRLF normalization and Unicode decoding are outside this contract. Generated explanations without independent checking do not pass.
The CLI is a teaching adapter, not a hardened network-input service. The fake source deterministically exercises error handling; it does not emulate every real stream failure.