Agent skill

Skill Authoring

by mateaix in mateaix/mateclaw

Author SKILL.md skills: frontmatter, validator limits, structure.

Apache-2.0Auto-check passedAgent Workflows

Install Skill Authoring

skills CLI
$ npx skills add mateaix/mateclaw --skill skill-authoring -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mateaix/mateclaw skill-authoring --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mateaix/mateclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/mateclaw-server/src/main/resources/skills/skill-authoring .claude/skills/skill-authoring && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
skill-authoring
GitHub stars
1.1k
Token cost
~2.5k tokens
SKILL.md length
1,210 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
Apache-2.0

At a glance

Author SKILL.md skills: frontmatter, validator limits, structure.

  • Works in 2 steps: Builtin (in-repo):… → Custom (runtime): created by an agent or…
  • Tasks that involve Skill authoring
  • SKILL.md covers Overview, When to Use, Required Frontmatter and Size & Naming Limits, plus 8 more sections
  • Calls mvn

What it does

Skill Authoring is an agent skill from mateaix/mateclaw. Author SKILL.md skills: frontmatter, validator limits, structure.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Skill authoring. The repository describes itself as: 🤖 MateClaw — Your second brain with Multi-Agent Orchestration, MCP Protocol, Skills & Memory, Dream, and Multi-Channel Support. Built on Spring AI Alibaba. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Skill authoring

Example prompts

  • “/skill-authoring”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Builtin (in-repo): mateclaw-server/src/main/resources/skills//SKILL.md — committed, shipped inside the server JAR. On every startup…
  2. Custom (runtime): created by an agent or user through the skill_manage tool. Stored as a mate_skill row with skill_type=custom and…

What it can do on your machine

Read from SKILL.md and the folder at commit 3b5f7de. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • mvn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Skill Authoring loads about 2.5k tokens when it runs. Until then it costs about 20 tokens; SKILL.md has 1,210 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~20
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mateaix/mateclaw at commit 3b5f7de, republished under its Apache-2.0 licence (© mateaix). 1,210 words, ~2,496 tokens.

