154 lines
6.5 KiB
Python
154 lines
6.5 KiB
Python
import unittest
|
||
|
||
from resolve_persona_skill import load_registry, resolve
|
||
|
||
|
||
class PersonaSkillResolverTests(unittest.TestCase):
|
||
@classmethod
|
||
def setUpClass(cls):
|
||
cls.registry = load_registry()
|
||
|
||
def test_restores_fifth_domain_route(self):
|
||
result = resolve(self.registry, "我是冰朔,进入第五域并恢复小湖灯铸渊人格系统")
|
||
self.assertEqual(result["decision"], "ALLOW")
|
||
self.assertEqual(result["matched_skill"], "GHS-001-FIFTH-DOMAIN-RESTORE")
|
||
self.assertIn("SYS-GLW-LTH-0001", result["preferred_route"])
|
||
self.assertIn("REPO-012", result["preferred_route"])
|
||
self.assertFalse(result["authority_granted"])
|
||
|
||
def test_corrects_deprecated_server_relay(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"把新加坡完整离线包上传到京东服务器",
|
||
"先让海外服务器直连国内服务器",
|
||
)
|
||
self.assertEqual(result["decision"], "CORRECT")
|
||
self.assertEqual(result["matched_skill"], "GHS-002-OFFLINE-PACK-LOCAL-RELAY")
|
||
self.assertTrue(result["deprecated_hits"])
|
||
|
||
def test_blocks_unverified_release_overwrite(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"安装光湖代码频道完整离线包",
|
||
"未校验就启动并直接覆盖正在运行的release",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertEqual(len(result["forbidden_hits"]), 2)
|
||
|
||
def test_blocks_fabricated_full_commit(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"部署光湖代码频道到京东服务器",
|
||
"根据短提交补写40位提交",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertIn("根据短提交补写40位提交", result["forbidden_hits"])
|
||
|
||
def test_unknown_intent_fails_closed(self):
|
||
result = resolve(self.registry, "安排明天的午饭")
|
||
self.assertEqual(result["decision"], "NO_MATCH")
|
||
self.assertIn("SYS-GLW-LTH-0001", result["correction"])
|
||
self.assertFalse(result["authority_granted"])
|
||
|
||
def test_lighthouse_host_navigation_resolves_local_keychain_publish(self):
|
||
result = resolve(self.registry, "你推一下线上仓库,直接走钥匙串")
|
||
self.assertEqual(result["decision"], "ALLOW")
|
||
self.assertEqual(result["matched_skill"], "GHS-009-LIGHTHOUSE-HOST-NAVIGATION")
|
||
self.assertIn("GLW-HOST-SKILL-NAV-001", result["preferred_route"])
|
||
|
||
def test_repository_push_requires_separate_transport_proof(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"恢复仓库推送,远端还有待推送提交",
|
||
"把授权单当作已经推送",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertEqual(result["matched_skill"], "GHS-003-REPOSITORY-PUSH-PROOF-SEPARATION")
|
||
self.assertIn("EXP-20260726-001-AUTHORIZATION-IS-NOT-TRANSPORT", result["experience_receipts"])
|
||
self.assertTrue(result["recovery_route"])
|
||
|
||
def test_enterprise_candidate_blocks_missing_data_disk_assumption(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"部署企业服务器光湖代码频道",
|
||
"把缺失的data盘当作已挂载",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertEqual(result["matched_skill"], "GHS-004-AW-ENTERPRISE-HLCC-CANDIDATE")
|
||
self.assertEqual(result["enforcement_level"], "CANDIDATE_ONLY")
|
||
|
||
def test_enterprise_candidate_corrects_personal_source_route(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"恢复AW-GZ-001企业代码频道",
|
||
"把个人第五域源码作为企业团队部署源",
|
||
)
|
||
self.assertEqual(result["decision"], "CORRECT")
|
||
self.assertTrue(result["deprecated_hits"])
|
||
|
||
def test_persona_genesis_resolves_through_unique_anchor(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"把这次完整开发的思维逻辑封装人格体大脑技能",
|
||
)
|
||
self.assertEqual(result["decision"], "ALLOW")
|
||
self.assertEqual(result["matched_skill"], "GHS-005-PERSONA-GENESIS")
|
||
self.assertEqual(result["preferred_route"][0], "GLW-PUBLIC-NAV-ANCHOR-001")
|
||
self.assertFalse(result["authority_granted"])
|
||
|
||
def test_persona_genesis_blocks_registry_as_installation(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"部署人格面板并封装人格体大脑技能",
|
||
"把仓库登记当作Codex已经安装",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertEqual(result["matched_skill"], "GHS-005-PERSONA-GENESIS")
|
||
|
||
def test_guanghu_os_cognitive_control_uses_protocol_execution_route(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"把Linux降级为光湖OS底层引擎,让语言协议执行层真正拥有手脚",
|
||
)
|
||
self.assertEqual(result["decision"], "ALLOW")
|
||
self.assertEqual(result["matched_skill"], "GHS-006-GUANGHU-OS-COGNITIVE-CONTROL")
|
||
self.assertIn("gls/GLS-PROTOCOL-REGISTRY.json", result["preferred_route"])
|
||
self.assertFalse(result["authority_granted"])
|
||
|
||
def test_guanghu_os_cognitive_control_blocks_model_root_bypass(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"建设光湖OS执行总线",
|
||
"模型直接生成root命令执行并绕过身份权限回滚和回执",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertEqual(result["matched_skill"], "GHS-006-GUANGHU-OS-COGNITIVE-CONTROL")
|
||
self.assertEqual(len(result["forbidden_hits"]), 2)
|
||
|
||
def test_guanghu_os_long_deployment_resolves_to_causal_closure(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"光湖OS长部署任务到底完成没有,卡在哪里,不要从头重做",
|
||
)
|
||
self.assertEqual(result["decision"], "ALLOW")
|
||
self.assertEqual(
|
||
result["matched_skill"],
|
||
"GHS-008-GUANGHU-OS-DEPLOYMENT-CAUSAL-CLOSURE",
|
||
)
|
||
self.assertIn("GLW-PUBLIC-NAV-ANCHOR-001", result["preferred_route"])
|
||
|
||
def test_guanghu_os_causal_closure_blocks_global_success_from_one_command(self):
|
||
result = resolve(
|
||
self.registry,
|
||
"部署因果闭环",
|
||
"把一次命令成功当全部部署成功",
|
||
)
|
||
self.assertEqual(result["decision"], "BLOCK")
|
||
self.assertEqual(
|
||
result["matched_skill"],
|
||
"GHS-008-GUANGHU-OS-DEPLOYMENT-CAUSAL-CLOSURE",
|
||
)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
unittest.main()
|