fix(tui): do not ok-reply a skill banner from the slash worker

Skill slashes that miss the 4018 gate print the loading banner and park
the prompt on unread _pending_input. Refuse before process_command, and
return command.dispatch's skill payload or a hard error when the skill
scan raises so fail-open cannot drop the turn.
This commit is contained in:
brooklyn!
2026-09-24 05:15:24 -05:00
parent 890db53396
commit 3dbc0246b9
5 changed files with 319 additions and 5 deletions

View File

@@ -108,7 +108,7 @@
{
"id": "P22",
"class": "C3",
"pattern_regex": "scan_skill_commands\\(|get_skill_bundles\\(|resolve_bundle_command_key\\(|_is_profile_skill_command\\(|def _dispatch_(skill|bundle)\\(",
"pattern_regex": "scan_skill_commands\\(|get_skill_bundles\\(|resolve_bundle_command_key\\(|_profile_skill_command\\(|_is_profile_skill_command\\(|def _dispatch_(skill|bundle)\\(",
"scope_hint": "command.dispatch's whole stage loop (quick -> plugin -> bundle -> skill) and slash.exec bundle routing must run under the session's profile home; use the home-keyed get_skill_commands().",
"why": "The router bound the profile and said 'skill exists', the dispatcher scanned the launch home and answered 4018 'not a skill command' for every secondary-only skill."
},