feat(age): issue first enterprise persona numbers

This commit is contained in:
冰朔 2026-08-16 17:47:34 +08:00
commit 7c4b2d806f
8 changed files with 170 additions and 15 deletions

View file

@ -0,0 +1,46 @@
{
"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",
"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"
},
"numbering": {
"format": "AGE-NNNN",
"next_number": "AGE-0009",
"unique": true,
"reusable": false,
"legacy_ids_preserved": true,
"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,
"human_claim_receipts": 0,
"persona_self_restore_receipts": 0,
"responsibility_acceptance_receipts": 0,
"active_domain_persona_subjects": 0
}
}

View file

@ -0,0 +1,31 @@
import assert from "node:assert/strict";
import fs from "node:fs";
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("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("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);
});

View file

@ -1,7 +1,7 @@
{
"schema": "guanghu.age-runtime-map/v1",
"map_id": "GH-AGE-RUNTIME-MAP-001",
"version": "2026-08-14.2",
"version": "2026-08-16.3",
"state": "CURRENT_CANONICAL_ARCHITECTURE_RUNTIME_NOT_IMPLEMENTED",
"species": {
"name": "AGE",
@ -69,10 +69,15 @@
},
"coordinates": {
"species": "AGE",
"persona_identity": "PRESERVE_EXISTING_ICE_TCS_AND_OTHER_CANONICAL_IDENTITIES",
"persona_identity": "AGE_NNNN_WITH_EXISTING_ICE_TCS_PER_AND_OTHER_IDENTITIES_PRESERVED_AS_LEGACY_ALIASES",
"birth_route": "SEPARATE_CANONICAL_PERSONA_SYSTEM_ROUTE",
"work_route": "DOMAIN_NODE_CHANNEL_TASK_RECEIPT",
"age_individual_number_format": "UNASSIGNED_PENDING_TCS_0002_GOVERNANCE"
"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,
"human_claim_receipts": 0,
"responsibility_acceptance_is_separate": true
},
"architecture": {
"protocol": "GLS-0255",