Files
cli/skills/deploy/SKILL.md

3.9 KiB
Raw Permalink Blame History

name, description
name description
deploy Batch install, update, or uninstall the whole jsc skill set on every installed AI CLI. Detect CLIs via detect-clis.sh, report every plugin's local-versus-published version first and recommend update when any one of them is behind, then ask the user for the mode via decision tree, then run each CLI's native plugin commands with the unified jsc marketplace (token jsc-{domain}@jsc). Domain list comes from the plugins/meta marketplace.json, never hardcoded. Use for rollout or removal of the jsc plugins; not for a single skill.

deploy — batch install, update, or uninstall the skill set

Steps

  1. Run tools/detect-clis.sh to find the installed CLIs and their executable paths.
  2. Check versions before asking anything, so the recommendation is based on fact rather than a guess:
    1. Run jsc-hooks/hooks/version-guard.sh report. It prints one line per installed jsc plugin — {domain}<TAB>{本機}<TAB>{遠端}<TAB>{落後|最新|超前|查詢失敗} — and a final behind<TAB>{落後個數}.
    2. Show that table to the user as-is. It is the evidence behind the recommendation, so never summarise it away.
    3. behind ≥ 1 → mark update as the recommended option, and name every domain that is behind together with its local and remote version. One domain behind is enough; do not wait for a majority.
    4. behind = 0 → recommend nothing; present the three options neutrally.
    5. 查詢失敗 on any domain → say so explicitly. An unverified domain is not the same as an up-to-date one, and must not be counted as either.
  3. Ask the user for the mode per the jsc-ask:ask rules: install / update / uninstall. Every option states its impact scope: which CLIs it touches and which configs it writes.
  4. Get the domain list (never hardcode it; this skill follows automatically when domains are added or removed): read plugins[].name from the unified marketplace via jsc-gitea/tools/gitea.sh api GET /repos/plugins/meta/raw/.claude-plugin/marketplace.json. The marketplace is unified as jsc ({MKT} = https://gitea.jsc.idv.tw/plugins/meta.git); the install token is jsc-{domain}@jsc.
  5. Run the matching commands for each CLI (add the marketplace once per CLI, then install per domain). This step MUST run as a sub agent (one sub agent per CLI):
CLI install update uninstall
claude claude plugin marketplace add {MKT}, then per domain claude plugin install jsc-{domain}@jsc claude plugin marketplace update jsc, then per domain claude plugin update jsc-{domain}@jsc per domain claude plugin uninstall jsc-{domain}@jsc, finally claude plugin marketplace remove jsc
codex codex plugin marketplace add {MKT}, then per domain codex plugin add jsc-{domain}@jsc codex plugin marketplace upgrade jsc per domain codex plugin remove jsc-{domain}@jsc, finally codex plugin marketplace remove jsc
copilot copilot plugin marketplace add {MKT}, then per domain copilot plugin install jsc-{domain}@jsc copilot plugin marketplace update jsc, then per domain copilot plugin update jsc-{domain}@jsc per domain copilot plugin uninstall jsc-{domain}@jsc, finally copilot plugin marketplace remove jsc
antigravity per domain git clone https://gitea.jsc.idv.tw/plugins/{domain}.git ~/plugins/{domain}, then agy plugin install ~/plugins/{domain} (agy cannot install from a gitea URL) git -C ~/plugins/{domain} pull, then agy plugin uninstall jsc-{domain} and install again agy plugin uninstall jsc-{domain}
kiro same plugin commands as copilot (executable kiro-cli); if unsupported, copy each repo's skills/ into the kiro skills directory pull again, then copy again delete the matching skills directories
  1. After install or update, call jsc-hooks:hooks-install to rewire the hooks.
  2. Report the result and any failure reason for every CLI × mode.