Agent skill

Customize Specialists and Skills

by aipoch in aipoch/open-science

Handles /Customize requests by sending Skill work to the internal skill-creator and managing Specialist agents through the JavaScript host.agents SDK.

Apache-2.0Auto-check passedAgent Workflows

Install Customize Specialists and Skills

skills CLI
$ npx skills add aipoch/open-science --skill customize -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aipoch/open-science customize --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aipoch/open-science.git skills-src && mkdir -p .claude/skills && cp -r skills-src/resources/skills/customize .claude/skills/customize && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
customize
GitHub stars
5.4k
Token cost
~2.7k tokens
SKILL.md length
1,401 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
Apache-2.0

At a glance

Handles /Customize requests by sending Skill work to the internal skill-creator and managing Specialist agents through the JavaScript host.agents SDK.

  • Works in 7 steps: Understand scope. What does the user… → Live read. Use list for discovery and… → Complete draft. Build the full target… → …
  • Creating a new Specialist agent through the /Customize entry
  • SKILL.md covers Route first, Specialist runtime, The host.agents SDK surface and Specialist identity and…, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

This is a router for conversational customization. For creating, revising, publishing, inspecting or deleting a Skill, the agent reads the internal `skill-creator` skill with `host.skills.read` and follows it completely instead of repeating its authoring workflow. For a combined request it creates and publishes the Skill first, then attaches it to the chosen Specialist only if you asked for that link.

Specialist work runs only in the JavaScript control-plane REPL, never in Python or R data kernels, where `host.agents` does not exist. The SDK is name-first and camelCase, with methods such as `host.agents.list()`, `get(name)` and `create(input)`. The skill lists what it must not do, including inventing a management MCP tool, creating per-Specialist environments, duplicating operations and retrying declined privileged operations automatically. It describes itself as workflow guidance rather than a security boundary, since the application decides whether destructive or identity-affecting changes take effect. The excerpt stops partway through the SDK method list.

When your agent uses it

  • Creating a new Specialist agent through the /Customize entry
  • Revising, publishing or deleting an existing Skill by conversation
  • Creating a Skill and attaching it to a chosen Specialist

Example prompts

  • “/Customize create a Specialist that reviews bioinformatics pipelines.”
  • “Revise my literature-summary Skill so it also lists open questions, then publish it.”
  • “Make a Skill for cleaning mass-spec data and attach it to my proteomics Specialist.”

Requirements

  • An application that provides the `host.agents` and `host.skills` JavaScript APIs
  • The internal `skill-creator` skill

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Understand scope. What does the user want to create/change/delete/switch?
  2. Live read. Use list for discovery and selection. For an existing Specialist, call get(name)
  3. Complete draft. Build the full target state, not a partial edit.
  4. Review. Show the complete target state to the user.
  5. Applicable confirmation. Get the confirmation that matches the operation kind (see below).
  6. Mutate. Call the SDK with the reviewed revision.
  7. Read-back. After a mutation, re-read actual state with get(name). After delete, verify absence

What it can do on your machine

Read from SKILL.md and the folder at commit 2102e6d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Customize Specialists and Skills loads about 2.7k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 1,401 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~70
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from aipoch/open-science at commit 2102e6d, republished under its Apache-2.0 licence (© aipoch). 1,401 words, ~2,733 tokens.

