"""The session_platforms frontmatter gate (skills-index slim PR). A skill whose metadata.hermes.session_platforms names gateway channels is hidden from the skills index on every other channel; unknown platform fails OPEN (offline builds/tests must not hide skills). """ from agent.prompt_builder import _skill_should_show from agent.skill_utils import extract_skill_conditions def _conds(platforms): return extract_skill_conditions( {"metadata": {"hermes": {"session_platforms": platforms}}} ) class TestSessionPlatformGate: def test_hidden_on_other_channel(self): assert _skill_should_show(_conds(["teams", "cron"]), {"terminal"}, set(), "desktop") is False assert _skill_should_show(_conds(["teams", "cron"]), {"terminal"}, set(), "telegram") is False def test_shown_on_named_channel(self): assert _skill_should_show(_conds(["teams", "cron"]), {"terminal"}, set(), "teams") is True assert _skill_should_show(_conds(["teams", "cron"]), {"terminal"}, set(), "cron") is True def test_case_insensitive(self): assert _skill_should_show(_conds(["Teams"]), {"terminal"}, set(), "TEAMS") is True def test_unknown_platform_fails_open(self): assert _skill_should_show(_conds(["teams"]), {"terminal"}, set(), None) is True assert _skill_should_show(_conds(["teams"]), {"terminal"}, set(), "") is True def test_empty_list_visible_everywhere(self): assert _skill_should_show(_conds([]), {"terminal"}, set(), "desktop") is True def test_gate_runs_even_without_tool_info(self): # The channel gate is independent of tool-filtering backward compat. assert _skill_should_show(_conds(["teams"]), None, None, "desktop") is False