Skip to content
Development
Skill

/csswitch-external-skill-tools

CSSwitch 外部 Skill 安装与卸载的强制路由。MUST use in CSSwitch-managed Claude Science whenever the user asks to install, import, add, uninstall, remove, or delete an external Skill.

From plugin
csswitch
4701 skill
Install
$ npx -y skills add SuperJJ007/CSSwitch --skill csswitch-external-skill-tools --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/csswitch-external-skill-tools

Context preview

The summary Claude sees to decide when to auto-load this skill.

CSSwitch 外部 Skill 安装与卸载的强制路由。MUST use in CSSwitch-managed Claude Science whenever the user asks to install, import, add, uninstall, remove, or delete an external Skill.

SKILL.md

csswitch-external-skill-tools.SKILL.md
name: csswitch-external-skill-tools
description: "CSSwitch 外部 Skill 安装与卸载的强制路由。MUST use in CSSwitch-managed Claude Science whenever the user asks to install, import, add, uninstall, remove, or delete an external Skill."

CSSwitch external Skill tools

This Skill only routes external Skill operations. It is not an authoring or publishing workflow. For every request in scope, use the CSSwitch external Skill connector and its matching tool. Do not load `customize`.

Install or import

1. Accept a public GitHub repository root, ref root, Plugin/Skill collection, or exact Skill directory URL. Preserve it exactly. If the user supplied only a name, ask for the URL; do not search for or guess a source. 2. Load the generated connector Skill `mcp-csswitch-skill-installer`. 3. Follow that connector's API and call `install_external_skill` with the exact `source_url`. The equivalent REPL call is:

host.mcp(
    "csswitch-skill-installer",
    "install_external_skill",
    source_url=source_url,
)

Never call `host.skills.edit` or `host.skills.publish` as a fallback. Never use Add Skill ZIP or `marketplace.importSkills` as a fallback. Never download the Skill yourself, use shell/Python filesystem APIs, use a GitHub credential, or pass staged files to CSSwitch. The CSSwitch host owns URL resolution, one-archive download, validation, atomic commit, and OPERON attachment. Repository and collection URLs may install a Nature-like bundle; this installs only its Skill collection and support resources, not hooks, MCP, agents, or a complete Claude Plugin runtime.

Exact-plan confirmation for one fixed-commit Skill

When the user asks to review and explicitly confirm a single-Skill install, and the supplied `source_url` already contains a 40-hex GitHub commit SHA, first request a plan without downloading or installing anything into Science:

planned = host.mcp(
    "csswitch-skill-installer",
    "install_external_skill",
    source_url=source_url,
    confirmation={"schema_version": 1, "action": "plan"},
)

If it returns `CONFIRMATION_REQUIRED`, show the user its exact source, complete `effects`, `plan_digest`, expiry, and any degradation. Host access approval is not the user's confirmation of those effects. Only after an explicit approval, call once with the returned values unchanged:

host.mcp(
    "csswitch-skill-installer",
    "install_external_skill",
    source_url=source_url,
    confirmation={
        "schema_version": 1,
        "action": "apply",
        "operation_id": planned["operation_id"],
        "plan_digest": planned["plan_digest"],
        "capability": planned["capability"],
    },
)

Do not infer, alter, log, or reuse the capability. It expires quickly and is single-use. Any source, plan, runtime, active-org, expiry, capability, or operation mismatch requires a new plan and a new user confirmation. This optional **install** route currently accepts only one exact-commit GitHub Skill; bundles, Plugins, MCP payloads, and local packages remain outside the install plan. The separately documented opt-in removal route accepts an already installed, CSSwitch-owned non-bundle Skill, including a `local_zip` import.

For either explicit-plan operation, if `recovery_required=true`, do not call a `null` effect field false. `post_effect_observation` is only an immediate host readback (`observed_true`, `observed_false`, or `unknown`), not a durable receipt or retry authority. Call operation-id-only `reconcile` and report its durable projection.

Uninstall, remove, or delete

1. Extract the exact Skill name from the user's current request. There is no default or hard-coded Skill name. 2. If no exact name is present, or more than one installed name could apply, ask the user. Never infer a filesystem path. 3. Load the generated connector Skill `mcp-csswitch-skill-installer`. 4. Follow that connector's API and call `uninstall_external_skill` with the exact `skill_name`. The equivalent REPL call is:

host.mcp(
    "csswitch-skill-installer",
    "uninstall_external_skill",
    skill_name=skill_name,
)

Exact-plan confirmation for one installed Skill

When the user asks to review and explicitly confirm removal of one installed CSSwitch-owned Skill, first request a plan. This opt-in route is for one Skill, not a bundle, and never infers a path or a second name:

planned = host.mcp(
    "csswitch-skill-installer",
    "uninstall_external_skill",
    skill_name=skill_name,
    confirmation={"schema_version": 1, "action": "plan"},
)

If it returns `REMOVAL_CONFIRMATION_REQUIRED`, show the user the exact Skill and the complete ordered `effects`. The expected one-Skill effects are native OPERON detach followed by CSSwitch package quarantine. Host access approval is not confirmation of either effect. Only after the user explicitly approves that plan, call once with the returned values unchanged:

host.mcp(
    "csswitch-skill-installer",
    "uninstall_external_skill",
    confirmation={
        "schema_version": 1,
        "action": "apply",
        "operation_id": planned["operation_id"],
        "plan_digest": planned["plan_digest"],
        "capability": planned["capability"],
    },
)

Do not infer, alter, log, or reuse the capability. It is short-lived and single-use; removal apply is operation-authoritative and carries no `skill_name` or bundle field. Any Skill, plan, runtime, active-org, expiry, capability, or operation mismatch requires a new plan and a new user confirmation. To inspect an interrupted or completed opt-in operation, call the same tool with only its `operation_id` and `confirmation={"schema_version": 1, "action": "reconcile"}`. Reconcile is readback-only: it must not repeat detach, quarantine, or any other mutation.

If a process stopped after a durable verified first effect but before the second effect began, use `{"schema_version":1,"action":"continue", "operation_id"

Read more
Ships withcsswitch

帮你的 Claude Science 一键接入你自己的 API:DeepSeek / 通义千问 / 智谱 GLM / Kimi / MiniMax / 小米 MiMo / 硅基流动 / OpenRouter / 任意 OpenAI·Anthropic 兼容端点

Get the whole plugin
Stats
470
Stars
46
Forks
Maintained
Maintenance
Rust
Language
MIT
License
1mo ago
Last commit
2mo ago
Created

Repo: SuperJJ007/CSSwitch