Download SKILL.mdSave it as .claude/skills/customize/SKILL.md (or your agent's skills folder).
name
customize
description
Use when the user wants to create or manage a Specialist agent or create, revise, publish, or delete a Skill through the conversational `/Customize` entry. Routes Skill work to the internal skill-creator and handles Specialist work through the JavaScript host.agents SDK.
license
Apache-2.0

Customize

This Skill routes conversational customization to one of two native composers. It is not a security boundary: it helps the user draft, review, confirm, and report changes, while the application decides whether a destructive or identity-affecting operation actually takes effect.

Important: this is a framework Skill, not hard isolation. Do not claim that this Skill provides hard security isolation; it is workflow guidance only.

Route first

  • For creating, revising, publishing, inspecting, or deleting a Skill, call host.skills.read('skill-creator') and follow that internal Skill completely. Do not duplicate its authoring workflow here.
  • For creating or managing a Specialist, follow the Specialist workflow below.
  • For a combined request, create or revise the Skill first. After publish and read-back, attach it to the selected Specialist only when the user requested that relationship.

Do not create a plan record for Specialist or Skill CRUD. Ask only about choices that materially change behavior, access, or safety. Skills and Specialists are application-managed resources, not Artifacts.

Specialist runtime

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 or host.skills in a data kernel — they are absent there. Specialist mutation happens through host.agents.*; Skill lifecycle work is delegated to the internal Skill Creator above.

The Skill never uses the following, and you must not invent them:

  • Do not use a Customize Specialist/Profile (there is no such profile).
  • Do not use a management MCP tool, and do not route host.agents through host.mcp().
  • Do not create per-Specialist environments.
  • Do not perform duplicate operations (no duplicate Specialist or duplicate operation).
  • Do not automatically retry declined or stale privileged operations.

The host.agents SDK surface

The SDK is name-first and lives in the trusted calling session. JavaScript methods, inputs, and returned records all use camelCase. Methods:

  • host.agents.list() — custom Specialist summaries for discovery and selection only.
  • host.agents.get(name) — one existing Specialist's complete current state by immutable 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) — name selects the Specialist and is immutable; use patch.displayName to change its presentation label.
  • 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.attachSkill(name, skillRef, { revision }) / host.agents.detachSkill(...).
  • host.agents.attachConnector(name, connectorRef, { revision }) / host.agents.detachConnector(...).
  • host.agents.listSkills(nameOrId?) — complete Skill catalog, including Main-disabled Skills.
  • host.agents.listConnectors(nameOrId?) — public Connector information; never credentials, headers, environment values, Connector arguments, or tokens.

create takes an object:

js
host.agents.create({
  name,
  displayName,
  description,
  systemPrompt,
  iconKey,
  colorKey,
  enabled,
  unrestricted,
  skillNames,
  connectorNames
})

Skill/Connector references resolve an exact stable catalog id first, otherwise a unique immutable name. An ambiguous name is rejected — tell the user to use the stable id from listSkills/listConnectors.

Errors are sanitized and prefixed host.agents.<method>:; they never contain system instructions, credentials, headers, environment values, Connector arguments, or the RPC token.

Specialist identity and composition

Treat systemPrompt as the Specialist's identity override while the application's safety, tool, and workflow rules remain in force. Lead with You are {displayName}., replacing {displayName} with the proposed display name. State the Specialist's one focused job, what it handles, and what the Specialist does not do. Keep the identity concise; the heavy how-to lives in Skills, not in the system prompt. Reuse or create Skills for recurring procedures instead of copying those procedures into the identity.

After a newly created Specialist exists and its state has been read back, offer to switch this conversation to it with host.agents.switch(name). Do not switch unless the user accepts the offer and the application approves the privileged operation.

Workflow — every operation

Follow this order for every mutation. Do not snapshot catalog contents into a profile or session (resolution is always live):

  1. Understand scope. What does the user want to create/change/delete/switch?
  2. Live read. Use list for discovery and selection. For an existing Specialist, call get(name) to read its complete current state. Also call listSkills/listConnectors to read the catalogs before proposing anything. Resolve persisted Custom Connector UUIDs through the live Connector catalog and use each Connector's immutable name in drafts, reviews, and mutation inputs. Never show a Connector UUID in ordinary prose. Bundled Connector IDs already equal their names; do not invent suffixes.
  3. Complete draft. Build the full target state, not a partial edit.
  4. Review. Show the complete target state to the user.
  5. Applicable confirmation. Get the confirmation that matches the operation kind (see below).
  6. Mutate. Call the SDK with the reviewed revision.
  7. Read-back. After a mutation, re-read actual state with get(name). After delete, verify absence with list or an expected not-found result from get(name). For switch, use binding read-back.

Scope clarification (Full vs Selected)

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 skillNames nor connectorNames → Full access. But only use this after the user explicitly chose Full.
  • Supplying either array on create → Selected; an omitted other array becomes empty.
  • update({ unrestricted: true }) → Full, preserving the stored Selected configuration.
  • Supplying skillNames or connectorNames to update exactly replaces the supplied collection and switches to Selected; an omitted collection is preserved.
  • attachSkill/detachSkill and attachConnector/detachConnector mutate the current mode without changing it (Selected: add/remove an inclusion; Full: remove/add an exclusion).
  • Selected mode with zero Skills and zero Connectors is valid.
Show full SKILL.md (514 more words)Show less

Ordinary mutation review

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:

  • Name
  • Description
  • Full system instructions (shown in the conversation here — they are never written to logs or catalog broadcasts)
  • Icon and color
  • Enabled state
  • Full/Selected mode
  • Skills
  • Whole Connectors
  • Connector tool scope is not configured in this milestone. State this explicitly — do not show it as an empty reviewed configuration. (Per-Connector tool scope arrives in a later milestone.)

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 attachSkill/detachSkill or attachConnector/detachConnector only for a single incremental collection move.

Confirmation boundaries

  • Create and update: show the complete target state and wait for the user's explicit confirmation (for example "yes", "confirm", "ok") before executing. The initial /customize entry and the composer prefill are not confirmation. name is immutable; displayName is an ordinary update field. The whole patch is applied atomically, and a stale revision fails without merge or retry.
  • Delete, switch: describe the impending action, then execute it directly. These operations are privileged and pass through the app's approval card.

When you describe one of these privileged actions, explain:

  • Switch: current Specialist, target Specialist or Main Agent, the current conversation, and that approval lets the current control tool finish before execution automatically continues under the approved identity.
  • Delete: the Specialist name, and that conversations still bound to it become unavailable (they are NOT switched to Main Agent).

Revision and stale drafts

Carry the reviewed revision into update, delete, and the attach/detach methods. 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.

Structured declines

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.

Read-back and reporting

  • After a successful create/update, re-read with get(name) and report the actual state. Never assume success from the call alone.
  • After 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.
  • After 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. Verify deletion with list or an expected not-found get(name) result.

Do not expose UUIDs/revisions in ordinary prose

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.

Language

Respond naturally in the conversation's language. This document and the fixed user-facing review/card copy remain English.

© aipoch, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in resources/skills/customize of aipoch/open-science.

Open the folder on GitHubat commit 2102e6d

Compare with similar skills

Customize Specialists and Skills next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Customize Specialists and Skills compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Customize Specialists and Skills this skillaipoch/open-science5.4k—~2.7kAutomated safety check: PassApache-2.0
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
Skill Creatorzhayujie/CowAgent47k—~4.7kAutomated safety check: NotesMIT
Skill Quality ReviewerGalaxy-Dawn/claude-scholar5.7k1 repos~3kAutomated safety check: PassMIT
Prismer Skill CreatorPrismer-AI/PrismerCloud1.6k—~2.6kAutomated safety check: NotesMIT
Skill Factorysangrokjung/claude-forge849—~2.7kAutomated safety check: PassMIT

Similar skills

  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • Skill Creator

    zhayujie/CowAgent

    Guides creating, installing and updating agent skills in a workspace: SKILL.md frontmatter, bundled scripts and references, with scripts to scaffold, validate and package.

    47k GitHub stars~4.7k tokensUpdated yesterday
    Agent WorkflowsAuto-check: notes
  • Skill Quality Reviewer

    Galaxy-Dawn/claude-scholar

    Scores a skill across description, content organization, writing style and structure, then produces letter grades and a prioritized improvement plan.

    5.7k GitHub starsUsed in 1 repo~3k tokens
    Agent WorkflowsAuto-check passed
  • Prismer Skill Creator

    Prismer-AI/PrismerCloud

    Walks an agent through creating, importing, editing, validating, testing and publishing Prismer Skills with a fixed workflow and bundled scripts.

    1.6k GitHub stars~2.6k tokensUpdated 7 days ago
    Agent WorkflowsAuto-check: notes
  • Skill Factory

    sangrokjung/claude-forge

    Analyze session work and automatically convert reusable patterns into Claude Code skills.

    849 GitHub stars~2.7k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Skill Authoring

    authcrunch/authcrunch.github.io

    Create, port, revise, or audit repo-local skills and their metadata, engineering contracts, and task routes.

    108 GitHub starsUsed in 1 repo~2.5k tokens
    Agent WorkflowsAuto-check passed

More from aipoch/open-science

All 8 skills in this repo
  • Open-Science Skill Creator

    aipoch/open-science

    Creates, revises, evaluates and publishes skills in the Open-Science app through its native host.skills composer, with optional test prompts and benchmarks.

    5.4k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Compute Environment Setup

    aipoch/open-science

    Prepares setup instructions and a named activation file for a user-managed software environment on an Open-Science SSH or Slurm compute host.

    5.4k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Figure Style

    aipoch/open-science

    Publication-grade correctness and legibility rules for final-deliverable scientific figures, not exploratory plots.

    5.4k GitHub stars~5.1k tokensUpdated today
    Auto-check passed
  • Paper Narrative

    aipoch/open-science

    Judge and reshape the story told by an entire paper figure deck.

    5.4k GitHub stars~4.4k tokensUpdated today
    Auto-check passed
  • Open-Science Host Inspection

    aipoch/open-science

    Teaches an agent to inspect Open-Science's JavaScript control REPL, check which host.* calls are allowed, and find project files, sessions and agent frames.

    5.4k GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Figure Composer

    aipoch/open-science

    Compose one publication-grade multi-panel figure. An agent skill from aipoch/open-science.

    5.4k GitHub stars~2.9k tokensUpdated today
    Auto-check passed

Categories

Questions about Customize Specialists and Skills

What does Customize Specialists and Skills do?

Handles /Customize requests by sending Skill work to the internal skill-creator and managing Specialist agents through the JavaScript host.agents SDK. This is a router for conversational customization.read` and follows it completely instead of repeating its authoring workflow.

When should I use Customize Specialists and Skills?

Customize Specialists and Skills fits situations like: creating a new Specialist agent through the /Customize entry; revising, publishing or deleting an existing Skill by conversation; creating a Skill and attaching it to a chosen Specialist.

How do I install Customize Specialists and Skills in Claude Code?

Run `npx skills add aipoch/open-science --skill customize -a claude-code`. Or copy the skill folder (resources/skills/customize in aipoch/open-science) into .claude/skills/customize in your project. Claude Code loads it when a task matches its description.

How do I install Customize Specialists and Skills in Codex?

Run `npx skills add aipoch/open-science --skill customize -a codex`. Or copy the skill folder (resources/skills/customize in aipoch/open-science) into .agents/skills/customize in your project. Codex loads it when a task matches its description.

Can I use Customize Specialists and Skills in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aipoch/open-science --skill customize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/customize, .gemini/skills/customize, .github/skills/customize and .opencode/skills/customize in your project.

What does Customize Specialists and Skills need to run?

SKILL.md names no scripts, command-line tools or credentials: Customize Specialists and Skills is instructions for the agent only. Our summary lists: An application that provides the `host.agents` and `host.skills` JavaScript APIs; The internal `skill-creator` skill.

Does Customize Specialists and Skills access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Customize Specialists and Skills safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Customize Specialists and Skills use?

Customize Specialists and Skills is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Customize Specialists and Skills use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Customize Specialists and Skills?

Skills that share tags, products or a category with Customize Specialists and Skills: Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars), Skill Creator (zhayujie/CowAgent, 47k stars), Skill Quality Reviewer (Galaxy-Dawn/claude-scholar, 5.7k stars) and Prismer Skill Creator (Prismer-AI/PrismerCloud, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Customize Specialists and Skills?

aipoch (a GitHub organization) maintains it in aipoch/open-science, which has 5,435 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 7, 2026.

Source: aipoch/open-science on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.