Source: https://guthlabs.ai/docs/instruments/color-code-converter/mechanism/

instrument mechanism / verified-with-binding-errata

# Color Code Converter mechanism

The inspectable method record for Color Code Converter, kept separate from implementation and qualification.

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **verified-with-binding-errata**

## Model scope

The conversion claims are broadly standard, but the specification is not sufficiently precise to verify a single interoperable implementation. Define explicit formulas, accepted input units and syntax, output units, precision/rounding, achromatic hue behavior, CMYK black handling, alpha propagation, and complementary/analogous hue offsets before release. The empty honest_label is a concern: the instrument should disclose that it performs arithmetic color-space conversions rather than color-managed perceptual or ICC-profile conversion.

- The RGB↔HSL and RGB↔HSV formulas are referenced but not explicitly specified, so channel ranges, hue units, percentage conventions, achromatic hue behavior, and rounding are ambiguous.

- The CMYK formula is incomplete: k=1-max(r,g,b) defines only K; C, M, and Y require C=(1-r-k)/(1-k), M=(1-g-k)/(1-k), and Y=(1-b-k)/(1-k) when k is not 1.

- The CMYK conversion divides by 1-k and therefore requires a defined special case when k=1, such as pure black mapping to C=0,M=0,Y=0,K=1.

- Complementary and analogous harmony formulas are not specified; hue offsets, color space, and handling of achromatic colors are ambiguous.

- The supported input syntax is ambiguous for RGB, RGBA, HSL, HSV/HSB, and CMYK, including whether channels accept normalized values, 8-bit values, percentages, or multiple syntaxes.

## Units and conventions

- Test vectors use sRGB-like RGB channel values; RGB inputs are either 8-bit integers in the range 0-255 or normalized values in the range 0-1 as explicitly shown.

- HSL and HSV hue is expressed in degrees in the range [0,360), while saturation, lightness, and value are expressed as percentages.

- CMYK channels are expressed as fractions in the range [0,1].

- Hex colors use six hexadecimal digits in the order RRGGBB; RGBA alpha is represented as a normalized fraction in [0,1].

- The arithmetic treats RGB values as encoded channel values and does not perform gamma or color-profile conversion.

- For the black edge case, undefined achromatic hue is represented as null and CMYK uses the conventional special case C=0,M=0,Y=0,K=1; the implementation must document whether it instead emits hue 0.

## Inspectable vector

One of 4 source-bound review vectors:

````
{
  "inputs": {
    "hex": "#336699"
  },
  "expected_outputs": {
    "hex": "#336699",
    "rgb": {
      "r": 51,
      "g": 102,
      "b": 153
    },
    "rgba": {
      "r": 51,
      "g": 102,
      "b": 153,
      "a": 1
    },
    "hsl": {
      "h": 210,
      "s": 66.6667,
      "l": 40
    },
    "hsv": {
      "h": 210,
      "s": 66.6667,
      "v": 60
    },
    "cmyk": {
      "c": 66.6667,
      "m": 33.3333,
      "y": 0,
      "k": 40
    }
  },
  "working": "Normalize RGB: r=51/255=0.2, g=102/255=0.4, b=153/255=0.6. max=0.6, min=0.2, d=0.4. HSL: l=(0.6+0.2)/2=0.4; s=0.4/(1-|2(0.4)-1|)=0.4/0.6=0.666667=66.6667%; b is maximum, so h=60[((r-g)/d)+4]=60[((0.2-0.4)/0.4)+4]=60(3.5)=210°. HSV: v=0.6=60%; s=d/v=0.4/0.6=0.666667=66.6667%; h=210°. CMYK: k=1-max=1-0.6=0.4=40%; c=(1-0.2-0.4)/(1-0.4)=0.4/0.6=0.666667=66.6667%; m=(1-0.4-0.4)/0.6=0.2/0.6=0.333333=33.3333%; y=(1-0.6-0.4)/0.6=0."
}
````

## Failure boundary

**BREAK_CLAIMED** · SELF_FLAGGED

Achromatic colors such as black produce zero denominators in the general HSL/HSV hue and saturation formulas and, for black, in the usual CMYK secondary-channel formulas. The converter must use special cases and expose hue as undefined; a numeric hue or an unhandled division would be a break.

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/color-code-converter/>)[03**Implementation**](<https://guthlabs.ai/docs/instruments/color-code-converter/implementation/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/color-code-converter/qualification/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
