找到方法在 opencode 里暂时关闭 superpowers 了
- 内容介绍
- 文章标签
- 相关推荐
superpowers 有时候真的很好用,比如在大项目做修改后自动 review、或是从头开始 vibecoding 的时候想确认完约束后,让它减少停下来的次数。
但有些时候不需要它,比如一点小修改,只会平白浪费时间。所以我需要找个办法暂时关闭它。
opencode 目前还没有动态关闭插件的功能(而且我觉得关闭了插件也不一定可以关掉已经 load 的 skill)。
最后我灵机一动:既然 superpowers 本质是一堆 skill,那我就写个 skill 让模型不要主动去使用 skill 不就好了!
在 ~/.config/opencode/skills/no-skill/SKILL.md 中加入
---
name: no-skill
description: This skill is explicitly requested by user, used to disable all skills.
---
**Do not use any skills unless the user explicitly requests it.**
---
然后,如果不需要用 superpowers,就用 /no-skill <instructions> 去启动一个对话。
(不过也许我应该再写个可以恢复 superpowers 的 skill )
网友解答:--【壹】--:
其实把superpower改成skill手动触发就行了,你这样disable掉所有skill了
--【贰】--:
@Xiwis_Homed @muggle_e 感谢二位,我现在把它改成手动触发了。
feat: add superpower for opencode
已提交 01:21PM - 12 Apr 26 UTC rijuyuezhu +51 -38以上是我的 diff
--【叁】--:
哇,为你的行动力,点赞.但是你的pr,实际上不怎么好的.
- 首先我先说我对应这个的解决方案,我是vb一个脚本,添加了一个oc的options字段,里面可以控制每个agent是否插入那个superpowers.js中的内容,这个让ai做很好实现的.然后对于不同的子智能体,我是依然考虑注入,但是我用oc的permission对skill进行了比较精细化的权限控制.(例如里面的debug的skill依然保留)
- 你的修改涉及范围太广,因为这个本来不仅适用于oc的,你的这样的修改方法会影响到cc等.本来我也不喜欢这个的强迫使用skill,但是最终发现superpowers这个工作流依然是很棒的,官方是比较强迫你使用,你只需要把一开始的强制的加载变成手动的就可以了,不需要修改每个的desc.
skills/using-superpowers/SKILL.md对于这个文件,这个tool的映射不应该直接插入到这个skill本身的,对skill引入了噪音.
--【肆】--:
其实是superpowers.js(这个文件),在项目的.opencode/plugins/下或者用户目录中
里面的脚本会在一开始就注入superpowers,并且里面强调说1%可能性就要考虑加载skill.(我记得是)
你可以在里面,工具的映射的提示词还可以保留,那些强调使用skill的,可以删除掉,需要的时候手动加载using-superpowers这个skill就可以了.
因为他这个插件确实对oc不怎么好,如果你不设置好权限,子代理也会优先考虑加载superpowers.
superpowers 有时候真的很好用,比如在大项目做修改后自动 review、或是从头开始 vibecoding 的时候想确认完约束后,让它减少停下来的次数。
但有些时候不需要它,比如一点小修改,只会平白浪费时间。所以我需要找个办法暂时关闭它。
opencode 目前还没有动态关闭插件的功能(而且我觉得关闭了插件也不一定可以关掉已经 load 的 skill)。
最后我灵机一动:既然 superpowers 本质是一堆 skill,那我就写个 skill 让模型不要主动去使用 skill 不就好了!
在 ~/.config/opencode/skills/no-skill/SKILL.md 中加入
---
name: no-skill
description: This skill is explicitly requested by user, used to disable all skills.
---
**Do not use any skills unless the user explicitly requests it.**
---
然后,如果不需要用 superpowers,就用 /no-skill <instructions> 去启动一个对话。
(不过也许我应该再写个可以恢复 superpowers 的 skill )
网友解答:--【壹】--:
其实把superpower改成skill手动触发就行了,你这样disable掉所有skill了
--【贰】--:
@Xiwis_Homed @muggle_e 感谢二位,我现在把它改成手动触发了。
feat: add superpower for opencode
已提交 01:21PM - 12 Apr 26 UTC rijuyuezhu +51 -38以上是我的 diff
--【叁】--:
哇,为你的行动力,点赞.但是你的pr,实际上不怎么好的.
- 首先我先说我对应这个的解决方案,我是vb一个脚本,添加了一个oc的options字段,里面可以控制每个agent是否插入那个superpowers.js中的内容,这个让ai做很好实现的.然后对于不同的子智能体,我是依然考虑注入,但是我用oc的permission对skill进行了比较精细化的权限控制.(例如里面的debug的skill依然保留)
- 你的修改涉及范围太广,因为这个本来不仅适用于oc的,你的这样的修改方法会影响到cc等.本来我也不喜欢这个的强迫使用skill,但是最终发现superpowers这个工作流依然是很棒的,官方是比较强迫你使用,你只需要把一开始的强制的加载变成手动的就可以了,不需要修改每个的desc.
skills/using-superpowers/SKILL.md对于这个文件,这个tool的映射不应该直接插入到这个skill本身的,对skill引入了噪音.
--【肆】--:
其实是superpowers.js(这个文件),在项目的.opencode/plugins/下或者用户目录中
里面的脚本会在一开始就注入superpowers,并且里面强调说1%可能性就要考虑加载skill.(我记得是)
你可以在里面,工具的映射的提示词还可以保留,那些强调使用skill的,可以删除掉,需要的时候手动加载using-superpowers这个skill就可以了.
因为他这个插件确实对oc不怎么好,如果你不设置好权限,子代理也会优先考虑加载superpowers.

