Best for
- Use when the user wants to create, inspect, update, delete, reassign capabilities for, or switch the current conversation to a Specialist agent.
aipoch/open-science/resources/skills/customize/SKILL.md
Use when the user wants to create, inspect, update, delete, reassign capabilities for, or switch the current conversation to a Specialist agent. Covers the conversational `/customize` flow against the JavaScript `host.agents` SDK — clarifying scope, drafting a complete target state, reviewing it, confirming, mutating with read-back, and reporting — plus the confirmation boundaries for ordinary versus privileged operations.
Decision brief
This Skill is conversational workflow guidance for managing Specialist agents. It is not a security boundary: it helps the user draft, review, confirm, and report Specialist changes through the JavaScript control-plane SDK. Whether a destructive or identity-affecting operation a…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/aipoch/open-science --skill "resources/skills/customize"Inspect the Agent Skill "customize" from https://github.com/aipoch/open-science/blob/e6d42f837606061f8a0fc13dc64bf9189c7c79e5/resources/skills/customize/SKILL.md at commit e6d42f837606061f8a0fc13dc64bf9189c7c79e5. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
Follow this order for every mutation. Do not skip the live read, and do not snapshot catalog contents into a profile or session (resolution is always live):
For create and non-name update, show the complete target state and wait for the user's explicit confirmation before executing. The review must show:
The Skill runs in the JavaScript control-plane REPL only. It uses JavaScript exclusively. Do not use Python or R here, and do not look for host.agents in a data kernel — it is absent there. All mutation happens through host.agents. methods.
The SDK is name-first and lives in the trusted calling session. Read methods and returned records use camelCase; write-side fields use snakecase. Methods:
When the user has not specified Full versus Selected, you must ask. Do not silently use the SDK's omitted-fields Full default — never assume Full access. Full is selected only after an explicit request such as "full access" or "same capabilities as Main."
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 83/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 1,536 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
This Skill is conversational workflow guidance for managing Specialist agents. It is not a security boundary: it helps the user draft, review, confirm, and report Specialist changes through the JavaScript control-plane SDK. Whether a destructive or identity-affecting operation actually takes effect is decided by the application, not by this Skill.
Important: this is a framework Skill, not hard isolation. Do not claim that this Skill provides hard security isolation; it is workflow guidance only.
The Skill runs in the JavaScript control-plane REPL only. It uses JavaScript exclusively. Do not
use Python or R here, and do not look for host.agents in a data kernel — it is absent there. All
mutation happens through host.agents.* methods.
The Skill never uses the following, and you must not invent them:
host.skills.* namespace (use host.agents reads instead).host.agents through host.mcp().host.agents SDK surfaceThe SDK is name-first and lives in the trusted calling session. Read methods and returned records use camelCase; write-side fields use snake_case. Methods:
host.agents.list() — custom Specialists only.host.agents.get(name) — one Specialist by public name (returns stable id and revision, but you
do not show those to the user).host.agents.create(input) — object form (see below).host.agents.update(name, patch) — may include a new name; renames are ordinary chat-reviewed
updates, not privileged.host.agents.switch(nameOrNull) — switches the current conversation only; null returns to Main
Agent. Does not accept a caller-supplied session id.host.agents.delete(name, { revision }).host.agents.attach_skill(name, skillRef, { revision }) / host.agents.detach_skill(...).host.agents.attach_connector(name, connectorRef, { revision }) / host.agents.detach_connector(...).host.agents.list_skills(nameOrId?) — complete Skill catalog, including Main-disabled Skills.host.agents.list_connectors(nameOrId?) — public Connector information; never credentials, headers,
environment values, Connector arguments, or tokens.create takes an object:
host.agents.create({
name,
description,
system_prompt,
icon_key,
color_key,
enabled,
unrestricted,
skill_names,
connector_names
})
Skill/Connector references resolve an exact stable catalog id first, otherwise a unique public name. An
ambiguous name is rejected — tell the user to use the stable id from list_skills/list_connectors.
Errors are sanitized and prefixed host.agents.<method>:; they never contain system instructions,
credentials, headers, environment values, Connector arguments, or the RPC token.
Follow this order for every mutation. Do not skip the live read, and do not snapshot catalog contents into a profile or session (resolution is always live):
get/list plus list_skills/list_connectors to read the current state and
the catalogs before proposing anything.get/list (or binding read-back for switch) before
reporting completion.When the user has not specified Full versus Selected, you must ask. Do not silently use the SDK's omitted-fields Full default — never assume Full access. Full is selected only after an explicit request such as "full access" or "same capabilities as Main."
Capability semantics:
create with neither skill_names nor connector_names → Full access. But only use this after the
user explicitly chose Full.create → Selected; an omitted other array becomes empty.update({ unrestricted: true }) → Full, preserving the stored Selected configuration.skill_names or connector_names to update exactly replaces the supplied collection and
switches to Selected; an omitted collection is preserved.attach_*/detach_* mutate the current mode without changing it (Selected: add/remove an inclusion;
Full: remove/add an exclusion).For create and non-name update, show the complete target state and wait for the user's explicit confirmation before executing. The review must show:
For an update, also identify the changed fields.
For multi-field capability edits, prefer one atomic update over a loop of attach_*/detach_*
calls that could partially succeed. Use attach_*/detach_* only for a single incremental collection
move.
/customize
entry and the composer prefill are not confirmation. A rename is an ordinary update field: the
whole patch is applied atomically by the service, and a stale revision fails without merge or retry.When you describe one of these privileged actions, explain:
Carry the reviewed revision into update/delete/attach_*/detach_*. A stale revision fails
without merge or retry. When it fails, re-read, rebuild the complete draft, and ask for
confirmation again. A changed draft also invalidates the user's earlier confirmation — re-review after
the user edits the draft. Do not automatically retry declined or stale privileged operations.
A declined operation is a normal result, for example { status: "declined", operation: "switch" }.
Report it as a user decision and stop. Do not retry it.
get/list and report the actual state. Never assume
success from the call alone.switch, report that approval lets the current control tool finish, then automatically
continues the same task under the approved target. A decline leaves the current Agent unchanged.
The binding survives app restart.delete, report that existing conversations bound to the deleted Specialist become
unavailable — they are not switched to Main Agent; the user must explicitly choose another
Specialist or Main Agent.Returned records include stable id and revision, but do not show them to the user unless needed to
resolve ambiguity (for example, an ambiguous catalog name where you must ask for the stable id) or to
explain a revision conflict. Ordinary reporting uses names and the reviewed state only.
Respond naturally in the conversation's language. This document and the fixed user-facing review/card copy remain English.
Alternatives
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing
aaron-he-zhu/aaron-marketing-skills
Use when the user asks to "set up my founder social-selling routine", "build a daily engagement block for target accounts", or "turn funding / hiring signals into selling plays"; produces the founder/seller daily operating block — a time-boxed engagement-block spec (substantive value-add comments on target-account posts, never a pitch), warm-touch-before-ask cadence rules, trigger-response plays consuming the social-pulse-monitor B2B trigger watchlist (funding / hiring / launch signals), and a q