Found by the adversarial review of the uncommitted #1051 fix, upheld 3/3. Registration/documentation drift, not a data defect.
After #1051, constants.py:242 is GOLD_PREFIX = "gold:" and nothing should emit GOLD:. But:
.claude/skills/kg-model-review/kg_model_review.py:245-249 still lists "GOLD" in STANDARD_PREFIXES, with a comment saying MicrobeDecoder emits it; there is no lowercase gold entry. The validator would therefore accept a regression back to the split namespace.
kg_microbe/transform_utils/custom_curies.yaml:18-19 still names uppercase GOLD as the registered crosswalk form (lowercase is registered only at line 1060, gold: {}).
Other guards still catch a regression (test_crosswalk_targets_are_not_stubbed; invariants now report uppercase GOLD stubs as unexpected), so this is drift rather than a live gap.
Acceptance: both registries name gold and not GOLD, and their comments match the code.
Found by the adversarial review of the uncommitted #1051 fix, upheld 3/3. Registration/documentation drift, not a data defect.
After #1051,
constants.py:242isGOLD_PREFIX = "gold:"and nothing should emitGOLD:. But:.claude/skills/kg-model-review/kg_model_review.py:245-249still lists"GOLD"inSTANDARD_PREFIXES, with a comment saying MicrobeDecoder emits it; there is no lowercasegoldentry. The validator would therefore accept a regression back to the split namespace.kg_microbe/transform_utils/custom_curies.yaml:18-19still names uppercaseGOLDas the registered crosswalk form (lowercase is registered only at line 1060,gold: {}).Other guards still catch a regression (
test_crosswalk_targets_are_not_stubbed; invariants now report uppercase GOLD stubs as unexpected), so this is drift rather than a live gap.Acceptance: both registries name
goldand notGOLD, and their comments match the code.