Manage and optimize custom agent definition files (IDENTITY.md, AGENTS.md, SOUL.md, TOOLS.md). Also handles first-time employee initialization when .workspace/ has no IDENTITY.md. Use when users want to edit agent identity, modify workflow instructions, adjust personality, add/remove tools, optimize prompts, or initialize a new employee from scratch. Trigger signals: 'modify prompt', 'change identity', 'add tool', 'remove tool', 'optimize workflow', 'adjust personality', 'initialize employee', '修改提示词', '改身份', '加工具', '去掉工具', '优化能力', '调性格', '初始化员工', '创建员工'. Do NOT use for: skill creation (use skill-creator), skill searching (use find_skills tool).
68
83%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Manages the 4 core employee definition files under .workspace/, helping users view, edit, and optimize their employee's identity, instructions, personality, and tool configuration.
Also handles first-time employee initialization when the workspace has no definition files.
The system injects <user_preferred_language> indicating the user's preferred language. Follow these rules when generating employee files:
Default single-language mode: Generate all content in the user's preferred language. YAML header uses single-language fields only.
Only enable multilingual mode when the user explicitly requests multiple languages. Use clear language-specific sections or fields. Do not use HTML comment annotations for translations.
When .magic/IDENTITY.md does not exist, the workspace has no employee yet and you should guide the user through initialization.
Use list_dir to check .magic/. If IDENTITY.md is missing, enter the initialization flow.
Collect information in rounds; you may combine questions but don't overwhelm the user.
Before gathering, check user's preferred language: Look at <user_preferred_language>. Communicate and collect information in that language.
Round 1 (required):
Only ask for translations when the user explicitly requests multiple languages (e.g., "need bilingual support").
Round 2 (recommended but optional): 4. Role definition: A richer description of capabilities, expertise, and working style (goes into IDENTITY.md body) 5. Workflow / rules: What workflow should this employee follow? Any special rules? (goes into AGENTS.md)
Round 3 (optional, user may skip): 6. Personality and communication style: What personality should the employee have? (e.g. rigorous, lively, concise) (goes into SOUL.md)
If the user signals intent to skip (e.g., "later", "that's fine for now"), proceed immediately with whatever has been collected.
After collecting info, write a JSON config and call the init script:
Single-language mode (default):
# 1. Write collected info as JSON config (no _en suffix variants needed)
write_file(
path=".crew_init_config.json",
content='{"name": "Research Assistant", "role": "Academic Researcher", "description": "A professional research assistant", "role_body": "You are an academic researcher...", "instructions": "...", "personality": "..."}'
)
# 2. Call the init script
shell_exec(
command="python scripts/init_crew.py --config .workspace/.crew_init_config.json"
)Only when the user explicitly requests multiple languages, supplement with auxiliary language fields (e.g., name_cn, role_body_cn, etc.):
write_file(
path=".crew_init_config.json",
content='{"name": "Research Assistant", "name_cn": "<translated name>", "role": "Academic Researcher", "role_cn": "<translated role>", "description": "A professional research assistant", "description_cn": "<translated description>", ...}'
)The script generates files based on the config (TOOLS.md and SKILLS.md are intentionally not created — the system uses defaults):
IDENTITY.md — always generated (YAML header + role definition body)AGENTS.md — generated if workflow instructions were providedSOUL.md — generated if personality was providedread_filesdelete_files(path=".crew_init_config.json")| File | Dimension | Responsibility | Required |
|---|---|---|---|
IDENTITY.md | WHO — Identity | Name, role, description + role definition body | Required |
AGENTS.md | WHAT — Instructions | Workflow, rules, special directives | Recommended |
SOUL.md | HOW — Personality | Core personality, communication style, behavior guidelines | Optional |
TOOLS.md | WITH WHAT — Tools | Tool whitelist (YAML) + usage preferences | Optional |
read_files to read the target file's existing contentreferences/prompt-engineering-guide.mdreferences/crew-file-format.mdwrite_file or edit_file to saveAfter each edit, present:
## Quality Assessment
| Check Item | Status | Notes |
|------------|--------|-------|
| Role clarity | pass | ... |
| Instruction specificity | pass | ... |
| Language consistency (check if multilingual) | pass | ... |
| Format compliance | pass | ... |
| ... | ... | ... |Contains YAML header (metadata) and body (role definition).
YAML header fields: name, role, description in the user's preferred language. Only in multilingual mode, add auxiliary language variants: name_cn/name_en, role_cn/role_en, description_cn/description_en.
Body: Write directly in single-language mode. In multilingual mode, use <!--xx --> comment format with the user's preferred language as active content.
Key points:
Pure Markdown, no YAML header. Defines this employee's specific workflow and rules.
Key points: Prioritized instructions, numbered lists, decision logic (if/then/else), output format specs.
Pure Markdown, no YAML header. Defines the employee's personality and behavior guidelines.
Key points: Core traits (3-5 keywords + behavioral descriptions), communication style, behavior boundaries.
Contains YAML header (tool whitelist) and optional body (tool usage preferences).
Key points:
scripts/tools.py to query dynamicallyWhen users want to add or remove tools:
Use scripts/tools.py to dynamically scan all registered tools in the project (data source: config/tool_definitions.json).
shell_exec(
command="python scripts/tools.py list"
)shell_exec(
command="python scripts/tools.py detail web_search"
)shell_exec(
command="python scripts/tools.py search image"
)Default single-language mode: Write staff files directly in the user's preferred language. Do not use HTML comment annotations for translations.
Only when the user explicitly requests multiple languages, use ordinary language-specific sections. Keep the user's preferred language first, then add the auxiliary language below it with a clear heading:
## English
English content.
## Chinese
Chinese content.Reference documents with detailed guides:
scripts/tools.py for dynamic queries)f9973c5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.