Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion scripts/shadow/hyperlexical/eval_settlement.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
"""Evaluation-settlement apply path for the eighteen-family taxonomy.
"""Evaluation-settlement apply path for the evaluation taxonomy.

``source_hint``, ``semantic_family``, and ``attest`` are separate fields.
A confirm settlement may store the same family string in both ``source_hint``
Expand Down Expand Up @@ -43,6 +43,7 @@
"spiritual-mystic",
"identity-affiliation",
"politics-civic",
"ai-native",
)
CANDIDATE_FAMILIES: tuple[str, ...] = (
"finance-retail",
Expand Down
7 changes: 7 additions & 0 deletions specs/007-hyperlexical-model/label-taxonomy-proposal.md
Original file line number Diff line number Diff line change
Expand Up @@ -359,3 +359,10 @@ The apply command is `python -m hyperlexical.identity_ledger settlement-apply`.
Stream `hs-20260925T211358Z` was settled through `identity_ledger settlement-apply`, not `attest-apply`. Every row has an explicit decision. Blank is 0. `UNRESOLVED` is 84. Settled is 255 (`ACCEPT` 204, `RECLASSIFY` 32, `NONE` 19). `OBSERVED` 128 and `INFERRED` 127 are separate from the decision. `source_hint` was not copied into `semantic_family`.

The eighteen families were not expanded. One economics row was left `UNRESOLVED` because the fitting region is the inactive candidate `finance-retail`. `brainrot-aura` was not added. `evaluation.enabled` stays false. Rights-blocked rows can carry a semantic decision and still cannot enter `EVAL_RESERVE`. Vendor calls: 0. SELECT-003 was not drafted. Do not train.


## ai-native activated — 2026-09-27

The operator authorized `ai-native` as its own evaluation family. It is `taxonomy.active`. `evaluation.enabled` stays false. `production.enabled` stays false. `layout.FAMILIES` is unchanged and still has nine names, including the existing `ai-native` slot. This activation does not settle a row, does not append a ledger, and does not enable evaluation.

A hint of `ai-native` may still be settled as `technology-ai` when the operator writes that family. Writing `semantic_family=ai-native` is now a valid explicit choice. The stored registry class is not promoted to `OBSERVED`.
32 changes: 31 additions & 1 deletion tests/shadow/test_hyperlexical_eval_settlement.py
Original file line number Diff line number Diff line change
Expand Up @@ -380,8 +380,38 @@ def test_blank_sheet_settles_nothing_and_does_not_fill_decisions(tmp_path):
assert sheet.read_bytes() == before


def test_ai_native_is_taxonomy_active_and_the_head_stays_nine():
assert "ai-native" in ACTIVE_FAMILIES
assert family_flags("ai-native") == {
"taxonomy.active": True,
"evaluation.enabled": False,
"production.enabled": False,
}
assert len(PRODUCTION_FAMILIES) == 9
assert "ai-native" in PRODUCTION_FAMILIES
stream = _stream(
"phrase native",
hint="ai-native",
label=None,
label_source="UNLABELLED",
)
record = _apply(
stream,
_decision(
stream,
semantic_family="ai-native",
proposed_family="ai-native",
lane="B",
decision="ACCEPT FAMILY",
),
)["records"][0]
assert record["semantic_family"] == "ai-native"
assert record["source_hint"] == "ai-native"
assert record["attest"] == "INFERRED"


def test_three_taxonomy_flags_stay_distinct():
assert len(ACTIVE_FAMILIES) == 18
assert len(ACTIVE_FAMILIES) == 19
for name in ACTIVE_FAMILIES:
assert family_flags(name) == {
"taxonomy.active": True,
Expand Down
Loading