Replies: 1 comment 1 reply
|
ok, the wonderful world of skills. In the last few months the skills schema and approach has been made a standard across agents which is nice. However it is still not 100% clear on how it works from the past. By default each agent looks in a specific 'skills' folder. in the case of copilot there are a set of folders at the repo level and then also at the personal profile level. Agents pull the skill name and description when initial context is getting created. Nothing more or less. Skills are supposed to be incrementally loading to avoid context bloat. So to have this work effectivly the description needs to be enough for the model to determine the skill would apply to this scenario. Then when it loads the SKILL.md file it pulls the whole thing into the context space. So to allow skills to cover domain areas when a SKILL.md is created it should have information into on what it covers and then links to reference/assets/scripts from that to be loaded if the model thinks that it needs more detailed information based on the reference from the SKILLS.md file. This means you can have a slim skill file and then push more detailed information into the reference files. For example you can have a skill cover an area where three scenarios could happen and then based on that actions need to be take. The SKILL.md file has a over vie of the three scenarios and then references a file per scenario (skill-name/references/secenrio1.md, skill-name/references/secenrio2.md, skill-name/references/secenrio3.md) the SKILL file provides instructions for the model to load the reference file in if a particular scenario matches what is happening in current message round. This reduces context usage as there would be less skills and each skill is incremental. Then you have scripts to get information to avoid session loops and bloat. So for this repo there would be skills used by the agents that are specific to this code base. There are also skills specific to the squad platform which is common across all repos it is deployed to. A way to clarify this is to prefix all squad specific skills with 'squad-*' That way it is clear to the user which skills help the squad do its job and which are repo specific. We are doing something simlar for our skills to manage the usage of them and stop overlaps. If the team owning sdquad want to go ahead with that int the .github/skills|.agent/skills|... folder the existing squad skills could be copied as squad-currentname and then update the script to copy and bundle them. Any repo specific skills would not be prefixed with squad. Then the squad instructions can be updated to understand that. Bit of a refactor but not to hard. Then once done we should run evals on the descriptions to make sure they trigger from the squad instructions and from expected user interaction with squad. Then the descriptions can be refined and some skills collapsed together where there is overlap to reduce context usage and model confusion as to which skill to load. @bradygaster thoughts as this is a bit of a change. The current model is trying to get the agent to do this in a instruction way and as per my PR it is not referencing the right folders. |
Uh oh!
There was an error while loading. Please reload this page.
Could we please discuss/gather information on skills that I can't seem to find in documents or other places just yet.
For a skill to be recognised and used, should it be loaded in the copilot cli window? Does a human have to enact the skill with the /git-workflow command after it's loaded?
From what I can gather, before 0.9.1 it was determined that skills in the .squad folder weren't used at all so they were moved. I recently saw a comment from @bradygaster that mentioned both places are valid just yesterday - I don't want to argue but in my experience, skills in .squad have done nothing/very little following the quick start instructions.
The choice to move to .copilot in the project repo seems logical but in copilot-cli, skills still aren't loaded. If you review the output of /skills list, it doesn't actually list the .copilot location for repos. .copilot skills are only read automatically from the users profile version of .copilot and this matched my experience.
Following on from 3. With using /skills add .copilot/skills (or .squad/skills) command, this loaded the skills and all of a sudden I could use the git workflow one and the coordinator does keep using it.
I asked to update this skill, the coordinator chose to update the version in .templates. On this note, if you ask it questions about skills directories, I've found the answers it gives are generally still referring to .squad/skills. I don't mean to nitpick but perhaps more needs to be done for the folder changes?
Happy to provide more info on specific items if anyone has any questions.
All reactions