Download SKILL.mdSave it as .claude/skills/skill-authoring/SKILL.md (or your agent's skills folder).
name
skill-authoring
description
Author SKILL.md skills: frontmatter, validator limits, structure.
version
1.0.0
tags
skills, authoring, skill-md, conventions, meta
author
ported

Authoring MateClaw Skills

Overview

A skill is a SKILL.md file — YAML frontmatter plus a markdown body of reusable instructions. There are two places a SKILL.md can live, and they have different creation paths:

  1. Builtin (in-repo): mateclaw-server/src/main/resources/skills/<name>/SKILL.md — committed, shipped inside the server JAR. On every startup BuiltinSkillSeedService scans classpath*:skills/*/SKILL.md, parses each frontmatter, and upserts a row into mate_skill keyed by name. The SKILL.md is the single source of truth — no SQL seed entry is required.
  2. Custom (runtime): created by an agent or user through the skill_manage tool. Stored as a mate_skill row with skill_type=custom and exported to the workspace at ~/.mateclaw/skills/<name>/. Not committed; lives per-installation.

This skill covers both. Note that skill_manage does NOT write into the in-repo skills/ tree — builtin skills are authored by writing the file directly and restarting.

When to Use

  • You're adding a reusable workflow that should ship with MateClaw → builtin.
  • You're editing an existing builtin skill under mateclaw-server/src/main/resources/skills/.
  • An agent finished a complex task and wants to persist the approach → custom, via skill_manage.
  • You're reviewing a SKILL.md for correct frontmatter and structure.

Don't use for: recording a one-off tip discovered while using a skill (that belongs in record_lesson / a per-skill LESSONS.md) or cross-skill memory notes (remember). This skill is about writing the skill document itself.

Required Frontmatter

The frontmatter is parsed by SkillFrontmatterParser: a regex (^---\s*\n(.*?)\n---\s*\n(.*)$) splits the fenced block, then SnakeYAML loads it as a mapping. Hard requirements:

  • Starts with --- as the first bytes — no leading blank line, no BOM.
  • A closing --- line follows, then the body. The body must be non-empty.
  • The block between the fences parses as a YAML mapping.
  • name is present — it is the upsert key. BuiltinSkillSeedService skips any SKILL.md with no name.
  • description is present — a single line.

If the frontmatter regex fails to match, the parser treats the whole file as body with an empty name, and a builtin skill is silently skipped at seed time. A loadable skill ALWAYS has well-formed frontmatter.

Size & Naming Limits

  • Skill content: ≤ 100,000 chars (MAX_CONTENT_CHARS, ~25k tokens) — enforced by skill_manage for custom skills. Builtin skills aren't hard-checked but should obey the same ceiling.
  • Name: must match ^[a-z0-9][a-z0-9._-]{0,63}$ — lowercase letters and digits plus - _ ., starting with a letter or digit, ≤ 64 chars. skill_manage lowercases the name before validating.
  • Description: keep it to one line. Peer skills run 40-70 chars — a tight trigger phrase, not a paragraph.
  • Peer skills in resources/skills/ sit at 6-15k chars. Aim for that range; past ~20k, split detail into references/*.md.

Peer-Matched Frontmatter

Every shipped skill follows this shape:

yaml
---
name: my-skill-name
description: 'One line: what it does and when it fires.'
version: 1.0.0
tags:
- short
- descriptive
- tags
author: ported
---

Fields BuiltinSkillSeedService projects onto the mate_skill row:

FieldEffectDefault if absent
nameupsert key, skill identity— (required)
descriptionshown in skill listsempty
versionmate_skill.version1.0.0
iconemoji, or a /skill-assets/... path🛠️
authorattributionMateClaw
tagsYAML list or CSV stringskill name
nameZh / nameEnbilingual display namesnone
optional: trueseeds the skill disabled — user opts in from the Skills pagefalse (enabled)
dependencies.toolsrequired tool ids → config_json.requiredToolsnone
platformse.g. [linux, macos, windows]none

version / author / tags are not validator-enforced, but every peer carries them — omitting makes the skill look half-finished. Use optional: true for heavyweight skills (paid CLI dependencies, external OAuth, niche integrations) so they ship dark and the user activates them deliberately.

Skill Structure

Shipped skills follow roughly:

# <Title>

## Overview          — one or two paragraphs: what and why.
## When to Use       — bulleted triggers, plus a "Don't use for:" counter-trigger.
## <Topic sections>  — quick-reference tables, exact commands, concrete recipes
                       (mvn test, paths under mateclaw-server/, etc.).
## Common Pitfalls   — numbered mistakes paired with their fixes.
## Verification Checklist — checkbox list of post-action checks.

Not every section is mandatory, but Overview + When to Use + an actionable body + Common Pitfalls is the minimum for the skill to read like a peer.

Directory Placement

mateclaw-server/src/main/resources/skills/<skill-name>/SKILL.md

The skills/ tree is flat — no category subdirectories. The seed glob classpath*:skills/*/SKILL.md matches exactly one level deep, so a skill nested under a category directory would never be scanned. The directory name SHOULD equal the frontmatter name. Supporting files go in references/ and scripts/ subdirectories (see below).

Builtin Workflow (in-repo)

  1. Survey peers: ls mateclaw-server/src/main/resources/skills/ and read 2-3 SKILL.md files close to your topic — match tone and structure.
  2. Create skills/<name>/SKILL.md with the file tools.
  3. Validate that the frontmatter parses — see the checklist below.
  4. Restart the server. BuiltinSkillSeedService seeds the new row only at startup; a running server will not see it. The service also skips re-seeding when no SKILL.md's size/mtime changed, so rebuilding the JAR is what makes a change land.
  5. Commit the new skills/<name>/ directory. No SQL seed change is needed — the SKILL.md is the source of truth and obsoletes per-skill INSERT INTO mate_skill.
Show full SKILL.md (491 more words)Show less

Custom Workflow (skill_manage)

Agents and users create runtime skills with the skill_manage tool — actions create | edit | patch | delete:

  • create — a new skill from full SKILL.md content. Rejects a duplicate name.
  • edit — a full-content rewrite of a custom skill.
  • patch — find-and-replace one section (oldText → newText).
  • delete — uninstall (logical delete plus workspace archive).

Notes:

  • Every write is security-scanned (SkillSecurityService) before saving — dangerous patterns are rejected with the reason. Builtin SKILL.md files are NOT scanned; they are trusted committed source.
  • edit / patch / delete refuse builtin skills ("cannot edit builtin skill"). To change a builtin skill, edit the resource file and restart.
  • A custom skill is live immediately — the tool re-runs the resolver pipeline — so no restart is needed.

Supporting Files

Beyond SKILL.md, a skill directory may carry:

  • references/*.md — long-form material the body links to. Use this to keep SKILL.md under ~20k chars.
  • scripts/* — executable helpers a skill invokes.
  • templates/, assets/ — used by some bundled skills (HTML templates, images, etc.).

SkillFileAccessPolicy only resolves runtime paths under references/ and scripts/, and rejects .. traversal or absolute paths — keep runtime-read files in those two directories.

Common Pitfalls

  1. Leading whitespace before ---. The frontmatter regex anchors on ^---; a blank line or BOM makes the whole file parse as body with an empty name, and a builtin skill is silently skipped.
  2. Expecting a running server to see a new builtin skill. BuiltinSkillSeedService seeds only at startup. Restart — or, for a quick iteration, create a custom skill via skill_manage, which is live immediately.
  3. Trying to skill_manage edit a builtin skill. It is refused. Builtin skills are committed source — edit the file and restart.
  4. Adding an INSERT INTO mate_skill for a new builtin skill. Unnecessary and discouraged — the SKILL.md is the source of truth and the seed service upserts by name.
  5. Generic description. "Debug things" is weak. A peer description names the trigger — "4-phase root cause debugging: understand bugs before fixing." beats "Debug things."
  6. Naming an external project or internal RFC in the skill body. Describe the function objectively. Shipped content states what it does, not where the idea came from — author: ported is the neutral attribution for an adapted skill.
  7. Skill content over 100k chars. skill_manage rejects it outright; split detail into references/.
  8. Mismatched directory and name. The upsert keys on the frontmatter name, but a directory that disagrees confuses everyone reading the tree. Keep them equal.

Verification Checklist

  • File at mateclaw-server/src/main/resources/skills/<name>/SKILL.md (builtin); the directory name equals the frontmatter name
  • Frontmatter starts at byte 0 with ---, closes with a --- line, and the body is non-empty
  • name matches ^[a-z0-9][a-z0-9._-]{0,63}$; description is a single line
  • version, tags, author present (peer-matched shape)
  • Total file ≤ 100,000 chars (aim 6-15k; split into references/ past ~20k)
  • Structure: # Title → ## Overview → ## When to Use → actionable body → ## Common Pitfalls → ## Verification Checklist
  • No external project names or RFC numbers in the body
  • Builtin: server restarted so BuiltinSkillSeedService seeds the row; the new skills/<name>/ directory is committed
  • Custom: created via skill_manage, security scan reported PASSED

© mateaix, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in mateclaw-server/src/main/resources/skills/skill-authoring of mateaix/mateclaw.

Open the folder on GitHubat commit 3b5f7de

Compare with similar skills

Skill Authoring next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Skill Authoring compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Skill Authoring this skillmateaix/mateclaw1.1k—~2.5kAutomated safety check: PassApache-2.0
Skill CreatorAzure/azqr79589 repos~8.2kAutomated safety check: PassApache-2.0
Claude Code Skill Developer Guidediet103/claude-code-infrastructure-showcase10k11 repos~3.5kAutomated safety check: PassMIT
Darwin Skill Optimizeralchaincyf/darwin-skill6.2k1 repos~4.7kAutomated safety check: PassMIT
Claude Code Command Developmentanthropics/claude-plugins-official38k10 repos~4.8kAutomated safety check: PassApache-2.0
Claude Code Plugin Structureanthropics/claude-plugins-official38k10 repos~3.4kAutomated safety check: PassApache-2.0

Similar skills

  • Skill Creator

    Azure/azqr

    Official

    Create new skills, modify and improve existing skills, and measure skill performance.

    795 GitHub starsUsed in 89 repos~8.2k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Skill Developer Guide

    diet103/claude-code-infrastructure-showcase

    A guide to creating and managing Claude Code skills with auto-activation: skill-rules.json triggers, hooks, enforcement levels, YAML frontmatter and progressive disclosure.

    10k GitHub starsUsed in 11 repos~3.5k tokens
    Agent WorkflowsAuto-check passed
  • Darwin Skill Optimizer

    alchaincyf/darwin-skill

    Scores SKILL.md files on a nine-dimension rubric, then improves them in a keep-or-revert loop with independent judge agents, test prompts, git history and human checkpoints.

    6.2k GitHub starsUsed in 1 repo~4.7k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Command Development

    anthropics/claude-plugins-official

    Official

    Explains how to write Claude Code slash commands: Markdown files with YAML frontmatter, arguments, file references, bash context and interactive prompts.

    38k GitHub starsUsed in 10 repos~4.8k tokens
    Agent WorkflowsAuto-check passed
  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    38k GitHub starsUsed in 10 repos~3.4k tokens
    Agent WorkflowsAuto-check passed
  • Skill Release Gate

    rohitg00/ai-engineering-from-scratch

    Evaluates an Agent Skill bundle before release for structure, trigger quality, artifact improvement, script correctness, safety, installed-tree integrity and host portability.

    66k GitHub stars~1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from mateaix/mateclaw

All 17 skills in this repo
  • Pixel Art

    mateaix/mateclaw

    Pixel art w/ era palettes (NES, Game Boy, PICO-8). An agent skill from mateaix/mateclaw.

    1.1k GitHub starsUsed in 5 repos~1.8k tokens
    Auto-check passed
  • DOCX

    mateaix/mateclaw

    A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx files).

    1.1k GitHub stars~4.1k tokensUpdated 3 days ago
    Auto-check passed
  • XLSX

    mateaix/mateclaw

    Use this skill any time a spreadsheet file is the primary input or output.

    1.1k GitHub stars~1.5k tokensUpdated 3 days ago
    Auto-check passed
  • Execute plans via delegatetask subagents (2-stage review). An agent skill from mateaix/mateclaw.

    1.1k GitHub starsUsed in 3 repos~2.6k tokens
    Auto-check passed
  • Ideation

    mateaix/mateclaw

    Generate project ideas via creative constraints. An agent skill from mateaix/mateclaw.

    1.1k GitHub starsUsed in 2 repos~1.5k tokens
    Auto-check passed
  • Architecture Diagram

    mateaix/mateclaw

    Dark-themed SVG architecture/cloud/infra diagrams as HTML. An agent skill from mateaix/mateclaw.

    1.1k GitHub starsUsed in 5 repos~1.7k tokens
    Auto-check passed

Categories

Questions about Skill Authoring

What does Skill Authoring do?

Author SKILL.md skills: frontmatter, validator limits, structure. Skill Authoring is an agent skill from mateaix/mateclaw.md skills: frontmatter, validator limits, structure.

When should I use Skill Authoring?

Skill Authoring fits situations like: tasks that involve Skill authoring.

How do I install Skill Authoring in Claude Code?

Run `npx skills add mateaix/mateclaw --skill skill-authoring -a claude-code`. Or copy the skill folder (mateclaw-server/src/main/resources/skills/skill-authoring in mateaix/mateclaw) into .claude/skills/skill-authoring in your project. Claude Code loads it when a task matches its description.

How do I install Skill Authoring in Codex?

Run `npx skills add mateaix/mateclaw --skill skill-authoring -a codex`. Or copy the skill folder (mateclaw-server/src/main/resources/skills/skill-authoring in mateaix/mateclaw) into .agents/skills/skill-authoring in your project. Codex loads it when a task matches its description.

Can I use Skill Authoring in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mateaix/mateclaw --skill skill-authoring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-authoring, .gemini/skills/skill-authoring, .github/skills/skill-authoring and .opencode/skills/skill-authoring in your project.

What does Skill Authoring need to run?

Going by SKILL.md and its folder, Skill Authoring needs the command-line tools its instructions call (mvn).

Does Skill Authoring access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Skill Authoring safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Skill Authoring use?

Skill Authoring is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Skill Authoring use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Skill Authoring?

Skills that share tags, products or a category with Skill Authoring: Skill Creator (Azure/azqr, 795 stars), Claude Code Skill Developer Guide (diet103/claude-code-infrastructure-showcase, 10k stars), Darwin Skill Optimizer (alchaincyf/darwin-skill, 6.2k stars) and Claude Code Command Development (anthropics/claude-plugins-official, 38k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Skill Authoring?

mateaix (a GitHub user) maintains it in mateaix/mateclaw, which has 1,147 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 5, 2026.

Source: mateaix/mateclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.