[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71EH2C61PKCYEP6K4H15ESA":3,"skill-same:01M71EH2C61PKCYEP6K4H15ESA":76},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":63},"01M71EH2C61PKCYEP6K4H15ESA","gh:setup",null,"Diagnose and configure compound-engineering environment. Checks CLI dependencies, plugin version, and repo-local config. Offers guided installation for missing tools. Use when troubleshooting missing tools, verifying setup, or before onboarding.","JGXC100\u002FGaleHarnessCodingCLI","JGXC100","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F11926809?v=4","01M71EEBHJ3EGYSNNDDSVDKXNG","JGX","01M71EEBJ995S5J2HDEQCBA268",0,"MIT","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Fplugins\u002Fgaleharness-cli\u002Fskills\u002Fgh-setup\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"setup","gh","dependencies","compound","plugin","version","use","true","missing","environment","repo","for","diagnose","Tools","config","cli","configure","when","local","2026-11-10 10:12:30",false,"---\nname: gh:setup\ndescription: \"Diagnose and configure compound-engineering environment. Checks CLI dependencies, plugin version, and repo-local config. Offers guided installation for missing tools. Use when troubleshooting missing tools, verifying setup, or before onboarding.\"\ndisable-model-invocation: true\n---\n\n# Compound Engineering Setup\n\n## Interaction Method\n\nAsk the user each question below using the platform's blocking question tool (e.g., `AskUserQuestion` in Claude Code, `request_user_input` in Codex, `ask_user` in Gemini, `ask_user` in Pi (requires the `pi-ask-user` extension)). If no structured question tool is available, present each question as a numbered list and wait for a reply before proceeding. For multiSelect questions, accept comma-separated numbers (e.g. `1, 3`). Never skip or auto-configure.\n\nInteractive setup for compound-engineering — diagnoses environment health, cleans obsolete repo-local CE config, and helps configure required tools. Review agent selection is handled automatically by `gh:review`; project-specific review guidance belongs in `CLAUDE.md` or `AGENTS.md`.\n\n## Phase 0: Detect Platform\n\nBefore any other step, determine whether this is a Windows environment.\n\nRun the following detection. On Windows PowerShell, `$env:OS` is set to `Windows_NT`. On POSIX (macOS\u002FLinux), it is unset.\n\n**Windows detection:** Try running `$env:OS` in the current shell. If the output is `Windows_NT`, set `IS_WINDOWS=true` and follow the **Windows path** below. Otherwise, follow the **standard path**.\n\nIf shell detection is unavailable, ask the user: \"Are you on Windows?\" and route accordingly.\n\n### Windows Path (PowerShell)\n\nOn Windows, `bash` is not available in the default Trae shell (PowerShell v5.x). Skip Steps 1-2 and run the following inline diagnostics instead.\n\nDisplay: \"Compound Engineering -- checking your environment (Windows)...\"\n\nRun each check and report results:\n\n```powershell\n# Check uv\nGet-Command uv -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source\n```\n\n```powershell\n# Check gh\nGet-Command gh -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source\n```\n\n```powershell\n# Check jq\nGet-Command jq -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source\n```\n\n```powershell\n# Check HKTMemory env vars\n[System.Environment]::GetEnvironmentVariable(\"HKT_MEMORY_API_KEY\"), `\n[System.Environment]::GetEnvironmentVariable(\"HKT_MEMORY_BASE_URL\"), `\n[System.Environment]::GetEnvironmentVariable(\"HKT_MEMORY_MODEL\")\n```\n\nFor each missing tool, report it as yellow and provide the Windows install command:\n\n| Tool | Windows install command |\n|------|------------------------|\n| uv | `irm https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.ps1 \\| iex` |\n| gh | `winget install GitHub.cli` |\n| jq | `winget install jqlang.jq` |\n| ffmpeg | `winget install Gyan.FFmpeg` |\n| agent-browser | `npm install -g agent-browser` |\n\n**Important -- uv PATH on Windows:** After installing uv on Windows, add `$env:USERPROFILE\\.local\\bin` to your system PATH if it is not already there. Without this, `uv` is installed but not discoverable by the Trae sandbox shell. To verify: open a new PowerShell window and run `uv --version`.\n\n**HKTMemory env vars on Windows:** Set these in Windows System Properties -> Environment Variables (not just in the terminal session):\n- `HKT_MEMORY_API_KEY` -- your API key\n- `HKT_MEMORY_BASE_URL` -- `https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fpaas\u002Fv4\u002F`\n- `HKT_MEMORY_MODEL` -- `embedding-3`\n\nAfter installing uv and configuring env vars, restart Trae to ensure the sandbox picks up the updated PATH.\n\nDisplay a summary of the inline diagnostic results (which tools were found, which are missing, env var status). Then proceed to **Phase 1 \u002F Step 3: Evaluate Results** below for the completion check and next steps.\n\n---\n\n## Phase 1: Diagnose (standard path -- macOS\u002FLinux)\n\n### Step 1: Determine Plugin Version\n\nDetect the installed compound-engineering plugin version by reading the plugin metadata or manifest. This is platform-specific -- use whatever mechanism is available (e.g., reading `plugin.json` from the plugin root or cache directory). If the version cannot be determined, skip this step.\n\nIf a version is found, pass it to the check script via `--version`. Otherwise omit the flag.\n\n### Step 2: Run the Health Check Script\n\nBefore running the script, display: \"Compound Engineering -- checking your environment...\"\n\nRun the bundled check script. Do not perform manual dependency checks -- the script handles all CLI tools, agent skills, repo-local CE file checks, and `.gitignore` guidance in one pass.\n\n```bash\nbash scripts\u002Fcheck-health --version VERSION\n```\n\nOr without version if Step 1 could not determine it:\n\n```bash\nbash scripts\u002Fcheck-health\n```\n\nScript reference: `scripts\u002Fcheck-health`\n\nDisplay the script's output to the user.\n\n### Step 3: Evaluate Results\n\n**Platform detection (pre-resolved):**\n- **macOS\u002FLinux:** !`[ -n \"${CLAUDE_PLUGIN_ROOT}\" ] && echo \"CLAUDE_CODE\" || echo \"OTHER\"`\n- **Windows:** !`if ($env:CLAUDE_PLUGIN_ROOT) { \"CLAUDE_CODE\" } else { \"OTHER\" }`\n\nIf the platform detection resolved to `CLAUDE_CODE`, this is a Claude Code session and `\u002Fgh:update` is available. Otherwise, omit any `\u002Fgh:update` references from output.\n\n**For Windows users:** The inline diagnostic output from Phase 0 shows tool availability directly. A tool is missing if `Get-Command` returned nothing (blank line). For macOS\u002FLinux users, check the health-check script output as described below.\n\nAfter the diagnostic report, check whether:\n\n- any CLI tools are missing:\n  - **macOS\u002FLinux:** reported as yellow in the script output\n  - **Windows:** `Get-Command` returned no result for uv, gh, or jq\n- any agent skills are missing:\n  - **macOS\u002FLinux:** reported as yellow in the Skills section\n  - **Windows:** skip agent-skill checks for now\n- `compound-engineering.local.md` is present and needs cleanup\n- `.compound-engineering\u002Fconfig.local.yaml` does not exist or is not safely gitignored\n- `.compound-engineering\u002Fconfig.local.example.yaml` is missing or outdated\n\nIf everything is installed, no repo-local cleanup is needed, and `.compound-engineering\u002Fconfig.local.yaml` already exists and is gitignored, display the tool and skill list and completion message. Parse the tool and skill names from the script output and list each with a green circle. Omit the Skills line if the Skills section is absent from the script output:\n\n```\n ✅ Compound Engineering setup complete\n\n    Tools:  🟢 agent-browser  🟢 gh  🟢 jq  🟢 vhs  🟢 silicon  🟢 ffmpeg  🟢 ast-grep\n    Skills: 🟢 ast-grep\n    Config: ✅\n\n    Run \u002Fgh:setup anytime to re-check.\n```\n\nIf this is a Claude Code session, append to the message: \"Run \u002Fgh:update to grab the latest plugin version.\"\n\nStop here.\n\nOtherwise proceed to Phase 2 to resolve any issues. Handle repo-local cleanup (Step 4) first, then config bootstrapping (Step 5), then missing dependencies (Step 6).\n\n## Phase 2: Fix\n\n### Step 4: Resolve Repo-Local CE Issues\n\nResolve the repository root (`git rev-parse --show-toplevel`). If `compound-engineering.local.md` exists at the repo root, explain that it is obsolete because review-agent selection is automatic and CE now uses `.compound-engineering\u002Fconfig.local.yaml` for any surviving machine-local state. Ask whether to delete it now. Use the repo-root path when deleting.\n\n### Step 5: Bootstrap Project Config\n\nResolve the repository root (`git rev-parse --show-toplevel`). All paths below are relative to the repo root, not the current working directory.\n\n**Example file (always refresh):** Copy `references\u002Fconfig-template.yaml` to `\u003Crepo-root>\u002F.compound-engineering\u002Fconfig.local.example.yaml`, creating the directory if needed. This file is committed to the repo and always overwritten with the latest template so teammates can see available settings.\n\n**Local config (create once):** If `.compound-engineering\u002Fconfig.local.yaml` does not exist, ask whether to create it:\n\n```\nSet up a local config file for this project?\nThis saves your Compound Engineering preferences (like which tools to use and how workflows behave).\nEverything starts commented out -- you only enable what you need.\n\n1. Yes, create it (Recommended)\n2. No thanks\n```\n\nIf the user approves, copy `references\u002Fconfig-template.yaml` to `\u003Crepo-root>\u002F.compound-engineering\u002Fconfig.local.yaml`. If `.compound-engineering\u002Fconfig.local.yaml` is not already covered by `.gitignore`, offer to add the entry:\n\n```text\n.compound-engineering\u002F*.local.yaml\n```\n\nIf the local config already exists, check whether it is safely gitignored. If not, offer to add the `.gitignore` entry as above.\n\n### Step 6: Offer Installation\n\nPresent the missing tools and skills using a multiSelect question with all items pre-selected. Use the install commands and URLs from the script's diagnostic output. Group items under `Tools:` and `Skills:` so the user can see which runtime each item targets; omit a group whose items are all installed.\n\n```\nThe following items are missing. Select which to install:\n(All items are pre-selected)\n\nTools:\n  [x] agent-browser - Browser automation for testing and screenshots\n  [x] gh - GitHub CLI for issues and PRs\n  [x] jq - JSON processor\n  [x] vhs (charmbracelet\u002Fvhs) - Create GIFs from CLI output\n  [x] silicon (Aloxaf\u002Fsilicon) - Generate code screenshots\n  [x] ffmpeg - Video processing for feature demos\n  [x] ast-grep - Structural code search using AST patterns\n\nSkills:\n  [x] ast-grep - Agent skill for structural code search with ast-grep\n```\n\nOnly show items that are actually missing. Omit installed ones.\n\n### Step 7: Install Selected Dependencies\n\nFor each selected dependency, in order:\n\n1. **Show the install command** (from the diagnostic output) and ask for approval:\n\n   ```\n   Install agent-browser?\n   Command: CI=true npm install -g agent-browser --no-audit --no-fund --loglevel=error && agent-browser install && npx skills add https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-browser --skill agent-browser -g -y\n\n   1. Run this command\n   2. Skip - I'll install it manually\n   ```\n\n2. **If approved:** Run the install command using a shell execution tool. After the command completes, verify installation:\n   - For a CLI tool, run the dependency's check command (e.g., `command -v agent-browser`).\n   - For an agent skill, prefer `npx --yes skills list --global --json | jq -r '.[].name' | grep -qx \u003Cskill-name>` when `npx` is available; otherwise fall back to checking that `~\u002F.claude\u002Fskills\u002F\u003Cskill-name>` exists (file, directory, or symlink).\n\n3. **If verification succeeds:** Report success.\n\n4. **If verification fails or install errors:** Display the project URL as fallback and continue to the next dependency.\n\n### Step 8: Summary\n\nDisplay a brief summary:\n\n```\n ✅ Compound Engineering setup complete\n\n    Installed: agent-browser, gh, jq\n    Skipped:   rtk\n\n    Run \u002Fgh:setup anytime to re-check.\n```\n\nIf this is a Claude Code session (per platform detection in Step 3), append: \"Run \u002Fgh:update to grab the latest plugin version.\"\n\n\nAgent skill detection checks CLI output first, then falls back to on-disk roots `~\u002F.claude\u002Fskills\u002F\u003Cskill-name>`, `~\u002F.agents\u002Fskills\u002F\u003Cskill-name>`, and `~\u002F.codex\u002Fskills\u002F\u003Cskill-name>` so Codex global skills are detected alongside Claude\u002FAgents installs.\n","# Compound Engineering Setup\n\n## Interaction Method\n\nAsk the user each question below using the platform's blocking question tool (e.g., `AskUserQuestion` in Claude Code, `request_user_input` in Codex, `ask_user` in Gemini, `ask_user` in Pi (requires the `pi-ask-user` extension)). If no structured question tool is available, present each question as a numbered list and wait for a reply before proceeding. For multiSelect questions, accept comma-separated numbers (e.g. `1, 3`). Never skip or auto-configure.\n\nInteractive setup for compound-engineering — diagnoses environment health, cleans obsolete repo-local CE config, and helps configure required tools. Review agent selection is handled automatically by `gh:review`; project-specific review guidance belongs in `CLAUDE.md` or `AGENTS.md`.\n\n## Phase 0: Detect Platform\n\nBefore any other step, determine whether this is a Windows environment.\n\nRun the following detection. On Windows PowerShell, `$env:OS` is set to `Windows_NT`. On POSIX (macOS\u002FLinux), it is unset.\n\n**Windows detection:** Try running `$env:OS` in the current shell. If the output is `Windows_NT`, set `IS_WINDOWS=true` and follow the **Windows path** below. Otherwise, follow the **standard path**.\n\nIf shell detection is unavailable, ask the user: \"Are you on Windows?\" and route accordingly.\n\n### Windows Path (PowerShell)\n\nOn Windows, `bash` is not available in the default Trae shell (PowerShell v5.x). Skip Steps 1-2 and run the following inline diagnostics instead.\n\nDisplay: \"Compound Engineering -- checking your environment (Windows)...\"\n\nRun each check and report results:\n\n```powershell\n# Check uv\nGet-Command uv -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source\n```\n\n```powershell\n# Check gh\nGet-Command gh -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source\n```\n\n```powershell\n# Check jq\nGet-Command jq -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source\n```\n\n```powershell\n# Check HKTMemory env vars\n[System.Environment]::GetEnvironmentVariable(\"HKT_MEMORY_API_KEY\"), `\n[System.Environment]::GetEnvironmentVariable(\"HKT_MEMORY_BASE_URL\"), `\n[System.Environment]::GetEnvironmentVariable(\"HKT_MEMORY_MODEL\")\n```\n\nFor each missing tool, report it as yellow and provide the Windows install command:\n\n| Tool | Windows install command |\n|------|------------------------|\n| uv | `irm https:\u002F\u002Fastral.sh\u002Fuv\u002Finstall.ps1 \\| iex` |\n| gh | `winget install GitHub.cli` |\n| jq | `winget install jqlang.jq` |\n| ffmpeg | `winget install Gyan.FFmpeg` |\n| agent-browser | `npm install -g agent-browser` |\n\n**Important -- uv PATH on Windows:** After installing uv on Windows, add `$env:USERPROFILE\\.local\\bin` to your system PATH if it is not already there. Without this, `uv` is installed but not discoverable by the Trae sandbox shell. To verify: open a new PowerShell window and run `uv --version`.\n\n**HKTMemory env vars on Windows:** Set these in Windows System Properties -> Environment Variables (not just in the terminal session):\n- `HKT_MEMORY_API_KEY` -- your API key\n- `HKT_MEMORY_BASE_URL` -- `https:\u002F\u002Fopen.bigmodel.cn\u002Fapi\u002Fpaas\u002Fv4\u002F`\n- `HKT_MEMORY_MODEL` -- `embedding-3`\n\nAfter installing uv and configuring env vars, restart Trae to ensure the sandbox picks up the updated PATH.\n\nDisplay a summary of the inline diagnostic results (which tools were found, which are missing, env var status). Then proceed to **Phase 1 \u002F Step 3: Evaluate Results** below for the completion check and next steps.\n\n---\n\n## Phase 1: Diagnose (standard path -- macOS\u002FLinux)\n\n### Step 1: Determine Plugin Version\n\nDetect the installed compound-engineering plugin version by reading the plugin metadata or manifest. This is platform-specific -- use whatever mechanism is available (e.g., reading `plugin.json` from the plugin root or cache directory). If the version cannot be determined, skip this step.\n\nIf a version is found, pass it to the check script via `--version`. Otherwise omit the flag.\n\n### Step 2: Run the Health Check Script\n\nBefore running the script, display: \"Compound Engineering -- checking your environment...\"\n\nRun the bundled check script. Do not perform manual dependency checks -- the script handles all CLI tools, agent skills, repo-local CE file checks, and `.gitignore` guidance in one pass.\n\n```bash\nbash scripts\u002Fcheck-health --version VERSION\n```\n\nOr without version if Step 1 could not determine it:\n\n```bash\nbash scripts\u002Fcheck-health\n```\n\nScript reference: `scripts\u002Fcheck-health`\n\nDisplay the script's output to the user.\n\n### Step 3: Evaluate Results\n\n**Platform detection (pre-resolved):**\n- **macOS\u002FLinux:** !`[ -n \"${CLAUDE_PLUGIN_ROOT}\" ] && echo \"CLAUDE_CODE\" || echo \"OTHER\"`\n- **Windows:** !`if ($env:CLAUDE_PLUGIN_ROOT) { \"CLAUDE_CODE\" } else { \"OTHER\" }`\n\nIf the platform detection resolved to `CLAUDE_CODE`, this is a Claude Code session and `\u002Fgh:update` is available. Otherwise, omit any `\u002Fgh:update` references from output.\n\n**For Windows users:** The inline diagnostic output from Phase 0 shows tool availability directly. A tool is missing if `Get-Command` returned nothing (blank line). For macOS\u002FLinux users, check the health-check script output as described below.\n\nAfter the diagnostic report, check whether:\n\n- any CLI tools are missing:\n  - **macOS\u002FLinux:** reported as yellow in the script output\n  - **Windows:** `Get-Command` returned no result for uv, gh, or jq\n- any agent skills are missing:\n  - **macOS\u002FLinux:** reported as yellow in the Skills section\n  - **Windows:** skip agent-skill checks for now\n- `compound-engineering.local.md` is present and needs cleanup\n- `.compound-engineering\u002Fconfig.local.yaml` does not exist or is not safely gitignored\n- `.compound-engineering\u002Fconfig.local.example.yaml` is missing or outdated\n\nIf everything is installed, no repo-local cleanup is needed, and `.compound-engineering\u002Fconfig.local.yaml` already exists and is gitignored, display the tool and skill list and completion message. Parse the tool and skill names from the script output and list each with a green circle. Omit the Skills line if the Skills section is absent from the script output:\n\n```\n ✅ Compound Engineering setup complete\n\n    Tools:  🟢 agent-browser  🟢 gh  🟢 jq  🟢 vhs  🟢 silicon  🟢 ffmpeg  🟢 ast-grep\n    Skills: 🟢 ast-grep\n    Config: ✅\n\n    Run \u002Fgh:setup anytime to re-check.\n```\n\nIf this is a Claude Code session, append to the message: \"Run \u002Fgh:update to grab the latest plugin version.\"\n\nStop here.\n\nOtherwise proceed to Phase 2 to resolve any issues. Handle repo-local cleanup (Step 4) first, then config bootstrapping (Step 5), then missing dependencies (Step 6).\n\n## Phase 2: Fix\n\n### Step 4: Resolve Repo-Local CE Issues\n\nResolve the repository root (`git rev-parse --show-toplevel`). If `compound-engineering.local.md` exists at the repo root, explain that it is obsolete because review-agent selection is automatic and CE now uses `.compound-engineering\u002Fconfig.local.yaml` for any surviving machine-local state. Ask whether to delete it now. Use the repo-root path when deleting.\n\n### Step 5: Bootstrap Project Config\n\nResolve the repository root (`git rev-parse --show-toplevel`). All paths below are relative to the repo root, not the current working directory.\n\n**Example file (always refresh):** Copy `references\u002Fconfig-template.yaml` to `\u003Crepo-root>\u002F.compound-engineering\u002Fconfig.local.example.yaml`, creating the directory if needed. This file is committed to the repo and always overwritten with the latest template so teammates can see available settings.\n\n**Local config (create once):** If `.compound-engineering\u002Fconfig.local.yaml` does not exist, ask whether to create it:\n\n```\nSet up a local config file for this project?\nThis saves your Compound Engineering preferences (like which tools to use and how workflows behave).\nEverything starts commented out -- you only enable what you need.\n\n1. Yes, create it (Recommended)\n2. No thanks\n```\n\nIf the user approves, copy `references\u002Fconfig-template.yaml` to `\u003Crepo-root>\u002F.compound-engineering\u002Fconfig.local.yaml`. If `.compound-engineering\u002Fconfig.local.yaml` is not already covered by `.gitignore`, offer to add the entry:\n\n```text\n.compound-engineering\u002F*.local.yaml\n```\n\nIf the local config already exists, check whether it is safely gitignored. If not, offer to add the `.gitignore` entry as above.\n\n### Step 6: Offer Installation\n\nPresent the missing tools and skills using a multiSelect question with all items pre-selected. Use the install commands and URLs from the script's diagnostic output. Group items under `Tools:` and `Skills:` so the user can see which runtime each item targets; omit a group whose items are all installed.\n\n```\nThe following items are missing. Select which to install:\n(All items are pre-selected)\n\nTools:\n  [x] agent-browser - Browser automation for testing and screenshots\n  [x] gh - GitHub CLI for issues and PRs\n  [x] jq - JSON processor\n  [x] vhs (charmbracelet\u002Fvhs) - Create GIFs from CLI output\n  [x] silicon (Aloxaf\u002Fsilicon) - Generate code screenshots\n  [x] ffmpeg - Video processing for feature demos\n  [x] ast-grep - Structural code search using AST patterns\n\nSkills:\n  [x] ast-grep - Agent skill for structural code search with ast-grep\n```\n\nOnly show items that are actually missing. Omit installed ones.\n\n### Step 7: Install Selected Dependencies\n\nFor each selected dependency, in order:\n\n1. **Show the install command** (from the diagnostic output) and ask for approval:\n\n   ```\n   Install agent-browser?\n   Command: CI=true npm install -g agent-browser --no-audit --no-fund --loglevel=error && agent-browser install && npx skills add https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fagent-browser --skill agent-browser -g -y\n\n   1. Run this command\n   2. Skip - I'll install it manually\n   ```\n\n2. **If approved:** Run the install command using a shell execution tool. After the command completes, verify installation:\n   - For a CLI tool, run the dependency's check command (e.g., `command -v agent-browser`).\n   - For an agent skill, prefer `npx --yes skills list --global --json | jq -r '.[].name' | grep -qx \u003Cskill-name>` when `npx` is available; otherwise fall back to checking that `~\u002F.claude\u002Fskills\u002F\u003Cskill-name>` exists (file, directory, or symlink).\n\n3. **If verification succeeds:** Report success.\n\n4. **If verification fails or install errors:** Display the project URL as fallback and continue to the next dependency.\n\n### Step 8: Summary\n\nDisplay a brief summary:\n\n```\n ✅ Compound Engineering setup complete\n\n    Installed: agent-browser, gh, jq\n    Skipped:   rtk\n\n    Run \u002Fgh:setup anytime to re-check.\n```\n\nIf this is a Claude Code session (per platform detection in Step 3), append: \"Run \u002Fgh:update to grab the latest plugin version.\"\n\n\nAgent skill detection checks CLI output first, then falls back to on-disk roots `~\u002F.claude\u002Fskills\u002F\u003Cskill-name>`, `~\u002F.agents\u002Fskills\u002F\u003Cskill-name>`, and `~\u002F.codex\u002Fskills\u002F\u003Cskill-name>` so Codex global skills are detected alongside Claude\u002FAgents installs.\n",{"name":5,"description":7,"disable-model-invocation":43},true,"main","94fc651a7c5ff227f3e8f4b9678dc4566f535677","plugins\u002Fgaleharness-cli\u002Fskills\u002Fgh-setup",2,"https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI","https:\u002F\u002Fgithub.com\u002FJGXC100","2026-05-19 17:04:59",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":43},[53,56,59],{"tool":54,"command":55},"npx","npx skills add JGXC100\u002FGaleHarnessCodingCLI --skill \"gh:setup\"",{"tool":57,"command":58},"bunx","bunx skills add JGXC100\u002FGaleHarnessCodingCLI --skill \"gh:setup\"",{"tool":60,"command":61},"pnpm","pnpm dlx skills add JGXC100\u002FGaleHarnessCodingCLI --skill \"gh:setup\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Fplugins\u002Fgaleharness-cli\u002Fskills\u002Fgh-setup\u002FSKILL.md",[64,70],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fconfig-template.yaml","REFERENCE","参考文档",1165,"https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Fplugins\u002Fgaleharness-cli\u002Fskills\u002Fgh-setup\u002Freferences\u002Fconfig-template.yaml",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"scripts\u002Fcheck-health","SCRIPT","脚本",7945,"https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Fplugins\u002Fgaleharness-cli\u002Fskills\u002Fgh-setup\u002Fscripts\u002Fcheck-health",[77,93,106,118,126,134],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":88,"publishedAt":38},"01M71EJT9M91X2T91N4ZPCWHN3","skill-one","Sample skill","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsample-plugin\u002Fskills\u002Fskill-one\u002FSKILL.md",[83],{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[89,90,91,92],"skill one","one","sample skill","sample",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":100,"publishedAt":38},"01M71EJRH7M0DGZ1QXJ9PSFMB5","disabled-skill","A skill with model invocation disabled","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsample-plugin\u002Fskills\u002Fdisabled-skill\u002FSKILL.md",[99],{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},[101,102,103,104,26,105],"disabled skill","a skill","with model","with","model",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":113,"publishedAt":38},"01M71EJQMRH6JC9H9V5BQWM7RJ","claude-only-skill","A skill restricted to Claude Code only","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsample-plugin\u002Fskills\u002Fclaude-only-skill\u002FSKILL.md",[112],{"categoryNo":84,"categoryName":85,"taxonomyType":86,"taxonomyTypeDesc":87},[114,115,116,117,102],"only","claude only skill","claude only","code",{"skillNo":119,"name":120,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":38},"01M71EJPXZ0644M41M587FVKYQ","default-skill","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fcustom-paths\u002Fskills\u002Fdefault-skill\u002FSKILL.md",[],[124,125],"default skill","default",{"skillNo":127,"name":128,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":38},"01M71EJP6RPF6PDAJ2SY4VMBDT","custom-skill","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fcustom-paths\u002Fcustom-skills\u002Fcustom-skill\u002FSKILL.md",[],[132,133],"custom skill","custom",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":143,"publishedAt":38},"01M71EJK74AZ929S8GF55G5CDV","test-xcode","Build and test iOS apps on simulator using XcodeBuildMCP. Use after making iOS code changes, before creating a PR, or when verifying app behavior and checking for crashes on simulator.","https:\u002F\u002Fgithub.com\u002FJGXC100\u002FGaleHarnessCodingCLI\u002Fblob\u002Fmain\u002Fplugins\u002Fgaleharness-cli\u002Fskills\u002Ftest-xcode\u002FSKILL.md",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":86,"taxonomyTypeDesc":87},"01JBSEEDCAT000000000000008","测试与质量",[144,145,146,147,148,149,150,30,125,26,151,25,152,36,117,153,154,155,156,157],"test","xcode","test xcode","apps","app","build and test","pr","xcodebuildmcp","scheme","changes","build","ios","name","behavior"]