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
-**Dart SDK** and **jq** on your `PATH` — the hooks need both.
82
+
-**Very Good CLI** ≥ 1.3.0 (`dart pub global activate very_good_cli`) for the
83
+
Very Good CLI MCP server tools.
84
+
85
+
See the README [Hooks](README.md#hooks) and [MCP Integration](README.md#mcp-integration)
86
+
sections for the full prerequisite details.
87
+
88
+
### Load your local copy
89
+
90
+
From the repository root, launch Claude Code pointed at this directory:
91
+
92
+
```bash
93
+
claude --plugin-dir .
94
+
```
95
+
96
+
`--plugin-dir` loads the plugin for that session only, needs no install or
97
+
marketplace, and overrides any marketplace-installed copy of the same plugin.
98
+
`${CLAUDE_PLUGIN_ROOT}` (used throughout `hooks/hooks.json`) resolves to the
99
+
directory you pass, so the hook script paths resolve correctly.
100
+
101
+
### Verify each component loaded
102
+
103
+
| Component | How to verify |
104
+
| ----------- | --------------- |
105
+
|**Skills**| Run `/help`. Skills appear namespaced as `/vgv-ai-flutter-plugin:<skill>` (e.g. `/vgv-ai-flutter-plugin:bloc`). Invoke one to confirm it triggers. |
106
+
|**MCP servers**| Run `/mcp`. Confirm `dart` and `very-good-cli` both show connected. |
107
+
|**Hooks**| Have Claude `Edit` or `Write` a `.dart` file and confirm `analyze.sh` and `format.sh` run. Launch without Very Good CLI to see the SessionStart warning fire. |
108
+
109
+
### Iterate on changes
110
+
111
+
After editing a `SKILL.md`, a hook script, or `.mcp.json`, **restart the
112
+
`claude --plugin-dir .` session** to guarantee the change is picked up. Changes
113
+
to `.claude-plugin/plugin.json` always require a restart. Edits to the hook
114
+
`.sh` scripts take effect on the next matching tool call with no restart, since
115
+
each hook runs the script fresh.
116
+
117
+
### Rehearse the real install (optional)
118
+
119
+
To mimic the marketplace install flow without pushing anything, register a
120
+
throwaway local marketplace. Create `.claude-plugin/marketplace.json` in a temp
| Skill missing from `/help`| Invalid frontmatter, or `name` doesn't match the folder | Run `claude plugin validate .` and fix the reported error |
162
+
| MCP server "executable not found" |`dart` or `very_good` not on `PATH`| Install the SDK / activate the CLI, then verify with `which`|
163
+
| Hook never fires |`jq` not installed, or script lacks `+x` / a shebang | Install `jq`; `chmod +x` the script and add `#!/bin/bash`|
164
+
|`${CLAUDE_PLUGIN_ROOT}` not resolving | Session not launched via `--plugin-dir` (or restart pending) | Restart with `claude --plugin-dir .` from the repo root |
165
+
| Local marketplace won't install |`source.path` is relative | Use an absolute path in `marketplace.json`|
166
+
72
167
## CI Checks
73
168
74
169
Every pull request runs the following checks automatically:
0 commit comments