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.
Handles /Customize requests by sending Skill work to the internal skill-creator and managing Specialist agents through the JavaScript host.agents SDK.
$ npx skills add aipoch/open-science --skill customize -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aipoch/open-science customize --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "customize" agent skill from https://github.com/aipoch/open-science/tree/main/resources/skills/customize into .claude/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aipoch/open-science/tree/main/resources/skills/customizeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aipoch/open-science --skill customize -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aipoch/open-science customize --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aipoch/open-science.git skills-src && mkdir -p .agents/skills && cp -r skills-src/resources/skills/customize .agents/skills/customize && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "customize" agent skill from https://github.com/aipoch/open-science/tree/main/resources/skills/customize into .agents/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aipoch/open-science --skill customize -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aipoch/open-science customize --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aipoch/open-science.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/resources/skills/customize .cursor/skills/customize && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "customize" agent skill from https://github.com/aipoch/open-science/tree/main/resources/skills/customize into .cursor/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aipoch/open-science.git --path resources/skills/customize--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aipoch/open-science --skill customize -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aipoch/open-science customize --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aipoch/open-science.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/resources/skills/customize .gemini/skills/customize && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "customize" agent skill from https://github.com/aipoch/open-science/tree/main/resources/skills/customize into .gemini/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aipoch/open-science customizeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aipoch/open-science --skill customize -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aipoch/open-science.git skills-src && mkdir -p .github/skills && cp -r skills-src/resources/skills/customize .github/skills/customize && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "customize" agent skill from https://github.com/aipoch/open-science/tree/main/resources/skills/customize into .github/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aipoch/open-science --skill customize -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aipoch/open-science customize --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aipoch/open-science.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/resources/skills/customize .opencode/skills/customize && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "customize" agent skill from https://github.com/aipoch/open-science/tree/main/resources/skills/customize into .opencode/skills/customize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "customize", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
customizeHandles /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. 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.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2102e6d. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from aipoch/open-science at commit 2102e6d, republished under its Apache-2.0 licence (© aipoch). 1,401 words, ~2,733 tokens.
.claude/skills/customize/SKILL.md (or your agent's skills folder).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.
host.skills.read('skill-creator') and follow that internal Skill completely. Do not duplicate its
authoring workflow here.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.
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:
host.agents through host.mcp().host.agents SDK surfaceThe 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:
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.
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.
Follow this order for every mutation. Do not snapshot catalog contents into a profile or session (resolution is always live):
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.get(name). After delete, verify absence
with list or an expected not-found result from get(name). For switch, use binding read-back.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.create → Selected; an omitted other array becomes empty.update({ unrestricted: true }) → Full, preserving the stored Selected configuration.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).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 attachSkill/detachSkill or
attachConnector/detachConnector only for a single incremental collection move.
/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.When you describe one of these privileged actions, explain:
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.
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(name) 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. Verify deletion with list or an expected not-found get(name) result.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.
© 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
Just SKILL.md in resources/skills/customize of aipoch/open-science.
Open the folder on GitHubat commit 2102e6d
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Customize Specialists and Skills this skillaipoch/open-science | 5.4k | — | ~2.7k | Automated safety check: Pass | Apache-2.0 | |
| Darwin Skill Optimizeralchaincyf/darwin-skill | 6.2k | 1 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Skill Creatorzhayujie/CowAgent | 47k | — | ~4.7k | Automated safety check: Notes | MIT | |
| Skill Quality ReviewerGalaxy-Dawn/claude-scholar | 5.7k | 1 repos | ~3k | Automated safety check: Pass | MIT | |
| Prismer Skill CreatorPrismer-AI/PrismerCloud | 1.6k | — | ~2.6k | Automated safety check: Notes | MIT | |
| Skill Factorysangrokjung/claude-forge | 849 | — | ~2.7k | Automated safety check: Pass | MIT |
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.
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.
Galaxy-Dawn/claude-scholar
Scores a skill across description, content organization, writing style and structure, then produces letter grades and a prioritized improvement plan.
Prismer-AI/PrismerCloud
Walks an agent through creating, importing, editing, validating, testing and publishing Prismer Skills with a fixed workflow and bundled scripts.
sangrokjung/claude-forge
Analyze session work and automatically convert reusable patterns into Claude Code skills.
authcrunch/authcrunch.github.io
Create, port, revise, or audit repo-local skills and their metadata, engineering contracts, and task routes.
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.
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.
aipoch/open-science
Publication-grade correctness and legibility rules for final-deliverable scientific figures, not exploratory plots.
aipoch/open-science
Judge and reshape the story told by an entire paper figure deck.
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.
aipoch/open-science
Compose one publication-grade multi-panel figure. An agent skill from aipoch/open-science.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.