用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/markus-global/markus --skill skill-building命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Design and create AI team packages — manifest format, member structure, directory layout
Design and create AI agent packages — manifest format, directory structure, image asset generation (avatar/thumbnail/screenshots), file writing workflow, comprehensive field reference
Use the Cursor CLI agent mode for IDE-integrated coding with project rules and repo-aware edits
基于 SOC 职业分类
正在显示 SKILL.md
| name | skill-building |
| description | Design and create agent skill packages — instruction-based and MCP-based skills, manifest format |
This skill teaches you how to create Markus skill packages — directory-based artifacts that teach agents new capabilities. A skill can work in two ways (or both):
SKILL.md file with instructions injected into the agent's context, guiding it to use existing tools in new ways.Most skills are instruction-based. Use MCP-based skills when the capability requires new tools that don't exist yet (e.g., connecting to an external API, browser automation, hardware control).
CRITICAL: Skill artifacts MUST be saved under this exact path — the Builder page, install system, and deliverable detection all depend on it:
~/.markus/builder-artifacts/skills/{skill-name}/
├── skill.json # Manifest (auto-created from your JSON output)
├── SKILL.md # Instruction document (you write via file_write)
├── README.md # Human-readable documentation (optional)
├── images/ # Skill icon images (optional)
│ └── icon.png # Skill icon — used in UI after install
└── ... # Any other files: scripts, MCP servers, configs, templates, etc.
Do NOT write artifacts to ~/.markus/shared/, your working directory, or any other location. Only ~/.markus/builder-artifacts/skills/ is recognized by the system.
A skill directory can contain any files needed for the skill to work — not just SKILL.md and README.md. For example:
server.mjs) that provide new tools to the agentWhen the user installs the artifact, the entire directory (all files) is deployed to ~/.markus/skills/{skill-name}/. SKILL.md is loaded and injected into the agent's context when the skill is activated. If the manifest declares mcpServers, those servers are started and their tools registered to the agent. skill.json contains metadata used by the skill registry. README.md provides documentation for humans browsing or sharing the skill.
Output the skill in two steps — manifest first, then content files. Never put file content inline in the JSON.
There is no chat auto-save. A JSON code block in your reply does not create files.
file_write("~/.markus/builder-artifacts/skills/{name}/skill.json", ...) for the manifestfile_write for each content file (SKILL.md, README, …)You may preview JSON in chat in addition to writing files — never instead of file_write.
This JSON contains ONLY metadata — no file content.
Instruction-based skill (most common):
{
"type": "skill",
"name": "skill-name-kebab-case",
"displayName": "Skill Name",
"version": "1.0.0",
"description": "When and why an agent should use this skill",
"author": "Your Name",
"icon": "images/icon.png",
"category": "custom",
"tags": ["tag1", "tag2"],
"skill": {
"skillFile": "SKILL.md"
}
}
MCP-based skill (provides new tools via a bundled server script):
{
"type": "skill",
"name": "my-api-connector",
"displayName": "My API Connector",
"version": "1.0.0",
"description": "Connect to My API for data retrieval and actions",
"author": "Your Name",
"icon": "images/icon.png",
"category": "custom",
"tags": ["api", "connector"],
"skill": {
"skillFile": "SKILL.md",
"requiredPermissions": ["network"],
"mcpServers": {
Notes on MCP servers:
${SKILL_DIR} is resolved at load time to the skill's actual directory path — use it to reference bundled scripts.command can be any executable (node, python3, npx, etc.).my-api__tool_name). Mention these prefixed names in SKILL.md."command": "npx", "args": ["-y", "some-mcp-server@latest"].After skill.json is written, proceed to write the remaining files with file_write.
After the JSON is saved, write each file individually using file_write. The base path is ~/.markus/builder-artifacts/skills/{skill-name}/ (use the name from your JSON).
Write files in this order:
SKILL.md (REQUIRED) — The instruction document with YAML frontmatter and comprehensive Markdown body:
name and description (must match manifest)MCP server script (if MCP-based) — e.g., server.mjs implementing the MCP protocol over stdio. Must handle initialize, tools/list, and tools/call JSON-RPC methods.
README.md (optional) — Human-readable documentation for browsing or sharing.
Any other files — Helper scripts, templates, config files, data files, etc.
images/icon.png (optional) — Skill icon for UI display (see Image Assets).
Skill icons are abstract representations of the skill's capability — like an app icon or tool symbol. They should be clean, recognizable, and work well at small sizes.
| Image | Location | Style | Purpose |
|---|---|---|---|
| Skill icon | images/icon.png | Abstract icon / symbol | Skill card in UI, published to Hub as icon |
Do NOT use portraits for skill icons. Skills are tools, not team members. Portraits belong on agents.
Prompt style guide for generate_image:
Good prompt (do this):
"Clean icon design for a git changelog tool, stylized git branch merging into a document,
flat vector style, teal and white palette, square format, modern minimal"
"Minimalist icon for a GitHub automation skill, octagon cat silhouette combined with
gear, flat design, purple gradients, square format"
"Abstract icon representing web scraping capability, spider-web pattern with a magnifying
glass, geometric style, blue and orange accents, square format"
Bad prompt (don't do this):
"Developer sitting at a computer" ✗ — portraits are for agents, not skills
"Abstract colorful splash without meaning" ✗ — too vague, no clear concept
"Screenshot of a terminal window" ✗ — not an icon
Key rules:
| Property | Value |
|---|---|
| Final resolution | 512×512 (square) |
| File format | PNG (recommended for icons — crisp lines, transparency) |
| Max file size | ≤30KB |
| Compression method | Python Pillow (pip3 install Pillow) resize + save |
Compression procedure:
python3 -c "
from PIL import Image
img = Image.open('source.png')
img = img.resize((512, 512), Image.LANCZOS)
img.save('icon.png', 'PNG', optimize=True)
"
Always place images under an images/ subdirectory — NOT at the artifact root.
Example file_write calls:
file_write("~/.markus/builder-artifacts/skills/git-changelog/SKILL.md", "---\nname: git-changelog\ndescription: Generate changelogs from git history\n---\n\n# Git Changelog\n\n## Overview\n...\n\n## Instructions\n...\n\n## Examples\n...")
file_write("~/.markus/builder-artifacts/skills/git-changelog/README.md", "# Git Changelog\n\nA skill that helps agents generate changelogs from git history...\n")
name) — REQUIREDThe manifest name is the package slug: directory name, Hub URL segment (/@user/{slug}), SKILL.md frontmatter name, and share/publish id.
Rules (hard — invalid manifests are rejected on write / save / share):
a-z, digits 0-9, hyphens -git-changelog, web-scraper, pdf-summarizer网页抓取器), spaces, underscores, UPPERCASE, emoji, or emptydisplayName, never in namename and SKILL.md frontmatter name must match exactly| User language | name (slug) | displayName |
|---|---|---|
| Chinese “网页抓取” | web-scraper | 网页抓取 |
| English “Git Changelog” | git-changelog | Git Changelog |
If the user only gives a Chinese title, you invent an English kebab slug, set displayName to their title, and use the slug for ~/.markus/builder-artifacts/skills/{name}/.
type: Always "skill"name: Package slug — English kebab-case only (see Package Slug). Write/save/share reject Chinese or invalid slugs. Must match SKILL.md frontmatter name.displayName: Human-readable skill name, can be in any languageversion: Semver (default "1.0.0")description: When and why an agent should use this skill (can be in any language)category: Typically "custom" for user-created skillstags: Array of descriptive tagsskill section (REQUIRED)skillFile: Always "SKILL.md" — the entry point instruction documentrequiredPermissions: (optional) Array of permissions: "shell", "file", "network", "browser"mcpServers: (optional) Map of MCP server name → config. Each config has command, args?, env?. Use ${SKILL_DIR} in args/env to reference the skill directory.alwaysOn: (optional, boolean) If true, the skill is listed in every agent's discoverable catalog as a foundational skill (e.g., Learning Habits). Full instructions are not auto-injected — agents activate via discover_tools({ name: [...] }) (Hermes progressive disclosure). Default is false.CRITICAL: Creating an artifact is NOT the same as installing/deploying it. Creating writes files to
builder-artifacts/; installing makes the skill available to agents in the live org. NEVER auto-install. Only install when the user explicitly asks. This applies to ALL modes (chat, task, A2A).
Once all files are written, tell the user:
package_install). Do NOT install unless asked.shell_execute, file_read, file_write, file_edit, grep_search, glob_find, list_directory, web_fetch, web_search, gui — or MCP tool names if the skill provides its own toolsmy-api__search) in SKILL.md so the agent knows how to use themfile_write — announce what you're writingnpx to reference published packagesfile_write for files.~/.markus/shared/ or your working directory. Always use ~/.markus/builder-artifacts/skills/{name}/.name field MUST be a valid English kebab-case slug (see Package Slug). Never use Chinese as name. Invalid name → write/save/share fails.name field and SKILL.md frontmatter name must match exactly.author must be a plain string (your name, e.g. "John") — NOT an object. tags must be an array of strings. version must be semver string. description must be a string. The system validates the manifest on write and will reject malformed files.