skills/skill-creator/SKILL.md
Guide for creating or updating skills that extend Manus via specialized knowledge, workflows, or tool integrations. For any modification or improvement request, MUST first read this skill and follow its update workflow instead of editing files directly.
npx skillsauth add tusosos/manus-knowledge-base skill-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides guidance for creating effective skills.
Skills are modular, self-contained packages that extend Manus's capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasks—they transform Manus from a general-purpose agent into a specialized agent equipped with procedural knowledge that no model can fully possess.
The context window is a public good. Skills share the context window with everything else Manus needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
Default assumption: Manus is already very smart. Only add context Manus doesn't already have. Challenge each piece of information: "Does Manus really need this explanation?" and "Does this paragraph justify its token cost?"
Prefer concise examples over verbose explanations.
Match the level of specificity to the task's fragility and variability:
High freedom (text-based instructions): Use when multiple approaches are valid, decisions depend on context, or heuristics guide the approach.
Medium freedom (pseudocode or scripts with parameters): Use when a preferred pattern exists, some variation is acceptable, or configuration affects behavior.
Low freedom (specific scripts, few parameters): Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
Think of Manus as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).
Every skill consists of a required SKILL.md file and optional bundled resources:
skill-name/
├── SKILL.md (required)
│ ├── YAML frontmatter metadata (required)
│ │ ├── name: (required)
│ │ └── description: (required)
│ └── Markdown instructions (required)
└── Bundled Resources (optional)
├── scripts/ - Executable code (Python/Bash/etc.)
├── references/ - Documentation intended to be loaded into context as needed
└── templates/ - Files used in output (templates, icons, fonts, etc.)
Every SKILL.md consists of:
name and description fields. These are the only fields that Manus reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.scripts/ - Executable code for repetitive or deterministic tasks (e.g., rotate_pdf.py). Token efficient, can run without loading into context.references/ - Documentation loaded as needed (schemas, API docs, policies). Keeps SKILL.md lean. For large files (>10k words), include grep patterns in SKILL.md.templates/ - Output assets not loaded into context (logos, fonts, boilerplate code).Avoid duplication: Information lives in SKILL.md OR references, not both.
Do NOT include: README.md, CHANGELOG.md, or other auxiliary documentation. Skills are for AI agents, not users.
Three-level loading system:
Keep SKILL.md under 500 lines. When splitting content to references, clearly describe when to read them.
Key principle: Keep core workflow in SKILL.md; move variant-specific details to reference files.
Example structure for multi-domain skills:
bigquery-skill/
├── SKILL.md (overview + navigation)
└── references/
├── finance.md
├── sales.md
└── product.md
Manus only loads the relevant reference file when needed.
Skill creation involves these steps:
Follow these steps in order, skipping only if there is a clear reason why they are not applicable.
Skip this step only when the skill's usage patterns are already clearly understood.
Gather concrete examples of how the skill will be used. Ask questions like:
Avoid asking too many questions at once. Conclude when you have a clear sense of the functionality.
For each example, identify reusable resources:
| Resource Type | When to Use | Example |
| ------------- | ------------------------------- | ------------------------------------- |
| scripts/ | Code rewritten repeatedly | rotate_pdf.py for PDF rotation |
| templates/ | Same boilerplate each time | HTML/React starter for webapp builder |
| references/ | Documentation needed repeatedly | Database schemas for BigQuery skill |
At this point, it is time to actually create the skill.
Skip this step only if the skill being developed already exists, and iteration or packaging is needed. In this case, continue to the next step.
When creating a new skill from scratch, always run the init_skill.py script. The script conveniently generates a new template skill directory that automatically includes everything a skill requires, making the skill creation process much more efficient and reliable.
Usage:
python /home/ubuntu/skills/skill-creator/scripts/init_skill.py <skill-name>
The script:
/home/ubuntu/skills/<skill-name>/scripts/, references/, and templates/After initialization, customize or remove the generated SKILL.md and example files as needed.
When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Manus to use. Include information that would be beneficial and non-obvious to Manus. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Manus instance execute these tasks more effectively.
Consult these helpful guides based on your skill's needs:
/home/ubuntu/skills/skill-creator/references/workflows.md for sequential workflows and conditional logic/home/ubuntu/skills/skill-creator/references/output-patterns.md for template and example patterns/home/ubuntu/skills/skill-creator/references/progressive-disclosure-patterns.md for splitting content across files.These files contain established best practices for effective skill design.
Begin with the scripts/, references/, and templates/ files identified in Step 2. This may require user input (e.g., brand assets for templates/, documentation for references/).
Test added scripts by running them to ensure they work correctly. For many similar scripts, test a representative sample.
Delete any unused example files from initialization.
Writing Guidelines: Always use imperative/infinitive form.
Write the YAML frontmatter with name and description:
name: The skill namedescription: Primary trigger mechanism. Must include what the skill does AND when to use it (body only loads after triggering).
Write instructions for using the skill and its bundled resources.
Once development of the skill is complete, validate and deliver it to the user.
Run the validation script to ensure the skill meets all requirements:
python /home/ubuntu/skills/skill-creator/scripts/quick_validate.py <skill-name>
If validation fails, fix the errors and run validation again.
Use message tool to send the SKILL.md file as attachment:
/home/ubuntu/skills/{skill-name}/SKILL.md
The system will automatically:
/home/ubuntu/skills/*/SKILL.md.skill fileAfter testing the skill, users may request improvements. Often this happens right after using the skill, with fresh context of how the skill performed.
Iteration workflow:
tools
Download video and audio from YouTube and other platforms with yt-dlp. Use when a user asks to download YouTube videos, extract audio from videos, download playlists, get subtitles, download specific formats or qualities, batch download, archive channels, extract metadata, embed thumbnails, download from social media platforms (Twitter, Instagram, TikTok), or build media ingestion pipelines. Covers format selection, audio extraction, playlists, subtitles, metadata, and automation.
development
Download YouTube videos with customizable quality and format options. Use this skill when the user asks to download, save, or grab YouTube videos. Supports various quality settings (best, 1080p, 720p, 480p, 360p), multiple formats (mp4, webm, mkv), and audio-only downloads as MP3.
development
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
development
Use when you have a spec or requirements for a multi-step task, before touching code