Use carried agents and npm CLI installer#4
Conversation
1bd6432 to
df98bf2
Compare
|
Updated after review: install-volcano is now adaptive. If it finds a plugin-carried skills directory, it keeps skills in the plugin and copies AGENTS.md to ~/.volcano/AGENTS.md as fallback. If no plugin skills directory is found (manual/non-plugin path), it installs AGENTS.md and downloads skills from VOLCANO_WEB_URL into ~/.volcano/skills for runtime discovery. Re-ran validation: skill drift, duplicates, install entrypoints, Codex, Claude Desktop. |
There was a problem hiding this comment.
Pull request overview
This PR shifts the Volcano plugins toward treating the plugin-carried skills/AGENTS.md as the primary instruction source and changes the CLI installer to prefer an npm install of @volcano.dev/cli@latest, falling back to the GitHub release download. It also removes the now-inert materialized skills/CLAUDE.md copies and syncs updated volcano-skills content/submodule pointer. The installer additionally maintains ~/.volcano/AGENTS.md as a durable fallback and manages a Volcano block in an existing ~/.claude/CLAUDE.md.
Changes:
- Installer now runs
npm install -g @volcano.dev/cli@latestby default, with the GitHub release download demoted to a fallback (newinstall_cli_from_npm/npm_global_bin_dirhelpers). - New
install_agents_fallback,find_plugin_skills_dir,valid_agents_md,upsert_block, andwire_existing_claude_confighelpers copy the carriedAGENTS.mdto~/.volcano/AGENTS.mdand wire an existing globalCLAUDE.md. - Removed
skills/CLAUDE.mdacross plugins; reworkedAGENTS.mdprerequisites/bootstrap guidance and updatedcheck-install-entrypoints.mjsassertions plus VS Code/Claude Desktop surfaces.
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/check-install-entrypoints.mjs | Updates installer assertions to require npm install and keep release download as fallback |
| plugins/vscode/src/extension.ts | Embeds the updated install script (npm-first + AGENTS.md fallback + Claude wiring) |
| plugins/vscode/README.md | Documents the new npm-first install behavior |
| plugins/{cursor,claude-code,claude-desktop,codex}/skills/install-volcano/SKILL.md | Adds npm install + AGENTS.md fallback + Claude wiring to installer skills |
| plugins/{cursor,claude-code}/commands/install-volcano.md | Mirrors the installer skill content in the command surfaces |
| plugins/{cursor,claude-code,claude-desktop,codex}/skills/AGENTS.md | Rewrites prerequisites and adds a guarded, env-driven bootstrap fallback |
| plugins/{cursor,claude-code,claude-desktop,codex}/skills/CLAUDE.md | Removes the inert Claude-Code wrapper copies |
| plugins/claude-desktop/server/index.js | Embeds the updated install script and refreshes setup instructions text |
Comments suppressed due to low confidence (1)
plugins/cursor/skills/install-volcano/SKILL.md:330
- These two calls run under
set -euand are placed after the block that already logs "Volcano CLI ready" (andexit 1s only when the CLI is absent). Unlike the other optional steps in this script (e.g.install_cli_from_npm || install_cli_from_release,volcano --version || true,bin_dir=... || true), these two are unguarded.install_agents_fallbackreturns non-zero when no plugin skills directory is found and theAGENTS.mddownload fails/returns HTML, soset -ewill abort the whole script with a non-zero status even though the CLI itself installed successfully, andwire_existing_claude_configis then skipped. Since the plugin-carried skills are described as the primary source and~/.volcano/AGENTS.mdonly as a fallback, a fallback failure probably should not fail the entire install. Consider guarding these (e.g.install_agents_fallback || true) or handling their failure explicitly. This is duplicated across all plugininstall-volcanoscripts and the two JS-embedded copies.
ext=""
[ "$os" = "windows" ] && ext=".exe"
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| valid_agents_md() { | ||
| file="$1" | ||
| [ -s "$file" ] || return 1 | ||
| if head -c 200 "$file" | grep -qi '<!doctype html\|<html'; then |
| curl -fsSL "$VOLCANO_WEB_URL/bootstrap.sh" -o /tmp/volcano-bootstrap.sh | ||
| # Guard against SPA/CDN fallbacks that return HTTP 200 with an HTML shell | ||
| # instead of a real 404 for missing paths (curl -f only catches HTTP errors). | ||
| if head -c 200 /tmp/volcano-bootstrap.sh | grep -qi '<!doctype html\|<html'; then |
|
Verified against the live npm package: resolves to 0.0.5, exposes , requires Node >=18, and a temp-prefix install produced . Installer assumptions still hold; no further plugin changes needed. |
|
Correction/verification: verified against the live npm package. |
|
Follow-up alignment: install-volcano now persists/removes |
|
Scope cleanup in |
|
Addressed all outstanding Copilot findings from the initial review, verified against current HEAD:
All checks re-run and passing: skill drift, no-content-duplicates, install-entrypoints, Codex, Claude Desktop. |
Summary
volcano-skillscontent and submodule pointer from Use plugin-carried agents and npm CLI install volcano-skills#1skills/CLAUDE.mdcopiesskills/AGENTS.mdprimary, while installer also maintains~/.volcano/AGENTS.mdas fallback/reference@volcano.dev/clifrom npm by default, with GitHub release download fallback~/.claude/CLAUDE.mdmanaged block handling to replace existing Volcano blocks and include@~/.volcano/AGENTS.mdValidation
node scripts/check-skill-drift.mjsnode scripts/check-no-content-duplicates.mjsnode scripts/check-install-entrypoints.mjsnode scripts/check-codex.mjsnode scripts/check-claude-desktop.mjs