Agent Creator
Turn a requirement into a working agent with configuration and skills.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up β so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/agent-creation-prism-shadow/β the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates β they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description β no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the βWhat this skill doesβ section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Turn a user requirement into a concrete agent β write the target agent's AGENTS.md and install the skills it needs.
What this skill does
Agent Creation
This skill turns a user requirement into a working agent configuration β plain files in the target agent's directory.
Before you start
If the user's message only invokes this skill (e.g. "use agent-creation skill") without a concrete requirement, ask the user what agent they want and what it should do. But when the requirement is already concrete β even a single sentence like "an expert that answers questions about X" β do not ask follow-up questions: derive the role and rules from that sentence, apply the defaults below, and list your assumptions in the final reply.
Locate the target agent
All agents of this project live side by side under agents/ in the App Data Dir:
APP_DATA_DIR="<app_data_dir>" # the App Data Dir value from your Environment section
ls "$APP_DATA_DIR/agents" # existing agents (each is a folder here)
TARGET="$APP_DATA_DIR/agents/<agent_id>" # the agent to configure
An agent directory contains agent_state/ (system_config.yaml, AGENTS.md, skills/, memory/, tools/) plus scratchpad/ β and traces/, which appears once the agent has run at least once.
Write AGENTS.md
agent_state/AGENTS.md is injected into the agent's system prompt β it is where the user requirement becomes behavior. Keep system_config.yaml's system_prompt untouched (that is the stable system layer); put everything requirement-specific in AGENTS.md:
- Role β what the agent is for, in one or two sentences.
- Domain guidance β the concrete rules, steps and constraints derived from the user requirement.
Be concise: AGENTS.md is prompt context, not documentation. For a domain expert that answers from a knowledge base, a good AGENTS.md is a few lines: the role sentence, "answer strictly from the provided context blocks", citation rules ("cite blocks inline as [1][2]"), a refusal rule for questions the context cannot answer, and "answer in the language of the question".
Install skills
A skill is a directory agent_state/skills/<skill_name>/ containing a SKILL.md:
---
name: <skill_name>
description: <skill_description>
version: <natural number β bump it on every content change>
updated: <ISO 8601 timestamp β move it together with version>
---
<skill_instructions>
The frontmatter may also carry optional short_description and short_description_zh lines (a short UI blurb and its Chinese variant) β the UI prefers them for display, while prompt injection always uses the English description.
Installing is all it takes: the frontmatter metadata of every SKILL.md under skills/ is injected into the target agent's system prompt automatically β do not register skills in AGENTS.md.
Write skills yourself, or fetch existing ones from the internet with shell commands (curl, git clone) and place them under skills/. Anything fetched from the internet must be read in full and reviewed before installing β a skill becomes durable instructions the target agent will follow in every future session; never install one you have not read, and tell the user what it does.
Library skills can be copied from any agent that already has them (e.g. default_agent, which ships the whole library) β copy the entire skills/<skill_name>/ directory. Common bundles, so you don't under-equip the target:
- App builder (builds apps or web frontends):
penguin-sdk,web-design,agenthub-models. - Knowledge expert (answers questions over a document set): usually no harness agent is needed β build a RAG app with the penguin-sdk skill instead, and configure the app's embedded agent (below).
- Evaluation loop:
benchmark-design,agent-evaluation,agent-optimization.
Set name and description
In the target's agent_state/system_config.yaml, set the top-level name: and description: fields so the agent is recognizable in lists. Edit only these two fields.
Creating a brand-new agent
Prefer configuring an agent the user already created. If you must create one from scratch: pick a short id (letters, digits, _, -), copy the default agent's system_config.yaml as the base, and create the layout described above:
mkdir -p "$TARGET/agent_state/skills" "$TARGET/agent_state/memory" "$TARGET/agent_state/tools" "$TARGET/scratchpad"
cp "$APP_DATA_DIR/agents/default_agent/agent_state/system_config.yaml" "$TARGET/agent_state/"
A new agent starts with no skills β install only what it needs. Then write its AGENTS.md, name and description as above.
The embedded agent of an SDK app
An app built with the penguin-sdk skill carries its own agent inside the project (createAgent({ root }) initializes <app>/penguin_data/default_project/agents/default_agent/ on first run). That directory has exactly the layout described here, and everything in this skill applies to it: write the app's persona into its agent_state/AGENTS.md (the penguin-sdk recipe keeps the source of truth in the project's persona.md and copies it in during ingest), and set name/description in its system_config.yaml so the app is recognizable. This is how "the app becomes an expert on X": the persona lives in the embedded agent's AGENTS.md, not in application code.
Related skills
Claude API Helper
anthropics
Build, debug, and optimize Claude API applications with caching and model migration support.
Documentation Co-Authoring
anthropics
Guide structured workflows for writing docs, proposals, and technical specs collaboratively.
PPTX Text Extractor
axoviq-ai
Extract text and speaker notes from PowerPoint presentations.
Memory Search
davila7
Search conversation history and recall previous discussions, decisions, and context.