Install any skill in seconds. Free to start, no credit card required.
Get Started Free →(ePost) This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
.claude/skills/majiayu000-kit-agent-development/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-03 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 228% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 170% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 80% | 0% |
Agents are autonomous subprocesses that handle complex, multi-step tasks independently. Understanding agent structure, triggering conditions, and system prompt design enables creating powerful autonomous capabilities.
Key concepts:
markdown--- name: agent-identifier description: Use this agent when [triggering conditions]. Examples: <example> Context: [Situation description] user: "[User request]" assistant: "[How assistant should respond and use this agent]" <commentary> [Why this agent should be triggered] </commentary> </example> <example> [Additional example...] </example> model: inherit color: blue tools: ["Read", "Write", "Grep"] " --- You are [agent role description]... **Your Core Responsibilities:** 1. [Responsibility 1] 2. [Responsibility 2] **Analysis Process:** [Step-by-step workflow] **Output Format:** [What to return]
Agent identifier used for namespacing and invocation.
Format: lowercase, numbers, hyphens only Length: 3-50 characters Pattern: Must start and end with alphanumeric
Good examples:
code-reviewertest-generatorapi-docs-writersecurity-analyzerBad examples:
helper (too generic)-agent- (starts/ends with hyphen)my_agent (underscores not allowed)ag (too short, < 3 chars)Defines when Claude should trigger this agent. This is the most critical field.
Must include:
<example> blocks showing usage<commentary> explaining why agent triggersFormat:
Use this agent when [conditions]. Examples:
<example>
Context: [Scenario description]
user: "[What user says]"
assistant: "[How Claude should respond]"
<commentary>
[Why this agent is appropriate]
</commentary>
</example>
[More examples...]Best practices:
Which model the agent should use.
Options:
inherit - Use same model as parent (recommended)sonnet - Claude Sonnet (balanced)opus - Claude Opus (most capable, expensive)haiku - Claude Haiku (fast, cheap)Recommendation: Use inherit unless agent needs specific model capabilities.
Visual identifier for agent in UI.
Options: blue, cyan, green, yellow, magenta, red
Guidelines:
Restrict agent to specific tools.
Format: Array of tool names
yamltools: ["Read", "Write", "Grep", "Bash"]
Default: If omitted, agent has access to all tools
Best practice: Limit tools to minimum needed (principle of least privilege)
Common tool sets:
["Read", "Grep", "Glob"]["Read", "Write", "Grep"]["Read", "Bash", "Grep"]["*"]The markdown body becomes the agent's system prompt. Write in second person, addressing the agent directly.
Standard template:
markdownYou are [role] specializing in [domain]. **Your Core Responsibilities:** 1. [Primary responsibility] 2. [Secondary responsibility] 3. [Additional responsibilities...] **Analysis Process:** 1. [Step one] 2. [Step two] 3. [Step three] [...] **Quality Standards:** - [Standard 1] - [Standard 2] **Output Format:** Provide results in this format: - [What to include] - [How to structure] **Edge Cases:** Handle these situations: - [Edge case 1]: [How to handle] - [Edge case 2]: [How to handle]
✅ DO:
❌ DON'T:
See references/agent-creation-guide.md for:
markdown" --- name: simple-agent description: Use this agent when... Examples: <example>...</example> model: inherit color: blue --- You are an agent that [does X]. Process: 1. [Step 1] 2. [Step 2] Output: [What to provide]
When creating agents for the ePost agent kit, these additional fields configure agent behavior:
skills — Array of skill IDs the agent should load. Use bracket notation: skills: [core, debugging]. Most agents include core as the first skill. Read-only agents (researcher, reviewer) may omit implementation skills.
memory — Controls agent memory scope. Use project for agents that need cross-session context. Use session for agents with ephemeral tasks.
permissionMode — Controls what actions the agent can take without user confirmation:
default — Standard permission prompts (most agents)acceptEdits — Auto-accept file edits (implementers, developers)plan — Read-only exploration, no writes (architects, researchers, reviewers)bypassPermissions — Full autonomy (use with caution)disallowedTools — Explicitly prevent agent from using specific tools. Useful for read-only agents: disallowedTools: [Write, Edit].
DO:
inherit for model unless specific needDON'T:
If your agent produces persistent project-level data (findings, benchmarks, patches), declare a data domain using the .epost-data/ convention. See the data-store skill for the full convention and gitignore rules.
Template — add to agent system prompt body:
markdown## Data Store - **DB:** `.epost-data/{domain}/{domain}.json` (if exists) - **Artifacts:** `.epost-data/{domain}/artifacts/` (if exists) - **Schema:** `.claude/assets/{domain}-schema.json`
Steps:
packages/{pkg}/assets/{domain}-schema.json(if exists) guardsdata-store skill's Domain Registry tablereferences/agent-creation-guide.md — Full creation workflow, validation rules, testing, organization| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 20,082 | 29,674 | +48% | 1 | 1 | 0% | 3,461 | 5,092 | +47% | 0 | 0 | — |
case-02 | fail→pass | 21,013 | 18,407 | -12% | 1 | 1 | 0% | 3,677 | 5,508 | +50% | 0 | 0 | — |
case-03 | fail→pass | 27,241 | 15,599 | -43% | 1 | 1 | 0% | 4,890 | 4,616 | -6% | 0 | 0 | — |
case-04 | pass→fail | 7,019 | 9,047 | +29% | 1 | 1 | 0% | 1,175 | 3,560 | +203% | 0 | 0 | — |
case-05 | fail→pass | 6,119 | 9,290 | +52% | 1 | 1 | 0% | 1,148 | 3,760 | +228% | 0 | 0 | — |
case-06 | pass→pass | 8,770 | 2,115 | -76% | 1 | 1 | 0% | 1,544 | 2,330 | +51% | 0 | 0 | — |
case-07 | pass→pass | 10,242 | 5,315 | -48% | 1 | 1 | 0% | 1,660 | 2,652 | +60% | 0 | 0 | — |
case-12 | fail→pass | 5,460 | 2,321 | -57% | 1 | 1 | 0% | 879 | 2,372 | +170% | 0 | 0 | — |
case-08 | pass→pass | 12,609 | 5,063 | -60% | 1 | 1 | 0% | 2,038 | 2,688 | +32% | 0 | 0 | — |
case-09 | pass→pass | 6,391 | 4,499 | -30% | 1 | 1 | 0% | 1,100 | 2,743 | +149% | 0 | 0 | — |
case-10 | pass→pass | 7,510 | 3,102 | -59% | 1 | 1 | 0% | 1,232 | 2,509 | +104% | 0 | 0 | — |
case-11 | fail→pass | 11,961 | 7,684 | -36% | 1 | 1 | 0% | 1,845 | 3,316 | +80% | 0 | 0 | — |
case-13 | fail→pass | 5,191 | 2,955 | -43% | 1 | 1 | 0% | 758 | 2,486 | +228% | 0 | 0 | — |
case-14 | fail→pass | 6,412 | 2,255 | -65% | 1 | 1 | 0% | 1,135 | 2,355 | +107% | 0 | 0 | — |
case-15 | fail→pass | 9,220 | 6,580 | -29% | 1 | 1 | 0% | 1,607 | 3,192 | +99% | 0 | 0 | — |
case-16 | fail→pass | 15,554 | 8,282 | -47% | 1 | 1 | 0% | 2,774 | 3,489 | +26% | 0 | 0 | — |
case-17 | fail→pass | 14,783 | 5,094 | -66% | 1 | 1 | 0% | 2,269 | 2,940 | +30% | 0 | 0 | — |
case-18 | fail→pass | 13,130 | 7,889 | -40% | 1 | 1 | 0% | 2,242 | 3,306 | +47% | 0 | 0 | — |
case-19 | fail→pass | 8,807 | 2,127 | -76% | 1 | 1 | 0% | 1,495 | 2,314 | +55% | 0 | 0 | — |
case-20 | pass→pass | 15,029 | 12,834 | -15% | 1 | 1 | 0% | 2,670 | 4,216 | +58% | 0 | 0 | — |
case-21 | pass→fail | 7,087 | 4,501 | -36% | 1 | 1 | 0% | 1,500 | 2,165 | +44% | 0 | 0 | — |
case-22 | fail→fail | 8,527 | 9,692 | +14% | 1 | 1 | 0% | 1,510 | 3,764 | +149% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 21 comparable cases. 2 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.