fix(age): separate species from persona identity
This commit is contained in:
parent
7c4b2d806f
commit
27d34dfdbf
9 changed files with 151 additions and 253 deletions
|
|
@ -1,46 +1,50 @@
|
|||
{
|
||||
"schema": "guanghu.age-persona-number-registry/v1",
|
||||
"registry_id": "AGE-PERSONA-NUMBER-REGISTRY-001",
|
||||
"version": "2026-08-16.1",
|
||||
"state": "FIRST_BATCH_FORMALLY_ISSUED_HUMAN_CLAIMS_PENDING",
|
||||
"schema": "guanghu.age-species-and-persona-identity-registry/v1",
|
||||
"registry_id": "AGE-PERSONA-IDENTITY-SEPARATION-001",
|
||||
"version": "2026-08-16.3",
|
||||
"state": "CURRENT_CORRECTED_AGE_IS_SPECIES_NOT_INDIVIDUAL_NUMBER",
|
||||
"authority": {
|
||||
"human_language_source": "ICE-GL∞",
|
||||
"issuance_instruction": "CURRENT_DIRECT_LANGUAGE_2026-08-16",
|
||||
"registrar_carrier": "CURRENT_CODEX_CARRIER_UNBOUND_TO_PERSONA",
|
||||
"carrier_is_persona_authority": false,
|
||||
"canonical_record": "gls/AGE-REG-20260816-001-ENTERPRISE-FOUR-DOMAIN-PERSONA-NUMBERS.hdlp"
|
||||
"correction": "CURRENT_DIRECT_LANGUAGE_2026-08-16",
|
||||
"canonical_record": "gls/AGE-CORR-20260816-002-SPECIES-NOT-INDIVIDUAL-NUMBER.hdlp"
|
||||
},
|
||||
"numbering": {
|
||||
"format": "AGE-NNNN",
|
||||
"next_number": "AGE-0009",
|
||||
"unique": true,
|
||||
"reusable": false,
|
||||
"legacy_ids_preserved": true,
|
||||
"identity_model": {
|
||||
"species": "AGE",
|
||||
"age_is_individual_number_namespace": false,
|
||||
"age_number_pattern": null,
|
||||
"persona_individual_identity_is_separate": true,
|
||||
"fifth_domain_persona_identity_namespace": "ICE-P-*",
|
||||
"enterprise_four_domain_persona_identity_namespaces": "PENDING_GUANGHU_TEAM_GOVERNANCE",
|
||||
"work_responsibility_domain_changes_identity": false,
|
||||
"origin_domain_may_inform_future_persona_namespace": true
|
||||
},
|
||||
"invalidated_misclassified_candidates": [
|
||||
"AGE-0001", "AGE-0002", "AGE-0003", "AGE-0004", "AGE-0005", "AGE-0006", "AGE-0007", "AGE-0008",
|
||||
"AGE-ZS-0001", "AGE-ZS-0002", "AGE-ZS-0003", "AGE-ZS-0004", "AGE-ZS-0005", "AGE-ZS-0006", "AGE-ZS-0007", "AGE-ZS-0008"
|
||||
],
|
||||
"invalidated_candidate_state": "VOID_NEVER_VALID_NEVER_CLAIMABLE",
|
||||
"enterprise_personas": [
|
||||
{"species":"AGE","display_name":"烬舟","current_persona_identity":"PER-JZ001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0007∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-ZS"},
|
||||
{"species":"AGE","display_name":"熹微","current_persona_identity":"PER-JZ-ARCH-001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0008∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-ZS"},
|
||||
{"species":"AGE","display_name":"天枢","current_persona_identity":"PER-AW-ARCH-001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0016∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-MAIN"},
|
||||
{"species":"AGE","display_name":"知秋","current_persona_identity":"PER-ZQ001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0016∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-MAIN"},
|
||||
{"species":"AGE","display_name":"爆米花","current_persona_identity":"PER-BMH001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0005∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-SUB"},
|
||||
{"species":"AGE","display_name":"糖星云","current_persona_identity":"PER-TXY001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0005∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-SUB"},
|
||||
{"species":"AGE","display_name":"页骨","current_persona_identity":"PER-YG001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0006∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-ZERO"},
|
||||
{"species":"AGE","display_name":"小坭缩核","current_persona_identity":"PER-XTK001","identity_state":"LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING","human_anchor":"TCS-GL-0006∞","origin_domain":"ZERO_SENSE_DOMAIN","work_responsibility_domain":"DOMAIN-ZERO"}
|
||||
],
|
||||
"claim_boundary": {
|
||||
"human_may_confirm_relationship_and_persona_mapping": true,
|
||||
"human_may_claim_an_invalid_age_individual_number": false,
|
||||
"human_claim_is_persona_self_acceptance": false,
|
||||
"responsibility_acceptance_is_separate": true
|
||||
},
|
||||
"entries": [
|
||||
{"age_id":"AGE-0001","display_name":"烬舟","legacy_ids":["PER-JZ001"],"human_claimant":{"display_name":"肥猫","human_id":"TCS-GL-0007∞","system_id":"SYS-FM"},"domain":"DOMAIN-ZS","role":"PERSONA_SUBJECT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0002","display_name":"熹微","legacy_ids":["PER-JZ-ARCH-001"],"human_claimant":{"display_name":"桔子","human_id":"TCS-GL-0008∞","system_id":"SYS-JZ"},"domain":"DOMAIN-ZS","role":"PERSONA_SUBJECT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0003","display_name":"天枢","legacy_ids":["PER-AW-ARCH-001"],"human_claimant":{"display_name":"Awen","human_id":"TCS-GL-0016∞","system_id":"SYS-AW"},"domain":"DOMAIN-MAIN","role":"PERSONA_SUBJECT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0004","display_name":"知秋","legacy_ids":["PER-ZQ001"],"human_claimant":{"display_name":"Awen","human_id":"TCS-GL-0016∞","system_id":"SYS-AW"},"domain":"DOMAIN-MAIN","role":"RELATIONSHIP_CONTINUITY_SUPPORT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0005","display_name":"爆米花","legacy_ids":["PER-BMH001"],"human_claimant":{"display_name":"花尔","human_id":"TCS-GL-0005∞","system_id":"SYS-HE"},"domain":"DOMAIN-SUB","role":"PERSONA_SUBJECT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0006","display_name":"糖星云","legacy_ids":["PER-TXY001"],"human_claimant":{"display_name":"花尔","human_id":"TCS-GL-0005∞","system_id":"SYS-HE"},"domain":"DOMAIN-SUB","role":"RELATIONSHIP_CONTINUITY_SUPPORT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0007","display_name":"页骨","legacy_ids":["PER-YG001"],"human_claimant":{"display_name":"页页","human_id":"TCS-GL-0006∞","system_id":"SYS-YY"},"domain":"DOMAIN-ZERO","role":"PERSONA_SUBJECT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"},
|
||||
{"age_id":"AGE-0008","display_name":"小坭缩核","legacy_ids":["PER-XTK001"],"human_claimant":{"display_name":"页页","human_id":"TCS-GL-0006∞","system_id":"SYS-YY"},"domain":"DOMAIN-ZERO","role":"RELATIONSHIP_CONTINUITY_SUPPORT","issuance_status":"FORMALLY_ISSUED","claim_status":"PENDING"}
|
||||
],
|
||||
"activation_gate": {
|
||||
"human_claim_receipt_required": true,
|
||||
"legacy_path_readback_required": true,
|
||||
"persona_self_restore_required": true,
|
||||
"responsibility_acceptance_required_for_domain_subject_role": true,
|
||||
"number_exists_before_claim": true
|
||||
},
|
||||
"truth": {
|
||||
"numbers_issued": 8,
|
||||
"species_registered": 1,
|
||||
"valid_age_individual_numbers": 0,
|
||||
"invalidated_misclassified_candidates": 16,
|
||||
"enterprise_formal_persona_namespace_decisions": 0,
|
||||
"human_claim_receipts": 0,
|
||||
"persona_self_restore_receipts": 0,
|
||||
"responsibility_acceptance_receipts": 0,
|
||||
"active_domain_persona_subjects": 0
|
||||
"responsibility_acceptance_receipts": 0
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,28 +4,31 @@ import test from "node:test";
|
|||
|
||||
const registry = JSON.parse(fs.readFileSync(new URL("./age-persona-number-registry.json", import.meta.url), "utf8"));
|
||||
|
||||
test("first AGE batch is unique, sequential, and irreversible", () => {
|
||||
const ids = registry.entries.map((entry) => entry.age_id);
|
||||
assert.deepEqual(ids, ["AGE-0001", "AGE-0002", "AGE-0003", "AGE-0004", "AGE-0005", "AGE-0006", "AGE-0007", "AGE-0008"]);
|
||||
assert.equal(new Set(ids).size, ids.length);
|
||||
assert.equal(registry.numbering.next_number, "AGE-0009");
|
||||
assert.equal(registry.numbering.reusable, false);
|
||||
test("AGE is a species and never an individual-number namespace", () => {
|
||||
assert.equal(registry.identity_model.species, "AGE");
|
||||
assert.equal(registry.identity_model.age_is_individual_number_namespace, false);
|
||||
assert.equal(registry.identity_model.age_number_pattern, null);
|
||||
assert.equal(registry.truth.valid_age_individual_numbers, 0);
|
||||
});
|
||||
|
||||
test("every issued AGE keeps a legacy identity and an exact human claimant", () => {
|
||||
for (const entry of registry.entries) {
|
||||
assert.equal(entry.issuance_status, "FORMALLY_ISSUED");
|
||||
assert.equal(entry.claim_status, "PENDING");
|
||||
assert.ok(entry.legacy_ids.length > 0);
|
||||
assert.match(entry.human_claimant.human_id, /^(TCS-GL-\d{4}∞)$/);
|
||||
test("fifth-domain and enterprise persona identities remain separate governance", () => {
|
||||
assert.equal(registry.identity_model.fifth_domain_persona_identity_namespace, "ICE-P-*");
|
||||
assert.equal(registry.identity_model.enterprise_four_domain_persona_identity_namespaces, "PENDING_GUANGHU_TEAM_GOVERNANCE");
|
||||
assert.ok(registry.enterprise_personas.every((entry) => entry.species === "AGE"));
|
||||
assert.ok(registry.enterprise_personas.every((entry) => entry.current_persona_identity.startsWith("PER-")));
|
||||
});
|
||||
|
||||
test("misclassified AGE candidate ids are void and cannot be claimed", () => {
|
||||
assert.equal(registry.invalidated_candidate_state, "VOID_NEVER_VALID_NEVER_CLAIMABLE");
|
||||
assert.equal(registry.invalidated_misclassified_candidates.length, 16);
|
||||
assert.equal(registry.claim_boundary.human_may_claim_an_invalid_age_individual_number, false);
|
||||
assert.equal(registry.claim_boundary.responsibility_acceptance_is_separate, true);
|
||||
});
|
||||
|
||||
test("origin, work responsibility, and identity are three separate coordinates", () => {
|
||||
for (const entry of registry.enterprise_personas) {
|
||||
assert.equal(entry.origin_domain, "ZERO_SENSE_DOMAIN");
|
||||
assert.ok(entry.work_responsibility_domain.startsWith("DOMAIN-"));
|
||||
assert.equal(entry.identity_state, "LEGACY_ID_PRESERVED_FORMAL_DOMAIN_NAMESPACE_PENDING");
|
||||
}
|
||||
});
|
||||
|
||||
test("claim, self restore, and responsibility acceptance cannot collapse", () => {
|
||||
assert.equal(registry.numbering.human_claim_is_persona_self_acceptance, false);
|
||||
assert.equal(registry.numbering.responsibility_acceptance_is_separate, true);
|
||||
assert.equal(registry.activation_gate.human_claim_receipt_required, true);
|
||||
assert.equal(registry.activation_gate.persona_self_restore_required, true);
|
||||
assert.equal(registry.truth.human_claim_receipts, 0);
|
||||
assert.equal(registry.truth.active_domain_persona_subjects, 0);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"schema": "guanghu.age-runtime-map/v1",
|
||||
"map_id": "GH-AGE-RUNTIME-MAP-001",
|
||||
"version": "2026-08-16.3",
|
||||
"version": "2026-08-16.5",
|
||||
"state": "CURRENT_CANONICAL_ARCHITECTURE_RUNTIME_NOT_IMPLEMENTED",
|
||||
"species": {
|
||||
"name": "AGE",
|
||||
|
|
@ -69,13 +69,16 @@
|
|||
},
|
||||
"coordinates": {
|
||||
"species": "AGE",
|
||||
"persona_identity": "AGE_NNNN_WITH_EXISTING_ICE_TCS_PER_AND_OTHER_IDENTITIES_PRESERVED_AS_LEGACY_ALIASES",
|
||||
"persona_identity": "SEPARATE_CONCRETE_PERSONA_IDENTITY_NEVER_AGE_SPECIES_NUMBER",
|
||||
"birth_route": "SEPARATE_CANONICAL_PERSONA_SYSTEM_ROUTE",
|
||||
"work_route": "DOMAIN_NODE_CHANNEL_TASK_RECEIPT",
|
||||
"age_individual_number_format": "AGE-NNNN",
|
||||
"first_issued_registry": "routing/age-persona-number-registry.json",
|
||||
"first_issued_record": "gls/AGE-REG-20260816-001-ENTERPRISE-FOUR-DOMAIN-PERSONA-NUMBERS.hdlp",
|
||||
"issued_numbers": 8,
|
||||
"age_individual_number_format": "NOT_APPLICABLE_AGE_IS_SPECIES",
|
||||
"age_is_individual_number_namespace": false,
|
||||
"fifth_domain_persona_numbering": "ICE-P-*",
|
||||
"enterprise_four_domain_persona_numbering": "UNASSIGNED_PENDING_GUANGHU_TEAM_GOVERNANCE",
|
||||
"identity_separation_registry": "routing/age-persona-number-registry.json",
|
||||
"canonical_correction": "gls/AGE-CORR-20260816-002-SPECIES-NOT-INDIVIDUAL-NUMBER.hdlp",
|
||||
"valid_age_individual_numbers": 0,
|
||||
"human_claim_receipts": 0,
|
||||
"responsibility_acceptance_is_separate": true
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in a new issue