Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Hex ↔ RGB ↔ HSL ↔ LAB Color Converter mechanism

The inspectable method record for Hex ↔ RGB ↔ HSL ↔ LAB Color Converter, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

The advertised name omits HSV and CMYK even though the computes field includes them. The empty honest_label is a concern: the instrument should disclose that LAB is D65/sRGB-relative and that the simple CMYK result is an unprofiled mathematical approximation, not a print-production color conversion. Verdict remains NEEDS_REVIEW until the exact formulas, color-space assumptions, parsing rules, gamut policy, precision policy, and CMYK model are documented.

  • The specification does not provide explicit equations, coefficient matrices, transfer functions, or rounding rules, so the claimed conversions cannot be fully verified.
  • RGB→XYZ is only identified as an sRGB matrix conversion; the required linearization (sRGB inverse transfer function) is not stated.
  • XYZ→LAB requires an explicit D65 reference white and CIE epsilon/kappa constants; these are not stated.
  • The claimed bidirectional LAB and RGB conversions require XYZ→RGB and sRGB re-encoding formulas, which are omitted.
  • HSV and CMYK are included in the computed representations but no HSV or CMYK formulas are specified.
  • CMYK is not a unique device-independent equivalent of RGB without a color profile or an explicit simple RGB-to-CMYK model.

Units and conventions

  • RGB test inputs and outputs use 8-bit channel values in [0,255]; formulas internally normalize channels to [0,1].
  • Hex uses six-digit sRGB notation #RRGGBB with no alpha channel.
  • HSL and HSV use hue in degrees [0,360) and saturation/value or lightness as fractions in [0,1].
  • LAB uses CIE L* in [0,100] and a*, b* in the usual unbounded signed units, with the D65 sRGB reference white Xn=0.95047, Yn=1.00000, Zn=1.08883.
  • The LAB calculations use the standard sRGB D65 matrix, sRGB gamma decoding, and CIE epsilon=216/24389 and kappa=24389/27.
  • CMYK uses the simple unprofiled formula K=1-max(R,G,B), and C=(1-R-K)/(1-K), M=(1-G-K)/(1-K), Y=(1-B-K)/(1-K), with channels represented as fractions in [0,1].

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "hex": "#000000",
    "rgb_8bit": {
      "r": 0,
      "g": 0,
      "b": 0
    }
  },
  "expected_outputs": {
    "rgb_normalized": {
      "r": 0,
      "g": 0,
      "b": 0
    },
    "hsl": {
      "h_deg": 0,
      "s": 0,
      "l": 0
    },
    "hsv": {
      "h_deg": 0,
      "s": 0,
      "v": 0
    },
    "lab": {
      "L": 0,
      "a": 0,
      "b": 0
    },
    "cmyk": {
      "c": 0,
      "m": 0,
      "y": 0,
      "k": 1
    }
  },
  "working": "Hex #000000 gives R=G=B=0, so normalized RGB=(0/255,0/255,0/255)=(0,0,0). HSL: max=min=0, so L=(0+0)/2=0 and S=0; hue is conventionally 0 for zero saturation. HSV: V=max=0 and S=0; hue is conventionally 0. Linear RGB=(0,0,0), therefore XYZ=(0,0,0). Since each XYZ component is below epsilon, f(t)=kappa*t, giving L*=0, a*=0, b*=0. CMYK: K=1-max(0,0,0)=1; C=M=Y=0 by the K=1 special case."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

The achromatic gray vector exposes a real undefined intermediate: HSL and HSV hue formulas contain division by delta, and delta is exactly zero for #808080. An implementation that does not special-case achromatic colors can produce NaN or an invalid swatch instead of returning hue=0 by convention or explicitly reporting undefined.

Other records

Sources and evidence

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

  • VERIFIED_LEDGER.json
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json