You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Skills 2/6: /<skill-name> invokes a skill by its own name #1404
Step 2 of #1277. It lands in the single pull request for #1277 (branch feat/1277-skills).
What
Every discovered skill is a slash command by its own name. Skills become a second, dynamic source of commands beside the fixed table in internal/tui3/commands.go. The picker under the draft ranks them among codeaf's own commands, and the dispatcher consults them after the fixed table.
/<skill-name> [words] sends the skill's body plus your words as the turn. The transcript shows the line you typed, not the body. If the skill is already in this conversation's context, only your words are sent, and the skill is named as already loaded.
codeaf's own commands always win a name. A skill named like one of them is reached with /skill use <name> [words], which does exactly what its own slash would have done.
A shadowed or skipped skill is not a command.
Acceptance, end to end
Real binary in tmux, with a fixture skill pdf-processing in ~/.agents/skills and a stub model that records its requests:
Typing /pdf shows pdf-processing in the picker, with its description.
/pdf-processing extract the tables draws that exact line in the transcript. The model's request carries the SKILL.md body and extract the tables.
Sending /pdf-processing again in the same conversation sends only again.
A fixture skill named help is not reachable as /help (codeaf's help opens). /skill use help hi sends that skill's body.
The manual answers "how do I use a skill?" and names /skill. The command-table gate passes.
Activity