| name | skill-creation |
| description | Guide for creating, checking, and evaluating reusable ADK skill bundles under the user-global MatCreator skill root. |
| metadata | {"tools":["get_user_skills_root","run_python","run_bash","refresh_skills"],"tags":["skill-authoring","adk","validation"]} |
Skill Creation Guide
Use this guide when the user asks to create, improve, or evaluate a reusable MatCreator skill.
Target Location
- Call
get_user_skills_root() before writing any skill files.
- Put every generated skill under:
<user_skills_root>/<skill-name>/
- The primary instruction file must be:
<user_skills_root>/<skill-name>/SKILL.md
- Do not write generated reusable skills under the workspace skills directory.
- Reject or revise any path that would escape the returned user skills root.
Bundle Layout
Use the standard ADK skill layout:
<skill-name>/
SKILL.md
references/ optional long-form references
assets/ optional examples, templates, or static data
scripts/ optional executable helper scripts
tests/ optional validation scripts or fixtures
Keep SKILL.md concise. Move lengthy command references, scientific background, examples, or API notes into references/ or assets/.
SKILL.md Format
Use YAML frontmatter followed by Markdown instructions:
---
name: <kebab-case-or-snake_case-name>
description: <one sentence that helps the planner decide when to use the skill>
metadata:
tools:
- run_bash
dependent_skills: []
tags:
- relevant-tag
---
# <Human-readable title>
Clear, operational instructions for the agent.
Rules:
- Use a stable, lowercase name with only letters, digits, hyphens, or underscores.
- Do not use a name that conflicts with a bundled skill.
- Make the description specific enough for retrieval.
- List required tool names in
metadata.tools.
- List related skill names in
metadata.dependent_skills.
- Do not invent commands, flags, APIs, file formats, or scientific claims. If uncertain, gather evidence first.
Authoring Workflow
- Clarify the intended task, inputs, outputs, required tools, and success criteria.
- Search existing skills before creating a new one. Update or extend an existing user skill only when that is what the user wants.
- Design the bundle layout and write
SKILL.md.
- Add references, assets, scripts, or tests only when they make the skill more reliable.
- Keep generated scripts deterministic and self-contained when possible.
Required Checks
After creating or changing a skill, run these checks and fix failures before reporting success:
- Static load check: verify
google.adk.skills.load_skill_from_dir(<skill_dir>) loads the bundle.
- Collision check: verify the name does not conflict with bundled skills.
- Refresh check: call
refresh_skills() so the current session can discover the new skill.
- Discovery check: verify the skill can be found or loaded through MatCreator skill discovery.
- Behavior check: run a minimal representative test. For instruction-only skills, simulate the expected decision path. For script-backed skills, run at least one safe script invocation or syntax check.
Reporting
Report:
- Absolute path to
SKILL.md.
- Files created or changed.
- Checks performed and their pass/fail result.
- Any unsupported assumptions, missing external dependencies, or limitations.