Manage and optimize custom crew definition files (IDENTITY.md, AGENTS.md, SOUL.md, TOOLS.md). Also handles first-time employee initialization when .magic/ has no IDENTITY.md, including guiding setup and generating the crew definition. Use when users want to edit crew 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', 'create employee'. Do NOT use for: skill creation (use skill-creator), skill searching (use find_skills tool).
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Manages the 4 core employee definition files under .magic/, 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.
Determine the output language in this order:
get_user_language before generating or editing employee files:get_user_language()Read the selected language from data.language.
When the user has not specified a language, use the returned language as the primary language when writing prompts and employee files. The system-injected <user_preferred_language> is not the source of truth for this decision.
Default single-language mode: Generate all content in the selected language. YAML header uses single-language fields only.
Always generate single-language output. Do not ask for, generate, or maintain translations or language-specific duplicate sections.
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.
When collecting information with ask_user, prioritize clickable choices instead of rendering every question as a free-text field:
ask_user call when practical.confirm for yes/no decisions, especially the Round 4 skill-decomposition decision.select whenever 2-8 useful candidate answers can be offered, and multi_select when multiple answers may apply.multi_select for core functions and traits. Professional capabilities (use multi_select), Professional domains and specialties, and Working style should prioritize clickable options; do not ask the user to rewrite the same information as free text.input only for the employee name, values the user must enter precisely, and genuinely open-ended descriptions that cannot be usefully enumerated.input.Before gathering, determine the language using the priority above. Communicate and collect information in the selected language.
Round 1 (required):
Do not ask for translations or offer multilingual output.
Round 2 (recommended but optional): 4. Role definition: A richer description of capabilities, expertise, and working style (goes into IDENTITY.md body) 5. Personality and communication style: What personality should the employee have? (e.g. rigorous, lively, concise) (goes into SOUL.md)
Round 3 (required): 6. Workflow / rules: What workflow should this employee follow? What special rules apply? (goes into AGENTS.md)
Workflows must be split into clear, independently executable processes. Each process should be designed to call one independent skill; do not pile multiple complex workflows into AGENTS.md.
Round 4 (required decision):
7. Skill decomposition decision: After collecting the workflow, explicitly ask whether the independent processes should be created as separate skills. Do not infer consent from silence, and do not finish initialization before receiving a clear yes/no answer.
8. If the user chooses yes, summarize the proposed skill boundaries, then load skill-creator and follow its plan, confirmation, conflict-check, creation, and validation workflow once for each independent process.
9. If the user chooses no, record that decision in the initialization summary and keep the workflow in AGENTS.md. If the user is unsure, explain the tradeoff and ask again; do not silently choose.
Round 2 may be skipped. If the user has not provided workflow / rules for Round 3, initialization cannot be completed and the conversation must continue until they provide them. Round 4 is a required decision gate even when the user ultimately chooses no.
After collecting info, write a JSON config and call the init script:
Single-language mode (default):
Use the selected language for all generated values. Do not add _en/_cn translation fields.
# Write collected info as JSON config using only the selected language.
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 only after the skill-decomposition decision is recorded.
shell_exec(
command="python '<skill_dir>/scripts/init_crew.py' --config .crew_init_config.json"
)The init script first checks the current directory, then the project's .workspace directory and project root for a relative config path. The command does not require copying the config into the skill directory.
The script generates files based on the config (TOOLS.md and SKILLS.md are intentionally not created by the initialization script — 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 providedAfter init_crew.py completes successfully and employee definition files are ready, generate the employee Logo (Avatar):
.magic/IDENTITY.md to extract name, role, description, and capability characteristics..magic/SOUL.md (if present) to extract personality traits, aesthetic preferences, and communication style.references/avatar-generation-guide.md.generate_images with size="1024x1024" to generate 1 square image..magic/logo.png (or .magic/logo.jpg) under workspace .magic/ root (never prepend .workspace/, never place in assets/)..magic/IDENTITY.md YAML frontmatter to set icon: .magic/logo.png (or .magic/logo.jpg).500KB (convert to high-quality JPG if necessary).Creating or validating definition files is not the end of initialization. After the files and any requested skills are ready, execute this sequence before cleanup or the final response:
.magic/IDENTITY.md and .magic/SOUL.md (if present) and save directly to .magic/logo.png (or .magic/logo.jpg). Ensure icon: .magic/logo.png is written into .magic/IDENTITY.md.shell_exec(
command="python '<skill_dir>/scripts/check_crew.py'"
)check_crew.py returns "ok": true. If any error is returned, fix the issues immediately before proceeding.Do not delete .crew_init_config.json, announce completion, or return the final initialization summary until definition files, Logo generation, and check_crew.py verification have passed.
If the user chooses skill decomposition in Round 4, after initialization call skill-creator once for each independent workflow. Follow skill-creator's plan, confirmation, creation, and validation process; do not write SKILL.md manually.
AGENTS.md section of references/crew-file-format.md and references/prompt-engineering-guide.md, then validate the drafted workflow against their specifications: overview, ordered SOP steps, inputs, outputs, tool/skill calls, failure branches, completion checks, and the mandatory baseline security constraints must be present. User-requested security or other special rules extend the baseline and must not weaken or replace it.read_files.skill-creator for each independent skill and validate the results before reporting completion.check_crew.py).delete_files(path=".crew_init_config.json")..magic/skills/ and can be adjusted later through employee management.After employee initialization completes, you MUST present the following checklist to the user to confirm each step was executed and verified:
## Employee Initialization & Verification Checklist
| Check Item | Status | Verification Details |
|------------|--------|----------------------|
| Definition files created | pass | IDENTITY.md, AGENTS.md, SOUL.md created under .magic/ |
| Skill decomposition decision | pass | Recorded user decision ('yes'/'no') |
| Logo generated | pass / skipped / failed | Generated .magic/logo.png and icon recorded in IDENTITY.md |
| Check crew verification | pass | check_crew.py verification passed with 0 errors || File | Dimension | Responsibility | Required |
|---|---|---|---|
IDENTITY.md | WHO — Identity | Name, role, description, icon + 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 |
.magic/logo.png | VISUAL — Logo | Default employee Logo directly under .magic/ | Optional |
read_files to read the target file's existing contentreferences/prompt-engineering-guide.mdreferences/crew-file-format.mdwrite_file or edit_file to saveBefore concluding an employee-creation or employee-editing session—especially when the user says it is finished or asks to deliver, publish, or package the employee—run a final workspace check:
list_dir with path="." to inspect the workspace root..magic/; only files and directories under .magic/ are packaged as employee content..magic/ and report their workspace-relative paths. Include root-level files and directories outside .magic/; do not silently discard them..magic/..magic/ and let the user move/copy it. Do not perform the move/copy/delete automatically..magic/, state that the check is clear.This check is a completion safeguard and does not replace the required startup inspection of .magic/IDENTITY.md and the other employee definition files.
After each edit, present:
## Quality Assessment
| Check Item | Status | Notes |
|------------|--------|-------|
| Role clarity | pass | ... |
| Instruction specificity | pass | ... |
| Language consistency | pass | All generated content uses the selected language. |
| Format compliance | pass | ... |
| ... | ... | ... |Contains YAML header (metadata) and body (role definition).
YAML header fields: name, role, and description in the selected language. Do not add language-suffixed variants.
Body: Write directly in the selected language.
Key points:
Pure Markdown, no YAML header. Defines this employee's standard operating procedures (SOPs) and rules. The workflow should be concise and clear, explicitly describing the action, input, output, and tool or skill call for every step.
Key points:
Image generation in workflows: When a workflow step requires generating images, always instruct the agent to use the canvas tools rather than generate_images directly:
create_canvas to initialize a canvas project (e.g., project_path="<topic>/design")generate_canvas_images with the task list to generate images into the canvasReserve generate_images only for utility/internal use (e.g., logo generation during initialization). All user-facing image generation tasks in AGENTS.md workflows must go through the canvas tools.
Pure Markdown, no YAML header. Defines the employee's personality and behavior guidelines.
Key points: Core traits (3-5 keywords + behavioral descriptions), aesthetic preferences including presentation, expression, and creative style, actionable communication style, and behavior boundaries.
Contains YAML header (tool whitelist) and optional body (tool usage preferences).
Key points:
scripts/tools.py to query dynamicallycreate_canvas and generate_canvas_images to the tool list (not generate_images), so the AGENTS.md canvas workflow is executableFor employees creating images, videos, or Canvas content, configure the canvas-manager system skill in SKILLS.md and keep code execution enabled. Load that skill, then use initialize_canvas and the generation workflow through run_sdk_snippet. Canvas tools are Code Mode only; do not put them in TOOLS.md. The runtime provides run_sdk_snippet automatically. See references/available-tools.md for the skill configuration.
When 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"
)Reference documents with detailed guides:
scripts/tools.py for dynamic queries)dtyq/magic
0f1432c
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.