Install
openclaw skills install @thomaszhou22/skill-trigger-testTest whether your skills actually fire. Feed it synthetic user messages, it checks which skill SHOULD trigger vs which stays silent, and scores trigger accuracy per skill — catches the silent-failure case the official eval tool misses. 测试你的技能是否真的会触发:喂入模拟用户消息,逐个验证该触发的触发、不该触发的安静,输出每个技能的触发准确率报告——专治官方评测工具测不出的静默失灵。
openclaw skills install @thomaszhou22/skill-trigger-testYour skill looks perfect on paper. Then a user types the exact phrase and… nothing fires. Trigger Test catches that before your users do: it simulates realistic user messages, applies trigger analysis per skill, and scores hit / miss / false-alarm for each.
When the user first triggers this skill and memory/skill_trigger_test_state.json doesn't exist, run a one-time setup:
Introduce capability (one sentence): "I can test whether your skills actually fire — feed simulated messages, verify the right ones trigger and the wrong ones stay silent."
Quick configuration:
Test message source(Default: Both)
Report format(Default: Full table)
Write initial state file memory/skill_trigger_test_state.json(JSON format, with onboarded: true and timestamp)
Confirm completion: _"Setup done! Just use it from now on. Say 'reset settings' anytime to reconfigure."
Onboarding runs exactly once. Subsequent activations read the state file directly. When the user says "reset settings", delete the state file and re-run setup.
Trigger Test does NOT call any model. It evaluates the same thing a host model reads when deciding to load a skill: the description in each SKILL.md frontmatter. For every test message, the agent runs a structured 4-question analysis per skill (see references/analysis-protocol.md):
The protocol is deterministic in structure (same 4 questions every time) so results are reproducible across sessions.
Two sources of test messages:
A. Generated suite (fast, zero setup) From each skill's own description, the agent derives:
B. User's real messages (ground truth) The user pastes 5-10 messages they actually sent recently where they wished a skill had (or hadn't) fired. These carry the most signal — prioritize them.
hit = should trigger & verdict TRIGGER
miss = should trigger & verdict SILENT ← the killer failure
false-alarm= should be silent & verdict TRIGGER ← the annoying failure
contested = two skills both claim, no winner declared
accuracy = hits / (hits + misses)
precision = hits / (hits + false-alarms)
Score each skill, then the whole installation. Full report template in references/report-template.md.