fix: OpenCode plugin not discovering skills (#16)

OpenCode installs the repo via git and looks at the root for the plugin
entry point. Our skills/agents live inside understand-anything-plugin/,
so OpenCode couldn't find them.

- Add .opencode/plugins/understand-anything.js that uses the config hook
  to inject understand-anything-plugin/skills/ into skills.paths
- Add "main" field to root package.json pointing to the plugin entry
- Update INSTALL.md with version pinning and troubleshooting sections

Closes #16

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Lum1104
2026-03-22 23:10:23 +08:00
co-authored by Claude Opus 4.6
parent 8134bb95ca
commit c7f564a60e
3 changed files with 50 additions and 0 deletions
+24
View File
@@ -32,6 +32,30 @@ Or just ask: "Analyze this codebase and build a knowledge graph"
Restart OpenCode — the plugin re-installs from git automatically.
To pin a specific version:
```json
{
"plugin": ["understand-anything@git+https://github.com/Lum1104/Understand-Anything.git#v1.1.1"]
}
```
## Uninstalling
Remove the plugin line from `opencode.json` and restart.
## Troubleshooting
### Skills not found
1. Verify the plugin line in your `opencode.json`
2. Check that `~/.cache/opencode/node_modules/understand-anything` exists after restart
3. Use the `skill` tool to list discovered skills
### Tool mapping
When skills reference Claude Code tools:
- `TodoWrite``todowrite`
- `Task` with subagents → `@mention` syntax
- `Skill` tool → OpenCode's native `skill` tool
- File operations → your native tools
+25
View File
@@ -0,0 +1,25 @@
/**
* Understand Anything plugin for OpenCode.ai
*
* Auto-registers the skills directory so OpenCode discovers all
* understand-anything skills without manual symlinks or config edits.
*/
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
export const UnderstandAnythingPlugin = async ({ client, directory }) => {
const skillsDir = path.resolve(__dirname, '../../understand-anything-plugin/skills');
return {
config: async (config) => {
config.skills = config.skills || {};
config.skills.paths = config.skills.paths || [];
if (!config.skills.paths.includes(skillsDir)) {
config.skills.paths.push(skillsDir);
}
},
};
};
+1
View File
@@ -2,6 +2,7 @@
"name": "understand-anything",
"private": true,
"type": "module",
"main": ".opencode/plugins/understand-anything.js",
"packageManager": "pnpm@10.6.2+sha512.47870716bea1572b53df34ad8647b42962bc790ce2bf4562ba0f643237d7302a3d6a8ecef9e4bdfc01d23af1969aa90485d4cebb0b9638fa5ef1daef656f6c1b",
"scripts": {
"prepare": "pnpm --filter @understand-anything/core build",