plugin-releaselisted
Install: claude install-skill iroha924/gleanery
# 配布物を届ける
## Triggers
- `server/src/mcp.ts`、`server/src/cli.ts`、`server/src/capture.ts`、またはそれらがimportするmoduleを変更する
- `plugin/hooks/hooks.json`を変更する
- `plugin/skills/`を変更する
- 配布するversionを上げる、npmへpublishする
- ローカル変更がClaude CodeやCodexに届かない原因を調べる
## Does not trigger
- DB schemaやroleを変更する。その場合は`knowledge-schema`を使う
## 配布経路
**正本はnpmのpackage 1つ**で、Claude CodeとCodexのpluginはmarketplaceの`npm` sourceでそれを指す。
Claude Codeはpackageをnpm clientで解決し、tarballをplugin cacheへ展開する。
- **install scriptは走らず、依存もinstallされない。**tarballは自己完結している必要がある
(`bun build`でバンドルした1 fileずつを同梱する)。DBは`node:sqlite`(Nodeの組み込み)なので、ネイティブ依存を持たない
- CLIはInkを含むので`scripts/bundle-cli.ts`(`Bun.build`)でバンドルする。Inkは`DEV=true`のときだけ`react-devtools-core`を
読みにいくので、`ink/build/devtools.js`を空のmoduleへ差し替える(差し替えないと、上の階層に`react-devtools-core`が
ある環境で起動ごと落ちる)
- 同梱の`db/schema.sql`(と、あれば`db/migrations`)を`gleanery init` / `gleanery db migrate`が読む。CIは展開した
tarballの CLI で一時HOMEに`init`を打って確かめる
- cacheはバージョンが変わったときだけ更新される。`bun run bundle`やcommitだけでは届かず、publishまで届かない
- CLIは実行した場所の`dist/cli.js`を読むため、CLIで動くことはMCPで動く証拠にならない
- 自動記録のhookは`${CLAUDE_PLUGIN_ROOT}/dist/capture.js`を叩くので、これもcacheのバージョンで動く
- **`plugin/dist`はgitで追跡しない。**buildはpublishのときに作る
### Skillからの起動経路
Skillが CLI を呼ぶときは、**package内のJSを直接起動する**。
```text
node "${CLAUDE_PLUGIN_ROOT}/dist/cli.js" <サブコマンド>
```
npmの`bin`は、利用者が`npm i -g`したときの`gleanery`コマンド用であって、**plugin内のPATHへ公開される契約は
無い**。`${CLAUDE_PLUGIN_ROOT}/bin/gleanery`のようなshell scriptに依存すると、Windowsで動かないうえ、
npm sourceでは置かれる保証も無い。
#