Step 4 of #1277. It lands in the single pull request for #1277 (branch feat/1277-skills).
What
A Skills tab in /settings, one row per discovered skill:
- a mark when the skill lives in codeaf's own folder
- the name
- the size, in bytes and estimated tokens
- its state:
on here, on for this project, on globally, off
A skill with a warning shows it dimly. A shadowed skill shows what owns its name. A skill declaring allowed-tools shows the list. The tab does not say which harness's folder a skill came from.
Keys: Enter cycles the row's state for this conversation. A second key sets it for the project or globally.
Commands: /skill on <name> and /skill off <name> take --project or --global (default: this conversation). They go through the same engine door as the tab. /skills opens the tab.
Acceptance, end to end
Real binary in tmux with fixture skills:
/skills opens the Skills tab listing every fixture skill with its size and state.
- Toggling a row globally writes
~/.codeaf/skills.json, and the next request's catalog includes the skill.
/skill off pdf-processing --project writes <project>/.codeaf/skills.json, and the next request's catalog drops it.
- The tab and
/skill never disagree about a state.
- The manual answers "how do I turn a skill on for just this project?".
Step 4 of #1277. It lands in the single pull request for #1277 (branch
feat/1277-skills).What
A Skills tab in
/settings, one row per discovered skill:on here,on for this project,on globally,offA skill with a warning shows it dimly. A shadowed skill shows what owns its name. A skill declaring
allowed-toolsshows the list. The tab does not say which harness's folder a skill came from.Keys: Enter cycles the row's state for this conversation. A second key sets it for the project or globally.
Commands:
/skill on <name>and/skill off <name>take--projector--global(default: this conversation). They go through the same engine door as the tab./skillsopens the tab.Acceptance, end to end
Real binary in tmux with fixture skills:
/skillsopens the Skills tab listing every fixture skill with its size and state.~/.codeaf/skills.json, and the next request's catalog includes the skill./skill off pdf-processing --projectwrites<project>/.codeaf/skills.json, and the next request's catalog drops it./skillnever disagree about a state.