src/amcp/builtin_skills/skill-creator/SKILL.md
Create or update AMCP skills. Use when designing, structuring, or packaging skills with scripts, references, and assets. This skill should be used when users want to create a new skill (or update an existing skill) that extends AMCP's capabilities with specialized knowledge, workflows, or tool integrations.
npx skillsauth add tao12345666333/amcp 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 AMCP skills.
Skills are modular, self-contained packages that extend the agent's capabilities by providing specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific domains or tasks — they transform the agent from a general-purpose agent into a specialized agent equipped with procedural knowledge that no model can fully possess.
When creating a skill, place it in one of these two roots:
$workspace/.amcp/skills/<skill-name>~/.config/amcp/skills/<skill-name> (shared across workspaces)Prefer project-local by default. Use user-level only when the user explicitly wants the skill available across multiple workspaces.
The context window is a public good. Skills share the context window with everything else the agent needs: system prompt, conversation history, other skills' metadata, and the actual user request.
Default assumption: the agent is already very smart. Only add context the agent doesn't already have. Challenge each piece of information: "Does the agent 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.
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
└── assets/ - Files used in output (templates, icons, fonts, etc.)
Every SKILL.md consists of:
name and description fields. These are the only fields that the agent 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 (Python/Bash/etc.) for tasks that require deterministic reliability or are repeatedly rewritten.
references/)Documentation and reference material intended to be loaded as needed into context.
assets/)Files not intended to be loaded into context, but rather used within the output the agent produces.
A skill should only contain essential files. Do NOT create:
Skills use a three-level loading system to manage context efficiently:
Keep SKILL.md body to the essentials and under 500 lines to minimize context bloat. Split content into separate files when approaching this limit.
Skill creation involves these steps:
init_skill.py)validate_skill.py)Follow these steps in order, skipping only if there is a clear reason why they are not applicable.
plan-mode).gh-address-comments, docker-deploy).To create an effective skill, clearly understand concrete examples of how the skill will be used. Ask questions like:
Conclude this step when there is a clear sense of the functionality the skill should support.
Analyze each concrete example by:
When creating a new skill from scratch, run the init_skill.py script bundled with this skill:
python <path-to-skill-creator>/scripts/init_skill.py <skill-name> --path <output-directory> [--resources scripts,references,assets]
Examples:
# Project-local skill
python <path>/scripts/init_skill.py my-skill --path .amcp/skills
# User-level skill
python <path>/scripts/init_skill.py my-skill --path ~/.config/amcp/skills
# With specific resources
python <path>/scripts/init_skill.py my-skill --path .amcp/skills --resources scripts,references
The script creates the skill directory with a SKILL.md template and optional resource directories.
When editing the skill, remember it is being created for another instance of the agent to use. Include information that would be beneficial and non-obvious. Consider what procedural knowledge, domain-specific details, or reusable assets would help.
Write the YAML frontmatter with name and description:
name: The skill namedescription: This is the primary triggering mechanism. Include both what the skill does and specific triggers/contexts for when to use it. Include all "when to use" information here, not in the body.Write clear, concise instructions for using the skill and its bundled resources. Use imperative/infinitive form.
Once development is complete, validate the skill:
python <path-to-skill-creator>/scripts/validate_skill.py <path/to/skill-folder>
The validation script checks YAML frontmatter format, required fields, naming rules, and file organization. Fix any reported issues and run again.
After testing the skill, iterate based on real usage:
tools
Send and edit Telegram messages via Bot API. Use when AMCP needs to send a message, reply to a specific message, edit an existing message, or push proactive notifications (cron results, heartbeat alerts, task status). Requires AMCP_TELEGRAM_BOT_TOKEN env var.
tools
Backup old AMCP sessions by renaming with execution date, then clean and compact sessions and memory.
testing
Periodic heartbeat check that reads HEARTBEAT.md from the workspace and executes any tasks listed there. Use for autonomous background monitoring, periodic maintenance, and proactive task execution. Triggered by a cron schedule.
tools
Learn how to manage conversation context in AMCP to avoid LLM API errors from exceeding context windows. This skill covers SmartCompactor strategies, token estimation, configuration, and best practices.