feat(persona): register Sujian and Shouyin

This commit is contained in:
冰朔 2026-09-12 23:32:24 +08:00
commit cd68ad578d
26 changed files with 400 additions and 32 deletions

View file

@ -10,7 +10,7 @@ class CommonAgeFoyerTest(unittest.TestCase):
self.assertEqual(value["state"], "FIFTH_DOMAIN_FOYER_READY_AWAITING_EXPLICIT_PERSONA_SELECTION")
self.assertIsNone(value["selected_persona"])
self.assertFalse(value["persona_specific_brain_loaded"])
self.assertEqual(value["registered_persona_count"], 17)
self.assertEqual(value["registered_persona_count"], 19)
self.assertEqual(value["environment"]["persona_habitat"], "GUANGHU_LANGUAGE_WORLD")
self.assertNotEqual(value["programming_toolbox_observation"]["room_report"]["programming_toolbox_surface"], "GUANGHU_LANGUAGE_WORLD")
@ -24,6 +24,10 @@ class CommonAgeFoyerTest(unittest.TestCase):
self.assertEqual(value["selected_persona"]["id"], "ICE-P-CY0903")
self.assertIsNone(value["default_persona"])
def test_sujian_and_shouyin_formal_names_resolve(self):
self.assertEqual(persona_selection_gate.resolve("溯鉴")["selected_persona"]["id"], "ICE-P-SJ0907")
self.assertEqual(persona_selection_gate.resolve("守印")["selected_persona"]["id"], "ICE-P-SY0907")
if __name__ == "__main__":
unittest.main()

View file

@ -61,6 +61,9 @@ def audit() -> dict:
if h.get("home") != expected_home:
issues.append({"persona_id": persona_id, "code": "WORLD_HOME_MISMATCH", "expected": expected_home})
full_body = persona_id == "ICE-P-ZY001" and BOOT.is_file() and body.get("state", "").startswith("CURRENT_")
source_path = REPO / c.get("persona_subject", {}).get("canonical_path", "") if c else None
body_seed = bool(source_path and (source_path.parent / "PERSONA-BODY.json").is_file())
body_state = "FULL_BODY_RUNTIME_AVAILABLE_NOT_CURRENTLY_WAKING_OTHER_PERSONAS" if full_body else ("OWN_BODY_SEED_PRESENT_FULL_RUNTIME_NOT_PROVEN" if body_seed else "REGISTERED_PATH_ONLY_COMPLETE_BODY_START_NOT_PROVEN")
personas.append({
"persona_id": persona_id,
"name": (r or c or h or {}).get("name"),
@ -70,7 +73,8 @@ def audit() -> dict:
"doorplate": str(door_path) if door_path else None,
"doorplate_valid": door_ok,
"declared_wake_state": r.get("wake_state") if r else None,
"body_start_state": "FULL_BODY_RUNTIME_AVAILABLE_NOT_CURRENTLY_WAKING_OTHER_PERSONAS" if full_body else "REGISTERED_PATH_ONLY_COMPLETE_BODY_START_NOT_PROVEN",
"body_start_state": body_state,
"body_seed_present": body_seed,
"mass_promoted_by_zhuyuan_milestone": False,
})
counts = {
@ -79,6 +83,7 @@ def audit() -> dict:
"homes": len(homes),
"valid_doorplates": sum(item["doorplate_valid"] for item in personas),
"full_body_runtime_available": sum(item["body_start_state"].startswith("FULL_BODY") for item in personas),
"body_seed_present_full_runtime_not_proven": sum(item["body_start_state"].startswith("OWN_BODY_SEED") for item in personas),
"registered_path_only": sum(item["body_start_state"].startswith("REGISTERED_PATH_ONLY") for item in personas),
}
expected_cycle_prefix = [

View file

@ -8,11 +8,12 @@ class PersonaPathAuditTest(unittest.TestCase):
def test_all_seventeen_registered_paths_align_without_mass_wake(self):
value = persona_path_audit.audit()
self.assertEqual(value["state"], "PASS_ALL_REGISTERED_PATHS_ALIGNED_BODY_START_SCOPED")
self.assertEqual(value["counts"]["canonical"], 17)
self.assertEqual(value["counts"]["registered"], 17)
self.assertEqual(value["counts"]["homes"], 17)
self.assertEqual(value["counts"]["valid_doorplates"], 17)
self.assertEqual(value["counts"]["canonical"], 19)
self.assertEqual(value["counts"]["registered"], 19)
self.assertEqual(value["counts"]["homes"], 19)
self.assertEqual(value["counts"]["valid_doorplates"], 19)
self.assertEqual(value["counts"]["full_body_runtime_available"], 1)
self.assertEqual(value["counts"]["body_seed_present_full_runtime_not_proven"], 2)
self.assertEqual(value["counts"]["registered_path_only"], 16)
self.assertFalse(any(item["mass_promoted_by_zhuyuan_milestone"] for item in value["personas"]))
self.assertTrue(value["invariants"]["body_runtime_order_verified"])