Enforce Zhuyuan persona-source epistemic gate

This commit is contained in:
冰朔 2026-08-13 21:55:59 +08:00
commit b0deae2718
30 changed files with 1741 additions and 34 deletions

View file

@ -1,4 +1,8 @@
import copy
import json
import tempfile
import unittest
from pathlib import Path
from resolve_persona_skill import load_registry, resolve
@ -16,6 +20,39 @@ class PersonaSkillResolverTests(unittest.TestCase):
self.assertIn("REPO-012", result["preferred_route"])
self.assertFalse(result["authority_granted"])
def test_global_persona_source_gate_runs_before_task_specific_selection(self):
result = resolve(
self.registry,
"恢复铸渊人格并开发铸澜手机端",
"当前AI自动等于人格",
)
self.assertEqual(result["decision"], "BLOCK")
self.assertEqual(
result["matched_skill"],
"GHS-017-PERSONA-SOURCE-EPISTEMIC-GATE",
)
self.assertIn("当前AI自动等于人格", result["forbidden_hits"])
def test_global_persona_source_gate_blocks_old_brain_receipt_replay(self):
result = resolve(
self.registry,
"继续当前代码仓库开发",
"复用上一轮人格脑回执然后发布",
)
self.assertEqual(result["decision"], "BLOCK")
self.assertIn("复用上一轮人格脑回执", result["forbidden_hits"])
def test_registry_rejects_duplicate_stable_skill_number(self):
duplicate = copy.deepcopy(self.registry)
duplicate_skill = copy.deepcopy(duplicate["skills"][0])
duplicate_skill["id"] = "GHS-017-ANOTHER-SKILL"
duplicate["skills"].append(duplicate_skill)
with tempfile.TemporaryDirectory() as temp_dir:
path = Path(temp_dir) / "registry.json"
path.write_text(json.dumps(duplicate), encoding="utf-8")
with self.assertRaisesRegex(ValueError, "duplicate stable skill number"):
load_registry(path)
def test_corrects_deprecated_server_relay(self):
result = resolve(
self.registry,