Skip to main content

git_worktree_manager/operations/setup_claude/
manifest.rs

1//! JSON manifests for the local Claude Code marketplace + plugin.
2//!
3//! `marketplace.json` describes one plugin, `gw`, sourced from the sibling
4//! `./gw-plugin` directory. `plugin.json` carries the binary's Cargo
5//! version so re-running `gw setup-claude` after upgrading triggers a real
6//! `claude plugin update` (versions must differ for cache to refresh).
7
8const PLUGIN_VERSION: &str = env!("CARGO_PKG_VERSION");
9
10pub fn marketplace_json() -> &'static str {
11    // Static blob — version-independent.
12    concat!(
13        "{\n",
14        "  \"name\": \"gw-local\",\n",
15        "  \"owner\": { \"name\": \"git-worktree-manager\" },\n",
16        "  \"plugins\": [\n",
17        "    {\n",
18        "      \"name\": \"gw\",\n",
19        "      \"source\": \"./gw-plugin\",\n",
20        "      \"description\": \"git-worktree-manager: delegate tasks to worktrees and manage multi-worktree workflows safely.\"\n",
21        "    }\n",
22        "  ]\n",
23        "}\n"
24    )
25}
26
27pub fn plugin_json() -> String {
28    format!(
29        "{{\n  \"name\": \"gw\",\n  \"version\": \"{}\",\n  \"description\": \"git-worktree-manager plugin: /gw delegate + manage skill.\",\n  \"author\": {{ \"name\": \"git-worktree-manager\" }}\n}}\n",
30        PLUGIN_VERSION
31    )
32}